; ; +-------------------------------------------------------------------------+ ; | This file has been generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2009 by Hex-Rays, | ; +-------------------------------------------------------------------------+ ; ; Input MD5 : E6F971B37336C0F9FCE53F895780031E ; File Name : th02/MAINE.EXE ; Format : MS-DOS executable (EXE) ; Base Address: 0h Range: 0h-FCF0h Loaded length: DE32h ; Entry Point : 0:0 ; OS type : MS DOS ; Application type: Executable 16bit CGROUP00 group seg000 CGROUP01 group seg001 CGROUP02 group seg002 CGROUP03 group seg003 CGROUP04 group seg004 CGROUP05 group seg005 CGROUP06 group seg006 .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 th02/th02.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/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/cutline.asm include libs/master.lib/dos_axdx.asm include libs/master.lib/dos_filesize.asm include libs/master.lib/dos_setvect.asm include libs/master.lib/egc.asm include libs/master.lib/egc_shift_down.asm include libs/master.lib/egc_shift_left.asm include libs/master.lib/file_append.asm include libs/master.lib/file_close.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_boxfill.asm include libs/master.lib/grcg_line.asm include libs/master.lib/grcg_setcolor.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_gaiji_putc.asm include libs/master.lib/graph_gaiji_puts.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/key_sense.asm include libs/master.lib/over_put_8.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/palette_entry_rgb.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/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_entry_pat.asm include libs/master.lib/super_entry_at.asm include libs/master.lib/super_entry_bfnt.asm include libs/master.lib/pfint21.asm db 0 include th02/formats/pfopen.asm include libs/master.lib/pf_str_ieq.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/f_scopy.asm include libs/BorlandC/getdate.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/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/mbjmsjis.asm include libs/BorlandC/loadprog.asm seg000 ends ; =========================================================================== ; Segment type: Pure code seg001 segment byte public 'CODE' use16 assume cs:seg001 ;org 3 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_95A3 proc near var_2 = word ptr -2 arg_0 = dword ptr 4 enter 2, 0 pushd [bp+arg_0] call file_ropen call file_size mov [bp+var_2], ax push ds push offset unk_DE32 push ax call file_read call file_close leave retn 4 sub_95A3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_95CB proc near var_9 = byte ptr -9 var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 4 arg_4 = word ptr 8 arg_6 = word ptr 0Ah enter 0Ah, 0 push si push di mov di, 0A0h mov [bp+var_4], 989680h mov [bp+var_9], 0 xor si, si jmp short loc_9638 ; --------------------------------------------------------------------------- loc_95E4: mov eax, [bp+arg_0] cdq idiv [bp+var_4] mov ebx, 0Ah cdq idiv ebx mov [bp+var_8], edx mov eax, [bp+var_4] cdq idiv ebx mov [bp+var_4], eax mov ax, word ptr [bp+var_8] add ax, 0A0h mov di, ax cmp [bp+var_8], 0 jz short loc_961D mov [bp+var_9], 1 loc_961D: cmp [bp+var_9], 0 jz short loc_9637 mov ax, si shl ax, 4 add ax, [bp+arg_6] push ax push [bp+arg_4] push di push 0Fh call graph_gaiji_putc loc_9637: inc si loc_9638: cmp si, 8 jl short loc_95E4 pop di pop si leave retn 8 sub_95CB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9643 proc near var_50 = byte ptr -50h arg_0 = word ptr 4 arg_2 = dword ptr 6 arg_6 = word ptr 0Ah arg_8 = word ptr 0Ch arg_A = word ptr 0Eh enter 50h, 0 push si push di lea ax, [bp+var_50] push ss push ax push ds push offset unk_D030 mov cx, 50h ; 'P' call SCOPY@ xor si, si xor di, di jmp short loc_96C4 ; --------------------------------------------------------------------------- loc_9660: call sub_B536 les bx, [bp+arg_2] add bx, si mov al, es:[bx] mov [bp+si+var_50], al inc si mov bx, word ptr [bp+arg_2] add bx, si mov al, es:[bx] mov [bp+si+var_50], al inc si mov [bp+si+var_50], 0 push ss lea ax, [bp+var_50] push ax mov al, byte_F02A cbw push ax push [bp+arg_8] push [bp+arg_A] call sub_B200 add sp, 0Ah cmp byte_F02B, 0 jz short loc_96B9 cmp word_FAEE, 0 jz short loc_96B9 test di, 3 jz short loc_96C1 mov ax, [bp+arg_0] mov bx, 3 cwd idiv bx push ax jmp short loc_96BC ; --------------------------------------------------------------------------- loc_96B9: push [bp+arg_0] loc_96BC: call frame_delay loc_96C1: add di, 2 loc_96C4: cmp di, [bp+arg_6] jl short loc_9660 xor si, si jmp short loc_96EC ; --------------------------------------------------------------------------- loc_96CD: call sub_B536 cmp byte_F02B, 0 jz short loc_96E4 cmp word_FAEE, 0 jz short loc_96E4 push 0 jmp short loc_96E6 ; --------------------------------------------------------------------------- loc_96E4: push 2 loc_96E6: call frame_delay inc si loc_96EC: cmp si, 14h jl short loc_96CD cmp byte_F02B, 0 jz short loc_96FB call sub_9A7E loc_96FB: pop di pop si leave retn 0Ch sub_9643 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9701 proc far var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 6 arg_2 = word ptr 8 arg_4 = dword ptr 0Ah enter 8, 0 push si push di mov ax, [bp+arg_0] sar ax, 3 mov dx, [bp+arg_2] shl dx, 6 add ax, dx mov dx, [bp+arg_2] shl dx, 4 add ax, dx mov si, ax xor di, di jmp loc_97E6 ; --------------------------------------------------------------------------- loc_9724: mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al les bx, dword_F892 add bx, si mov ax, es:[bx] mov [bp+var_8], ax les bx, dword_F896 add bx, si mov ax, es:[bx] mov [bp+var_6], ax les bx, dword_F89A add bx, si mov ax, es:[bx] mov [bp+var_4], ax les bx, dword_F89E add bx, si mov ax, es:[bx] mov [bp+var_2], ax mov al, 0 out dx, al push 0C00000h call grcg_setcolor mov ax, di add ax, ax les bx, [bp+arg_4] add bx, ax mov ax, es:[bx] les bx, dword_F892 add bx, si mov es:[bx], ax call grcg_off mov ax, di add ax, ax les bx, [bp+arg_4] add bx, ax mov ax, es:[bx] and ax, [bp+var_8] les bx, dword_F892 add bx, si or es:[bx], ax mov ax, di add ax, ax les bx, [bp+arg_4] add bx, ax mov ax, es:[bx] and ax, [bp+var_6] les bx, dword_F896 add bx, si or es:[bx], ax mov ax, di add ax, ax les bx, [bp+arg_4] add bx, ax mov ax, es:[bx] and ax, [bp+var_4] les bx, dword_F89A add bx, si or es:[bx], ax mov ax, di add ax, ax les bx, [bp+arg_4] add bx, ax mov ax, es:[bx] and ax, [bp+var_2] les bx, dword_F89E add bx, si or es:[bx], ax add si, 50h ; 'P' inc di loc_97E6: cmp di, 10h jl loc_9724 pop di pop si leave retf sub_9701 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_97F1 proc far var_60 = byte ptr -60h arg_0 = word ptr 6 arg_2 = word ptr 8 arg_4 = word ptr 0Ah enter 60h, 0 push si push di lea ax, [bp+var_60] push ss push ax push ds push offset aKkuukkuukkuukk ; "ェェUUェェUUェェUUェェUUェェUUェェUUェェUUェェUU3333フフフ"... mov cx, 60h call SCOPY@ xor di, di jmp short loc_983D ; --------------------------------------------------------------------------- loc_980C: xor si, si jmp short loc_9830 ; --------------------------------------------------------------------------- loc_9810: mov ax, di shl ax, 5 lea dx, [bp+var_60] add ax, dx push ss push ax push [bp+arg_2] mov ax, si shl ax, 4 add ax, [bp+arg_0] push ax call sub_9701 add sp, 8 inc si loc_9830: cmp si, [bp+arg_4] jl short loc_9810 push 0Ah call frame_delay inc di loc_983D: cmp di, 3 jl short loc_980C pop di pop si leave retf sub_97F1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9846 proc near var_2 = byte ptr -2 var_1 = byte ptr -1 arg_0 = dword ptr 4 arg_4 = word ptr 8 enter 2, 0 push si push di mov di, [bp+arg_4] mov si, 64h ; 'd' mov [bp+var_2], 0 xor cx, cx jmp short loc_98A1 ; --------------------------------------------------------------------------- loc_985A: mov ax, di cwd idiv si mov [bp+var_1], al cmp [bp+var_2], 0 jnz short loc_986B mov [bp+var_2], al loc_986B: cmp [bp+var_2], 0 jnz short loc_9876 cmp cx, 2 jnz short loc_9885 loc_9876: les bx, [bp+arg_0] add bx, cx mov al, [bp+var_1] add al, 0A0h mov es:[bx], al jmp short loc_988E ; --------------------------------------------------------------------------- loc_9885: les bx, [bp+arg_0] add bx, cx mov byte ptr es:[bx], 0CFh ; 'マ' loc_988E: mov al, [bp+var_1] cbw imul si sub di, ax inc cx mov bx, 0Ah mov ax, si cwd idiv bx mov si, ax loc_98A1: cmp cx, 3 jl short loc_985A les bx, [bp+arg_0] add bx, cx mov byte ptr es:[bx], 0 pop di pop si leave retn 6 sub_9846 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_98B5 proc near var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 4 enter 6, 0 push si push di cmp [bp+arg_0], 0 jnz short loc_98C5 xor ax, ax jmp short loc_98DE ; --------------------------------------------------------------------------- loc_98C5: cmp [bp+arg_0], 1 jnz short loc_98D0 mov ax, 28h ; '(' jmp short loc_98DE ; --------------------------------------------------------------------------- loc_98D0: cmp [bp+arg_0], 2 jnz short loc_98DB mov ax, 3E80h jmp short loc_98DE ; --------------------------------------------------------------------------- loc_98DB: mov ax, 3EA8h loc_98DE: mov si, ax mov di, 1F54h call sub_C10B mov [bp+var_2], 0 jmp short loc_9930 ; --------------------------------------------------------------------------- loc_98EF: mov [bp+var_4], 0 jmp short loc_9921 ; --------------------------------------------------------------------------- loc_98F6: mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al les bx, dword_F892 add bx, si mov ax, es:[bx] mov [bp+var_6], ax mov al, 0 out dx, al mov bx, word ptr dword_F892 add bx, di mov ax, [bp+var_6] mov es:[bx], ax add [bp+var_4], 2 add si, 2 add di, 2 loc_9921: cmp [bp+var_4], 28h ; '(' jl short loc_98F6 inc [bp+var_2] add di, 28h ; '(' add si, 28h ; '(' loc_9930: cmp [bp+var_2], 0C8h ; 'ネ' jl short loc_98EF call egc_off pop di pop si leave retn 2 sub_98B5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9942 proc near 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 enter 6, 0 push si push di cmp [bp+arg_0], 0 jnz short loc_9952 xor ax, ax jmp short loc_996B ; --------------------------------------------------------------------------- loc_9952: cmp [bp+arg_0], 1 jnz short loc_995D mov ax, 28h ; '(' jmp short loc_996B ; --------------------------------------------------------------------------- loc_995D: cmp [bp+arg_0], 2 jnz short loc_9968 mov ax, 3E80h jmp short loc_996B ; --------------------------------------------------------------------------- loc_9968: mov ax, 3EA8h loc_996B: mov si, ax mov ax, [bp+arg_4] sar ax, 3 mov dx, [bp+arg_2] shl dx, 6 add ax, dx mov dx, [bp+arg_2] shl dx, 4 add ax, dx mov di, ax call sub_C10B mov [bp+var_2], 0 jmp short loc_99D2 ; --------------------------------------------------------------------------- loc_9991: mov [bp+var_4], 0 jmp short loc_99C3 ; --------------------------------------------------------------------------- loc_9998: mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al les bx, dword_F892 add bx, si mov ax, es:[bx] mov [bp+var_6], ax mov al, 0 out dx, al mov bx, word ptr dword_F892 add bx, di mov ax, [bp+var_6] mov es:[bx], ax add [bp+var_4], 2 add si, 2 add di, 2 loc_99C3: cmp [bp+var_4], 28h ; '(' jl short loc_9998 inc [bp+var_2] add di, 28h ; '(' add si, 28h ; '(' loc_99D2: cmp [bp+var_2], 0C8h ; 'ネ' jl short loc_9991 call egc_off pop di pop si leave retn 6 sub_9942 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_99E4 proc near 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 enter 6, 0 push si push di cmp [bp+arg_4], 0 jnz short loc_99F4 xor ax, ax jmp short loc_9A0D ; --------------------------------------------------------------------------- loc_99F4: cmp [bp+arg_4], 1 jnz short loc_99FF mov ax, 28h ; '(' jmp short loc_9A0D ; --------------------------------------------------------------------------- loc_99FF: cmp [bp+arg_4], 2 jnz short loc_9A0A mov ax, 3E80h jmp short loc_9A0D ; --------------------------------------------------------------------------- loc_9A0A: mov ax, 3EA8h loc_9A0D: mov si, ax mov di, 1F54h mov ax, [bp+arg_2] imul ax, 50h add si, ax call sub_C10B mov ax, [bp+arg_2] mov [bp+var_2], ax jmp short loc_9A68 ; --------------------------------------------------------------------------- loc_9A27: mov [bp+var_4], 0 jmp short loc_9A59 ; --------------------------------------------------------------------------- loc_9A2E: mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al les bx, dword_F892 add bx, si mov ax, es:[bx] mov [bp+var_6], ax mov al, 0 out dx, al mov bx, word ptr dword_F892 add bx, di mov ax, [bp+var_6] mov es:[bx], ax add [bp+var_4], 2 add si, 2 add di, 2 loc_9A59: cmp [bp+var_4], 28h ; '(' jl short loc_9A2E inc [bp+var_2] add di, 28h ; '(' add si, 28h ; '(' loc_9A68: mov ax, [bp+arg_0] add ax, [bp+arg_2] cmp ax, [bp+var_2] jg short loc_9A27 call egc_off pop di pop si leave retn 6 sub_99E4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9A7E proc near var_2 = word ptr -2 enter 2, 0 push si push di push 0C00000h call grcg_setcolor mov si, 14Ch jmp short loc_9AC5 ; --------------------------------------------------------------------------- loc_9A94: mov di, 90h jmp short loc_9ABE ; --------------------------------------------------------------------------- loc_9A99: mov ax, di sar ax, 3 mov dx, si shl dx, 6 add ax, dx mov dx, si shl dx, 4 add ax, dx mov [bp+var_2], ax les bx, dword_F892 add bx, [bp+var_2] mov word ptr es:[bx], 0FFFFh add di, 10h loc_9ABE: cmp di, 1F0h jl short loc_9A99 inc si loc_9AC5: cmp si, 15Ch jl short loc_9A94 call grcg_off pop di pop si leave retn sub_9A7E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9AD4 proc near push bp mov bp, sp push si push ds push (offset aKkuukkuukkuukk+60h) call sub_95A3 push 1Eh call frame_delay push 1 call palette_white_out call snd_load c, offset aEnding_m, ds, SND_LOAD_SONG kajacall KAJA_SONG_PLAY pop cx call sub_9A7E push 4 call palette_white_in push 5 call sub_B855 pop cx mov si, 0A0h jmp short loc_9B5C ; --------------------------------------------------------------------------- loc_9B1B: push si push 64h ; 'd' lea ax, [si+13Fh] push ax push 12B0004h call egc_shift_left push 0C00000h call grcg_setcolor lea ax, [si+138h] push ax push 64h ; 'd' lea ax, [si+13Fh] push ax push 12Bh call grcg_boxfill call grcg_off push 1 call frame_delay sub si, 4 loc_9B5C: cmp si, 24h ; '$' jg short loc_9B1B pop si pop bp retn sub_9AD4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9B64 proc near push bp mov bp, sp push si push ds push offset aEnd1_txt ; "end1.txt" call sub_95A3 call snd_load c, offset aEnd1_m, ds, SND_LOAD_SONG kajacall KAJA_SONG_PLAY pop cx mov PaletteTone, 0 call far ptr palette_show mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call pi_slot_load c, 0, offset aEd01_pi, ds call pi_slot_palette_apply stdcall, 0 pop cx call pi_slot_put c, 0, large 0 freePISlotLarge 0 push 2 call palette_black_in push 28h ; '(' call frame_delay push 0 call sub_98B5 mov byte_F02A, 2Fh ; '/' mov byte_F02B, 1 push 90014Ch push 2Ch ; ',' push ds push offset unk_DE32 push 6 call sub_9643 push 14h call frame_delay push 1 call palette_black_out push 1 call sub_98B5 push 1 call palette_black_in mov si, 1 jmp short loc_9C2D ; --------------------------------------------------------------------------- loc_9C15: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_9C2D: cmp si, 3 jle short loc_9C15 push 2 call sub_98B5 mov si, 4 jmp short loc_9C54 ; --------------------------------------------------------------------------- loc_9C3C: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_9C54: cmp si, 5 jle short loc_9C3C mov byte_F02A, 26h ; '&' push 90014Ch push 2Ch ; ',' push ds push offset unk_DF46 push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' mov si, 7 jmp short loc_9C91 ; --------------------------------------------------------------------------- loc_9C79: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_9C91: cmp si, 9 jle short loc_9C79 mov byte_F02A, 26h ; '&' push 90014Ch push 2Ch ; ',' push ds push offset unk_DFFE push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_E02C push 6 call sub_9643 push 14h call frame_delay push 90014Ch push 2Ch ; ',' push ds push offset unk_E05A push 6 call sub_9643 xor si, si jmp short loc_9D10 ; --------------------------------------------------------------------------- loc_9CDE: mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al push 0A00064h push 1DF0129h push 2 call egc_shift_down push 3 mov ax, si add ax, ax mov dx, 0C6h ; 'ニ' sub dx, ax push dx push 2 call sub_99E4 push 1 call frame_delay inc si loc_9D10: cmp si, 64h ; 'd' jl short loc_9CDE push 90014Ch push 2Ch ; ',' push ds push offset unk_E088 push 6 call sub_9643 mov byte_F02A, 26h ; '&' mov si, 0Eh jmp short loc_9D48 ; --------------------------------------------------------------------------- loc_9D30: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_9D48: cmp si, 0Fh jle short loc_9D30 mov byte_F02A, 2Fh ; '/' mov si, 10h jmp short loc_9D6F ; --------------------------------------------------------------------------- loc_9D57: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_9D6F: cmp si, 11h jle short loc_9D57 mov byte_F02A, 26h ; '&' mov si, 12h jmp short loc_9D96 ; --------------------------------------------------------------------------- loc_9D7E: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_9D96: cmp si, 14h jle short loc_9D7E mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_E1F8 push 6 call sub_9643 mov byte_F02A, 26h ; '&' push 90014Ch push 2Ch ; ',' push ds push offset unk_E226 push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_E254 push 6 call sub_9643 mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call pi_slot_load c, 0, offset aEd02_pi, ds call pi_slot_palette_apply stdcall, 0 pop cx call pi_slot_put c, 0, large 0 freePISlotLarge 0 push 2 call palette_black_out les bx, dword_FB02 cmp byte ptr es:[bx+26h], 0 jnz short loc_9E2A push 0 jmp short loc_9E3B ; --------------------------------------------------------------------------- loc_9E2A: les bx, dword_FB02 cmp byte ptr es:[bx+26h], 1 jnz short loc_9E39 push 2 jmp short loc_9E3B ; --------------------------------------------------------------------------- loc_9E39: push 3 loc_9E3B: call sub_98B5 push 2 call palette_black_in mov byte_F02A, 26h ; '&' push 90014Ch push 2Ch ; ',' push ds push offset unk_E282 push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' mov si, 19h jmp short loc_9E7D ; --------------------------------------------------------------------------- loc_9E65: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_9E7D: cmp si, 1Ah jle short loc_9E65 mov byte_F02A, 26h ; '&' les bx, dword_FB02 cmp byte ptr es:[bx+26h], 0 jnz loc_9F22 mov si, 1Bh jmp short loc_9EB1 ; --------------------------------------------------------------------------- loc_9E99: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_9EB1: cmp si, 1Ch jle short loc_9E99 mov byte_F02A, 2Fh ; '/' mov si, 1Dh jmp short loc_9ED8 ; --------------------------------------------------------------------------- loc_9EC0: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_9ED8: cmp si, 1Eh jle short loc_9EC0 push 1 call sub_98B5 mov byte_F02A, 26h ; '&' push 90014Ch push 2Ch ; ',' push ds push offset unk_E3C4 push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_E3F2 push 0Ch call sub_9643 mov byte_F02B, 0 push 90014Ch push 2Ch ; ',' push ds push offset unk_E420 jmp loc_A092 ; --------------------------------------------------------------------------- loc_9F22: les bx, dword_FB02 cmp byte ptr es:[bx+26h], 1 jnz loc_9FD3 push 90014Ch push 2Ch ; ',' push ds push offset unk_E44E push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_E47C push 6 call sub_9643 mov byte_F02A, 26h ; '&' push 90014Ch push 2Ch ; ',' push ds push offset unk_E4AA push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' mov si, 25h ; '%' jmp short loc_9F8E ; --------------------------------------------------------------------------- loc_9F76: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_9F8E: cmp si, 26h ; '&' jle short loc_9F76 mov byte_F02A, 26h ; '&' push 90014Ch push 2Ch ; ',' push ds push offset unk_E534 push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_E562 push 0Ch call sub_9643 mov byte_F02B, 0 push 90014Ch push 2Ch ; ',' push ds push offset unk_E590 jmp loc_A092 ; --------------------------------------------------------------------------- loc_9FD3: les bx, dword_FB02 cmp byte ptr es:[bx+26h], 2 jnz loc_A097 push 90014Ch push 2Ch ; ',' push ds push offset unk_E5BE push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_E5EC push 6 call sub_9643 mov byte_F02A, 26h ; '&' mov si, 2Ch ; ',' jmp short loc_A029 ; --------------------------------------------------------------------------- loc_A011: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_A029: cmp si, 2Dh ; '-' jle short loc_A011 mov byte_F02A, 2Fh ; '/' mov si, 2Eh ; '.' jmp short loc_A050 ; --------------------------------------------------------------------------- loc_A038: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_A050: cmp si, 2Fh ; '/' jle short loc_A038 mov byte_F02A, 26h ; '&' push 90014Ch push 2Ch ; ',' push ds push offset unk_E6D2 push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_E700 push 0Ch call sub_9643 mov byte_F02B, 0 push 90014Ch push 2Ch ; ',' push ds push offset unk_E72E loc_A092: push 9 call sub_9643 loc_A097: call sub_9AD4 pop si pop bp retn sub_9B64 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A09D proc near push bp mov bp, sp push si push ds push offset aEnd2_txt ; "end2.txt" call sub_95A3 call snd_load c, offset aEnd1_m, ds, SND_LOAD_SONG kajacall KAJA_SONG_PLAY pop cx mov PaletteTone, 0 call far ptr palette_show mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call pi_slot_load c, 0, offset aEd01_pi, ds call pi_slot_palette_apply stdcall, 0 pop cx call pi_slot_put c, 0, large 0 freePISlotLarge 0 push 2 call palette_black_in push 28h ; '(' call frame_delay push 0 call sub_98B5 mov byte_F02A, 2Fh ; '/' mov byte_F02B, 1 push 90014Ch push 2Ch ; ',' push ds push offset unk_DE32 push 6 call sub_9643 push 14h call frame_delay push 1 call palette_black_out mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call pi_slot_load c, 0, offset aEd03_pi, ds call pi_slot_palette_apply stdcall, 0 pop cx call pi_slot_put c, 0, large 0 freePISlotLarge 0 push 0 call sub_98B5 push 1 call palette_black_in mov si, 1 jmp short loc_A19D ; --------------------------------------------------------------------------- loc_A185: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_A19D: cmp si, 3 jle short loc_A185 push 1 call sub_98B5 mov si, 4 jmp short loc_A1C4 ; --------------------------------------------------------------------------- loc_A1AC: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_A1C4: cmp si, 9 jle short loc_A1AC push 2 call sub_98B5 mov si, 0Ah jmp short loc_A1EB ; --------------------------------------------------------------------------- loc_A1D3: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_A1EB: cmp si, 0Bh jle short loc_A1D3 push 3 call sub_98B5 mov si, 0Ch jmp short loc_A212 ; --------------------------------------------------------------------------- loc_A1FA: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_A212: cmp si, 0Dh jle short loc_A1FA push ds push offset aEd03a_rgb ; "ed03a.rgb" call palette_entry_rgb call far ptr palette_show mov byte_F02A, 29h ; ')' mov si, 0Eh jmp short loc_A247 ; --------------------------------------------------------------------------- loc_A22F: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_A247: cmp si, 0Fh jle short loc_A22F push 2 call palette_black_out mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call pi_slot_load c, 0, offset aEd04_pi, ds call pi_slot_palette_apply stdcall, 0 pop cx call pi_slot_put c, 0, large 0 freePISlotLarge 0 mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al push 0 call sub_98B5 push 2 call palette_black_in mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_E112 push 6 call sub_9643 mov byte_F02A, 29h ; ')' push 90014Ch push 2Ch ; ',' push ds push offset unk_E140 push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' mov si, 12h jmp short loc_A2EA ; --------------------------------------------------------------------------- loc_A2D2: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_A2EA: cmp si, 13h jle short loc_A2D2 push 1 call sub_98B5 mov byte_F02A, 29h ; ')' mov si, 14h jmp short loc_A316 ; --------------------------------------------------------------------------- loc_A2FE: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_A316: cmp si, 15h jle short loc_A2FE mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_E226 push 6 call sub_9643 mov byte_F02A, 29h ; ')' mov si, 17h jmp short loc_A353 ; --------------------------------------------------------------------------- loc_A33B: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_A353: cmp si, 18h jle short loc_A33B mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_E2B0 push 6 call sub_9643 mov byte_F02A, 29h ; ')' push 90014Ch push 2Ch ; ',' push ds push offset unk_E2DE push 6 call sub_9643 push 0Ah call frame_delay les bx, dword_FB02 cmp byte ptr es:[bx+26h], 0 jnz loc_A4EC push 90014Ch push 2Ch ; ',' push ds push offset unk_E30C push 6 call sub_9643 push 1Eh call frame_delay push 2 call sub_98B5 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_E33A push 6 call sub_9643 push 3 call sub_98B5 push 90014Ch push 2Ch ; ',' push ds push offset unk_E368 push 6 call sub_9643 mov byte_F02A, 29h ; ')' mov si, 1Eh jmp short loc_A403 ; --------------------------------------------------------------------------- loc_A3EB: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_A403: cmp si, 1Fh jle short loc_A3EB mov byte_F02A, 2Fh ; '/' mov si, 20h ; ' ' jmp short loc_A42A ; --------------------------------------------------------------------------- loc_A412: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_A42A: cmp si, 24h ; '$' jle short loc_A412 mov byte_F02A, 29h ; ')' mov si, 25h ; '%' jmp short loc_A451 ; --------------------------------------------------------------------------- loc_A439: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_A451: cmp si, 26h ; '&' jle short loc_A439 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_E534 push 6 call sub_9643 push 2 call palette_black_out mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call pi_slot_load c, 0, offset aEd05_pi, ds call pi_slot_palette_apply stdcall, 0 pop cx call pi_slot_put c, 0, large 0 freePISlotLarge 0 push 0 call sub_98B5 push 2 call palette_black_in mov si, 28h ; '(' jmp short loc_A4D3 ; --------------------------------------------------------------------------- loc_A4BB: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_A4D3: cmp si, 2Eh ; '.' jle short loc_A4BB mov byte_F02B, 0 push 90014Ch push 2Ch ; ',' push ds push offset unk_E6A4 jmp loc_A869 ; --------------------------------------------------------------------------- loc_A4EC: les bx, dword_FB02 cmp byte ptr es:[bx+26h], 1 jnz loc_A6B6 push 90014Ch push 2Ch ; ',' push ds push offset unk_E6D2 push 6 call sub_9643 push 90014Ch push 2Ch ; ',' push ds push offset unk_E700 push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_E72E push 6 call sub_9643 mov byte_F02A, 29h ; ')' push 90014Ch push 2Ch ; ',' push ds push offset unk_E75C push 6 call sub_9643 push 1Eh call frame_delay push 2 call sub_98B5 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_E78A push 6 call sub_9643 push 3 call sub_98B5 push 90014Ch push 2Ch ; ',' push ds push offset unk_E7B8 push 6 call sub_9643 mov byte_F02A, 29h ; ')' push 90014Ch push 2Ch ; ',' push ds push offset unk_E7E6 push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_E814 push 6 call sub_9643 mov byte_F02A, 29h ; ')' push 90014Ch push 2Ch ; ',' push ds push offset unk_E842 push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_E870 push 6 call sub_9643 mov byte_F02A, 29h ; ')' mov si, 3Ah ; ':' jmp short loc_A5F9 ; --------------------------------------------------------------------------- loc_A5E1: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_A5F9: cmp si, 3Dh ; '=' jle short loc_A5E1 mov byte_F02A, 2Fh ; '/' mov si, 3Eh ; '>' jmp short loc_A620 ; --------------------------------------------------------------------------- loc_A608: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_A620: cmp si, 42h ; 'B' jle short loc_A608 push 2 call palette_black_out mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call pi_slot_load c, 0, offset aEd05_pi, ds call pi_slot_palette_apply stdcall, 0 pop cx call pi_slot_put c, 0, large 0 freePISlotLarge 0 push 1 call sub_98B5 push 2 call palette_black_in mov si, 43h ; 'C' jmp short loc_A68C ; --------------------------------------------------------------------------- loc_A674: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_A68C: cmp si, 44h ; 'D' jle short loc_A674 push 90014Ch push 2Ch ; ',' push ds push offset unk_EA98 push 0Ch call sub_9643 mov byte_F02B, 0 push 90014Ch push 2Ch ; ',' push ds push offset unk_EAC6 jmp loc_A869 ; --------------------------------------------------------------------------- loc_A6B6: push 90014Ch push 2Ch ; ',' push ds push offset unk_EAF4 push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_EB22 push 6 call sub_9643 mov byte_F02A, 29h ; ')' push 90014Ch push 2Ch ; ',' push ds push offset unk_EB50 push 6 call sub_9643 push 1Eh call frame_delay push 2 call sub_98B5 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_EB7E push 6 call sub_9643 push 3 call sub_98B5 push 90014Ch push 2Ch ; ',' push ds push offset unk_EBAC push 6 call sub_9643 mov byte_F02A, 29h ; ')' push 90014Ch push 2Ch ; ',' push ds push offset unk_EBDA push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_EC08 push 6 call sub_9643 mov byte_F02A, 29h ; ')' push 90014Ch push 2Ch ; ',' push ds push offset unk_EC36 push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_EC64 push 6 call sub_9643 mov byte_F02A, 29h ; ')' push 90014Ch push 2Ch ; ',' push ds push offset unk_EC92 push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_ECC0 push 6 call sub_9643 mov byte_F02A, 29h ; ')' push 90014Ch push 2Ch ; ',' push ds push offset unk_ECEE push 6 call sub_9643 mov byte_F02A, 2Fh ; '/' push 90014Ch push 2Ch ; ',' push ds push offset unk_ED1C push 6 call sub_9643 push 2 call palette_black_out mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call pi_slot_load c, 0, offset aEd05_pi, ds call pi_slot_palette_apply stdcall, 0 pop cx call pi_slot_put c, 0, large 0 freePISlotLarge 0 push 2 call sub_98B5 push 2 call palette_black_in mov si, 54h ; 'T' jmp short loc_A842 ; --------------------------------------------------------------------------- loc_A82A: push 90014Ch push 2Ch ; ',' mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax push 6 call sub_9643 inc si loc_A842: cmp si, 5Bh ; '[' jle short loc_A82A push 90014Ch push 2Ch ; ',' push ds push offset unk_EEBA push 6 call sub_9643 mov byte_F02B, 0 push 90014Ch push 2Ch ; ',' push ds push offset unk_EEE8 loc_A869: push 0Ch call sub_9643 call sub_9AD4 pop si pop bp retn sub_A09D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A874 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_4] mov di, [bp+arg_0] mov [bp+var_2], 0 jmp short loc_A898 ; --------------------------------------------------------------------------- loc_A887: push si push [bp+arg_2] push di call over_put_8 inc [bp+var_2] inc di add si, 10h loc_A898: cmp [bp+var_2], 5 jl short loc_A887 pop di pop si leave retn 6 sub_A874 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A8A4 proc near push bp mov bp, sp push 0C00000h call grcg_setcolor push 1A000C0h push 27F010Fh call grcg_boxfill call grcg_off pop bp retn sub_A8A4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A8CA proc near arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 push bp mov bp, sp push [bp+arg_4] push [bp+arg_0] call sub_C1C6 push 200064h push [bp+arg_2] call sub_9942 push 4 call frame_delay mov PaletteTone, 64h ; 'd' call far ptr palette_show pop bp retn 6 sub_A8CA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A8FA proc near var_4 = byte ptr -4 enter 4, 0 push si push di push 6 call sub_B855 pop cx xor si, si jmp short loc_A920 ; --------------------------------------------------------------------------- loc_A90C: push 1B000B8h push si call sub_A874 push 4 call frame_delay add si, 5 loc_A920: cmp si, 37h ; '7' jl short loc_A90C push ds push offset aVer1_00 ; "ver 1.00" push 2F00C0h push 210h call sub_B200 add sp, 0Ah push 8 call sub_B855 pop cx mov si, 0B8h jmp short loc_A992 ; --------------------------------------------------------------------------- loc_A947: push 0C00000h call grcg_setcolor push 210h lea ax, [si+4] push ax push 24Fh lea ax, [si+13h] push ax call grcg_boxfill call grcg_off push 1B0h push si push 32h ; '2' call sub_A874 push ds push offset aVer1_00 ; "ver 1.00" push 2Fh ; '/' lea ax, [si+8] push ax push 210h call sub_B200 add sp, 0Ah push 1 call frame_delay add si, 4 loc_A992: cmp si, 170h jl short loc_A947 push 9 call sub_B855 pop cx mov byte_F02A, 2Fh ; '/' push 1B000C0h push 14h push ds push offset aXxcvsB@b@vrvsv ; "封魔録  STAFF" push 0Ch call sub_9643 push 0Dh call sub_B855 pop cx mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call pi_slot_load c, 0, offset aEd06_pi, ds call pi_slot_palette_apply stdcall, 0 pop cx call pi_slot_put c, 0, large 0 freePISlotLarge 0 mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al push 4 push 0 push 29h ; ')' call sub_A8CA call sub_A8A4 push ds push offset aGvgngogigab@b@ ; "プログラム   ZUN" push 2F00C0h push 1A0h call sub_B200 add sp, 0Ah push 11h call sub_B855 pop cx push ds push offset aEd06b_rgb ; "ed06b.rgb" call palette_entry_rgb call far ptr palette_show push 0FCh push 2 push 29h ; ')' call sub_A8CA push 15h call sub_B855 pop cx push 200064h push 3 call sub_9942 push ds push offset aEd06c_rgb ; "ed06c.rgb" call palette_entry_rgb call far ptr palette_show push 4 push 3 push 29h ; ')' call sub_A8CA mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call pi_slot_load c, 0, offset aEd07_pi, ds call pi_slot_put c, 0, large 0 freePISlotLarge 0 mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al push 19h call sub_B855 pop cx call sub_A8A4 push ds push offset aGogigtgbgbgnb@ ; "グラフィック ZUN" push 2F00C0h push 1A0h call sub_B200 add sp, 0Ah push ds push offset aB@b@b@b@b@b@b@ ; "       高附日向" push 2F00E0h push 1A0h call sub_B200 add sp, 0Ah push ds push offset aB@b@b@b@bigibG ; "    (オールクリア画)" push 2F00F0h push 1A0h call sub_B200 add sp, 0Ah push ds push offset aEd07a_rgb ; "ed07a.rgb" call palette_entry_rgb call far ptr palette_show push 0FCh push 0 push 29h ; ')' call sub_A8CA push 1Dh call sub_B855 pop cx push ds push offset aEd07b_rgb ; "ed07b.rgb" call palette_entry_rgb call far ptr palette_show push 8 push 1 push 0E9h call sub_A8CA push 21h ; '!' call sub_B855 pop cx push 200064h push 2 call sub_9942 push 0F8h push 2 push 0E9h call sub_A8CA push 25h ; '%' call sub_B855 pop cx call sub_A8A4 push ds push offset aVlvtvrvhvbb@b@ ; "MUSIC  ZUN" push 2F00C0h push 1B0h call sub_B200 add sp, 0Ah push ds push offset aEd07b_rgb ; "ed07b.rgb" call palette_entry_rgb call far ptr palette_show push 8 push 3 push 0E9h call sub_A8CA mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call pi_slot_load c, 0, offset aEd08_pi, ds call pi_slot_put c, 0, large 0 mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al push 29h ; ')' call sub_B855 pop cx call pi_slot_palette_apply stdcall, 0 pop cx freePISlotLarge 0 push 0F8h push 0 push 0E9h call sub_A8CA push 2Dh ; '-' call sub_B855 pop cx push ds push offset aEd08a_rgb ; "ed08a.rgb" call palette_entry_rgb call far ptr palette_show push 0Ch push 1 push 29h ; ')' call sub_A8CA push 31h ; '1' call sub_B855 pop cx call sub_A8A4 push ds push offset aVsvdvrvsb@vovk ; "TEST PLAYER" push 2F00C0h push 1A0h call sub_B200 add sp, 0Ah push ds push offset aB@b@b@b@vivivs ; "    かおる" push 2F00E0h push 1A0h call sub_B200 add sp, 0Ah push ds push offset aB@b@b@b@vbbVv ; "    C−W" push 2F00F8h push 1A0h call sub_B200 add sp, 0Ah push ds push offset aB@b@Orucb@mbiS ; "   山田 恵一郎" push 2F0110h push 1A0h call sub_B200 add sp, 0Ah push ds push offset aVVSSxrivVVVV ; " その他大勢のみなさん" push 2F0128h push 1A0h call sub_B200 add sp, 0Ah push ds push offset aEd08b_rgb ; "ed08b.rgb" call palette_entry_rgb call far ptr palette_show push 0F4h push 2 push 29h ; ')' call sub_A8CA push 35h ; '5' call sub_B855 pop cx push ds push offset aEd08c_rgb ; "ed08c.rgb" call palette_entry_rgb call far ptr palette_show push 0Ch push 3 push 29h ; ')' call sub_A8CA push 39h ; '9' call sub_B855 pop cx push 4 call palette_black_out mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call pi_slot_load c, 0, offset aEd09_pi, ds call pi_slot_palette_apply stdcall, 0 pop cx call pi_slot_put c, 0, large 0 freePISlotLarge 0 push 0 call graph_copy_page push 4 call palette_black_in push 64h ; 'd' call frame_delay mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al push ds push offset aVsvivbvovlb@vs mov al, byte_F02A cbw push ax push 600018h call sub_B200 add sp, 0Ah push 150060h push 18h call sub_97F1 add sp, 6 push 0C8h ; 'ネ' call frame_delay mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al push ds push offset aB@nPiuU_ ; " 最終得点" mov al, byte_F02A cbw push ax push 800040h call sub_B200 add sp, 0Ah push 0C00080h pushd [dword_FB0C] call sub_95CB push 100080h push 40h call sub_97F1 add sp, 6 push 64h ; 'd' call frame_delay mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al push ds push offset aGrgugegbgjgeb ; "コンティニュー" mov al, byte_F02A cbw push ax push 0A00040h call sub_B200 add sp, 0Ah push 10000A0h les bx, dword_FB02 mov ax, es:[bx+12h] add ax, 0A0h push ax push 0Fh call graph_gaiji_putc push 1000A0h push 40h call sub_97F1 add sp, 6 push 64h ; 'd' call frame_delay mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al push ds push offset aB@Gigugn ; "  ランク" mov al, byte_F02A cbw push ax push 0C00040h call sub_B200 add sp, 0Ah push 0D000C0h push 10h push ds mov al, byte_D722 cbw shl ax, 3 add ax, 90h push ax push 0Fh call graph_gaiji_puts push 1000C0h push 40h call sub_97F1 add sp, 6 push 64h ; 'd' call frame_delay mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al push ds push offset aGvgmgcgdbPik ; "プレイヤー初期" mov al, byte_F02A cbw push ax push 0E00040h call sub_B200 add sp, 0Ah push 10000E0h les bx, dword_FB02 mov al, es:[bx+1Ah] mov ah, 0 add ax, 0A1h ; '。' push ax push 0Fh call graph_gaiji_putc push 1000E0h push 40h call sub_97F1 add sp, 6 push 64h ; 'd' call frame_delay mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al push ds push offset aCMvpik ; " 霊撃初期数" mov al, byte_F02A cbw push ax push 1000040h call sub_B200 add sp, 0Ah push 1000100h les bx, dword_FB02 mov al, es:[bx+19h] mov ah, 0 add ax, 0A0h push ax push 0Fh call graph_gaiji_putc push 100100h push 40h call sub_97F1 add sp, 6 push 96h call frame_delay mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al les bx, dword_FB02 mov di, es:[bx+28h] cmp di, 64h ; 'd' jle short loc_AEAC mov di, 64h ; 'd' jmp short loc_AEB2 ; --------------------------------------------------------------------------- loc_AEAC: or di, di jge short loc_AEB2 xor di, di loc_AEB2: push ds push offset aVavVVSrso ; "あなたの腕前" mov al, byte_F02A cbw push ax push 1200040h call sub_B200 add sp, 0Ah push di push ss lea ax, [bp+var_4] push ax call sub_9846 push 0C00120h push 10h push ss lea ax, [bp+var_4] push ax push 0Fh call graph_gaiji_puts cmp di, 64h ; 'd' jnz short loc_AEEF xor si, si jmp short loc_AF56 ; --------------------------------------------------------------------------- loc_AEEF: cmp di, 5Ah ; 'Z' jl short loc_AEF9 mov si, 1 jmp short loc_AF56 ; --------------------------------------------------------------------------- loc_AEF9: cmp di, 50h ; 'P' jl short loc_AF03 mov si, 2 jmp short loc_AF56 ; --------------------------------------------------------------------------- loc_AF03: cmp di, 46h ; 'F' jl short loc_AF17 cmp di, 4Dh ; 'M' jnz short loc_AF12 mov si, 3 jmp short loc_AF56 ; --------------------------------------------------------------------------- loc_AF12: mov si, 4 jmp short loc_AF56 ; --------------------------------------------------------------------------- loc_AF17: cmp di, 3Ch ; '<' jl short loc_AF21 mov si, 5 jmp short loc_AF56 ; --------------------------------------------------------------------------- loc_AF21: cmp di, 32h ; '2' jl short loc_AF2B mov si, 6 jmp short loc_AF56 ; --------------------------------------------------------------------------- loc_AF2B: cmp di, 28h ; '(' jl short loc_AF35 mov si, 7 jmp short loc_AF56 ; --------------------------------------------------------------------------- loc_AF35: cmp di, 1Eh jl short loc_AF3F mov si, 8 jmp short loc_AF56 ; --------------------------------------------------------------------------- loc_AF3F: cmp di, 14h jl short loc_AF49 mov si, 9 jmp short loc_AF56 ; --------------------------------------------------------------------------- loc_AF49: cmp di, 0Ah jl short loc_AF53 mov si, 0Ah jmp short loc_AF56 ; --------------------------------------------------------------------------- loc_AF53: mov si, 0Bh loc_AF56: mov ax, si imul ax, 2Eh add ax, 0EB2h push ds push ax mov al, byte_F02A cbw push ax push 12000F0h call sub_B200 add sp, 0Ah push 60120h push 40h call sub_97F1 add sp, 6 push 78h ; 'x' call frame_delay push 180120h push 0C0h call sub_97F1 add sp, 6 push 0C8h ; 'ネ' call frame_delay mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al push ds push offset aVpvxvxvvb@vyvt ; "1997 ZUN (Amusement Makers)" mov al, byte_F02A cbw push ax push 1600040h call sub_B200 add sp, 0Ah push 120160h push 40h call sub_97F1 add sp, 6 call sub_B4B7 push 5 call palette_black_out nopcall sub_AFE7 call graph_clear pop di pop si leave retn sub_A8FA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_AFE7 proc far push bp mov bp, sp call sub_BFE8 or ax, ax jz loc_B07D les bx, dword_FB02 cmp word ptr es:[bx+12h], 0 jnz short loc_B07D call pi_slot_load c, 0, offset aAll_pi, ds call pi_slot_palette_apply stdcall, 0 pop cx call pi_slot_put c, 0, large 0 freePISlotLarge 0 push 2 call palette_black_in push 96h call frame_delay call pi_slot_load c, 0, offset aBut_pi, ds call pi_slot_palette_apply stdcall, 0 pop cx call pi_slot_put c, 0, large 0 freePISlotLarge 0 call sub_B4B7 push 5 call palette_black_out loc_B07D: pop bp retf sub_AFE7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B07F proc far push bp mov bp, sp call sub_BFE8 or ax, ax jz loc_B115 mov PaletteTone, 0 call far ptr palette_show call pi_slot_load c, 0, offset aAll_pi, ds call pi_slot_palette_apply stdcall, 0 pop cx call pi_slot_put c, 0, large 0 freePISlotLarge 0 push 2 call palette_black_in push 96h call frame_delay call pi_slot_load c, 0, offset aExtra_pi, ds call pi_slot_palette_apply stdcall, 0 pop cx call pi_slot_put c, 0, large 0 freePISlotLarge 0 call sub_B4B7 push 5 call palette_black_out loc_B115: pop bp retf sub_B07F 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 _argc = word ptr 6 _argv = dword ptr 8 _envp = dword ptr 0Ch push bp mov bp, sp call sub_B888 or ax, ax jz loc_B1FE les bx, dword_FB02 cmp byte ptr es:[bx+0Bh], 7Fh jnz loc_B1FE call sub_B756 call gaiji_backup push ds push offset aMikoft_bft ; "MIKOFT.bft" call gaiji_entry_bfnt call snd_pmd_resident call snd_mmd_resident les bx, dword_FB02 cmp byte ptr es:[bx+18h], 0 jnz short loc_B161 mov snd_midi_active, 0 jmp short loc_B189 ; --------------------------------------------------------------------------- loc_B161: les bx, dword_FB02 cmp byte ptr es:[bx+18h], 1 jnz short loc_B173 mov snd_midi_active, 0 jmp short loc_B184 ; --------------------------------------------------------------------------- loc_B173: les bx, dword_FB02 cmp byte ptr es:[bx+18h], 2 jnz short loc_B189 mov al, snd_midi_possible mov snd_midi_active, al loc_B184: call snd_determine_mode loc_B189: mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al mov dx, 0A4h out dx, al push ds push offset aEndft_bft ; "endft.bft" call super_entry_bfnt push 64h ; 'd' call frame_delay les bx, dword_FB02 cmp byte ptr es:[bx+16h], 4 jz short loc_B1C2 cmp word ptr es:[bx+12h], 0 jz short loc_B1BA call sub_9B64 jmp short loc_B1BD ; --------------------------------------------------------------------------- loc_B1BA: call sub_A09D loc_B1BD: call sub_A8FA jmp short loc_B1C6 ; --------------------------------------------------------------------------- loc_B1C2: call sub_B07F loc_B1C6: mov PaletteTone, 32h ; '2' call far ptr palette_show call sub_BC9E mov PaletteTone, 0 call far ptr palette_show call gaiji_restore call sub_B616 pushd 0 push ds push offset path ; "op" push ds push offset path ; "op" call _execl add sp, 0Ch loc_B1FE: pop bp retf _main endp seg001 ends ; =========================================================================== ; Segment type: Pure code seg002 segment word public 'CODE' use16 assume cs:seg002 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_B200 proc far var_32 = byte ptr -32h var_12 = word ptr -12h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = word ptr -0Ch var_A = word ptr -0Ah var_8 = dword ptr -8 var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 6 arg_2 = word ptr 8 arg_4 = word ptr 0Ah arg_6 = dword ptr 0Ch enter 32h, 0 push si push di mov di, [bp+arg_0] mov ax, [bp+arg_4] sar ax, 4 and ax, 3 mov [bp+var_E], ax mov ax, [bp+arg_4] sar ax, 6 and ax, 7 mov [bp+var_10], ax push 0C0h push [bp+arg_4] call grcg_setcolor mov dx, 68h ; 'h' mov al, 0Bh out dx, al jmp loc_B445 ; --------------------------------------------------------------------------- loc_B235: mov ax, [bp+arg_2] imul ax, 50h push ax mov ax, di mov bx, 8 cwd idiv bx pop dx add dx, ax mov word ptr [bp+var_8+2], 0A800h mov word ptr [bp+var_8], dx mov ax, di cwd idiv bx mov [bp+var_C], dx les bx, [bp+arg_6] mov al, es:[bx] mov ah, 0 mov bx, ax test byte ptr [bx+0D65h], 4 jz short loc_B28A mov bx, word ptr [bp+arg_6] mov al, es:[bx] cbw shl ax, 8 mov dl, es:[bx+1] mov dh, 0 add ax, dx push ax call __mbcjmstojis pop cx mov [bp+var_2], ax add word ptr [bp+arg_6], 2 jmp short loc_B2D0 ; --------------------------------------------------------------------------- loc_B28A: les bx, [bp+arg_6] mov al, es:[bx] mov ah, 0 mov bx, ax test byte ptr [bx+0D65h], 3 jz short loc_B2A8 mov bx, word ptr [bp+arg_6] mov al, es:[bx] mov ah, 0 add ax, 2980h jmp short loc_B2C3 ; --------------------------------------------------------------------------- loc_B2A8: les bx, [bp+arg_6] mov al, es:[bx] cbw mov bx, ax test byte ptr [bx+0A7Bh], 5Eh jz short loc_B2C8 mov bx, word ptr [bp+arg_6] mov al, es:[bx] mov ah, 0 add ax, 2900h loc_B2C3: mov [bp+var_2], ax jmp short loc_B2CD ; --------------------------------------------------------------------------- loc_B2C8: mov [bp+var_2], 2B21h loc_B2CD: inc word ptr [bp+arg_6] loc_B2D0: mov al, byte ptr [bp+var_2] and al, 0FFh mov dx, 0A1h ; '。' out dx, al mov ax, [bp+var_2] shr ax, 8 sub al, 20h ; ' ' mov dx, 0A3h ; '」' out dx, al cmp [bp+var_2], 2921h jb short loc_B331 cmp [bp+var_2], 2B7Eh ja short loc_B331 cmp di, 278h jg loc_B450 mov [bp+var_12], 0 jmp short loc_B324 ; --------------------------------------------------------------------------- loc_B302: mov al, byte ptr [bp+var_12] or al, 20h mov dx, 0A5h ; '・' out dx, al mov dx, 0A9h ; 'ゥ' in al, dx mov ah, 0 shl ax, 8 mov bx, [bp+var_12] add bx, bx lea dx, [bp+var_32] add bx, dx mov ss:[bx], ax inc [bp+var_12] loc_B324: cmp [bp+var_12], 10h jl short loc_B302 mov [bp+var_A], 0 jmp short loc_B387 ; --------------------------------------------------------------------------- loc_B331: cmp di, 270h jg loc_B450 mov [bp+var_12], 0 jmp short loc_B37C ; --------------------------------------------------------------------------- loc_B340: mov al, byte ptr [bp+var_12] or al, 20h mov dx, 0A5h ; '・' out dx, al mov dx, 0A9h ; 'ゥ' in al, dx mov ah, 0 shl ax, 8 mov bx, [bp+var_12] add bx, bx lea dx, [bp+var_32] add bx, dx mov ss:[bx], ax mov dx, 0A5h ; '・' mov al, byte ptr [bp+var_12] out dx, al mov dx, 0A9h ; 'ゥ' in al, dx mov ah, 0 mov bx, [bp+var_12] add bx, bx lea dx, [bp+var_32] add bx, dx add ss:[bx], ax inc [bp+var_12] loc_B37C: cmp [bp+var_12], 10h jl short loc_B340 mov [bp+var_A], 1 loc_B387: mov [bp+var_12], 0 jmp loc_B42C ; --------------------------------------------------------------------------- loc_B38F: mov bx, [bp+var_12] add bx, bx lea ax, [bp+var_32] add bx, ax mov ax, ss:[bx] mov [bp+var_4], ax mov ax, [bp+var_E] cmp ax, 1 jz short loc_B3B3 cmp ax, 2 jz short loc_B3C9 cmp ax, 3 jz short loc_B3BF jmp short loc_B3DF ; --------------------------------------------------------------------------- loc_B3B3: mov si, [bp+var_4] mov ax, si add ax, ax or [bp+var_4], ax jmp short loc_B3DF ; --------------------------------------------------------------------------- loc_B3BF: mov si, [bp+var_4] mov ax, si add ax, ax or [bp+var_4], ax loc_B3C9: mov si, [bp+var_4] mov ax, si add ax, ax or [bp+var_4], ax xor si, [bp+var_4] mov ax, si add ax, ax not ax and [bp+var_4], ax loc_B3DF: cmp [bp+var_C], 0 jz short loc_B412 mov cl, byte ptr [bp+var_C] add cl, 8 mov ax, [bp+var_4] shr ax, cl les bx, [bp+var_8] mov es:[bx], al mov ax, [bp+var_4] mov cl, byte ptr [bp+var_C] shr ax, cl mov es:[bx+1], al mov cl, 8 sub cl, byte ptr [bp+var_C] mov al, byte ptr [bp+var_4] shl al, cl mov es:[bx+2], al jmp short loc_B425 ; --------------------------------------------------------------------------- loc_B412: mov ax, [bp+var_4] shr ax, 8 les bx, [bp+var_8] mov es:[bx], al mov al, byte ptr [bp+var_4] mov es:[bx+1], al loc_B425: add word ptr [bp+var_8], 50h ; 'P' inc [bp+var_12] loc_B42C: cmp [bp+var_12], 10h jl loc_B38F cmp [bp+var_A], 0 jz short loc_B43D add di, 8 loc_B43D: mov ax, [bp+var_10] add ax, 8 add di, ax loc_B445: les bx, [bp+arg_6] cmp byte ptr es:[bx], 0 jnz loc_B235 loc_B450: mov dx, 68h ; 'h' mov al, 0Ah out dx, al call grcg_off pop di pop si leave retf sub_B200 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B45F proc far push bp mov bp, sp push si mov al, byte_D70A cbw push ax call key_sense mov si, ax mov al, byte_D70B cbw push ax call key_sense or si, ax mov al, byte_D70C cbw push ax call key_sense or si, ax push 2 nopcall frame_delay mov al, byte_D70A cbw push ax call key_sense or si, ax mov al, byte_D70B cbw push ax call key_sense or si, ax mov al, byte_D70C cbw push ax call key_sense or si, ax mov ax, si pop si pop bp retf sub_B45F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B4B7 proc far push bp mov bp, sp loc_B4BA: call sub_B45F or ax, ax jnz short loc_B4BA loc_B4C2: call sub_B45F or ax, ax jz short loc_B4C2 pop bp retf sub_B4B7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B4CC proc far push bp mov bp, sp mov dword_F892, 0A8000000h mov dword_F896, 0B0000000h mov dword_F89A, 0B8000000h mov dword_F89E, 0E0000000h pop bp retf sub_B4CC endp include th02/formats/pi_slot_load.asm include th02/frame_delay.asm db 0 ; =============== S U B R O U T I N E ======================================= sub_B536 proc far mov word_FAEE, 0 mov al, 7 mov ah, 4 int 18h ; TRANSFER TO ROM BASIC ; causes transfer to ROM-based BASIC (IBM-PC) ; often reboots a compatible; often has no effect at all mov bh, ah mov al, 8 mov ah, 4 int 18h ; TRANSFER TO ROM BASIC ; causes transfer to ROM-based BASIC (IBM-PC) ; often reboots a compatible; often has no effect at all test bh, 4 jnz short loc_B554 test ah, 8 jz short loc_B559 loc_B554: or word_FAEE, 1 loc_B559: test bh, 8 jnz short loc_B563 test ah, 40h jz short loc_B568 loc_B563: or word_FAEE, 4 loc_B568: test ah, 4 jz short loc_B573 or word_FAEE, 1000h loc_B573: test ah, 10h jz short loc_B57E or word_FAEE, 2000h loc_B57E: mov al, 9 mov ah, 4 int 18h ; TRANSFER TO ROM BASIC ; causes transfer to ROM-based BASIC (IBM-PC) ; often reboots a compatible; often has no effect at all test bh, 20h jnz short loc_B58E test ah, 8 jz short loc_B593 loc_B58E: or word_FAEE, 2 loc_B593: test bh, 10h jnz short loc_B59D test ah, 1 jz short loc_B5A2 loc_B59D: or word_FAEE, 8 loc_B5A2: test ah, 4 jz short loc_B5AD or word_FAEE, 4000h loc_B5AD: test ah, 10h jz short loc_B5B8 or word_FAEE, 8000h loc_B5B8: mov al, 5 mov ah, 4 int 18h ; TRANSFER TO ROM BASIC ; causes transfer to ROM-based BASIC (IBM-PC) ; often reboots a compatible; often has no effect at all test ah, 2 jz short loc_B5C8 or word_FAEE, 10h loc_B5C8: test ah, 4 jz short loc_B5D2 or word_FAEE, 20h loc_B5D2: mov al, 0 mov ah, 4 int 18h ; TRANSFER TO ROM BASIC ; causes transfer to ROM-based BASIC (IBM-PC) ; often reboots a compatible; often has no effect at all test ah, 1 jz short loc_B5E2 or word_FAEE, 40h loc_B5E2: mov al, 3 mov ah, 4 int 18h ; TRANSFER TO ROM BASIC ; causes transfer to ROM-based BASIC (IBM-PC) ; often reboots a compatible; often has no effect at all test ah, 10h jz short loc_B5F3 or word_FAEE, 80h loc_B5F3: mov al, 2 mov ah, 4 int 18h ; TRANSFER TO ROM BASIC ; causes transfer to ROM-based BASIC (IBM-PC) ; often reboots a compatible; often has no effect at all test ah, 1 jz short loc_B604 or word_FAEE, 100h loc_B604: mov al, 6 mov ah, 4 int 18h ; TRANSFER TO ROM BASIC ; causes transfer to ROM-based BASIC (IBM-PC) ; often reboots a compatible; often has no effect at all test ah, 10h jz short locret_B614 or word_FAEE, 10h locret_B614: retf sub_B536 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B616 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 vsync_end call mem_unassign call text_clear call egc_start pop bp retf sub_B616 endp include th02/hardware/snd_mmd_resident.asm include th02/hardware/snd_determine_mode.asm include th02/hardware/snd_pmd_resident.asm include th02/hardware/snd_load.asm ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B756 proc far push bp mov bp, sp push 4650h call mem_assign_dos or ax, ax jz short loc_B76A mov ax, 1 pop bp retf ; --------------------------------------------------------------------------- loc_B76A: nopcall sub_B4CC call vsync_start call egc_start call graph_400line mov pfkey, 12h push ds push offset aUmx ; "東方封魔.録" call pfstart xor ax, ax pop bp retf sub_B756 endp include th02/formats/pi_slot_palette_apply.asm include th02/formats/pi_slot_put.asm include th02/hardware/snd_kaja_func.asm ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B855 proc far arg_0 = word ptr 6 push bp mov bp, sp cmp snd_active, 0 jnz short loc_B868 push 64h ; 'd' nopcall frame_delay pop bp retf ; --------------------------------------------------------------------------- loc_B868: push 1 nopcall frame_delay mov ah, KAJA_GET_SONG_MEASURE cmp snd_midi_active, 1 jz short loc_B87C 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_B881 ; --------------------------------------------------------------------------- loc_B87C: mov dx, 0C0h int 61h ; reserved for user interrupt loc_B881: cmp ax, [bp+arg_0] jb short loc_B868 pop bp retf sub_B855 endp seg002 ends ; =========================================================================== ; Segment type: Pure code seg003 segment byte public 'CODE' use16 assume cs:seg003 ;org 8 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_B888 proc far var_2 = word ptr -2 enter 2, 0 push ds push offset aHuuma_cfg ; "huuma.cfg" call file_ropen pushd 5 push 0 call file_seek push ss lea ax, [bp+var_2] push ax push 2 call file_read call file_close cmp [bp+var_2], 0 jnz short loc_B8BA xor ax, ax leave retf ; --------------------------------------------------------------------------- loc_B8BA: mov ax, [bp+var_2] mov word ptr dword_FB02+2, ax mov word ptr dword_FB02, 0 les bx, dword_FB02 mov al, es:[bx+15h] mov byte_FB07, al mov al, es:[bx+14h] mov byte_FB08, al mov al, es:[bx+16h] mov byte_D722, al mov eax, es:[bx+0Eh] mov dword_FB0C, eax mov ax, 1 leave retf sub_B888 endp seg003 ends ; =========================================================================== ; Segment type: Pure code seg004 segment byte public 'CODE' use16 assume cs:seg004 ;org 0Dh 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_B8ED proc far push bp mov bp, sp push si xor si, si jmp short loc_B95F ; --------------------------------------------------------------------------- loc_B8F5: mov ax, si imul ax, 3E8h mov dx, 2710h sub dx, ax movsx eax, dx mov bx, si shl bx, 2 mov [bx+2B98h], eax mov ax, si sar ax, 1 mov dl, 5 sub dl, al mov [si+2C0Bh], dl xor cx, cx jmp short loc_B92B ; --------------------------------------------------------------------------- loc_B91E: mov bx, si imul bx, 7 add bx, cx mov byte ptr [bx+2BC4h], 0DAh inc cx loc_B92B: cmp cx, 6 jl short loc_B91E mov bx, si imul bx, 7 mov byte ptr [bx+2BCAh], 0 mov bx, si shl bx, 2 mov word ptr [bx+2C16h], 76Ch mov bx, si shl bx, 2 mov byte ptr [bx+2C18h], 1 mov bx, si shl bx, 2 mov byte ptr [bx+2C19h], 1 mov byte ptr [si+2C3Eh], 1 inc si loc_B95F: cmp si, 0Ah jl short loc_B8F5 pop si pop bp retf sub_B8ED endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B967 proc near push bp mov bp, sp push si pushd [HUUHI_DAT] call file_ropen mov al, byte_D722 cbw imul ax, 0B6h movzx eax, ax push eax push 0 call file_seek push ds push offset word_FB16 push 0B6h ; 'カ' call file_read xor si, si jmp short loc_B9A5 ; --------------------------------------------------------------------------- loc_B99A: mov al, [si+2B96h] add al, 0EEh mov [si+2B96h], al inc si loc_B9A5: cmp si, 0B2h ; 'イ' jl short loc_B99A call file_close pop si pop bp retn sub_B967 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B9B3 proc far var_B = byte ptr -0Bh var_A = dword ptr -0Ah var_6 = dword ptr -6 var_2 = word ptr -2 arg_0 = word ptr 6 arg_2 = dword ptr 8 arg_6 = word ptr 0Ch enter 0Ch, 0 push si mov [bp+var_6], 989680h mov [bp+var_B], 0 mov si, 1Ah jmp short loc_BA1B ; --------------------------------------------------------------------------- loc_B9C9: mov eax, [bp+arg_2] cdq idiv [bp+var_6] mov ebx, 0Ah cdq idiv ebx mov [bp+var_A], edx mov eax, [bp+var_6] cdq idiv ebx mov [bp+var_6], eax mov ax, word ptr [bp+var_A] add ax, 0A0h mov [bp+var_2], ax cmp [bp+var_A], 0 jz short loc_BA03 mov [bp+var_B], 1 loc_BA03: cmp [bp+var_B], 0 jz short loc_BA18 push si push [bp+arg_6] push [bp+var_2] push [bp+arg_0] call gaiji_putca loc_BA18: add si, 2 loc_BA1B: cmp si, 2Ah ; '*' jl short loc_B9C9 pop si leave retf 8 sub_B9B3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BA25 proc near var_2 = word ptr -2 arg_0 = word ptr 4 enter 2, 0 push si push di mov di, 0E1h push 140002h push ds push offset gHI_SCORE push 81h call gaiji_putsa push 0C0004h push ds push offset gNAME push 81h call gaiji_putsa push 1C0004h push ds push offset gPOINT push 81h call gaiji_putsa push 2A0004h push ds push offset gST push 81h call gaiji_putsa cmp [bp+arg_0], 0FFFFh jz short loc_BACE xor si, si jmp short loc_BAB5 ; --------------------------------------------------------------------------- loc_BA80: mov [bp+var_2], 0 jmp short loc_BAAE ; --------------------------------------------------------------------------- loc_BA87: mov ax, [bp+var_2] add ax, ax add ax, 0Ah push ax lea ax, [si+12h] push ax mov bx, si imul bx, 11h add bx, [bp+var_2] mov al, gALPHABET[bx] mov ah, 0 push ax push 0E1h call gaiji_putca inc [bp+var_2] loc_BAAE: cmp [bp+var_2], 11h jl short loc_BA87 inc si loc_BAB5: cmp si, 3 jl short loc_BA80 push 0A0012h mov al, gALPHABET mov ah, 0 push ax push 85h ; '・ call gaiji_putca loc_BACE: xor si, si jmp short loc_BB31 ; --------------------------------------------------------------------------- loc_BAD2: cmp si, [bp+arg_0] jnz short loc_BADC mov di, 81h jmp short loc_BADF ; --------------------------------------------------------------------------- loc_BADC: mov di, 0E1h loc_BADF: push 0Ah lea ax, [si+6] push ax mov ax, si imul ax, 7 add ax, 2BC4h push ds push ax push di call gaiji_putsa lea ax, [si+6] push ax mov bx, si shl bx, 2 pushd dword ptr [bx+2B98h] push di call sub_B9B3 cmp byte ptr [si+2C0Bh], 7Fh jz short loc_BB21 push 2Ch ; ',' lea ax, [si+6] push ax mov al, [si+2C0Bh] mov ah, 0 add ax, 0A0h push ax jmp short loc_BB2A ; --------------------------------------------------------------------------- loc_BB21: push 2Ch ; ',' lea ax, [si+6] push ax push 0F0h loc_BB2A: push di call gaiji_putca inc si loc_BB31: cmp si, 0Ah jl short loc_BAD2 xor si, si jmp short loc_BB78 ; --------------------------------------------------------------------------- loc_BB3A: cmp si, [bp+arg_0] jnz short loc_BB44 mov di, 81h jmp short loc_BB47 ; --------------------------------------------------------------------------- loc_BB44: mov di, 0E1h loc_BB47: cmp si, 9 jz short loc_BB59 push 6 lea ax, [si+6] push ax lea ax, [si+0A1h] push ax jmp short loc_BB71 ; --------------------------------------------------------------------------- loc_BB59: push 4000Fh push 0A1h ; '。' push di call gaiji_putca push 6000Fh push 0A0h loc_BB71: push di call gaiji_putca inc si loc_BB78: cmp si, 0Ah jl short loc_BB3A pop di pop si leave retn 2 sub_BA25 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BB83 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, 0Ah push ax lea ax, [di+12h] push ax mov bx, di imul bx, 11h mov al, [bx+si+7BBh] mov ah, 0 push ax push [bp+arg_0] call gaiji_putca pop di pop si pop bp retn 6 sub_BB83 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BBB4 proc near arg_0 = word ptr 4 arg_2 = word ptr 6 push bp mov bp, sp push si push di mov si, [bp+arg_2] mov di, [bp+arg_0] push 0Ah lea ax, [si+6] push ax mov ax, si imul ax, 7 add ax, 2BC4h push ds push ax push 81h call gaiji_putsa mov ax, di add ax, ax add ax, 0Ah push ax lea ax, [si+6] push ax mov bx, si imul bx, 7 mov al, [bx+di+2BC4h] mov ah, 0 push ax push 85h ; '・ call gaiji_putca pop di pop si pop bp retn 4 sub_BBB4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BBFD proc far push bp mov bp, sp push si mov dword_FB40, 0 mov byte_FB8A, 0 mov byte_FB95, 0 mov dword_FBC8, 0 xor si, si jmp short loc_BC46 ; --------------------------------------------------------------------------- loc_BC21: mov bx, si shl bx, 2 mov eax, [bx+2B98h] add dword_FB40, eax mov bx, si imul bx, 7 mov al, [bx+2BC4h] add byte_FB8A, al mov al, [si+2C0Bh] add byte_FB95, al inc si loc_BC46: cmp si, 0Ah jl short loc_BC21 xor si, si jmp short loc_BC65 ; --------------------------------------------------------------------------- loc_BC4F: movzx eax, byte ptr [si+2B96h] add dword_FBC8, eax mov al, [si+2B96h] add al, 12h mov [si+2B96h], al inc si loc_BC65: cmp si, 0B2h ; 'イ' jl short loc_BC4F pushd [HUUHI_DAT] call file_append mov al, byte_D722 cbw imul ax, 0B6h movzx eax, ax push eax push 0 call file_seek push ds push offset word_FB16 push 0B6h ; 'カ' call file_write call file_close pop si pop bp retf sub_BBFD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BC9E proc far var_B = byte ptr -0Bh var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 enter 0Ch, 0 push si push di xor si, si pushd [HUUHI_DAT] call file_exist or ax, ax jnz short loc_BCBA call sub_B8ED jmp short loc_BCBD ; --------------------------------------------------------------------------- loc_BCBA: call sub_B967 loc_BCBD: mov eax, dword_FB3C cmp eax, dword_FB0C jle short loc_BCD5 push 0FFFFh call sub_BA25 call sub_B4B7 jmp loc_BFB3 ; --------------------------------------------------------------------------- loc_BCD5: mov [bp+var_2], 9 jmp short loc_BCF1 ; --------------------------------------------------------------------------- loc_BCDC: mov bx, [bp+var_2] shl bx, 2 mov eax, [bx+2B94h] cmp eax, dword_FB0C jg short loc_BCF7 dec [bp+var_2] loc_BCF1: cmp [bp+var_2], 0 jg short loc_BCDC loc_BCF7: mov [bp+var_4], 9 jmp loc_BD91 ; --------------------------------------------------------------------------- loc_BCFF: mov bx, [bp+var_4] shl bx, 2 mov eax, [bx+2B94h] mov bx, [bp+var_4] shl bx, 2 mov [bx+2B98h], eax mov [bp+var_6], 0 jmp short loc_BD39 ; --------------------------------------------------------------------------- loc_BD1C: mov bx, [bp+var_4] imul bx, 7 add bx, [bp+var_6] mov al, [bx+2BBDh] mov bx, [bp+var_4] imul bx, 7 add bx, [bp+var_6] mov [bx+2BC4h], al inc [bp+var_6] loc_BD39: cmp [bp+var_6], 6 jl short loc_BD1C mov bx, [bp+var_4] mov al, [bx+2C0Ah] mov [bx+2C0Bh], al shl bx, 2 mov ax, [bx+2C12h] mov bx, [bp+var_4] shl bx, 2 mov [bx+2C16h], ax mov bx, [bp+var_4] shl bx, 2 mov al, [bx+2C15h] mov bx, [bp+var_4] shl bx, 2 mov [bx+2C19h], al mov bx, [bp+var_4] shl bx, 2 mov al, [bx+2C14h] mov bx, [bp+var_4] shl bx, 2 mov [bx+2C18h], al mov bx, [bp+var_4] mov al, [bx+2C3Dh] mov [bx+2C3Eh], al dec [bp+var_4] loc_BD91: mov ax, [bp+var_4] cmp ax, [bp+var_2] jg loc_BCFF mov bx, [bp+var_2] shl bx, 2 mov eax, dword_FB0C mov [bx+2B98h], eax mov bx, [bp+var_2] mov byte ptr [bx+2C0Bh], 7Fh mov ax, [bp+var_2] shl ax, 2 add ax, 2C16h push ds push ax ; datep call _getdate add sp, 4 les bx, dword_FB02 mov al, es:[bx+26h] mov bx, [bp+var_2] mov [bx+2C3Eh], al mov [bp+var_6], 0 jmp short loc_BDEC ; --------------------------------------------------------------------------- loc_BDDB: mov bx, [bp+var_4] imul bx, 7 add bx, [bp+var_6] mov byte ptr [bx+2BC4h], 0DAh inc [bp+var_6] loc_BDEC: cmp [bp+var_6], 6 jl short loc_BDDB push [bp+var_2] call sub_BA25 xor di, di mov [bp+var_8], 0 mov word_FAEE, 0 mov [bp+var_A], 1 loc_BE0A: mov [bp+var_B], 0 loc_BE0E: call sub_B536 cmp [bp+var_A], 0 jnz loc_BF7F test byte ptr word_FAEE, 1 jz short loc_BE44 push di push [bp+var_8] push 0E1h call sub_BB83 dec [bp+var_8] cmp [bp+var_8], 0 jge short loc_BE3A mov [bp+var_8], 2 loc_BE3A: push di push [bp+var_8] push 85h ; '・ call sub_BB83 loc_BE44: test byte ptr word_FAEE, 2 jz short loc_BE6D push di push [bp+var_8] push 0E1h call sub_BB83 inc [bp+var_8] cmp [bp+var_8], 2 jle short loc_BE63 mov [bp+var_8], 0 loc_BE63: push di push [bp+var_8] push 85h ; '・ call sub_BB83 loc_BE6D: test byte ptr word_FAEE, 4 jz short loc_BE90 push di push [bp+var_8] push 0E1h call sub_BB83 dec di or di, di jge short loc_BE86 mov di, 10h loc_BE86: push di push [bp+var_8] push 85h ; '・ call sub_BB83 loc_BE90: test byte ptr word_FAEE, 8 jz short loc_BEB3 push di push [bp+var_8] push 0E1h call sub_BB83 inc di cmp di, 10h jle short loc_BEA9 xor di, di loc_BEA9: push di push [bp+var_8] push 85h ; '・ call sub_BB83 loc_BEB3: test byte ptr word_FAEE, 10h jnz short loc_BEC3 test byte ptr word_FAEE, 80h jz loc_BF58 loc_BEC3: cmp [bp+var_8], 2 jnz short loc_BECE cmp di, 0Dh jge short loc_BF0B loc_BECE: mov bx, [bp+var_8] imul bx, 11h mov al, [bx+di+7BBh] mov bx, [bp+var_2] imul bx, 7 mov [bx+si+2BC4h], al cmp si, 5 jnz short loc_BF03 push di push [bp+var_8] push 0E1h call sub_BB83 mov di, 10h mov [bp+var_8], 2 push di push [bp+var_8] push 85h ; '・ call sub_BB83 loc_BF03: inc si cmp si, 5 jle short loc_BF51 jmp short loc_BF47 ; --------------------------------------------------------------------------- loc_BF0B: cmp di, 0Dh jnz short loc_BF23 mov bx, [bp+var_2] imul bx, 7 mov byte ptr [bx+si+2BC4h], 0CFh ; 'マ' inc si cmp si, 5 jle short loc_BF51 jmp short loc_BF47 ; --------------------------------------------------------------------------- loc_BF23: cmp di, 0Eh jnz short loc_BF3C dec si or si, si jge short loc_BF2F xor si, si loc_BF2F: mov bx, [bp+var_2] imul bx, 7 mov byte ptr [bx+si+2BC4h], 0CFh ; 'マ' jmp short loc_BF51 ; --------------------------------------------------------------------------- loc_BF3C: cmp di, 0Fh jnz short loc_BF4C inc si cmp si, 5 jle short loc_BF51 loc_BF47: mov si, 5 jmp short loc_BF51 ; --------------------------------------------------------------------------- loc_BF4C: cmp di, 10h jz short loc_BFAF loc_BF51: push [bp+var_2] push si call sub_BBB4 loc_BF58: test byte ptr word_FAEE, 20h jz short loc_BF78 mov bx, [bp+var_2] imul bx, 7 mov byte ptr [bx+si+2BC4h], 0CFh ; 'マ' dec si or si, si jge short loc_BF71 xor si, si loc_BF71: push [bp+var_2] push si call sub_BBB4 loc_BF78: test byte ptr word_FAEE, 40h jnz short loc_BFAF loc_BF7F: push 1 call frame_delay mov ax, word_FAEE mov [bp+var_A], ax cmp [bp+var_A], 0 jz loc_BE0A inc [bp+var_B] cmp [bp+var_B], 1Eh jbe loc_BE0E test [bp+var_B], 1 jnz loc_BE0E mov [bp+var_A], 0 jmp loc_BE0E ; --------------------------------------------------------------------------- loc_BFAF: call sub_BBFD loc_BFB3: pop di pop si leave retf sub_BC9E endp ; --------------------------------------------------------------------------- push bp mov bp, sp pushd [HUUHI_DAT] call file_exist or ax, ax jnz short loc_BFCE call sub_B8ED jmp short loc_BFD1 ; --------------------------------------------------------------------------- loc_BFCE: call sub_B967 loc_BFD1: mov eax, dword_FB18 cmp eax, dword_FB0C jl short loc_BFDE jmp short loc_BFE2 ; --------------------------------------------------------------------------- loc_BFDE: mov eax, dword_FB0C loc_BFE2: mov dword_FB12, eax pop bp retf ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BFE8 proc far var_7 = byte ptr -7 var_6 = byte ptr -6 enter 8, 0 lea ax, [bp+var_6] push ss push ax push ds push offset unk_D77C mov cx, 6 call SCOPY@ mov al, byte_D722 mov [bp+var_7], al mov byte_D722, 0 jmp short loc_C031 ; --------------------------------------------------------------------------- loc_C00A: call sub_B967 mov al, byte_D722 cbw add ax, ax lea dx, [bp+var_6] add ax, dx mov bx, ax mov ax, ss:[bx] cmp ax, word_FB16 jz short loc_C02D mov al, [bp+var_7] mov byte_D722, al xor ax, ax leave retf ; --------------------------------------------------------------------------- loc_C02D: inc byte_D722 loc_C031: mov al, byte_D722 cbw cmp ax, 3 jl short loc_C00A mov al, [bp+var_7] mov byte_D722, al mov ax, 1 leave retf sub_BFE8 endp seg004 ends ; =========================================================================== ; Segment type: Pure code seg005 segment byte public 'CODE' use16 assume cs:seg005 ;org 5 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_C045 proc near var_10 = word ptr -10h var_E = word ptr -0Eh var_C = word ptr -0Ch var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = byte ptr 4 arg_2 = word ptr 6 enter 10h, 0 push si push di mov di, [bp+arg_2] xor si, si jmp short loc_C0BC ; --------------------------------------------------------------------------- loc_C052: movsx eax, di mov dl, [bp+arg_0] mov dh, 0 add dx, dx mov bx, dx movsx edx, word ptr [bx+4EEh] imul eax, edx sar eax, 8 add ax, 0C0h mov bx, si add bx, bx lea dx, [bp+var_8] add bx, dx mov ss:[bx], ax movsx eax, di mov dl, [bp+arg_0] mov dh, 0 add dx, dx mov bx, dx movsx edx, word ptr [bx+46Eh] imul eax, edx sar eax, 8 add ax, 0C8h ; 'ネ' mov bx, si add bx, bx lea dx, [bp+var_10] add bx, dx mov ss:[bx], ax test si, 1 jz short loc_C0B3 mov al, [bp+arg_0] add al, 51h ; 'Q' jmp short loc_C0B8 ; --------------------------------------------------------------------------- loc_C0B3: mov al, [bp+arg_0] add al, 2Fh ; '/' loc_C0B8: mov [bp+arg_0], al inc si loc_C0BC: cmp si, 4 jl short loc_C052 push [bp+var_8] push [bp+var_10] push [bp+var_6] push [bp+var_E] call grcg_line push [bp+var_6] push [bp+var_E] push [bp+var_4] push [bp+var_C] call grcg_line push [bp+var_4] push [bp+var_C] push [bp+var_2] push [bp+var_A] call grcg_line push [bp+var_2] push [bp+var_A] push [bp+var_8] push [bp+var_10] call grcg_line pop di pop si leave retn 4 sub_C045 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C10B proc far 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 retf sub_C10B endp ; --------------------------------------------------------------------------- enter 0Ah, 0 push si push di mov si, [bp+6] mov di, si add si, [bp+0Ah] and di, 0FFF0h mov ax, di sar ax, 3 mov dx, [bp+8] shl dx, 6 add ax, dx mov dx, [bp+8] shl dx, 4 add ax, dx mov [bp-6], ax call sub_C10B mov word ptr [bp-2], 0 jmp short loc_C1B5 ; --------------------------------------------------------------------------- loc_C173: mov [bp-4], di mov ax, [bp-6] mov [bp-0Ah], ax jmp short loc_C1A9 ; --------------------------------------------------------------------------- loc_C17E: mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al les bx, dword_F892 add bx, [bp-0Ah] mov ax, es:[bx] mov [bp-8], ax mov al, 0 out dx, al mov bx, word ptr dword_F892 add bx, [bp-0Ah] mov ax, [bp-8] mov es:[bx], ax add word ptr [bp-0Ah], 2 add word ptr [bp-4], 10h loc_C1A9: cmp [bp-4], si jl short loc_C17E add word ptr [bp-6], 50h ; 'P' inc word ptr [bp-2] loc_C1B5: mov ax, [bp-2] cmp ax, [bp+0Ch] jl short loc_C173 call egc_off pop di pop si leave retf ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C1C6 proc far var_10 = word ptr -10h var_C = word ptr -0Ch var_A = word ptr -0Ah var_8 = word ptr -8 var_2 = word ptr -2 arg_0 = byte ptr 6 arg_2 = byte ptr 8 enter 10h, 0 push si push di lea ax, [bp+var_A] push ss push ax push ds push offset unk_D78C mov cx, 0Ah call SCOPY@ lea ax, [bp+var_10] push ss push ax push ds push offset asc_D796 ; ")))))" mov cx, 5 call SCOPY@ xor si, si jmp short loc_C1F9 ; --------------------------------------------------------------------------- loc_C1F2: mov al, [bp+arg_0] mov byte ptr [bp+si+var_10], al inc si loc_C1F9: cmp si, 5 jl short loc_C1F2 push 0C00000h call grcg_setcolor pushd 0 push 180018Fh call grcg_boxfill xor si, si jmp loc_C2AE ; --------------------------------------------------------------------------- loc_C21C: push 0C00000h call grcg_setcolor push [bp+var_A] push [bp+var_10] call sub_C045 mov al, byte ptr [bp+var_10+1] mov byte ptr [bp+var_10], al mov ax, [bp+var_8] mov [bp+var_A], ax push 0C00004h call grcg_setcolor mov di, 1 jmp short loc_C27E ; --------------------------------------------------------------------------- loc_C24C: mov bx, di add bx, bx lea ax, [bp+var_A] add bx, ax push word ptr ss:[bx] mov al, byte ptr [bp+di+var_10] push ax call sub_C045 mov al, byte ptr [bp+di+var_10+1] mov byte ptr [bp+di+var_10], al mov bx, di add bx, bx lea ax, [bp+var_8] add bx, ax mov ax, ss:[bx] mov bx, di add bx, bx lea dx, [bp+var_A] add bx, dx mov ss:[bx], ax inc di loc_C27E: cmp di, 4 jl short loc_C24C push 0C0000Fh call grcg_setcolor cmp si, 10h jge short loc_C29D sub [bp+var_2], 4 mov al, [bp+arg_2] add byte ptr [bp+var_C], al loc_C29D: push [bp+var_2] push [bp+var_C] call sub_C045 push 1 call frame_delay inc si loc_C2AE: cmp si, 14h jl loc_C21C push 0C00000h call grcg_setcolor pushd 0 push 180018Fh call grcg_boxfill push 0C0000Fh call grcg_setcolor push 1640060h push 1640130h call grcg_line push 1640130h push 1C0130h call grcg_line push 1C0130h push 1C0060h call grcg_line push 1C0060h push 1640060h call grcg_line call grcg_off mov PaletteTone, 0C8h ; 'ネ' call far ptr palette_show pop di pop si leave retf 4 sub_C1C6 endp seg005 ends ; =========================================================================== ; Segment type: Pure code seg006 segment byte public 'CODE' use16 assume cs:seg006 ;org 3 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 seg006 ends ; =========================================================================== ; Segment type: Pure data dseg segment para public 'DATA' use16 assume cs:dseg include libs/BorlandC/c0[data].asm include th02/strings/ranks_center[data].asm unk_D030 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 aKkuukkuukkuukk db 'ェェUUェェUUェェUUェェUUェェUUェェUUェェUUェェUU3333フフフフ3333フフフフ3333フフフフ3333フフフフフ' db 'フフフ3333フフフフ3333フフフフ3333フフフフ3333end3.txt',0 aEnding_m db 'ending.m',0 aEnd1_txt db 'end1.txt',0 aEnd1_m db 'end1.m',0 aEd01_pi db 'ed01.pi',0 aEd02_pi db 'ed02.pi',0 aEnd2_txt db 'end2.txt',0 aEd03_pi db 'ed03.pi',0 aEd03a_rgb db 'ed03a.rgb',0 aEd04_pi db 'ed04.pi',0 aEd05_pi db 'ed05.pi',0 aVer1_00 db 'ver 1.00',0 aXxcvsB@b@vrvsv db '封魔録  STAFF',0 aEd06_pi db 'ed06.pi',0 aGvgngogigab@b@ db 'プログラム   ZUN',0 aEd06b_rgb db 'ed06b.rgb',0 aEd06c_rgb db 'ed06c.rgb',0 aEd07_pi db 'ed07.pi',0 aGogigtgbgbgnb@ db 'グラフィック ZUN',0 aB@b@b@b@b@b@b@ db '       高附日向',0 aB@b@b@b@bigibG db '    (オールクリア画)',0 aEd07a_rgb db 'ed07a.rgb',0 aEd07b_rgb db 'ed07b.rgb',0 aVlvtvrvhvbb@b@ db 'MUSIC  ZUN',0 aEd08_pi db 'ed08.pi',0 aEd08a_rgb db 'ed08a.rgb',0 aVsvdvrvsb@vovk db 'TEST PLAYER',0 aB@b@b@b@vivivs db '    かおる',0 aB@b@b@b@vbbVv db '    C−W',0 aB@b@Orucb@mbiS db '   山田 恵一郎',0 aVVSSxrivVVVV db ' その他大勢のみなさん',0 aEd08b_rgb db 'ed08b.rgb',0 aEd08c_rgb db 'ed08c.rgb',0 aEd09_pi db 'ED09.pi',0 aVsvivbvovlb@vs db 'Thank you for playing',0 aB@nPiuU_ db ' 最終得点',0 aGrgugegbgjgeb db 'コンティニュー',0 aB@Gigugn db '  ランク',0 aGvgmgcgdbPik db 'プレイヤー初期',0 aCMvpik db ' 霊撃初期数',0 aVavVVSrso db 'あなたの腕前',0 aVpvxvxvvb@vyvt db '1997 ZUN (Amusement Makers)',0 aAll_pi db 'all.pi',0 aBut_pi db 'but.pi',0 aExtra_pi db 'extra.pi',0 aMikoft_bft db 'MIKOFT.bft',0 aEndft_bft db 'endft.bft',0 ; char path[] path db 'op',0 include libs/master.lib/bfnt_id[data].asm include libs/master.lib/clip[data].asm include libs/master.lib/edges[data].asm include libs/master.lib/fil[data].asm include libs/master.lib/dos_ropen[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 include libs/master.lib/pal[data].asm include libs/master.lib/pf[data].asm include libs/master.lib/sin8[data].asm include libs/master.lib/tx[data].asm include libs/master.lib/version[data].asm include libs/master.lib/vs[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 byte_D70A db 5 byte_D70B db 3 byte_D70C db 0 db 0 include th02/formats/pfopen[data].asm snd_active db 0 db 0 aUmx db '東方封魔.録',0 byte_D722 db 1 db 0 aHuuma_cfg db 'huuma.cfg',0 include th02/strings/hiscore[data].asm unk_D77C db 3Eh ; > db 1 db 76h ; v db 0 db 0DAh db 0 aHuuhi_dat db 'huuhi.dat',0 unk_D78C db 0 db 1 db 0 db 1 db 0 db 1 db 0 db 1 db 0 db 1 asc_D796 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/mbctype[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... unk_DE32 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 ? ; db ? ; db ? ; db ? ; unk_DF46 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 ? ; db ? ; db ? ; db ? ; unk_DFFE db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E02C db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E05A db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E088 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 ? ; db ? ; unk_E112 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E140 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 ? ; db ? ; db ? ; db ? ; unk_E1F8 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E226 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E254 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E282 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E2B0 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E2DE db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E30C db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E33A db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E368 db ? ; 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 ? ; unk_E3C4 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E3F2 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E420 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E44E db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E47C db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E4AA 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 ? ; db ? ; unk_E534 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E562 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E590 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E5BE db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E5EC 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 ? ; db ? ; db ? ; db ? ; unk_E6A4 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E6D2 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E700 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E72E db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E75C db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E78A db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E7B8 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E7E6 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E814 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E842 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_E870 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 ? ; db ? ; db ? ; db ? ; unk_EA98 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_EAC6 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_EAF4 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_EB22 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_EB50 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_EB7E db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_EBAC db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_EBDA db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_EC08 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_EC36 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_EC64 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_EC92 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_ECC0 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_ECEE db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_ED1C 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 ? ; db ? ; unk_EEBA db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; unk_EEE8 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 ? ; db ? ; byte_F02A db ? byte_F02B db ? dd ? ; dd ? ; dd ? ; dd ? ; include libs/master.lib/fil[bss].asm 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_F892 dd ? dword_F896 dd ? dword_F89A dd ? dword_F89E dd ? include th02/formats/pi_slots[bss].asm include libs/master.lib/pfint21[bss].asm word_FAEE dw ? include th02/hardware/snd[bss].asm include th02/hardware/snd_load[bss].asm dword_FB02 dd ? db ? ; byte_FB07 db ? byte_FB08 db ? db ? db ? ; db ? ; dword_FB0C dd ? db ? ; db ? ; dword_FB12 dd ? word_FB16 dw ? dword_FB18 dd ? dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dword_FB3C dd ? dword_FB40 dd ? dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; db ? ; byte_FB8A db ? dd ? ; dd ? ; db ? ; db ? ; byte_FB95 db ? dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; db ? ; dword_FBC8 dd ? 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