; ; +-------------------------------------------------------------------------+ ; | This file has been generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2009 by Hex-Rays, | ; +-------------------------------------------------------------------------+ ; ; Input MD5 : 50C37C4BDDEC04B753524F5D3B030A96 ; File Name : th04/MAINE.EXE ; Format : MS-DOS executable (EXE) ; Base Address: 0h Range: 0h-126D0h Loaded length: 10062h ; Entry Point : 0:0 ; OS type : MS DOS ; Application type: Executable 16bit CGROUP00 group seg000 CGROUP01 group seg001 CGROUP02 group seg002 CGROUP03 group seg003 .286 ; Force the .model directive to create 16-bit default segments... .model large __LARGE__ equ 1 .386 ; ... then switch to what we actually need. ; And yes, we can't move this to an include file for some reason. include ReC98.inc include th04/th04.asm ; =========================================================================== ; Segment type: Pure code seg000 segment word public 'CODE' use16 assume cs:seg000 assume es:nothing, ss:_STACK, ds:dseg, fs:nothing, gs:nothing include libs/BorlandC/c0.asm db 0 include libs/master.lib/bfnt_entry_pat.asm include libs/master.lib/bfnt_extend_header_skip.asm include libs/master.lib/bfnt_header_read.asm include libs/master.lib/bfnt_header_analysis.asm include libs/master.lib/atrtcmod.asm include libs/master.lib/bcloser.asm include libs/master.lib/bfill.asm include libs/master.lib/bfnt_palette_set.asm include libs/master.lib/bgetc.asm include libs/master.lib/palette_black_in.asm include libs/master.lib/palette_black_out.asm include libs/master.lib/bopenr.asm include libs/master.lib/bread.asm include libs/master.lib/bseek.asm include libs/master.lib/bseek_.asm include libs/master.lib/dos_axdx.asm include libs/master.lib/dos_filesize.asm include libs/master.lib/dos_keyclear.asm include libs/master.lib/dos_read.asm include libs/master.lib/dos_seek.asm include libs/master.lib/dos_setvect.asm include libs/master.lib/egc.asm include libs/master.lib/file_append.asm include libs/master.lib/file_close.asm include libs/master.lib/file_create.asm include libs/master.lib/file_exist.asm include libs/master.lib/file_read.asm include libs/master.lib/file_ropen.asm include libs/master.lib/file_seek.asm include libs/master.lib/file_size.asm include libs/master.lib/file_write.asm include libs/master.lib/dos_close.asm include libs/master.lib/dos_ropen.asm include libs/master.lib/grcg_byteboxfill_x.asm include libs/master.lib/grcg_setcolor.asm include libs/master.lib/gdc_outpw.asm include libs/master.lib/get_machine_98.asm include libs/master.lib/get_machine_at.asm include libs/master.lib/get_machine_dosbox.asm include libs/master.lib/check_machine_fmr.asm include libs/master.lib/get_machine.asm include libs/master.lib/gaiji_backup.asm include libs/master.lib/gaiji_entry_bfnt.asm include libs/master.lib/gaiji_putca.asm include libs/master.lib/gaiji_putsa.asm include libs/master.lib/gaiji_read.asm include libs/master.lib/gaiji_write.asm include libs/master.lib/graph_400line.asm include libs/master.lib/graph_clear.asm include libs/master.lib/graph_copy_page.asm include libs/master.lib/graph_extmode.asm include libs/master.lib/graph_hide.asm include libs/master.lib/graph_pi_free.asm include libs/master.lib/graph_pi_load_pack.asm include libs/master.lib/graph_pack_put_8.asm include libs/master.lib/graph_scrollup.asm include libs/master.lib/graph_show.asm include libs/master.lib/js_end.asm include libs/master.lib/palette_show.asm include libs/master.lib/pfclose.asm include libs/master.lib/pfgetc.asm include libs/master.lib/pfread.asm include libs/master.lib/pfrewind.asm include libs/master.lib/pfseek.asm include libs/master.lib/random.asm include libs/master.lib/rottbl.asm include libs/master.lib/smem_release.asm include libs/master.lib/smem_wget.asm include libs/master.lib/soundio.asm include libs/master.lib/text_clear.asm include libs/master.lib/vsync.asm include libs/master.lib/vsync_wait.asm include libs/master.lib/palette_white_in.asm include libs/master.lib/palette_white_out.asm include libs/master.lib/hmem_lallocate.asm include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm include libs/master.lib/memheap.asm include libs/master.lib/mem_unassign.asm include libs/master.lib/super_free.asm include libs/master.lib/super_entry_pat.asm include libs/master.lib/super_entry_at.asm include libs/master.lib/super_entry_bfnt.asm include libs/master.lib/super_cancel_pat.asm include libs/master.lib/super_put.asm include libs/master.lib/pfint21.asm db 0 ; =============== S U B R O U T I N E ======================================= sub_2B6E proc far mov cx, 100h mov dx, 188h loc_2B74: in al, dx inc al jnz short loc_2B7F loop loc_2B74 xor ax, ax jmp short loc_2B93 ; --------------------------------------------------------------------------- loc_2B7F: pushf cli mov bh, 7 call sound_i and al, 3Fh or al, 80h mov bl, al call sound_o popf mov ax, 1 loc_2B93: mov word_E658, ax retf sub_2B6E endp include th03/formats/pfopen.asm include libs/master.lib/pf_str_ieq.asm ; =============== S U B R O U T I N E ======================================= sub_2CEA proc near mov bh, 0Fh call sound_o mov dx, 188h mov al, 0Eh out dx, al inc dx inc dx in al, dx not al retn sub_2CEA endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_2CFC proc far pushf cli mov bl, 80h call sub_2CEA and ax, 3Fh popf retf sub_2CFC endp ; --------------------------------------------------------------------------- xchg dx, bx out dx, al xchg dx, bx in al, dx not al retn ; --------------------------------------------------------------------------- include libs/master.lib/bgm_bell_org.asm include libs/master.lib/bgm_mget.asm include libs/master.lib/bgm_read_sdata.asm include libs/master.lib/bgm_timer.asm include libs/master.lib/bgm_pinit.asm include libs/master.lib/bgm_timerhook.asm include libs/master.lib/bgm_play.asm include libs/master.lib/bgm_sound.asm include libs/master.lib/bgm_effect_sound.asm include libs/master.lib/bgm_stop_play.asm include libs/master.lib/bgm_set_tempo.asm include libs/master.lib/bgm_init_finish.asm include libs/master.lib/bgm_stop_sound.asm include libs/master.lib/graph_pack_put_8_noclip.asm include libs/master.lib/graph_gaiji_puts.asm include libs/master.lib/graph_gaiji_putc.asm include libs/BorlandC/_abort.asm include libs/BorlandC/stpcpy.asm include libs/BorlandC/abort.asm include libs/BorlandC/atexit.asm include libs/BorlandC/del.asm include libs/BorlandC/delarray.asm include libs/BorlandC/dosenv.asm include libs/BorlandC/dosgdriv.asm include libs/BorlandC/errormsg.asm include libs/BorlandC/exit.asm include libs/BorlandC/getvect.asm include libs/BorlandC/H_LDIV.ASM include libs/BorlandC/H_LLSH.ASM include libs/BorlandC/H_PADD.ASM include libs/BorlandC/ioerror.asm include libs/BorlandC/_isatty.asm include libs/BorlandC/lseek.asm include libs/BorlandC/new.asm include libs/BorlandC/N_LXMUL.ASM include libs/BorlandC/N_PCMP.ASM include libs/BorlandC/setupio.asm include libs/BorlandC/tolower.asm include libs/BorlandC/toupper.asm include libs/BorlandC/xxas.asm include libs/BorlandC/xxv.asm include libs/BorlandC/cputype.asm include libs/BorlandC/FARHEAP.ASM include libs/BorlandC/fbrk.asm include libs/BorlandC/signal.asm include libs/BorlandC/_access.asm include libs/BorlandC/pathops.asm include libs/BorlandC/chmoda.asm include libs/BorlandC/fflush.asm include libs/BorlandC/flushall.asm include libs/BorlandC/fseek.asm include libs/BorlandC/fullpath.asm include libs/BorlandC/getdcwd.asm include libs/BorlandC/getenv.asm include libs/BorlandC/memcmp.asm include libs/BorlandC/memcpy.asm include libs/BorlandC/memset.asm include libs/BorlandC/movmem.asm include libs/BorlandC/srchenv.asm include libs/BorlandC/srchstr.asm include libs/BorlandC/setvbuf.asm include libs/BorlandC/_strcat.asm include libs/BorlandC/_strcmp.asm include libs/BorlandC/_strcpy.asm include libs/BorlandC/_stricmp.asm include libs/BorlandC/_strlen.asm include libs/BorlandC/strrchr.asm include libs/BorlandC/write.asm include libs/BorlandC/writea.asm include libs/BorlandC/xfflush.asm include libs/BorlandC/xalloc.asm include libs/BorlandC/xmsg.asm include libs/BorlandC/xx.asm include libs/BorlandC/doscmd.asm include libs/BorlandC/exec.asm include libs/BorlandC/execl.asm include libs/BorlandC/setblock.asm include libs/BorlandC/setenvp.asm include libs/BorlandC/ctor2.asm include libs/BorlandC/ctor3.asm include libs/BorlandC/strings.asm include libs/BorlandC/loadprog.asm seg000 ends ; =========================================================================== ; Segment type: Pure code seg001 segment byte public 'CODE' use16 assume cs:seg001 ;org 9 assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A059 proc near var_A = byte ptr -0Ah var_4 = word ptr -4 enter 0Ah, 0 push si push ds push offset aMiko_cfg ; "MIKO.CFG" call file_ropen push ss lea ax, [bp+var_A] push ax push 0Ah call file_read call file_close mov si, [bp+var_4] mov word ptr dword_F3CE+2, si mov word ptr dword_F3CE, 0 mov ax, si pop si leave retn sub_A059 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall sub_A08A(char *arg0) sub_A08A proc near _arg0 = dword ptr 4 push bp mov bp, sp call sub_D8CE call graph_hide call text_clear call gaiji_restore call sub_D3F4 pushd 0 pushd [bp+_arg0] ; arg0 pushd [bp+_arg0] ; path call _execl add sp, 0Ch pop bp retn 4 sub_A08A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A0BD proc near push bp mov bp, sp les bx, dword_F3CE mov al, es:[bx+12h] les bx, off_E5C0 mov es:[bx+3], al les bx, dword_F3CE mov al, es:[bx+19h] add al, 30h ; '0' les bx, off_E5C0 mov es:[bx+4], al les bx, dword_F3CE mov al, es:[bx+25h] les bx, off_E5C0 mov es:[bx+5], al push word ptr off_E5C0+2 push bx call sub_A292 call sub_ADFC call sub_A2D1 pop bp retn sub_A0BD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl main(int argc, const char **argv, const char **envp) _main proc far var_4 = dword ptr -4 _argc = word ptr 6 _argv = dword ptr 8 _envp = dword ptr 0Ch enter 4, 0 mov word ptr [bp+var_4+2], ds mov word ptr [bp+var_4], 0A8h ; 'ィ' call sub_A059 or ax, ax jz locret_A290 les bx, dword_F3CE mov al, es:[bx+12h] les bx, [bp+var_4] mov es:[bx+4], al mov word_10070, 5208h push ds push offset aMSzlEd_dat ; "幻想郷ed.dat" call sub_D43C call gaiji_backup push ds push offset aGameft_bft ; "GAMEFT.bft" call gaiji_entry_bfnt les bx, dword_F3CE mov al, es:[bx+10h] mov ah, 0 push ax mov al, es:[bx+18h] mov ah, 0 push ax call snd_determine_modes call graph_show les bx, dword_F3CE cmp byte ptr es:[bx+30h], 0FEh jb loc_A1FE call sub_A0BD call sub_B44D call sub_C0F8 les bx, dword_F3CE cmp byte ptr es:[bx+30h], 0FFh jz short loc_A187 cmp byte ptr es:[bx+0Fh], 0 jnz short loc_A1E9 loc_A187: les bx, [bp+var_4] mov al, es:[bx+5] les bx, dword_F3CE add al, es:[bx+0Fh] les bx, [bp+var_4] mov es:[bx+5], al mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call pi_slot_load pascal, 0, word ptr [bp+var_4+2], bx call pi_slot_palette_apply pascal, 0 call pi_slot_put pascal, large 0, 0 freePISlotLarge 0 push 0 call graph_copy_page push 1 call palette_black_in push 0 call sub_CE7A push 4 call palette_black_out loc_A1E9: kajacall KAJA_SONG_FADE, 4 push 64h ; 'd' call frame_delay call sub_C814 jmp loc_A281 ; --------------------------------------------------------------------------- loc_A1FE: les bx, dword_F3CE cmp byte ptr es:[bx+30h], 0FDh jnz short loc_A274 push 64h ; 'd' call frame_delay call sub_C814 les bx, [bp+var_4] mov byte ptr es:[bx+5], 34h ; '4' mov PaletteTone, 0 call far ptr palette_show mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call pi_slot_load pascal, 0, large [bp+var_4] call pi_slot_palette_apply pascal, 0 call pi_slot_put pascal, large 0, 0 freePISlotLarge 0 push 0 call graph_copy_page push 1 call palette_black_in push 0 call sub_CE7A push 4 call palette_black_out jmp short loc_A27E ; --------------------------------------------------------------------------- loc_A274: push 64h ; 'd' call frame_delay call sub_C814 loc_A27E: call sub_C0F8 loc_A281: kajacall KAJA_SONG_FADE, 4 push ds push offset arg0 ; "op" call sub_A08A locret_A290: leave retf _main endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A292 proc near var_2 = word ptr -2 arg_0 = dword ptr 4 enter 2, 0 call sub_A2D1 pushd [bp+arg_0] call file_ropen or ax, ax jnz short loc_A2AD mov ax, 1 leave retn 4 ; --------------------------------------------------------------------------- loc_A2AD: call file_size mov [bp+var_2], ax mov word_12478, 1F48h push ds push word_12478 push ax call file_read call file_close xor ax, ax leave retn 4 sub_A292 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A2D1 proc near push bp mov bp, sp pop bp retn sub_A2D1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A2D6 proc near push bp mov bp, sp call egc_on mov ax, 0FFF0h mov dx, 4A0h out dx, ax mov ax, 0FFh mov dx, 4A2h out dx, ax mov ax, 3100h mov dx, 4A4h out dx, ax mov ax, 0FFFFh mov dx, 4A8h out dx, ax mov ax, 0 mov dx, 4ACh out dx, ax mov ax, 0Fh mov dx, 4AEh out dx, ax pop bp retn sub_A2D6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A30A proc near var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 enter 4, 0 push si push di mov ax, [bp+arg_2] sar ax, 3 mov dx, [bp+arg_0] shl dx, 6 add ax, dx mov dx, [bp+arg_0] shl dx, 4 add ax, dx mov si, ax call sub_A2D6 xor di, di jmp short loc_A368 ; --------------------------------------------------------------------------- loc_A32F: mov [bp+var_2], 0 jmp short loc_A35E ; --------------------------------------------------------------------------- loc_A336: mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al les bx, dword_FC3C add bx, si mov ax, es:[bx] mov [bp+var_4], ax mov al, 1 out dx, al mov bx, word ptr dword_FC3C add bx, si mov ax, [bp+var_4] mov es:[bx], ax add [bp+var_2], 2 add si, 2 loc_A35E: cmp [bp+var_2], 28h ; '(' jl short loc_A336 inc di add si, 28h ; '(' loc_A368: cmp di, 0C8h jl short loc_A32F call egc_off mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al pop di pop si leave retn 4 sub_A30A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A37F proc near var_8 = dword ptr -8 var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 arg_6 = word ptr 0Ah enter 8, 0 push si push di mov eax, pi_slot_buffers mov [bp+var_8], eax cmp [bp+arg_2], 1 jnz short loc_A39A add word ptr [bp+var_8], 0A0h jmp short loc_A3B2 ; --------------------------------------------------------------------------- loc_A39A: cmp [bp+arg_2], 2 jnz short loc_A3A7 add word ptr [bp+var_8], 0FA00h jmp short loc_A3B2 ; --------------------------------------------------------------------------- loc_A3A7: cmp [bp+arg_2], 3 jnz short loc_A3B2 add word ptr [bp+var_8], 0FAA0h loc_A3B2: mov eax, [bp+var_8] shr eax, 10h mov dx, word ptr [bp+var_8] shr dx, 4 add ax, dx mov dx, word ptr [bp+var_8] and dx, 0Fh mov word ptr [bp+var_8+2], ax mov word ptr [bp+var_8], dx mov dx, 0A4h mov al, 1 out dx, al mov ax, [bp+arg_6] sar ax, 3 mov dx, [bp+arg_4] shl dx, 6 add ax, dx mov dx, [bp+arg_4] shl dx, 4 add ax, dx mov si, ax mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al xor di, di jmp loc_A491 ; --------------------------------------------------------------------------- loc_A3F7: call graph_pack_put_8_noclip pascal, large 400, [bp+var_8], 320 call sub_A2D6 mov ax, 0FFh mov dx, 4A2h out dx, ax mov ax, 3100h mov dx, 4A4h out dx, ax mov ax, 0Fh mov dx, 4AEh out dx, ax mov bx, [bp+arg_0] shl bx, 3 mov ax, di and ax, 3 add ax, ax add bx, ax mov ax, [bx+60Ch] mov dx, 4A8h out dx, ax mov [bp+var_4], 7D00h mov [bp+var_2], 0 jmp short loc_A461 ; --------------------------------------------------------------------------- loc_A444: les bx, dword_FC3C add bx, [bp+var_4] mov ax, es:[bx] mov bx, word ptr dword_FC3C add bx, si mov es:[bx], ax inc [bp+var_2] add si, 2 add [bp+var_4], 2 loc_A461: cmp [bp+var_2], 14h jl short loc_A444 call egc_off add si, 28h ; '(' add word ptr [bp+var_8], 140h mov eax, [bp+var_8] shr eax, 10h mov dx, word ptr [bp+var_8] shr dx, 4 add ax, dx mov dx, word ptr [bp+var_8] and dx, 0Fh mov word ptr [bp+var_8+2], ax mov word ptr [bp+var_8], dx inc di loc_A491: cmp di, 0C8h jl loc_A3F7 mov dx, 0A4h mov al, 0 out dx, al push [bp+arg_6] push [bp+arg_4] call sub_A30A pop di pop si leave retn 8 sub_A37F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A4AE proc near var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 enter 8, 0 push si push di call sub_A57F mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al push 3C00h call hmem_allocbyte mov word ptr dword_1247A+2, ax mov word ptr dword_1247A, 0 xor si, si mov di, 140h mov [bp+var_4], 0 jmp loc_A573 ; --------------------------------------------------------------------------- loc_A4DB: mov [bp+var_2], 50h ; 'P' mov [bp+var_6], 0 jmp loc_A567 ; --------------------------------------------------------------------------- loc_A4E8: mov ax, [bp+var_2] sar ax, 3 mov dx, di shl dx, 6 add ax, dx mov dx, di shl dx, 4 add ax, dx mov [bp+var_8], ax les bx, dword_FC3C add bx, [bp+var_8] mov ax, es:[bx] mov dx, si add dx, dx les bx, dword_1247A add bx, dx mov es:[bx], ax inc si les bx, dword_FC40 add bx, [bp+var_8] mov ax, es:[bx] mov dx, si add dx, dx les bx, dword_1247A add bx, dx mov es:[bx], ax inc si les bx, dword_FC44 add bx, [bp+var_8] mov ax, es:[bx] mov dx, si add dx, dx les bx, dword_1247A add bx, dx mov es:[bx], ax inc si les bx, dword_FC48 add bx, [bp+var_8] mov ax, es:[bx] mov dx, si add dx, dx les bx, dword_1247A add bx, dx mov es:[bx], ax inc si add [bp+var_6], 2 add [bp+var_2], 10h loc_A567: cmp [bp+var_6], 3Ch ; '<' jl loc_A4E8 inc [bp+var_4] inc di loc_A573: cmp [bp+var_4], 40h jl loc_A4DB pop di pop si leave retn sub_A4AE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A57F proc near push bp mov bp, sp cmp dword_1247A, 0 jz short loc_A59C push word ptr dword_1247A+2 call hmem_free mov dword_1247A, 0 loc_A59C: pop bp retn sub_A57F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A59E proc near var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 enter 6, 0 push si push di xor cx, cx mov si, 140h mov [bp+var_4], 0 jmp loc_A641 ; --------------------------------------------------------------------------- loc_A5B1: mov [bp+var_2], 50h ; 'P' mov [bp+var_6], 0 jmp short loc_A637 ; --------------------------------------------------------------------------- loc_A5BD: mov ax, [bp+var_2] sar ax, 3 mov dx, si shl dx, 6 add ax, dx mov dx, si shl dx, 4 add ax, dx mov di, ax mov ax, cx add ax, ax les bx, dword_1247A add bx, ax mov ax, es:[bx] les bx, dword_FC3C add bx, di mov es:[bx], ax inc cx mov ax, cx add ax, ax les bx, dword_1247A add bx, ax mov ax, es:[bx] les bx, dword_FC40 add bx, di mov es:[bx], ax inc cx mov ax, cx add ax, ax les bx, dword_1247A add bx, ax mov ax, es:[bx] les bx, dword_FC44 add bx, di mov es:[bx], ax inc cx mov ax, cx add ax, ax les bx, dword_1247A add bx, ax mov ax, es:[bx] les bx, dword_FC48 add bx, di mov es:[bx], ax inc cx add [bp+var_6], 2 add [bp+var_2], 10h loc_A637: cmp [bp+var_6], 3Ch ; '<' jl short loc_A5BD inc [bp+var_4] inc si loc_A641: cmp [bp+var_4], 40h jl loc_A5B1 pop di pop si leave retn sub_A59E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A64D proc near var_2 = byte ptr -2 var_1 = byte ptr -1 arg_0 = dword ptr 4 enter 2, 0 mov bx, word_12478 mov cl, [bx] inc word_12478 mov bx, word_12478 mov al, [bx] mov [bp+var_1], al inc word_12478 mov bx, word_12478 mov al, [bx] mov [bp+var_2], al inc word_12478 mov al, cl mov ah, 0 mov bx, ax test byte ptr [bx+0B69h], 2 jnz short loc_A694 les bx, [bp+arg_0] mov ax, word_124C4 mov es:[bx], ax sub word_12478, 3 leave retn 4 ; --------------------------------------------------------------------------- loc_A694: mov al, [bp+var_1] mov ah, 0 mov bx, ax test byte ptr [bx+0B69h], 2 jnz short loc_A6B8 mov al, cl mov ah, 0 add ax, 0FFD0h les bx, [bp+arg_0] mov es:[bx], ax sub word_12478, 2 leave retn 4 ; --------------------------------------------------------------------------- loc_A6B8: mov al, [bp+var_2] mov ah, 0 mov bx, ax test byte ptr [bx+0B69h], 2 jnz short loc_A6E8 mov al, cl mov ah, 0 add ax, 0FFD0h imul ax, 0Ah mov dl, [bp+var_1] mov dh, 0 add ax, dx add ax, 0FFD0h les bx, [bp+arg_0] mov es:[bx], ax dec word_12478 leave retn 4 ; --------------------------------------------------------------------------- loc_A6E8: mov al, cl mov ah, 0 add ax, 0FFD0h imul ax, 64h mov dl, [bp+var_1] mov dh, 0 add dx, 0FFD0h imul dx, 0Ah add ax, dx mov dl, [bp+var_2] mov dh, 0 add ax, dx add ax, 0FFD0h les bx, [bp+arg_0] mov es:[bx], ax leave retn 4 sub_A64D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A713 proc near arg_0 = dword ptr 4 push bp mov bp, sp mov bx, word_12478 cmp byte ptr [bx], 2Ch ; ',' jnz short loc_A72E inc word_12478 pushd [bp+arg_0] call sub_A64D pop bp retn 4 ; --------------------------------------------------------------------------- loc_A72E: les bx, [bp+arg_0] mov ax, word_124C4 mov es:[bx], ax pop bp retn 4 sub_A713 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A73B proc near push bp mov bp, sp add word_124BC, 10h cmp word_124BC, 230h jl short loc_A78D add word_124BE, 10h mov word_124BC, 90h cmp word_124BE, 180h jl short loc_A78D call sub_A815 cmp byte_1247E, 0 jnz short loc_A76F push 0 call sub_CE7A loc_A76F: mov word_124BC, 50h ; 'P' mov word_124BE, 140h mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call sub_A59E mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al call sub_A59E loc_A78D: pop bp retn sub_A73B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A78F proc near var_2 = word ptr -2 arg_0 = word ptr 4 enter 2, 0 push si push di mov cx, 140h jmp short loc_A809 ; --------------------------------------------------------------------------- loc_A79A: mov ax, 0FFh mov dx, 4A2h out dx, ax mov ax, 3100h mov dx, 4A4h out dx, ax mov ax, 0Fh mov dx, 4AEh out dx, ax mov bx, [bp+arg_0] shl bx, 3 mov ax, cx and ax, 3 add ax, ax add bx, ax mov ax, [bx+62Ch] mov dx, 4A8h out dx, ax mov ax, cx shl ax, 6 mov dx, cx shl dx, 4 add ax, dx add ax, 0Ah mov si, ax xor di, di jmp short loc_A802 ; --------------------------------------------------------------------------- loc_A7DB: mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al les bx, dword_FC3C add bx, si mov ax, es:[bx] mov [bp+var_2], ax mov al, 0 out dx, al mov bx, word ptr dword_FC3C add bx, si mov ax, [bp+var_2] mov es:[bx], ax add di, 10h add si, 2 loc_A802: cmp di, 1E0h jl short loc_A7DB inc cx loc_A809: cmp cx, 180h jl short loc_A79A pop di pop si leave retn 2 sub_A78F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A815 proc near push bp mov bp, sp push si call sub_A2D6 cmp byte_1247E, 0 jnz short loc_A83A xor si, si jmp short loc_A835 ; --------------------------------------------------------------------------- loc_A827: push si call sub_A78F push word_124C0 call frame_delay inc si loc_A835: cmp si, 4 jl short loc_A827 loc_A83A: push 4 call sub_A78F call egc_off pop si pop bp retn sub_A815 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A847 proc near var_16 = byte ptr -16h var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = byte ptr 4 enter 16h, 0 push si mov al, [bp+arg_0] mov ah, 0 push ax ; ch call _tolower pop cx mov [bp+arg_0], al mov ah, 0 mov [bp+var_6], ax mov cx, 10h ; switch 16 cases mov bx, offset word_ADBC loc_A866: mov ax, cs:[bx] cmp ax, [bp+var_6] jz short loc_A876 add bx, 2 loop loc_A866 jmp loc_ADB5 ; default ; --------------------------------------------------------------------------- loc_A876: jmp word ptr cs:[bx+20h] ; switch jump loc_A87A: add word_124BE, 10h ; jumptable 0000A876 case 110 mov word_124BC, 50h ; 'P' cmp word_124BE, 180h jl loc_ADB5 ; default loc_A88F: mov bx, word_12478 ; jumptable 0000A876 case 115 mov al, [bx] mov [bp+arg_0], al call sub_A815 cmp [bp+arg_0], 2Dh ; '-' jz short loc_A8C0 mov word_124C4, 0 push ss lea ax, [bp+var_2] push ax call sub_A64D cmp byte_1247E, 0 jnz short loc_A8C4 push [bp+var_2] call sub_CE7A jmp short loc_A8C4 ; --------------------------------------------------------------------------- loc_A8C0: inc word_12478 loc_A8C4: mov word_124BC, 50h ; 'P' mov word_124BE, 140h mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call sub_A59E mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al call sub_A59E jmp loc_ADB5 ; default ; --------------------------------------------------------------------------- loc_A8E5: mov word_124C4, 0Fh ; jumptable 0000A876 case 99 push ss lea ax, [bp+var_2] push ax call sub_A64D mov al, byte ptr [bp+var_2] mov byte_124C2, al jmp loc_ADB5 ; default ; --------------------------------------------------------------------------- loc_A8FC: mov word_124C4, 2 ; jumptable 0000A876 case 98 push ss lea ax, [bp+var_2] push ax call sub_A64D mov ax, [bp+var_2] mov word_EB2C, ax jmp loc_ADB5 ; default ; --------------------------------------------------------------------------- loc_A913: mov bx, word_12478 ; jumptable 0000A876 case 119 mov al, [bx] mov ah, 0 push ax ; ch call _tolower pop cx mov [bp+arg_0], al cmp [bp+arg_0], 6Fh ; 'o' jz short loc_A931 cmp [bp+arg_0], 69h ; 'i' jnz short loc_A95F loc_A931: inc word_12478 mov word_124C4, 1 push ss lea ax, [bp+var_2] push ax call sub_A64D cmp [bp+arg_0], 69h ; 'i' jnz short loc_A954 push [bp+var_2] call palette_white_in jmp loc_AD2B ; --------------------------------------------------------------------------- loc_A954: push [bp+var_2] call palette_white_out jmp loc_AD2B ; --------------------------------------------------------------------------- loc_A95F: call sub_A815 mov word_124C4, 40h cmp [bp+arg_0], 6Dh ; 'm' jz short loc_A994 cmp [bp+arg_0], 6Bh ; 'k' jnz short loc_A978 inc word_12478 loc_A978: push ss lea ax, [bp+var_2] push ax call sub_A64D cmp byte_1247E, 0 jnz loc_ADB5 ; default push [bp+var_2] call frame_delay jmp loc_AD2B ; --------------------------------------------------------------------------- loc_A994: inc word_12478 mov bx, word_12478 mov al, [bx] mov [bp+arg_0], al cmp [bp+arg_0], 6Bh ; 'k' jnz short loc_A9AB inc word_12478 loc_A9AB: push ss lea ax, [bp+var_2] push ax call sub_A64D push ss lea ax, [bp+var_4] push ax call sub_A713 cmp byte_1247E, 0 jnz loc_ADB5 ; default push [bp+var_2] push [bp+var_4] call sub_D046 jmp loc_ACFF ; --------------------------------------------------------------------------- loc_A9D2: mov bx, word_12478 ; jumptable 0000A876 case 118 cmp byte ptr [bx], 70h ; 'p' jz short loc_A9F2 mov word_124C4, 1 push ss lea ax, [bp+var_2] push ax call sub_A64D mov ax, [bp+var_2] mov word_124C0, ax jmp loc_ADB5 ; default ; --------------------------------------------------------------------------- loc_A9F2: inc word_12478 mov word_124C4, 0 push ss lea ax, [bp+var_2] push ax call sub_A64D mov dx, 0A4h mov al, byte ptr [bp+var_2] out dx, al jmp loc_ADB5 ; default ; --------------------------------------------------------------------------- loc_AA0E: mov word_124C4, 64h ; 'd' ; jumptable 0000A876 case 116 push ss lea ax, [bp+var_2] push ax call sub_A64D cmp byte_1247E, 0 jnz short loc_AA2A push 1 call frame_delay loc_AA2A: mov ax, [bp+var_2] mov PaletteTone, ax call far ptr palette_show jmp loc_ADB5 ; default ; --------------------------------------------------------------------------- loc_AA38: mov bx, word_12478 ; jumptable 0000A876 case 102 mov al, [bx] mov [bp+arg_0], al cmp [bp+arg_0], 6Dh ; 'm' jz short loc_AA83 cmp [bp+arg_0], 69h ; 'i' jz short loc_AA55 cmp [bp+arg_0], 6Fh ; 'o' jnz loc_ADB5 ; default loc_AA55: inc word_12478 mov word_124C4, 1 push ss lea ax, [bp+var_2] push ax call sub_A64D cmp [bp+arg_0], 69h ; 'i' jnz short loc_AA78 push [bp+var_2] call palette_black_in jmp loc_AD2B ; --------------------------------------------------------------------------- loc_AA78: push [bp+var_2] call palette_black_out jmp loc_AD2B ; --------------------------------------------------------------------------- loc_AA83: inc word_12478 mov word_124C4, 1 push ss lea ax, [bp+var_2] push ax call sub_A64D mov ax, [bp+var_2] add ax, 200h push ax jmp loc_AD26 ; --------------------------------------------------------------------------- loc_AA9F: mov bx, word_12478 ; jumptable 0000A876 case 103 cmp byte ptr [bx], 61h ; 'a' jz short loc_AAF2 mov word_124C4, 8 push ss lea ax, [bp+var_2] push ax call sub_A64D mov [bp+var_4], 0 jmp short loc_AAE0 ; --------------------------------------------------------------------------- loc_AABD: test byte ptr [bp+var_4], 1 jz short loc_AAC7 push 4 jmp short loc_AACA ; --------------------------------------------------------------------------- loc_AAC7: push 18Ch loc_AACA: call graph_scrollup cmp byte_1247E, 0 jnz short loc_AADD push 1 call frame_delay loc_AADD: inc [bp+var_4] loc_AAE0: mov ax, [bp+var_4] cmp ax, [bp+var_2] jle short loc_AABD push 0 call graph_scrollup jmp loc_AD2B ; --------------------------------------------------------------------------- loc_AAF2: inc word_12478 mov word_124C4, 0 push ss lea ax, [bp+var_2] push ax call sub_A64D mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al push word_124BC push word_124BE push [bp+var_2] mov al, byte_124C2 mov ah, 0 push ax call graph_gaiji_putc call sub_A73B jmp loc_ADB5 ; default ; --------------------------------------------------------------------------- loc_AB26: mov word_124C4, 0 ; jumptable 0000A876 case 107 push ss lea ax, [bp+var_2] push ax call sub_A64D cmp byte_1247E, 0 jnz loc_ADB5 ; default push [bp+var_2] call sub_CE7A jmp loc_AD2B ; --------------------------------------------------------------------------- loc_AB48: mov dx, 0A6h ; 'ヲ' ; jumptable 0000A876 case 64 mov al, 1 out dx, al call graph_clear mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al call graph_clear jmp loc_ADB5 ; default ; --------------------------------------------------------------------------- loc_AB61: mov bx, word_12478 ; jumptable 0000A876 case 112 mov al, [bx] mov [bp+arg_0], al inc word_12478 cmp [bp+arg_0], 3Dh ; '=' jz short loc_AB7A cmp [bp+arg_0], 40h jnz short loc_ABAA loc_AB7A: mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al cmp [bp+arg_0], 3Dh ; '=' jnz short loc_AB8D call pi_slot_palette_apply pascal, 0 loc_AB8D: call pi_slot_put pascal, large 0, 0 push 0 call graph_copy_page mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al call sub_A4AE jmp loc_ADB5 ; default ; --------------------------------------------------------------------------- loc_ABAA: cmp [bp+arg_0], 2Dh ; '-' jnz short loc_ABC1 freePISlotLarge 0 jmp loc_ADB5 ; default ; --------------------------------------------------------------------------- loc_ABC1: cmp [bp+arg_0], 70h ; 'p' jnz short loc_ABD1 call pi_slot_palette_apply pascal, 0 jmp loc_AD2B ; --------------------------------------------------------------------------- loc_ABD1: cmp [bp+arg_0], 2Ch ; ',' jz short loc_ABDE dec word_12478 jmp loc_ADB5 ; default ; --------------------------------------------------------------------------- loc_ABDE: mov [bp+var_2], 0 jmp short loc_AC12 ; --------------------------------------------------------------------------- loc_ABE5: mov bx, word_12478 mov al, [bx] mov [bp+arg_0], al inc word_12478 mov ah, 0 mov bx, ax test byte ptr [bx+0B69h], 20h jnz short loc_AC18 cmp [bp+arg_0], 20h ; ' ' jz short loc_AC18 lea bx, [bp+var_16] add bx, [bp+var_2] mov al, [bp+arg_0] mov ss:[bx], al inc [bp+var_2] loc_AC12: cmp [bp+var_2], 0Ch jl short loc_ABE5 loc_AC18: lea bx, [bp+var_16] add bx, [bp+var_2] mov byte ptr ss:[bx], 0 freePISlotLarge 0 push 0 push ss lea ax, [bp+var_16] push ax call pi_slot_load jmp loc_ADB5 ; default ; --------------------------------------------------------------------------- loc_AC3F: mov word_124C4, 4 ; jumptable 0000A876 case 61 mov bx, word_12478 mov al, [bx] mov [bp+arg_0], al cmp [bp+arg_0], 3Dh ; '=' jz short loc_AC94 push ss lea ax, [bp+var_2] push ax call sub_A64D mov dx, 0A4h mov al, 1 out dx, al mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al cmp [bp+var_2], 4 jge short loc_AC70 jmp short loc_ACE0 ; --------------------------------------------------------------------------- loc_AC70: push 0C00000h call grcg_setcolor push 140040h push 3B0107h call grcg_byteboxfill_x mov dx, 7Ch ; '|' mov al, 0 out dx, al jmp short loc_ACF0 ; --------------------------------------------------------------------------- loc_AC94: inc word_12478 push ss lea ax, [bp+var_2] push ax call sub_A64D mov word_124C4, 1 push ss lea ax, [bp+var_4] push ax call sub_A713 xor si, si jmp short loc_ACCF ; --------------------------------------------------------------------------- loc_ACB2: push 0A00040h push [bp+var_2] push si call sub_A37F cmp byte_1247E, 0 jnz short loc_ACCE push [bp+var_4] call frame_delay loc_ACCE: inc si loc_ACCF: cmp si, 4 jl short loc_ACB2 mov dx, 0A4h mov al, 1 out dx, al mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al loc_ACE0: call pi_slot_put_quarter pascal, (160 shl 16) + 64, 0, [bp+var_2] loc_ACF0: mov dx, 0A4h mov al, 0 out dx, al push 0A00040h call sub_A30A loc_ACFF: jmp loc_ADB5 ; default ; --------------------------------------------------------------------------- loc_AD02: mov bx, word_12478 ; jumptable 0000A876 case 109 mov al, [bx] mov [bp+arg_0], al cmp [bp+arg_0], 24h ; '$' jnz short loc_AD1A inc word_12478 push (KAJA_SONG_STOP shl 8) jmp short loc_AD26 ; --------------------------------------------------------------------------- loc_AD1A: cmp [bp+arg_0], 2Ah ; '*' jnz short loc_AD2E inc word_12478 loc_AD24: push (KAJA_SONG_PLAY shl 8) loc_AD26: call snd_kaja_func loc_AD2B: ; Hack db 0e9h db 087h db 000h ; --------------------------------------------------------------------------- loc_AD2E: cmp [bp+arg_0], 2Ch ; ',' ; Hack db 00fh db 085h db 07fh db 000h inc word_12478 mov [bp+var_2], 0 jmp short loc_AD6E ; --------------------------------------------------------------------------- loc_AD41: mov bx, word_12478 mov al, [bx] mov [bp+arg_0], al inc word_12478 mov ah, 0 mov bx, ax test byte ptr [bx+0B69h], 20h jnz short loc_AD74 cmp [bp+arg_0], 20h ; ' ' jz short loc_AD74 lea bx, [bp+var_16] add bx, [bp+var_2] mov al, [bp+arg_0] mov ss:[bx], al inc [bp+var_2] loc_AD6E: cmp [bp+var_2], 0Ch jl short loc_AD41 loc_AD74: lea bx, [bp+var_16] add bx, [bp+var_2] mov byte ptr ss:[bx], 0 kajacall KAJA_SONG_STOP push ss lea ax, [bp+var_16] push ax push SND_LOAD_SONG call snd_load jmp short loc_AD24 ; --------------------------------------------------------------------------- loc_AD95: push ss ; jumptable 0000A876 case 101 lea ax, [bp+var_2] push ax call sub_A64D call sub_D594 push [bp+var_2] call sub_D5A0 call sub_D5DA jmp short loc_ADB5 ; default ; --------------------------------------------------------------------------- loc_ADB1: mov al, 0FFh ; jumptable 0000A876 case 36 jmp short loc_ADB7 ; --------------------------------------------------------------------------- loc_ADB5: mov al, 0 ; default loc_ADB7: pop si leave retn 2 sub_A847 endp ; --------------------------------------------------------------------------- word_ADBC dw 24h, 3Dh, 40h, 62h dw 63h, 65h, 66h, 67h ; value table for switch statement dw 6Bh, 6Dh, 6Eh, 70h dw 73h, 74h, 76h, 77h dw offset loc_ADB1 ; jump table for switch statement dw offset loc_AC3F dw offset loc_AB48 dw offset loc_A8FC dw offset loc_A8E5 dw offset loc_AD95 dw offset loc_AA38 dw offset loc_AA9F dw offset loc_AB26 dw offset loc_AD02 dw offset loc_A87A dw offset loc_AB61 dw offset loc_A88F dw offset loc_AA0E dw offset loc_A9D2 dw offset loc_A913 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_ADFC proc near var_6 = dword ptr -6 var_1 = byte ptr -1 enter 6, 0 mov word ptr [bp+var_6+2], ds mov word ptr [bp+var_6], 654h mov word_124BC, 50h ; 'P' mov word_124BE, 140h mov word_124C0, 1 mov byte_124C2, 0Fh mov word_EB2C, 2 call sub_A4AE mov byte_1247E, 0 loc_AE2D: call far ptr sub_D48A test byte ptr word_10072+1, 10h jz short loc_AE40 mov byte_1247E, 1 jmp short loc_AE45 ; --------------------------------------------------------------------------- loc_AE40: mov byte_1247E, 0 loc_AE45: mov bx, word_12478 mov al, [bx] mov [bp+var_1], al inc word_12478 mov ah, 0 mov bx, ax test byte ptr [bx+0B69h], 20h jnz short loc_AE2D cmp [bp+var_1], 20h ; ' ' jz short loc_AE2D cmp [bp+var_1], 5Ch jnz short loc_AE82 mov bx, word_12478 mov al, [bx] mov [bp+var_1], al inc word_12478 push word ptr [bp+var_1] call sub_A847 cmp al, 0FFh jnz short loc_AE2D jmp short loc_AEC8 ; --------------------------------------------------------------------------- loc_AE82: les bx, [bp+var_6] mov al, [bp+var_1] mov es:[bx], al mov bx, word_12478 mov al, [bx] mov [bp+var_1], al mov bx, word ptr [bp+var_6] mov es:[bx+1], al inc word_12478 mov dx, 0A4h mov al, 0 out dx, al mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al push word_124BC push word_124BE mov al, byte_124C2 mov ah, 0 push ax push word ptr [bp+var_6+2] push bx call far ptr loc_D1FC call sub_A73B jmp loc_AE2D ; --------------------------------------------------------------------------- loc_AEC8: call sub_A59E call sub_A57F leave retn sub_ADFC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_AED0 proc near var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 enter 2, 0 push si push di mov si, [bp+arg_0] or si, si jnz short loc_AEF1 push [bp+arg_4] push [bp+arg_2] mov al, byte_124C6 mov ah, 0 push ax call sub_D356 jmp loc_B027 ; --------------------------------------------------------------------------- loc_AEF1: push 0C0000Fh call grcg_setcolor mov bx, 4 mov ax, si cwd idiv bx mov si, ax push [bp+arg_4] push ax mov al, byte_124C7 mov ah, 0 add ax, ax mov bx, ax push _CosTable8[bx] call sub_CED0 mov di, ax push [bp+arg_2] push si mov al, byte_124C7 mov ah, 0 add ax, ax mov bx, ax push _SinTable8[bx] call sub_CED0 mov [bp+var_2], ax push di push ax mov al, byte_124C6 mov ah, 0 inc ax push ax push 0 call sub_D078 mov al, byte_124C7 add al, 40h mov byte_124C7, al push [bp+arg_4] push si mov ah, 0 add ax, ax mov bx, ax push _CosTable8[bx] call sub_CED0 mov di, ax push [bp+arg_2] push si mov al, byte_124C7 mov ah, 0 add ax, ax mov bx, ax push _SinTable8[bx] call sub_CED0 mov [bp+var_2], ax push di push ax mov al, byte_124C6 mov ah, 0 inc ax push ax push 1 call sub_D078 mov al, byte_124C7 add al, 40h mov byte_124C7, al push [bp+arg_4] push si mov ah, 0 add ax, ax mov bx, ax push _CosTable8[bx] call sub_CED0 mov di, ax push [bp+arg_2] push si mov al, byte_124C7 mov ah, 0 add ax, ax mov bx, ax push _SinTable8[bx] call sub_CED0 mov [bp+var_2], ax push di push ax mov al, byte_124C6 mov ah, 0 inc ax push ax push 2 call sub_D078 mov al, byte_124C7 add al, 40h mov byte_124C7, al push [bp+arg_4] push si mov ah, 0 add ax, ax mov bx, ax push _CosTable8[bx] call sub_CED0 mov di, ax push [bp+arg_2] push si mov al, byte_124C7 mov ah, 0 add ax, ax mov bx, ax push _SinTable8[bx] call sub_CED0 mov [bp+var_2], ax push di push ax mov al, byte_124C6 mov ah, 0 inc ax push ax push 3 call sub_D078 mov al, byte_124C7 add al, 40h mov byte_124C7, al mov dx, 7Ch ; '|' mov al, 0 out dx, al loc_B027: pop di pop si leave retn 6 sub_AED0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B02D proc near var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 enter 2, 0 push si push di mov si, [bp+arg_0] or si, si jnz short loc_B04E push [bp+arg_4] push [bp+arg_2] mov al, byte_124C6 mov ah, 0 push ax call sub_D356 jmp loc_B13E ; --------------------------------------------------------------------------- loc_B04E: push 0C0000Fh call grcg_setcolor mov ax, si cwd sub ax, dx sar ax, 1 mov si, ax push [bp+arg_4] cwd sub ax, dx sar ax, 1 push ax push _CosTable8+192 call sub_CED0 mov di, ax push [bp+arg_2] mov ax, si cwd sub ax, dx sar ax, 1 push ax push _CosTable8+64 call sub_CED0 mov [bp+var_2], ax push di push ax mov al, byte_124C6 mov ah, 0 inc ax push ax push 0 call sub_D078 push [bp+arg_4] push si push _CosTable8+128 call sub_CED0 mov di, ax push [bp+arg_2] push si push _CosTable8 call sub_CED0 mov [bp+var_2], ax push di push ax mov al, byte_124C6 mov ah, 0 inc ax push ax push 1 call sub_D078 push [bp+arg_4] mov ax, si cwd sub ax, dx sar ax, 1 push ax push _CosTable8+448 call sub_CED0 mov di, ax push [bp+arg_2] mov ax, si cwd sub ax, dx sar ax, 1 push ax push _CosTable8+320 call sub_CED0 mov [bp+var_2], ax push di push ax mov al, byte_124C6 mov ah, 0 inc ax push ax push 2 call sub_D078 push [bp+arg_4] push si push _CosTable8+384 call sub_CED0 mov di, ax push [bp+arg_2] push si push _CosTable8+256 call sub_CED0 mov [bp+var_2], ax push di push ax mov al, byte_124C6 mov ah, 0 inc ax push ax push 3 call sub_D078 mov dx, 7Ch ; '|' mov al, 0 out dx, al loc_B13E: pop di pop si leave retn 6 sub_B02D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B144 proc near var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 enter 2, 0 push si push di mov si, [bp+arg_0] or si, si jnz short loc_B165 push [bp+arg_4] push [bp+arg_2] mov al, byte_124C6 mov ah, 0 push ax call sub_D356 jmp loc_B255 ; --------------------------------------------------------------------------- loc_B165: push 0C0000Fh call grcg_setcolor mov ax, si cwd sub ax, dx sar ax, 1 mov si, ax push [bp+arg_4] cwd sub ax, dx sar ax, 1 push ax push _CosTable8 call sub_CED0 mov di, ax push [bp+arg_2] mov ax, si cwd sub ax, dx sar ax, 1 push ax push _SinTable8 call sub_CED0 mov [bp+var_2], ax push di push ax mov al, byte_124C6 mov ah, 0 inc ax push ax push 0 call sub_D078 push [bp+arg_4] push si push _CosTable8 call sub_CED0 mov di, ax push [bp+arg_2] push si push _SinTable8 call sub_CED0 mov [bp+var_2], ax push di push ax mov al, byte_124C6 mov ah, 0 inc ax push ax push 1 call sub_D078 push [bp+arg_4] mov ax, si cwd sub ax, dx sar ax, 1 push ax push _CosTable8+256 call sub_CED0 mov di, ax push [bp+arg_2] mov ax, si cwd sub ax, dx sar ax, 1 push ax push _CosTable8+128 call sub_CED0 mov [bp+var_2], ax push di push ax mov al, byte_124C6 mov ah, 0 inc ax push ax push 2 call sub_D078 push [bp+arg_4] push si push _CosTable8+256 call sub_CED0 mov di, ax push [bp+arg_2] push si push _CosTable8+128 call sub_CED0 mov [bp+var_2], ax push di push ax mov al, byte_124C6 mov ah, 0 inc ax push ax push 3 call sub_D078 mov dx, 7Ch ; '|' mov al, 0 out dx, al loc_B255: pop di pop si leave retn 6 sub_B144 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B25B proc near arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 arg_6 = word ptr 0Ah arg_8 = word ptr 0Ch push bp mov bp, sp push si mov si, [bp+arg_0] mov ax, si cwd sub ax, dx sar ax, 1 mov si, ax mov ax, [bp+arg_8] sub ax, si push ax mov ax, [bp+arg_6] sub ax, si push ax mov ax, si add ax, ax add ax, [bp+arg_4] push ax mov ax, si add ax, ax add ax, [bp+arg_2] push ax call sub_D6F6 pop si pop bp retn 0Ah sub_B25B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B291 proc near var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 enter 2, 0 push si push di mov di, [bp+arg_2] mov si, 3Fh ; '?' mov [bp+var_2], 0 mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al mov dx, 0A4h mov al, 1 jmp short loc_B30B ; --------------------------------------------------------------------------- loc_B2AF: push di push [bp+arg_0] mov al, byte_124C6 mov ah, 0 shl ax, 4 mov bx, ax push word ptr [bx+1B48h] mov al, byte_124C6 mov ah, 0 shl ax, 4 mov bx, ax push word ptr [bx+1B4Ah] lea ax, [si+1] push ax call sub_B25B dec si mov al, byte_124C7 add al, 8 mov byte_124C7, al push di push [bp+arg_0] push si call fp_124C8 loc_B2E8: cmp vsync_Count1, 2 jb short loc_B2E8 mov vsync_Count1, 0 mov dx, 0A4h mov al, byte ptr [bp+var_2] out dx, al mov ax, 1 sub ax, [bp+var_2] mov [bp+var_2], ax mov dx, 0A6h ; 'ヲ' mov al, byte ptr [bp+var_2] loc_B30B: out dx, al or si, si jg short loc_B2AF push [bp+var_2] call graph_copy_page pop di pop si leave retn 4 sub_B291 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B31E proc near var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 enter 2, 0 push si push di mov di, [bp+arg_2] xor si, si mov [bp+var_2], 0 mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al mov dx, 0A4h mov al, 1 loc_B339: out dx, al push di push [bp+arg_0] mov al, byte_124C6 mov ah, 0 shl ax, 4 mov bx, ax push word ptr [bx+1B48h] mov al, byte_124C6 mov ah, 0 shl ax, 4 mov bx, ax push word ptr [bx+1B4Ah] push si call sub_B25B inc si mov al, byte_124C7 add al, 8 mov byte_124C7, al cmp si, 40h jge short loc_B39A push di push [bp+arg_0] push si call fp_124C8 loc_B375: cmp vsync_Count1, 2 jb short loc_B375 mov vsync_Count1, 0 mov dx, 0A4h mov al, byte ptr [bp+var_2] out dx, al mov ax, 1 sub ax, [bp+var_2] mov [bp+var_2], ax mov dx, 0A6h ; 'ヲ' mov al, byte ptr [bp+var_2] jmp short loc_B339 ; --------------------------------------------------------------------------- loc_B39A: mov ax, 1 sub ax, [bp+var_2] push ax call graph_copy_page pop di pop si leave retn 4 sub_B31E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B3AC proc near var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 arg_6 = word ptr 0Ah enter 2, 0 push si push di mov di, [bp+arg_6] xor si, si mov [bp+var_2], 0 mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al mov dx, 0A4h mov al, 1 loc_B3C7: out dx, al push di push [bp+arg_4] push word_10098 push word_1009A push si call sub_B25B push [bp+arg_2] push [bp+arg_0] push word_10078 push word_1007A push si call sub_B25B inc si mov al, byte_124C7 add al, 0F8h mov byte_124C7, al cmp si, 40h jge short loc_B43B mov byte_124C6, 2 push di push [bp+arg_4] push si call fp_124C8 mov byte_124C6, 0 push [bp+arg_2] push [bp+arg_0] push si call fp_124C8 loc_B416: cmp vsync_Count1, 2 jb short loc_B416 mov vsync_Count1, 0 mov dx, 0A4h mov al, byte ptr [bp+var_2] out dx, al mov ax, 1 sub ax, [bp+var_2] mov [bp+var_2], ax mov dx, 0A6h ; 'ヲ' mov al, byte ptr [bp+var_2] jmp short loc_B3C7 ; --------------------------------------------------------------------------- loc_B43B: mov ax, 1 sub ax, [bp+var_2] push ax call graph_copy_page pop di pop si leave retn 8 sub_B3AC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B44D proc near push bp mov bp, sp mov PaletteTone, 0 call far ptr palette_show mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call pi_slot_load pascal, 0, ds, offset aSff1_pi call pi_slot_palette_apply pascal, 0 call pi_slot_put pascal, large 0, 0 freePISlotLarge 0 push 0 call graph_copy_page call sub_D626 kajacall KAJA_SONG_STOP call snd_load pascal, ds, offset aStaff, SND_LOAD_SONG kajacall KAJA_SONG_PLAY push 0Ch call palette_black_in push 0 push ds push offset aSff1_cdg ; "sff1.cdg" push 0 call sub_D77E push 1 push ds push offset aSff1b_cdg ; "sff1b.cdg" push 0 call far ptr sub_D778 push 30040h call sub_D046 mov byte_124C6, 0 mov fp_124C8, offset sub_AED0 push 16000A0h call sub_B291 push 2 push ds push offset aSff2_cdg ; "sff2.cdg" push 0 call sub_D77E push 3 push ds push offset aSff2b_cdg ; "sff2b.cdg" push 0 call far ptr sub_D778 push 700A0h call sub_D046 mov fp_124C8, offset sub_B02D push 16000A0h call sub_B31E mov byte_124C6, 2 mov fp_124C8, offset sub_B144 push 0C00080h call sub_B291 mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al mov byte_124C6, 0 push 0 push ds push offset aSff3_cdg ; "sff3.cdg" push 0 call sub_D77E push 1 push ds push offset aSff3b_cdg ; "sff3b.cdg" push 0 call far ptr sub_D778 push 0B00A0h call sub_D046 push 12000C8h call sub_B291 push 1300A0h call sub_D046 mov fp_124C8, offset sub_B02D push 0C00080h push 12000C8h call sub_B3AC push 4 call palette_black_out call sub_D8CE mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call pi_slot_load pascal, 0, ds, offset aSff2_pi call pi_slot_palette_apply pascal, 0 call pi_slot_put pascal, large 0, 0 freePISlotLarge 0 push 0 call graph_copy_page call sub_D626 push 4 call palette_black_in push 2 push ds push offset aSff4_cdg ; "sff4.cdg" push 0 call sub_D77E push 3 push ds push offset aSff4b_cdg ; "sff4b.cdg" push 0 call far ptr sub_D778 push 1700A0h call sub_D046 mov byte_124C6, 2 mov fp_124C8, offset sub_B144 push 200070h call sub_B291 push 2 call sub_D898 push 4 push ds push offset aSff5_cdg ; "sff5.cdg" push 0 call sub_D77E push 5 push ds push offset aSff5b_cdg ; "sff5b.cdg" push 0 call far ptr sub_D778 push 1B00A0h call sub_D046 mov byte_124C6, 4 mov fp_124C8, offset sub_B02D push 2000B8h call sub_B291 push 0 push ds push offset aSff8_cdg ; "sff8.cdg" push 0 call sub_D77E push 1 push ds push offset aSff8b_cdg ; "sff8b.cdg" push 0 call far ptr sub_D778 push 1F00A0h call sub_D046 mov fp_124C8, offset sub_B144 push 2000B8h call sub_B31E mov byte_124C6, 0 push 4000B8h call sub_B291 push 4 push ds push offset aSff9_cdg ; "sff9.cdg" push 0 call sub_D77E push 5 push ds push offset aSff9b_cdg ; "sff9b.cdg" push 0 call far ptr sub_D778 push 2300A0h call sub_D046 mov fp_124C8, offset sub_AED0 push 4000B8h call sub_B31E mov byte_124C6, 4 push 4000B8h call sub_B291 push 0 push ds push offset aSff6_cdg ; "sff6.cdg" push 0 call sub_D77E push 1 push ds push offset aSff6b_cdg ; "sff6b.cdg" push 0 call far ptr sub_D778 push 2700A0h call sub_D046 mov fp_124C8, offset sub_B02D push 4000B8h call sub_B31E mov byte_124C6, 0 push 2000B8h call sub_B291 push 2B00A0h call sub_D046 mov fp_124C8, offset sub_B144 push 200070h push 2000B8h call sub_B3AC push 0 push ds push offset aSff7_cdg ; "sff7.cdg" push 0 call sub_D77E push 1 push ds push offset aSff7b_cdg ; "sff7b.cdg" push 0 call far ptr sub_D778 mov byte_124C6, 0 push 200150h call sub_B291 push 3000A0h call sub_D046 call sub_D6C4 call sub_D8CE push 4 call palette_black_out pop bp retn sub_B44D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B787 proc near var_6 = word ptr -6 var_4 = byte ptr -4 var_3 = byte ptr -3 var_2 = byte ptr -2 var_1 = byte ptr -1 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 enter 6, 0 push si xor si, si mov [bp+var_4], 2 mov ax, [bp+arg_0] mov bx, 64h ; 'd' xor dx, dx div bx mov [bp+var_6], ax mov ax, [bp+arg_0] xor dx, dx div bx mov [bp+arg_0], dx cmp byte_EC73, 0 jnz short loc_B7C5 or si, [bp+var_6] or si, si jz short loc_B7C1 mov al, byte ptr [bp+var_6] add al, 0A0h mov [bp+var_4], al jmp short loc_B7C5 ; --------------------------------------------------------------------------- loc_B7C1: mov [bp+var_4], 2 loc_B7C5: mov ax, [bp+arg_0] mov bx, 0Ah xor dx, dx div bx mov [bp+var_6], ax mov ax, [bp+arg_0] xor dx, dx div bx mov [bp+arg_0], dx or si, [bp+var_6] mov al, byte_EC73 mov ah, 0 or si, ax or si, si jz short loc_B7F4 mov al, byte ptr [bp+var_6] add al, 0A0h mov [bp+var_3], al jmp short loc_B7F8 ; --------------------------------------------------------------------------- loc_B7F4: mov [bp+var_3], 2 loc_B7F8: mov al, byte ptr [bp+arg_0] add al, 0A0h mov [bp+var_2], al mov [bp+var_1], 0 push [bp+arg_4] push [bp+arg_2] push 10h push ss lea ax, [bp+var_4] push ax push 0Eh call graph_gaiji_puts pop si leave retn 6 sub_B787 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B81D proc near var_C = byte ptr -0Ch var_4 = byte ptr -4 var_2 = byte ptr -2 var_1 = byte ptr -1 enter 0Ch, 0 push si mov [bp+var_2], 0 xor si, si jmp short loc_B851 ; --------------------------------------------------------------------------- loc_B82A: mov ax, 7 sub ax, si les bx, dword_F3CE add bx, ax mov al, es:[bx+1Dh] mov [bp+var_1], al or [bp+var_2], al cmp [bp+var_2], 0 jz short loc_B84C add al, 0A0h mov [bp+si+var_C], al jmp short loc_B850 ; --------------------------------------------------------------------------- loc_B84C: mov [bp+si+var_C], 2 loc_B850: inc si loc_B851: cmp si, 8 jl short loc_B82A mov [bp+var_4], 0 push 0A00060h push 10h push ss lea ax, [bp+var_C] push ax push 0Eh call graph_gaiji_puts mov [bp+var_2], 1 push 1200060h push 0Eh push ds push offset aU_ ; "点" call far ptr loc_D1FC pop si leave retn sub_B81D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B886 proc near var_6 = dword ptr -6 var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 arg_6 = word ptr 0Ah enter 6, 0 push si push di mov si, [bp+arg_6] mov di, [bp+arg_4] cmp [bp+arg_2], 0 jz short loc_B8A2 mov [bp+var_6], 0F4240h jmp short loc_B8AA ; --------------------------------------------------------------------------- loc_B8A2: mov [bp+var_6], 0 loc_B8AA: mov ax, [bp+arg_2] cmp ax, [bp+arg_0] jz short loc_B8E3 cmp [bp+arg_2], 0 jz short loc_B8CD movzx ebx, [bp+arg_2] mov eax, [bp+var_6] xor edx, edx div ebx mov [bp+var_6], eax jmp short loc_B8D5 ; --------------------------------------------------------------------------- loc_B8CD: mov [bp+var_6], 0 loc_B8D5: movzx eax, [bp+arg_0] imul eax, [bp+var_6] mov [bp+var_6], eax loc_B8E3: cmp byte_EC4A, 0 jnz short loc_B8F4 mov eax, dword_124CE add eax, [bp+var_6] jmp short loc_B8FC ; --------------------------------------------------------------------------- loc_B8F4: mov eax, dword_124CE sub eax, [bp+var_6] loc_B8FC: mov dword_124CE, eax mov eax, [bp+var_6] mov ebx, 2710h xor edx, edx div ebx mov [bp+var_2], ax push si push di push ax call sub_B787 mov ebx, 2710h mov eax, [bp+var_6] xor edx, edx div ebx mov [bp+var_6], edx mov eax, [bp+var_6] mov ebx, 64h ; 'd' xor edx, edx div ebx mov [bp+var_2], ax mov byte_EC73, 1 lea ax, [si+30h] push ax push di push [bp+var_2] call sub_B787 mov byte_EC73, 0 lea ax, [si+30h] push ax push di push 0Eh push ds push offset aBd ; "." call far ptr loc_D1FC lea ax, [si+60h] push ax push di push 0Eh push ds push offset aBu ; "%" call far ptr loc_D1FC pop di pop si leave retn 8 sub_B886 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B97B proc near var_2 = word ptr -2 arg_0 = dword ptr 4 arg_4 = word ptr 8 arg_6 = word ptr 0Ah enter 2, 0 push si push di mov si, [bp+arg_6] mov di, [bp+arg_4] mov eax, [bp+arg_0] mov ebx, 2710h xor edx, edx div ebx mov [bp+var_2], ax push si push di push ax call sub_B787 mov ebx, 2710h mov eax, [bp+arg_0] xor edx, edx div ebx mov [bp+arg_0], edx mov eax, [bp+arg_0] mov ebx, 64h ; 'd' xor edx, edx div ebx mov [bp+var_2], ax mov byte_EC73, 1 lea ax, [si+30h] push ax push di push [bp+var_2] call sub_B787 mov byte_EC73, 0 lea ax, [si+30h] push ax push di push 0Eh push ds push offset aBd_0 ; "." call far ptr loc_D1FC pop di pop si leave retn 8 sub_B97B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B9F2 proc near var_8 = dword ptr -8 var_4 = dword ptr -4 enter 8, 0 les bx, dword_F3CE mov eax, es:[bx+14h] mov random_seed, eax mov al, es:[bx+0Ch] mov ah, 0 dec ax mov bx, ax cmp bx, 5 ja short loc_BA52 add bx, bx jmp cs:off_BB75[bx] loc_BA18: mov [bp+var_4], 9C4h jmp short loc_BA52 ; --------------------------------------------------------------------------- loc_BA22: mov [bp+var_4], 7D0h jmp short loc_BA52 ; --------------------------------------------------------------------------- loc_BA2C: mov [bp+var_4], 5DCh jmp short loc_BA52 ; --------------------------------------------------------------------------- loc_BA36: mov [bp+var_4], 3E8h jmp short loc_BA52 ; --------------------------------------------------------------------------- loc_BA40: mov [bp+var_4], 1F4h jmp short loc_BA52 ; --------------------------------------------------------------------------- loc_BA4A: mov [bp+var_4], 0 loc_BA52: les bx, dword_F3CE mov al, es:[bx+0Eh] mov ah, 0 or ax, ax jz short loc_BA67 cmp ax, 1 jz short loc_BA71 jmp short loc_BA79 ; --------------------------------------------------------------------------- loc_BA67: add [bp+var_4], 9C4h jmp short loc_BA79 ; --------------------------------------------------------------------------- loc_BA71: add [bp+var_4], 5DCh loc_BA79: les bx, dword_F3CE cmp byte ptr es:[bx+49h], 0 jz short loc_BA8C add [bp+var_4], 7D0h loc_BA8C: les bx, dword_F3CE cmp word ptr es:[bx+38h], 0 jz short loc_BAA5 mov ax, es:[bx+38h] add ax, ax movzx eax, ax add [bp+var_4], eax loc_BAA5: mov [bp+var_8], 0F4240h les bx, dword_F3CE mov ax, es:[bx+28h] cmp ax, es:[bx+2Ah] jz short loc_BAF3 cmp word ptr es:[bx+28h], 0 jz short loc_BAD8 movzx ebx, word ptr es:[bx+28h] mov eax, [bp+var_8] xor edx, edx div ebx mov [bp+var_8], eax jmp short loc_BAE0 ; --------------------------------------------------------------------------- loc_BAD8: mov [bp+var_8], 0 loc_BAE0: les bx, dword_F3CE movzx eax, word ptr es:[bx+2Ah] imul eax, [bp+var_8] mov [bp+var_8], eax loc_BAF3: mov eax, 0F4240h sub eax, [bp+var_8] mov [bp+var_8], eax mov ebx, 64h ; 'd' xor edx, edx div ebx mov [bp+var_8], eax cmp [bp+var_8], 0 jz short loc_BB2A call IRand cwde xor edx, edx div [bp+var_8] add [bp+var_4], edx loc_BB2A: mov eax, [bp+var_4] imul eax, 64h mov [bp+var_4], eax cmp [bp+var_4], 0F4240h jbe short loc_BB48 mov [bp+var_4], 0F4240h loc_BB48: mov eax, dword_124CE add eax, [bp+var_4] mov dword_124CE, eax push 0C00108h pushd [bp+var_4] call sub_B97B push 1200108h push 0Eh push ds push offset aBu_0 ; "%" call far ptr loc_D1FC leave retn sub_B9F2 endp ; --------------------------------------------------------------------------- db 0 off_BB75 dw offset loc_BA18 dw offset loc_BA22 dw offset loc_BA2C dw offset loc_BA36 dw offset loc_BA40 dw offset loc_BA4A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BB81 proc near var_4 = dword ptr -4 enter 4, 0 push si mov word_EB2C, 2 mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al mov dx, 0A4h out dx, al push 100030h push 0Fh push ds push offset aB@b@b@b@b@b@b@ ; "        腕前判定" call far ptr loc_D1FC push 100048h push 0Fh push ds push offset aUqiUx ; "難易度" call far ptr loc_D1FC push 100060h push 0Fh push ds push offset aNPiuU_ ; "最終得点" call far ptr loc_D1FC push 100078h push 0Fh push ds push offset aGGxi ; "ミス回数" call far ptr loc_D1FC push 100090h push 0Fh push ds push offset aGGaogcpi ; "ボム使用回数" call far ptr loc_D1FC push 1000A8h push 0Fh push ds push offset aGqbGatbrmcj ; "ゲーム達成率" call far ptr loc_D1FC push 1000C0h push 0Fh push ds push offset aIlcSObcj ; "悪霊退治率" call far ptr loc_D1FC push 1000D8h push 0Fh push ds push offset aGagcgegai ; "アイテム回収率" call far ptr loc_D1FC push 1000F0h push 0Fh push ds push offset aUU_gagcgeganNv ; "得点アイテム最高点率" call far ptr loc_D1FC push 100108h push 0Fh push ds push offset aLcnzvv ; "気合い" call far ptr loc_D1FC push 100120h push 0Fh push ds push offset aPicacovCj ; "処理落ち率" call far ptr loc_D1FC push 100150h push 0Fh push ds push offset aVavVVSrso ; "あなたの腕前" call far ptr loc_D1FC les bx, dword_F3CE cmp byte ptr es:[bx+11h], 6 jnz short loc_BC71 mov al, 4 jmp short loc_BC79 ; --------------------------------------------------------------------------- loc_BC71: les bx, dword_F3CE mov al, es:[bx+0Fh] loc_BC79: mov byte_124D2, al push 0B00048h push 10h push ds mov ah, 0 shl ax, 3 add ax, offset grEASY push ax push 0Eh call graph_gaiji_puts call sub_B81D push 0F00078h les bx, dword_F3CE mov al, es:[bx+31h] mov ah, 0 push ax call sub_B787 push 0F00090h les bx, dword_F3CE mov al, es:[bx+32h] mov ah, 0 push ax call sub_B787 push 1200078h push 0Eh push ds push offset aTimes ; "回" call far ptr loc_D1FC push 1200090h push 0Eh push ds push offset aTimes_0 ; "回" call far ptr loc_D1FC mov byte_124CC, 1 les bx, dword_F3CE cmp byte ptr es:[bx+11h], 6 jz short loc_BD0A cmp byte ptr es:[bx+30h], 0FFh jnz short loc_BCFF mov word ptr es:[bx+26h], 0ABE0h loc_BCFF: push 0C000A8h push 0ABE0h jmp short loc_BD24 ; --------------------------------------------------------------------------- loc_BD0A: les bx, dword_F3CE cmp byte ptr es:[bx+30h], 0FDh jnz short loc_BD1B mov word ptr es:[bx+26h], 2EE0h loc_BD1B: push 0C000A8h push 2EE0h loc_BD24: les bx, dword_F3CE push word ptr es:[bx+26h] call sub_B886 mov byte_124CC, 0 push 0C000C0h les bx, dword_F3CE push word ptr es:[bx+34h] push word ptr es:[bx+36h] call sub_B886 push 0C000D8h les bx, dword_F3CE push word ptr es:[bx+28h] push word ptr es:[bx+2Ah] call sub_B886 push 0C000F0h les bx, dword_F3CE push word ptr es:[bx+2Ch] push word ptr es:[bx+2Eh] call sub_B886 call sub_B9F2 push 0C00120h les bx, dword_F3CE mov eax, es:[bx+44h] mov ebx, 0Ah xor edx, edx div ebx push ax mov bx, word ptr dword_F3CE mov eax, es:[bx+40h] mov ebx, 0Ah xor edx, edx div ebx push ax call sub_B886 mov ebx, 5 mov eax, dword_124CE cdq idiv ebx mov dword_124CE, eax les bx, dword_F3CE cmp byte ptr es:[bx+24h], 9 jb short loc_BDD4 add dword_124CE, 927C0h jmp short loc_BE08 ; --------------------------------------------------------------------------- loc_BDD4: les bx, dword_F3CE movzx eax, byte ptr es:[bx+23h] imul eax, 2710h add dword_124CE, eax cmp byte ptr es:[bx+24h], 3 jbe short loc_BE08 mov al, es:[bx+24h] mov ah, 0 add ax, 0FFFDh cwde imul eax, 186A0h add dword_124CE, eax loc_BE08: mov al, byte_124D2 mov ah, 0 mov bx, ax cmp bx, 4 ja short loc_BE6F add bx, bx jmp cs:off_C0EE[bx] loc_BE1B: sub dword_124CE, 0C350h mov [bp+var_4], 0C3500h jmp short loc_BE6F ; --------------------------------------------------------------------------- loc_BE2E: mov [bp+var_4], 0F4240h jmp short loc_BE6F ; --------------------------------------------------------------------------- loc_BE38: add dword_124CE, 249F0h mov [bp+var_4], 124F80h jmp short loc_BE6F ; --------------------------------------------------------------------------- loc_BE4B: add dword_124CE, 493E0h mov [bp+var_4], 155CC0h jmp short loc_BE6F ; --------------------------------------------------------------------------- loc_BE5E: add dword_124CE, 6DDD0h mov [bp+var_4], 16E360h loc_BE6F: les bx, dword_F3CE mov al, es:[bx+0Ch] mov ah, 0 dec ax mov bx, ax cmp bx, 5 ja short loc_BECA add bx, bx jmp cs:off_C0E2[bx] loc_BE88: add dword_124CE, 0C350h add [bp+var_4], 186A0h jmp short loc_BECA ; --------------------------------------------------------------------------- loc_BE9B: add dword_124CE, 61A8h add [bp+var_4], 0C350h jmp short loc_BECA ; --------------------------------------------------------------------------- loc_BEAE: sub [bp+var_4], 61A8h jmp short loc_BECA ; --------------------------------------------------------------------------- loc_BEB8: sub [bp+var_4], 0C350h jmp short loc_BECA ; --------------------------------------------------------------------------- loc_BEC2: sub [bp+var_4], 124F8h loc_BECA: les bx, dword_F3CE mov al, es:[bx+0Eh] mov ah, 0 or ax, ax jz short loc_BEDF cmp ax, 1 jz short loc_BEF2 jmp short loc_BF03 ; --------------------------------------------------------------------------- loc_BEDF: add dword_124CE, 0C350h add [bp+var_4], 186A0h jmp short loc_BF03 ; --------------------------------------------------------------------------- loc_BEF2: add dword_124CE, 4E20h add [bp+var_4], 0C350h loc_BF03: les bx, dword_F3CE cmp byte ptr es:[bx+49h], 0 jnz short loc_BF17 sub dword_124CE, 186A0h loc_BF17: les bx, dword_F3CE cmp byte ptr es:[bx+31h], 0Fh jb short loc_BF2D sub dword_124CE, 493E0h jmp short loc_BF43 ; --------------------------------------------------------------------------- loc_BF2D: les bx, dword_F3CE movzx eax, byte ptr es:[bx+31h] imul eax, 4E20h sub dword_124CE, eax loc_BF43: les bx, dword_F3CE cmp byte ptr es:[bx+32h], 1Eh jb short loc_BF59 sub dword_124CE, 15F90h jmp short loc_BF6F ; --------------------------------------------------------------------------- loc_BF59: les bx, dword_F3CE movzx eax, byte ptr es:[bx+32h] imul eax, 0BB8h sub dword_124CE, eax loc_BF6F: les bx, dword_F3CE cmp byte ptr es:[bx+30h], 0FDh jnb short loc_BFA1 cmp byte_124D2, 4 jz short loc_BF96 mov ebx, 2 mov eax, dword_124CE cdq idiv ebx mov dword_124CE, eax jmp short loc_BFB4 ; --------------------------------------------------------------------------- loc_BF96: sub dword_124CE, 30D40h jmp short loc_BFB4 ; --------------------------------------------------------------------------- loc_BFA1: les bx, dword_F3CE cmp byte ptr es:[bx+30h], 0FEh jnz short loc_BFB4 sub [bp+var_4], 186A0h loc_BFB4: cmp dword_124CE, 0 jge short loc_BFC7 mov dword_124CE, 0 jmp short loc_BFD9 ; --------------------------------------------------------------------------- loc_BFC7: mov eax, dword_124CE cmp eax, [bp+var_4] jbe short loc_BFD9 mov eax, [bp+var_4] mov dword_124CE, eax loc_BFD9: les bx, dword_F3CE mov eax, es:[bx+44h] shr eax, 1 cmp eax, es:[bx+40h] jbe loc_C0AE push 0C00150h pushd [dword_124CE] call sub_B97B push 1200150h push 0Eh push ds push offset aPoint ; "点" call far ptr loc_D1FC push ds push offset a_ude_txt ; "_ude.txt" call file_ropen cmp dword_124CE, 16E360h jge short loc_C084 cmp dword_124CE, 0 jnz short loc_C02E mov si, 19h jmp short loc_C074 ; --------------------------------------------------------------------------- loc_C02E: cmp dword_124CE, 100590h jge short loc_C051 mov eax, dword_124CE mov ebx, 0C350h cdq idiv ebx mov dx, 18h sub dx, ax mov si, dx jmp short loc_C074 ; --------------------------------------------------------------------------- loc_C051: cmp dword_124CE, 124F80h jge short loc_C061 mov si, 3 jmp short loc_C074 ; --------------------------------------------------------------------------- loc_C061: cmp dword_124CE, 149970h jge short loc_C071 mov si, 2 jmp short loc_C074 ; --------------------------------------------------------------------------- loc_C071: mov si, 1 loc_C074: mov ax, si imul ax, 1Eh cwde push eax push 0 call file_seek loc_C084: push ds push offset unk_124D3 push 1Eh call file_read mov byte_124EF, 0 call file_close push 40h call frame_delay push 400168h push 0Fh push ds push offset unk_124D3 jmp short loc_C0CB ; --------------------------------------------------------------------------- loc_C0AE: push 0C00150h push 0Eh push ds push offset aBhbhbhbhbhbhu_ ; "??????点" call far ptr loc_D1FC push 400168h push 0Fh push ds push offset aPicacovVVcvsfT ; "処理落ちによる判定不可" loc_C0CB: call far ptr loc_D1FC push 0 call sub_CE7A push 2 call palette_black_out pop si leave retn sub_BB81 endp ; --------------------------------------------------------------------------- db 0 off_C0E2 dw offset loc_BE88 dw offset loc_BE9B dw offset loc_BECA dw offset loc_BEAE dw offset loc_BEB8 dw offset loc_BEC2 off_C0EE dw offset loc_BE1B dw offset loc_BE2E dw offset loc_BE38 dw offset loc_BE4B dw offset loc_BE5E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C0F8 proc near push bp mov bp, sp mov PaletteTone, 0 call far ptr palette_show mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call pi_slot_load pascal, 0, ds, offset aUde_pi call pi_slot_palette_apply pascal, 0 call pi_slot_put pascal, large 0, 0 freePISlotLarge 0 push 0 call graph_copy_page push 4 call palette_black_in call sub_BB81 pop bp retn sub_C0F8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C149 proc near var_1 = byte ptr -1 enter 2, 0 push si mov si, 4 jmp short loc_C176 ; --------------------------------------------------------------------------- loc_C153: mov al, [si+3FC3h] mov [bp+var_1], al mov al, byte_124F3 ror [bp+var_1], 3 xor [bp+var_1], al mov al, [si+3FC2h] mov dl, byte_124F2 add dl, [bp+var_1] add al, dl mov [si+3FC2h], al inc si loc_C176: cmp si, 0C3h jl short loc_C153 mov al, byte_124F2 add [si+3FC2h], al xor cx, cx mov si, 4 jmp short loc_C193 ; --------------------------------------------------------------------------- loc_C18A: mov al, [si+3FC2h] mov ah, 0 add cx, ax inc si loc_C193: cmp si, 0C4h ; 'ト' jl short loc_C18A mov al, byte ptr word_124F4 sub al, cl pop si leave retn sub_C149 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C1A1 proc near var_1 = byte ptr -1 enter 2, 0 push si mov word_124F4, 0 mov si, 4 jmp short loc_C1BC ; --------------------------------------------------------------------------- loc_C1B1: mov al, [si+3FC2h] mov ah, 0 add word_124F4, ax inc si loc_C1BC: cmp si, 0C4h ; 'ト' jl short loc_C1B1 call IRand mov byte_124F2, al call IRand mov byte_124F3, al mov [bp+var_1], 0 mov si, 0C3h jmp short loc_C1FE ; --------------------------------------------------------------------------- loc_C1DB: mov al, [si+3FC2h] mov dl, byte_124F2 add dl, [bp+var_1] sub al, dl mov [si+3FC2h], al mov al, [si+3FC2h] mov [bp+var_1], al mov al, byte_124F3 ror [bp+var_1], 3 xor [bp+var_1], al dec si loc_C1FE: cmp si, 4 jge short loc_C1DB pop si leave retn sub_C1A1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C206 proc near var_1 = byte ptr -1 enter 2, 0 push si push di mov [bp+var_1], 0A9h ; 'ゥ' xor si, si jmp short loc_C27A ; --------------------------------------------------------------------------- loc_C214: mov byte_125A0, 19h xor di, di jmp short loc_C228 ; --------------------------------------------------------------------------- loc_C21D: mov bx, si shl bx, 3 mov byte ptr [bx+di+4020h], 0A0h inc di loc_C228: cmp di, 8 jl short loc_C21D or si, si jnz short loc_C23D mov bx, si shl bx, 3 mov byte ptr [bx+4025h], 0A1h ; '。' jmp short loc_C24C ; --------------------------------------------------------------------------- loc_C23D: mov bx, si shl bx, 3 mov al, [bp+var_1] mov [bx+4024h], al dec [bp+var_1] loc_C24C: mov ax, si cwd sub ax, dx sar ax, 1 mov dl, 0A5h ; '・' sub dl, al mov [si+4072h], dl xor di, di jmp short loc_C26A ; --------------------------------------------------------------------------- loc_C25F: mov bx, si imul bx, 9 mov byte ptr [bx+di+3FC6h], 0C4h ; 'ト' inc di loc_C26A: cmp di, 8 jl short loc_C25F mov bx, si imul bx, 9 mov byte ptr [bx+3FCEh], 0 inc si loc_C27A: cmp si, 0Ah jl short loc_C214 push ds push offset aGensou_scr ; "GENSOU.SCR" call file_create xor si, si jmp short loc_C29F ; --------------------------------------------------------------------------- loc_C28C: call sub_C1A1 push ds push offset byte_124F2 push 0C4h ; 'ト' call file_write call sub_C149 inc si loc_C29F: cmp si, 0Ah jl short loc_C28C call file_close pop di pop si leave retn sub_C206 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C2AD proc near arg_0 = byte ptr 4 push bp mov bp, sp push ds push offset aGensou_scr_0 ; "GENSOU.SCR" call file_exist or ax, ax jz short loc_C307 push ds push offset aGensou_scr_1 ; "GENSOU.SCR" call file_ropen mov al, byte_125B7 mov ah, 0 imul ax, 0C4h movzx eax, ax push eax push 0 call file_seek cmp [bp+arg_0], 0 jz short loc_C2EF pushd 3D4h push 1 call file_seek loc_C2EF: push ds push offset byte_124F2 push 0C4h ; 'ト' call file_read call file_close call sub_C149 or al, al jz short loc_C310 loc_C307: call sub_C206 mov al, 1 pop bp retn 2 ; --------------------------------------------------------------------------- loc_C310: mov al, 0 pop bp retn 2 sub_C2AD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C316 proc near push bp mov bp, sp push si call sub_C1A1 push ds push offset aGensou_scr_2 ; "GENSOU.SCR" call file_append mov al, byte_125B7 mov ah, 0 imul ax, 0C4h movzx eax, ax push eax push 0 call file_seek cmp byte ptr word_125B8, 0 jz short loc_C350 pushd 3D4h push 1 call file_seek loc_C350: push ds push offset byte_124F2 push 0C4h ; 'ト' call file_write xor si, si jmp short loc_C3A5 ; --------------------------------------------------------------------------- loc_C360: mov ax, si imul ax, 0C4h movzx eax, ax push eax push 0 call file_seek push ds push offset byte_124F2 push 0C4h ; 'ト' call file_read call sub_C149 call sub_C1A1 mov ax, si imul ax, 0C4h movzx eax, ax push eax push 0 call file_seek push ds push offset byte_124F2 push 0C4h ; 'ト' call file_write inc si loc_C3A5: cmp si, 0Ah jl short loc_C360 call file_close pop si pop bp retn sub_C316 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C3B2 proc near var_2 = word ptr -2 enter 2, 0 mov [bp+var_2], 9 jmp short loc_C40E ; --------------------------------------------------------------------------- loc_C3BD: mov cx, 7 jmp short loc_C407 ; --------------------------------------------------------------------------- loc_C3C2: les bx, dword_F3CE add bx, cx mov al, es:[bx+1Dh] mov ah, 0 mov bx, [bp+var_2] shl bx, 3 add bx, cx mov dl, [bx+4020h] mov dh, 0 add dx, 0FF60h cmp ax, dx jg short loc_C40B les bx, dword_F3CE add bx, cx mov al, es:[bx+1Dh] mov ah, 0 mov bx, [bp+var_2] shl bx, 3 add bx, cx mov dl, [bx+4020h] mov dh, 0 add dx, 0FF60h cmp ax, dx jl short loc_C41B dec cx loc_C407: or cx, cx jge short loc_C3C2 loc_C40B: dec [bp+var_2] loc_C40E: cmp [bp+var_2], 0 jge short loc_C3BD mov byte_125B6, 0 jmp short loc_C430 ; --------------------------------------------------------------------------- loc_C41B: cmp [bp+var_2], 9 jnz short loc_C428 mov byte_125B6, 0FFh leave retn ; --------------------------------------------------------------------------- loc_C428: mov al, byte ptr [bp+var_2] inc al mov byte_125B6, al loc_C430: mov [bp+var_2], 8 jmp short loc_C489 ; --------------------------------------------------------------------------- loc_C437: mov cx, 7 jmp short loc_C455 ; --------------------------------------------------------------------------- loc_C43C: mov bx, [bp+var_2] imul bx, 9 add bx, cx mov al, [bx+3FC6h] mov bx, [bp+var_2] imul bx, 9 add bx, cx mov [bx+3FCFh], al dec cx loc_C455: or cx, cx jge short loc_C43C mov cx, 7 jmp short loc_C477 ; --------------------------------------------------------------------------- loc_C45E: mov bx, [bp+var_2] shl bx, 3 add bx, cx mov al, [bx+4020h] mov bx, [bp+var_2] shl bx, 3 add bx, cx mov [bx+4028h], al dec cx loc_C477: or cx, cx jge short loc_C45E mov bx, [bp+var_2] mov al, [bx+4072h] mov [bx+4073h], al dec [bp+var_2] loc_C489: mov al, byte_125B6 mov ah, 0 cmp ax, [bp+var_2] jle short loc_C437 mov cx, 7 jmp short loc_C4AA ; --------------------------------------------------------------------------- loc_C498: mov al, byte_125B6 mov ah, 0 imul ax, 9 add ax, cx mov bx, ax mov byte ptr [bx+3FC6h], 0C4h ; 'ト' dec cx loc_C4AA: or cx, cx jge short loc_C498 mov cx, 7 jmp short loc_C4D1 ; --------------------------------------------------------------------------- loc_C4B3: les bx, dword_F3CE add bx, cx mov al, es:[bx+1Dh] add al, 0A0h mov dl, byte_125B6 mov dh, 0 shl dx, 3 add dx, cx mov bx, dx mov [bx+4020h], al dec cx loc_C4D1: or cx, cx jge short loc_C4B3 les bx, dword_F3CE cmp byte ptr es:[bx+30h], 0FDh jb short loc_C4EE mov al, byte_125B6 mov ah, 0 mov bx, ax mov byte ptr [bx+4072h], 0E9h leave retn ; --------------------------------------------------------------------------- loc_C4EE: les bx, dword_F3CE mov al, es:[bx+11h] add al, 0A1h ; '。' mov dl, byte_125B6 mov dh, 0 mov bx, dx mov [bx+4072h], al leave retn sub_C3B2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C506 proc near var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = byte ptr 4 arg_2 = word ptr 6 enter 4, 0 push si push di mov si, [bp+arg_2] or si, si jnz short loc_C518 mov ax, 60h jmp short loc_C520 ; --------------------------------------------------------------------------- loc_C518: mov ax, si shl ax, 4 add ax, 70h ; 'p' loc_C520: mov [bp+var_4], ax cmp [bp+arg_0], 0 jnz short loc_C52E mov ax, 0ACh ; 'ャ' jmp short loc_C531 ; --------------------------------------------------------------------------- loc_C52E: mov ax, 1E0h loc_C531: mov di, ax mov al, byte_125B6 mov ah, 0 cmp ax, si jnz short loc_C549 mov al, [bp+arg_0] cmp al, byte ptr word_125B8 jnz short loc_C549 mov al, 0Ah jmp short loc_C54B ; --------------------------------------------------------------------------- loc_C549: mov al, 0 loc_C54B: mov [bp+arg_0], al mov bx, si shl bx, 3 mov al, [bx+4027h] mov ah, 0 add ax, 0FF60h cmp ax, 0Ah jl short loc_C589 lea ax, [di-20h] push ax push [bp+var_4] mov bx, si shl bx, 3 mov al, [bx+4027h] mov ah, 0 add ax, 0FF60h mov bx, 0Ah cwd idiv bx mov dl, [bp+arg_0] mov dh, 0 add ax, dx push ax call super_put loc_C589: lea ax, [di-10h] push ax push [bp+var_4] mov bx, si shl bx, 3 mov al, [bx+4027h] mov ah, 0 add ax, 0FF60h mov bx, 0Ah cwd idiv bx mov al, [bp+arg_0] mov ah, 0 add dx, ax push dx call super_put mov [bp+var_2], 6 jmp short loc_C5E0 ; --------------------------------------------------------------------------- loc_C5B8: push di push [bp+var_4] mov bx, si shl bx, 3 add bx, [bp+var_2] mov al, [bx+4020h] mov ah, 0 mov dl, [bp+arg_0] mov dh, 0 add ax, dx add ax, 0FF60h push ax call super_put dec [bp+var_2] add di, 10h loc_C5E0: cmp [bp+var_2], 0 jge short loc_C5B8 pop di pop si leave retn 4 sub_C506 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C5EC proc near var_5 = byte ptr -5 var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 enter 6, 0 push si push di mov si, [bp+arg_4] mov di, [bp+arg_2] mov al, byte_125B6 mov ah, 0 cmp ax, si jnz short loc_C60E mov al, byte ptr word_125B8 mov ah, 0 cmp ax, di jnz short loc_C60E mov al, 7 jmp short loc_C610 ; --------------------------------------------------------------------------- loc_C60E: mov al, 0Ch loc_C610: mov [bp+var_5], al or si, si jnz short loc_C61C mov ax, 60h jmp short loc_C624 ; --------------------------------------------------------------------------- loc_C61C: mov ax, si shl ax, 4 add ax, 70h ; 'p' loc_C624: mov [bp+var_4], ax or di, di jnz short loc_C630 mov ax, 124h jmp short loc_C633 ; --------------------------------------------------------------------------- loc_C630: mov ax, 258h loc_C633: mov [bp+var_2], ax add ax, 2 push ax mov ax, [bp+var_4] add ax, 2 push ax push [bp+arg_0] push 0Eh call graph_gaiji_putc push [bp+var_2] push [bp+var_4] push [bp+arg_0] mov al, [bp+var_5] mov ah, 0 push ax call graph_gaiji_putc pop di pop si leave retn 6 sub_C5EC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C665 proc near var_2 = word ptr -2 arg_0 = byte ptr 4 arg_2 = byte ptr 6 arg_4 = word ptr 8 enter 2, 0 push si push di mov si, [bp+arg_4] cmp [bp+arg_2], 0 jnz short loc_C679 mov ax, 2 jmp short loc_C67C ; --------------------------------------------------------------------------- loc_C679: mov ax, 28h ; '(' loc_C67C: mov di, ax or si, si jnz short loc_C687 mov ax, 6 jmp short loc_C68A ; --------------------------------------------------------------------------- loc_C687: lea ax, [si+7] loc_C68A: mov [bp+var_2], ax mov ax, di shl ax, 3 add ax, 2 push ax mov ax, [bp+var_2] shl ax, 4 add ax, 2 push ax push 800010h call sub_CBF3 mov ax, di shl ax, 3 add ax, 2 push ax mov ax, [bp+var_2] shl ax, 4 add ax, 2 push ax push 10h mov ax, si imul ax, 9 add ax, 3FC6h push ds push ax push 0Eh call graph_gaiji_puts push di push [bp+var_2] mov ax, si imul ax, 9 add ax, 3FC6h push ds push ax push 41h ; 'A' call gaiji_putsa mov al, [bp+arg_0] mov ah, 0 add ax, ax add ax, di push ax push [bp+var_2] mov bx, si imul bx, 9 mov al, [bp+arg_0] mov ah, 0 add bx, ax mov al, [bx+3FC6h] mov ah, 0 push ax push 45h ; 'E' call gaiji_putca pop di pop si leave retn 6 sub_C665 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C711 proc near var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 enter 2, 0 push si push di mov si, [bp+arg_2] cmp byte ptr [bp+arg_0], 0 jnz short loc_C725 mov ax, 10h jmp short loc_C728 ; --------------------------------------------------------------------------- loc_C725: mov ax, 140h loc_C728: mov [bp+var_2], ax or si, si jnz short loc_C734 mov ax, 60h jmp short loc_C73C ; --------------------------------------------------------------------------- loc_C734: mov ax, si shl ax, 4 add ax, 70h ; 'p' loc_C73C: mov di, ax mov ax, [bp+var_2] add ax, 2 push ax lea ax, [di+2] push ax push 10h mov ax, si imul ax, 9 add ax, 3FC6h push ds push ax push 0Eh call graph_gaiji_puts mov al, byte_125B6 mov ah, 0 cmp ax, si jnz short loc_C76E mov al, byte ptr [bp+arg_0] cmp al, byte ptr word_125B8 jz short loc_C787 loc_C76E: push [bp+var_2] push di push 10h mov ax, si imul ax, 9 add ax, 3FC6h push ds push ax push 0Ch call graph_gaiji_puts jmp short loc_C7AB ; --------------------------------------------------------------------------- loc_C787: mov ax, [bp+var_2] mov bx, 8 cwd idiv bx push ax mov ax, di mov bx, 10h cwd idiv bx push ax mov ax, si imul ax, 9 add ax, 3FC6h push ds push ax push 41h ; 'A' call gaiji_putsa loc_C7AB: push si push [bp+arg_0] call sub_C506 push si mov al, byte ptr [bp+arg_0] mov ah, 0 push ax mov al, [si+4072h] mov ah, 0 push ax call sub_C5EC pop di pop si leave retn 4 sub_C711 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C7C9 proc near arg_0 = word ptr 4 push bp mov bp, sp push si xor si, si jmp short loc_C7D9 ; --------------------------------------------------------------------------- loc_C7D1: push si push [bp+arg_0] call sub_C711 inc si loc_C7D9: cmp si, 0Ah jl short loc_C7D1 pop si pop bp retn 2 sub_C7C9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C7E3 proc near arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 push bp mov bp, sp push si push di mov si, [bp+arg_4] mov di, [bp+arg_2] mov ax, si add ax, ax add ax, 17h push ax lea ax, [di+12h] push ax mov bx, di imul bx, 11h mov al, [bx+si+82Ch] mov ah, 0 push ax push [bp+arg_0] call gaiji_putca pop di pop si pop bp retn 6 sub_C7E3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C814 proc near var_A = byte ptr -0Ah var_9 = byte ptr -9 var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 enter 0Ah, 0 push si push di xor si, si mov [bp+var_9], 0 mov PaletteTone, 0 call far ptr palette_show mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call pi_slot_load pascal, 0, ds, offset aHi01_pi call pi_slot_palette_apply pascal, 0 call pi_slot_put pascal, large 0, 0 freePISlotLarge 0 push 0 call graph_copy_page push ds push offset aScnum2_bft ; "scnum2.bft" call super_entry_bfnt les bx, dword_F3CE cmp byte ptr es:[bx+11h], 6 jnz short loc_C87A mov al, 4 jmp short loc_C882 ; --------------------------------------------------------------------------- loc_C87A: les bx, dword_F3CE mov al, es:[bx+0Fh] loc_C882: mov byte_125B7, al les bx, dword_F3CE cmp byte ptr es:[bx+12h], 31h ; '1' jnz short loc_C895 mov ax, 1 jmp short loc_C897 ; --------------------------------------------------------------------------- loc_C895: xor ax, ax loc_C897: mov byte ptr word_125B8, al mov al, 1 sub al, byte ptr word_125B8 push ax call sub_C2AD mov al, byte ptr word_125B8 mov ah, 0 mov dx, 1 sub dx, ax push dx call sub_C7C9 push word_125B8 call sub_C2AD les bx, dword_F3CE cmp byte ptr es:[bx+49h], 0 jnz short loc_C8CB cmp byte_125B7, 4 jnz short loc_C8D9 loc_C8CB: call sub_C3B2 mov al, byte ptr word_125B8 mov ah, 0 push ax call sub_C7C9 jmp short loc_C909 ; --------------------------------------------------------------------------- loc_C8D9: mov byte_125B6, 0FFh mov al, byte ptr word_125B8 mov ah, 0 push ax call sub_C7C9 push 7C00C4h push 9 push ds push offset aGxgnbGvbGhvVGv ; "スローモードでのプレイでは、スコアは記・... call far ptr loc_D1FC push 7800C0h push 2 push ds push offset aGxgnbGvbGhvV_1 ; "スローモードでのプレイでは、スコアは記・... call far ptr loc_D1FC loc_C909: les bx, dword_F3CE cmp byte ptr es:[bx+30h], 0FFh jz short loc_C922 cmp byte ptr es:[bx+30h], 0FDh jz short loc_C922 cmp byte_125B7, 0 jnz short loc_C95E loc_C922: mov al, byte_125A0 mov [bp+var_A], al cmp [bp+var_A], 4 jb short loc_C944 les bx, dword_F3CE cmp byte ptr es:[bx+19h], 0 jnz short loc_C93D mov al, 1 jmp short loc_C93F ; --------------------------------------------------------------------------- loc_C93D: mov al, 2 loc_C93F: mov [bp+var_A], al jmp short loc_C958 ; --------------------------------------------------------------------------- loc_C944: les bx, dword_F3CE cmp byte ptr es:[bx+19h], 0 jnz short loc_C953 mov al, 1 jmp short loc_C955 ; --------------------------------------------------------------------------- loc_C953: mov al, 2 loc_C955: or [bp+var_A], al loc_C958: mov al, [bp+var_A] mov byte_125A0, al loc_C95E: kajacall KAJA_SONG_STOP call snd_load pascal, ds, offset aName, SND_LOAD_SONG kajacall KAJA_SONG_PLAY push 2 call palette_black_in cmp byte_125B6, 0FFh jz loc_CB7F mov [bp+var_6], 0 jmp short loc_C9CB ; --------------------------------------------------------------------------- loc_C990: mov [bp+var_8], 0 jmp short loc_C9C2 ; --------------------------------------------------------------------------- loc_C997: mov ax, [bp+var_8] add ax, ax add ax, 17h push ax mov ax, [bp+var_6] add ax, 12h push ax mov bx, [bp+var_6] imul bx, 11h add bx, [bp+var_8] mov al, [bx+82Ch] mov ah, 0 push ax push 0E1h call gaiji_putca inc [bp+var_8] loc_C9C2: cmp [bp+var_8], 11h jl short loc_C997 inc [bp+var_6] loc_C9CB: cmp [bp+var_6], 3 jl short loc_C990 push 170012h mov al, gALPHABET mov ah, 0 push ax push 85h ; '・ call gaiji_putca xor di, di mov [bp+var_2], 0 call far ptr sub_D48A mov [bp+var_4], 1 loc_C9F6: call sub_D492 cmp [bp+var_4], 0 jnz loc_CB3B test byte ptr word_10072, 0Fh jz short loc_CA6A push di push [bp+var_2] push 0E1h call sub_C7E3 test byte ptr word_10072, 1 jz short loc_CA1E dec [bp+var_2] loc_CA1E: test byte ptr word_10072, 2 jz short loc_CA28 inc [bp+var_2] loc_CA28: test byte ptr word_10072, 4 jz short loc_CA30 dec di loc_CA30: test byte ptr word_10072, 8 jz short loc_CA38 inc di loc_CA38: cmp [bp+var_2], 0 jge short loc_CA45 mov [bp+var_2], 2 jmp short loc_CA50 ; --------------------------------------------------------------------------- loc_CA45: cmp [bp+var_2], 2 jle short loc_CA50 mov [bp+var_2], 0 loc_CA50: or di, di jge short loc_CA59 mov di, 10h jmp short loc_CA60 ; --------------------------------------------------------------------------- loc_CA59: cmp di, 10h jle short loc_CA60 xor di, di loc_CA60: push di push [bp+var_2] push 85h ; '・ call sub_C7E3 loc_CA6A: test byte ptr word_10072, 20h jnz short loc_CA7A test byte ptr word_10072+1, 20h jz loc_CB03 loc_CA7A: mov bx, [bp+var_2] imul bx, 11h mov al, [bx+di+82Ch] mov [bp+var_A], al mov ah, 0 sub ax, 0CDh ; 'ヘ' mov bx, ax cmp bx, 8 ja short loc_CABD add bx, bx jmp cs:off_CB9E[bx] loc_CA9A: mov [bp+var_A], 2 jmp short loc_CABD ; --------------------------------------------------------------------------- loc_CAA0: mov al, byte_125B6 mov ah, 0 imul ax, 9 mov bx, ax mov byte ptr [bx+si+3FC6h], 2 or si, si jle short loc_CAF5 dec si jmp short loc_CAF5 ; --------------------------------------------------------------------------- loc_CAB6: cmp si, 7 jge short loc_CAF5 jmp short loc_CAF4 ; --------------------------------------------------------------------------- loc_CABD: mov al, byte_125B6 mov ah, 0 imul ax, 9 mov dl, [bp+var_A] mov bx, ax mov [bx+si+3FC6h], dl cmp si, 7 jnz short loc_CAEF push di push [bp+var_2] push 0E1h call sub_C7E3 mov di, 10h mov [bp+var_2], 2 push di push [bp+var_2] push 85h ; '・ call sub_C7E3 loc_CAEF: cmp si, 7 jge short loc_CAF5 loc_CAF4: inc si loc_CAF5: mov al, byte_125B6 mov ah, 0 push ax push word_125B8 push si call sub_C665 loc_CB03: test byte ptr word_10072, 10h jz short loc_CB2C mov al, byte_125B6 mov ah, 0 imul ax, 9 mov bx, ax mov byte ptr [bx+si+3FC6h], 2 or si, si jle short loc_CB1E dec si loc_CB1E: mov al, byte_125B6 mov ah, 0 push ax push word_125B8 push si call sub_C665 loc_CB2C: test byte ptr word_10072+1, 10h jnz short loc_CB7A mov ax, word_10072 mov [bp+var_4], ax jmp short loc_CB6B ; --------------------------------------------------------------------------- loc_CB3B: mov ax, word_10072 cmp ax, [bp+var_4] jnz short loc_CB59 inc [bp+var_9] cmp [bp+var_9], 1Eh jbe short loc_CB6B test [bp+var_9], 1 jnz short loc_CB6B mov [bp+var_4], 0 jmp short loc_CB6B ; --------------------------------------------------------------------------- loc_CB59: cmp word_10072, 0 jz short loc_CB62 jmp short loc_CB67 ; --------------------------------------------------------------------------- loc_CB62: mov [bp+var_4], 0 loc_CB67: mov [bp+var_9], 0 loc_CB6B: call far ptr sub_D48A push 1 call frame_delay jmp loc_C9F6 ; --------------------------------------------------------------------------- loc_CB7A: call sub_C316 jmp short loc_CB89 ; --------------------------------------------------------------------------- loc_CB7F: call sub_C316 push 0 call sub_CE7A loc_CB89: call super_free call text_clear push 1 call palette_black_out pop di pop si leave retn sub_C814 endp ; --------------------------------------------------------------------------- off_CB9E dw offset loc_CA9A dw offset loc_CAA0 dw offset loc_CAB6 dw offset loc_CABD dw offset loc_CABD dw offset loc_CABD dw offset loc_CABD dw offset loc_CABD dw offset loc_CB7A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_CBB0 proc near push bp mov bp, sp mov al, 0 out 7Ch, al mov al, 7 out 6Ah, al ; PC-98 GDC (6a): ; mov al, 5 out 6Ah, al ; PC-98 GDC (6a): ; mov al, 80h out 7Ch, al mov al, 6 out 6Ah, al ; PC-98 GDC (6a): ; mov ax, 0FFF0h mov dx, 4A0h out dx, ax mov ax, 0FFh mov dx, 4A2h out dx, ax mov ax, 3100h mov dx, 4A4h out dx, ax mov ax, 0FFFFh mov dx, 4A8h out dx, ax mov ax, 0 mov dx, 4ACh out dx, ax mov ax, 0Fh mov dx, 4AEh out dx, ax pop bp retn sub_CBB0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_CBF3 proc near var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 arg_6 = word ptr 0Ah enter 8, 0 push si push di mov di, [bp+arg_2] call sub_CBB0 mov ax, [bp+arg_6] sar ax, 3 mov dx, [bp+arg_4] shl dx, 6 add ax, dx mov dx, [bp+arg_4] shl dx, 4 add ax, dx mov [bp+var_6], ax mov bx, 10h mov ax, di cwd idiv bx mov di, ax mov [bp+var_4], 0 jmp short loc_CC66 ; --------------------------------------------------------------------------- loc_CC29: mov [bp+var_2], 0 mov si, [bp+var_6] jmp short loc_CC5A ; --------------------------------------------------------------------------- loc_CC33: mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al les bx, dword_FC3C add bx, si mov ax, es:[bx] mov [bp+var_8], ax mov al, 0 out dx, al mov bx, word ptr dword_FC3C add bx, si mov ax, [bp+var_8] mov es:[bx], ax inc [bp+var_2] add si, 2 loc_CC5A: cmp [bp+var_2], di jl short loc_CC33 inc [bp+var_4] add [bp+var_6], 50h ; 'P' loc_CC66: mov ax, [bp+var_4] cmp ax, [bp+arg_0] jl short loc_CC29 call egc_off pop di pop si leave retn 8 sub_CBF3 endp db 0 seg001 ends ; =========================================================================== ; Segment type: Pure code seg002 segment word public 'CODE' use16 assume cs:seg002 ;org 0Ah assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_CC7A proc far push bp mov bp, sp mov dword_FC3C, 0A8000000h mov dword_FC40, 0B0000000h mov dword_FC44, 0B8000000h mov dword_FC48, 0E0000000h pop bp retf sub_CC7A endp include th02/frame_delay.asm include th02/formats/pi_slot_palette_apply.asm include th02/formats/pi_slot_put.asm include th02/formats/pi_slot_load.asm include th03/formats/pi_slot_put_quarter.asm ; --------------------------------------------------------------------------- push di xor ax, ax mov di, 196Ah xor dl, dl jmp short loc_CE71 ; --------------------------------------------------------------------------- loc_CE66: xor dl, dl mov cx, 8 loc_CE6B: rol al, 1 rcr dl, 1 loop loc_CE6B loc_CE71: mov [di], dl inc di inc al jnz short loc_CE66 pop di retf ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_CE7A proc far arg_0 = word ptr 6 push bp mov bp, sp push si push di mov si, [bp+arg_0] xor di, di loc_CE84: nop push cs call sub_D48A push 1 nopcall frame_delay nopcall sub_D492 cmp word_10072, 0 jnz short loc_CE84 or si, si jnz short loc_CEC6 mov si, 270Fh jmp short loc_CEC6 ; --------------------------------------------------------------------------- loc_CEA5: nop push cs call sub_D48A push 1 nopcall frame_delay nopcall sub_D492 cmp word_10072, 0 jnz short loc_CECA inc di cmp si, 270Fh jnz short loc_CEC6 xor di, di loc_CEC6: cmp di, si jl short loc_CEA5 loc_CECA: pop di pop si pop bp retf 2 sub_CE7A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_CED0 proc far arg_0 = word ptr 6 arg_2 = word ptr 8 arg_4 = word ptr 0Ah push bp mov bp, sp movsx eax, [bp+arg_2] movsx edx, [bp+arg_0] imul eax, edx sar eax, 8 add ax, [bp+arg_4] pop bp retf 6 sub_CED0 endp ; --------------------------------------------------------------------------- push bp mov bp, sp push si mov si, [bp+0Eh] mov bx, [bp+6] add bx, bx movsx eax, word ptr [bp+8] movsx edx, word ptr [bx+1F4h] imul eax, edx sar eax, 8 add ax, [bp+0Ch] mov [si], ax movsx eax, word ptr [bp+8] movsx edx, word ptr [bx+174h] imul eax, edx sar eax, 8 add ax, [bp+0Ah] mov [si+2], ax pop si pop bp retf 0Ah include th04/hardware/snd_pmd_resident.asm include th02/hardware/snd_mmd_resident.asm include th04/hardware/snd_kaja_func.asm include th04/hardware/snd_determine_modes.asm ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_D046 proc far arg_0 = word ptr 6 arg_2 = word ptr 8 push bp mov bp, sp cmp snd_bgm_mode, SND_BGM_OFF jnz short loc_D05C push [bp+arg_0] nopcall frame_delay pop bp retf 4 ; --------------------------------------------------------------------------- loc_D05C: mov ah, KAJA_GET_SONG_MEASURE cmp snd_bgm_mode, SND_BGM_MIDI jz short loc_D069 int 60h ; - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE ; BX = handle ; Return: CF set on error, DH = error code ; CF clear if successful jmp short loc_D06E ; --------------------------------------------------------------------------- loc_D069: mov dx, 0C0h int 61h ; reserved for user interrupt loc_D06E: cmp ax, [bp+arg_2] jb short loc_D05C pop bp retf 4 sub_D046 endp ; --------------------------------------------------------------------------- db 0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall __far sub_D078(int, int slot, int, int) sub_D078 proc far arg_0 = word ptr 6 @@slot = word ptr 8 arg_4 = word ptr 0Ah arg_6 = word ptr 0Ch push bp mov bp, sp push si push di mov si, [bp+@@slot] shl si, 4 add si, 1B46h mov cx, [bp+arg_6] mov di, cx sar di, 4 shl di, 1 add di, [si+6] mov ax, [si+8] shl ax, 1 mov byte ptr cs:loc_D0DC+1, al and cx, 0Fh mov bx, cx shl bx, 1 mov bx, [bx+580h] mov word ptr cs:loc_D0E3+1, bx mov word ptr cs:loc_D0F0+1, bx jmp short $+2 shl ax, 1 add ax, 50h ; 'P' mov dx, ax mov ax, [bp+arg_4] mov bx, ax shl ax, 2 add ax, bx add ax, 0A800h mov es, ax push ds mov ax, [si+0Eh] mov si, [si] mov ds, ax mov ax, [bp+arg_0] mov bp, dx mul si mov si, ax cld loc_D0DC: mov ch, 80h lodsw ror ax, cl mov dx, ax loc_D0E3: and ax, 1234h xor dx, ax stosw dec ch loc_D0EB: lodsw ror ax, cl mov bx, ax loc_D0F0: and ax, 1234h xor bx, ax or ax, dx mov dx, bx stosw dec ch jnz short loc_D0EB or dx, dx jz short loc_D107 mov es:[di], dx xor dx, dx loc_D107: sub di, bp jns short loc_D0DC pop ds pop di pop si pop bp retf 8 sub_D078 endp include th04/hardware/snd_load.asm ; --------------------------------------------------------------------------- loc_D1FC: push bp mov bp, sp push si push di push ds mov dx, [bp+0Ah] mov al, 0C0h pushf cli out 7Ch, al popf shr dx, 1 sbb al, al out 7Eh, al shr dx, 1 sbb al, al out 7Eh, al shr dx, 1 sbb al, al out 7Eh, al shr dx, 1 sbb al, al out 7Eh, al mov ax, 0A800h mov es, ax assume es:nothing mov dx, [bp+0Ch] shl dx, 6 mov di, dx shr dx, 2 add di, dx mov cx, [bp+0Eh] mov al, 0Bh out 68h, al mov bx, word_EB2C add bx, bx cmp bx, 8 jb short loc_D258 cmp bx, 10h jnb short loc_D258 mov ax, [bx+5CCh] mov word ptr cs:loc_D350+3, ax mov bx, 8 loc_D258: mov ax, [bx+5C0h] mov word ptr cs:loc_D2BA+1, ax mov ax, [bx+5CAh] mov word ptr cs:loc_D30C+1, ax mov ax, word_EB2E mov word ptr cs:loc_D2D9+1, ax mov word ptr cs:loc_D320+1, ax push ds pop fs assume fs:dseg lds si, [bp+6] lodsb or al, al jz short loc_D2E5 loc_D27E: mov dx, cx shr dx, 3 add di, dx and cx, 7 mov ah, 9 test al, 0E0h jns short loc_D2F7 jp short loc_D2F4 mov ah, al lodsb shl ah, 1 cmp al, 9Fh jnb short loc_D29E cmp al, 80h adc ax, 0FEDFh loc_D29E: sbb al, 0FEh and ax, 7F7Fh out 0A1h, al mov al, ah out 0A3h, al nop loc_D2AA: mov al, ch or al, 20h out 0A5h, al in al, 0A9h mov ah, al mov al, ch out 0A5h, al in al, 0A9h loc_D2BA: call sub_D335 mov bh, al mov bl, 0 shr ax, cl shr bx, cl xchg ah, al stosw mov es:[di], bl add di, 4Eh inc ch cmp ch, 10h jb short loc_D2AA sub di, 500h loc_D2D9: mov dx, 1234h loc_D2DC: xor ch, ch add cx, dx lodsb or al, al jnz short loc_D27E loc_D2E5: mov al, 0Ah out 68h, al xor al, al out 7Ch, al pop ds pop di pop si pop bp retf 0Ah ; --------------------------------------------------------------------------- loc_D2F4: add ax, 80h loc_D2F7: cmp al, 20h ; ' ' jz short loc_D320 out 0A1h, al mov al, ah out 0A3h, al nop loc_D302: mov al, ch or al, 20h out 0A5h, al in al, 0A9h xor ah, ah loc_D30C: call sub_D335 ror ax, cl stosw add di, 4Eh ; 'N' inc ch cmp ch, 10h jb short loc_D302 sub di, 500h loc_D320: mov dx, 1234h shr dx, 1 jmp short loc_D2DC ; --------------------------------------------------------------------------- nop mov dx, ax add dx, dx or ax, dx retn ; --------------------------------------------------------------------------- mov dx, ax shl dx, 1 or ax, dx ; =============== S U B R O U T I N E ======================================= sub_D335 proc near mov dx, ax mov bp, ax add bp, bp or ax, bp xor dx, ax add dx, dx not dx and ax, dx retn sub_D335 endp ; --------------------------------------------------------------------------- call sub_D335 mov bl, ch and bx, 3 add bx, bx loc_D350: and ax, fs:[bx+1234h] retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_D356 proc far arg_0 = word ptr 6 arg_2 = word ptr 8 arg_4 = word ptr 0Ah push bp mov bp, sp push si push di push ds cli mov al, 0C0h out 7Ch, al mov dx, 7Eh ; '~' xor al, al out dx, al out dx, al out dx, al out dx, al sti mov si, [bp+arg_0] shl si, 4 add si, 1B46h mov ax, [si+0Eh] mov word ptr cs:loc_D3CD+1, ax jmp short $+2 mov ax, [bp+arg_2] mov bx, ax shl ax, 2 add ax, bx add ax, 0A800h mov es, ax assume es:nothing push 0 add ax, 3800h push ax sub ax, 2800h push ax sub ax, 800h push ax mov ax, [bp+arg_4] shr ax, 3 add ax, [si+6] mov di, ax mov bx, ax mov ax, [si+8] mov bp, ax shl ax, 2 add ax, 50h ; 'P' mov dx, ax mov ax, [si+0Ch] mov ds, ax xor si, si cld nop loc_D3BE: mov cx, bp rep movsd sub di, dx jns short loc_D3BE xor al, al out 7Ch, al xor si, si loc_D3CD: mov ax, 1234h mov ds, ax assume ds:nothing loc_D3D2: mov di, bx loc_D3D4: mov cx, bp loc_D3D6: lodsd or es:[di], eax add di, 4 loop loc_D3D6 sub di, dx jns short loc_D3D4 pop ax mov es, ax or ax, ax jnz short loc_D3D2 pop ds assume ds:dseg pop di pop si pop bp retf 6 sub_D356 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_D3F4 proc far push bp mov bp, sp call pfend mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call graph_clear mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al call graph_clear mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al mov dx, 0A4h out dx, al call mem_unassign call vsync_end call text_clear call js_end call egc_start call bgm_finish pop bp retf sub_D3F4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_D43C proc far arg_0 = dword ptr 6 push bp mov bp, sp push word_10070 call mem_assign_dos or ax, ax jz short loc_D453 mov ax, 1 pop bp retf 4 ; --------------------------------------------------------------------------- loc_D453: mov bbufsiz, 1000h nopcall sub_CC7A call vsync_start call egc_start call graph_400line call sub_2B6E pushd [bp+arg_0] call pfstart push 800h call bgm_init xor ax, ax pop bp retf 4 sub_D43C endp ; --------------------------------------------------------------------------- db 0 ; =============== S U B R O U T I N E ======================================= sub_D48A proc near xor ax, ax mov word_10072, ax mov word_F3F6, ax sub_D48A endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_D492 proc far xor ax, ax mov es, ax mov ah, byte ptr es:[531h] test ah, 4 jz short loc_D4A5 or word_10072, 1 loc_D4A5: test ah, 20h jz short loc_D4AF or word_10072, 2 loc_D4AF: test ah, 8 jz short loc_D4B9 or word_10072, 4 loc_D4B9: test ah, 10h jz short loc_D4C3 or word_10072, 8 loc_D4C3: mov ah, byte ptr es:[533h] test ah, 1 jz short loc_D4D2 or word_10072, 8 loc_D4D2: test ah, 4 jz short loc_D4DD or word_10072, 400h loc_D4DD: test ah, 8 jz short loc_D4E7 or word_10072, 2 loc_D4E7: test ah, 10h jz short loc_D4F2 or word_10072, 800h loc_D4F2: mov ah, byte ptr es:[532h] test ah, 40h jz short loc_D501 or word_10072, 4 loc_D501: test ah, 4 jz short loc_D50C or word_10072, 100h loc_D50C: test ah, 8 jz short loc_D516 or word_10072, 1 loc_D516: test ah, 10h jz short loc_D521 or word_10072, 200h loc_D521: mov ah, byte ptr es:[52Fh] test ah, 2 jz short loc_D530 or word_10072, 20h loc_D530: test ah, 4 jz short loc_D53A or word_10072, 10h loc_D53A: mov ah, byte ptr es:[52Ch] test ah, 1 jz short loc_D54A or word_10072, 4000h loc_D54A: mov ah, byte ptr es:[52Ah] test ah, 1 jz short loc_D55A or word_10072, 1000h loc_D55A: mov ah, byte ptr es:[52Dh] test ah, 10h jz short loc_D56A or word_10072, 2000h loc_D56A: mov ah, byte ptr es:[530h] test ah, 10h jz short loc_D579 or word_10072, 20h loc_D579: mov ah, 2 int 18h ; TRANSFER TO ROM BASIC ; causes transfer to ROM-based BASIC (IBM-PC) ; often reboots a compatible; often has no effect at all and al, 1 mov byte_10074, al cmp word_E658, 0 jz short locret_D592 call sub_2CFC or word_10072, ax locret_D592: retf sub_D492 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_D594 proc far mov byte_EB31, 0 mov byte_EB30, 0FFh retf sub_D594 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_D5A0 proc far mov bx, sp mov dx, ss:[bx+4] cmp snd_se_mode, SND_SE_OFF jz short locret_D5D6 cmp byte_EB30, 0FFh jnz short loc_D5BB mov byte_EB30, dl retf 2 ; --------------------------------------------------------------------------- loc_D5BB: mov bl, byte_EB30 xor bh, bh mov al, [bx+55Eh] mov bx, dx cmp al, [bx+55Eh] ja short locret_D5D6 mov byte_EB30, dl mov byte_EB31, 0 locret_D5D6: retf 2 sub_D5A0 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_D5DA proc far cmp snd_se_mode, SND_SE_OFF jz short locret_D625 cmp byte_EB30, 0FFh jz short locret_D625 cmp byte_EB31, 0 jnz short loc_D607 mov al, byte_EB30 cmp snd_se_mode, SND_SE_BEEP jz short loc_D5FF mov ah, PMD_SE_PLAY int 60h ; - Banyan VINES, 3com - GET STATION ADDRESS ; Return: AL = status, 00h successful, ES:SI -> 6-byte station address ; 02h semaphore service is unavailable jmp short loc_D607 ; --------------------------------------------------------------------------- loc_D5FF: xor ah, ah push ax call bgm_sound loc_D607: inc byte_EB31 mov bl, byte_EB30 xor bh, bh mov al, [bx+56Fh] cmp al, byte_EB31 jnb short locret_D625 mov byte_EB31, 0 mov byte_EB30, 0FFh locret_D625: retf sub_D5DA endp ; =============== S U B R O U T I N E ======================================= sub_D626 proc far push si push di cmp word_EB32, 0 jnz short loc_D65B push 7D00h call hmem_allocbyte mov word_EB32, ax push 7D00h call hmem_allocbyte mov word_EB34, ax push 7D00h call hmem_allocbyte mov word_EB36, ax push 7D00h call hmem_allocbyte mov word_EB38, ax loc_D65B: mov dl, 4 push ds push 0E000h push word_EB38 push 0B800h push word_EB36 push 0B000h push word_EB34 push 0A800h push word_EB32 loc_D67A: pop es assume es:nothing pop ds xor si, si xor di, di mov cx, 1F40h rep movsd dec dl jnz short loc_D67A pop ds pop di pop si retf sub_D626 endp ; sp-analysis failed ; --------------------------------------------------------------------------- push si push di mov dl, 4 push ds push 0E000h push word_EB38 push 0B800h push word_EB36 push 0B000h push word_EB34 push 0A800h push word_EB32 loc_D6AF: pop ds pop es xor si, si xor di, di mov cx, 1F40h rep movsd dec dl jnz short loc_D6AF pop ds pop di pop si retf ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_D6C4 proc far cmp word_EB32, 0 jz short locret_D6F5 push word_EB32 call hmem_free push word_EB34 call hmem_free push word_EB36 call hmem_free push word_EB38 call hmem_free mov word_EB32, 0 locret_D6F5: retf sub_D6C4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_D6F6 proc far arg_0 = word ptr 6 arg_2 = word ptr 8 arg_4 = word ptr 0Ah arg_6 = word ptr 0Ch push bp mov bp, sp push di push si push ds cld mov ax, [bp+arg_6] mov dx, [bp+arg_4] mov bx, ax sar bx, 4 shl bx, 1 shl dx, 6 add bx, dx shr dx, 2 add bx, dx mov word ptr cs:loc_D75B+1, bx and ax, 0Fh mov cx, ax add ax, [bp+arg_2] shr ax, 4 or cx, cx jz short loc_D729 inc ax loc_D729: mov word ptr cs:loc_D760+1, ax jmp short $+2 mov cx, 28h ; '(' sub cx, ax shl cx, 1 mov ax, [bp+arg_0] mov bp, cx push 0E000h push word_EB38 push 0B800h push word_EB36 push 0B000h push word_EB34 push 0A800h push word_EB32 mov dl, 4 loc_D759: mov bx, ax loc_D75B: mov di, 1234h pop ds pop es loc_D760: mov cx, 1234h mov si, di rep movsw add di, bp dec bx jns short loc_D760 dec dl jnz short loc_D759 pop ds pop si pop di pop bp retf 8 sub_D6F6 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_D778 proc near mov byte_EB3A, 1 nop sub_D778 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_D77E proc far arg_0 = word ptr 6 arg_2 = dword ptr 8 arg_6 = word ptr 0Ch push bp mov bp, sp push si push di mov di, [bp+arg_6] push di nopcall sub_D898 shl di, 4 add di, 1B46h pushd [bp+arg_2] call file_ropen push ds push di push 10h call file_read mov ax, [di] mov dx, ax cmp byte ptr [di+0Bh], 0 jz short loc_D7BA shl ax, 2 cmp byte ptr [di+0Bh], 2 jz short loc_D7BA add ax, dx loc_D7BA: mul [bp+arg_0] movzx eax, ax push eax push 1 call file_seek call sub_D7DE call file_close mov byte_EB3A, 0 pop di pop si pop bp retf 8 sub_D77E endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_D7DE proc near mov al, [di+0Bh] or al, al jz short loc_D813 cmp al, 2 jz short loc_D7F0 cmp byte_EB3A, 0 jnz short loc_D806 loc_D7F0: push word ptr [di] call hmem_allocbyte mov [di+0Ch], ax push ax push 0 push word ptr [di] call file_read jmp short loc_D813 ; --------------------------------------------------------------------------- loc_D806: movzx eax, word ptr [di] push eax push 1 call file_seek loc_D813: cmp byte ptr [di+0Bh], 2 jz short locret_D835 mov ax, [di] shl ax, 2 push ax call hmem_allocbyte mov [di+0Eh], ax push ax push 0 mov ax, [di] shl ax, 2 push ax call file_read locret_D835: retn sub_D7DE endp ; --------------------------------------------------------------------------- mov byte_EB3A, 1 nop push bp mov bp, sp push si push di pushd dword ptr [bp+6] call file_ropen mov di, [bp+0Ah] shl di, 4 add di, 1B46h push ds push di push 10h call file_read mov si, di mov bp, [bp+0Ah] mov al, [si+0Ah] mov byte_10476, al push ds pop es assume es:dseg loc_D86A: push bp call sub_D898 mov cx, 3 rep movsd sub si, 0Ch sub di, 0Ch call sub_D7DE inc bp add di, 10h dec byte_10476 jnz short loc_D86A call file_close mov byte_EB3A, 0 pop di pop si pop bp retf 6 ; =============== S U B R O U T I N E ======================================= sub_D898 proc far mov bx, sp push di mov di, ss:[bx+4] shl di, 4 add di, 1B52h cmp word ptr [di], 0 jz short loc_D8B6 push word ptr [di] call hmem_free mov word ptr [di], 0 loc_D8B6: add di, 2 cmp word ptr [di], 0 jz short loc_D8C9 push word ptr [di] call hmem_free mov word ptr [di], 0 loc_D8C9: pop di retf 2 sub_D898 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_D8CE proc far push si mov si, 3Fh ; '?' loc_D8D2: push si call sub_D898 dec si jge short loc_D8D2 pop si retf sub_D8CE endp seg002 ends ; =========================================================================== ; Segment type: Pure code seg003 segment byte public 'CODE' use16 assume cs:seg003 ;org 0Ch assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing include libs/BorlandC/ctor2[textc].asm include libs/BorlandC/ctor3[textc].asm include libs/BorlandC/strings[textc].asm dd 0, 0, 0 seg003 ends ; =========================================================================== ; Segment type: Pure data dseg segment para public 'DATA' use16 assume cs:dseg include libs/BorlandC/c0[data].asm off_E5C0 dd a_ed000_txt ; "_ED000.TXT" aMiko_cfg db 'MIKO.CFG',0 a_ed000_txt db '_ED000.TXT',0 aCong00_pi db 'CONG00.pi',0 aMSzlEd_dat db '幻想郷ed.dat',0 aGameft_bft db 'GAMEFT.bft',0 ; char arg0[] arg0 db 'op',0 db 0 include libs/master.lib/atrtcmod[data].asm include libs/master.lib/bfnt_id[data].asm include libs/master.lib/clip[data].asm include libs/master.lib/fil[data].asm include libs/master.lib/dos_ropen[data].asm include libs/master.lib/get_machine_98[data].asm include libs/master.lib/get_machine_at[data].asm include libs/master.lib/gaiji_backup[data].asm include libs/master.lib/gaiji_entry_bfnt[data].asm include libs/master.lib/grp[data].asm word_E658 dw 0 dw 0 dw 0 dw 0 include libs/master.lib/machine[data].asm include libs/master.lib/pal[data].asm include libs/master.lib/pf[data].asm include libs/master.lib/rand[data].asm include libs/master.lib/sin8[data].asm include libs/master.lib/tx[data].asm include libs/master.lib/vs[data].asm include libs/master.lib/wordmask[data].asm include libs/master.lib/mem[data].asm include libs/master.lib/super_entry_bfnt[data].asm include libs/master.lib/superpa[data].asm include th02/formats/pfopen[data].asm include libs/master.lib/bgm_timerhook[data].asm include libs/master.lib/bgm[data].asm dw 0 db 20h db 10h db 2 db 12h db 12h db 40h db 10h db 11h db 2 db 12h db 20h db 20h db 20h db 20h db 0 db 0 db 0 db 24h ; $ db 10h db 4 db 10h db 8 db 30h ; 0 db 50h ; P db 11h db 4 db 0Bh db 50h ; P db 50h ; P db 50h ; P db 20h db 0 db 0FFh db 0FFh db 7Fh db 0FFh db 3Fh ; ? db 0FFh db 1Fh db 0FFh db 0Fh db 0FFh db 7 db 0FFh db 3 db 0FFh db 1 db 0FFh db 0 db 0FFh db 0 db 7Fh db 0 db 3Fh ; ? db 0 db 1Fh db 0 db 0Fh db 0 db 7 db 0 db 3 db 0 db 1 include th04/hardware/snd[data].asm db 0 include th04/hardware/snd_load[data].asm db 71h ; q db 0 db 6Bh ; k db 0 db 78h ; x db 0 db 72h ; r db 0 db 89h db 0 db 1Fh db 0 db 19h db 0 db 26h ; & db 0 db 20h db 0 db 37h ; 7 db 0 db 0DCh db 5 db 0E4h ; ・ db 5 db 0ECh db 5 db 0F4h db 5 db 88h db 88h db 0 db 0 db 22h ; " db 22h ; " db 0 db 0 db 88h db 88h db 44h ; D db 44h ; D db 22h ; " db 22h ; " db 11h db 11h db 0AAh ; ェ db 0AAh ; ェ db 44h ; D db 44h ; D db 0AAh ; ェ db 0AAh ; ェ db 11h db 11h db 0AAh ; ェ db 0AAh ; ェ db 55h ; U db 55h ; U db 0AAh ; ェ db 0AAh ; ェ db 55h ; U db 55h ; U word_EB2C dw 2 word_EB2E dw 10h byte_EB30 db 0FFh byte_EB31 db 0 word_EB32 dw 0 word_EB34 dw 0 word_EB36 dw 0 word_EB38 dw 0 byte_EB3A db 0 db 0 db 0 db 0 db 11h db 11h db 0 db 0 db 44h ; D db 44h ; D db 88h db 88h db 11h db 11h db 22h ; " db 22h ; " db 44h ; D db 44h ; D db 0AAh ; ェ db 0AAh ; ェ db 55h ; U db 55h ; U db 0AAh ; ェ db 0AAh ; ェ db 55h ; U db 55h ; U db 0EEh db 0EEh db 77h ; w db 77h ; w db 0BBh ; サ db 0BBh ; サ db 0DDh db 0DDh db 88h db 88h db 0 db 0 db 22h ; " db 22h ; " db 0 db 0 db 88h db 88h db 44h ; D db 44h ; D db 22h ; " db 22h ; " db 11h db 11h db 0AAh ; ェ db 0AAh ; ェ db 44h ; D db 44h ; D db 0AAh ; ェ db 0AAh ; ェ db 11h db 11h db 0AAh ; ェ db 0AAh ; ェ db 44h ; D db 44h ; D db 0AAh ; ェ db 0AAh ; ェ db 55h ; U db 55h ; U db 0FFh db 0FFh db 0FFh db 0FFh db 0FFh db 0FFh db 0FFh db 0FFh db 20h db 20h db 0 db 0 aSff1_pi db 'sff1.pi',0 aStaff db 'staff',0 aSff1_cdg db 'sff1.cdg',0 aSff1b_cdg db 'sff1b.cdg',0 aSff2_cdg db 'sff2.cdg',0 aSff2b_cdg db 'sff2b.cdg',0 aSff3_cdg db 'sff3.cdg',0 aSff3b_cdg db 'sff3b.cdg',0 aSff2_pi db 'sff2.pi',0 aSff4_cdg db 'sff4.cdg',0 aSff4b_cdg db 'sff4b.cdg',0 aSff5_cdg db 'sff5.cdg',0 aSff5b_cdg db 'sff5b.cdg',0 aSff8_cdg db 'sff8.cdg',0 aSff8b_cdg db 'sff8b.cdg',0 aSff9_cdg db 'sff9.cdg',0 aSff9b_cdg db 'sff9b.cdg',0 aSff6_cdg db 'sff6.cdg',0 aSff6b_cdg db 'sff6b.cdg',0 aSff7_cdg db 'sff7.cdg',0 aSff7b_cdg db 'sff7b.cdg',0 db 0 byte_EC4A db 0 include th04/strings/verdict[data].asm byte_EC73 db 0 aU_ db '点',0 aBd db '.',0 aBu db '%',0 aBd_0 db '.',0 aBu_0 db '%',0 aB@b@b@b@b@b@b@ db '        腕前判定',0 aUqiUx db '難易度',0 aNPiuU_ db '最終得点',0 aGGxi db 'ミス回数',0 aGGaogcpi db 'ボム使用回数',0 aGqbGatbrmcj db 'ゲーム達成率',0 aIlcSObcj db '悪霊退治率',0 aGagcgegai db 'アイテム回収率',0 aUU_gagcgeganNv db '得点アイテム最高点率',0 aLcnzvv db '気合い',0 aPicacovCj db '処理落ち率',0 aVavVVSrso db 'あなたの腕前',0 aTimes db '回',0 aTimes_0 db '回',0 aPoint db '点',0 a_ude_txt db '_ude.txt',0 aBhbhbhbhbhbhu_ db '??????点',0 aPicacovVVcvsfT db '処理落ちによる判定不可',0 aUde_pi db 'ude.pi',0 db 0 gALPHABET db 0AAh, 0ABh, 0ACh, 0ADh, 0AEh, 0AFh, 0B0h, 0B1h, 0B2h db 0B3h, 0B4h, 0B5h, 0B6h, 0B7h, 0B8h, 0B9h, 0BAh, 0BBh db 0BCh, 0BDh, 0BEh, 0BFh, 0C0h, 0C1h, 0C2h, 0C3h, 0C4h db 0C5h, 3, 6, 7, 8, 0Ch, 0Fh, 0A0h, 0A1h, 0A2h, 0A3h db 0A4h, 0A5h, 0A6h, 0A7h, 0A8h, 0A9h, 0E6h, 0E7h, 0E8h db 0CEh, 0CFh, 0CDh, 0D5h aGensou_scr db 'GENSOU.SCR',0 aGensou_scr_0 db 'GENSOU.SCR',0 aGensou_scr_1 db 'GENSOU.SCR',0 aGensou_scr_2 db 'GENSOU.SCR',0 aHi01_pi db 'hi01.pi',0 aScnum2_bft db 'scnum2.bft',0 aGxgnbGvbGhvVGv db 'スローモードでのプレイでは、スコアは記録されません',0 aGxgnbGvbGhvV_1 db 'スローモードでのプレイでは、スコアは記録されません',0 aName db 'name',0 db 0 include libs/BorlandC/_abort[data].asm include libs/BorlandC/atexit[data].asm include libs/BorlandC/exit[data].asm include libs/BorlandC/files[data].asm include libs/BorlandC/ioerror[data].asm include libs/BorlandC/new[data].asm include libs/BorlandC/stklen[data].asm include libs/BorlandC/ctype[data].asm include libs/BorlandC/xxv[data].asm include libs/BorlandC/cputype[data].asm include libs/BorlandC/fbrk[data].asm include libs/BorlandC/signal[data].asm include libs/BorlandC/pathops[data].asm include libs/BorlandC/srchenv[data].asm include libs/BorlandC/srchstr[data].asm include libs/BorlandC/setvbuf[data].asm include libs/BorlandC/sysnerr[data].asm include libs/BorlandC/xx[data].asm include libs/BorlandC/setenvp[data].asm include libs/BorlandC/strings[data].asm include libs/BorlandC/loadprog[data].asm InitStart label byte include libs/BorlandC/new[initdata].asm include libs/BorlandC/setupio[initdata].asm include libs/BorlandC/cputype[initdata].asm include libs/BorlandC/pathops[initdata].asm include libs/BorlandC/setenvp[initdata].asm InitEnd label byte ExitStart label byte include libs/BorlandC/new[exitdata].asm ExitEnd label byte bdata@ label byte ; TODO: Missing clip[bss].asm (8 bytes) somewhere in there... dword_F3CE dd 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 include libs/master.lib/fil[bss].asm word_F3F6 dw 0 db 0 db 0 include libs/master.lib/pal[bss].asm include libs/master.lib/vs[bss].asm include libs/master.lib/vsync[bss].asm include libs/master.lib/mem[bss].asm include libs/master.lib/superpa[bss].asm dword_FC3C dd 0 dword_FC40 dd 0 dword_FC44 dd 0 dword_FC48 dd 0 include libs/master.lib/pfint21[bss].asm include th02/formats/pi_slots[bss].asm db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 include th04/hardware/snd_interrupt[bss].asm include libs/master.lib/bgm[bss].asm include th02/hardware/snd_load[bss].asm word_10070 dw ? word_10072 dw ? byte_10074 db ? db ? ; dw ? word_10078 dw ? word_1007A dw ? dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; word_10098 dw ? word_1009A dw ? dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; db ? ; byte_10476 db ? dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; db ? dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; db ? ; db ? ; word_12478 dw ? dword_1247A dd ? byte_1247E db ? dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; word_124BC dw ? word_124BE dw ? word_124C0 dw ? byte_124C2 db ? db ? ; word_124C4 dw ? byte_124C6 db ? byte_124C7 db ? fp_124C8 dw ? dw ? byte_124CC db ? db ? ; dword_124CE dd ? byte_124D2 db ? unk_124D3 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; db ? ; db ? ; byte_124EF db ? db ? ; db ? ; byte_124F2 db ? byte_124F3 db ? word_124F4 dw ? dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; db ? ; word_12530 dw ? word_12532 dw ? dword_12534 dd ? word_12538 dw ? word_1253A dw ? dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; byte_125A0 db ? dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; byte_125B6 db ? byte_125B7 db ? word_125B8 dw ? include libs/BorlandC/atexit[bss].asm include libs/BorlandC/sigdata[bss].asm include libs/BorlandC/xxv[bss].asm include libs/BorlandC/signal[bss].asm include libs/BorlandC/xx[bss].asm edata@ label byte dseg ends include libs/BorlandC/stack.asm end startx