; ; +-------------------------------------------------------------------------+ ; | This file has been generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2009 by Hex-Rays, | ; +-------------------------------------------------------------------------+ ; ; Input MD5 : 9FB2839DB50F38119D0B98D4FB70CD0E ; File Name : th02/OP.EXE ; Format : MS-DOS executable (EXE) ; Base Address: 0h Range: 0h-F9F0h Loaded length: E8F8h ; 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 CGROUP07 group seg007 .386 .model large include ReC98.inc ; =========================================================================== ; Segment type: Pure code seg000 segment word public 'CODE' use16 assume cs:seg000 assume es:nothing, ss:seg009, 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/dos_axdx.asm include libs/master.lib/dos_setvect.asm include libs/master.lib/egc.asm include libs/master.lib/file_close.asm include libs/master.lib/file_create.asm include libs/master.lib/file_exist.asm include libs/master.lib/file_read.asm include libs/master.lib/file_ropen.asm include libs/master.lib/file_seek.asm include libs/master.lib/file_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/grc_setclip.asm include libs/master.lib/grcg_fill.asm include libs/master.lib/grcg_hline.asm include libs/master.lib/grcg_polygon_c.asm include libs/master.lib/grcg_round_boxfill.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/graph_show.asm include libs/master.lib/graph_start.asm include libs/master.lib/keybeep.asm include libs/master.lib/draw_trapezoid.asm include libs/master.lib/make_linework.asm include libs/master.lib/palette_init.asm include libs/master.lib/palette_show.asm include libs/master.lib/pfclose.asm include libs/master.lib/pfgetc.asm db 0 include libs/master.lib/pfread.asm include libs/master.lib/pfrewind.asm include libs/master.lib/pfseek.asm include libs/master.lib/random.asm include libs/master.lib/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/BorlandC/text_clear.asm include libs/BorlandC/txesc.asm db 0 include libs/master.lib/text_fillca.asm include libs/master.lib/text_putca.asm include libs/master.lib/text_putsa.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/hmem_lallocate.asm include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm include libs/master.lib/memheap.asm include libs/master.lib/mem_unassign.asm include libs/master.lib/super_free.asm include libs/master.lib/super_entry_pat.asm include libs/master.lib/super_entry_at.asm include libs/master.lib/super_entry_bfnt.asm include libs/master.lib/super_cancel_pat.asm include libs/master.lib/super_put_rect.asm include libs/master.lib/super_put.asm dword_2F50 dd 0 byte_2F54 db 0, 90h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2F56 proc far arg_0 = dword ptr 6 push bp mov bp, sp cld mov ax, word ptr cs:dword_2F50 or ax, word ptr cs:dword_2F50+2 jnz short loc_2F8C mov ax, 3521h int 21h ; DOS - 2+ - GET INTERRUPT VECTOR ; AL = interrupt number ; Return: ES:BX = value of interrupt vector mov word ptr cs:dword_2F50, bx mov word ptr cs:dword_2F50+2, es mov word_F3C4, 0 mov word_F3C6, 0FFFFh push ds push cs pop ds assume ds:seg000 mov dx, 2FE6h mov ax, 2521h int 21h ; DOS - SET INTERRUPT VECTOR ; AL = interrupt number ; DS:DX = new vector to be used for specified interrupt pop ds assume ds:dseg loc_2F8C: push si push di push ds mov cx, 0FFFFh mov al, 0 les di, [bp+arg_0] assume es:nothing repne scasb not cx sub di, cx mov si, di mov di, 1D14h push ds push es pop ds pop es shr cx, 1 rep movsw adc cx, cx rep movsb pop ds pop di pop si pop bp retf 4 sub_2F56 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_2FB6 proc far mov ax, word ptr cs:dword_2F50 or ax, word ptr cs:dword_2F50+2 jz short locret_2FE5 push ds lds dx, cs:dword_2F50 mov ax, 2521h int 21h ; DOS - SET INTERRUPT VECTOR ; AL = interrupt number ; DS:DX = new vector to be used for specified interrupt pop ds xor ax, ax mov word ptr cs:dword_2F50, ax mov word ptr cs:dword_2F50+2, ax cmp word_F3C4, ax jz short locret_2FE5 push word_F3C4 call pfclose locret_2FE5: retf sub_2FB6 endp ; --------------------------------------------------------------------------- cmp cs:byte_2F54, 0 jz short loc_2FF3 jmp cs:dword_2F50 ; --------------------------------------------------------------------------- loc_2FF3: pusha push ds push es mov bp, sp mov di, seg dseg mov ds, di inc cs:byte_2F54 push word ptr [bp+18h] popf mov cs:byte_304A, ah mov si, 301Ah loc_300E: add si, 4 cmp ah, cs:[si] jnz short loc_300E mov di, word_F3C6 jmp word ptr cs:[si+2] ; --------------------------------------------------------------------------- db 3Dh ; = db 0 db 4Eh ; N db 30h ; 0 db 3Eh ; > db 0 db 83h db 30h ; 0 db 3Fh ; ? db 0 db 0A1h ; 。 db 30h ; 0 db 42h ; B db 0 db 0B5h ; オ db 30h ; 0 db 46h ; F db 0 db 16h db 31h ; 1 db 40h db 0 db 1Ah db 31h ; 1 db 45h ; E db 0 db 1Ah db 31h ; 1 db 4Ch ; L db 0 db 0F8h db 30h ; 0 db 57h ; W db 0 db 1Ah db 31h ; 1 db 5Ch db 0 db 1Ah db 31h ; 1 db 44h ; D db 0 db 4 db 31h ; 1 byte_304A db 0 db 0 db 1Eh, 31h, 0A8h, 0Fh, 74h, 3, 0E9h, 0C9h, 0, 0Bh, 0FFh db 78h, 3, 0E9h, 0C2h, 0, 1Eh, 68h, 14h, 1Dh, 0FFh, 76h db 2, 52h, 0Eh, 0E8h, 0E2h, 0, 0Bh, 0C0h, 75h, 3, 0E9h db 0AFh, 0, 0A3h, 94h, 1Dh, 8Eh, 0C0h, 26h, 8Eh, 6, 2 dup(0) db 26h, 0A1h, 2 dup(0), 0A3h, 96h, 1Dh, 0E9h, 0B6h, 0 db 3Bh, 0DFh, 74h, 3, 0E9h, 94h, 0, 0FFh, 36h, 94h, 1Dh db 0Eh, 0E8h, 82h, 0EDh, 0C7h, 6, 94h, 1Dh, 2 dup(0), 0C7h db 6, 96h, 1Dh, 2 dup(0FFh), 0E9h, 98h, 0, 3Bh, 0DFh, 75h db 79h, 0FFh, 76h, 2, 52h, 51h, 0FFh, 36h, 94h, 1Dh, 0Eh db 0E8h, 2Ch, 0EEh, 0E9h, 84h, 0, 3Bh, 0DFh, 75h, 65h db 0Bh, 0C9h, 7Ch, 73h, 3Ch, 1, 74h, 28h, 7Ch, 1Ah, 8Eh db 6, 94h, 1Dh, 26h, 8Bh, 2 dup(16h), 0, 26h, 8Bh, 0Eh db 18h, 0, 26h, 2Bh, 16h, 12h, 0, 26h, 1Bh, 0Eh, 14h, 0 db 0EBh, 0Ch, 51h, 52h, 0FFh, 36h, 94h, 1Dh, 0Eh, 0E8h db 25h, 0EEh, 5Ah, 59h, 0FFh, 36h, 94h, 1Dh, 51h, 52h db 0Eh, 0E8h, 55h, 0EEh, 89h, 56h, 0Eh, 0EBh, 41h, 2Eh db 0C5h, 16h, 50h, 2Fh, 0B8h, 21h, 25h, 0CDh, 21h, 0EBh db 1Ah, 8Ah, 0C8h, 0B8h, 1, 0, 0D3h, 0E0h, 2Eh, 85h, 6 db 14h, 31h, 75h, 8, 0EBh, 0Ah, 0CFh, 14h, 8Bh, 0CFh, 74h db 16h, 3Bh, 0DFh, 74h, 12h, 2Eh, 0FEh, 0Eh, 54h, 2Fh db 0FFh, 76h, 18h, 9Dh, 7, 1Fh, 61h, 0FAh, 2Eh, 0FFh, 2Eh db 50h, 2Fh, 80h, 4Eh, 18h, 1, 0B8h, 1, 0, 0EBh, 4, 80h db 66h, 18h, 0FEh, 89h, 46h, 12h, 2Eh, 0FEh, 0Eh, 54h db 2Fh, 7, 1Fh, 61h, 0CFh, 0, 0C8h, 20h, 2 dup(0), 56h db 57h, 0C7h, 6, 82h, 5, 7, 0, 6Ah, 1Fh, 0Eh, 0E8h, 3Ah db 0F6h, 73h, 3, 0E9h, 0BBh, 0, 8Bh, 0F0h, 0FFh, 76h, 0Ch db 0FFh, 76h, 0Ah, 0Eh, 0E8h, 4Bh, 0D4h, 0Bh, 0C0h, 75h db 3, 0E9h, 0A1h, 0, 8Eh, 0C6h, 26h, 0A3h, 2 dup(0), 8Dh db 7Eh, 0E0h, 57h, 56h, 0FFh, 76h, 0Ch, 0FFh, 76h, 0Ah db 0FFh, 76h, 8, 0FFh, 76h, 6, 0E8h, 9Ch, 0, 0Bh, 0C0h db 75h, 77h, 0B8h, 0D0h, 1Eh, 26h, 0A3h, 4, 0, 0A0h, 82h db 2, 26h, 0A2h, 1Eh, 0, 36h, 8Bh, 5, 3Dh, 88h, 0F3h, 74h db 0Ah, 3Dh, 2 dup(95h), 74h, 0Fh, 0B8h, 5, 0, 0EBh, 57h db 26h, 0A1h, 4, 0, 26h, 0A3h, 2, 0, 0EBh, 15h, 26h, 0C7h db 6, 2, 0, 3Eh, 1Eh, 26h, 0C7h, 6, 1Ah, 3 dup(0), 26h db 0C7h, 6, 1Ch, 0, 2 dup(0FFh), 36h, 8Bh, 45h, 10h, 36h db 8Bh, 55h, 12h, 26h, 0A3h, 6, 0, 26h, 89h, 16h, 8, 0 db 36h, 8Bh, 45h, 14h, 36h, 8Bh, 55h, 16h, 26h, 0A3h, 16h db 0, 26h, 89h, 16h, 18h, 0, 33h, 0C0h, 26h, 0A3h, 0Ah db 0, 26h, 0A3h, 0Ch, 0, 26h, 0A3h, 12h, 0, 26h, 0A3h db 14h, 0, 8Bh, 0C6h, 0EBh, 1Ah, 0A3h, 80h, 2, 26h, 0FFh db 36h, 2 dup(0), 0Eh, 0E8h, 5Dh, 0D2h, 56h, 0Eh, 0E8h db 80h, 0F6h, 0EBh, 5, 0C6h, 6, 80h, 2, 3, 33h, 0C0h, 5Fh db 5Eh, 0C9h, 0CAh, 8, 0, 90h, 0C8h, 6, 2 dup(0), 56h db 57h, 6, 8Bh, 76h, 0Ch, 8Eh, 0C6h, 33h, 0C0h, 26h, 0A3h db 0Eh, 0, 26h, 0A3h, 10h, 0, 1Eh, 56h, 0FCh, 33h, 0DBh db 8Bh, 0D3h, 0C5h, 76h, 8, 0ACh, 3Ch, 0, 74h, 0Bh, 3Ch db 2Eh, 75h, 0F7h, 8Dh, 5Ch, 0FFh, 8Ch, 0DAh, 0EBh db 0F0h, 5Eh, 1Fh, 8Bh, 0C2h, 0Bh, 0C3h, 74h, 0, 8Bh, 7Eh db 0Eh, 0C6h, 6, 0B1h, 5, 0, 8Eh, 0C6h, 16h, 57h, 6Ah db 20h, 26h, 0FFh, 36h, 2 dup(0), 0Eh, 0E8h, 93h, 0D3h db 0FEh, 6, 0B1h, 5, 80h, 3Eh, 0B1h, 5, 0FFh, 0BBh, 2 db 0, 74h, 40h, 3Dh, 20h, 0, 75h, 3Bh, 8Eh, 0C6h, 26h db 1, 6, 0Eh, 0, 26h, 83h, 16h, 10h, 2 dup(0), 36h, 8Bh db 5, 23h, 0C0h, 0BBh, 6, 0, 74h, 24h, 8Dh, 5Dh, 3, 36h db 80h, 3Fh, 0, 74h, 6, 36h, 0F6h, 17h, 43h, 0EBh, 0F4h db 8Dh, 5Dh, 3, 0FFh, 76h, 6, 0FFh, 76h, 4, 16h, 53h, 0E8h db 30h, 0, 0B8h, 2 dup(0), 75h, 4, 0EBh, 0A3h, 8Bh, 0C3h db 8Eh, 0C6h, 36h, 8Bh, 45h, 18h, 36h, 8Bh, 55h, 1Ah, 26h db 0A3h, 0Eh, 0, 26h, 89h, 16h, 10h, 0, 26h, 0FFh, 36h db 2 dup(0), 52h, 50h, 6Ah, 0, 0Eh, 0E8h, 95h, 0D3h, 7 db 5Fh, 5Eh, 0C9h, 0C2h, 0Ch, 0 ; --------------------------------------------------------------------------- push bp mov bp, sp push si push ds cld les bx, [bp+8] lds si, [bp+4] loc_32FC: mov ah, es:[bx] inc bx lodsb sub al, 61h ; 'a' cmp al, 19h ja short loc_3309 sub al, 20h ; ' ' loc_3309: sub ah, 61h ; 'a' cmp ah, 19h ja short loc_3314 sub ah, 20h ; ' ' loc_3314: cmp ah, al jnz short loc_331E add al, 61h ; 'a' jnz short loc_32FC jmp short loc_3320 ; --------------------------------------------------------------------------- loc_331E: xor ax, ax loc_3320: test ax, ax pop ds pop si pop bp retn 8 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_lxmul.asm include libs/BorlandC/f_scopy.asm include libs/BorlandC/getvect.asm include libs/BorlandC/H_LDIV.ASM include libs/BorlandC/H_LLSH.ASM include libs/BorlandC/H_LRSH.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 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_9BF0 proc far var_C = word ptr -0Ch var_A = word ptr -0Ah var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_5 = byte ptr -5 var_4 = byte ptr -4 var_3 = word ptr -3 var_1 = byte ptr -1 enter 0Ch, 0 mov [bp+var_A], ds mov [bp+var_C], 163h push [bp+var_A] push [bp+var_C] call file_exist or ax, ax jnz short loc_9C0E jmp loc_9C9D ; --------------------------------------------------------------------------- loc_9C0E: push [bp+var_A] push [bp+var_C] call file_ropen push ss lea ax, [bp+var_8] push ax push 8 call file_read mov al, [bp+var_8] mov byte_DC34, al mov al, [bp+var_7] mov byte_E8F9, al mov al, [bp+var_6] mov byte_F3E2, al mov al, [bp+var_5] mov byte_F3E1, al mov ax, [bp+var_3] mov word_E900, ax cmp word_E900, 0 jz short loc_9C9D mov ax, word_E900 mov word ptr dword_F3DC+2, ax mov word ptr dword_F3DC, 0 les bx, dword_F3DC mov al, [bp+var_4] mov es:[bx+24h], al mov al, [bp+var_1] mov es:[bx+0Ch], al call file_close cmp byte_E8F9, 0 jnz short loc_9C80 mov byte_F3CA, 0 mov byte_DBEE, 0 jmp short loc_9C99 ; --------------------------------------------------------------------------- loc_9C80: cmp byte_E8F9, 1 jnz short loc_9C8E mov byte_F3CB, 0 jmp short loc_9C94 ; --------------------------------------------------------------------------- loc_9C8E: mov al, byte_F3CD mov byte_F3CB, al loc_9C94: call sub_B092 loc_9C99: xor ax, ax leave retf ; --------------------------------------------------------------------------- loc_9C9D: mov ax, 1 leave retf sub_9BF0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9CA2 proc far var_C = byte ptr -0Ch var_B = byte ptr -0Bh var_A = byte ptr -0Ah var_9 = byte ptr -9 var_8 = byte ptr -8 var_5 = byte ptr -5 var_4 = word ptr -4 var_2 = word ptr -2 enter 0Ch, 0 mov [bp+var_2], ds mov [bp+var_4], 163h mov [bp+var_5], 0 mov al, byte_DC34 mov [bp+var_C], al mov al, byte_E8F9 mov [bp+var_B], al mov al, byte_F3E2 mov [bp+var_A], al mov al, byte_F3E1 mov [bp+var_9], al les bx, dword_F3DC mov al, es:[bx+24h] mov [bp+var_8], al push [bp+var_2] push [bp+var_4] call file_create push ss lea ax, [bp+var_C] push ax push 5 call file_write push ds push offset word_E900 push 2 call file_write push ss lea ax, [bp+var_5] push ax push 1 call file_write call file_close leave retf sub_9CA2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9D0A proc far push bp mov bp, sp call text_clear push 20h ; ' ' push 5 call text_fillca pop bp retf sub_9D0A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9D1D proc near arg_0 = byte ptr 4 arg_2 = word ptr 6 push bp mov bp, sp push ds push [bp+arg_2] push 0 call sub_ADD5 mov dx, 0A6h ; 'ヲ' mov al, [bp+arg_0] out dx, al push 0 call sub_B15A push 0 push 0 push 0 call sub_B17D add sp, 0Eh push ds push offset unk_F194 push word_F17E push word_F17C call graph_pi_free pop bp retn 4 sub_9D1D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9D5C proc far var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 enter 6, 0 push si mov dx, word ptr gZUN+2 mov ax, word ptr gZUN mov [bp+var_4], dx mov [bp+var_6], ax push cs call near ptr sub_9D0A push 0B00h push ds push offset aHuuma_efc ; "huuma.efc" call sub_B0EA push 177h push 1 call sub_9D1D push 17Eh push 0 call sub_9D1D push ds push offset aOpa_pi ; "opa.pi" push 0 call sub_ADD5 push ds push offset aOpb_pi ; "opb.pi" push 1 call sub_ADD5 push ds push offset aOpc_pi ; "opc.pi" push 2 call sub_ADD5 add sp, 18h mov PaletteTone, 0C8h ; 'ネ' call far ptr palette_show mov [bp+var_2], 0 jmp short loc_9E0F ; --------------------------------------------------------------------------- loc_9DC4: xor si, si jmp short loc_9DED ; --------------------------------------------------------------------------- loc_9DC8: mov ax, 27h ; ''' sub ax, [bp+var_2] push ax push si push 20h ; ' ' push 0E1h call text_putca mov ax, [bp+var_2] add ax, 28h ; '(' push ax push si push 20h ; ' ' push 0E1h call text_putca inc si loc_9DED: cmp si, 19h jl short loc_9DC8 mov ax, [bp+var_2] add ax, ax mov dx, 0C8h ; 'ネ' sub dx, ax mov PaletteTone, dx call far ptr palette_show push 1 call sub_B2D2 inc [bp+var_2] loc_9E0F: cmp [bp+var_2], 28h ; '(' jl short loc_9DC4 mov [bp+var_2], 28h ; '(' jmp short loc_9E39 ; --------------------------------------------------------------------------- loc_9E1C: mov ax, [bp+var_2] add ax, ax mov dx, 0C8h ; 'ネ' sub dx, ax mov PaletteTone, dx call far ptr palette_show push 1 call sub_B2D2 inc [bp+var_2] loc_9E39: cmp [bp+var_2], 32h ; '2' jl short loc_9E1C mov PaletteTone, 64h ; 'd' call far ptr palette_show les bx, dword_F3DC cmp byte ptr es:[bx+27h], 0 jnz short loc_9E97 mov [bp+var_2], 0 cmp byte_F3CD, 0 jz short loc_9E7D mov al, byte_F3CB mov ah, 0 mov [bp+var_2], ax mov byte_F3CB, 1 push 600h push ds push offset aOp_m ; "op.m" call sub_B0EA add sp, 6 loc_9E7D: mov byte_F3CB, 0 push 600h push ds push offset aOp_m ; "op.m" call sub_B0EA add sp, 6 mov al, byte ptr [bp+var_2] mov byte_F3CB, al loc_9E97: push 12h call sub_B2D2 call sub_B2E8 mov PaletteTone, 0C8h ; 'ネ' call far ptr palette_show mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al push 224h push 180h push 0DFh ; '゚' push 0 call graph_gaiji_putc push 234h push 180h push 10h push ss lea ax, [bp+var_6] push ax push 0 call graph_gaiji_puts push 220h push 17Ch push 0DFh ; '゚' push 6 call graph_gaiji_putc push 230h push 17Ch push 10h push ss lea ax, [bp+var_6] push ax push 6 call graph_gaiji_puts push 0 call graph_copy_page les bx, dword_F3DC cmp byte ptr es:[bx+27h], 0 jnz short loc_9F16 push 0 call sub_B203 pop cx loc_9F16: les bx, dword_F3DC mov byte ptr es:[bx+27h], 0 push ds push offset aOp_rgb ; "op.rgb" call palette_entry_rgb call far ptr palette_show push 6 call palette_white_in pop si leave retf sub_9D5C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9F37 proc near push bp mov bp, sp call sub_B252 push 0Dh call sub_B25E pop cx call sub_B296 push 14h call sub_B2D2 les bx, dword_F3DC mov al, byte_F3E1 mov es:[bx+15h], al mov al, byte_F3E2 mov es:[bx+14h], al mov al, byte_F3E1 mov es:[bx+1Ah], al mov al, byte_F3E2 mov es:[bx+19h], al mov al, byte_E8F9 mov es:[bx+18h], al mov byte ptr es:[bx+17h], 0 mov word ptr es:[bx+10h], 0 mov word ptr es:[bx+0Eh], 0 mov word ptr es:[bx+12h], 0 mov byte ptr es:[bx+25h], 0 mov word ptr es:[bx+20h], 0 mov byte ptr es:[bx+27h], 0 mov word ptr es:[bx+2Eh], 0 mov word ptr es:[bx+2Ch], 0 pop bp retn sub_9F37 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9FAF proc far push bp mov bp, sp call sub_9F37 les bx, dword_F3DC mov al, byte_DC34 mov es:[bx+16h], al mov byte ptr es:[bx+0Bh], 0 push cs call near ptr sub_9CA2 push ds push offset aTs1_pi ; "ts1.pi" push 0 call sub_ADD5 call text_clear call sub_BD24 push 20Fh call sub_B203 add sp, 8 call gaiji_restore call super_free call sub_B019 les bx, dword_F3DC cmp byte ptr es:[bx+0Ch], 0 jz short loc_A011 push 0 push 0 push ds push offset aSelect ; "select" push ds push offset aSelect ; "select" jmp short loc_A01D ; --------------------------------------------------------------------------- loc_A011: push 0 push 0 push ds push offset path ; "main" push ds push offset path ; "main" loc_A01D: call _execl add sp, 0Ch pop bp retf sub_9FAF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A027 proc far push bp mov bp, sp les bx, dword_F3DC mov byte ptr es:[bx+15h], 2 mov byte ptr es:[bx+14h], 3 mov byte ptr es:[bx+1Ah], 2 mov byte ptr es:[bx+19h], 3 mov al, byte_E8F9 mov es:[bx+18h], al mov byte ptr es:[bx+16h], 1 mov word ptr es:[bx+12h], 0 mov byte ptr es:[bx+25h], 0 mov al, byte_E8FE mov es:[bx+27h], al mov byte ptr es:[bx+26h], 0 push cs call near ptr sub_9CA2 call text_clear push ds push offset unk_F194 push word_F17E push word_F17C call graph_pi_free push ds push offset unk_F1DC push word_F182 push word_F180 call graph_pi_free push ds push offset unk_F224 push word_F186 push word_F184 call graph_pi_free call gaiji_restore call super_free call sub_B019 push 0 push 0 push ds push offset path ; "main" push ds push offset path ; "main" call _execl add sp, 0Ch pop bp retf sub_A027 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A0C6 proc far push bp mov bp, sp call sub_9F37 les bx, dword_F3DC mov byte ptr es:[bx+16h], 4 mov byte ptr es:[bx+0Bh], 5 mov byte ptr es:[bx+15h], 2 mov byte ptr es:[bx+14h], 1 mov byte ptr es:[bx+1Ah], 2 mov byte ptr es:[bx+19h], 1 push cs call near ptr sub_9CA2 push ds push offset aTs1_pi ; "ts1.pi" push 0 call sub_ADD5 call text_clear call sub_BD24 push 20Fh call sub_B203 add sp, 8 call gaiji_restore call super_free call sub_B019 les bx, dword_F3DC cmp byte ptr es:[bx+0Ch], 0 jz short loc_A13A push 0 push 0 push ds push offset aSelect ; "select" push ds push offset aSelect ; "select" jmp short loc_A146 ; --------------------------------------------------------------------------- loc_A13A: push 0 push 0 push ds push offset path ; "main" push ds push offset path ; "main" loc_A146: call _execl add sp, 0Ch pop bp retf sub_A0C6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A150 proc near push bp mov bp, sp push 11Ch push 104h push 10h push ds push offset gSTART push 0 call graph_gaiji_puts push 0ECh push 114h push 10h push ds push offset gEXTRA_START push 0 call graph_gaiji_puts push 10Ch push 124h push 10h push ds push offset gHISCORE push 0 call graph_gaiji_puts push 114h push 134h push 10h push ds push offset gOPTION push 0 call graph_gaiji_puts push 0F4h push 144h push 10h push ds push offset gMUSIC_MODE push 0 call graph_gaiji_puts push 124h push 154h push 10h push ds push offset gQUIT push 0 call graph_gaiji_puts push 0D4h push 174h push 10h push ds push offset gRANK push 0 call graph_gaiji_puts push 134h push 174h push 10h push ds mov al, byte_DC34 cbw shl ax, 3 add ax, offset gcEASY push ax push 0 call graph_gaiji_puts pop bp retn sub_A150 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A1F5 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] or si, si jnz short loc_A20E push 23h ; '#' push 10h push ds push offset gSTART jmp short loc_A248 ; --------------------------------------------------------------------------- loc_A20E: cmp si, 2 jnz short loc_A21D push 21h ; '!' push 12h push ds push offset gHISCORE jmp short loc_A248 ; --------------------------------------------------------------------------- loc_A21D: cmp si, 3 jnz short loc_A22C push 22h ; '"' push 13h push ds push offset gOPTION jmp short loc_A248 ; --------------------------------------------------------------------------- loc_A22C: cmp si, 4 jnz short loc_A23B push 1Eh push 14h push ds push offset gMUSIC_MODE jmp short loc_A248 ; --------------------------------------------------------------------------- loc_A23B: cmp si, 5 jnz short loc_A24E push 24h ; '$' push 15h push ds push offset gQUIT loc_A248: push di call gaiji_putsa loc_A24E: cmp si, 1 jnz short loc_A274 cmp byte_F4A2, 0 jz short loc_A265 push 1Dh push 11h push ds push offset gEXTRA_START push di jmp short loc_A26F ; --------------------------------------------------------------------------- loc_A265: push 1Dh push 11h push ds push offset gEXTRA_START push 21h ; '!' loc_A26F: call gaiji_putsa loc_A274: push 1Ah push 17h push ds push offset gRANK push 81h call gaiji_putsa push 26h ; '&' push 17h push ds mov al, byte_DC34 cbw shl ax, 3 add ax, offset gcEASY push ax push 81h call gaiji_putsa pop di pop si pop bp retn 4 sub_A1F5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A2A2 proc near arg_0 = byte ptr 4 arg_2 = byte ptr 6 push bp mov bp, sp mov al, byte_D6C0 cbw push ax push 0C1h call word_E902 mov al, [bp+arg_0] add byte_D6C0, al cmp byte_D6C1, 0 jnz short loc_A2D1 cmp byte_F4A2, 0 jnz short loc_A2D1 cmp byte_D6C0, 1 jnz short loc_A2D1 add byte_D6C0, al loc_A2D1: cmp byte_D6C0, 0 jge short loc_A2DE mov al, [bp+arg_2] mov byte_D6C0, al loc_A2DE: mov al, byte_D6C0 cmp al, [bp+arg_2] jle short loc_A2EB mov byte_D6C0, 0 loc_A2EB: mov al, byte_D6C0 cbw push ax push 0E1h call word_E902 pop bp retn 4 sub_A2A2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A2FB proc far push bp mov bp, sp push si cmp byte_D790, 0 jnz short loc_A356 mov byte_E8F8, 0 mov byte_D790, 1 call text_clear mov dx, 0A4h ; '、' mov al, 1 out dx, al push 0 call graph_copy_page call sub_A150 mov dx, 0A4h ; '、' mov al, 0 out dx, al mov word_E8FC, 0 xor si, si jmp short loc_A34B ; --------------------------------------------------------------------------- loc_A335: push si mov al, byte_D6C0 cbw cmp ax, si jnz short loc_A343 mov ax, 0E1h jmp short loc_A346 ; --------------------------------------------------------------------------- loc_A343: mov ax, 0C1h loc_A346: push ax call sub_A1F5 inc si loc_A34B: cmp si, 6 jl short loc_A335 mov word_E902, 605h loc_A356: cmp word_F3C8, 0 jnz short loc_A362 mov byte_E8F8, 1 loc_A362: cmp byte_E8F8, 0 jnz short loc_A36C jmp loc_A466 ; --------------------------------------------------------------------------- loc_A36C: test byte ptr word_F3C8, 1 jz short loc_A37A push 5 push 0FFFFh call sub_A2A2 loc_A37A: test byte ptr word_F3C8, 2 jz short loc_A388 push 5 push 1 call sub_A2A2 loc_A388: test byte ptr word_F3C8, 10h jnz short loc_A399 test byte ptr word_F3C8, 80h jnz short loc_A399 jmp loc_A448 ; --------------------------------------------------------------------------- loc_A399: mov al, byte_D6C0 cbw mov bx, ax cmp bx, 5 jbe short loc_A3A7 jmp loc_A448 ; --------------------------------------------------------------------------- loc_A3A7: add bx, bx jmp cs:off_A475[bx] loc_A3AE: push cs call near ptr sub_9FAF jmp loc_A448 ; --------------------------------------------------------------------------- loc_A3B5: push cs call near ptr sub_A0C6 jmp loc_A448 ; --------------------------------------------------------------------------- loc_A3BC: mov word_F4A4, 7D0h call text_clear call sub_B77E mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al mov dx, 0A4h ; '、' mov al, 0 out dx, al push ds push offset aOp2_pi ; "op2.pi" push 0 call sub_ADD5 push 0 call sub_B15A push 0 push 0 push 0 call sub_B17D add sp, 0Eh push ds push offset unk_F194 push word_F17E push word_F17C call graph_pi_free push ds push offset aOp_rgb ; "op.rgb" call palette_entry_rgb call far ptr palette_show push 0 call graph_copy_page mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al loc_A424: mov byte_D790, 0 jmp short loc_A448 ; --------------------------------------------------------------------------- loc_A42B: mov byte_D6C0, 0 mov byte_D6C1, 1 jmp short loc_A424 ; --------------------------------------------------------------------------- loc_A437: call text_clear call sub_C7A0 jmp short loc_A424 ; --------------------------------------------------------------------------- loc_A443: mov byte_D6C2, 1 loc_A448: test byte ptr word_F3C8, 40h jz short loc_A454 mov byte_D6C2, 1 loc_A454: cmp word_F3C8, 0 jz short loc_A466 mov byte_E8F8, 0 mov word_E8FC, 0 loc_A466: cmp word_E8FC, 280h jbe short loc_A472 push cs call near ptr sub_A027 loc_A472: pop si pop bp retf sub_A2FB endp ; --------------------------------------------------------------------------- off_A475 dw offset loc_A3AE dw offset loc_A3B5 dw offset loc_A3BC dw offset loc_A42B dw offset loc_A437 dw offset loc_A443 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A481 proc near push bp mov bp, sp push 0C4h ; 'ト' push 104h push 10h push ds push offset gRANK push 0 call graph_gaiji_puts push 0C4h ; 'ト' push 114h push 10h push ds push offset gMUSIC push 0 call graph_gaiji_puts push 0C4h ; 'ト' push 124h push 10h push ds push offset gPLAYER push 0 call graph_gaiji_puts push 0C4h ; 'ト' push 134h push 10h push ds push offset gBOMB push 0 call graph_gaiji_puts push word ptr PERF_TITLE+2 push word ptr PERF_TITLE push 0 push 144h push 0C4h ; 'ト' call sub_AB4D add sp, 0Ah push 11Ch push 154h push 10h push ds push offset gRESET push 0 call graph_gaiji_puts push 124h push 174h push 10h push ds push offset gQUIT push 0 call graph_gaiji_puts pop bp retn sub_A481 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A510 proc near arg_0 = word ptr 4 arg_2 = word ptr 6 push bp mov bp, sp push si push di mov di, [bp+arg_2] mov si, [bp+arg_0] or di, di jnz short loc_A568 push 18h push 10h push ds push offset gRANK push si call gaiji_putsa push 2Ah ; '*' push 10h push ds mov al, byte_DC34 cbw shl ax, 3 add ax, offset gcEASY push ax push si call gaiji_putsa push 150h push 104h push 80h push 10h call sub_AE00 push 154h push 104h push 10h push ds mov al, byte_DC34 cbw shl ax, 3 add ax, offset gcEASY jmp short loc_A5B3 ; --------------------------------------------------------------------------- loc_A568: cmp di, 1 jnz short loc_A5BE push 18h push 11h push ds push offset gMUSIC push si call gaiji_putsa push 2Fh ; '/' push 11h push ds mov al, byte_E8F9 cbw imul ax, 5 add ax, offset gOFF push ax push si call gaiji_putsa push 178h push 114h push 40h push 10h call sub_AE00 push 17Ch push 114h push 10h push ds mov al, byte_E8F9 cbw imul ax, 5 add ax, 145h loc_A5B3: push ax push 0 call graph_gaiji_puts jmp loc_A6E9 ; --------------------------------------------------------------------------- loc_A5BE: cmp di, 2 jnz short loc_A60A push 18h push 12h push ds push offset gPLAYER push si call gaiji_putsa push 31h ; '1' push 12h mov al, byte_F3E1 cbw add ax, 0A1h ; '。' push ax push si call gaiji_putca push 188h push 124h push 20h ; ' ' push 10h call sub_AE00 push 18Ch push 124h mov al, byte_F3E1 cbw add ax, 0A1h ; '。' push ax push 0 call graph_gaiji_putc jmp loc_A6E9 ; --------------------------------------------------------------------------- loc_A60A: cmp di, 3 jnz short loc_A656 push 18h push 13h push ds push offset gBOMB push si call gaiji_putsa push 31h ; '1' push 13h mov al, byte_F3E2 cbw add ax, 0A0h push ax push si call gaiji_putca push 188h push 134h push 20h ; ' ' push 10h call sub_AE00 push 18Ch push 134h mov al, byte_F3E2 cbw add ax, 0A0h push ax push 0 call graph_gaiji_putc jmp loc_A6E9 ; --------------------------------------------------------------------------- loc_A656: cmp di, 4 jnz short loc_A6C7 push 18h push 14h push word ptr PERF_TITLE+2 push word ptr PERF_TITLE push si call text_putsa push 2Dh ; '-' push 14h les bx, dword_F3DC mov al, es:[bx+24h] mov ah, 0 shl ax, 2 mov bx, ax push word ptr (PERF_OPTION+2)[bx] push word ptr PERF_OPTION[bx] push si call text_putsa push 168h push 144h push 80h push 10h call sub_AE00 les bx, dword_F3DC mov al, es:[bx+24h] mov ah, 0 shl ax, 2 mov bx, ax push word ptr (PERF_OPTION+2)[bx] push word ptr PERF_OPTION[bx] push 0 push 144h push 16Ch call sub_AB4D add sp, 0Ah jmp short loc_A6E9 ; --------------------------------------------------------------------------- loc_A6C7: cmp di, 5 jnz short loc_A6D6 push 23h ; '#' push 15h push ds push offset gRESET jmp short loc_A6E3 ; --------------------------------------------------------------------------- loc_A6D6: cmp di, 6 jnz short loc_A6E9 push 24h ; '$' push 17h push ds push offset gQUIT loc_A6E3: push si call gaiji_putsa loc_A6E9: pop di pop si pop bp retn 4 sub_A510 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A6EF proc near push bp mov bp, sp cmp byte_E8F9, 0 jnz short loc_A70E mov byte_F3CA, 0 push 100h call sub_B203 pop cx mov byte_DBEE, 0 pop bp retn ; --------------------------------------------------------------------------- loc_A70E: cmp byte_E8F9, 1 jnz short loc_A725 push 100h call sub_B203 pop cx mov byte_F3CB, 0 jmp short loc_A73B ; --------------------------------------------------------------------------- loc_A725: cmp byte_E8F9, 2 jnz short loc_A748 push 100h call sub_B203 pop cx mov al, byte_F3CD mov byte_F3CB, al loc_A73B: call sub_B092 push 0 call sub_B203 pop cx loc_A748: pop bp retn sub_A6EF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A74A proc far push bp mov bp, sp push si cmp byte_D792, 0 jnz short loc_A79F mov byte_D791, 0 mov byte_D792, 1 call text_clear mov dx, 0A4h ; '、' mov al, 1 out dx, al push 0 call graph_copy_page call sub_A481 mov dx, 0A4h ; '、' mov al, 0 out dx, al xor si, si jmp short loc_A794 ; --------------------------------------------------------------------------- loc_A77E: push si mov al, byte_D6C0 cbw cmp ax, si jnz short loc_A78C mov ax, 0E1h jmp short loc_A78F ; --------------------------------------------------------------------------- loc_A78C: mov ax, 0C1h loc_A78F: push ax call sub_A510 inc si loc_A794: cmp si, 7 jl short loc_A77E mov word_E902, 920h loc_A79F: cmp word_F3C8, 0 jnz short loc_A7AB mov byte_D791, 1 loc_A7AB: cmp byte_D791, 0 jnz short loc_A7B5 jmp loc_A9A1 ; --------------------------------------------------------------------------- loc_A7B5: test byte ptr word_F3C8, 1 jz short loc_A7C3 push 6 push 0FFFFh call sub_A2A2 loc_A7C3: test byte ptr word_F3C8, 2 jz short loc_A7D1 push 6 push 1 call sub_A2A2 loc_A7D1: test byte ptr word_F3C8, 8 jnz short loc_A7DB jmp loc_A85C ; --------------------------------------------------------------------------- loc_A7DB: mov al, byte_D6C0 cbw push ax push 0C1h call sub_A510 mov al, byte_D6C0 cbw mov bx, ax cmp bx, 4 ja short loc_A851 add bx, bx jmp cs:off_A9AF[bx] loc_A7F8: inc byte_DC34 cmp byte_DC34, 3 jle short loc_A851 mov byte_DC34, 0 jmp short loc_A851 ; --------------------------------------------------------------------------- loc_A80A: inc byte_E8F9 cmp byte_E8F9, 2 jle short loc_A81A mov byte_E8F9, 0 loc_A81A: call sub_A6EF jmp short loc_A851 ; --------------------------------------------------------------------------- loc_A81F: inc byte_F3E1 cmp byte_F3E1, 4 jle short loc_A851 mov byte_F3E1, 0 jmp short loc_A851 ; --------------------------------------------------------------------------- loc_A831: inc byte_F3E2 cmp byte_F3E2, 3 jle short loc_A851 mov byte_F3E2, 0 jmp short loc_A851 ; --------------------------------------------------------------------------- loc_A843: les bx, dword_F3DC mov al, 1 sub al, es:[bx+24h] mov es:[bx+24h], al loc_A851: mov al, byte_D6C0 cbw push ax push 0E1h call sub_A510 loc_A85C: test byte ptr word_F3C8, 4 jnz short loc_A866 jmp loc_A8E7 ; --------------------------------------------------------------------------- loc_A866: mov al, byte_D6C0 cbw push ax push 0C1h call sub_A510 mov al, byte_D6C0 cbw mov bx, ax cmp bx, 4 ja short loc_A8DC add bx, bx jmp cs:off_A9A5[bx] loc_A883: dec byte_DC34 cmp byte_DC34, 0 jge short loc_A8DC mov byte_DC34, 3 jmp short loc_A8DC ; --------------------------------------------------------------------------- loc_A895: dec byte_E8F9 cmp byte_E8F9, 0 jge short loc_A8A5 mov byte_E8F9, 2 loc_A8A5: call sub_A6EF jmp short loc_A8DC ; --------------------------------------------------------------------------- loc_A8AA: dec byte_F3E1 cmp byte_F3E1, 0 jge short loc_A8DC mov byte_F3E1, 4 jmp short loc_A8DC ; --------------------------------------------------------------------------- loc_A8BC: dec byte_F3E2 cmp byte_F3E2, 0 jge short loc_A8DC mov byte_F3E2, 3 jmp short loc_A8DC ; --------------------------------------------------------------------------- loc_A8CE: les bx, dword_F3DC mov al, 1 sub al, es:[bx+24h] mov es:[bx+24h], al loc_A8DC: mov al, byte_D6C0 cbw push ax push 0E1h call sub_A510 loc_A8E7: test byte ptr word_F3C8, 10h jnz short loc_A8F8 test byte ptr word_F3C8, 80h jnz short loc_A8F8 jmp loc_A97F ; --------------------------------------------------------------------------- loc_A8F8: mov al, byte_D6C0 cbw cmp ax, 5 jz short loc_A908 cmp ax, 6 jz short loc_A970 jmp short loc_A97F ; --------------------------------------------------------------------------- loc_A908: mov byte_DC34, 1 mov byte_E8F9, 1 push 100h call sub_B203 mov byte_F3CB, 0 call sub_B092 push 0 call sub_B203 add sp, 4 mov byte_F3E1, 2 mov byte_F3E2, 3 les bx, dword_F3DC mov byte ptr es:[bx+22h], 1 mov byte ptr es:[bx+24h], 0 push 0 push 0C1h call sub_A510 push 1 push 0C1h call sub_A510 push 2 push 0C1h call sub_A510 push 3 push 0C1h call sub_A510 push 4 push 0C1h call sub_A510 jmp short loc_A97F ; --------------------------------------------------------------------------- loc_A970: mov byte_D6C0, 3 mov byte_D6C1, 0 mov byte_D792, 0 loc_A97F: test byte ptr word_F3C8, 40h jz short loc_A995 mov byte_D6C0, 3 mov byte_D6C1, 0 mov byte_D792, 0 loc_A995: cmp word_F3C8, 0 jz short loc_A9A1 mov byte_D791, 0 loc_A9A1: pop si pop bp retf sub_A74A endp ; --------------------------------------------------------------------------- db 0 off_A9A5 dw offset loc_A883 dw offset loc_A895 dw offset loc_A8AA dw offset loc_A8BC dw offset loc_A8CE off_A9AF dw offset loc_A7F8 dw offset loc_A80A dw offset loc_A81F dw offset loc_A831 dw offset loc_A843 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl main(int _argc, const char **_argv, const char **_envp) _main proc far var_2 = byte ptr -2 var_1 = byte ptr -1 _argc = word ptr 6 _argv = dword ptr 8 _envp = dword ptr 0Ch enter 2, 0 call sub_B0B0 or ax, ax jz short loc_A9EE call sub_B058 call sub_AFB0 or ax, ax jz short loc_A9DD push 3 call sub_AB41 jmp short loc_A9EE ; --------------------------------------------------------------------------- loc_A9DD: call sub_B86E mov byte_F4A2, al push cs call near ptr sub_9BF0 cmp ax, 1 jnz short loc_A9F3 loc_A9EE: mov ax, 1 leave retf ; --------------------------------------------------------------------------- loc_A9F3: call gaiji_backup push ds push offset aMikoft_bft ; "MIKOFT.bft" call gaiji_entry_bfnt les bx, dword_F3DC cmp byte ptr es:[bx+27h], 0 jnz short loc_AA1C mov byte_E8FE, 1 push 100h call sub_B203 pop cx jmp short loc_AA4A ; --------------------------------------------------------------------------- loc_AA1C: les bx, dword_F3DC mov al, es:[bx+27h] inc al mov byte_E8FE, al cmp byte_E8FE, 3 jbe short loc_AA35 mov byte_E8FE, 1 loc_AA35: mov word_F4A4, 15Eh call sub_B77E mov dx, 0A4h ; '、' mov al, 0 out dx, al mov dx, 0A6h ; 'ヲ' out dx, al loc_AA4A: mov word_F3C8, 0 mov al, byte_E8F9 mov byte_DBEE, al les bx, dword_F3DC cmp byte ptr es:[bx+27h], 0 jnz short loc_AA8F cmp byte_F3CD, 0 jz short loc_AA8F mov al, byte_F3CB mov [bp+var_2], al mov byte_F3CB, 1 push 600h push ds push offset aGminit_m ; "gminit.m" call sub_B0EA push 0 call sub_B203 add sp, 8 mov al, [bp+var_2] mov byte_F3CB, al loc_AA8F: push cs call near ptr sub_9D5C push ds push offset aTs3_pi ; "ts3.pi" push 2 call sub_ADD5 push ds push offset aTs2_pi ; "ts2.pi" push 1 call sub_ADD5 add sp, 0Ch mov word_F3C8, 0 mov word_E8FC, 0 jmp short loc_AAF0 ; --------------------------------------------------------------------------- loc_AABA: call sub_AED0 cmp byte_D6C1, 0 jnz short loc_AACC push cs call near ptr sub_A2FB jmp short loc_AAD7 ; --------------------------------------------------------------------------- loc_AACC: cmp byte_D6C1, 1 jnz short loc_AAD7 push cs call near ptr sub_A74A loc_AAD7: les bx, dword_F3DC add word ptr es:[bx+1Ch], 1 adc word ptr es:[bx+1Eh], 0 inc word_E8FC push 1 call sub_B2D2 loc_AAF0: cmp byte_D6C2, 0 jz short loc_AABA les bx, dword_F3DC mov al, es:[bx+23h] mov [bp+var_1], al mov word_E900, 0 push cs call near ptr sub_9CA2 call text_clear call graph_clear call sub_AB28 call gaiji_restore _main endp ; sp-analysis failed mov al, [bp-1] mov ah, 0 leave retf seg001 ends ; =========================================================================== ; Segment type: Pure code seg002 segment byte public 'CODE' use16 assume cs:seg002 ;org 7 assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing db 0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_AB28 proc far push bp mov bp, sp nop push cs call near ptr sub_B019 call key_beep_on call text_systemline_show call text_cursor_show pop bp retf sub_AB28 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_AB41 proc far arg_0 = word ptr 6 push bp mov bp, sp mov ax, [bp+arg_0] int 59h ; GSS Computer Graphics Interface (GSS*CGI) ; DS:DX -> block of 5 array pointers ; Return: CF set on error, AX = error code ; CF clear if successful, AX = return code pop bp retf 2 sub_AB41 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_AB4D 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_AD92 ; --------------------------------------------------------------------------- loc_AB82: 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+117Bh], 4 jz short loc_ABD7 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_AC1D ; --------------------------------------------------------------------------- loc_ABD7: les bx, [bp+arg_6] mov al, es:[bx] mov ah, 0 mov bx, ax test byte ptr [bx+117Bh], 3 jz short loc_ABF5 mov bx, word ptr [bp+arg_6] mov al, es:[bx] mov ah, 0 add ax, 2980h jmp short loc_AC10 ; --------------------------------------------------------------------------- loc_ABF5: les bx, [bp+arg_6] mov al, es:[bx] cbw mov bx, ax test byte ptr [bx+0E91h], 5Eh jz short loc_AC15 mov bx, word ptr [bp+arg_6] mov al, es:[bx] mov ah, 0 add ax, 2900h loc_AC10: mov [bp+var_2], ax jmp short loc_AC1A ; --------------------------------------------------------------------------- loc_AC15: mov [bp+var_2], 2B21h loc_AC1A: inc word ptr [bp+arg_6] loc_AC1D: 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_AC7E cmp [bp+var_2], 2B7Eh ja short loc_AC7E cmp di, 278h jg loc_AD9D mov [bp+var_12], 0 jmp short loc_AC71 ; --------------------------------------------------------------------------- loc_AC4F: 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_AC71: cmp [bp+var_12], 10h jl short loc_AC4F mov [bp+var_A], 0 jmp short loc_ACD4 ; --------------------------------------------------------------------------- loc_AC7E: cmp di, 270h jg loc_AD9D mov [bp+var_12], 0 jmp short loc_ACC9 ; --------------------------------------------------------------------------- loc_AC8D: 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_ACC9: cmp [bp+var_12], 10h jl short loc_AC8D mov [bp+var_A], 1 loc_ACD4: mov [bp+var_12], 0 jmp loc_AD79 ; --------------------------------------------------------------------------- loc_ACDC: 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_AD00 cmp ax, 2 jz short loc_AD16 cmp ax, 3 jz short loc_AD0C jmp short loc_AD2C ; --------------------------------------------------------------------------- loc_AD00: mov si, [bp+var_4] mov ax, si add ax, ax or [bp+var_4], ax jmp short loc_AD2C ; --------------------------------------------------------------------------- loc_AD0C: mov si, [bp+var_4] mov ax, si add ax, ax or [bp+var_4], ax loc_AD16: 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_AD2C: cmp [bp+var_C], 0 jz short loc_AD5F 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_AD72 ; --------------------------------------------------------------------------- loc_AD5F: 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_AD72: add word ptr [bp+var_8], 50h ; 'P' inc [bp+var_12] loc_AD79: cmp [bp+var_12], 10h jl loc_ACDC cmp [bp+var_A], 0 jz short loc_AD8A add di, 8 loc_AD8A: mov ax, [bp+var_10] add ax, 8 add di, ax loc_AD92: les bx, [bp+arg_6] cmp byte ptr es:[bx], 0 jnz loc_AB82 loc_AD9D: mov dx, 68h ; 'h' mov al, 0Ah out dx, al call grcg_off pop di pop si leave retf sub_AB4D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_ADAC proc far push bp mov bp, sp mov dword_F16C, 0A8000000h mov dword_F170, 0B0000000h mov dword_F174, 0B8000000h mov dword_F178, 0E0000000h pop bp retf sub_ADAC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_ADD5 proc far var_2 = word ptr -2 arg_0 = word ptr 6 arg_2 = dword ptr 8 enter 2, 0 push si mov si, [bp+arg_0] push large [bp+arg_2] mov ax, si imul ax, 48h add ax, 1B64h push ds push ax mov ax, si shl ax, 2 add ax, 1B4Ch push ds push ax call graph_pi_load_pack mov [bp+var_2], ax pop si leave retf sub_ADD5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_AE00 proc far 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 = word ptr 6 arg_2 = word ptr 8 arg_4 = word ptr 0Ah arg_6 = word ptr 0Ch enter 0Ah, 0 push si push di mov ax, [bp+arg_6] sar ax, 3 mov dx, [bp+arg_4] shl dx, 6 add ax, dx mov dx, [bp+arg_4] shl dx, 4 add ax, dx mov si, ax xor di, di jmp loc_AEAE ; --------------------------------------------------------------------------- loc_AE23: mov [bp+var_2], 0 mov cx, si jmp short loc_AE9F ; --------------------------------------------------------------------------- loc_AE2C: or si, si jl short loc_AE99 mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al les bx, dword_F16C add bx, cx mov ax, es:[bx] mov [bp+var_A], ax les bx, dword_F170 add bx, cx mov ax, es:[bx] mov [bp+var_8], ax les bx, dword_F174 add bx, cx mov ax, es:[bx] mov [bp+var_6], ax les bx, dword_F178 add bx, cx mov ax, es:[bx] mov [bp+var_4], ax mov al, 0 out dx, al les bx, dword_F16C add bx, cx mov ax, [bp+var_A] mov es:[bx], ax les bx, dword_F170 add bx, cx mov ax, [bp+var_8] mov es:[bx], ax les bx, dword_F174 add bx, cx mov ax, [bp+var_6] mov es:[bx], ax les bx, dword_F178 add bx, cx mov ax, [bp+var_4] mov es:[bx], ax loc_AE99: inc [bp+var_2] add cx, 2 loc_AE9F: mov ax, [bp+arg_2] sar ax, 4 cmp ax, [bp+var_2] jg short loc_AE2C add si, 50h ; 'P' inc di loc_AEAE: cmp di, [bp+arg_0] jl loc_AE23 pop di pop si leave retf 8 sub_AE00 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_AEBB proc far arg_0 = word ptr 6 push bp mov bp, sp mov vsync_Count1, 0 loc_AEC4: mov ax, vsync_Count1 cmp ax, [bp+arg_0] jb short loc_AEC4 pop bp retf 2 sub_AEBB endp ; =============== S U B R O U T I N E ======================================= sub_AED0 proc far mov word_F3C8, 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_AEEE test ah, 8 jz short loc_AEF3 loc_AEEE: or word_F3C8, 1 loc_AEF3: test bh, 8 jnz short loc_AEFD test ah, 40h jz short loc_AF02 loc_AEFD: or word_F3C8, 4 loc_AF02: test ah, 4 jz short loc_AF0D or word_F3C8, 1000h loc_AF0D: test ah, 10h jz short loc_AF18 or word_F3C8, 2000h loc_AF18: 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_AF28 test ah, 8 jz short loc_AF2D loc_AF28: or word_F3C8, 2 loc_AF2D: test bh, 10h jnz short loc_AF37 test ah, 1 jz short loc_AF3C loc_AF37: or word_F3C8, 8 loc_AF3C: test ah, 4 jz short loc_AF47 or word_F3C8, 4000h loc_AF47: test ah, 10h jz short loc_AF52 or word_F3C8, 8000h loc_AF52: 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_AF62 or word_F3C8, 10h loc_AF62: test ah, 4 jz short loc_AF6C or word_F3C8, 20h loc_AF6C: 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_AF7C or word_F3C8, 40h loc_AF7C: 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_AF8D or word_F3C8, 80h loc_AF8D: 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_AF9E or word_F3C8, 100h loc_AF9E: 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_AFAE or word_F3C8, 10h locret_AFAE: retf sub_AED0 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_AFB0 proc far push bp mov bp, sp push 3E80h call mem_assign_dos or ax, ax jz short loc_AFC4 mov ax, 1 pop bp retf ; --------------------------------------------------------------------------- loc_AFC4: nop push cs call near ptr sub_ADAC call graph_start 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_start call key_beep_off call text_systemline_hide call text_cursor_hide call egc_start mov pfkey, 12h push ds push offset aUmx ; "東方封魔.録" call sub_2F56 xor ax, ax pop bp retf sub_AFB0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B019 proc far push bp mov bp, sp call sub_2FB6 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_B019 endp ; --------------------------------------------------------------------------- db 0 ; =============== S U B R O U T I N E ======================================= sub_B058 proc far xor ax, ax mov es, ax les bx, dword ptr es:[0184h] assume es:nothing cmp byte ptr es:[bx+2], 4Dh ; 'M' jnz short loc_B089 cmp byte ptr es:[bx+3], 4Dh ; 'M' jnz short loc_B089 cmp byte ptr es:[bx+4], 44h ; 'D' jnz short loc_B089 mov byte_F3CC, 61h ; 'a' mov byte_F3CB, 1 mov byte_F3CD, 1 mov ax, 1 retf ; --------------------------------------------------------------------------- loc_B089: mov byte_F3CD, 0 xor ax, ax retf sub_B058 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_B092 proc far mov ah, 9 int 60h xor bx, bx cmp al, 0FFh jz short loc_B0A4 inc bx mov byte_F3CA, 1 jmp short loc_B0A8 ; --------------------------------------------------------------------------- loc_B0A4: mov bl, byte_F3CB loc_B0A8: mov byte_DBEE, bl mov ax, bx retf sub_B092 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_B0B0 proc far mov byte_F3CC, 60h mov byte_F3CB, 0 mov byte_F3CA, 0 mov byte_F3CD, 0 xor ax, ax mov es, ax les bx, dword ptr es:[0180h] assume es:nothing cmp byte ptr es:[bx+2], 50h ; 'P' jnz short loc_B0E6 cmp byte ptr es:[bx+3], 4Dh ; 'M' jnz short loc_B0E6 cmp byte ptr es:[bx+4], 44h ; 'D' jnz short loc_B0E6 mov ax, 1 retf ; --------------------------------------------------------------------------- loc_B0E6: xor ax, ax retf sub_B0B0 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B0EA proc far arg_0 = dword ptr 6 arg_4 = word ptr 0Ah push bp mov bp, sp push si push ds mov cx, 0Dh xor si, si loc_B0F4: les bx, [bp+arg_0] add bx, si mov al, es:[bx] mov [si+1D9Eh], al inc si loop loc_B0F4 mov ax, [bp+arg_4] cmp ax, 600h jnz short loc_B12B cmp byte_F3CB, 0 jz short loc_B12B xor bx, bx loc_B114: inc bx cmp byte ptr [bx+1D9Eh], 0 jnz short loc_B114 mov byte ptr [bx+1D9Eh], 6Dh ; 'm' mov byte ptr [bx+1D9Fh], 64h ; 'd' mov byte ptr [bx+1DA0h], 0 loc_B12B: mov dx, 1D9Eh mov ax, 3D00h int 21h ; DOS - 2+ - OPEN DISK FILE WITH HANDLE ; DS:DX -> ASCIZ filename ; AL = access mode ; 0 - read mov bx, ax mov ax, [bp+arg_4] cmp ax, 600h jnz short loc_B148 cmp byte_F3CB, 0 jz short loc_B148 int 61h ; reserved for user interrupt jmp short loc_B14A ; --------------------------------------------------------------------------- loc_B148: int 60h loc_B14A: mov ax, 3F00h mov cx, 5000h int 21h ; DOS - 2+ - READ FROM FILE WITH HANDLE ; BX = file handle, CX = number of bytes to read ; DS:DX -> buffer pop ds mov ah, 3Eh int 21h ; DOS - 2+ - CLOSE A FILE WITH HANDLE ; BX = file handle pop si pop bp retf sub_B0EA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B15A proc far arg_0 = word ptr 6 push bp mov bp, sp push 30h ; '0' ; n push ds mov ax, [bp+arg_0] imul ax, 48h add ax, 1B7Ch push ax ; src push ds push offset Palettes ; dest call _memcpy add sp, 0Ah call far ptr palette_show pop bp retf sub_B15A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B17D proc far var_6 = word ptr -6 var_4 = dword ptr -4 arg_0 = word ptr 6 arg_2 = word ptr 8 arg_4 = word ptr 0Ah enter 6, 0 push si push di mov si, [bp+arg_2] mov di, [bp+arg_4] mov bx, di shl bx, 2 mov ax, [bx+1B4Eh] mov dx, [bx+1B4Ch] mov word ptr [bp+var_4+2], ax mov word ptr [bp+var_4], dx mov [bp+var_6], 0 jmp short loc_B1F1 ; --------------------------------------------------------------------------- loc_B1A3: push [bp+arg_0] push si push large [bp+var_4] mov bx, di imul bx, 48h push word ptr [bx+1B78h] call graph_pack_put_8 inc si cmp si, 190h jl short loc_B1C4 sub si, 190h loc_B1C4: mov bx, di imul bx, 48h mov ax, [bx+1B78h] shr ax, 1 add word ptr [bp+var_4], ax mov eax, [bp+var_4] shr eax, 10h mov dx, word ptr [bp+var_4] shr dx, 4 add ax, dx mov dx, word ptr [bp+var_4] and dx, 0Fh mov word ptr [bp+var_4+2], ax mov word ptr [bp+var_4], dx inc [bp+var_6] loc_B1F1: mov bx, di imul bx, 48h mov ax, [bx+1B7Ah] cmp ax, [bp+var_6] ja short loc_B1A3 pop di pop si leave retf sub_B17D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B203 proc far arg_0 = word ptr 6 push bp mov bp, sp cmp byte_DBEE, 0 jz short loc_B21D mov ax, [bp+arg_0] cmp byte_F3CB, 1 jz short loc_B21B int 60h jmp short loc_B21D ; --------------------------------------------------------------------------- loc_B21B: int 61h ; reserved for user interrupt loc_B21D: pop bp retf sub_B203 endp ; --------------------------------------------------------------------------- push bp mov bp, sp cmp byte_DBEE, 0 jnz short loc_B232 push 64h ; 'd' nop push cs call near ptr sub_AEBB pop bp retf ; --------------------------------------------------------------------------- loc_B232: push 1 nop push cs call near ptr sub_AEBB mov ah, 5 cmp byte_F3CB, 1 jz short loc_B246 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_B24B ; --------------------------------------------------------------------------- loc_B246: mov dx, 0C0h int 61h ; reserved for user interrupt loc_B24B: cmp ax, [bp+6] jb short loc_B232 pop bp retf ; =============== S U B R O U T I N E ======================================= sub_B252 proc far mov byte_DC33, 0 mov byte_DBF0, 0FFh retf sub_B252 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B25E proc far arg_0 = word ptr 6 push bp mov bp, sp mov dx, [bp+arg_0] cmp byte_F3CA, 0 jz short loc_B294 cmp byte_DBF0, 0FFh jnz short loc_B278 mov byte_DBF0, dl pop bp retf ; --------------------------------------------------------------------------- loc_B278: mov al, byte_DBF0 mov ah, 0 mov bx, ax mov al, [bx+5C1h] mov bx, dx cmp al, [bx+5C1h] ja short loc_B294 mov byte_DBF0, dl mov byte_DC33, 0 loc_B294: pop bp retf sub_B25E endp ; =============== S U B R O U T I N E ======================================= sub_B296 proc far cmp byte_F3CA, 0 jz short locret_B2D1 cmp byte_DBF0, 0FFh jz short locret_B2D1 cmp byte_DC33, 0 jnz short loc_B2B2 mov ah, 0Ch mov al, byte_DBF0 int 60h ; - Banyan VINES, 3com - GET STATION ADDRESS ; Return: AL = status, 00h successful, ES:SI -> 6-byte station address ; 02h semaphore service is unavailable loc_B2B2: inc byte_DC33 mov al, byte_DBF0 mov ah, 0 mov bx, ax mov al, [bx+5E2h] cmp al, byte_DC33 jnb short locret_B2D1 mov byte_DC33, 0 mov byte_DBF0, 0FFh locret_B2D1: retf sub_B296 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B2D2 proc far arg_0 = word ptr 6 push bp mov bp, sp mov vsync_Count1, 0 loc_B2DB: mov ax, vsync_Count1 cmp ax, [bp+arg_0] jb short loc_B2DB pop bp retf 2 sub_B2D2 endp seg002 ends ; =========================================================================== ; Segment type: Pure code seg003 segment byte public 'CODE' use16 assume cs:seg003 ;org 7 assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing db 0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B2E8 proc far var_2 = word ptr -2 enter 2, 0 push si mov [bp+var_2], 1 call sub_B252 push 6 call sub_B25E pop cx call sub_B296 xor si, si jmp short loc_B370 ; --------------------------------------------------------------------------- loc_B308: mov dx, 0A4h ; '、' mov al, byte ptr [bp+var_2] out dx, al mov ax, 1 sub ax, [bp+var_2] mov [bp+var_2], ax or si, si jnz short loc_B320 push 0 jmp short loc_B330 ; --------------------------------------------------------------------------- loc_B320: cmp si, 5 jnz short loc_B329 push 1 jmp short loc_B330 ; --------------------------------------------------------------------------- loc_B329: cmp si, 0Ah jnz short loc_B33C push 2 loc_B330: push 0 push 0 call sub_B17D add sp, 6 loc_B33C: mov ax, si mov bx, 3 cwd idiv bx or dx, dx jnz short loc_B350 mov PaletteTone, 96h jmp short loc_B363 ; --------------------------------------------------------------------------- loc_B350: mov ax, si mov bx, 3 cwd idiv bx cmp dx, 1 jnz short loc_B368 mov PaletteTone, 64h ; 'd' loc_B363: call far ptr palette_show loc_B368: push 1 call sub_B2D2 inc si loc_B370: cmp si, 12h jl short loc_B308 mov dx, 0A4h ; '、' mov al, 0 out dx, al push ds push offset unk_F194 push word_F17E push word_F17C call graph_pi_free push ds push offset unk_F1DC push word_F182 push word_F180 call graph_pi_free push ds push offset unk_F224 push word_F186 push word_F184 call graph_pi_free pop si leave retf sub_B2E8 endp seg003 ends ; =========================================================================== ; Segment type: Pure code seg004 segment byte public 'CODE' use16 assume cs:seg004 ;org 1 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_B3B1 proc near push bp mov bp, sp push si push word ptr HUUHI_DAT+2 push word ptr HUUHI_DAT call file_ropen mov al, byte_DC34 cbw imul ax, 0B6h push 0 push ax push 0 call file_seek push ds push offset word_F3EC push 0B6h ; 'カ' call file_read xor si, si jmp short loc_B3EF ; --------------------------------------------------------------------------- loc_B3E4: mov al, [si+1DBCh] add al, 0EEh mov [si+1DBCh], al inc si loc_B3EF: cmp si, 0B2h ; 'イ' jl short loc_B3E4 call file_close pop si pop bp retn sub_B3B1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B3FD proc near var_9 = byte ptr -9 var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 arg_6 = word ptr 0Ah enter 0Ah, 0 push si push di mov di, 0A0h mov [bp+var_2], 98h mov [bp+var_4], 9680h mov [bp+var_9], 0 xor si, si jmp short loc_B492 ; --------------------------------------------------------------------------- loc_B418: mov ax, [bp+var_4] or ax, [bp+var_2] jz short loc_B439 push 0 push 0Ah push [bp+var_2] push [bp+var_4] push [bp+arg_4] push [bp+arg_2] call far ptr LDIV@ push dx push ax jmp short loc_B443 ; --------------------------------------------------------------------------- loc_B439: push 0 push 0Ah push [bp+arg_4] push [bp+arg_2] loc_B443: call far ptr F_LMOD@ mov [bp+var_6], dx mov [bp+var_8], ax push 0 push 0Ah push [bp+var_2] push [bp+var_4] call far ptr LDIV@ mov [bp+var_2], dx mov [bp+var_4], ax mov ax, [bp+var_8] add ax, 0A0h mov di, ax mov ax, [bp+var_8] or ax, [bp+var_6] jz short loc_B477 mov [bp+var_9], 1 loc_B477: cmp [bp+var_9], 0 jz short loc_B491 mov ax, si add ax, ax add ax, 1Ah push ax push [bp+arg_6] push di push [bp+arg_0] call gaiji_putca loc_B491: inc si loc_B492: cmp si, 8 jl short loc_B418 pop di pop si leave retn 8 sub_B3FD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B49D proc near arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 push bp mov bp, sp push 30h ; '0' push [bp+arg_4] mov bx, [bp+arg_2] shl bx, 2 push word ptr [bx+676h] push word ptr [bx+674h] push [bp+arg_0] call text_putsa pop bp retn 6 sub_B49D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B4BF proc far var_2 = word ptr -2 arg_0 = dword ptr 6 arg_4 = word ptr 0Ah arg_6 = word ptr 0Ch enter 2, 0 push si push di mov di, [bp+arg_6] mov si, 1 mov cx, 1 jmp short loc_B4D8 ; --------------------------------------------------------------------------- loc_B4D0: mov ax, 0Ah imul si mov si, ax inc cx loc_B4D8: cmp cx, di jl short loc_B4D0 xor cx, cx jmp short loc_B507 ; --------------------------------------------------------------------------- loc_B4E0: mov ax, [bp+arg_4] cwd idiv si mov bx, 0Ah cwd idiv bx mov [bp+var_2], dx les bx, [bp+arg_0] add bx, cx mov al, byte ptr [bp+var_2] add al, 30h ; '0' mov es:[bx], al mov bx, 0Ah mov ax, si cwd idiv bx mov si, ax inc cx loc_B507: cmp cx, di jl short loc_B4E0 les bx, [bp+arg_0] add bx, cx mov byte ptr es:[bx], 0 pop di pop si leave retf sub_B4BF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B518 proc near var_6 = byte ptr -6 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 enter 6, 0 push si push di mov si, [bp+arg_4] mov di, [bp+arg_0] push 4 mov bx, [bp+arg_2] shl bx, 2 push word ptr [bx+1E3Ch] push ss lea ax, [bp+var_6] push ax push cs call near ptr sub_B4BF push 38h ; '8' push si push ss lea ax, [bp+var_6] push ax push di call text_putsa push 2 mov bx, [bp+arg_2] shl bx, 2 mov al, [bx+1E3Fh] cbw push ax push ss lea ax, [bp+var_6] push ax push cs call near ptr sub_B4BF push 3Ch ; '<' push si push 2Fh ; '/' push di call text_putca push 3Dh ; '=' push si push ss lea ax, [bp+var_6] push ax push di call text_putsa push 2 mov bx, [bp+arg_2] shl bx, 2 mov al, [bx+1E3Eh] cbw push ax push ss lea ax, [bp+var_6] push ax push cs call near ptr sub_B4BF add sp, 18h push 3Fh ; '?' push si push 2Fh ; '/' push di call text_putca push 40h push si push ss lea ax, [bp+var_6] push ax push di call text_putsa pop di pop si leave retn 6 sub_B518 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B5B0 proc near arg_0 = word ptr 4 push bp mov bp, sp push si push di mov di, 0E1h push 16h push 2 push ds push offset gHI_SCORE push 81h call gaiji_putsa push 28h ; '(' push 2 push ds mov al, byte_DC34 cbw shl ax, 3 add ax, offset gcEASY_0 push ax push 81h call gaiji_putsa push 8 push 4 push ds push offset aVicSob@b@b@b@b ; " お名前      得点    STAG"... push 81h call text_putsa xor si, si jmp short loc_B66D ; --------------------------------------------------------------------------- loc_B5F4: cmp si, [bp+arg_0] jnz short loc_B5FE mov di, 81h jmp short loc_B601 ; --------------------------------------------------------------------------- loc_B5FE: mov di, 0E1h loc_B601: push 0Ch lea ax, [si+7] push ax push ds mov ax, si imul ax, 7 add ax, 1DEAh push ax push di call gaiji_putsa lea ax, [si+7] push ax mov bx, si shl bx, 2 push word ptr [bx+1DC0h] push word ptr [bx+1DBEh] push di call sub_B3FD cmp byte ptr [si+1E31h], 7Fh jz short loc_B645 push 2Ch ; ',' lea ax, [si+7] push ax mov al, [si+1E31h] mov ah, 0 add ax, 0A0h push ax jmp short loc_B64E ; --------------------------------------------------------------------------- loc_B645: push 2Ch ; ',' lea ax, [si+7] push ax push 0F0h loc_B64E: push di call gaiji_putca lea ax, [si+7] push ax mov al, [si+1E64h] mov ah, 0 push ax push di call sub_B49D lea ax, [si+7] push ax push si push di call sub_B518 inc si loc_B66D: cmp si, 0Ah jl short loc_B5F4 xor si, si jmp short loc_B6B0 ; --------------------------------------------------------------------------- loc_B676: cmp si, [bp+arg_0] jnz short loc_B680 mov di, 81h jmp short loc_B683 ; --------------------------------------------------------------------------- loc_B680: mov di, 0E1h loc_B683: cmp si, 9 jz short loc_B695 push 9 lea ax, [si+7] push ax lea ax, [si+0A1h] push ax jmp short loc_B6A9 ; --------------------------------------------------------------------------- loc_B695: push 8 push 10h push 0A1h ; '。' push di call gaiji_putca push 0Ah push 10h push 0A0h loc_B6A9: push di call gaiji_putca inc si loc_B6B0: cmp si, 0Ah jl short loc_B676 pop di pop si pop bp retn 2 sub_B5B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B6BB proc near var_2 = word ptr -2 enter 2, 0 push si push di push 0C0h push 0Ah call grcg_setcolor call grcg_fill call grcg_off inc word_DCB0 xor si, si jmp short loc_B723 ; --------------------------------------------------------------------------- loc_B6DD: mov ax, si imul ax, 0A0h add ax, word_DCB0 mov [bp+var_2], ax mov bx, 280h cwd idiv bx mov [bp+var_2], dx mov ax, si imul ax, 64h sub ax, word_DCB0 mov di, ax loc_B6FE: or di, di jge short loc_B708 add di, 190h jmp short loc_B6FE ; --------------------------------------------------------------------------- loc_B708: push [bp+var_2] push di push 0 call super_put_rect mov ax, [bp+var_2] add ax, 40h push ax push di push 1 call super_put_rect inc si loc_B723: cmp si, 4 jl short loc_B6DD xor si, si jmp short loc_B775 ; --------------------------------------------------------------------------- loc_B72C: mov ax, si imul ax, 0A0h add ax, word_DCB0 add ax, 140h mov [bp+var_2], ax mov bx, 280h cwd idiv bx mov [bp+var_2], dx mov ax, si imul ax, 64h sub ax, word_DCB0 mov di, ax loc_B750: or di, di jge short loc_B75A add di, 190h jmp short loc_B750 ; --------------------------------------------------------------------------- loc_B75A: push [bp+var_2] push di push 0 call super_put_rect mov ax, [bp+var_2] add ax, 40h push ax push di push 1 call super_put_rect inc si loc_B775: cmp si, 4 jl short loc_B72C pop di pop si leave retn sub_B6BB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B77E proc far var_1 = byte ptr -1 enter 2, 0 push si xor si, si mov [bp+var_1], 0 call sub_B3B1 mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al call graph_clear mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call graph_clear cmp byte_DCB2, 0 jz short loc_B7B7 mov byte_DCB2, 0 push ds push offset aOp_h_bft ; "op_h.bft" call super_entry_bfnt loc_B7B7: push ds push offset aOp_h_rgb ; "op_h.rgb" call palette_entry_rgb call far ptr palette_show push 80h push 60h push 200h push 130h call grc_setclip push 0C0h push 0Ah call grcg_setcolor call grcg_fill call grcg_off push 0FFFFh call sub_B5B0 mov word_DCB0, 0 mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al mov al, 1 sub al, [bp+var_1] mov [bp+var_1], al mov dx, 0A4h ; '、' mov al, 1 out dx, al loc_B808: call sub_AED0 or si, si jnz short loc_B81D cmp word_F3C8, 0 jnz short loc_B81D mov si, 1 jmp short loc_B829 ; --------------------------------------------------------------------------- loc_B81D: cmp si, 1 jnz short loc_B829 cmp word_F3C8, 0 jnz short loc_B84F loc_B829: call sub_B6BB push 1 call sub_B2D2 mov dx, 0A6h ; 'ヲ' mov al, [bp+var_1] out dx, al mov al, 1 sub al, [bp+var_1] mov [bp+var_1], al mov dx, 0A4h ; '、' out dx, al mov ax, word_DCB0 cmp ax, word_F4A4 jbe short loc_B808 loc_B84F: mov word_F3C8, 0 push 14h call sub_B2D2 push 0 push 0 push 27Fh push 18Fh call grc_setclip pop si leave retf sub_B77E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B86E proc far var_A = byte ptr -0Ah var_6 = byte ptr -6 enter 0Ah, 0 push si push di lea ax, [bp+var_6] push ss push ax push ds push offset unk_DCB4 mov cx, 6 call SCOPY@ lea ax, [bp+var_A] push ss push ax push ds push offset unk_DCBA mov cx, 3 call SCOPY@ mov di, 1 mov byte_DC34, 0 jmp short loc_B8D7 ; --------------------------------------------------------------------------- loc_B8A0: call sub_B3B1 mov al, byte_DC34 cbw add ax, ax lea dx, [bp+var_6] add ax, dx mov bx, ax mov ax, ss:[bx] cmp ax, word_F3EC jz short loc_B8C8 mov al, byte_DC34 cbw mov bx, ax mov byte ptr [bx+1E76h], 0 xor di, di jmp short loc_B8D3 ; --------------------------------------------------------------------------- loc_B8C8: mov al, byte_DC34 cbw mov bx, ax mov byte ptr [bx+1E76h], 1 loc_B8D3: inc byte_DC34 loc_B8D7: cmp byte_DC34, 3 jl short loc_B8A0 mov byte_DC34, 3 call sub_B3B1 xor si, si jmp short loc_B902 ; --------------------------------------------------------------------------- loc_B8EA: mov al, [bp+si+var_A] mov ah, 0 test word_F3EC, ax jz short loc_B8FC mov byte ptr [si+1E79h], 1 jmp short loc_B901 ; --------------------------------------------------------------------------- loc_B8FC: mov byte ptr [si+1E79h], 0 loc_B901: inc si loc_B902: cmp si, 3 jl short loc_B8EA mov ax, di pop di pop si leave retf sub_B86E endp seg004 ends ; =========================================================================== ; Segment type: Pure code seg005 segment byte public 'CODE' use16 assume cs:seg005 ;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_B90D proc far arg_0 = word ptr 6 arg_2 = word ptr 8 push bp mov bp, sp push si push di cmp [bp+arg_2], 0 jnz short loc_B953 mov ax, [bp+arg_0] or ax, ax jz short loc_B92B cmp ax, 1 jz short loc_B930 cmp ax, 2 jz short loc_B938 jmp short loc_B93E ; --------------------------------------------------------------------------- loc_B92B: mov si, 10h jmp short loc_B93B ; --------------------------------------------------------------------------- loc_B930: mov si, 0E0h mov di, 0E0h jmp short loc_B93E ; --------------------------------------------------------------------------- loc_B938: mov si, 1B0h loc_B93B: mov di, 80h loc_B93E: push si push di push 10h push 90h call sub_AE00 push si push di push 0C0h push 0Ah jmp short loc_B9B2 ; --------------------------------------------------------------------------- loc_B953: mov ax, [bp+arg_0] or ax, ax jz short loc_B966 cmp ax, 1 jz short loc_B96B cmp ax, 2 jz short loc_B973 jmp short loc_B979 ; --------------------------------------------------------------------------- loc_B966: mov si, 0D0h jmp short loc_B976 ; --------------------------------------------------------------------------- loc_B96B: mov si, 1A0h mov di, 0E8h jmp short loc_B979 ; --------------------------------------------------------------------------- loc_B973: mov si, 270h loc_B976: mov di, 88h loc_B979: push si push di push 10h push 90h call sub_AE00 mov ax, [bp+arg_0] or ax, ax jz short loc_B998 cmp ax, 1 jz short loc_B99D cmp ax, 2 jz short loc_B9A5 jmp short loc_B9AB ; --------------------------------------------------------------------------- loc_B998: mov si, 18h jmp short loc_B9A8 ; --------------------------------------------------------------------------- loc_B99D: mov si, 0E8h mov di, 170h jmp short loc_B9AB ; --------------------------------------------------------------------------- loc_B9A5: mov si, 1B8h loc_B9A8: mov di, 110h loc_B9AB: push si push di push 0C0h push 8 loc_B9B2: call sub_AE00 pop di pop si pop bp retf sub_B90D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B9BB proc far var_2 = word ptr -2 arg_0 = word ptr 6 arg_2 = word ptr 8 enter 2, 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 [bp+var_2], ax push 0C0h push 0 call grcg_setcolor xor si, si jmp short loc_BA11 ; --------------------------------------------------------------------------- loc_B9E8: xor di, di jmp short loc_BA07 ; --------------------------------------------------------------------------- loc_B9EC: test si, 1 jz short loc_B9F7 mov ax, 0AAAAh jmp short loc_B9FA ; --------------------------------------------------------------------------- loc_B9F7: mov ax, 5555h loc_B9FA: les bx, dword_F16C add bx, [bp+var_2] mov es:[bx+di], ax add di, 2 loc_BA07: cmp di, 18h jl short loc_B9EC inc si add [bp+var_2], 50h ; 'P' loc_BA11: cmp si, 90h jl short loc_B9E8 call grcg_off pop di pop si leave retf sub_B9BB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BA20 proc far arg_0 = word ptr 6 arg_2 = word ptr 8 push bp mov bp, sp push si push di mov ax, [bp+arg_0] or ax, ax jz short loc_BA38 cmp ax, 1 jz short loc_BA3D cmp ax, 2 jz short loc_BA45 jmp short loc_BA4B ; --------------------------------------------------------------------------- loc_BA38: mov si, 10h jmp short loc_BA48 ; --------------------------------------------------------------------------- loc_BA3D: mov si, 0E0h mov di, 88h jmp short loc_BA4B ; --------------------------------------------------------------------------- loc_BA45: mov si, 1B0h loc_BA48: mov di, 128h loc_BA4B: push 0C0h push [bp+arg_2] call grcg_setcolor lea ax, [si+8] push ax lea ax, [di+8] push ax lea ax, [si+0C8h] push ax lea ax, [di+48h] push ax push 8 call grcg_round_boxfill push 0C0h push 0 call grcg_setcolor push si push di lea ax, [si+0C0h] push ax lea ax, [di+40h] push ax push 8 call grcg_round_boxfill call grcg_off mov bx, [bp+arg_0] imul bx, 0Ch push word ptr [bx+6F4h] push word ptr [bx+6F2h] mov ax, [bp+arg_2] or ax, 20h push ax lea ax, [di+8] push ax lea ax, [si+8] push ax call sub_AB4D mov bx, [bp+arg_0] imul bx, 0Ch push word ptr [bx+6F8h] push word ptr [bx+6F6h] mov ax, [bp+arg_2] or ax, 20h push ax lea ax, [di+18h] push ax lea ax, [si+8] push ax call sub_AB4D mov bx, [bp+arg_0] imul bx, 0Ch push word ptr [bx+6FCh] push word ptr [bx+6FAh] mov ax, [bp+arg_2] or ax, 20h push ax lea ax, [di+28h] push ax lea ax, [si+8] push ax call sub_AB4D add sp, 1Eh pop di pop si pop bp retf sub_BA20 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BAFC proc far push bp mov bp, sp push 0C0h push 0Ch call grcg_setcolor push 88h push 18h push 208h push 38h ; '8' push 8 call grcg_round_boxfill push 0C0h push 0 call grcg_setcolor push 80h push 10h push 200h push 30h ; '0' push 8 call grcg_round_boxfill call grcg_off push word ptr off_DD46+2 push word ptr off_DD46 push 2Ch ; ',' push 18h push 90h call sub_AB4D add sp, 0Ah les bx, dword_F3DC cmp byte ptr es:[bx+0Bh], 5 jnz short loc_BBBE push 0C0h push 0Ch call grcg_setcolor push 18h push 38h ; '8' push 278h push 68h ; 'h' push 8 call grcg_round_boxfill push 0C0h push 0 call grcg_setcolor push 10h push 30h ; '0' push 270h push 60h push 8 call grcg_round_boxfill call grcg_off push word ptr off_DD4A+2 push word ptr off_DD4A push 2Fh ; '/' push 38h ; '8' push 20h ; ' ' call sub_AB4D push word ptr off_DD4E+2 push word ptr off_DD4E push 2Fh ; '/' push 48h ; 'H' push 20h ; ' ' call sub_AB4D add sp, 14h loc_BBBE: pop bp retf sub_BAFC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BBC0 proc far push bp mov bp, sp mov PaletteTone, 0 call far ptr palette_show mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al push ds push offset aTselect_pi ; "TSELECT.pi" push 3 call sub_ADD5 push 3 call sub_B15A push 3 push 0 push 0 call sub_B17D add sp, 0Eh push ds push offset unk_F26C push word_F18A push word_F188 call graph_pi_free push 1 call graph_copy_page mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al les bx, dword_F3DC cmp byte ptr es:[bx+0Bh], 5 jz short loc_BC61 cmp byte_F4A6, 0 jz short loc_BC3A push word ptr off_DD52+2 push word ptr off_DD52 push 2Fh ; '/' push 70h ; 'p' push 10h call sub_AB4D add sp, 0Ah loc_BC3A: cmp byte_F4A7, 0 jz short loc_BC58 push word ptr off_DD52+2 push word ptr off_DD52 push 2Fh ; '/' push 70h ; 'p' push 0E0h call sub_AB4D add sp, 0Ah loc_BC58: cmp byte_F4A8, 0 jz short loc_BCBA jmp short loc_BCA3 ; --------------------------------------------------------------------------- loc_BC61: cmp byte_F4A9, 0 jz short loc_BC7E push word ptr off_DD52+2 push word ptr off_DD52 push 2Fh ; '/' push 70h ; 'p' push 10h call sub_AB4D add sp, 0Ah loc_BC7E: cmp byte_F4AA, 0 jz short loc_BC9C push word ptr off_DD52+2 push word ptr off_DD52 push 2Fh ; '/' push 70h ; 'p' push 0E0h call sub_AB4D add sp, 0Ah loc_BC9C: cmp byte_F4AB, 0 jz short loc_BCBA loc_BCA3: push word ptr off_DD52+2 push word ptr off_DD52 push 2Fh ; '/' push 70h ; 'p' push 1B0h call sub_AB4D add sp, 0Ah loc_BCBA: push 0 push 88h push 18h call sub_B17D push 1 push 0E0h push 0E0h call sub_B17D push 2 push 88h push 1B8h call sub_B17D les bx, dword_F3DC mov byte ptr es:[bx+26h], 1 push 88h push 18h push cs call near ptr sub_B9BB push 88h push 1B8h push cs call near ptr sub_B9BB push 7 push 0 push cs call near ptr sub_BA20 push 0Ch push 1 push cs call near ptr sub_BA20 push 7 push 2 push cs call near ptr sub_BA20 add sp, 26h push cs call near ptr sub_BAFC push 2 call palette_black_in pop bp retf sub_BBC0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BD24 proc far var_C = byte ptr -0Ch var_6 = byte ptr -6 enter 0Ch, 0 push si push di xor si, si lea ax, [bp+var_6] push ss push ax push ds push offset unk_DD56 mov cx, 6 call SCOPY@ lea ax, [bp+var_C] push ss push ax push ds push offset unk_DD5C mov cx, 6 call SCOPY@ xor di, di push cs call near ptr sub_BBC0 loc_BD54: call sub_AED0 or si, si jz short loc_BD60 jmp loc_BF95 ; --------------------------------------------------------------------------- loc_BD60: test byte ptr word_F3C8, 4 jnz short loc_BD6A jmp loc_BE6D ; --------------------------------------------------------------------------- loc_BD6A: push 7 mov al, byte_DD20 cbw push ax push cs call near ptr sub_BA20 add sp, 4 push 1 call sub_B2D2 push 0 mov al, byte_DD20 cbw push ax push cs call near ptr sub_B90D add sp, 4 push 1 call sub_B2D2 mov al, byte_DD20 cbw push ax mov al, byte_DD20 cbw add ax, ax lea dx, [bp+var_C] add ax, dx mov bx, ax mov ax, ss:[bx] add ax, 8 push ax mov al, byte_DD20 cbw add ax, ax lea dx, [bp+var_6] add ax, dx mov bx, ax mov ax, ss:[bx] add ax, 8 push ax call sub_B17D add sp, 6 push 1 call sub_B2D2 mov al, byte_DD20 cbw add ax, ax lea dx, [bp+var_C] add ax, dx mov bx, ax mov ax, ss:[bx] add ax, 8 push ax mov al, byte_DD20 cbw add ax, ax lea dx, [bp+var_6] add ax, dx mov bx, ax mov ax, ss:[bx] add ax, 8 push ax push cs call near ptr sub_B9BB add sp, 4 dec byte_DD20 cmp byte_DD20, 0 jge short loc_BE0F mov byte_DD20, 2 loc_BE0F: push 1 call sub_B2D2 push 1 mov al, byte_DD20 cbw push ax push cs call near ptr sub_B90D add sp, 4 push 1 call sub_B2D2 push 0Ch mov al, byte_DD20 cbw push ax push cs call near ptr sub_BA20 add sp, 4 push 1 call sub_B2D2 mov al, byte_DD20 cbw push ax mov al, byte_DD20 cbw add ax, ax lea dx, [bp+var_C] add ax, dx mov bx, ax push word ptr ss:[bx] mov al, byte_DD20 cbw add ax, ax lea dx, [bp+var_6] add ax, dx mov bx, ax push word ptr ss:[bx] call sub_B17D add sp, 6 loc_BE6D: test byte ptr word_F3C8, 8 jnz short loc_BE77 jmp loc_BF7A ; --------------------------------------------------------------------------- loc_BE77: push 0 mov al, byte_DD20 cbw push ax push cs call near ptr sub_B90D add sp, 4 push 1 call sub_B2D2 mov al, byte_DD20 cbw push ax mov al, byte_DD20 cbw add ax, ax lea dx, [bp+var_C] add ax, dx mov bx, ax mov ax, ss:[bx] add ax, 8 push ax mov al, byte_DD20 cbw add ax, ax lea dx, [bp+var_6] add ax, dx mov bx, ax mov ax, ss:[bx] add ax, 8 push ax call sub_B17D add sp, 6 push 1 call sub_B2D2 push 7 mov al, byte_DD20 cbw push ax push cs call near ptr sub_BA20 add sp, 4 push 1 call sub_B2D2 mov al, byte_DD20 cbw add ax, ax lea dx, [bp+var_C] add ax, dx mov bx, ax mov ax, ss:[bx] add ax, 8 push ax mov al, byte_DD20 cbw add ax, ax lea dx, [bp+var_6] add ax, dx mov bx, ax mov ax, ss:[bx] add ax, 8 push ax push cs call near ptr sub_B9BB add sp, 4 inc byte_DD20 cmp byte_DD20, 2 jle short loc_BF1C mov byte_DD20, 0 loc_BF1C: push 1 call sub_B2D2 push 1 mov al, byte_DD20 cbw push ax push cs call near ptr sub_B90D add sp, 4 push 1 call sub_B2D2 push 0Ch mov al, byte_DD20 cbw push ax push cs call near ptr sub_BA20 add sp, 4 push 1 call sub_B2D2 mov al, byte_DD20 cbw push ax mov al, byte_DD20 cbw add ax, ax lea dx, [bp+var_C] add ax, dx mov bx, ax push word ptr ss:[bx] mov al, byte_DD20 cbw add ax, ax lea dx, [bp+var_6] add ax, dx mov bx, ax push word ptr ss:[bx] call sub_B17D add sp, 6 loc_BF7A: test byte ptr word_F3C8, 10h jnz short loc_BF88 test byte ptr word_F3C8, 80h jz short loc_BF95 loc_BF88: les bx, dword_F3DC mov al, byte_DD20 mov es:[bx+26h], al jmp short loc_BFB7 ; --------------------------------------------------------------------------- loc_BF95: push 1 call sub_B2D2 mov si, word_F3C8 or si, si jz short loc_BFB2 inc di cmp di, 1Eh ja short loc_BFAD jmp loc_BD54 ; --------------------------------------------------------------------------- loc_BFAD: xor si, si jmp loc_BD54 ; --------------------------------------------------------------------------- loc_BFB2: xor di, di jmp loc_BD54 ; --------------------------------------------------------------------------- loc_BFB7: push ds push offset unk_F194 push word_F17E push word_F17C call graph_pi_free push ds push offset unk_F1DC push word_F182 push word_F180 call graph_pi_free push ds push offset unk_F224 push word_F186 push word_F184 call graph_pi_free push 1 call palette_black_out pop di pop si leave retf sub_BD24 endp seg005 ends ; =========================================================================== ; Segment type: Pure code seg006 segment byte public 'CODE' use16 assume cs:seg006 ;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_BFF5 proc near var_1 = byte ptr -1 arg_0 = byte ptr 4 arg_2 = byte ptr 6 enter 2, 0 mov al, 1 sub al, byte ptr word_F57C+1 mov [bp+var_1], al mov dx, 0A6h ; 'ヲ' out dx, al mov al, [bp+arg_2] mov ah, 0 shl ax, 2 mov bx, ax push word ptr [bx+8E8h] push word ptr [bx+8E6h] mov al, [bp+arg_0] mov ah, 0 or ax, 20h push ax mov al, [bp+arg_2] mov ah, 0 add ax, 6 shl ax, 4 push ax push 10h call sub_AB4D mov dx, 0A6h ; 'ヲ' mov al, byte ptr word_F57C+1 out dx, al mov al, [bp+arg_2] mov ah, 0 shl ax, 2 mov bx, ax push word ptr [bx+8E8h] push word ptr [bx+8E6h] mov al, [bp+arg_0] mov ah, 0 or ax, 20h push ax mov al, [bp+arg_2] mov ah, 0 add ax, 6 shl ax, 4 push ax push 10h call sub_AB4D add sp, 14h leave retn 4 sub_BFF5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C070 proc near arg_0 = byte ptr 4 push bp mov bp, sp push si xor si, si jmp short loc_C08D ; --------------------------------------------------------------------------- loc_C078: push si mov al, [bp+arg_0] mov ah, 0 cmp ax, si jnz short loc_C086 mov al, 0Fh jmp short loc_C088 ; --------------------------------------------------------------------------- loc_C086: mov al, 3 loc_C088: push ax call sub_BFF5 inc si loc_C08D: cmp si, 11h jl short loc_C078 pop si pop bp retn 2 sub_C070 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C097 proc near push bp mov bp, sp push si push 7D00h call hmem_allocbyte mov word ptr dword_F57E+2, ax mov word ptr dword_F57E, 0 xor si, si jmp short loc_C0CD ; --------------------------------------------------------------------------- loc_C0B0: les bx, dword_F16C add bx, si mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword_F57E add bx, si mov es:[bx+2], dx mov es:[bx], ax add si, 4 loc_C0CD: cmp si, 7D00h jl short loc_C0B0 pop si pop bp retn sub_C097 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C0D6 proc near push bp mov bp, sp push word ptr dword_F57E+2 call hmem_free pop bp retn sub_C0D6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C0E4 proc near push bp mov bp, sp xor cx, cx jmp short loc_C108 ; --------------------------------------------------------------------------- loc_C0EB: les bx, dword_F57E add bx, cx mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword_F16C add bx, cx mov es:[bx+2], dx mov es:[bx], ax add cx, 4 loc_C108: cmp cx, 7D00h jl short loc_C0EB pop bp retn sub_C0E4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C110 proc near var_3 = byte ptr -3 var_2 = word ptr -2 arg_0 = byte ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 arg_6 = word ptr 0Ah arg_8 = word ptr 0Ch arg_A = word ptr 0Eh enter 4, 0 push si push di mov di, [bp+arg_A] sar [bp+arg_6], 4 mov [bp+var_2], 0 jmp short loc_C18E ; --------------------------------------------------------------------------- loc_C124: mov ax, [bp+var_2] shl ax, 8 cwd idiv [bp+arg_2] add al, [bp+arg_0] mov [bp+var_3], al mov ax, [bp+arg_4] cwd mov bl, [bp+var_3] mov bh, 0 add bx, bx push ax mov ax, [bx+308h] push dx cwd pop cx pop bx call LXMUL@ mov cl, 8 call far ptr LXRSH@ add ax, [bp+arg_8] mov bx, [bp+var_2] shl bx, 2 mov [bx+di], ax mov ax, [bp+arg_4] cwd mov bl, [bp+var_3] mov bh, 0 add bx, bx push ax mov ax, [bx+288h] push dx cwd pop cx pop bx call LXMUL@ mov cl, 8 call far ptr LXRSH@ add ax, [bp+arg_6] mov bx, [bp+var_2] shl bx, 2 mov [bx+di+2], ax inc [bp+var_2] loc_C18E: mov ax, [bp+var_2] cmp ax, [bp+arg_2] jl short loc_C124 mov bx, [bp+var_2] shl bx, 2 mov ax, [di] mov [bx+di], ax mov bx, [bp+var_2] shl bx, 2 mov ax, [di+2] mov [bx+di+2], ax pop di pop si leave retn 0Ch sub_C110 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C1B2 proc near push bp mov bp, sp push si cmp byte_DF96, 0 jz short loc_C1C0 jmp loc_C263 ; --------------------------------------------------------------------------- loc_C1C0: xor si, si jmp loc_C256 ; --------------------------------------------------------------------------- loc_C1C5: call IRand mov bx, 280h cwd idiv bx mov bx, si shl bx, 2 mov [bx+1EACh], dx call IRand mov bx, 1900h cwd idiv bx mov bx, si shl bx, 2 mov [bx+1EAEh], dx call IRand and ax, 7 mov dx, 4 sub dx, ax mov bx, si shl bx, 2 mov [bx+1EECh], dx mov bx, si shl bx, 2 cmp word ptr [bx+1EECh], 0 jnz short loc_C21A mov bx, si shl bx, 2 mov word ptr [bx+1EECh], 1 loc_C21A: call IRand and ax, 3 shl ax, 4 add ax, 20h ; ' ' mov bx, si shl bx, 2 mov [bx+1EEEh], ax call IRand mov [si+1F2Ch], al call IRand and al, 7 mov dl, 4 sub dl, al mov [si+1F3Ch], dl cmp byte ptr [si+1F3Ch], 0 jnz short loc_C255 mov byte ptr [si+1F3Ch], 4 loc_C255: inc si loc_C256: cmp si, 10h jge short loc_C25E jmp loc_C1C5 ; --------------------------------------------------------------------------- loc_C25E: mov byte_DF96, 1 loc_C263: xor si, si jmp loc_C3A1 ; --------------------------------------------------------------------------- loc_C268: push 1E84h mov bx, si shl bx, 2 push word ptr [bx+1EACh] mov bx, si shl bx, 2 push word ptr [bx+1EAEh] mov ax, si and ax, 3 shl ax, 4 add ax, 40h push ax mov ax, si mov bx, 4 cwd idiv bx add ax, 3 push ax mov al, [si+1F2Ch] push ax call sub_C110 mov bx, si shl bx, 2 mov ax, [bx+1EECh] mov bx, si shl bx, 2 add [bx+1EACh], ax mov bx, si shl bx, 2 mov ax, [bx+1EEEh] mov bx, si shl bx, 2 add [bx+1EAEh], ax mov al, [si+1F3Ch] add [si+1F2Ch], al mov bx, si shl bx, 2 cmp word ptr [bx+1EACh], 0 jle short loc_C2E2 mov bx, si shl bx, 2 cmp word ptr [bx+1EACh], 27Fh jl short loc_C2F4 loc_C2E2: mov bx, si shl bx, 2 mov dx, 0FFFFh mov ax, [bx+1EECh] imul dx mov [bx+1EECh], ax loc_C2F4: mov bx, si shl bx, 2 cmp word ptr [bx+1EAEh], 1F40h jge short loc_C304 jmp loc_C38B ; --------------------------------------------------------------------------- loc_C304: call IRand mov bx, 280h cwd idiv bx mov bx, si shl bx, 2 mov [bx+1EACh], dx mov bx, si shl bx, 2 mov word ptr [bx+1EAEh], 0F9C0h call IRand and ax, 0Fh mov dx, 8 sub dx, ax mov bx, si shl bx, 2 mov [bx+1EECh], dx mov bx, si shl bx, 2 cmp word ptr [bx+1EECh], 0 jnz short loc_C350 mov bx, si shl bx, 2 mov word ptr [bx+1EECh], 1 loc_C350: call IRand and ax, 3 shl ax, 4 add ax, 20h ; ' ' mov bx, si shl bx, 2 mov [bx+1EEEh], ax call IRand mov [si+1F2Ch], al call IRand and al, 7 mov dl, 4 sub dl, al mov [si+1F3Ch], dl cmp byte ptr [si+1F3Ch], 0 jnz short loc_C38B mov byte ptr [si+1F3Ch], 4 loc_C38B: push ds push offset unk_F4B4 mov ax, si mov bx, 4 cwd idiv bx add ax, 3 push ax call grcg_polygon_c inc si loc_C3A1: cmp si, 10h jge short loc_C3A9 jmp loc_C268 ; --------------------------------------------------------------------------- loc_C3A9: pop si pop bp retn sub_C1B2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C3AC proc near push bp mov bp, sp call sub_C0E4 push 0CEh push 0Fh call grcg_setcolor call sub_C1B2 call grcg_off mov dx, 0A4h ; '、' mov al, byte ptr word_F57C+1 out dx, al mov al, 1 sub al, byte ptr word_F57C+1 mov byte ptr word_F57C+1, al mov dx, 0A6h ; 'ヲ' out dx, al push 1 call sub_B2D2 pop bp retn sub_C3AC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C3E1 proc near var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 enter 6, 0 push si push di mov [bp+var_6], 0 jmp short loc_C409 ; --------------------------------------------------------------------------- loc_C3EE: push 3200h call hmem_allocbyte mov bx, [bp+var_6] shl bx, 2 mov [bx+1F54h], ax mov word ptr [bx+1F52h], 0 inc [bp+var_6] loc_C409: cmp [bp+var_6], 4 jl short loc_C3EE xor si, si mov di, 40h jmp loc_C4AC ; --------------------------------------------------------------------------- loc_C417: mov [bp+var_2], 0A0h jmp loc_C4A1 ; --------------------------------------------------------------------------- loc_C41F: mov ax, [bp+var_2] sar ax, 3 mov dx, di shl dx, 6 add ax, dx mov dx, di shl dx, 4 add ax, dx mov [bp+var_4], ax les bx, dword_F16C add bx, [bp+var_4] mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword ptr unk_F582 mov es:[bx+si+2], dx mov es:[bx+si], ax les bx, dword_F170 add bx, [bp+var_4] mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword ptr unk_F586 mov es:[bx+si+2], dx mov es:[bx+si], ax les bx, dword_F174 add bx, [bp+var_4] mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword ptr unk_F58A mov es:[bx+si+2], dx mov es:[bx+si], ax les bx, dword_F178 add bx, [bp+var_4] mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword ptr unk_F58E mov es:[bx+si+2], dx mov es:[bx+si], ax add si, 4 add [bp+var_2], 20h ; ' ' loc_C4A1: cmp [bp+var_2], 1E0h jge short loc_C4AB jmp loc_C41F ; --------------------------------------------------------------------------- loc_C4AB: inc di loc_C4AC: cmp di, 50h ; 'P' jge short loc_C4B4 jmp loc_C417 ; --------------------------------------------------------------------------- loc_C4B4: mov di, 50h ; 'P' jmp loc_C54F ; --------------------------------------------------------------------------- loc_C4BA: mov [bp+var_2], 130h jmp loc_C544 ; --------------------------------------------------------------------------- loc_C4C2: mov ax, [bp+var_2] sar ax, 3 mov dx, di shl dx, 6 add ax, dx mov dx, di shl dx, 4 add ax, dx mov [bp+var_4], ax les bx, dword_F16C add bx, [bp+var_4] mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword ptr unk_F582 mov es:[bx+si+2], dx mov es:[bx+si], ax les bx, dword_F170 add bx, [bp+var_4] mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword ptr unk_F586 mov es:[bx+si+2], dx mov es:[bx+si], ax les bx, dword_F174 add bx, [bp+var_4] mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword ptr unk_F58A mov es:[bx+si+2], dx mov es:[bx+si], ax les bx, dword_F178 add bx, [bp+var_4] mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword ptr unk_F58E mov es:[bx+si+2], dx mov es:[bx+si], ax add si, 4 add [bp+var_2], 20h ; ' ' loc_C544: cmp [bp+var_2], 270h jge short loc_C54E jmp loc_C4C2 ; --------------------------------------------------------------------------- loc_C54E: inc di loc_C54F: cmp di, 180h jge short loc_C558 jmp loc_C4BA ; --------------------------------------------------------------------------- loc_C558: pop di pop si leave retn sub_C3E1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C55C proc near arg_0 = word ptr 4 push bp mov bp, sp push si push ds push offset aMusic_txt ; "MUSIC.TXT" call file_ropen mov ax, [bp+arg_0] imul ax, 348h cwd push dx push ax push 0 call file_seek push ds push offset unk_F592 push 348h call file_read call file_close xor si, si jmp short loc_C59A ; --------------------------------------------------------------------------- loc_C58F: mov bx, si imul bx, 2Ah mov byte ptr [bx+1F8Ah], 0 inc si loc_C59A: cmp si, 14h jl short loc_C58F pop si pop bp retn 2 sub_C55C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C5A4 proc near push bp mov bp, sp push word_F584 call hmem_free push word_F588 call hmem_free push word_F58C call hmem_free push word_F590 call hmem_free pop bp retn sub_C5A4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C5CD proc near var_2 = word ptr -2 enter 2, 0 push si push di xor cx, cx mov si, 40h jmp loc_C673 ; --------------------------------------------------------------------------- loc_C5DB: mov di, 0A0h jmp loc_C669 ; --------------------------------------------------------------------------- loc_C5E1: 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 ptr unk_F582 add bx, cx mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword_F16C add bx, [bp+var_2] mov es:[bx+2], dx mov es:[bx], ax les bx, dword ptr unk_F586 add bx, cx mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword_F170 add bx, [bp+var_2] mov es:[bx+2], dx mov es:[bx], ax les bx, dword ptr unk_F58A add bx, cx mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword_F174 add bx, [bp+var_2] mov es:[bx+2], dx mov es:[bx], ax les bx, dword ptr unk_F58E add bx, cx mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword_F178 add bx, [bp+var_2] mov es:[bx+2], dx mov es:[bx], ax add cx, 4 add di, 20h ; ' ' loc_C669: cmp di, 1E0h jge short loc_C672 jmp loc_C5E1 ; --------------------------------------------------------------------------- loc_C672: inc si loc_C673: cmp si, 50h ; 'P' jge short loc_C67B jmp loc_C5DB ; --------------------------------------------------------------------------- loc_C67B: mov si, 50h ; 'P' jmp loc_C719 ; --------------------------------------------------------------------------- loc_C681: mov di, 130h jmp loc_C70F ; --------------------------------------------------------------------------- loc_C687: 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 ptr unk_F582 add bx, cx mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword_F16C add bx, [bp+var_2] mov es:[bx+2], dx mov es:[bx], ax les bx, dword ptr unk_F586 add bx, cx mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword_F170 add bx, [bp+var_2] mov es:[bx+2], dx mov es:[bx], ax les bx, dword ptr unk_F58A add bx, cx mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword_F174 add bx, [bp+var_2] mov es:[bx+2], dx mov es:[bx], ax les bx, dword ptr unk_F58E add bx, cx mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword_F178 add bx, [bp+var_2] mov es:[bx+2], dx mov es:[bx], ax add cx, 4 add di, 20h ; ' ' loc_C70F: cmp di, 270h jge short loc_C718 jmp loc_C687 ; --------------------------------------------------------------------------- loc_C718: inc si loc_C719: cmp si, 180h jge short loc_C722 jmp loc_C681 ; --------------------------------------------------------------------------- loc_C722: pop di pop si leave retn sub_C5CD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C726 proc near arg_0 = word ptr 4 push bp mov bp, sp push si push di push [bp+arg_0] call sub_C55C call sub_C0E4 call sub_C5CD push ds push offset unk_F592 push 1Fh push 40h push 0A0h call sub_AB4D add sp, 0Ah mov si, 1 jmp short loc_C76E ; --------------------------------------------------------------------------- loc_C74F: push ds mov ax, si imul ax, 2Ah add ax, 1F62h push ax push 1Dh lea ax, [si+4] shl ax, 4 push ax push 130h call sub_AB4D add sp, 0Ah inc si loc_C76E: cmp si, 14h jl short loc_C74F xor di, di jmp short loc_C794 ; --------------------------------------------------------------------------- loc_C777: les bx, dword_F16C add bx, di mov dx, es:[bx+2] mov ax, es:[bx] les bx, dword_F57E add bx, di mov es:[bx+2], dx mov es:[bx], ax add di, 4 loc_C794: cmp di, 7D00h jl short loc_C777 pop di pop si pop bp retn 2 sub_C726 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C7A0 proc far var_1 = byte ptr -1 enter 2, 0 mov byte ptr word_F57C+1, 1 mov PaletteTone, 0 call far ptr palette_show mov dx, 0A4h ; '、' mov al, 0 out dx, al mov dx, 0A6h ; 'ヲ' out dx, al call graph_clear mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al push ds push offset aOp3_pi ; "op3.pi" push 0 call sub_ADD5 push 0 call sub_B15A push 0 push 0 push 0 call sub_B17D add sp, 0Eh push ds push offset unk_F194 push word_F17E push word_F17C call graph_pi_free mov al, byte_DF97 mov byte ptr word_F57C, al push word_F57C call sub_C070 push 0 call graph_copy_page mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al mov dx, 0A4h ; '、' mov al, 0 out dx, al call sub_C097 call sub_C3E1 mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al mov al, byte_DF97 mov ah, 0 push ax call sub_C726 mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al mov al, byte_DF97 mov ah, 0 push ax call sub_C726 mov PaletteTone, 64h ; 'd' call far ptr palette_show loc_C849: call sub_AED0 cmp word_F3C8, 0 jz short loc_C85A call sub_C3AC jmp short loc_C849 ; --------------------------------------------------------------------------- loc_C85A: call sub_AED0 test byte ptr word_F3C8, 1 jz short loc_C895 push word_F57C push 3 call sub_BFF5 cmp byte ptr word_F57C, 0 jbe short loc_C87C dec byte ptr word_F57C jmp short loc_C881 ; --------------------------------------------------------------------------- loc_C87C: mov byte ptr word_F57C, 10h loc_C881: cmp byte ptr word_F57C, 0Fh jnz short loc_C88C dec byte ptr word_F57C loc_C88C: push word_F57C push 0Fh call sub_BFF5 loc_C895: test byte ptr word_F3C8, 2 jz short loc_C8CB push word_F57C push 3 call sub_BFF5 cmp byte ptr word_F57C, 10h jnb short loc_C8B2 inc byte ptr word_F57C jmp short loc_C8B7 ; --------------------------------------------------------------------------- loc_C8B2: mov byte ptr word_F57C, 0 loc_C8B7: cmp byte ptr word_F57C, 0Fh jnz short loc_C8C2 inc byte ptr word_F57C loc_C8C2: push word_F57C push 0Fh call sub_BFF5 loc_C8CB: test byte ptr word_F3C8, 10h jnz short loc_C8D9 test byte ptr word_F3C8, 80h jz short loc_C950 loc_C8D9: cmp byte ptr word_F57C, 10h jnz short loc_C8E3 jmp loc_C967 ; --------------------------------------------------------------------------- loc_C8E3: mov al, byte_F3CB mov [bp+var_1], al mov al, byte_F3CD mov byte_F3CB, al push 600h mov al, byte ptr word_F57C mov ah, 0 shl ax, 2 mov bx, ax push word ptr [bx+92Ch] push word ptr [bx+92Ah] call sub_B0EA mov byte_F3CB, 0 push 600h mov al, byte ptr word_F57C mov ah, 0 shl ax, 2 mov bx, ax push word ptr [bx+92Ch] push word ptr [bx+92Ah] call sub_B0EA mov al, [bp+var_1] mov byte_F3CB, al push 0 call sub_B203 add sp, 0Eh mov al, byte ptr word_F57C mov byte_DF97, al mov ah, 0 push ax call sub_C726 call sub_C3AC mov al, byte ptr word_F57C mov ah, 0 push ax call sub_C726 loc_C950: test byte ptr word_F3C8, 40h jnz short loc_C967 cmp word_F3C8, 0 jz short loc_C961 jmp loc_C849 ; --------------------------------------------------------------------------- loc_C961: call sub_C3AC jmp loc_C85A ; --------------------------------------------------------------------------- loc_C967: call sub_AED0 cmp word_F3C8, 0 jz short loc_C978 call sub_C3AC jmp short loc_C967 ; --------------------------------------------------------------------------- loc_C978: call sub_C0D6 call sub_C5A4 mov dx, 0A4h ; '、' mov al, 0 out dx, al mov dx, 0A6h ; 'ヲ' out dx, al call graph_clear mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al push ds push offset aOp2_pi_0 ; "op2.pi" push 0 call sub_ADD5 push 0 call sub_B15A push 0 push 0 push 0 call sub_B17D add sp, 0Eh push ds push offset unk_F194 push word_F17E push word_F17C call graph_pi_free push ds push offset aOp_rgb_0 ; "op.rgb" call palette_entry_rgb call far ptr palette_show push 0 call graph_copy_page mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al leave retf sub_C7A0 endp seg006 ends ; =========================================================================== ; Segment type: Pure code seg007 segment byte public 'CODE' use16 assume cs:seg007 ;org 1 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 seg007 ends ; =========================================================================== ; Segment type: Pure data dseg segment para public 'DATA' use16 assume cs:dseg include libs/BorlandC/c0[data].asm byte_D6C0 db 0 byte_D6C1 db 0 byte_D6C2 db 0 db 0 gZUN db 0C3h, 0BEh, 0B6h, 0 include th02/strings/ranks_center[data].asm gHIT_KEY db 0B1h, 0B2h, 0BDh, 0CFh, 0B4h, 0AEh, 0C2h, 0 g7SPACES db 0CFh, 0CFh, 0CFh, 0CFh, 0CFh, 0CFh, 0CFh, 0 gSTART db 0BCh, 0BDh, 0AAh, 0BBh, 0BDh, 0, 0, 0, 0, 0 gEXTRA_START db 0AEh, 0C1h, 0BDh, 0BBh, 0AAh, 0CFh, 0BCh, 0BDh, 0AAh, 0BBh, 0BDh, 0 gHISCORE db 0B1h, 0B2h, 0BCh, 0ACh, 0B8h, 0BBh, 0AEh, 0, 0, 0 gOPTION db 0B8h, 0B9h, 0BDh, 0B2h, 0B8h, 0B6h, 0, 0, 0, 0 gQUIT db 0BAh, 0BEh, 0B2h, 0BDh, 0, 0, 0, 0, 0, 0 gRANK db 0BBh, 0AAh, 0B6h, 0B4h, 0, 0, 0, 0, 0, 0 gPLAYER db 0B9h, 0B5h, 0AAh, 0C2h, 0AEh, 0BBh, 0, 0, 0, 0 gMUSIC db 0B7h, 0BEh, 0BCh, 0B2h, 0ACh, 0, 0, 0, 0, 0 gBOMB db 0ABh, 0B8h, 0B7h, 0ABh, 0, 0, 0, 0, 0, 0 gMUSIC_MODE db 0B7h, 0BEh, 0BCh, 0B2h, 0ACh, 0CFh, 0B7h, 0B8h, 0ADh, 0AEh, 0 gRESET db 0BBh, 0AEh, 0BCh, 0AEh, 0BDh, 0, 0, 0, 0, 0 gsEASY db 0E8h, 0E9h, 0 gsNORMAL db 0EAh, 0EBh, 0 gsHARD db 0ECh, 0EDh, 0 gsLUNATIC db 0EEh, 0EFh, 0 gOFF db 0B8h, 0AFh, 0AFh, 0CFh, 0 gFM db 0CFh, 0AFh, 0B7h, 0CFh, 0 gMIDI db 0B7h, 0B2h, 0ADh, 0B2h, 0 PERF_TITLE dd aPERF_TITLE PERF_OPTION dd aPERF_NORMAL dd aPERF_TRUNCATE byte_D790 db 0 byte_D791 db 0 byte_D792 db 0 aHuuma_cfg db 'huuma.cfg',0 aHuuma_efc db 'huuma.efc',0 aOp2_pi db 'op2.pi',0 aOp_pi db 'op.pi',0 aOpa_pi db 'opa.pi',0 aOpb_pi db 'opb.pi',0 aOpc_pi db 'opc.pi',0 aOp_m db 'op.m',0 aOp_rgb db 'op.rgb',0 aTs1_pi db 'ts1.pi',0 aSelect db 'select',0 ; char path[] path db 'main',0 aPERF_TITLE db '演出',0 aPERF_NORMAL db ' 通常 ',0 aPERF_TRUNCATE db '一部軽減',0 aMikoft_bft db 'MIKOFT.bft',0 aGminit_m db 'gminit.m',0 aTs3_pi db 'ts3.pi',0 aTs2_pi db 'ts2.pi',0 db 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 db 0 include libs/master.lib/pal[data].asm include libs/master.lib/pf[data].asm db 0 include libs/master.lib/rand[data].asm include libs/master.lib/sin8[data].asm include libs/master.lib/tx[data].asm include libs/master.lib/version[data].asm include libs/master.lib/vs[data].asm include libs/master.lib/wordmask[data].asm include libs/master.lib/mem[data].asm include libs/master.lib/super_entry_bfnt[data].asm include libs/master.lib/superpa[data].asm a_exe db '.exe',0 db 0 aUmx db '東方封魔.録',0 byte_DBEE db 0 db 0 byte_DBF0 db 0FFh db 0 db 0 db 20h db 9 db 2 db 10h db 5 db 6 db 30h ; 0 db 8 db 9 db 5 db 10h db 0Ah db 11h db 0Ch db 20h db 20h db 10h db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 24h ; $ db 10h db 4 db 10h db 8 db 0Ah db 30h ; 0 db 50h ; P db 18h db 11h db 0Bh db 4 db 50h ; P db 10h db 30h ; 0 db 4Ah ; J db 20h db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 byte_DC33 db 0 byte_DC34 db 1 db 0 include th02/strings/hiscore[data].asm gcEASY_0 db 0CFh, 0AEh, 0AAh, 0BCh, 0C2h, 0CFh, 0CFh, 0 gcNORMAL_0 db 0B6h, 0B8h, 0BBh, 0B7h, 0AAh, 0B5h, 0CFh, 0 gcHARD_0 db 0CFh, 0B1h, 0AAh, 0BBh, 0ADh, 0CFh, 0CFh, 0 gcLUNATIC_0 db 0B5h, 0BEh, 0B6h, 0AAh, 0BDh, 0B2h, 0ACh, 0 dd aNvl@uo ; "高機動" dd aChmf ; "防御" dd aNumv ; "攻撃" word_DCB0 dw 0 byte_DCB2 db 1 db 0 unk_DCB4 db 3Eh ; > db 1 db 76h ; v db 0 db 0DAh ; レ db 0 unk_DCBA db 1 db 2 db 4 aHuuhi_dat db 'huuhi.dat',0 aNvl@uo db '高機動',0 aChmf db '防御',0 aNumv db '攻撃',0 aVicSob@b@b@b@b db ' お名前      得点    STAGE TYPE 日付',0 aOp_h_bft db 'op_h.bft',0 aOp_h_rgb db 'op_h.rgb',0 byte_DD20 db 1 db 0 dd aIaczlVCV ; " 陰陽玉の力を使わない " dd aNlfIVVivL@uocV ; " 広範囲でかつ機動力に " dd aB@lnvvnvl@uocG ; " 強い高機動力タイプ " dd aB@sMvvkcdvVVvv ; "  靈撃が優れている  " dd aB@GogigugxvOcv ; "  バランスの取れた  " dd aB@b@chmfpdolgG ; "  防御重視タイプ  " dd aB@iaczlVCVRavd ; "  陰陽玉の力で戦う " dd aB@numvcVkcdvVV ; " 攻撃力が優れている " dd aB@b@numvpdolgG ; "  攻撃重視タイプ  " off_DD46 dd aSCVRaumgxgGcgl ; "靈夢の戦闘スタイルを、下の3つからえら・... off_DD4A dd aTnbjb@ggglgxgg ; "注) エキストラステージでは、難易度、・... off_DD4E dd aB@b@b@vVVVBauq ; "   それぞれ、難易度EXTRA、プレ・... off_DD52 dd aBsbsvbvkvdvVqv ; " ☆☆CLEARED☆☆ " unk_DD56 db 10h db 0 db 0E0h db 0 db 0B0h ; ー db 1 unk_DD5C db 80h db 0 db 0E0h db 0 db 80h db 0 aIaczlVCV db ' 陰陽玉の力を使わない ',0 aNlfIVVivL@uocV db ' 広範囲でかつ機動力に ',0 aB@lnvvnvl@uocG db ' 強い高機動力タイプ ',0 aB@sMvvkcdvVVvv db '  靈撃が優れている  ',0 aB@GogigugxvOcv db '  バランスの取れた  ',0 aB@b@chmfpdolgG db '  防御重視タイプ  ',0 aB@iaczlVCVRavd db '  陰陽玉の力で戦う ',0 aB@numvcVkcdvVV db ' 攻撃力が優れている ',0 aB@b@numvpdolgG db '  攻撃重視タイプ  ',0 aSCVRaumgxgGcgl db '靈夢の戦闘スタイルを、下の3つからえらんでね',0 aTnbjb@ggglgxgg db '注) エキストラステージでは、難易度、プレイヤー、ボム数は変更出来ません',0 aB@b@b@vVVVBauq db '   それぞれ、難易度EXTRA、プレイヤー3人、ボム1個となります ',0 aBsbsvbvkvdvVqv db ' ☆☆CLEARED☆☆ ',0 aTselect_pi db 'TSELECT.pi',0 dd aNo_1Umx ; "NO.1 東方封魔録 〜浄土曼荼羅" dd aNo_2B@Focab@bE ; "NO.2   博麗 〜Eastern Wind " dd aNo_3B@EndOfDay ; "NO.3   End of Daylight  " dd aNo_4B@b@b@b@b@ ; "NO.4      幻夢界    " dd aNo_5VVrvivmbav ; "NO.5 ひもろぎ、むらさきにもえ" dd aNo_6B@umx ; "NO.6  東方封魔録 〜幽幻乱舞" dd aNo_7B@SheSInAT ; "NO.7   She's in a temper!! " dd aNo_8B@B@VtvVVV ; "NO.8     やみのちから   " dd aNo_9B@b@b@b@oa ; "NO.9     死を賭して   " dd aNo_10B@B@C ; "NO.10     恋色マジック   " dd aNo_11CompleteD ; "NO.11 Complete Darkness " dd aNo_12B@b@iucVR ; "NO.12   遠野の森    " dd aNo_13RSbvav ; "NO.13 昔話わんだーらんど " dd aNo_14B@Ggglgxg ; "NO.14   エキストララブ " dd aNo_15RaoVVVVVV ; "NO.15 戦車むすめのみるゆめ " dd aB@b@ ; "    " dd aB@b@vpvxvivf ; "   Quit " dd aOp_m_0 ; "op.m" dd aStage0_m ; "stage0.m" dd aStage1_m ; "stage1.m" dd aStage2_m ; "stage2.m" dd aStage3_m ; "stage3.m" dd aStage4_m ; "stage4.m" dd aBoss1_m ; "boss1.m" dd aBoss4_m ; "boss4.m" dd aBoss2_m ; "boss2.m" dd aBoss3_m ; "boss3.m" dd aMima_m ; "mima.m" dd aEnd1_m ; "end1.m" dd aEnding_m ; "ending.m" dd aStage5_m ; "stage5.m" dd aBoss5_m ; "boss5.m" byte_DF96 db 0 byte_DF97 db 0 aNo_1Umx db 'NO.1 東方封魔録 〜浄土曼荼羅',0 aNo_2B@Focab@bE db 'NO.2   博麗 〜Eastern Wind ',0 aNo_3B@EndOfDay db 'NO.3   End of Daylight  ',0 aNo_4B@b@b@b@b@ db 'NO.4      幻夢界    ',0 aNo_5VVrvivmbav db 'NO.5 ひもろぎ、むらさきにもえ',0 aNo_6B@umx db 'NO.6  東方封魔録 〜幽幻乱舞',0 aNo_7B@SheSInAT db 'NO.7   She',27h,'s in a temper!! ',0 aNo_8B@B@VtvVVV db 'NO.8     やみのちから   ',0 aNo_9B@b@b@b@oa db 'NO.9     死を賭して   ',0 aNo_10B@B@C db 'NO.10     恋色マジック   ',0 aNo_11CompleteD db 'NO.11 Complete Darkness ',0 aNo_12B@b@iucVR db 'NO.12   遠野の森    ',0 aNo_13RSbvav db 'NO.13 昔話わんだーらんど ',0 aNo_14B@Ggglgxg db 'NO.14   エキストララブ ',0 aNo_15RaoVVVVVV db 'NO.15 戦車むすめのみるゆめ ',0 aB@b@ db '    ',0 aB@b@vpvxvivf db '   Quit ',0 aOp_m_0 db 'op.m',0 aStage0_m db 'stage0.m',0 aStage1_m db 'stage1.m',0 aStage2_m db 'stage2.m',0 aStage3_m db 'stage3.m',0 aStage4_m db 'stage4.m',0 aBoss1_m db 'boss1.m',0 aBoss4_m db 'boss4.m',0 aBoss2_m db 'boss2.m',0 aBoss3_m db 'boss3.m',0 aMima_m db 'mima.m',0 aEnd1_m db 'end1.m',0 aEnding_m db 'ending.m',0 aStage5_m db 'stage5.m',0 aBoss5_m db 'boss5.m',0 aMusic_txt db 'MUSIC.TXT',0 aOp3_pi db 'op3.pi',0 aOp2_pi_0 db 'op2.pi',0 aOp_rgb_0 db 'op.rgb',0 aAbnormalProgra db 'Abnormal program termination',0Dh,0Ah,0 db 0 include libs/BorlandC/atexit[data].asm include libs/BorlandC/exit[data].asm include libs/BorlandC/files[data].asm include libs/BorlandC/__IOERROR[data].asm db 0 include libs/BorlandC/new[data].asm __stklen dw 1000h include libs/master.lib/ctype[data].asm db 0 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 byte_E8F8 db ? byte_E8F9 db ? dw ? word_E8FC dw ? byte_E8FE db ? db ? word_E900 dw ? word_E902 dw ? include libs/master.lib/clip[bss].asm 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 include libs/master.lib/super_put_rect[bss].asm dword_F16C dd ? dword_F170 dd ? dword_F174 dd ? dword_F178 dd ? word_F17C dw ? word_F17E dw ? word_F180 dw ? word_F182 dw ? word_F184 dw ? word_F186 dw ? word_F188 dw ? word_F18A dw ? dd ? ; dd ? ; unk_F194 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; db ? ; db ? ; unk_F1DC db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; db ? ; db ? ; unk_F224 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; db ? ; db ? ; unk_F26C 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 ? ; db ? ; db ? ; db ? ; word_F3C4 dw ? word_F3C6 dw ? word_F3C8 dw ? byte_F3CA db ? byte_F3CB db ? byte_F3CC db ? byte_F3CD db ? dd ? ; dd ? ; dd ? ; db ? ; db ? ; dword_F3DC dd ? db ? ; byte_F3E1 db ? byte_F3E2 db ? dd ? ; dd ? ; db ? ; word_F3EC dw ? dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; byte_F4A2 db ? db ? word_F4A4 dw ? byte_F4A6 db ? byte_F4A7 db ? byte_F4A8 db ? byte_F4A9 db ? byte_F4AA db ? byte_F4AB db ? dd ? ; dd ? ; unk_F4B4 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 ? ; db ? ; db ? ; db ? ; word_F57C dw ? dword_F57E dd ? unk_F582 db ? ; db ? ; word_F584 dw ? unk_F586 db ? ; db ? ; word_F588 dw ? unk_F58A db ? ; db ? ; word_F58C dw ? unk_F58E db ? ; db ? ; word_F590 dw ? unk_F592 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; db ? ; db ? ; include libs/BorlandC/atexit[bss].asm include libs/BorlandC/sigdata[bss].asm dd ? ; include libs/BorlandC/signal[bss].asm include libs/BorlandC/xx[bss].asm edata@ label byte dseg ends ; =========================================================================== ; Segment type: Uninitialized seg009 segment byte stack 'STACK' use16 assume cs:seg009 assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing db 80h dup(?) seg009 ends end startx