mirror of https://github.com/nmlgc/ReC98.git
365 lines
10 KiB
NASM
365 lines
10 KiB
NASM
;
|
||
; +-------------------------------------------------------------------------+
|
||
; | 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
|