ReC98/th01_op.asm

365 lines
10 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;
; +-------------------------------------------------------------------------+
; | This file has been generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2009 by Hex-Rays, <support@hex-rays.com> |
; +-------------------------------------------------------------------------+
;
; Input MD5 : AD4E53E1F1A042FBDA82F86B9BD6728C
; File Name : th01/OP.EXE
; Format : MS-DOS executable (EXE)
; Base Address: 0h Range: 0h-14040h Loaded length: 13418h
; Entry Point : 0:0
; OS type : MS DOS
; Application type: Executable 16bit
.386
.model use16 large _TEXT
BINARY = 'O'
include ReC98.inc
include th01/th01.inc
include th01/formats/cfg.inc
; ===========================================================================
; Segment type: Pure code
_TEXT segment word public 'CODE' use16
assume cs:_TEXT
assume es:nothing, ds:DGROUP, fs:nothing, gs:nothing
include libs/master.lib/graph_400line.asm
include libs/master.lib/graph_clear.asm
include libs/master.lib/graph_show.asm
include libs/master.lib/graph_start.asm
include libs/master.lib/palette_show.asm
include libs/master.lib/palette_init.asm
include libs/master.lib/respal_exist.asm
include libs/master.lib/respal_free.asm
include libs/master.lib/resdata.asm
include libs/master.lib/file_read.asm
include libs/master.lib/file_close.asm
include libs/master.lib/file_ropen.asm
include libs/master.lib/file_seek.asm
include libs/master.lib/dos_free.asm
include libs/master.lib/keystart.asm
include libs/master.lib/keybios.asm
include libs/master.lib/dos_ropen.asm
include libs/master.lib/egc.asm
include libs/master.lib/random.asm
_TEXT ends
; ---------------------------------------------------------------------------
; ===========================================================================
; Segment type: Pure code
op_01_TEXT segment byte public 'CODE' use16
op_01_TEXT ends
; ===========================================================================
; Segment type: Pure code
frmdelay_TEXT segment byte public 'CODE' use16
frmdelay_TEXT ends
; ===========================================================================
; Segment type: Pure code
vsync_TEXT segment byte public 'CODE' use16
vsync_TEXT ends
; ===========================================================================
ztext_TEXT segment byte public 'CODE' use16
ztext_TEXT ends
; ===========================================================================
; Segment type: Pure code
initexit_TEXT segment byte public 'CODE' use16
initexit_TEXT ends
; ---------------------------------------------------------------------------
; ===========================================================================
; Segment type: Pure code
graph_TEXT segment byte public 'CODE' use16
graph_TEXT ends
; ---------------------------------------------------------------------------
; ===========================================================================
; Segment type: Pure code
SHARED segment byte public 'CODE' use16
SHARED ends
; ===========================================================================
; Segment type: Pure code
grppffx_TEXT segment byte public 'CODE'
grppffx_TEXT ends
; ===========================================================================
; Segment type: Pure code
PTN_GRP_GRZ segment byte public 'CODE' use16
PTN_GRP_GRZ ends
; ===========================================================================
; Segment type: Pure code
resstuff_TEXT segment byte public 'CODE'
resstuff_TEXT ends
; ===========================================================================
; Segment type: Pure code
mdrv2_TEXT segment byte public 'CODE' use16
mdrv2_TEXT ends
; ===========================================================================
op_12_TEXT segment byte public 'CODE' use16
op_12_TEXT ends
; ===========================================================================
.data
db 0
public _MAIN_CHOICES
_MAIN_CHOICES label dword
dd aVrvsvVqvs ; " <20>r<EFBFBD>s<EFBFBD>`<60>q<EFBFBD>s "
dd aVbvnvmvsvhvmvt ; "<22>b<EFBFBD>n<EFBFBD>m<EFBFBD>s<EFBFBD>h<EFBFBD>m<EFBFBD>t<EFBFBD>d"
dd aB@vnvovsvhvnvm ; "<22>@<40>n<EFBFBD>o<EFBFBD>s<EFBFBD>h<EFBFBD>n<EFBFBD>m<EFBFBD>@"
dd aB@b@vpvtvhvsb@ ; "<22>@<40>@<40>p<EFBFBD>t<EFBFBD>h<EFBFBD>s<EFBFBD>@<40>@"
public _OPTION_CHOICES, _RANK_VALUES, _BGM_MODE_VALUES, _START_LIFE_VALUES
_OPTION_CHOICES label dword
dd aB@vqvVmvjb@ ; "<22>@<40>q<EFBFBD>`<60>m<EFBFBD>j<EFBFBD>@ "
dd aVlvtvrvhvb ; " <20>l<EFBFBD>t<EFBFBD>r<EFBFBD>h<EFBFBD>b "
dd aVovkvVxvdvq ; "<22>o<EFBFBD>k<EFBFBD>`<60>x<EFBFBD>d<EFBFBD>q "
dd aVlbdvsvdvrvs ; "<22>l<EFBFBD>D<EFBFBD>s<EFBFBD>d<EFBFBD>r<EFBFBD>s "
dd aB@vpvtvhvsb@ ; "<22>@<40>p<EFBFBD>t<EFBFBD>h<EFBFBD>s<EFBFBD>@ "
_RANK_VALUES label dword
dd aEasy ; " EASY "
dd aNormal ; "NORMAL"
dd aHard ; " HARD "
dd aLunatic ; "LUNATIC"
_BGM_MODE_VALUES label dword
dd aOff ; " OFF "
dd aFm ; " FM "
_START_LIFE_VALUES label dword
dd a3 ; " 3 "
dd a4 ; " 4 "
dd a5 ; " 5 "
dd a6 ; " 6 "
dd a7 ; " 7 "
public _music_sel
_music_sel db 0
public _MUSIC_CHOICES
_MUSIC_CHOICES label dword
dd aVlvtvrvhvbb@vm ; "<22>l<EFBFBD>t<EFBFBD>r<EFBFBD>h<EFBFBD>b<EFBFBD>@<40>m<EFBFBD><6D><EFBFBD>D"
dd aB@b@vpvxvivf ; "<22>@<40>@<40>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "
public _MUSIC_TITLES
_MUSIC_TITLES label dword
dd aASacretLot ; " A Sacret Lot"
dd aXcvR_o ; " <20><><EFBFBD>̐_<CC90><5F> "
dd aIiiuvIPc ; " <09>i<EFBFBD><69><EFBFBD>̛ޏ<CC9B> "
dd aHighlyResponsi ; " Highly Responsive"
dd aUmx
dd aOrientalMagici ; " Oriental Magician"
dd aB@FjoVPmsUbb@ ; "<22>@ <20>j<EFBFBD>ׂ̏<D782><CC8F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ "
dd aTheLegendOfKag ; " The Legend of KAGE"
dd aPositiveAndNeg ; "Positive and Negative"
dd aB@b@UvoguRrb@b ; "<22>@<40>@ <20>V<EFBFBD>g<EFBFBD>`<60><><EFBFBD>@<40>@ "
dd aB@b@b@CvlB@b@b ; "<22>@<40>@<40>@ <20><><EFBFBD><EFBFBD><EFBFBD>@<40>@<40>@ "
dd aVvvUVRVnvVOuvV ; "<22><><EFBFBD><EFBFBD><EFBFBD>|<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̎<EFBFBD><CC8E>܂<EFBFBD>"
dd aB@b@oavVVrvivV ; "<22>@<40>@<40><><EFBFBD>Ȃ΂<C882><CE82><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682>@<40>@"
dd aB@b@Rpchmxom ; "<22>@<40>@ <20><><EFBFBD>H<EFBFBD><48><EFBFBD>m"
dd aB@b@b@gagcgkgx ; "<22>@<40>@<40>@<40>A<EFBFBD>C<EFBFBD><43><EFBFBD>X"
public _main_sel_prev, _main_in_this_menu
public _option_in_this_menu, _option_sel_prev
public _option_left_locked, _option_right_locked
_main_sel_prev dw 99
_main_in_this_menu dw 0
_option_in_this_menu dw 0
_option_sel_prev dw 0
_option_left_locked dw 0
_option_right_locked dw 0
public _MUSIC_FILES
_MUSIC_FILES label dword
dd _aReimu_mdt ; "reimu.mdt"
dd aZipangu_mdt ; "ZIPANGU.mdt"
dd aSt0_mdt ; "st0.mdt"
dd aSt1_mdt ; "st1.mdt"
dd aSt2_mdt ; "st2.mdt"
dd aSt3_mdt ; "st3.mdt"
dd aSt4_mdt ; "st4.mdt"
dd aSt5_mdt ; "st5.mdt"
dd aPositive_mdt ; "positive.mdt"
dd aLegend_mdt ; "legend.mdt"
dd aKami_mdt ; "kami.mdt"
dd aTensi_mdt ; "tensi.mdt"
dd aSyugen_mdt ; "syugen.mdt"
dd aAlice_mdt ; "alice.mdt"
dd aIris_mdt ; "iris.mdt"
public _music_in_this_menu, _music_sel_prev
public _music_left_locked, _music_right_locked
_music_in_this_menu dw 0
_music_sel_prev dw 0
_music_left_locked dw 0
_music_right_locked dw 0
include th01/formats/cfg[data].asm
; char _aReimu_mdt[]
public _aReimu_mdt, _aReiiden2_grp, _aReiiden3_grp, _aOp_win_grp
_aReimu_mdt db 'reimu.mdt',0
_aReiiden2_grp db 'REIIDEN2.grp',0
_aReiiden3_grp db 'REIIDEN3.grp',0
_aOp_win_grp db 'op_win.grp',0
public _aReiiden_0
_aReiiden_0 db 'reiiden',0
public _GP_HIT_KEY
_GP_HIT_KEY db ' <20>g<EFBFBD>h<EFBFBD>s<EFBFBD>@<40>j<EFBFBD>d<EFBFBD>x',0
aVrvsvVqvs db ' <20>r<EFBFBD>s<EFBFBD>`<60>q<EFBFBD>s ',0
aVbvnvmvsvhvmvt db '<27>b<EFBFBD>n<EFBFBD>m<EFBFBD>s<EFBFBD>h<EFBFBD>m<EFBFBD>t<EFBFBD>d',0
aB@vnvovsvhvnvm db '<27>@<40>n<EFBFBD>o<EFBFBD>s<EFBFBD>h<EFBFBD>n<EFBFBD>m<EFBFBD>@',0
aB@b@vpvtvhvsb@ db '<27>@<40>@<40>p<EFBFBD>t<EFBFBD>h<EFBFBD>s<EFBFBD>@<40>@',0
aB@vqvVmvjb@ db '<27>@<40>q<EFBFBD>`<60>m<EFBFBD>j<EFBFBD>@ ',0
aVlvtvrvhvb db ' <20>l<EFBFBD>t<EFBFBD>r<EFBFBD>h<EFBFBD>b ',0
aVovkvVxvdvq db '<27>o<EFBFBD>k<EFBFBD>`<60>x<EFBFBD>d<EFBFBD>q ',0
aVlbdvsvdvrvs db '<27>l<EFBFBD>D<EFBFBD>s<EFBFBD>d<EFBFBD>r<EFBFBD>s ',0
aB@vpvtvhvsb@ db '<27>@<40>p<EFBFBD>t<EFBFBD>h<EFBFBD>s<EFBFBD>@ ',0
aEasy db ' EASY ',0
aNormal db 'NORMAL',0
aHard db ' HARD ',0
aLunatic db 'LUNATIC',0
aOff db ' OFF ',0
aFm db ' FM ',0
a3 db ' 3 ',0
a4 db ' 4 ',0
a5 db ' 5 ',0
a6 db ' 6 ',0
a7 db ' 7 ',0
; char aSS[]
public _aSS
_aSS db '%s%s',0
aVlvtvrvhvbb@vm db '<27>l<EFBFBD>t<EFBFBD>r<EFBFBD>h<EFBFBD>b<EFBFBD>@<40>m<EFBFBD><6D><EFBFBD>D',0
aB@b@vpvxvivf db '<27>@<40>@<40>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
aASacretLot db ' A Sacret Lot',0
aXcvR_o db ' <20><><EFBFBD>̐_<CC90><5F> ',0
aIiiuvIPc db ' <20>i<EFBFBD><69><EFBFBD>̛ޏ<CC9B> ',0
aHighlyResponsi db ' Highly Responsive',0
aUmx db ' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>k ',0
aOrientalMagici db ' Oriental Magician',0
aB@FjoVPmsUbb@ db '<27>@ <20>j<EFBFBD>ׂ̏<D782><CC8F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ ',0
aTheLegendOfKag db ' The Legend of KAGE',0
aPositiveAndNeg db 'Positive and Negative',0
aB@b@UvoguRrb@b db '<27>@<40>@ <20>V<EFBFBD>g<EFBFBD>`<60><><EFBFBD>@<40>@ ',0
aB@b@b@CvlB@b@b db '<27>@<40>@<40>@ <20><><EFBFBD><EFBFBD><EFBFBD>@<40>@<40>@ ',0
aVvvUVRVnvVOuvV db '<27><><EFBFBD><EFBFBD><EFBFBD>|<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̎<EFBFBD><CC8E>܂<EFBFBD>',0
aB@b@oavVVrvivV db '<27>@<40>@<40><><EFBFBD>Ȃ΂<C882><CE82><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682>@<40>@',0
aB@b@Rpchmxom db '<27>@<40>@ <20><><EFBFBD>H<EFBFBD><48><EFBFBD>m',0
aB@b@b@gagcgkgx db '<27>@<40>@<40>@<40>A<EFBFBD>C<EFBFBD><43><EFBFBD>X',0
public _aS_2d, _ERROR_RESIDENT_INVALID, _CON, _GOODBYE
_aS_2d db '%s%.2d',0
aZipangu_mdt db 'ZIPANGU.mdt',0
aSt0_mdt db 'st0.mdt',0
aSt1_mdt db 'st1.mdt',0
aSt2_mdt db 'st2.mdt',0
aSt3_mdt db 'st3.mdt',0
aSt4_mdt db 'st4.mdt',0
aSt5_mdt db 'st5.mdt',0
aPositive_mdt db 'positive.mdt',0
aLegend_mdt db 'legend.mdt',0
aKami_mdt db 'kami.mdt',0
aTensi_mdt db 'tensi.mdt',0
aSyugen_mdt db 'syugen.mdt',0
aAlice_mdt db 'alice.mdt',0
aIris_mdt db 'iris.mdt',0
_ERROR_RESIDENT_INVALID db '<27>o<EFBFBD>b<EFBFBD>`<60>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD>',0
_CON db 'CON',0
_GOODBYE db '<27><><EFBFBD>‚<EFBFBD><C282><EFBFBD>܂ł<DC82><C582><EFBFBD><EFBFBD>I<EFBFBD>I',0Ah,0
; libs/master.lib/grp[data].asm
extern graph_VramSeg:word
extern graph_VramWords:word
extern graph_VramLines:word
extern graph_VramZoom:word
; libs/master.lib/pal[data].asm
extern PaletteTone:word
extern PalettesInit:rgb_t:COLOR_COUNT
extern PaletteNote:word
extern ResPalSeg:word
; libs/master.lib/respal_exist[data].asm
IDLEN EQU 10
extern ResPalID:byte:IDLEN
; libs/master.lib/fil[data].asm
extern file_BufferSize:word
extern file_Handle:word
; libs/master.lib/keytable[data].asm
extern key_table_normal:word
extern key_table_shift:word
extern key_table_ctrl:word
extern key_table_alt:word
; libs/master.lib/keystart[data].asm
extern key_started:word
; libs/master.lib/keyback[data].asm
extern key_back_buffer:word
; libs/master.lib/dos_ropen[data].asm
extern file_sharingmode:word
; libs/master.lib/clip[data].asm
extern ClipXL:word
extern ClipXW:word
extern ClipXR:word
extern ClipYT:word
extern ClipYH:word
extern ClipYB:word
extern ClipYT_seg:word
extern ClipYB_adr:word
; libs/master.lib/rand[data].asm
extern random_seed:dword
.data?
public _frame_rand, _columns
_frame_rand dd ?
_columns dd ROW_SIZE dup (?)
; libs/master.lib/pal[bss].asm
extern Palettes:rgb_t:COLOR_COUNT
; libs/master.lib/fil[bss].asm
extern file_Buffer:dword
extern file_BufferPos:dword
extern file_BufPtr:word
extern file_InReadBuf:word
extern file_Eof:word
extern file_ErrorStat:word
; libs/master.lib/keystart[bss].asm
extern key_backup:byte:786
extern keywork:byte:10
end