; ; +-------------------------------------------------------------------------+ ; | This file has been generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2009 by Hex-Rays, | ; +-------------------------------------------------------------------------+ ; ; Input MD5 : CE44AA7A114237C6B3CD67EEA9C0225A ; File Name : th03/MAINL.EXE ; Format : MS-DOS executable (EXE) ; Base Address: 0h Range: 0h-10CF0h Loaded length: F72Ch ; Entry Point : 0:0 ; OS type : MS DOS ; Application type: Executable 16bit CGROUP00 group seg000 CGROUP01 group seg001 CGROUP02 group seg002 CGROUP03 group seg003 .386 .model large include ReC98.inc ; =========================================================================== ; Segment type: Pure code seg000 segment word public 'CODE' use16 assume cs:seg000 assume es:nothing, ss:seg005, 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_filesize.asm include libs/master.lib/dos_keyclear.asm include libs/master.lib/dos_setvect.asm include libs/master.lib/egc.asm include libs/master.lib/file_append.asm include libs/master.lib/file_close.asm include libs/master.lib/file_create.asm include libs/master.lib/file_exist.asm include libs/master.lib/file_read.asm include libs/master.lib/file_ropen.asm include libs/master.lib/file_seek.asm include libs/master.lib/file_size.asm include libs/master.lib/file_write.asm include libs/master.lib/dos_close.asm include libs/master.lib/dos_ropen.asm include libs/master.lib/grcg_boxfill.asm include libs/master.lib/grcg_byteboxfill_x.asm include libs/master.lib/grcg_setcolor.asm include libs/master.lib/gdc_outpw.asm db 0 include libs/master.lib/gaiji_backup.asm include libs/master.lib/gaiji_entry_bfnt.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_pi_free.asm include libs/master.lib/graph_pi_load_pack.asm include libs/master.lib/graph_pack_put_8.asm include libs/master.lib/graph_scrollup.asm include libs/master.lib/graph_show.asm include libs/master.lib/iatan2.asm include libs/master.lib/js_end.asm include libs/master.lib/palette_show.asm include libs/master.lib/pfclose.asm include libs/master.lib/pfgetc.asm 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/master.lib/soundio.asm include libs/BorlandC/text_clear.asm include libs/master.lib/text_fillca.asm include libs/master.lib/vsync.asm include libs/master.lib/vsync_wait.asm include libs/master.lib/palette_white_in.asm include libs/master.lib/palette_white_out.asm include libs/master.lib/hmem_lallocate.asm include libs/master.lib/mem_assign_dos.asm include libs/master.lib/mem_assign.asm include libs/master.lib/memheap.asm include libs/master.lib/mem_unassign.asm include libs/master.lib/super_free.asm include libs/master.lib/super_entry_pat.asm include libs/master.lib/super_entry_at.asm include libs/master.lib/super_entry_bfnt.asm include libs/master.lib/super_cancel_pat.asm include libs/master.lib/super_put.asm include libs/master.lib/respal_exist.asm include libs/master.lib/respal_set_palettes.asm ; --------------------------------------------------------------------------- dword_2850 dd 0 byte_2854 db 0, 90h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2856 proc far arg_0 = dword ptr 6 push bp mov bp, sp cld mov ax, word ptr cs:dword_2850 or ax, word ptr cs:dword_2850+2 jz short loc_2868 jmp loc_28E9 ; --------------------------------------------------------------------------- loc_2868: push di push si push word ptr [bp+arg_0+2] push word ptr [bp+arg_0] call file_ropen push 10h call hmem_allocbyte mov di, ax push ax push 0 push 10h call file_read mov ax, di mov es, ax mov di, es:0 mov si, es:6 push ax call hmem_free push di call hmem_allocbyte mov word_100F6, ax push ax push 0 push di call file_read call file_close mov cx, di mov ax, word_100F6 mov es, ax mov ax, si xor bx, bx loc_28B7: xor es:[bx], al sub al, es:[bx] inc bx loop loc_28B7 pop si pop di 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_2850, bx mov word ptr cs:dword_2850+2, es mov word_100F2, 0 mov word_100F4, 0FFFFh push ds push cs pop ds assume ds:seg000 mov dx, 294Ah 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_28E9: push si push di push ds mov cx, 0FFFFh mov al, 0 les di, [bp+arg_0] repne scasb not cx sub di, cx mov si, di mov di, 1C82h 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_2856 endp ; =============== S U B R O U T I N E ======================================= sub_2912 proc far mov ax, word ptr cs:dword_2850 or ax, word ptr cs:dword_2850+2 jz short locret_2949 push ds lds dx, cs:dword_2850 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_2850, ax mov word ptr cs:dword_2850+2, ax cmp word_100F2, ax jz short locret_2949 push word_100F2 call pfclose push word_100F6 call hmem_free locret_2949: retf sub_2912 endp ; --------------------------------------------------------------------------- cmp cs:byte_2854, 0 jz short loc_2957 jmp cs:dword_2850 ; --------------------------------------------------------------------------- loc_2957: pusha push ds push es mov bp, sp mov di, seg dseg mov ds, di inc cs:byte_2854 push word ptr [bp+18h] popf mov cs:byte_29AE, ah mov si, 297Eh loc_2972: add si, 4 cmp ah, cs:[si] jnz short loc_2972 mov di, word_100F4 jmp word ptr cs:[si+2] ; --------------------------------------------------------------------------- db 3Dh ; = db 0 db 0B2h db 29h ; ) db 3Eh ; > db 0 db 0E7h db 29h ; ) db 3Fh ; ? db 0 db 5 db 2Ah ; * db 42h ; B db 0 db 19h db 2Ah ; * db 46h ; F db 0 db 7Ah ; z db 2Ah ; * db 40h db 0 db 7Eh ; ~ db 2Ah ; * db 45h ; E db 0 db 7Eh ; ~ db 2Ah ; * db 4Ch ; L db 0 db 5Ch db 2Ah ; * db 57h ; W db 0 db 7Eh ; ~ db 2Ah ; * db 5Ch db 0 db 7Eh ; ~ db 2Ah ; * db 44h ; D db 0 db 68h ; h db 2Ah ; * byte_29AE db 0 db 0 db 82h, 2Ah, 0A8h, 0Fh, 74h, 3, 0E9h, 0C9h, 0, 0Bh, 0FFh db 78h, 3, 0E9h, 0C2h, 0, 1Eh, 68h, 82h, 1Ch, 0FFh, 76h db 2, 52h, 0Eh, 0E8h, 4Ah, 1, 0Bh, 0C0h, 75h, 3, 0E9h db 0AFh, 0, 0A3h, 2, 1Dh, 8Eh, 0C0h, 26h, 8Eh, 6, 2 dup(0) db 26h, 0A1h, 2 dup(0), 0A3h, 4, 1Dh, 0E9h, 0B6h, 0, 3Bh db 0DFh, 74h, 3, 0E9h, 94h, 0, 0FFh, 36h, 2, 1Dh, 0Eh db 0E8h, 0E4h, 0EEh, 0C7h, 6, 2, 1Dh, 2 dup(0), 0C7h, 6 db 4, 1Dh, 2 dup(0FFh), 0E9h, 98h, 0, 3Bh, 0DFh, 75h, 79h db 0FFh, 76h, 2, 52h, 51h, 0FFh, 36h, 2, 1Dh, 0Eh, 0E8h db 8Eh, 0EFh, 0E9h, 84h, 0, 3Bh, 0DFh, 75h, 65h, 0Bh, 0C9h db 7Ch, 73h, 3Ch, 1, 74h, 28h, 7Ch, 1Ah, 8Eh, 6, 2, 1Dh db 26h, 8Bh, 2 dup(16h), 0, 26h, 8Bh, 0Eh, 18h, 0, 26h db 2Bh, 16h, 12h, 0, 26h, 1Bh, 0Eh, 14h, 0, 0EBh, 0Ch db 51h, 52h, 0FFh, 36h, 2, 1Dh, 0Eh, 0E8h, 87h, 0EFh, 5Ah db 59h, 0FFh, 36h, 2, 1Dh, 51h, 52h, 0Eh, 0E8h, 0B7h, 0EFh db 89h, 56h, 0Eh, 0EBh, 41h, 2Eh, 0C5h, 16h, 50h, 28h db 0B8h, 21h, 25h, 0CDh, 21h, 0EBh, 1Ah, 8Ah, 0C8h, 0B8h db 1, 0, 0D3h, 0E0h, 2Eh, 85h, 6, 78h, 2Ah, 75h, 8, 0EBh db 0Ah, 0CFh, 14h, 8Bh, 0CFh, 74h, 16h, 3Bh, 0DFh, 74h db 12h, 2Eh, 0FEh, 0Eh, 54h, 28h, 0FFh, 76h, 18h, 9Dh db 7, 1Fh, 61h, 0FAh, 2Eh, 0FFh, 2Eh, 50h, 28h, 80h, 4Eh db 18h, 1, 0B8h, 1, 0, 0EBh, 4, 80h, 66h, 18h, 0FEh, 89h db 46h, 12h, 2Eh, 0FEh, 0Eh, 54h, 28h, 7, 1Fh, 61h, 0CFh db 0 ; =============== S U B R O U T I N E ======================================= sub_2AAE proc far mov cx, 100h mov dx, 188h loc_2AB4: in al, dx inc al jnz short loc_2ABF loop loc_2AB4 xor ax, ax jmp short loc_2AD3 ; --------------------------------------------------------------------------- loc_2ABF: pushf cli mov bh, 7 call sound_i and al, 3Fh or al, 80h mov bl, al call sound_o popf mov ax, 1 loc_2AD3: mov word_E960, ax retf sub_2AAE endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_2AD8 proc near mov bh, 0Fh call sound_o mov dx, 188h mov al, 0Eh out dx, al inc dx inc dx in al, dx not al retn sub_2AD8 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= sub_2AEA proc far push bp push si push di xor bp, bp cmp word_E960, 0 jz short loc_2B03 pushf cli mov bl, 80h call sub_2AD8 and ax, 3Fh mov si, ax popf loc_2B03: or word_F80A, si pop di pop si pop bp retf sub_2AEA endp ; --------------------------------------------------------------------------- nop xchg dx, bx out dx, al xchg dx, bx in al, dx not al retn ; --------------------------------------------------------------------------- db 0 db 0C8h, 3 dup(0), 56h, 57h, 0C7h, 6, 56h, 8, 7, 0, 6Ah db 1Fh, 0Eh, 0E8h, 86h, 0F6h, 0Fh, 82h, 0F6h, 0, 8Bh, 0F0h db 0FFh, 76h, 0Ch, 0FFh, 76h, 0Ah, 0Eh, 0E8h, 80h, 0DAh db 0Bh, 0C0h, 0Fh, 84h, 0DDh, 0, 8Eh, 0C6h, 26h, 0A3h db 2 dup(0), 0A1h, 6, 1Dh, 8Eh, 0E0h, 33h, 0C0h, 8Bh, 0F8h db 64h, 8Ah, 5, 0BBh, 2, 0, 0Ah, 0C0h, 74h, 18h, 0BBh db 3, 0, 3, 0DFh, 0FFh, 76h, 8, 0FFh, 76h, 6, 0Fh, 0A0h db 53h, 0E8h, 0C8h, 0, 75h, 7, 83h, 0C7h, 20h, 0EBh, 0DEh db 8Bh, 0C3h, 8Eh, 0C6h, 64h, 8Bh, 45h, 14h, 64h, 8Bh db 55h, 16h, 26h, 0A3h, 0Eh, 0, 26h, 89h, 16h, 10h, 0 db 26h, 0FFh, 36h, 2 dup(0), 52h, 50h, 6Ah, 0, 0Eh, 0E8h db 0EDh, 0DAh, 0B8h, 52h, 19h, 64h, 8Ah, 55h, 2, 8Eh, 0C6h db 0Ah, 0D2h, 74h, 8, 26h, 88h, 16h, 1Eh, 0, 0B8h, 96h db 19h, 26h, 0A3h, 4, 0, 8Eh, 0C1h, 64h, 8Bh, 5, 8Eh, 0C6h db 3Dh, 88h, 0F3h, 74h, 0Ah, 3Dh, 2 dup(95h), 74h, 0Fh db 0B8h, 5, 0, 0EBh, 4Fh, 26h, 0A1h, 4, 0, 26h, 0A3h, 2 db 0, 0EBh, 15h, 26h, 0C7h, 6, 2, 0, 4, 19h, 26h, 0C7h db 6, 1Ah, 3 dup(0), 26h, 0C7h, 6, 1Ch, 0, 2 dup(0FFh) db 64h, 8Bh, 5Dh, 10h, 64h, 8Bh, 55h, 12h, 33h, 0C0h, 26h db 89h, 1Eh, 6, 0, 26h, 0A3h, 8, 0, 26h, 89h, 2 dup(16h) db 0, 26h, 0A3h, 18h, 0, 26h, 0A3h, 0Ah, 0, 26h, 0A3h db 0Ch, 0, 26h, 0A3h, 12h, 0, 26h, 0A3h, 14h, 0, 8Bh, 0C6h db 0EBh, 1Ah, 0A3h, 0B2h, 5, 26h, 0FFh, 36h, 2 dup(0) db 0Eh, 0E8h, 57h, 0D8h, 56h, 0Eh, 0E8h, 92h, 0F6h, 0EBh db 5, 0C6h, 6, 0B2h, 5, 3, 33h, 0C0h, 5Fh, 5Eh, 0C9h, 0CAh db 8, 0, 90h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2C30 proc near arg_0 = dword ptr 4 arg_4 = dword ptr 8 push bp mov bp, sp push si push ds cld les bx, [bp+arg_4] lds si, [bp+arg_0] loc_2C3C: mov ah, es:[bx] inc bx lodsb sub al, 61h ; 'a' cmp al, 19h ja short loc_2C49 sub al, 20h ; ' ' loc_2C49: sub ah, 61h ; 'a' cmp ah, 19h ja short loc_2C54 sub ah, 20h ; ' ' loc_2C54: cmp ah, al jnz short loc_2C5E add al, 61h ; 'a' jnz short loc_2C3C jmp short loc_2C60 ; --------------------------------------------------------------------------- loc_2C5E: xor ax, ax loc_2C60: test ax, ax pop ds pop si pop bp retn 8 sub_2C30 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_2C6E loc_2C68: pop di pop si pop bp retf 0Ah ; END OF FUNCTION CHUNK FOR sub_2C6E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_2C6E proc far arg_0 = word ptr 6 arg_2 = word ptr 8 arg_4 = word ptr 0Ah arg_6 = word ptr 0Ch arg_8 = word ptr 0Eh ; FUNCTION CHUNK AT 2C68 SIZE 00000006 BYTES push bp mov bp, sp push si push di mov ax, [bp+arg_6] mov cx, [bp+arg_0] sar cx, 3 jle short loc_2C68 mov si, [bp+arg_2] mov di, [bp+arg_8] sar di, 3 jns short loc_2C94 add cx, di jle short loc_2C68 shl di, 2 add si, di xor di, di loc_2C94: cmp di, 50h ; 'P' jge short loc_2C68 add cx, di cmp cx, 50h ; 'P' jl short loc_2CA3 mov cx, 50h ; 'P' loc_2CA3: sub cx, di imul ax, 50h add di, ax push ds mov es, ClipYT_seg mov ds, [bp+arg_4] mov bp, cx cld nop loc_2CB6: mov cl, 2 mov bl, [si] mov bh, 0 shl bx, cl mov ax, cs:[bx+1AAAh] mov dx, cs:[bx+1AACh] inc si shl ax, cl shl dx, cl mov bl, [si] mov bh, 0 shl bx, cl or ax, cs:[bx+1AAAh] or dx, cs:[bx+1AACh] inc si shl ax, cl shl dx, cl mov bl, [si] mov bh, 0 shl bx, cl or ax, cs:[bx+1AAAh] or dx, cs:[bx+1AACh] inc si shl ax, cl shl dx, cl mov bl, [si] mov bh, 0 shl bx, cl or ax, cs:[bx+1AAAh] or dx, cs:[bx+1AACh] inc si mov es:[di], al mov bx, es mov es:[di-8000h], ah add bh, 10h mov es, bx assume es:nothing mov es:[di], dl add bh, 28h ; '(' mov es, bx assume es:nothing mov es:[di], dh sub bh, 38h ; '8' mov es, bx assume es:nothing inc di dec bp jnz short loc_2CB6 pop ds pop di pop si pop bp retf 0Ah sub_2C6E endp include libs/BorlandC/__abort.asm include libs/BorlandC/stpcpy.asm include libs/BorlandC/abort.asm include libs/BorlandC/atexit.asm include libs/BorlandC/del.asm include libs/BorlandC/delarray.asm include libs/BorlandC/dosenv.asm include libs/BorlandC/dosgdriv.asm include libs/BorlandC/errormsg.asm include libs/BorlandC/exit.asm include libs/BorlandC/f_scopy.asm include libs/BorlandC/getvect.asm include libs/BorlandC/H_LDIV.ASM include libs/BorlandC/H_LLSH.ASM include libs/BorlandC/H_PADD.ASM include libs/BorlandC/__IOERROR.ASM include libs/BorlandC/_isatty.asm include libs/BorlandC/lseek.asm include libs/BorlandC/new.asm include libs/BorlandC/N_LXMUL.ASM include libs/BorlandC/N_PCMP.ASM include libs/BorlandC/setupio.asm include libs/BorlandC/tolower.asm include libs/BorlandC/toupper.asm include libs/BorlandC/xxas.asm include libs/BorlandC/xxv.asm include libs/BorlandC/cputype.asm include libs/BorlandC/FARHEAP.ASM include libs/BorlandC/fbrk.asm include libs/BorlandC/signal.asm include libs/BorlandC/access.asm include libs/BorlandC/pathops.asm include libs/BorlandC/chmoda.asm include libs/BorlandC/fflush.asm include libs/BorlandC/flushall.asm include libs/BorlandC/fseek.asm include libs/BorlandC/fullpath.asm include libs/BorlandC/getdcwd.asm include libs/BorlandC/getenv.asm include libs/BorlandC/memcmp.asm include libs/BorlandC/memcpy.asm include libs/BorlandC/memset.asm include libs/BorlandC/movmem.asm include libs/BorlandC/srchenv.asm include libs/BorlandC/srchstr.asm include libs/BorlandC/setvbuf.asm include libs/BorlandC/_strcat.asm include libs/BorlandC/_strcmp.asm include libs/BorlandC/_strcpy.asm include libs/BorlandC/_stricmp.asm include libs/BorlandC/_strlen.asm include libs/BorlandC/strrchr.asm include libs/BorlandC/write.asm include libs/BorlandC/writea.asm include libs/BorlandC/xfflush.asm include libs/BorlandC/xalloc.asm include libs/BorlandC/xmsg.asm include libs/BorlandC/xx.asm include libs/BorlandC/doscmd.asm include libs/BorlandC/exec.asm include libs/BorlandC/execl.asm include libs/BorlandC/setblock.asm include libs/BorlandC/setenvp.asm include libs/BorlandC/ctor2.asm include libs/BorlandC/ctor3.asm include libs/BorlandC/strings.asm include libs/BorlandC/mbjmsjis.asm include libs/BorlandC/loadprog.asm seg000 ends ; =========================================================================== ; Segment type: Pure code seg001 segment byte public 'CODE' use16 assume cs:seg001 ;org 3 assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_95F3 proc near var_8 = byte ptr -8 var_3 = word ptr -3 enter 8, 0 push si push ds push offset aYume_cfg ; "YUME.CFG" call file_ropen push ss lea ax, [bp+var_8] push ax push 8 call file_read call file_close mov si, [bp+var_3] mov word ptr dword_105DA+2, si mov word ptr dword_105DA, 0 mov ax, si pop si leave retn sub_95F3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9624 proc near var_2 = byte ptr -2 var_1 = byte ptr -1 enter 2, 0 push ds push offset aLogo0_rgb ; "logo0.rgb" call palette_entry_rgb call far ptr palette_show push 0 push ds push offset aLogo_cd2 ; "logo.cd2" call sub_D114 push 5 push ds push offset aLogo5_cdg ; "logo5.cdg" push 0 call sub_CF1E les bx, dword_105DA cmp byte ptr es:[bx+17h], 0 jnz short loc_965E mov al, byte_F7E3 jmp short loc_9661 ; --------------------------------------------------------------------------- loc_965E: mov al, byte_F7E4 loc_9661: mov [bp+var_1], al les bx, dword_105DA cmp byte ptr es:[bx+17h], 0 jnz short loc_969A cmp byte ptr es:[bx+33h], 6 jnz short loc_967C mov [bp+var_2], 9 jmp short loc_96B7 ; --------------------------------------------------------------------------- loc_967C: les bx, dword_105DA cmp byte ptr es:[bx+33h], 7 jnz short loc_968D mov [bp+var_2], 0Ah jmp short loc_96B7 ; --------------------------------------------------------------------------- loc_968D: les bx, dword_105DA cmp byte ptr es:[bx+17h], 0 jnz short loc_96AA jmp short loc_96A5 ; --------------------------------------------------------------------------- loc_969A: les bx, dword_105DA cmp byte ptr es:[bx+17h], 0 jnz short loc_96AA loc_96A5: mov al, byte_F7E4 jmp short loc_96AD ; --------------------------------------------------------------------------- loc_96AA: mov al, byte_F7E3 loc_96AD: mov ah, 0 cwd sub ax, dx sar ax, 1 mov [bp+var_2], al loc_96B7: push 6 push ds mov al, [bp+var_1] mov ah, 0 cwd sub ax, dx mov bx, ax sar bx, 1 add bx, bx push word ptr [bx+90h] mov al, [bp+var_1] mov ah, 0 and ax, 1 push ax call sub_CFA8 mov al, [bp+var_1] mov ah, 0 cwd sub ax, dx mov bx, ax sar bx, 1 shl bx, 2 push large dword ptr [bx+0A2h] call file_ropen mov al, [bp+var_2] mov ah, 0 imul ax, 0B4h cwde push eax push 0 call file_seek push ds push offset unk_F72C push 3Ch ; '<' call file_read mov byte_F768, 0 push ds push offset unk_F769 push 3Ch ; '<' call file_read mov byte_F7A5, 0 push ds push offset unk_F7A6 push 3Ch ; '<' call file_read mov byte_F7E2, 0 call file_close leave retn sub_9624 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_973E proc near push bp mov bp, sp push large 500110h push 2Fh ; '/' push ds push offset unk_F72C call sub_D197 push large 500120h push 2Fh ; '/' push ds push offset unk_F769 call sub_D197 push large 500130h push 2Fh ; '/' push ds push offset unk_F7A6 call sub_D197 pop bp retn sub_973E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9776 proc near push bp mov bp, sp push si xor si, si jmp short loc_9785 ; --------------------------------------------------------------------------- loc_977E: push si call sub_D130 inc si loc_9785: cmp si, 20h ; ' ' jl short loc_977E pop si pop bp retn sub_9776 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_978D proc near push bp mov bp, sp push si 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, 0A4h mov al, 0 out dx, al mov PaletteTone, 0 call far ptr palette_show call graph_show push large 160012Ch push 0 call far ptr loc_D712 push 0 call sub_CEC2 push 2 call palette_black_in push large 60010h call sub_D3FC mov si, 1 jmp short loc_97FC ; --------------------------------------------------------------------------- loc_97E8: push large 160012Ch push si call far ptr loc_D712 push 6 call sub_CB52 inc si loc_97FC: cmp si, 5 jl short loc_97E8 push large 0A0040h call sub_D3FC mov PaletteTone, 0C8h call far ptr palette_show push large 0E00040h push 6 call far ptr loc_D712 push large 160012Ch push 5 call far ptr loc_D712 push ds push offset aLogo1_rgb ; "logo1.rgb" call palette_entry_rgb call far ptr palette_show call sub_9776 push large 0B0004h call sub_D3FC push 1 call palette_white_in push 8 call sub_CB52 call sub_973E call sub_9887 or ax, ax jnz short loc_9868 call sub_990C loc_9868: call sub_D5A2 cmp word_100FC, 0 jnz short loc_987D push 1 call sub_CB52 jmp short loc_9868 ; --------------------------------------------------------------------------- loc_987D: push 1 call palette_black_out pop si pop bp retn sub_978D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9887 proc near var_2 = word ptr -2 enter 2, 0 les bx, dword_105DA cmp byte ptr es:[bx+28h], 1 jnz short loc_98A1 les bx, dword_105DA cmp byte ptr es:[bx+17h], 0 jz short loc_98A6 loc_98A1: mov ax, 1 leave retn ; --------------------------------------------------------------------------- loc_98A6: les bx, dword_105DA mov al, es:[bx+33h] mov ah, 0 add bx, ax mov al, es:[bx+29h] mov bx, word ptr dword_105DA mov es:[bx+0Dh], al cmp byte ptr es:[bx+33h], 7 jnz short loc_98CA mov ax, 3 leave retn ; --------------------------------------------------------------------------- loc_98CA: les bx, dword_105DA cmp byte ptr es:[bx+33h], 8 jnz short loc_98DA mov ax, 4 leave retn ; --------------------------------------------------------------------------- loc_98DA: les bx, dword_105DA cmp byte ptr es:[bx+33h], 9 jnz short loc_98EA mov ax, 5 leave retn ; --------------------------------------------------------------------------- loc_98EA: les bx, dword_105DA mov al, es:[bx+0Dh] mov ah, 0 dec ax cwd sub ax, dx sar ax, 1 mov [bp+var_2], ax cmp [bp+var_2], 7 jl short loc_9908 mov byte ptr es:[bx+0Dh], 1 loc_9908: xor ax, ax leave retn sub_9887 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_990C proc near var_1 = byte ptr -1 enter 2, 0 mov dx, 0A4h mov al, 0 out dx, al mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al mov al, byte_F7E3 mov [bp+var_1], al push 0 push ds mov ah, 0 cwd sub ax, dx mov bx, ax sar bx, 1 add bx, bx push word ptr [bx+90h] mov al, [bp+var_1] mov ah, 0 and ax, 1 push ax call sub_CF1E les bx, dword_105DA mov al, es:[bx+0Dh] add al, 0FFh mov [bp+var_1], al push 1 push ds mov ah, 0 cwd sub ax, dx mov bx, ax sar bx, 1 add bx, bx push word ptr [bx+90h] mov al, [bp+var_1] mov ah, 0 and ax, 1 push ax call sub_CF1E mov al, [bp+var_1] mov ah, 0 cwd sub ax, dx sar ax, 1 mov [bp+var_1], al mov byte_F7E5, 1 les bx, dword_105DA cmp byte ptr es:[bx+28h], 1 jz short loc_9997 mov bx, word_E504 mov al, [bx+4] add al, 4 jmp short loc_99CB ; --------------------------------------------------------------------------- loc_9997: cmp [bp+var_1], 7 jnz short loc_99A8 mov bx, word_E504 mov al, [bx+4] add al, 2 jmp short loc_99CB ; --------------------------------------------------------------------------- loc_99A8: cmp [bp+var_1], 8 jnz short loc_99B7 mov bx, word_E504 inc byte ptr [bx+4] jmp short loc_99F1 ; --------------------------------------------------------------------------- loc_99B7: les bx, dword_105DA cmp byte ptr es:[bx+33h], 6 jnz short loc_99D4 mov bx, word_E504 mov al, [bx+4] add al, 3 loc_99CB: mov bx, word_E504 mov [bx+4], al jmp short loc_99F1 ; --------------------------------------------------------------------------- loc_99D4: push 2 push ds push word_E502 les bx, dword_105DA mov al, es:[bx+33h] mov ah, 0 inc ax push ax call sub_CF1E mov byte_F7E5, 0 loc_99F1: push 0 push ds push offset aStnx0_pi ; "stnx0.pi" call sub_D4AB push large 0 push 0 call sub_CD2F push ds push offset unk_10316 push large [dword_102FE] call graph_pi_free push 0 push ds push word_E504 call sub_D4AB push large 0 push 0 call sub_CD2F leave retn sub_990C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9A2C proc near var_4 = word ptr -4 var_2 = word ptr -2 enter 4, 0 push si mov si, 3A3h mov [bp+var_2], 3AAh mov PaletteTone, 0 call far ptr palette_show push 0 call sub_CD0A push 0 call graph_copy_page push ds push offset unk_10316 push large [dword_102FE] call graph_pi_free push large 600060h push 0 call far ptr loc_C9D4 push large 1600060h push 1 call far ptr loc_CA88 cmp byte_F7E5, 0 jnz short loc_9A8E push large 180002Eh push 2 call far ptr loc_C9D4 loc_9A8E: push 0 call sub_D130 push 1 call sub_D130 push 2 call sub_D130 les bx, dword_105DA mov al, es:[bx+0Ch] mov ah, 0 dec ax cwd sub ax, dx sar ax, 1 add ax, ax mov [bp+var_4], ax push large 500124h push 2Fh ; '/' mov bx, [bp+var_4] shl bx, 2 push large CHAR_TITLE[bx] call sub_D197 push large 800134h push 2Fh ; '/' mov bx, [bp+var_4] shl bx, 2 push large CHAR_NAME[bx] call sub_D197 les bx, dword_105DA mov al, es:[bx+0Dh] mov ah, 0 dec ax cwd sub ax, dx sar ax, 1 add ax, ax mov [bp+var_4], ax push large 1500124h push 2Fh ; '/' mov bx, [bp+var_4] shl bx, 2 push large CHAR_TITLE[bx] call sub_D197 push large 1800134h push 2Fh ; '/' mov bx, [bp+var_4] shl bx, 2 push large CHAR_NAME[bx] call sub_D197 push 1 call palette_black_in mov vsync_Count1, 0 mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call graph_clear push 0 call sub_9D20 push 1 call sub_9D20 push 0 push ds push offset aEn2_pi ; "EN2.pi" call sub_D4AB push large 118h push 0 call sub_CDB7 push ds push offset unk_10316 push large [dword_102FE] call graph_pi_free les bx, dword_105DA mov al, es:[bx+0Dh] mov ah, 0 dec ax cwd sub ax, dx sar ax, 1 mov [bp+var_4], ax mov bx, [bp+var_4] cmp bx, 8 ja short loc_9BC2 add bx, bx jmp cs:off_9C9F[bx] loc_9B97: push 0 push ds push offset aEnemy00_pi ; "ENEMY00.pi" jmp short loc_9BBD ; --------------------------------------------------------------------------- loc_9B9F: push 0 push ds push offset aEnemy01_pi ; "ENEMY01.pi" jmp short loc_9BBD ; --------------------------------------------------------------------------- loc_9BA7: push 0 push ds push offset aEnemy02_pi ; "ENEMY02.pi" jmp short loc_9BBD ; --------------------------------------------------------------------------- loc_9BAF: push 0 push ds push offset aEnemy03_pi ; "ENEMY03.pi" jmp short loc_9BBD ; --------------------------------------------------------------------------- loc_9BB7: push 0 push ds push offset aEnemy04_pi ; "ENEMY04.pi" loc_9BBD: call sub_D4AB loc_9BC2: push large 130h push 0 call sub_CDB7 les bx, dword_105DA mov al, es:[bx+0Dh] mov ah, 0 dec ax cwd sub ax, dx sar ax, 1 mov [bp+var_4], ax cmp [bp+var_4], 0Ah jl short loc_9BFB mov bx, 0Ah cwd idiv bx add al, [si] mov [si], al mov ax, [bp+var_4] cwd idiv bx mov [bp+var_4], dx loc_9BFB: mov al, [si+1] add al, byte ptr [bp+var_4] mov [si+1], al push 100h call sub_CEC2 les bx, dword_105DA cmp byte ptr es:[bx+33h], 6 jz short loc_9C1E push 600h push ds push si jmp short loc_9C25 ; --------------------------------------------------------------------------- loc_9C1E: push 600h push ds push [bp+var_2] loc_9C25: call sub_C880 add sp, 6 push 0B00h push ds push offset aYume_efc ; "YUME.EFC" call sub_C880 add sp, 6 mov word_100FC, 0 loc_9C42: cmp vsync_Count1, 20h ; ' ' jbe short loc_9C42 jmp short loc_9C50 ; --------------------------------------------------------------------------- loc_9C4B: call sub_D5A2 loc_9C50: cmp vsync_Count1, 60h ja short loc_9C5E cmp word_100FC, 0 jz short loc_9C4B loc_9C5E: push 1 call palette_white_out mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al call graph_clear push 1 call palette_white_in push large 200005h call text_fillca push 0 call sub_CD0A push ds push offset unk_10316 push large [dword_102FE] call graph_pi_free call respal_set_palettes pop si leave retn sub_9A2C endp ; --------------------------------------------------------------------------- off_9C9F dw offset loc_9B97 dw offset loc_9B97 dw offset loc_9B9F dw offset loc_9BA7 dw offset loc_9B9F dw offset loc_9BA7 dw offset loc_9B97 dw offset loc_9BAF dw offset loc_9BB7 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9CB1 proc near arg_0 = dword ptr 4 arg_4 = word ptr 8 push bp mov bp, sp push si mov si, [bp+arg_4] push 0 push large [bp+arg_0] call sub_D4AB mov ax, si imul ax, 140h push ax push large 0C80000h call sub_CDB7 push ds push offset unk_10316 push large [dword_102FE] call graph_pi_free les bx, [bp+arg_0] mov byte ptr es:[bx+2], 65h ; 'e' mov byte ptr es:[bx+3], 78h ; 'x' push 0 push word ptr [bp+arg_0+2] push bx call sub_D4AB mov ax, si imul ax, 140h push ax push large 0D00000h call sub_CDB7 push ds push offset unk_10316 push large [dword_102FE] call graph_pi_free pop si pop bp retn 6 sub_9CB1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9D20 proc near var_E = byte ptr -0Eh var_D = byte ptr -0Dh var_2 = word ptr -2 arg_0 = word ptr 4 enter 0Eh, 0 push si push di mov di, [bp+arg_0] xor si, si jmp short loc_9D35 ; --------------------------------------------------------------------------- loc_9D2D: mov al, [si+116h] mov [bp+si+var_E], al inc si loc_9D35: cmp si, 0Ch jl short loc_9D2D les bx, dword_105DA add bx, di mov al, es:[bx+0Ch] mov ah, 0 dec ax mov [bp+var_2], ax cmp [bp+var_2], 0Ah jl short loc_9D65 mov bx, 0Ah cwd idiv bx add al, [bp+var_E] mov [bp+var_E], al mov ax, [bp+var_2] cwd idiv bx mov [bp+var_2], dx loc_9D65: mov al, [bp+var_D] add al, byte ptr [bp+var_2] mov [bp+var_D], al push di push ss lea ax, [bp+var_E] push ax call sub_9CB1 pop di pop si leave retn 2 sub_9D20 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl main(int argc, const char **argv, const char **envp) _main proc far var_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_95F3 or ax, ax jz locret_9F8B push ds push offset aCOul ; "夢時空1.dat" call sub_CEE0 call respal_exist mov byte_10061, 0 les bx, dword_105DA cmp byte ptr es:[bx+15h], 0 jz short loc_9DAD call sub_C80C loc_9DAD: call gaiji_backup push ds push offset aMikoft_bft ; "MIKOFT.bft" call gaiji_entry_bfnt push 0B00h push ds push offset aYume_efc ; "YUME.EFC" call sub_C880 add sp, 6 call sub_CE3E call sub_D784 les bx, dword_105DA cmp byte ptr es:[bx+35h], 0 jz short loc_9E04 call sub_B7D2 call text_clear call gaiji_restore call sub_C990 push large 0 push ds push offset path ; "op" push ds push offset path ; "op" call _execl add sp, 0Ch loc_9E04: les bx, dword_105DA mov al, es:[bx+0Ch] add al, 0FFh mov byte_F7E3, al mov al, es:[bx+0Dh] add al, 0FFh mov byte_F7E4, al cmp byte ptr es:[bx+33h], 0 jz loc_9F85 cmp byte ptr es:[bx+28h], 1 jnz short loc_9E3F call sub_9887 mov [bp+var_1], al cmp [bp+var_1], 4 jz short loc_9E89 cmp [bp+var_1], 5 jnz short loc_9E3F call sub_B972 loc_9E3F: push 600h push ds push offset aWin_m ; "win.m" call sub_C880 add sp, 6 call sub_9624 call sub_978D push 100h call sub_CEC2 les bx, dword_105DA cmp byte ptr es:[bx+28h], 1 jnz loc_9F58 call sub_9887 mov [bp+var_1], al cmp [bp+var_1], 0 jnz short loc_9E7B loc_9E75: call sub_9A2C jmp loc_9F1E ; --------------------------------------------------------------------------- loc_9E7B: cmp [bp+var_1], 3 jz short loc_9E89 cmp [bp+var_1], 4 jnz loc_9F38 loc_9E89: call sub_9776 push ds push offset unk_10316 push large [dword_102FE] call graph_pi_free mov al, byte_F7E3 mov ah, 0 cwd sub ax, dx sar ax, 1 mov [bp+var_2], al cmp [bp+var_2], 0Ah jb short loc_9EDC les bx, off_E4B6 mov al, es:[bx+1] mov dl, [bp+var_2] mov dh, 0 mov bx, 0Ah push ax mov ax, dx cwd idiv bx pop dx add dl, al mov bx, word ptr off_E4B6 mov es:[bx+1], dl mov al, [bp+var_2] mov ah, 0 mov bx, 0Ah cwd idiv bx mov [bp+var_2], dl loc_9EDC: les bx, off_E4B6 mov al, [bp+var_2] add es:[bx+2], al cmp [bp+var_1], 4 jnz short loc_9EF1 inc byte ptr es:[bx+5] loc_9EF1: mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al mov dx, 0A4h out dx, al call graph_clear call graph_show push large [off_E4B6] call sub_A12E call sub_AC6E call sub_A174 call sub_990C call sub_9A2C call gaiji_restore loc_9F1E: call sub_D16F push large 0 push ds push offset aMain ; "main" push ds push offset aMain ; "main" loc_9F2E: call _execl add sp, 0Ch leave retf ; --------------------------------------------------------------------------- loc_9F38: call sub_9776 push ds push offset unk_10316 push large [dword_102FE] call graph_pi_free call sub_B7D2 call sub_9F8D or ax, ax jnz short loc_9F85 call sub_B92E jmp short loc_9F69 ; --------------------------------------------------------------------------- loc_9F58: call sub_9776 push ds push offset unk_10316 push large [dword_102FE] call graph_pi_free loc_9F69: call text_clear call gaiji_restore call sub_C990 push large 0 push ds push offset path ; "op" push ds push offset path ; "op" jmp short loc_9F2E ; --------------------------------------------------------------------------- loc_9F85: call sub_990C jmp loc_9E75 ; --------------------------------------------------------------------------- locret_9F8B: leave retf _main endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_9F8D proc near var_6 = dword ptr -6 var_2 = word ptr -2 enter 6, 0 push si push di mov si, 1 mov [bp+var_2], 0 mov word ptr [bp+var_6+2], ds mov word ptr [bp+var_6], 8D8h xor di, di jmp short loc_9FB3 ; --------------------------------------------------------------------------- loc_9FA7: les bx, dword_105DA add bx, di mov byte ptr es:[bx+18h], 0 inc di loc_9FB3: cmp di, 10h jl short loc_9FA7 les bx, dword_105DA cmp byte ptr es:[bx+36h], 0 jnz short loc_9FC8 xor ax, ax jmp loc_A12A ; --------------------------------------------------------------------------- loc_9FC8: push large 0C00110h push 0 call far ptr loc_D712 push large 1600110h push 3 call far ptr loc_D712 les bx, dword_105DA mov al, es:[bx+36h] les bx, [bp+var_6] add al, es:[bx] mov es:[bx], al push large 2400173h push 2Fh ; '/' push word ptr [bp+var_6+2] push bx call sub_D197 push 1 call palette_black_in loc_A00B: call sub_D5A2 test byte ptr word_100FC, 4 jnz short loc_A01E test byte ptr word_100FC, 8 jz short loc_A056 loc_A01E: cmp [bp+var_2], 0 jnz short loc_A05B mov ax, 1 sub ax, si mov si, ax push large 0C00110h add ax, ax mov dx, 2 sub dx, ax push dx call far ptr loc_D712 push large 1600110h mov ax, si add ax, ax inc ax push ax call far ptr loc_D712 mov [bp+var_2], 1 jmp short loc_A05B ; --------------------------------------------------------------------------- loc_A056: mov [bp+var_2], 0 loc_A05B: test byte ptr word_100FC+1, 20h jnz short loc_A069 test byte ptr word_100FC, 20h jz short loc_A0B0 loc_A069: cmp si, 1 jnz short loc_A0C5 push large 0C00000h call grcg_setcolor push large 2400173h push large 2500183h call grcg_boxfill call grcg_off les bx, dword_105DA dec byte ptr es:[bx+36h] les bx, [bp+var_6] dec byte ptr es:[bx] push large 2400173h push 2Fh ; '/' push word ptr [bp+var_6+2] push bx call sub_D197 jmp short loc_A0C5 ; --------------------------------------------------------------------------- loc_A0B0: test byte ptr word_100FC+1, 10h jz short loc_A0BB xor si, si jmp short loc_A0C5 ; --------------------------------------------------------------------------- loc_A0BB: push 1 call sub_CB52 jmp loc_A00B ; --------------------------------------------------------------------------- loc_A0C5: push 203h call sub_CEC2 push 1 call palette_black_out mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al mov dx, 0A4h out dx, al mov PaletteTone, 0 call far ptr palette_show push 0 push ds push offset aOver_pi ; "over.pi" call sub_D4AB push 0 call sub_CD0A push large 0 push 0 call sub_CD2F push ds push offset unk_10316 push large [dword_102FE] call graph_pi_free push 100h call sub_CEC2 les bx, dword_105DA dec byte ptr es:[bx+33h] mov byte ptr es:[bx+34h], 2 mov ax, si loc_A12A: pop di pop si leave retn sub_9F8D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A12E proc near arg_0 = dword ptr 4 push bp mov bp, sp push si call sub_A174 push large [bp+arg_0] call file_ropen or ax, ax jnz short loc_A147 mov ax, 1 jmp short loc_A16F ; --------------------------------------------------------------------------- loc_A147: call file_size mov si, ax push ax call hmem_allocbyte mov word ptr dword_105C6+2, ax mov word ptr dword_105C6, 0 push ax push word ptr dword_105C6 push si call file_read call file_close xor ax, ax loc_A16F: pop si pop bp retn 4 sub_A12E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A174 proc near push bp mov bp, sp cmp dword_105C6, 0 jz short loc_A191 push word ptr dword_105C6+2 call hmem_free mov dword_105C6, 0 loc_A191: pop bp retn sub_A174 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A193 proc near push bp mov bp, sp call egc_on mov ax, 0FFF0h mov dx, 4A0h out dx, ax mov ax, 0FFh mov dx, 4A2h out dx, ax mov ax, 3100h mov dx, 4A4h out dx, ax mov ax, 0FFFFh mov dx, 4A8h out dx, ax mov ax, 0 mov dx, 4ACh out dx, ax mov ax, 0Fh mov dx, 4AEh out dx, ax pop bp retn sub_A193 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A1C7 proc near var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 enter 4, 0 push si push di mov ax, [bp+arg_2] sar ax, 3 mov dx, [bp+arg_0] shl dx, 6 add ax, dx mov dx, [bp+arg_0] shl dx, 4 add ax, dx mov si, ax call sub_A193 xor di, di jmp short loc_A225 ; --------------------------------------------------------------------------- loc_A1EC: mov [bp+var_2], 0 jmp short loc_A21B ; --------------------------------------------------------------------------- loc_A1F3: mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al les bx, dword_10050 add bx, si mov ax, es:[bx] mov [bp+var_4], ax mov al, 1 out dx, al mov bx, word ptr dword_10050 add bx, si mov ax, [bp+var_4] mov es:[bx], ax add [bp+var_2], 2 add si, 2 loc_A21B: cmp [bp+var_2], 28h ; '(' jl short loc_A1F3 inc di add si, 28h ; '(' loc_A225: cmp di, 0C8h jl short loc_A1EC call egc_off mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al pop di pop si leave retn 4 sub_A1C7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A23C proc near var_8 = dword ptr -8 var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 arg_6 = word ptr 0Ah enter 8, 0 push si push di mov eax, dword_102FE mov [bp+var_8], eax cmp [bp+arg_2], 1 jnz short loc_A257 add word ptr [bp+var_8], 0A0h jmp short loc_A26F ; --------------------------------------------------------------------------- loc_A257: cmp [bp+arg_2], 2 jnz short loc_A264 add word ptr [bp+var_8], 0FA00h jmp short loc_A26F ; --------------------------------------------------------------------------- loc_A264: cmp [bp+arg_2], 3 jnz short loc_A26F add word ptr [bp+var_8], 0FAA0h loc_A26F: mov eax, [bp+var_8] shr eax, 10h mov dx, word ptr [bp+var_8] shr dx, 4 add ax, dx mov dx, word ptr [bp+var_8] and dx, 0Fh mov word ptr [bp+var_8+2], ax mov word ptr [bp+var_8], dx mov dx, 0A4h mov al, 1 out dx, al mov ax, [bp+arg_6] sar ax, 3 mov dx, [bp+arg_4] shl dx, 6 add ax, dx mov dx, [bp+arg_4] shl dx, 4 add ax, dx mov si, ax mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al xor di, di jmp loc_A34E ; --------------------------------------------------------------------------- loc_A2B4: push large 190h push large [bp+var_8] push 140h call sub_2C6E call sub_A193 mov ax, 0FFh mov dx, 4A2h out dx, ax mov ax, 3100h mov dx, 4A4h out dx, ax mov ax, 0Fh mov dx, 4AEh out dx, ax mov bx, [bp+arg_0] shl bx, 3 mov ax, di and ax, 3 add ax, ax add bx, ax mov ax, [bx+8E2h] mov dx, 4A8h out dx, ax mov [bp+var_4], 7D00h mov [bp+var_2], 0 jmp short loc_A31E ; --------------------------------------------------------------------------- loc_A301: les bx, dword_10050 add bx, [bp+var_4] mov ax, es:[bx] mov bx, word ptr dword_10050 add bx, si mov es:[bx], ax inc [bp+var_2] add si, 2 add [bp+var_4], 2 loc_A31E: cmp [bp+var_2], 14h jl short loc_A301 call egc_off add si, 28h ; '(' add word ptr [bp+var_8], 140h mov eax, [bp+var_8] shr eax, 10h mov dx, word ptr [bp+var_8] shr dx, 4 add ax, dx mov dx, word ptr [bp+var_8] and dx, 0Fh mov word ptr [bp+var_8+2], ax mov word ptr [bp+var_8], dx inc di loc_A34E: cmp di, 0C8h jl loc_A2B4 mov dx, 0A4h mov al, 0 out dx, al push [bp+arg_6] push [bp+arg_4] call sub_A1C7 pop di pop si leave retn 8 sub_A23C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A36B proc near var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 enter 8, 0 push si push di call sub_A43C mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al push 3C00h call hmem_allocbyte mov word ptr dword_105CA+2, ax mov word ptr dword_105CA, 0 xor si, si mov di, 140h mov [bp+var_4], 0 jmp loc_A430 ; --------------------------------------------------------------------------- loc_A398: mov [bp+var_2], 50h ; 'P' mov [bp+var_6], 0 jmp loc_A424 ; --------------------------------------------------------------------------- loc_A3A5: mov ax, [bp+var_2] sar ax, 3 mov dx, di shl dx, 6 add ax, dx mov dx, di shl dx, 4 add ax, dx mov [bp+var_8], ax les bx, dword_10050 add bx, [bp+var_8] mov ax, es:[bx] mov dx, si add dx, dx les bx, dword_105CA add bx, dx mov es:[bx], ax inc si les bx, dword_10054 add bx, [bp+var_8] mov ax, es:[bx] mov dx, si add dx, dx les bx, dword_105CA add bx, dx mov es:[bx], ax inc si les bx, dword_10058 add bx, [bp+var_8] mov ax, es:[bx] mov dx, si add dx, dx les bx, dword_105CA add bx, dx mov es:[bx], ax inc si les bx, dword_1005C add bx, [bp+var_8] mov ax, es:[bx] mov dx, si add dx, dx les bx, dword_105CA add bx, dx mov es:[bx], ax inc si add [bp+var_6], 2 add [bp+var_2], 10h loc_A424: cmp [bp+var_6], 3Ch ; '<' jl loc_A3A5 inc [bp+var_4] inc di loc_A430: cmp [bp+var_4], 40h jl loc_A398 pop di pop si leave retn sub_A36B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A43C proc near push bp mov bp, sp cmp dword_105CA, 0 jz short loc_A459 push word ptr dword_105CA+2 call hmem_free mov dword_105CA, 0 loc_A459: pop bp retn sub_A43C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A45B proc near var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 enter 6, 0 push si push di xor cx, cx mov si, 140h mov [bp+var_4], 0 jmp loc_A4FE ; --------------------------------------------------------------------------- loc_A46E: mov [bp+var_2], 50h ; 'P' mov [bp+var_6], 0 jmp short loc_A4F4 ; --------------------------------------------------------------------------- loc_A47A: mov ax, [bp+var_2] sar ax, 3 mov dx, si shl dx, 6 add ax, dx mov dx, si shl dx, 4 add ax, dx mov di, ax mov ax, cx add ax, ax les bx, dword_105CA add bx, ax mov ax, es:[bx] les bx, dword_10050 add bx, di mov es:[bx], ax inc cx mov ax, cx add ax, ax les bx, dword_105CA add bx, ax mov ax, es:[bx] les bx, dword_10054 add bx, di mov es:[bx], ax inc cx mov ax, cx add ax, ax les bx, dword_105CA add bx, ax mov ax, es:[bx] les bx, dword_10058 add bx, di mov es:[bx], ax inc cx mov ax, cx add ax, ax les bx, dword_105CA add bx, ax mov ax, es:[bx] les bx, dword_1005C add bx, di mov es:[bx], ax inc cx add [bp+var_6], 2 add [bp+var_2], 10h loc_A4F4: cmp [bp+var_6], 3Ch ; '<' jl short loc_A47A inc [bp+var_4] inc si loc_A4FE: cmp [bp+var_4], 40h jl loc_A46E pop di pop si leave retn sub_A45B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A50A proc near var_2 = byte ptr -2 var_1 = byte ptr -1 arg_0 = dword ptr 4 enter 2, 0 les bx, dword_105C6 mov cl, es:[bx] inc word ptr dword_105C6 les bx, dword_105C6 mov al, es:[bx] mov [bp+var_1], al inc word ptr dword_105C6 les bx, dword_105C6 mov al, es:[bx] mov [bp+var_2], al inc word ptr dword_105C6 mov al, cl mov ah, 0 mov bx, ax test byte ptr [bx+0F05h], 2 jnz short loc_A554 les bx, [bp+arg_0] mov ax, word_105D8 mov es:[bx], ax sub word ptr dword_105C6, 3 leave retn 4 ; --------------------------------------------------------------------------- loc_A554: mov al, [bp+var_1] mov ah, 0 mov bx, ax test byte ptr [bx+0F05h], 2 jnz short loc_A578 mov al, cl mov ah, 0 add ax, 0FFD0h les bx, [bp+arg_0] mov es:[bx], ax sub word ptr dword_105C6, 2 leave retn 4 ; --------------------------------------------------------------------------- loc_A578: mov al, [bp+var_2] mov ah, 0 mov bx, ax test byte ptr [bx+0F05h], 2 jnz short loc_A5A8 mov al, cl mov ah, 0 add ax, 0FFD0h imul ax, 0Ah mov dl, [bp+var_1] mov dh, 0 add ax, dx add ax, 0FFD0h les bx, [bp+arg_0] mov es:[bx], ax dec word ptr dword_105C6 leave retn 4 ; --------------------------------------------------------------------------- loc_A5A8: mov al, cl mov ah, 0 add ax, 0FFD0h imul ax, 64h mov dl, [bp+var_1] mov dh, 0 add dx, 0FFD0h imul dx, 0Ah add ax, dx mov dl, [bp+var_2] mov dh, 0 add ax, dx add ax, 0FFD0h les bx, [bp+arg_0] mov es:[bx], ax leave retn 4 sub_A50A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A5D3 proc near arg_0 = dword ptr 4 push bp mov bp, sp les bx, dword_105C6 cmp byte ptr es:[bx], 2Ch ; ',' jnz short loc_A5EF inc word ptr dword_105C6 push large [bp+arg_0] call sub_A50A pop bp retn 4 ; --------------------------------------------------------------------------- loc_A5EF: les bx, [bp+arg_0] mov ax, word_105D8 mov es:[bx], ax pop bp retn 4 sub_A5D3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A5FC proc near push bp mov bp, sp add word_105D0, 10h cmp word_105D0, 230h jl short loc_A64B add word_105D2, 10h mov word_105D0, 90h cmp word_105D2, 180h jl short loc_A64B cmp byte_105CE, 0 jnz short loc_A62D push 0 call sub_D6C5 loc_A62D: mov word_105D0, 50h ; 'P' mov word_105D2, 140h mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call sub_A45B mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al call sub_A45B loc_A64B: pop bp retn sub_A5FC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_A64D proc near var_16 = byte ptr -16h var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = byte ptr 4 enter 16h, 0 push si mov al, [bp+arg_0] mov ah, 0 push ax ; ch call _tolower pop cx mov [bp+arg_0], al mov ah, 0 mov [bp+var_6], ax mov cx, 10h ; switch 16 cases mov bx, offset word_AC2E loc_A66C: mov ax, cs:[bx] cmp ax, [bp+var_6] jz short loc_A67C add bx, 2 loop loc_A66C jmp loc_AC1E ; default ; --------------------------------------------------------------------------- loc_A67C: jmp word ptr cs:[bx+20h] ; switch jump loc_A680: add word_105D2, 10h ; jumptable 0000A67C case 110 mov word_105D0, 50h ; 'P' cmp word_105D2, 180h jl loc_AC1E ; default loc_A695: les bx, dword_105C6 ; jumptable 0000A67C case 115 mov al, es:[bx] mov [bp+arg_0], al cmp [bp+arg_0], 2Dh ; '-' jz short loc_A6C4 mov word_105D8, 0 push ss lea ax, [bp+var_2] push ax call sub_A50A cmp byte_105CE, 0 jnz short loc_A6C8 push [bp+var_2] call sub_D6C5 jmp short loc_A6C8 ; --------------------------------------------------------------------------- loc_A6C4: inc word ptr dword_105C6 loc_A6C8: mov word_105D0, 50h ; 'P' mov word_105D2, 140h mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al call sub_A45B mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al call sub_A45B jmp loc_AC1E ; default ; --------------------------------------------------------------------------- loc_A6E9: mov word_105D8, 0Fh ; jumptable 0000A67C case 99 push ss lea ax, [bp+var_2] push ax call sub_A50A mov al, byte ptr [bp+var_2] mov byte_105D6, al jmp loc_AC1E ; default ; --------------------------------------------------------------------------- loc_A700: mov word_105D8, 2 ; jumptable 0000A67C case 98 push ss lea ax, [bp+var_2] push ax call sub_A50A mov bx, [bp+var_2] cmp bx, 3 ja loc_AC1E ; default add bx, bx jmp cs:off_AC26[bx] loc_A71F: mov byte_105D7, 0 jmp loc_AC1E ; default ; --------------------------------------------------------------------------- loc_A727: mov byte_105D7, 10h jmp loc_AC1E ; default ; --------------------------------------------------------------------------- loc_A72F: mov byte_105D7, 20h ; ' ' jmp loc_AC1E ; default ; --------------------------------------------------------------------------- loc_A737: mov byte_105D7, 30h ; '0' jmp loc_AC1E ; default ; --------------------------------------------------------------------------- loc_A73F: les bx, dword_105C6 ; jumptable 0000A67C case 119 mov al, es:[bx] mov ah, 0 push ax ; ch call _tolower pop cx mov [bp+arg_0], al cmp [bp+arg_0], 6Fh ; 'o' jz short loc_A75E cmp [bp+arg_0], 69h ; 'i' jnz short loc_A78C loc_A75E: inc word ptr dword_105C6 mov word_105D8, 1 push ss lea ax, [bp+var_2] push ax call sub_A50A cmp [bp+arg_0], 69h ; 'i' jnz short loc_A781 push [bp+var_2] call palette_white_in jmp loc_AB90 ; --------------------------------------------------------------------------- loc_A781: push [bp+var_2] call palette_white_out jmp loc_AB90 ; --------------------------------------------------------------------------- loc_A78C: mov word_105D8, 40h cmp [bp+arg_0], 6Dh ; 'm' jz short loc_A7CF cmp [bp+arg_0], 6Bh ; 'k' jnz short loc_A7A2 inc word ptr dword_105C6 loc_A7A2: push ss lea ax, [bp+var_2] push ax call sub_A50A cmp byte_105CE, 0 jnz loc_AC1E ; default cmp [bp+arg_0], 6Bh ; 'k' jz short loc_A7C4 push [bp+var_2] call sub_CB52 jmp loc_AB90 ; --------------------------------------------------------------------------- loc_A7C4: push [bp+var_2] call sub_D47A jmp loc_AB90 ; --------------------------------------------------------------------------- loc_A7CF: inc word ptr dword_105C6 les bx, dword_105C6 mov al, es:[bx] mov [bp+arg_0], al cmp [bp+arg_0], 6Bh ; 'k' jnz short loc_A7E7 inc word ptr dword_105C6 loc_A7E7: push ss lea ax, [bp+var_2] push ax call sub_A50A push ss lea ax, [bp+var_4] push ax call sub_A5D3 cmp byte_105CE, 0 jnz loc_AC1E ; default cmp [bp+arg_0], 6Bh ; 'k' jz short loc_A814 push [bp+var_2] push [bp+var_4] call sub_D3FC jmp loc_AB63 ; --------------------------------------------------------------------------- loc_A814: push [bp+var_2] push [bp+var_4] call sub_D42D jmp loc_AB63 ; --------------------------------------------------------------------------- loc_A822: les bx, dword_105C6 ; jumptable 0000A67C case 118 cmp byte ptr es:[bx], 70h ; 'p' jz short loc_A843 mov word_105D8, 1 push ss lea ax, [bp+var_2] push ax call sub_A50A mov ax, [bp+var_2] mov word_105D4, ax jmp loc_AC1E ; default ; --------------------------------------------------------------------------- loc_A843: inc word ptr dword_105C6 mov word_105D8, 0 push ss lea ax, [bp+var_2] push ax call sub_A50A mov dx, 0A4h mov al, byte ptr [bp+var_2] out dx, al jmp loc_AC1E ; default ; --------------------------------------------------------------------------- loc_A85F: mov word_105D8, 64h ; 'd' ; jumptable 0000A67C case 116 push ss lea ax, [bp+var_2] push ax call sub_A50A cmp byte_105CE, 0 jnz short loc_A87B push 1 call sub_CB52 loc_A87B: mov ax, [bp+var_2] mov PaletteTone, ax call far ptr palette_show jmp loc_AC1E ; default ; --------------------------------------------------------------------------- loc_A889: les bx, dword_105C6 ; jumptable 0000A67C case 102 mov al, es:[bx] mov [bp+arg_0], al cmp [bp+arg_0], 6Dh ; 'm' jz short loc_A8D5 cmp [bp+arg_0], 69h ; 'i' jz short loc_A8A7 cmp [bp+arg_0], 6Fh ; 'o' jnz loc_AC1E ; default loc_A8A7: inc word ptr dword_105C6 mov word_105D8, 1 push ss lea ax, [bp+var_2] push ax call sub_A50A cmp [bp+arg_0], 69h ; 'i' jnz short loc_A8CA push [bp+var_2] call palette_black_in jmp loc_AB90 ; --------------------------------------------------------------------------- loc_A8CA: push [bp+var_2] call palette_black_out jmp loc_AB90 ; --------------------------------------------------------------------------- loc_A8D5: inc word ptr dword_105C6 mov word_105D8, 1 push ss lea ax, [bp+var_2] push ax call sub_A50A mov ax, [bp+var_2] add ax, 200h push ax jmp loc_AB8B ; --------------------------------------------------------------------------- loc_A8F1: les bx, dword_105C6 ; jumptable 0000A67C case 103 cmp byte ptr es:[bx], 61h ; 'a' jz short loc_A945 mov word_105D8, 8 push ss lea ax, [bp+var_2] push ax call sub_A50A mov [bp+var_4], 0 jmp short loc_A933 ; --------------------------------------------------------------------------- loc_A910: test byte ptr [bp+var_4], 1 jz short loc_A91A push 4 jmp short loc_A91D ; --------------------------------------------------------------------------- loc_A91A: push 18Ch loc_A91D: call graph_scrollup cmp byte_105CE, 0 jnz short loc_A930 push 1 call sub_CB52 loc_A930: inc [bp+var_4] loc_A933: mov ax, [bp+var_4] cmp ax, [bp+var_2] jle short loc_A910 push 0 call graph_scrollup jmp loc_AB90 ; --------------------------------------------------------------------------- loc_A945: inc word ptr dword_105C6 mov word_105D8, 0 push ss lea ax, [bp+var_2] push ax call sub_A50A mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al push word_105D0 push word_105D2 mov ax, [bp+var_2] dec ax push ax mov al, byte_105D6 mov ah, 0 push ax call graph_gaiji_putc mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al push word_105D0 push word_105D2 push [bp+var_2] mov al, byte_105D6 mov ah, 0 push ax call graph_gaiji_putc call sub_A5FC jmp loc_AC1E ; default ; --------------------------------------------------------------------------- loc_A997: mov word_105D8, 0 ; jumptable 0000A67C case 107 push ss lea ax, [bp+var_2] push ax call sub_A50A cmp byte_105CE, 0 jnz loc_AC1E ; default push 0 call sub_D6C5 jmp loc_AB90 ; --------------------------------------------------------------------------- loc_A9B8: mov dx, 0A6h ; 'ヲ' ; jumptable 0000A67C case 64 mov al, 1 out dx, al call graph_clear mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al call graph_clear jmp loc_AC1E ; default ; --------------------------------------------------------------------------- loc_A9D1: les bx, dword_105C6 ; jumptable 0000A67C case 112 mov al, es:[bx] mov [bp+arg_0], al inc word ptr dword_105C6 cmp [bp+arg_0], 3Dh ; '=' jz short loc_A9EB cmp [bp+arg_0], 40h jnz short loc_AA1B loc_A9EB: mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al cmp [bp+arg_0], 3Dh ; '=' jnz short loc_A9FE push 0 call sub_CD0A loc_A9FE: push large 0 push 0 call sub_CD2F push 0 call graph_copy_page mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al call sub_A36B jmp loc_AC1E ; default ; --------------------------------------------------------------------------- loc_AA1B: cmp [bp+arg_0], 2Dh ; '-' jnz short loc_AA32 push ds push offset unk_10316 push large [dword_102FE] call graph_pi_free jmp loc_AC1E ; default ; --------------------------------------------------------------------------- loc_AA32: cmp [bp+arg_0], 70h ; 'p' jnz short loc_AA42 push 0 call sub_CD0A jmp loc_AB90 ; --------------------------------------------------------------------------- loc_AA42: cmp [bp+arg_0], 2Ch ; ',' jz short loc_AA4F dec word ptr dword_105C6 jmp loc_AC1E ; default ; --------------------------------------------------------------------------- loc_AA4F: mov [bp+var_2], 0 jmp short loc_AA84 ; --------------------------------------------------------------------------- loc_AA56: les bx, dword_105C6 mov al, es:[bx] mov [bp+arg_0], al inc word ptr dword_105C6 mov ah, 0 mov bx, ax test byte ptr [bx+0F05h], 20h jnz short loc_AA8A cmp [bp+arg_0], 20h ; ' ' jz short loc_AA8A lea bx, [bp+var_16] add bx, [bp+var_2] mov al, [bp+arg_0] mov ss:[bx], al inc [bp+var_2] loc_AA84: cmp [bp+var_2], 0Ch jl short loc_AA56 loc_AA8A: lea bx, [bp+var_16] add bx, [bp+var_2] mov byte ptr ss:[bx], 0 push 0 push ss lea ax, [bp+var_16] push ax call sub_D4AB jmp loc_AC1E ; default ; --------------------------------------------------------------------------- loc_AAA3: mov word_105D8, 4 ; jumptable 0000A67C case 61 les bx, dword_105C6 mov al, es:[bx] mov [bp+arg_0], al cmp [bp+arg_0], 3Dh ; '=' jz short loc_AAF8 push ss lea ax, [bp+var_2] push ax call sub_A50A mov dx, 0A4h mov al, 1 out dx, al mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al cmp [bp+var_2], 4 jge short loc_AAD5 jmp short loc_AB44 ; --------------------------------------------------------------------------- loc_AAD5: push large 0C00000h call grcg_setcolor push large 140040h push large 3B0107h call grcg_byteboxfill_x call grcg_off jmp short loc_AB54 ; --------------------------------------------------------------------------- loc_AAF8: inc word ptr dword_105C6 push ss lea ax, [bp+var_2] push ax call sub_A50A mov word_105D8, 1 push ss lea ax, [bp+var_4] push ax call sub_A5D3 xor si, si jmp short loc_AB33 ; --------------------------------------------------------------------------- loc_AB16: push large 0A00040h push [bp+var_2] push si call sub_A23C cmp byte_105CE, 0 jnz short loc_AB32 push [bp+var_4] call sub_CB52 loc_AB32: inc si loc_AB33: cmp si, 4 jl short loc_AB16 mov dx, 0A4h mov al, 1 out dx, al mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al loc_AB44: push large 0A00040h push 0 push [bp+var_2] call sub_D4F1 loc_AB54: mov dx, 0A4h mov al, 0 out dx, al push large 0A00040h call sub_A1C7 loc_AB63: jmp loc_AC1E ; default ; --------------------------------------------------------------------------- loc_AB66: les bx, dword_105C6 ; jumptable 0000A67C case 109 mov al, es:[bx] mov [bp+arg_0], al cmp [bp+arg_0], 24h ; '$' jnz short loc_AB7F inc word ptr dword_105C6 push 100h jmp short loc_AB8B ; --------------------------------------------------------------------------- loc_AB7F: cmp [bp+arg_0], 2Ah ; '*' jnz short loc_AB93 inc word ptr dword_105C6 loc_AB89: push 0 loc_AB8B: call sub_CEC2 loc_AB90: jmp loc_AC1E ; default ; --------------------------------------------------------------------------- loc_AB93: cmp [bp+arg_0], 2Ch ; ',' jnz loc_AC1E ; default inc word ptr dword_105C6 mov [bp+var_2], 0 jmp short loc_ABD4 ; --------------------------------------------------------------------------- loc_ABA6: les bx, dword_105C6 mov al, es:[bx] mov [bp+arg_0], al inc word ptr dword_105C6 mov ah, 0 mov bx, ax test byte ptr [bx+0F05h], 20h jnz short loc_ABDA cmp [bp+arg_0], 20h ; ' ' jz short loc_ABDA lea bx, [bp+var_16] add bx, [bp+var_2] mov al, [bp+arg_0] mov ss:[bx], al inc [bp+var_2] loc_ABD4: cmp [bp+var_2], 0Ch jl short loc_ABA6 loc_ABDA: lea bx, [bp+var_16] add bx, [bp+var_2] mov byte ptr ss:[bx], 0 push 100h call sub_CEC2 push 600h push ss lea ax, [bp+var_16] push ax call sub_C880 add sp, 6 jmp short loc_AB89 ; --------------------------------------------------------------------------- loc_ABFE: push ss ; jumptable 0000A67C case 101 lea ax, [bp+var_2] push ax call sub_A50A call sub_CE3E push [bp+var_2] call sub_CE4A call sub_CE86 jmp short loc_AC1E ; default ; --------------------------------------------------------------------------- loc_AC1A: mov al, 0FFh ; jumptable 0000A67C case 36 jmp short loc_AC20 ; --------------------------------------------------------------------------- loc_AC1E: mov al, 0 ; default loc_AC20: pop si leave retn 2 sub_A64D endp ; --------------------------------------------------------------------------- db 0 off_AC26 dw offset loc_A71F dw offset loc_A727 dw offset loc_A72F dw offset loc_A737 word_AC2E dw 24h, 3Dh, 40h, 62h dw 63h, 65h, 66h, 67h ; value table for switch statement dw 6Bh, 6Dh, 6Eh, 70h dw 73h, 74h, 76h, 77h dw offset loc_AC1A ; jump table for switch statement dw offset loc_AAA3 dw offset loc_A9B8 dw offset loc_A700 dw offset loc_A6E9 dw offset loc_ABFE dw offset loc_A889 dw offset loc_A8F1 dw offset loc_A997 dw offset loc_AB66 dw offset loc_A680 dw offset loc_A9D1 dw offset loc_A695 dw offset loc_A85F dw offset loc_A822 dw offset loc_A73F ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_AC6E proc near var_6 = dword ptr -6 var_2 = byte ptr -2 var_1 = byte ptr -1 enter 6, 0 push si mov word ptr [bp+var_6+2], ds mov word ptr [bp+var_6], 902h mov word_105D0, 50h ; 'P' mov word_105D2, 140h mov word_105D4, 1 mov byte_105D6, 0Fh mov byte_105D7, 20h ; ' ' mov [bp+var_2], 0 call sub_A36B mov byte_105CE, 0 loc_ACA3: call sub_D5A2 test byte ptr word_100FC+1, 10h jz short loc_ACB6 mov byte_105CE, 1 jmp short loc_ACBB ; --------------------------------------------------------------------------- loc_ACB6: mov byte_105CE, 0 loc_ACBB: les bx, dword_105C6 mov al, es:[bx] mov [bp+var_1], al inc word ptr dword_105C6 mov ah, 0 mov bx, ax test byte ptr [bx+0F05h], 20h jnz short loc_ACA3 cmp [bp+var_1], 20h ; ' ' jz short loc_ACA3 cmp [bp+var_1], 5Ch jnz short loc_ACFB les bx, dword_105C6 mov al, es:[bx] mov [bp+var_1], al inc word ptr dword_105C6 push word ptr [bp+var_1] call sub_A64D cmp al, 0FFh jnz short loc_ACA3 jmp loc_ADA0 ; --------------------------------------------------------------------------- loc_ACFB: les bx, [bp+var_6] mov al, [bp+var_1] mov es:[bx], al les bx, dword_105C6 mov al, es:[bx] mov [bp+var_1], al les bx, [bp+var_6] mov es:[bx+1], al inc word ptr dword_105C6 mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al push word_105D0 push word_105D2 mov al, byte_105D6 or al, byte_105D7 mov ah, 0 push ax push word ptr [bp+var_6+2] push bx call sub_D197 mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al push word_105D0 push word_105D2 mov al, byte_105D6 or al, byte_105D7 mov ah, 0 push ax push large [bp+var_6] call sub_D197 call sub_A5FC cmp byte_105CE, 0 jnz loc_ACA3 cmp word_100FC, 0 jnz short loc_AD7A push word_105D4 call sub_CB52 jmp loc_ACA3 ; --------------------------------------------------------------------------- loc_AD7A: mov ax, word_105D4 mov bx, 3 cwd idiv bx mov si, ax test [bp+var_2], 1 jnz short loc_AD8F or si, si jz short loc_AD9A loc_AD8F: or si, si jnz short loc_AD94 inc si loc_AD94: push si call sub_CB52 loc_AD9A: inc [bp+var_2] jmp loc_ACA3 ; --------------------------------------------------------------------------- loc_ADA0: call sub_A45B call sub_A43C pop si leave retn sub_AC6E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_ADA9 proc near var_1 = byte ptr -1 enter 2, 0 push si mov si, 21EEh xor dx, dx jmp short loc_ADD1 ; --------------------------------------------------------------------------- loc_ADB5: mov al, [si+1] mov [bp+var_1], al mov al, byte_106AB ror [bp+var_1], 3 xor [bp+var_1], al mov al, byte_106AA add al, [bp+var_1] add al, [si] mov [si], al inc dx inc si loc_ADD1: cmp dx, 0CBh jl short loc_ADB5 mov al, byte_106AA add al, byte_106AB add al, [si] mov [si], al pop si leave retn sub_ADA9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_ADE5 proc near var_1 = byte ptr -1 enter 2, 0 push si push di mov [bp+var_1], 29h ; ')' xor si, si jmp short loc_AE26 ; --------------------------------------------------------------------------- loc_ADF3: xor di, di jmp short loc_AE02 ; --------------------------------------------------------------------------- loc_ADF7: mov bx, si shl bx, 3 mov byte ptr [bx+di+21F0h], 2Ah ; '*' inc di loc_AE02: cmp di, 8 jl short loc_ADF7 xor di, di jmp short loc_AE16 ; --------------------------------------------------------------------------- loc_AE0B: mov bx, si imul bx, 0Ah mov byte ptr [bx+di+2242h], 20h ; ' ' inc di loc_AE16: cmp di, 0Ah jl short loc_AE0B mov byte ptr [si+22A6h], 0 mov byte ptr [si+22B0h], 21h ; '!' inc si loc_AE26: cmp si, 0Ah jl short loc_ADF3 mov byte_10636, 21h ; '!' mov di, 1 jmp short loc_AE45 ; --------------------------------------------------------------------------- loc_AE35: mov bx, di imul bx, 0Ah mov al, [bp+var_1] mov [bx+2245h], al inc di dec [bp+var_1] loc_AE45: cmp di, 0Ah jl short loc_AE35 mov byte_10630, 12h xor si, si jmp short loc_AE5B ; --------------------------------------------------------------------------- loc_AE53: push si call sub_AEF0 call sub_ADA9 inc si loc_AE5B: cmp si, 4 jl short loc_AE53 pop di pop si leave retn sub_ADE5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_AE64 proc near push bp mov bp, sp push si xor cx, cx mov si, 21F0h xor dx, dx jmp short loc_AE79 ; --------------------------------------------------------------------------- loc_AE71: mov al, [si] mov ah, 0 add cx, ax inc dx inc si loc_AE79: cmp dx, 0CCh jl short loc_AE71 cmp word_105DE, cx jz short loc_AE89 mov al, 1 jmp short loc_AE8B ; --------------------------------------------------------------------------- loc_AE89: mov al, 0 loc_AE8B: pop si pop bp retn sub_AE64 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_AE8E proc near arg_0 = word ptr 4 push bp mov bp, sp push ds push word_ED66 call file_exist or ax, ax jnz short loc_AEB0 push ds push word_ED66 call file_create call file_close jmp short loc_AEE9 ; --------------------------------------------------------------------------- loc_AEB0: push ds push word_ED66 call file_ropen mov ax, [bp+arg_0] imul ax, 0CEh movzx eax, ax push eax push 0 call file_seek push ds push offset word_105DE push 0CEh call file_read call file_close call sub_ADA9 call sub_AE64 or al, al jz short loc_AEEC loc_AEE9: call sub_ADE5 loc_AEEC: pop bp retn 2 sub_AE8E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_AEF0 proc near var_4 = word ptr -4 var_1 = byte ptr -1 arg_0 = word ptr 4 enter 4, 0 push si push di mov [bp+var_4], 0 call IRand mov byte_106AA, al call IRand mov byte_106AB, al call IRand mov byte_10631, al les bx, dword_105DA cmp byte ptr es:[bx+33h], 63h ; 'c' jnz short loc_AF2A cmp byte ptr es:[bx+36h], 3 jnz short loc_AF2A mov byte_10630, 63h ; 'c' loc_AF2A: mov si, 21F0h xor di, di jmp short loc_AF3A ; --------------------------------------------------------------------------- loc_AF31: mov al, [si] mov ah, 0 add [bp+var_4], ax inc di inc si loc_AF3A: cmp di, 0CCh jl short loc_AF31 mov ax, [bp+var_4] mov word_105DE, ax mov si, 22BAh dec si mov al, byte_106AB mov [bp+var_1], al mov di, 0CBh jmp short loc_AF73 ; --------------------------------------------------------------------------- loc_AF55: mov al, [si] mov dl, byte_106AA add dl, [bp+var_1] sub al, dl mov [si], al mov al, [si] mov [bp+var_1], al mov al, byte_106AB ror [bp+var_1], 3 xor [bp+var_1], al dec di dec si loc_AF73: or di, di jge short loc_AF55 push ds push word_ED66 call file_append mov ax, [bp+arg_0] imul ax, 0CEh movzx eax, ax push eax push 0 call file_seek push ds push offset word_105DE push 0CEh call file_write call file_close pop di pop si leave retn 2 sub_AEF0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_AFAC proc near push bp mov bp, sp mov PaletteTone, 0 call far ptr palette_show mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al mov dx, 0A4h out dx, al push 0 push ds push offset aRegib_pi ; "regib.pi" call sub_D4AB push 0 call sub_CD0A push large 0 push 0 call sub_CD2F push ds push offset unk_10316 push large [dword_102FE] call graph_pi_free les bx, dword_105DA mov al, es:[bx+0Bh] mov bx, word_ED68 add [bx+3], al push 0 push ds push bx push 0 call sub_CF1E push large 1400138h push 0 call far ptr loc_C9D4 push 0 call sub_D130 push ds push offset aRegi2_bft ; "regi2.bft" call super_entry_bfnt push ds push offset aRegi1_bft ; "regi1.bft" call super_entry_bfnt push 1 call graph_copy_page mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al pop bp retn sub_AFAC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B03D proc near push bp mov bp, sp push si push di xor si, si jmp short loc_B091 ; --------------------------------------------------------------------------- loc_B046: mov cx, 7 jmp short loc_B08C ; --------------------------------------------------------------------------- loc_B04B: les bx, dword_105DA add bx, cx mov al, es:[bx+18h] mov ah, 0 add ax, 20h ; ' ' mov bx, si imul bx, 0Ah add bx, cx mov dl, [bx+2243h] mov dh, 0 cmp ax, dx jg short loc_B0A1 les bx, dword_105DA add bx, cx mov al, es:[bx+18h] mov ah, 0 add ax, 20h ; ' ' mov bx, si imul bx, 0Ah add bx, cx mov dl, [bx+2243h] mov dh, 0 cmp ax, dx jl short loc_B090 dec cx loc_B08C: or cx, cx jge short loc_B04B loc_B090: inc si loc_B091: cmp si, 0Ah jl short loc_B046 cmp si, 0Ah jnz short loc_B0A1 mov ax, 0FFFFh jmp loc_B183 ; --------------------------------------------------------------------------- loc_B0A1: cmp si, 9 jge short loc_B100 mov di, 8 jmp short loc_B0FC ; --------------------------------------------------------------------------- loc_B0AB: xor cx, cx jmp short loc_B0C6 ; --------------------------------------------------------------------------- loc_B0AF: mov bx, di shl bx, 3 add bx, cx mov al, [bx+21F0h] mov bx, di shl bx, 3 add bx, cx mov [bx+21F8h], al inc cx loc_B0C6: cmp cx, 8 jl short loc_B0AF xor cx, cx jmp short loc_B0E6 ; --------------------------------------------------------------------------- loc_B0CF: mov bx, di imul bx, 0Ah add bx, cx mov al, [bx+2242h] mov bx, di imul bx, 0Ah add bx, cx mov [bx+224Ch], al inc cx loc_B0E6: cmp cx, 0Ah jl short loc_B0CF mov al, [di+22B0h] mov [di+22B1h], al mov al, [di+22A6h] mov [di+22A7h], al dec di loc_B0FC: cmp di, si jge short loc_B0AB loc_B100: xor cx, cx jmp short loc_B111 ; --------------------------------------------------------------------------- loc_B104: mov bx, si shl bx, 3 add bx, cx mov byte ptr [bx+21F0h], 0Eh inc cx loc_B111: cmp cx, 8 jl short loc_B104 mov cx, 1 jmp short loc_B133 ; --------------------------------------------------------------------------- loc_B11B: les bx, dword_105DA add bx, cx mov al, es:[bx+17h] add al, 20h ; ' ' mov bx, si imul bx, 0Ah add bx, cx mov [bx+2242h], al inc cx loc_B133: cmp cx, 9 jl short loc_B11B les bx, dword_105DA mov al, 23h ; '#' sub al, es:[bx+36h] mov bx, si imul bx, 0Ah mov [bx+2242h], al mov bx, word ptr dword_105DA cmp byte ptr es:[bx+33h], 63h ; 'c' jnz short loc_B15D mov byte ptr [si+22B0h], 30h ; '0' jmp short loc_B16B ; --------------------------------------------------------------------------- loc_B15D: les bx, dword_105DA mov al, es:[bx+33h] add al, 20h ; ' ' mov [si+22B0h], al loc_B16B: les bx, dword_105DA mov al, es:[bx+0Ch] mov ah, 0 dec ax cwd sub ax, dx sar ax, 1 inc al mov [si+22A6h], al mov ax, si loc_B183: pop di pop si pop bp retn sub_B03D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B187 proc near var_2 = word ptr -2 enter 2, 0 push si push di mov [bp+var_2], 0 mov di, 140h jmp short loc_B1B5 ; --------------------------------------------------------------------------- loc_B197: mov si, 40h jmp short loc_B1AC ; --------------------------------------------------------------------------- loc_B19C: push si push di push [bp+var_2] call super_put add si, 20h ; ' ' inc [bp+var_2] loc_B1AC: cmp si, 240h jl short loc_B19C add di, 18h loc_B1B5: cmp di, 170h jle short loc_B197 pop di pop si leave retn sub_B187 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B1BF proc near var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 enter 4, 0 push si mov si, [bp+arg_2] mov ax, si mov bx, 10h cwd idiv bx shl dx, 5 add dx, 40h mov [bp+var_2], dx mov ax, si cwd idiv bx imul ax, 18h add ax, 140h mov [bp+var_4], ax push [bp+var_2] push ax push si push [bp+arg_0] call sub_B2AD pop si leave retn 4 sub_B1BF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B1F6 proc near var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = word ptr 4 arg_2 = word ptr 6 enter 14h, 0 push si mov si, [bp+arg_0] mov ax, [bp+arg_2] sar ax, 3 mov dx, si shl dx, 6 add ax, dx mov dx, si shl dx, 4 add ax, dx mov cx, ax mov [bp+var_4], 0 jmp loc_B29F ; --------------------------------------------------------------------------- loc_B21F: mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al les bx, dword_10050 add bx, cx mov eax, es:[bx] mov [bp+var_14], eax les bx, dword_10054 add bx, cx mov eax, es:[bx] mov [bp+var_10], eax les bx, dword_10058 add bx, cx mov eax, es:[bx] mov [bp+var_C], eax les bx, dword_1005C add bx, cx mov eax, es:[bx] mov [bp+var_8], eax mov al, 0 out dx, al les bx, dword_10050 add bx, cx mov eax, [bp+var_14] mov es:[bx], eax les bx, dword_10054 add bx, cx mov eax, [bp+var_10] mov es:[bx], eax les bx, dword_10058 add bx, cx mov eax, [bp+var_C] mov es:[bx], eax les bx, dword_1005C add bx, cx mov eax, [bp+var_8] mov es:[bx], eax add cx, 50h ; 'P' inc [bp+var_4] loc_B29F: cmp [bp+var_4], 20h ; ' ' jb loc_B21F pop si leave retn 4 sub_B1F6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B2AD proc near arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 arg_6 = word ptr 0Ah push bp mov bp, sp push si push di mov di, [bp+arg_6] mov si, [bp+arg_2] cmp [bp+arg_0], 0 jz short loc_B2C1 add si, 31h ; '1' loc_B2C1: push di push [bp+arg_4] push si call super_put mov ax, [bp+arg_2] mov bx, 10h cwd idiv bx cmp dx, 0Eh jnz short loc_B2E9 lea ax, [di+20h] push ax push [bp+arg_4] lea ax, [si+1] push ax call super_put loc_B2E9: pop di pop si pop bp retn 8 sub_B2AD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B2EF proc near var_7 = byte ptr -7 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 enter 8, 0 push si push di mov si, [bp+arg_4] mov di, [bp+arg_0] cmp word_106AC, di jnz short loc_B306 mov ax, 1 jmp short loc_B308 ; --------------------------------------------------------------------------- loc_B306: xor ax, ax loc_B308: mov [bp+var_6], ax cmp word_106AC, di jnz short loc_B315 mov al, 0Fh jmp short loc_B317 ; --------------------------------------------------------------------------- loc_B315: mov al, 4 loc_B317: mov [bp+var_7], al cmp word_106AC, 0FFFFh jnz short loc_B32A mov [bp+var_6], 1 mov [bp+var_7], 0Fh loc_B32A: cmp di, 9 jz short loc_B339 push si push [bp+arg_2] lea ax, [di+21h] push ax jmp short loc_B351 ; --------------------------------------------------------------------------- loc_B339: lea ax, [si-8] push ax push [bp+arg_2] push 21h ; '!' push [bp+var_6] call sub_B2AD lea ax, [si+8] push ax push [bp+arg_2] push 20h ; ' ' loc_B351: push [bp+var_6] call sub_B2AD add si, 30h ; '0' mov [bp+var_2], 7 jmp short loc_B38F ; --------------------------------------------------------------------------- loc_B361: mov bx, di shl bx, 3 add bx, [bp+var_2] cmp byte ptr [bx+21F0h], 0Eh jz short loc_B389 push si push [bp+arg_2] mov bx, di shl bx, 3 add bx, [bp+var_2] mov al, [bx+21F0h] mov ah, 0 push ax push [bp+var_6] call sub_B2AD loc_B389: dec [bp+var_2] add si, 18h loc_B38F: cmp [bp+var_2], 0 jge short loc_B361 add si, 10h mov [bp+var_4], 20h ; ' ' mov [bp+var_2], 9 jmp short loc_B3E0 ; --------------------------------------------------------------------------- loc_B3A4: cmp [bp+var_4], 20h ; ' ' jnz short loc_B3BB mov bx, di imul bx, 0Ah add bx, [bp+var_2] mov al, [bx+2242h] mov ah, 0 mov [bp+var_4], ax loc_B3BB: cmp [bp+var_4], 20h ; ' ' jz short loc_B3DA push si push [bp+arg_2] mov bx, di imul bx, 0Ah add bx, [bp+var_2] mov al, [bx+2242h] mov ah, 0 push ax push [bp+var_6] call sub_B2AD loc_B3DA: dec [bp+var_2] add si, 10h loc_B3E0: cmp [bp+var_2], 0 jge short loc_B3A4 add si, 10h push si mov ax, [bp+arg_2] add ax, 8 push ax mov al, [bp+var_7] mov ah, 0 or ax, 20h push ax mov al, [di+22A6h] mov ah, 0 shl ax, 2 mov bx, ax push large dword ptr [bx+906h] call sub_D197 add si, 70h ; 'p' push si push [bp+arg_2] mov al, [di+22B0h] mov ah, 0 push ax push [bp+var_6] call sub_B2AD pop di pop si leave retn 6 sub_B2EF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B429 proc near push bp mov bp, sp push si push di push 0 call graph_copy_page xor si, si mov di, 68h ; 'h' jmp short loc_B447 ; --------------------------------------------------------------------------- loc_B43C: push 18h push di push si call sub_B2EF inc si add di, 14h loc_B447: cmp si, 0Ah jl short loc_B43C pop di pop si pop bp retn sub_B429 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B450 proc near arg_0 = word ptr 4 push bp mov bp, sp push si mov si, [bp+arg_0] push 18h mov ax, si imul ax, 14h add ax, 68h ; 'h' push ax push si call sub_B2EF pop si pop bp retn 2 sub_B450 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B46B proc near var_F = byte ptr -0Fh var_E = byte ptr -0Eh var_D = byte ptr -0Dh var_C = byte ptr -0Ch var_B = byte ptr -0Bh var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 enter 10h, 0 push si mov [bp+var_2], 0 lea ax, [bp+var_A] push ss push ax push ds push offset unk_ED6A mov cx, 8 call SCOPY@ mov [bp+var_B], 0 mov [bp+var_C], 1 mov [bp+var_D], 0 mov [bp+var_E], 7 mov [bp+var_F], 0 mov ax, word_106AC imul ax, 14h add ax, 68h ; 'h' mov si, ax jmp loc_B743 ; --------------------------------------------------------------------------- loc_B4A8: call sub_D5A2 test byte ptr word_100FC, 1 jz short loc_B4F2 cmp [bp+var_A], 0 jz short loc_B4CD cmp [bp+var_A], 1Eh jl short loc_B4ED mov ax, [bp+var_A] mov bx, 4 cwd idiv bx or dx, dx jnz short loc_B4ED loc_B4CD: cmp [bp+var_2], 2Dh ; '-' jz short loc_B4ED push [bp+var_2] push 0 call sub_B1BF sub [bp+var_2], 10h cmp [bp+var_2], 0 jge short loc_B4E9 add [bp+var_2], 30h ; '0' loc_B4E9: mov [bp+var_C], 1 loc_B4ED: inc [bp+var_A] jmp short loc_B4F7 ; --------------------------------------------------------------------------- loc_B4F2: mov [bp+var_A], 0 loc_B4F7: test byte ptr word_100FC, 2 jz short loc_B53C cmp [bp+var_8], 0 jz short loc_B517 cmp [bp+var_8], 1Eh jl short loc_B537 mov ax, [bp+var_8] mov bx, 4 cwd idiv bx or dx, dx jnz short loc_B537 loc_B517: cmp [bp+var_2], 2Dh ; '-' jz short loc_B537 push [bp+var_2] push 0 call sub_B1BF add [bp+var_2], 10h cmp [bp+var_2], 30h ; '0' jl short loc_B533 sub [bp+var_2], 30h ; '0' loc_B533: mov [bp+var_C], 1 loc_B537: inc [bp+var_8] jmp short loc_B541 ; --------------------------------------------------------------------------- loc_B53C: mov [bp+var_8], 0 loc_B541: test byte ptr word_100FC, 4 jz short loc_B59A cmp [bp+var_6], 0 jz short loc_B561 cmp [bp+var_6], 1Eh jl short loc_B595 mov ax, [bp+var_6] mov bx, 4 cwd idiv bx or dx, dx jnz short loc_B595 loc_B561: push [bp+var_2] push 0 call sub_B1BF mov ax, [bp+var_2] mov bx, 10h cwd idiv bx or dx, dx jnz short loc_B57C add [bp+var_2], 0Eh jmp short loc_B591 ; --------------------------------------------------------------------------- loc_B57C: cmp [bp+var_2], 1Eh jz short loc_B588 cmp [bp+var_2], 0Eh jnz short loc_B58E loc_B588: sub [bp+var_2], 2 jmp short loc_B591 ; --------------------------------------------------------------------------- loc_B58E: dec [bp+var_2] loc_B591: mov [bp+var_C], 1 loc_B595: inc [bp+var_6] jmp short loc_B59F ; --------------------------------------------------------------------------- loc_B59A: mov [bp+var_6], 0 loc_B59F: test byte ptr word_100FC, 8 jz short loc_B5F9 cmp [bp+var_4], 0 jz short loc_B5BF cmp [bp+var_4], 1Eh jl short loc_B5F4 mov ax, [bp+var_4] mov bx, 4 cwd idiv bx or dx, dx jnz short loc_B5F4 loc_B5BF: push [bp+var_2] push 0 call sub_B1BF mov ax, [bp+var_2] mov bx, 10h cwd idiv bx cmp dx, 0Eh jnz short loc_B5DB sub [bp+var_2], 0Eh jmp short loc_B5F0 ; --------------------------------------------------------------------------- loc_B5DB: cmp [bp+var_2], 0Ch jz short loc_B5E7 cmp [bp+var_2], 1Ch jnz short loc_B5ED loc_B5E7: add [bp+var_2], 2 jmp short loc_B5F0 ; --------------------------------------------------------------------------- loc_B5ED: inc [bp+var_2] loc_B5F0: mov [bp+var_C], 1 loc_B5F4: inc [bp+var_4] jmp short loc_B5FE ; --------------------------------------------------------------------------- loc_B5F9: mov [bp+var_4], 0 loc_B5FE: test byte ptr word_100FC+1, 20h jnz short loc_B60C test byte ptr word_100FC, 20h jz short loc_B683 loc_B60C: cmp [bp+var_D], 0 jnz short loc_B67D cmp [bp+var_2], 1Eh jnz short loc_B64B mov al, [bp+var_E] mov ah, 0 mov dx, 7 sub dx, ax imul dx, 18h add dx, 48h ; 'H' push dx push si call sub_B1F6 mov bx, word_106AC shl bx, 3 mov al, [bp+var_E] mov ah, 0 add bx, ax mov byte ptr [bx+21F0h], 0Eh cmp [bp+var_E], 7 jnb short loc_B679 inc [bp+var_E] jmp short loc_B679 ; --------------------------------------------------------------------------- loc_B64B: cmp [bp+var_2], 2Eh ; '.' jnz short loc_B657 mov [bp+var_B], 1 jmp short loc_B679 ; --------------------------------------------------------------------------- loc_B657: mov bx, word_106AC shl bx, 3 mov al, [bp+var_E] mov ah, 0 add bx, ax mov al, byte ptr [bp+var_2] mov [bx+21F0h], al cmp [bp+var_E], 0 jnz short loc_B676 mov [bp+var_B], 1 loc_B676: dec [bp+var_E] loc_B679: mov [bp+var_C], 1 loc_B67D: mov [bp+var_D], 1 jmp short loc_B687 ; --------------------------------------------------------------------------- loc_B683: mov [bp+var_D], 0 loc_B687: test byte ptr word_100FC, 10h jz short loc_B6CF cmp [bp+var_F], 0 jnz short loc_B6C9 mov al, [bp+var_E] mov ah, 0 mov dx, 7 sub dx, ax imul dx, 18h add dx, 48h ; 'H' push dx push si call sub_B1F6 mov bx, word_106AC shl bx, 3 mov al, [bp+var_E] mov ah, 0 add bx, ax mov byte ptr [bx+21F0h], 0Eh cmp [bp+var_E], 7 jnb short loc_B6C5 inc [bp+var_E] loc_B6C5: mov [bp+var_C], 1 loc_B6C9: mov [bp+var_F], 1 jmp short loc_B6D3 ; --------------------------------------------------------------------------- loc_B6CF: mov [bp+var_F], 0 loc_B6D3: cmp [bp+var_C], 1 jnz short loc_B73C push [bp+var_2] push 1 call sub_B1BF mov al, [bp+var_E] mov ah, 0 mov dx, 7 sub dx, ax imul dx, 18h add dx, 48h ; 'H' push dx push si call sub_B1F6 mov bx, word_106AC shl bx, 3 mov al, [bp+var_E] mov ah, 0 add bx, ax mov byte ptr [bx+21F0h], 0Eh push word_106AC call sub_B450 mov ax, [bp+var_2] mov bx, 10h cwd idiv bx cmp dx, 0Eh jz short loc_B738 mov al, [bp+var_E] mov ah, 0 mov dx, 7 sub dx, ax imul dx, 18h add dx, 48h ; 'H' push dx push si push [bp+var_2] push 0 call sub_B2AD loc_B738: mov [bp+var_C], 0 loc_B73C: push 1 call sub_CB52 loc_B743: cmp [bp+var_B], 0 jz loc_B4A8 pop si leave retn sub_B46B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B74E proc near var_1 = byte ptr -1 enter 2, 0 push si push di xor cx, cx jmp short loc_B769 ; --------------------------------------------------------------------------- loc_B758: mov bx, word_106AC shl bx, 3 add bx, cx cmp byte ptr [bx+21F0h], 0Eh jnz short loc_B7A2 inc cx loc_B769: cmp cx, 8 jl short loc_B758 loc_B76E: les bx, dword_105DA mov al, es:[bx+0Ch] mov ah, 0 dec ax cwd sub ax, dx sar ax, 1 shl ax, 3 add ax, 92Eh mov di, ax mov cx, 7 jmp short loc_B79C ; --------------------------------------------------------------------------- loc_B78B: mov bx, word_106AC shl bx, 3 add bx, cx mov al, [di] mov [bx+21F0h], al dec cx inc di loc_B79C: or cx, cx jge short loc_B78B jmp short loc_B7CE ; --------------------------------------------------------------------------- loc_B7A2: mov bx, word_106AC shl bx, 3 mov al, [bx+21F0h] mov [bp+var_1], al xor cx, cx jmp short loc_B7C7 ; --------------------------------------------------------------------------- loc_B7B4: mov bx, word_106AC shl bx, 3 add bx, cx mov al, [bx+21F0h] cmp al, [bp+var_1] jnz short loc_B7CE inc cx loc_B7C7: cmp cx, 8 jl short loc_B7B4 jmp short loc_B76E ; --------------------------------------------------------------------------- loc_B7CE: pop di pop si leave retn sub_B74E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B7D2 proc near push bp mov bp, sp les bx, dword_105DA mov eax, es:[bx+10h] mov random_seed, eax push 600h push ds push offset aScore_m ; "score.m" call sub_C880 add sp, 6 push 0 call sub_CEC2 les bx, dword_105DA mov al, es:[bx+0Bh] mov ah, 0 push ax call sub_AE8E les bx, dword_105DA cmp byte ptr es:[bx+33h], 0FFh jnz short loc_B819 mov word_106AC, 0FFFFh jmp short loc_B81F ; --------------------------------------------------------------------------- loc_B819: call sub_B03D mov word_106AC, ax loc_B81F: call sub_AFAC cmp word_106AC, 0FFFFh jnz short loc_B835 call sub_B429 push 2 call palette_black_in jmp short loc_B858 ; --------------------------------------------------------------------------- loc_B835: call sub_B429 push 1 call graph_copy_page mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al call sub_B187 push 2 call palette_black_in call sub_B46B call sub_B74E call sub_B429 loc_B858: push 0 call sub_D6C5 les bx, dword_105DA cmp byte ptr es:[bx+36h], 0 jz short loc_B871 cmp byte ptr es:[bx+33h], 63h ; 'c' jnz short loc_B879 loc_B871: push 210h call sub_CEC2 loc_B879: push 2 call palette_black_out les bx, dword_105DA mov al, es:[bx+0Bh] mov ah, 0 push ax call sub_AEF0 call super_free mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al mov dx, 0A4h out dx, al mov PaletteTone, 0 call far ptr palette_show les bx, dword_105DA cmp byte ptr es:[bx+36h], 0 jz short loc_B8F1 cmp byte ptr es:[bx+33h], 63h ; 'c' jz short loc_B8F1 push 0 push ds push offset aConti_pi ; "conti.pi" call sub_D4AB push 0 call sub_CD0A push large 0 push 0 call sub_CD2F push ds push offset unk_10316 push large [dword_102FE] call graph_pi_free push 0 push ds push offset aConti_cd2 ; "conti.cd2" call sub_D02E pop bp retn ; --------------------------------------------------------------------------- loc_B8F1: push 0 push ds push offset aOver_pi_0 ; "over.pi" call sub_D4AB push 0 call sub_CD0A push large 0 push 0 call sub_CD2F push ds push offset unk_10316 push large [dword_102FE] call graph_pi_free push 0FFh call sub_C864 pop cx push 100h call sub_CEC2 pop bp retn sub_B7D2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B92E proc near push bp mov bp, sp push 100h call sub_CEC2 push 600h push ds push offset aOver_m ; "over.m" call sub_C880 add sp, 6 push 0 call sub_CEC2 push 1 call palette_black_in push large 30040h call sub_D3FC push 1 call palette_black_out push 100h call sub_CEC2 pop bp retn sub_B92E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_B972 proc near var_1 = byte ptr -1 enter 2, 0 push 0 call sub_D130 push 1 call sub_D130 push 2 call sub_D130 push ds push offset unk_10316 push large [dword_102FE] call graph_pi_free les bx, dword_105DA mov al, es:[bx+0Ch] mov ah, 0 dec ax cwd sub ax, dx sar ax, 1 mov [bp+var_1], al cmp [bp+var_1], 0Ah jl short loc_B9DD les bx, off_EE4E mov al, es:[bx+1] push ax mov al, [bp+var_1] cbw mov bx, 0Ah cwd idiv bx pop dx add dl, al mov bx, word ptr off_EE4E mov es:[bx+1], dl mov al, [bp+var_1] cbw mov bx, 0Ah cwd idiv bx mov [bp+var_1], dl loc_B9DD: les bx, off_EE4E mov al, [bp+var_1] add es:[bx+2], al mov PaletteTone, 0 call far ptr palette_show push 60h call sub_CB52 mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al mov dx, 0A4h out dx, al call graph_clear call graph_show push large [off_EE4E] call sub_A12E call sub_AC6E call sub_A174 call sub_C40D les bx, dword_105DA mov byte ptr es:[bx+33h], 63h ; 'c' call sub_B7D2 les bx, dword_105DA cmp byte ptr es:[bx+36h], 3 jnz short loc_BA66 cmp byte ptr es:[bx+0Ch], 0Fh jnb short loc_BA66 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, 0A4h mov al, 0 out dx, al push ds push offset a@99ed_txt ; "@99ED.TXT" call sub_A12E call sub_AC6E call sub_A174 loc_BA66: call text_clear call gaiji_restore call sub_C990 push large 0 push ds push offset aOp_0 ; "op" push ds push offset aOp_0 ; "op" call _execl add sp, 0Ch leave retn sub_B972 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BA8A proc near arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 push bp mov bp, sp push si push di mov ax, [bp+arg_4] sar ax, 3 mov dx, [bp+arg_2] shl dx, 6 add ax, dx mov dx, [bp+arg_2] shl dx, 4 add ax, dx mov di, ax mov si, [bp+arg_0] shl si, 4 add si, 0A62h mov ax, 0A800h mov es, ax assume es:nothing mov cx, [bp+arg_4] ; Hack (and cx, 7) db 081h db 0e1h db 007h db 000h mov bx, 8 loc_BAC0: mov ax, [si] ror ax, cl or es:[di], ax add di, 50h ; 'P' add si, 2 dec bx jnz short loc_BAC0 pop di pop si pop bp retn 6 sub_BA8A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BAD6 proc near var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 enter 4, 0 push si push di mov bx, [bp+arg_0] shl bx, 4 mov ax, [bx+1D10h] mov [bp+var_2], ax mov bx, [bp+arg_0] shl bx, 4 mov ax, [bx+1D12h] mov [bp+var_4], ax mov ax, [bp+var_2] cwd sub ax, dx sar ax, 1 sub [bp+arg_4], ax mov ax, [bp+var_4] cwd sub ax, dx sar ax, 1 add ax, 0FFFEh add [bp+arg_2], ax mov ax, [bp+arg_4] sar ax, 3 mov dx, [bp+arg_2] shl dx, 6 add ax, dx mov dx, [bp+arg_2] shl dx, 4 add ax, dx mov di, ax mov ax, 0E000h mov es, ax assume es:nothing mov dx, [bp+var_2] shr dx, 4 mov si, 50h ; 'P' sub si, dx sub si, dx xor ax, ax mov cx, dx rep stosw add di, si mov cx, dx rep stosw add di, si mov cx, dx rep stosw pop di pop si leave retn 6 sub_BAD6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BB51 proc near push bp mov bp, sp push di mov ax, 0A800h mov es, ax assume es:nothing xor ax, ax mov di, ax mov cx, 3E80h rep stosw pop di pop bp retn sub_BB51 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BB66 proc near push bp mov bp, sp push si mov si, 22C2h xor ax, ax jmp short loc_BB78 ; --------------------------------------------------------------------------- loc_BB71: mov byte ptr [si], 0 inc ax add si, 10h loc_BB78: cmp ax, 50h ; 'P' jl short loc_BB71 pop si pop bp retn sub_BB66 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BB80 proc near var_2 = byte ptr -2 var_1 = byte ptr -1 enter 2, 0 push si push di mov si, 22C2h xor di, di jmp loc_BC1A ; --------------------------------------------------------------------------- loc_BB8E: cmp byte ptr [si], 0 jnz loc_BC16 mov ax, di shl ax, 3 cmp ax, word_10BB2 jg short loc_BC16 mov byte ptr [si], 1 test di, 3 jz short loc_BBBE call IRand mov bx, 2780h cwd idiv bx mov [si+2], dx mov word ptr [si+4], 0 jmp short loc_BBD1 ; --------------------------------------------------------------------------- loc_BBBE: mov word ptr [si+2], 2780h call IRand mov bx, 1880h cwd idiv bx mov [si+4], dx loc_BBD1: call IRand mov bx, 20h ; ' ' cwd idiv bx add dl, 50h ; 'P' mov [bp+var_1], dl call IRand mov bx, 40h cwd idiv bx add dl, 30h ; '0' mov [bp+var_2], dl call IRand and ax, 3 mov [si+0Ah], ax push ds lea ax, [si+6] push ax push ds lea ax, [si+8] push ax push word ptr [bp+var_1] mov al, [bp+var_2] mov ah, 0 push ax call sub_C8F0 loc_BC16: inc di add si, 10h loc_BC1A: mov al, byte_106B0 mov ah, 0 cmp ax, di jg loc_BB8E pop di pop si leave retn sub_BB80 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BC29 proc near push bp mov bp, sp push si mov si, 22C2h xor dx, dx jmp short loc_BC63 ; --------------------------------------------------------------------------- loc_BC34: cmp byte ptr [si], 0 jz short loc_BC5F mov byte ptr [si], 1 mov ax, [si+6] add [si+2], ax mov ax, [si+8] add [si+4], ax cmp word ptr [si+2], 0 jg short loc_BC53 add word ptr [si+2], 2780h loc_BC53: cmp word ptr [si+4], 1880h jl short loc_BC5F sub word ptr [si+4], 1880h loc_BC5F: inc dx add si, 10h loc_BC63: mov al, byte_106B0 mov ah, 0 cmp ax, dx jg short loc_BC34 pop si pop bp retn sub_BC29 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BC6F proc near push bp mov bp, sp push si push di mov si, 22C2h xor di, di jmp short loc_BC98 ; --------------------------------------------------------------------------- loc_BC7B: cmp byte ptr [si], 0 jz short loc_BC94 mov ax, [si+2] sar ax, 4 push ax mov ax, [si+4] sar ax, 4 push ax push word ptr [si+0Ah] call sub_BA8A loc_BC94: inc di add si, 10h loc_BC98: mov al, byte_106B0 mov ah, 0 cmp ax, di jg short loc_BC7B pop di pop si pop bp retn sub_BC6F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BCA5 proc near arg_0 = word ptr 4 arg_2 = word ptr 6 push bp mov bp, sp cmp byte_EC70, 0 jnz short loc_BCB9 mov ax, word_10BB2 cmp ax, [bp+arg_0] jle short loc_BCCF jmp short loc_BCCA ; --------------------------------------------------------------------------- loc_BCB9: mov ah, 5 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 cmp ax, [bp+arg_2] jb short loc_BCCF cmp word_10BB2, 0C0h jle short loc_BCCF loc_BCCA: mov ax, 1 jmp short loc_BCD1 ; --------------------------------------------------------------------------- loc_BCCF: xor ax, ax loc_BCD1: pop bp retn 4 sub_BCA5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BCD5 proc near push bp mov bp, sp call sub_BB80 call sub_BC29 call sub_BC6F cmp byte_10BB6, 0 jz short loc_BCFE cmp vsync_Count1, 1 jbe short loc_BCFE mov byte_10BB5, 0 mov byte_106B0, 32h ; '2' mov byte_10BB6, 0 loc_BCFE: cmp vsync_Count1, 0 jz short loc_BCFE mov vsync_Count1, 0 mov dx, 0A4h mov al, byte_10BB4 out dx, al mov al, 1 sub al, byte_10BB4 mov byte_10BB4, al mov dx, 0A6h ; 'ヲ' out dx, al pop bp retn sub_BCD5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BD21 proc near var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 arg_6 = word ptr 0Ah enter 6, 0 push si push di mov bx, [bp+arg_2] shl bx, 4 mov ax, [bx+1D10h] mov [bp+var_4], ax mov bx, [bp+arg_2] shl bx, 4 mov ax, [bx+1D12h] mov [bp+var_6], ax mov ax, [bp+var_4] cwd sub ax, dx sar ax, 1 sub [bp+arg_6], ax mov ax, [bp+var_6] cwd sub ax, dx sar ax, 1 sub [bp+arg_4], ax cmp byte_10BC7, 0 jz short loc_BD65 cmp byte_10BB5, 0 jnz short loc_BD75 loc_BD65: push [bp+arg_6] push [bp+arg_4] push [bp+arg_2] call far ptr loc_D712 jmp short loc_BD83 ; --------------------------------------------------------------------------- loc_BD75: push [bp+arg_6] push [bp+arg_4] push [bp+arg_2] call far ptr loc_C9D4 loc_BD83: and [bp+arg_0], 7 cmp [bp+arg_0], 0 jz short loc_BDEE mov bx, 10h mov ax, [bp+var_4] cwd idiv bx mov [bp+var_4], ax mov ax, [bp+arg_4] add [bp+var_6], ax mov ax, [bp+arg_6] sar ax, 3 mov dx, [bp+arg_4] shl dx, 6 add ax, dx mov dx, [bp+arg_4] shl dx, 4 add ax, dx mov [bp+var_2], ax mov ax, 0E000h mov es, ax assume es:nothing mov bx, [bp+arg_0] shl bx, 3 add bx, 0AA2h mov dx, [bp+arg_4] loc_BDCA: mov si, dx ; Hack (and si, 3) db 081h db 0e6h db 003h db 000h shl si, 1 mov ax, [bx+si] not ax mov di, [bp+var_2] mov cx, [bp+var_4] loc_BDDC: and es:[di], ax add di, 2 loop loc_BDDC add [bp+var_2], 50h ; 'P' inc dx cmp dx, [bp+var_6] jb short loc_BDCA loc_BDEE: pop di pop si leave retn 8 sub_BD21 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BDF4 proc near arg_0 = word ptr 4 push bp mov bp, sp push si push di mov di, [bp+arg_0] call sub_BB51 mov ax, word_10BB2 cmp ax, word_10BBE jg loc_BEC1 push 140h mov al, byte_10BB4 mov ah, 0 add ax, ax mov bx, ax push word ptr [bx+27D8h] push di call sub_BAD6 mov al, byte_10BB4 mov ah, 0 add ax, ax mov bx, ax mov ax, [bx+27D8h] cmp ax, word_10BC0 jle short loc_BE66 mov al, byte_10BB4 mov ah, 0 add ax, ax mov dx, word_10BBC mov bx, ax sub [bx+27D8h], dx mov al, byte_10BB4 mov ah, 0 add ax, ax mov bx, ax mov ax, [bx+27D8h] cmp ax, word_10BC0 jge short loc_BE66 mov al, byte_10BB4 mov ah, 0 add ax, ax mov dx, word_10BC0 mov bx, ax mov [bx+27D8h], dx loc_BE66: mov ax, word_10BBE mov bx, 8 cwd idiv bx push ax mov ax, word_10BB2 cwd pop bx idiv bx mov dx, 7 sub dx, ax mov si, dx or si, si jge short loc_BE84 xor si, si loc_BE84: cmp byte_10BB5, 0 jz short loc_BEA7 cmp byte_10BC6, 0 jz short loc_BEA7 push large 1F800C8h mov al, byte_10BC6 mov ah, 0 push ax push si call sub_BD21 mov byte_10BC7, 1 loc_BEA7: push 140h mov al, byte_10BB4 mov ah, 0 add ax, ax mov bx, ax push word ptr [bx+27D8h] push di push si call sub_BD21 mov byte_10BC7, 0 loc_BEC1: pop di pop si pop bp retn 2 sub_BDF4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BEC7 proc near arg_0 = word ptr 4 push bp mov bp, sp push si push di mov di, [bp+arg_0] call sub_BB51 cmp word_10BB2, 0A1h jg loc_BF78 cmp word_10BB2, 0A0h jge short loc_BF57 push 140h mov al, byte_10BB4 mov ah, 0 add ax, ax mov bx, ax push word ptr [bx+27D8h] push di call sub_BAD6 mov al, byte_10BB4 mov ah, 0 add ax, ax mov bx, ax dec word ptr [bx+27D8h] mov ax, word_10BB2 mov bx, 14h cwd idiv bx mov si, ax cmp si, 7 jle short loc_BF18 mov si, 7 loc_BF18: cmp byte_10BB5, 0 jz short loc_BF3B cmp byte_10BC6, 0 jz short loc_BF3B push large 1F800C8h mov al, byte_10BC6 mov ah, 0 push ax push si call sub_BD21 mov byte_10BC7, 1 loc_BF3B: push 140h mov al, byte_10BB4 mov ah, 0 add ax, ax mov bx, ax push word ptr [bx+27D8h] push di push si call sub_BD21 mov byte_10BC7, 0 jmp short loc_BF78 ; --------------------------------------------------------------------------- loc_BF57: push large 0C00000h call grcg_setcolor push large 10008h push large 4E0187h call grcg_byteboxfill_x call grcg_off loc_BF78: pop di pop si pop bp retn 2 sub_BEC7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BF7E proc near arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 push bp mov bp, sp push si cmp word_10BB2, 0A0h jg short loc_BFAD mov ax, word_10BB2 mov bx, 14h cwd idiv bx mov dx, 7 sub dx, ax mov si, dx or si, si jge short loc_BFA0 xor si, si loc_BFA0: push [bp+arg_4] push [bp+arg_2] push [bp+arg_0] push si call sub_BD21 loc_BFAD: pop si pop bp retn 6 sub_BF7E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_BFB2 proc near arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 push bp mov bp, sp push si mov si, [bp+arg_4] cmp word_10BBC, 2 jnz short loc_BFE3 mov al, byte_10BB4 mov ah, 0 add ax, ax mov bx, ax mov word ptr [bx+27D8h], 108h mov al, byte_10BB4 mov ah, 0 xor ax, 1 add ax, ax mov bx, ax mov word ptr [bx+27D8h], 107h jmp short loc_C00E ; --------------------------------------------------------------------------- loc_BFE3: mov al, byte_10BB4 mov ah, 0 add ax, ax mov dx, 118h sub dx, word_10BC4 mov bx, ax mov [bx+27D8h], dx mov al, byte_10BB4 mov ah, 0 xor ax, 1 add ax, ax mov dx, 118h sub dx, word_10BC4 mov bx, ax mov [bx+27D8h], dx loc_C00E: mov word_10BB2, 0 loc_C014: push si call sub_BDF4 call sub_BCD5 inc word_10BB2 push [bp+arg_2] push 100h call sub_BCA5 or ax, ax jz short loc_C014 mov word_10BB2, 0 loc_C032: push si call sub_BEC7 call sub_BCD5 inc word_10BB2 push [bp+arg_0] push 100h call sub_BCA5 or ax, ax jz short loc_C032 push large 0C00000h call grcg_setcolor push large 10008h push large 4E0187h call grcg_byteboxfill_x call grcg_off call sub_BCD5 push large 0C00000h call grcg_setcolor push large 10008h push large 4E0187h call grcg_byteboxfill_x call grcg_off call sub_BCD5 pop si pop bp retn 6 sub_BFB2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C097 proc near arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 push bp mov bp, sp push si push di mov si, [bp+arg_4] cmp word_10BBC, 2 jnz short loc_C0C9 mov al, byte_10BB4 mov ah, 0 add ax, ax mov bx, ax mov word ptr [bx+27D8h], 108h mov al, byte_10BB4 mov ah, 0 xor ax, 1 add ax, ax mov bx, ax mov word ptr [bx+27D8h], 107h jmp short loc_C0D6 ; --------------------------------------------------------------------------- loc_C0C9: mov ax, 118h sub ax, word_10BC4 mov word_10BC8, ax mov word_10BCA, ax loc_C0D6: mov word_10BB2, 0 loc_C0DC: push si call sub_BDF4 mov byte_10BC7, 1 push 140h push word_10BC2 lea ax, [si-1] push ax push 0 call sub_BD21 mov byte_10BC7, 0 call sub_BCD5 inc word_10BB2 push [bp+arg_2] push 100h call sub_BCA5 or ax, ax jz short loc_C0DC mov word_10BB2, 0 loc_C114: cmp word_10BB2, 0A1h jg short loc_C12A push 140h push word_10BC2 lea ax, [si-1] push ax call sub_BAD6 loc_C12A: push si call sub_BEC7 cmp word_10BB2, 0A1h jg short loc_C199 mov ax, word_10BB2 dec ax mov bx, 14h cwd idiv bx mov di, ax cmp di, 7 jle short loc_C14A mov di, 7 loc_C14A: cmp byte_10BB4, 0 jnz short loc_C155 dec word_10BC2 loc_C155: mov byte_10BC7, 1 cmp word_10BB2, 0A0h jge short loc_C173 push 140h push word_10BC2 lea ax, [si-1] push ax push di call sub_BD21 jmp short loc_C194 ; --------------------------------------------------------------------------- loc_C173: push large 0C00000h call grcg_setcolor push large 10008h push large 4E0187h call grcg_byteboxfill_x call grcg_off loc_C194: mov byte_10BC7, 0 loc_C199: call sub_BCD5 inc word_10BB2 push [bp+arg_0] push 100h call sub_BCA5 or ax, ax jz loc_C114 push large 0C00000h call grcg_setcolor push large 10008h push large 4E0187h call grcg_byteboxfill_x call grcg_off call sub_BCD5 push large 0C00000h call grcg_setcolor push large 10008h push large 4E0187h call grcg_byteboxfill_x call grcg_off call sub_BCD5 pop di pop si pop bp retn 6 sub_C097 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C1FD proc near arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 push bp mov bp, sp cmp word_10BBC, 2 jnz short loc_C22A mov al, byte_10BB4 mov ah, 0 add ax, ax mov bx, ax mov word ptr [bx+27D8h], 108h mov al, byte_10BB4 mov ah, 0 xor ax, 1 add ax, ax mov bx, ax mov word ptr [bx+27D8h], 107h jmp short loc_C237 ; --------------------------------------------------------------------------- loc_C22A: mov ax, 118h sub ax, word_10BC4 mov word_10BC8, ax mov word_10BCA, ax loc_C237: mov word_10BB2, 0 loc_C23D: push [bp+arg_4] call sub_BDF4 call sub_BCD5 inc word_10BB2 push [bp+arg_2] push 100h call sub_BCA5 or ax, ax jz short loc_C23D mov word_10BB2, 0 loc_C25D: call sub_BB51 call sub_BCD5 inc word_10BB2 push [bp+arg_0] push 100h call sub_BCA5 or ax, ax jz short loc_C25D mov al, byte_10BB4 mov ah, 0 add ax, ax mov bx, ax mov ax, [bx+27D8h] mov word_10BC2, ax pop bp retn 6 sub_C1FD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C288 proc near var_4 = word ptr -4 var_2 = word ptr -2 enter 4, 0 push si push di push large 16000AEh push 2Fh ; '/' mov al, byte_10BD7 mov ah, 0 shl ax, 2 mov bx, ax push large dword ptr [bx+0AE2h] call sub_D197 push large 16800C7h push 2Fh ; '/' mov al, byte_10BD6 mov ah, 0 shl ax, 2 mov bx, ax push large dword ptr [bx+0B06h] call sub_D197 mov si, 198h mov [bp+var_4], 0 mov [bp+var_2], 8 jmp short loc_C319 ; --------------------------------------------------------------------------- loc_C2D5: mov bx, [bp+var_2] mov al, [bx+27DCh] mov ah, 0 mov di, ax cmp [bp+var_4], 0 jnz short loc_C2F7 or di, di jz short loc_C2F7 mov ax, [bp+var_2] shl ax, 3 sub si, ax mov [bp+var_4], 1 loc_C2F7: cmp [bp+var_4], 0 jz short loc_C316 push si push large 0E0002Fh mov bx, di shl bx, 2 push large dword ptr [bx+0B16h] call sub_D197 add si, 10h loc_C316: dec [bp+var_2] loc_C319: cmp [bp+var_2], 0 jg short loc_C2D5 mov al, byte_10BCC mov ah, 0 mov di, ax push si push large 0E0002Fh mov bx, di shl bx, 2 push large dword ptr [bx+0B16h] call sub_D197 push large 19800F8h push 2Fh ; '/' mov bx, di shl bx, 2 push large dword ptr [bx+0B16h] call sub_D197 mov al, byte_10BD8 mov ah, 0 mov bx, 64h ; 'd' cwd idiv bx mov di, ax mov si, 198h mov [bp+var_4], 0 or di, di jz short loc_C38D sub si, 10h mov [bp+var_4], 1 push si push large 123002Fh mov bx, di shl bx, 2 push large dword ptr [bx+0B16h] call sub_D197 add si, 10h loc_C38D: mov al, byte_10BD8 mov ah, 0 mov bx, 64h ; 'd' cwd idiv bx mov bx, 0Ah mov ax, dx cwd idiv bx mov di, ax or di, di jz short loc_C3B4 cmp [bp+var_4], 0 jnz short loc_C3B4 mov [bp+var_4], 1 sub si, 8 loc_C3B4: cmp [bp+var_4], 0 jz short loc_C3D3 push si push large 123002Fh mov bx, di shl bx, 2 push large dword ptr [bx+0B16h] call sub_D197 add si, 10h loc_C3D3: mov al, byte_10BD8 mov ah, 0 mov bx, 0Ah cwd idiv bx mov di, dx push si push large 123002Fh mov bx, di shl bx, 2 push large dword ptr [bx+0B16h] call sub_D197 lea ax, [si+10h] push ax push large 123002Fh push ds push offset aU_ ; "点" call sub_D197 pop di pop si leave retn sub_C288 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C40D proc near push bp mov bp, sp push si push di push 210h call sub_CEC2 push 4 call palette_black_out push 0FFh call sub_C864 pop cx push 100h call sub_CEC2 mov byte_106B0, 50h ; 'P' mov si, 1 jmp short loc_C44B ; --------------------------------------------------------------------------- loc_C43C: les bx, dword_105DA assume es:nothing add bx, si mov al, es:[bx+17h] mov [si+27DCh], al inc si loc_C44B: cmp si, 9 jl short loc_C43C les bx, dword_105DA mov al, 3 sub al, es:[bx+36h] mov byte_10BCC, al mov al, es:[bx+0Ch] mov ah, 0 dec ax cwd sub ax, dx sar ax, 1 mov byte_10BD7, al mov al, es:[bx+0Bh] mov byte_10BD6, al mov al, es:[bx+38h] mov byte_10BD8, al mov al, byte_10BD3 mov ah, 0 cmp ax, 3 jz short loc_C48B cmp ax, 4 jz short loc_C49E jmp short loc_C4B1 ; --------------------------------------------------------------------------- loc_C48B: mov al, byte_10BD2 mov ah, 0 cwd sub ax, dx sar ax, 1 add al, byte_10BD8 add al, 2 mov byte_10BD8, al loc_C49E: mov al, byte_10BD2 mov ah, 0 cwd sub ax, dx sar ax, 1 add al, byte_10BD8 add al, 7 mov byte_10BD8, al loc_C4B1: cmp byte_10BD3, 5 jb short loc_C4C0 mov al, byte_10BD8 add al, 0Fh mov byte_10BD8, al loc_C4C0: cmp byte_10BD4, 0 jz short loc_C4CC mov byte_10BD8, 64h ; 'd' loc_C4CC: cmp byte_10BD8, 64h ; 'd' jbe short loc_C4D8 mov byte_10BD8, 64h ; 'd' loc_C4D8: push 600h push ds push offset aEd_m ; "ed.m" call sub_C880 add sp, 6 mov PaletteTone, 0 call far ptr palette_show push ds push offset aEdbk1_rgb ; "edbk1.rgb" call palette_entry_rgb call far ptr palette_show push large 0C00008h call grcg_setcolor mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al push large 0 push large 4F018Fh call grcg_byteboxfill_x mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al push large 0 push large 4F018Fh call grcg_byteboxfill_x push large 0C00000h call grcg_setcolor mov dx, 0A6h ; 'ヲ' mov al, 1 out dx, al push large 10008h push large 4E0187h call grcg_byteboxfill_x mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al push large 10008h push large 4E0187h call grcg_byteboxfill_x call grcg_off mov dx, 0A4h mov al, 1 out dx, al push 0 push ds push offset aStf1_cdg ; "stf1.cdg" push 0 call sub_CFA8 push 1 push ds push offset aStf11_cdg ; "stf11.cdg" push 0 call sub_CFA8 push 2 push ds push offset aStf3_cdg ; "stf3.cdg" push 0 call sub_CF1E push 3 push ds push offset aStf4_cdg ; "stf4.cdg" push 0 call sub_CF1E push 4 push ds push offset aStf5_cdg ; "stf5.cdg" push 0 call sub_CFA8 push 5 push ds push offset aStf6_cdg ; "stf6.cdg" push 0 call sub_CFA8 push 6 push ds push offset aStf7_cdg ; "stf7.cdg" push 0 call sub_CFA8 push 7 push ds push offset aStf8_cdg ; "stf8.cdg" push 0 call sub_CFA8 push 8 push ds push offset aStf9_cdg ; "stf9.cdg" push 0 call sub_CFA8 push 9 push ds push offset aStf10_cdg ; "stf10.cdg" push 0 call sub_CFA8 push 0Ah push ds push offset aStf2_cdg ; "stf2.cdg" push 0 call sub_CFA8 push 0Bh push ds push offset aStf12_cdg ; "stf12.cdg" push 0 call sub_CFA8 call sub_BB66 mov word_10BB2, 0 les bx, dword_105DA mov eax, es:[bx+10h] mov random_seed, eax mov byte_10BB4, 0 mov PaletteTone, 64h ; 'd' call far ptr palette_show push 0 call sub_CEC2 mov byte_10BB6, 1 mov byte_10BB5, 1 push 1 call sub_CB52 mov vsync_Count1, 0 loc_C657: call sub_BB51 call sub_BCD5 inc word_10BB2 push large 40100h call sub_BCA5 or ax, ax jz short loc_C657 mov byte_10BC7, 0 mov word_10BC4, 0 mov word_10BC0, 0C8h mov word_10BBC, 2 mov word_10BBE, 41h ; 'A' mov byte_10BC6, 0 push large 8 push 0Ah call sub_BFB2 mov word_10BBC, 1 mov word_10BBE, 0A1h mov byte_10BB6, 0 push large 10010h push 14h call sub_BFB2 mov word_10BC4, 20h ; ' ' mov word_10BC0, 0A8h ; 'ィ' push large 20016h push 18h call sub_C1FD mov byte_10BC6, 7 mov word_10BC0, 0D8h mov word_10BC4, 0FFF0h push large 30020h push 22h ; '"' call sub_C097 mov byte_10BC6, 0 mov word_10BC0, 0C8h mov word_10BC4, 0 push large 40024h push 26h ; '&' call sub_BFB2 push large 0B002Ah push 2Ch ; ',' call sub_BFB2 push large 50030h push 32h ; '2' call sub_BFB2 push large 60036h push 38h ; '8' call sub_BFB2 push large 0A003Ch push 3Eh ; '>' call sub_BFB2 mov word_10BB2, 0 loc_C735: call sub_BB51 push large 1400080h push 8 call sub_BF7E push large 0C000F0h push 9 call sub_BF7E call sub_BCD5 inc word_10BB2 push large 420100h call sub_BCA5 or ax, ax jz short loc_C735 mov al, 1 sub al, byte_10BB4 mov dx, 0A6h ; 'ヲ' out dx, al call sub_C288 mov dx, 0A6h ; 'ヲ' mov al, byte_10BB4 out dx, al call sub_C288 mov word_10BB2, 0 xor di, di loc_C781: call sub_D5A2 call sub_BB51 call sub_BCD5 inc word_10BB2 or di, di jz short loc_C7AB mov PaletteTone, di call far ptr palette_show test byte ptr word_10BB2, 1 jz short loc_C781 dec di or di, di jnz short loc_C781 jmp short loc_C7CD ; --------------------------------------------------------------------------- loc_C7AB: cmp word_100FC, 0 jz short loc_C781 cmp word_10BB2, 100h jle short loc_C781 push 208h call sub_CEC2 mov di, 64h ; 'd' mov word_10BB2, 0 jmp short loc_C781 ; --------------------------------------------------------------------------- loc_C7CD: xor si, si jmp short loc_C7D8 ; --------------------------------------------------------------------------- loc_C7D1: push si call sub_D130 inc si loc_C7D8: cmp si, 20h ; ' ' jl short loc_C7D1 pop di pop si pop bp retn sub_C40D endp seg001 ends ; =========================================================================== ; Segment type: Pure code seg002 segment byte public 'CODE' use16 assume cs:seg002 ;org 1 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_C7E2 proc far push bp mov bp, sp mov dword_10050, 0A8000000h mov dword_10054, 0B0000000h mov dword_10058, 0B8000000h mov dword_1005C, 0E0000000h pop bp retf sub_C7E2 endp ; --------------------------------------------------------------------------- db 0 ; =============== S U B R O U T I N E ======================================= sub_C80C proc far mov ah, 9 int 60h xor bx, bx cmp al, 0FFh jz short loc_C81E inc bx mov byte_10060, 1 jmp short loc_C822 ; --------------------------------------------------------------------------- loc_C81E: mov bl, byte_10061 loc_C822: mov byte_EC70, bl mov ax, bx retf sub_C80C endp ; --------------------------------------------------------------------------- nop mov byte_10062, 60h mov byte_10061, 0 mov byte_10060, 0 mov byte_10063, 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_C860 cmp byte ptr es:[bx+3], 4Dh ; 'M' jnz short loc_C860 cmp byte ptr es:[bx+4], 44h ; 'D' jnz short loc_C860 mov ax, 1 retf ; --------------------------------------------------------------------------- loc_C860: xor ax, ax retf ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C864 proc far arg_0 = byte ptr 6 push bp mov bp, sp loc_C867: mov ah, 8 cmp byte_10061, 1 jz short loc_C874 int 60h jmp short loc_C876 ; --------------------------------------------------------------------------- loc_C874: int 61h ; reserved for user interrupt loc_C876: cmp al, [bp+arg_0] jz short loc_C87D jmp short loc_C867 ; --------------------------------------------------------------------------- loc_C87D: pop bp retf sub_C864 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C880 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_C88A: les bx, [bp+arg_0] add bx, si mov al, es:[bx] mov [si+1C74h], al inc si loop loc_C88A mov ax, [bp+arg_4] cmp ax, 600h jnz short loc_C8C1 cmp byte_10061, 0 jz short loc_C8C1 xor bx, bx loc_C8AA: inc bx cmp byte ptr [bx+1C74h], 0 jnz short loc_C8AA mov byte ptr [bx+1C74h], 6Dh ; 'm' mov byte ptr [bx+1C75h], 64h ; 'd' mov byte ptr [bx+1C76h], 0 loc_C8C1: mov dx, 1C74h 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_C8DE cmp byte_10061, 0 jz short loc_C8DE int 61h ; reserved for user interrupt jmp short loc_C8E0 ; --------------------------------------------------------------------------- loc_C8DE: int 60h loc_C8E0: 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_C880 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C8F0 proc far arg_0 = word ptr 6 arg_2 = byte ptr 8 arg_4 = dword ptr 0Ah arg_8 = dword ptr 0Eh push bp mov bp, sp push si mov dl, [bp+arg_2] mov si, [bp+arg_0] movsx eax, si mov dh, 0 add dx, dx mov bx, dx movsx edx, word ptr [bx+63Ah] movsx ecx, word ptr [bx+5BAh] imul eax, edx sar eax, 8 les bx, [bp+arg_8] mov es:[bx], ax movsx eax, si imul eax, ecx sar eax, 8 les bx, [bp+arg_4] mov es:[bx], ax pop si pop bp retf 0Ch sub_C8F0 endp ; --------------------------------------------------------------------------- nop push bp mov bp, sp push si mov si, [bp+6] mov ax, [bp+12h] sub ax, [bp+16h] push ax mov ax, [bp+14h] sub ax, [bp+18h] push ax call iatan2 add al, [bp+10h] mov dl, al movsx eax, si mov dh, 0 add dx, dx mov bx, dx movsx edx, word ptr [bx+63Ah] movsx ecx, word ptr [bx+5BAh] imul eax, edx sar eax, 8 les bx, [bp+0Ch] mov es:[bx], ax movsx eax, si imul eax, ecx sar eax, 8 les bx, [bp+8] mov es:[bx], ax pop si pop bp retf 14h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_C990 proc far push bp mov bp, sp call sub_2912 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 js_end call egc_start pop bp retf sub_C990 endp ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- loc_C9D4: push bp mov bp, sp push si push di push large 0C00000h call grcg_setcolor mov si, [bp+6] shl si, 4 add si, 1D0Eh mov ax, [si+0Eh] mov cs:word_CA4C, ax mov ax, [bp+0Ah] sar ax, 3 add ax, [si+6] mov di, ax mov cs:word_CA45, ax mov ax, [si+8] mov cs:word_CA37, ax mov cs:word_CA51, ax shl ax, 2 add ax, 50h ; 'P' mov cs:word_CA33, ax jmp short $+2 mov ax, [bp+8] mov bx, ax shl ax, 2 add ax, bx add ax, 0A800h mov es, ax push ds mov ax, [si+0Ch] mov ds, ax xor si, si ; --------------------------------------------------------------------------- db 0BAh word_CA33 dw 1234h db 0FCh, 0B9h word_CA37 dw 1234h db 0F3h, 66h, 0A5h, 2Bh, 0FAh, 79h, 0F6h, 32h, 0C0h, 0E6h db 7Ch, 0BBh word_CA45 dw 1234h db 8Bh, 0FBh, 33h, 0F6h, 0B8h word_CA4C dw 1234h db 8Eh, 0D8h, 0B9h word_CA51 dw 1234h db 66h, 8Bh, 4, 66h, 26h, 9, 5, 83h, 0C6h, 4, 83h, 0C7h db 4, 0E2h, 0F1h, 2Bh, 0FAh, 79h, 0EAh, 8Bh, 0FBh, 8Ch db 0C0h, 5, 0, 8, 8Eh, 0C0h, 3Dh, 0, 0C0h, 72h, 0DCh, 3Dh db 0, 0C8h, 73h, 7, 5, 0, 20h, 8Eh, 0C0h, 0EBh, 0D0h, 1Fh db 5Fh, 5Eh, 5Dh, 0CAh, 6, 0, 90h ; --------------------------------------------------------------------------- loc_CA88: push bp mov bp, sp push si push di push large 0C00000h call grcg_setcolor mov si, [bp+6] shl si, 4 add si, 1D0Eh mov ax, [bp+0Ah] sar ax, 3 add ax, [si+6] mov bx, [si+8] shl bx, 2 add ax, bx dec ax mov di, ax mov cs:word_CB09, ax mov cs:word_CB31, ax mov cs:word_CAF3, bx mov cs:word_CB1F, bx mov ax, 50h ; 'P' sub ax, bx mov cs:word_CAEF, ax mov cs:word_CB1B, ax jmp short $+2 mov ax, [bp+8] mov bx, ax shl ax, 2 add ax, bx add ax, 0A800h mov es, ax mov bx, 20D6h mov fs, word ptr [si+0Ch] xor si, si ; --------------------------------------------------------------------------- db 0BAh word_CAEF dw 1234h ; --------------------------------------------------------------------------- nop ; --------------------------------------------------------------------------- db 0B9h word_CAF3 dw 1234h db 64h, 8Ah, 4, 0D7h, 26h, 88h, 5, 46h, 4Fh, 0E2h, 0F5h db 2Bh, 0FAh, 79h, 0EEh, 32h, 0C0h, 0E6h, 7Ch, 0BFh word_CB09 dw 1234h db 8Bh, 76h, 6, 0C1h, 0E6h, 4, 81h, 0C6h, 0Eh, 1Dh, 8Eh db 64h, 0Eh, 33h, 0F6h, 0BAh word_CB1B dw 1234h ; --------------------------------------------------------------------------- nop ; --------------------------------------------------------------------------- db 0B9h word_CB1F dw 4D2h db 64h, 8Ah, 4, 0D7h, 26h, 8, 5, 46h, 4Fh, 0E2h, 0F5h db 2Bh, 0FAh, 79h, 0EEh, 0BFh word_CB31 dw 1234h db 8Ch, 0C0h, 5, 0, 8, 8Eh, 0C0h, 3Dh, 0, 0C0h, 72h, 0DFh db 3Dh, 0, 0C8h, 73h, 7, 5, 0, 20h, 8Eh, 0C0h, 0EBh, 0D3h db 5Fh, 5Eh, 5Dh, 0CAh, 6, 0, 90h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_CB52 proc far arg_0 = word ptr 6 push bp mov bp, sp mov vsync_Count1, 0 loc_CB5B: mov ax, vsync_Count1 cmp ax, [bp+arg_0] jb short loc_CB5B pop bp retf 2 sub_CB52 endp ; --------------------------------------------------------------------------- db 0 ; =============== S U B R O U T I N E ======================================= sub_CB68 proc far xor ax, ax mov word_100F8, ax mov word_100FA, ax mov word_100FC, ax mov word_F80A, ax jmp short $+2 mov bl, 2 xor ax, ax mov es, ax loc_CB7E: mov ah, byte ptr es:[531h] test ah, 4 jz short loc_CB8D or word_100FC, 1 loc_CB8D: test ah, 20h jz short loc_CB97 or word_100FC, 2 loc_CB97: test ah, 8 jz short loc_CBA6 or word_100FA, 20h or word_100FC, 4 loc_CBA6: test ah, 10h jz short loc_CBB5 or word_100FA, 10h or word_100FC, 8 loc_CBB5: mov ah, byte ptr es:[533h] test ah, 1 jz short loc_CBC9 or word_100FA, 8 or word_100FC, 8 loc_CBC9: test ah, 4 jz short loc_CBDA or word_100FA, 200h or word_100FC, 200h loc_CBDA: test ah, 8 jz short loc_CBE9 or word_100FA, 2 or word_100FC, 2 loc_CBE9: test ah, 10h jz short loc_CBFA or word_100FA, 800h or word_100FC, 800h loc_CBFA: mov ah, byte ptr es:[532h] test ah, 40h jz short loc_CC0E or word_100FA, 4 or word_100FC, 4 loc_CC0E: test ah, 4 jz short loc_CC1F or word_100FA, 100h or word_100FC, 100h loc_CC1F: test ah, 8 jz short loc_CC2E or word_100FA, 1 or word_100FC, 1 loc_CC2E: test ah, 10h jz short loc_CC3F or word_100FA, 400h or word_100FC, 400h loc_CC3F: mov ah, byte ptr es:[52Fh] test ah, 2 jz short loc_CC53 or word_100F8, 20h or word_100FC, 20h loc_CC53: test ah, 4 jz short loc_CC62 or word_100F8, 10h or word_100FC, 10h loc_CC62: test ah, 10h jz short loc_CC6D or word_100F8, 200h loc_CC6D: test ah, 20h jz short loc_CC77 or word_100F8, 2 loc_CC77: test ah, 40h jz short loc_CC82 or word_100F8, 800h loc_CC82: mov ah, byte ptr es:[52Eh] test ah, 1 jz short loc_CC91 or word_100F8, 4 loc_CC91: test ah, 4 jz short loc_CC9B or word_100F8, 8 loc_CC9B: mov ah, byte ptr es:[52Ch] test ah, 8 jz short loc_CCAB or word_100F8, 100h loc_CCAB: test ah, 10h jz short loc_CCB5 or word_100F8, 1 loc_CCB5: test ah, 20h jz short loc_CCC0 or word_100F8, 400h loc_CCC0: test ah, 1 jz short loc_CCCB or word_100FC, 4000h loc_CCCB: mov ah, byte ptr es:[52Ah] test ah, 1 jz short loc_CCDB or word_100FC, 1000h loc_CCDB: mov ah, byte ptr es:[52Dh] test ah, 10h jz short loc_CCEB or word_100FC, 2000h loc_CCEB: mov ah, byte ptr es:[530h] test ah, 10h jz short loc_CCFA or word_100FC, 20h loc_CCFA: dec bl jz short locret_CD08 mov cx, 400h loc_CD01: out 5Fh, al loop loc_CD01 jmp loc_CB7E ; --------------------------------------------------------------------------- locret_CD08: retf sub_CB68 endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_CD0A 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, 1F3Eh push ax ; src push ds push offset Palettes ; dest call _memcpy add sp, 0Ah call far ptr palette_show pop bp retf 2 sub_CD0A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_CD2F 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_0] mov bx, di shl bx, 2 mov ax, [bx+1F10h] mov dx, [bx+1F0Eh] mov word ptr [bp+var_4+2], ax mov word ptr [bp+var_4], dx mov [bp+var_6], 0 jmp short loc_CDA3 ; --------------------------------------------------------------------------- loc_CD55: push [bp+arg_4] push si push large [bp+var_4] mov bx, di imul bx, 48h push word ptr [bx+1F3Ah] call graph_pack_put_8 inc si cmp si, 190h jl short loc_CD76 sub si, 190h loc_CD76: mov bx, di imul bx, 48h mov ax, [bx+1F3Ah] 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_CDA3: mov bx, di imul bx, 48h mov ax, [bx+1F3Ch] cmp ax, [bp+var_6] ja short loc_CD55 pop di pop si leave retf 6 sub_CD2F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_CDB7 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_0] mov bx, di shl bx, 2 mov ax, [bx+1F10h] mov dx, [bx+1F0Eh] mov word ptr [bp+var_4+2], ax mov word ptr [bp+var_4], dx mov [bp+var_6], 0 jmp short loc_CE2A ; --------------------------------------------------------------------------- loc_CDDD: push [bp+arg_4] push si push large [bp+var_4] mov bx, di imul bx, 48h push word ptr [bx+1F3Ah] call graph_pack_put_8 inc si cmp si, 190h jl short loc_CDFE sub si, 190h loc_CDFE: mov bx, di imul bx, 48h mov ax, [bx+1F3Ah] 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 add [bp+var_6], 2 loc_CE2A: mov bx, di imul bx, 48h mov ax, [bx+1F3Ch] cmp ax, [bp+var_6] ja short loc_CDDD pop di pop si leave retf 6 sub_CDB7 endp ; =============== S U B R O U T I N E ======================================= sub_CE3E proc far mov byte_EC7D, 0 mov byte_EC7C, 0FFh retf sub_CE3E endp ; --------------------------------------------------------------------------- nop ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_CE4A proc far arg_0 = word ptr 6 push bp mov bp, sp mov dx, [bp+arg_0] cmp byte_10060, 0 jz short loc_CE82 cmp byte_EC7C, 0FFh jnz short loc_CE66 mov byte_EC7C, dl pop bp retf 2 ; --------------------------------------------------------------------------- loc_CE66: mov al, byte_EC7C mov ah, 0 mov bx, ax mov al, [bx+896h] mov bx, dx cmp al, [bx+896h] ja short loc_CE82 mov byte_EC7C, dl mov byte_EC7D, 0 loc_CE82: pop bp retf 2 sub_CE4A endp ; =============== S U B R O U T I N E ======================================= sub_CE86 proc far cmp byte_10060, 0 jz short locret_CEC1 cmp byte_EC7C, 0FFh jz short locret_CEC1 cmp byte_EC7D, 0 jnz short loc_CEA2 mov ah, 0Ch mov al, byte_EC7C 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_CEA2: inc byte_EC7D mov al, byte_EC7C mov ah, 0 mov bx, ax mov al, [bx+8B7h] cmp al, byte_EC7D jnb short locret_CEC1 mov byte_EC7D, 0 mov byte_EC7C, 0FFh locret_CEC1: retf sub_CE86 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_CEC2 proc far arg_0 = word ptr 6 push bp mov bp, sp cmp byte_EC70, 0 jz short loc_CEDC mov ax, [bp+arg_0] cmp byte_10061, 1 jz short loc_CEDA int 60h jmp short loc_CEDC ; --------------------------------------------------------------------------- loc_CEDA: int 61h ; reserved for user interrupt loc_CEDC: pop bp retf 2 sub_CEC2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_CEE0 proc far arg_0 = dword ptr 6 push bp mov bp, sp push 4650h call mem_assign_dos or ax, ax jz short loc_CEF6 mov ax, 1 pop bp retf 4 ; --------------------------------------------------------------------------- loc_CEF6: nop push cs call near ptr sub_C7E2 call vsync_start call egc_start call graph_400line call sub_2AAE push large [bp+arg_0] call sub_2856 xor ax, ax pop bp retf 4 sub_CEE0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_CF1E proc far var_4 = dword ptr -4 arg_0 = word ptr 6 arg_2 = dword ptr 8 arg_6 = word ptr 0Ch enter 4, 0 push si push di mov di, [bp+arg_6] push di nop push cs call near ptr sub_D130 mov ax, di shl ax, 4 add ax, 1D0Eh mov si, ax push large [bp+arg_2] call file_ropen push ds push si push 10h call file_read mov ax, [si] imul ax, 5 movzx eax, ax mov [bp+var_4], eax movsx eax, [bp+arg_0] imul eax, [bp+var_4] push eax push 1 call file_seek push word ptr [si] call hmem_allocbyte mov [si+0Ch], ax push word ptr [si+0Ch] push 0 push word ptr [si] call file_read mov ax, [si] shl ax, 2 push ax call hmem_allocbyte mov [si+0Eh], ax push word ptr [si+0Eh] push 0 mov ax, [si] shl ax, 2 push ax call file_read call file_close pop di pop si leave retf 8 sub_CF1E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_CFA8 proc far var_4 = dword ptr -4 arg_0 = word ptr 6 arg_2 = dword ptr 8 arg_6 = word ptr 0Ch enter 4, 0 push si push di mov di, [bp+arg_6] push di nop push cs call near ptr sub_D130 mov ax, di shl ax, 4 add ax, 1D0Eh mov si, ax push large [bp+arg_2] call file_ropen push ds push si push 10h call file_read mov ax, [si] imul ax, 5 movzx eax, ax mov [bp+var_4], eax movsx eax, [bp+arg_0] imul eax, [bp+var_4] push eax push 1 call file_seek movzx eax, word ptr [si] push eax push 1 call file_seek mov word ptr [si+0Ch], 0 mov ax, [si] shl ax, 2 push ax call hmem_allocbyte mov [si+0Eh], ax push word ptr [si+0Eh] push 0 mov ax, [si] shl ax, 2 push ax call file_read call file_close pop di pop si leave retf 8 sub_CFA8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_D02E proc far var_2 = word ptr -2 arg_0 = dword ptr 6 arg_4 = word ptr 0Ah enter 2, 0 push si push di push large [bp+arg_0] call file_ropen push [bp+arg_4] nop push cs call near ptr sub_D130 mov ax, [bp+arg_4] shl ax, 4 add ax, 1D0Eh mov si, ax push ds push ax push 10h call file_read mov di, si mov [bp+var_2], 1 jmp short loc_D071 ; --------------------------------------------------------------------------- loc_D062: mov ax, [bp+arg_4] add ax, [bp+var_2] push ax nop push cs call near ptr sub_D130 inc [bp+var_2] loc_D071: mov al, [di+0Ah] mov ah, 0 cmp ax, [bp+var_2] jg short loc_D062 mov [bp+var_2], 0 jmp short loc_D0FD ; --------------------------------------------------------------------------- loc_D082: mov ax, [di] mov [si], ax mov ax, [di+2] mov [si+2], ax mov ax, [di+4] mov [si+4], ax mov ax, [di+6] mov [si+6], ax mov ax, [di+8] mov [si+8], ax mov al, [di+0Ah] mov [si+0Ah], al mov byte ptr [si+0Bh], 0 cmp byte_EC84, 0 jnz short loc_D0C7 push word ptr [si] call hmem_allocbyte mov [si+0Ch], ax push word ptr [si+0Ch] push 0 push word ptr [si] call file_read jmp short loc_D0D9 ; --------------------------------------------------------------------------- loc_D0C7: mov word ptr [si+0Ch], 0 movzx eax, word ptr [si] push eax push 1 call file_seek loc_D0D9: mov ax, [si] shl ax, 2 push ax call hmem_allocbyte mov [si+0Eh], ax push word ptr [si+0Eh] push 0 mov ax, [si] shl ax, 2 push ax call file_read inc [bp+var_2] add si, 10h loc_D0FD: mov al, [di+0Ah] mov ah, 0 cmp ax, [bp+var_2] jg loc_D082 call file_close pop di pop si leave retf 6 sub_D02E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_D114 proc far arg_0 = dword ptr 6 arg_4 = word ptr 0Ah push bp mov bp, sp mov byte_EC84, 1 push [bp+arg_4] push large [bp+arg_0] push cs call near ptr sub_D02E mov byte_EC84, 0 pop bp retf 6 sub_D114 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_D130 proc far arg_0 = word ptr 6 push bp mov bp, sp push si push di mov ax, [bp+arg_0] shl ax, 4 add ax, 1D0Eh mov di, ax xor si, si jmp short loc_D164 ; --------------------------------------------------------------------------- loc_D144: mov bx, si add bx, bx cmp word ptr [bx+di+0Ch], 0 jz short loc_D163 mov bx, si add bx, bx push word ptr [bx+di+0Ch] call hmem_free mov bx, si add bx, bx mov word ptr [bx+di+0Ch], 0 loc_D163: inc si loc_D164: cmp si, 2 jl short loc_D144 pop di pop si pop bp retf 2 sub_D130 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_D16F proc far push bp mov bp, sp call sub_2912 mov dx, 0A6h ; 'ヲ' mov al, 0 out dx, al mov dx, 0A4h out dx, al call vsync_end call mem_unassign call js_end call egc_start pop bp retf sub_D16F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_D197 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 = dword ptr 6 arg_4 = word ptr 0Ah arg_6 = word ptr 0Ch arg_8 = word ptr 0Eh enter 32h, 0 push si push di mov di, [bp+arg_8] 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 mov ax, [bp+arg_4] and ax, 0Fh push ax call grcg_setcolor mov dx, 68h ; 'h' mov al, 0Bh out dx, al jmp loc_D3E0 ; --------------------------------------------------------------------------- loc_D1D0: mov ax, [bp+arg_6] 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_0] assume es:nothing mov al, es:[bx] mov ah, 0 mov bx, ax test byte ptr [bx+11EFh], 4 jz short loc_D225 mov bx, word ptr [bp+arg_0] 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_0], 2 jmp short loc_D26B ; --------------------------------------------------------------------------- loc_D225: les bx, [bp+arg_0] mov al, es:[bx] mov ah, 0 mov bx, ax test byte ptr [bx+11EFh], 3 jz short loc_D243 mov bx, word ptr [bp+arg_0] mov al, es:[bx] mov ah, 0 add ax, 2980h jmp short loc_D25E ; --------------------------------------------------------------------------- loc_D243: les bx, [bp+arg_0] mov al, es:[bx] cbw mov bx, ax test byte ptr [bx+0F05h], 5Eh jz short loc_D263 mov bx, word ptr [bp+arg_0] mov al, es:[bx] mov ah, 0 add ax, 2900h loc_D25E: mov [bp+var_2], ax jmp short loc_D268 ; --------------------------------------------------------------------------- loc_D263: mov [bp+var_2], 2B21h loc_D268: inc word ptr [bp+arg_0] loc_D26B: 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_D2CC cmp [bp+var_2], 2B7Eh ja short loc_D2CC cmp di, 278h jg loc_D3EB mov [bp+var_12], 0 jmp short loc_D2BF ; --------------------------------------------------------------------------- loc_D29D: 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_D2BF: cmp [bp+var_12], 10h jl short loc_D29D mov [bp+var_A], 0 jmp short loc_D322 ; --------------------------------------------------------------------------- loc_D2CC: cmp di, 270h jg loc_D3EB mov [bp+var_12], 0 jmp short loc_D317 ; --------------------------------------------------------------------------- loc_D2DB: 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_D317: cmp [bp+var_12], 10h jl short loc_D2DB mov [bp+var_A], 1 loc_D322: mov [bp+var_12], 0 jmp loc_D3C7 ; --------------------------------------------------------------------------- loc_D32A: 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_D34E cmp ax, 2 jz short loc_D364 cmp ax, 3 jz short loc_D35A jmp short loc_D37A ; --------------------------------------------------------------------------- loc_D34E: mov si, [bp+var_4] mov ax, si add ax, ax or [bp+var_4], ax jmp short loc_D37A ; --------------------------------------------------------------------------- loc_D35A: mov si, [bp+var_4] mov ax, si add ax, ax or [bp+var_4], ax loc_D364: 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_D37A: cmp [bp+var_C], 0 jz short loc_D3AD 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_D3C0 ; --------------------------------------------------------------------------- loc_D3AD: 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_D3C0: add word ptr [bp+var_8], 50h ; 'P' inc [bp+var_12] loc_D3C7: cmp [bp+var_12], 10h jl loc_D32A cmp [bp+var_A], 0 jz short loc_D3D8 add di, 8 loc_D3D8: mov ax, [bp+var_10] add ax, 8 add di, ax loc_D3E0: les bx, [bp+arg_0] cmp byte ptr es:[bx], 0 jnz loc_D1D0 loc_D3EB: mov dx, 68h ; 'h' mov al, 0Ah out dx, al call grcg_off pop di pop si leave retf 0Ah sub_D197 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_D3FC proc far arg_0 = word ptr 6 arg_2 = word ptr 8 push bp mov bp, sp cmp byte_EC70, 0 jnz short loc_D412 push [bp+arg_0] nop push cs call near ptr sub_CB52 pop bp retf 4 ; --------------------------------------------------------------------------- loc_D412: mov ah, 5 cmp byte_10061, 1 jz short loc_D41F 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_D424 ; --------------------------------------------------------------------------- loc_D41F: mov dx, 0C0h int 61h ; reserved for user interrupt loc_D424: cmp ax, [bp+arg_2] jb short loc_D412 pop bp retf 4 sub_D3FC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_D42D proc far arg_0 = word ptr 6 arg_2 = word ptr 8 push bp mov bp, sp cmp byte_EC70, 0 jnz short loc_D443 push [bp+arg_0] nop push cs call near ptr sub_D47A pop bp retf 4 ; --------------------------------------------------------------------------- loc_D443: mov ah, 5 cmp byte_10061, 1 jz short loc_D450 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_D455 ; --------------------------------------------------------------------------- loc_D450: mov dx, 0C0h int 61h ; reserved for user interrupt loc_D455: nop push cs call near ptr sub_D5A2 test byte ptr word_100FC, 20h jnz short loc_D468 test byte ptr word_100FC+1, 20h jz short loc_D46F loc_D468: mov ax, 1 pop bp retf 4 ; --------------------------------------------------------------------------- loc_D46F: cmp ax, [bp+arg_2] jb short loc_D443 xor ax, ax pop bp retf 4 sub_D42D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_D47A proc far arg_0 = word ptr 6 push bp mov bp, sp mov vsync_Count1, 0 loc_D483: nop push cs call near ptr sub_D5A2 test byte ptr word_100FC, 20h jnz short loc_D496 test byte ptr word_100FC+1, 20h jz short loc_D49D loc_D496: mov ax, 1 pop bp retf 2 ; --------------------------------------------------------------------------- loc_D49D: mov ax, vsync_Count1 cmp ax, [bp+arg_0] jb short loc_D483 xor ax, ax pop bp retf 2 sub_D47A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_D4AB proc far var_2 = word ptr -2 arg_0 = dword ptr 6 arg_4 = word ptr 0Ah enter 2, 0 push si mov si, [bp+arg_4] mov ax, si imul ax, 48h add ax, 1F26h push ds push ax mov bx, si shl bx, 2 push large dword ptr [bx+1F0Eh] call graph_pi_free push large [bp+arg_0] mov ax, si imul ax, 48h add ax, 1F26h push ds push ax mov ax, si shl ax, 2 add ax, 1F0Eh push ds push ax call graph_pi_load_pack mov [bp+var_2], ax pop si leave retf 6 sub_D4AB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_D4F1 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 arg_6 = word ptr 0Ch enter 6, 0 push si push di mov si, [bp+arg_4] mov di, [bp+arg_0] mov bx, [bp+arg_2] shl bx, 2 mov ax, [bx+1F10h] mov dx, [bx+1F0Eh] mov word ptr [bp+var_4+2], ax mov word ptr [bp+var_4], dx cmp di, 1 jnz short loc_D51D add word ptr [bp+var_4], 0A0h jmp short loc_D533 ; --------------------------------------------------------------------------- loc_D51D: cmp di, 2 jnz short loc_D529 add word ptr [bp+var_4], 0FA00h jmp short loc_D533 ; --------------------------------------------------------------------------- loc_D529: cmp di, 3 jnz short loc_D533 add word ptr [bp+var_4], 0FAA0h loc_D533: 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 mov [bp+var_6], 0 jmp short loc_D595 ; --------------------------------------------------------------------------- loc_D556: push [bp+arg_6] push si push large [bp+var_4] push 140h call graph_pack_put_8 inc si cmp si, 190h jl short loc_D571 sub si, 190h loc_D571: add word ptr [bp+var_4], 140h 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_D595: cmp [bp+var_6], 0C8h jl short loc_D556 pop di pop si leave retf 8 sub_D4F1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_D5A2 proc far push bp mov bp, sp nop push cs call near ptr sub_CB68 cmp word_E960, 0 jz short loc_D5BD call sub_2AEA mov ax, word_F80A or word_100FC, ax loc_D5BD: mov ax, word_100F8 or word_100FC, ax pop bp retf sub_D5A2 endp ; --------------------------------------------------------------------------- push bp mov bp, sp nop push cs call near ptr sub_CB68 pop bp retf ; --------------------------------------------------------------------------- push bp mov bp, sp nop push cs call near ptr sub_CB68 cmp word_E960, 0 jz short loc_D5F0 call sub_2AEA mov ax, word_F80A mov word_100F8, ax mov ax, word_100FC mov word_100FA, ax loc_D5F0: pop bp retf ; --------------------------------------------------------------------------- push bp mov bp, sp nop push cs call near ptr sub_CB68 cmp word_E960, 0 jz short loc_D612 call sub_2AEA mov ax, word_F80A mov word_100FA, ax mov ax, word_100FC mov word_100F8, ax loc_D612: pop bp retf ; --------------------------------------------------------------------------- push bp mov bp, sp nop push cs call near ptr sub_CB68 mov ax, word_100FC or word_100F8, ax cmp word_E960, 0 jz short loc_D636 call sub_2AEA mov ax, word_F80A or word_100F8, ax loc_D636: mov word_100FA, 0 pop bp retf ; --------------------------------------------------------------------------- push bp mov bp, sp nop push cs call near ptr sub_CB68 mov ax, word_100FC or ax, word_100F8 mov word_100FA, ax cmp word_E960, 0 jz short loc_D663 call sub_2AEA mov ax, word_F80A or word_100FA, ax loc_D663: mov word_100F8, 0 pop bp retf ; --------------------------------------------------------------------------- push bp mov bp, sp nop push cs call near ptr sub_CB68 test byte ptr word_100FC+1, 10h jnz short loc_D681 test byte ptr word_100FC+1, 20h jz short loc_D687 loc_D681: mov word_100FC, 1000h loc_D687: mov word_100F8, 0 mov word_100FA, 0 pop bp retf ; --------------------------------------------------------------------------- push bp mov bp, sp nop push cs call near ptr sub_CB68 cmp word_E960, 0 jz short loc_D6B0 call sub_2AEA mov ax, word_F80A or word_100FC, ax loc_D6B0: mov ax, word_100F8 or word_100FC, ax mov word_100F8, 0 mov word_100FA, 0 pop bp retf ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_D6C5 proc far arg_0 = word ptr 6 push bp mov bp, sp push si push di mov si, [bp+arg_0] xor di, di loc_D6CF: push cs call near ptr sub_D5A2 cmp word_100FC, 0 jz short loc_D6E3 push 1 nop push cs call near ptr sub_CB52 jmp short loc_D6CF ; --------------------------------------------------------------------------- loc_D6E3: or si, si jnz short loc_D707 mov si, 270Fh jmp short loc_D707 ; --------------------------------------------------------------------------- loc_D6EC: push cs call near ptr sub_D5A2 cmp word_100FC, 0 jnz short loc_D70B inc di push 1 nop push cs call near ptr sub_CB52 cmp si, 270Fh jnz short loc_D707 xor di, di loc_D707: cmp di, si jl short loc_D6EC loc_D70B: pop di pop si pop bp retf 2 sub_D6C5 endp ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- loc_D712: push bp mov bp, sp push si push di mov si, [bp+6] shl si, 4 add si, 1D0Eh mov ax, [bp+0Ah] sar ax, 3 add ax, [si+6] mov di, ax mov ax, [si+8] mov cs:word_D759, ax jmp short $+2 shl ax, 2 add ax, 50h ; 'P' mov dx, ax mov ax, [bp+8] mov bx, ax shl ax, 2 add ax, bx add ax, 0A800h mov es, ax push ds mov ax, [si+0Eh] mov ds, ax xor si, si mov bx, di cld nop ; --------------------------------------------------------------------------- db 0B9h word_D759 dw 1234h db 0F3h, 66h, 0A5h, 2Bh, 0FAh, 79h, 0F6h, 8Bh, 0FBh, 8Ch db 0C0h, 5, 0, 8, 8Eh, 0C0h, 3Dh, 0, 0C0h, 72h, 0E8h, 3Dh db 0, 0C8h, 73h, 7, 5, 0, 20h, 8Eh, 0C0h, 0EBh, 0DCh, 1Fh db 5Fh, 5Eh, 5Dh, 0CAh, 6, 0, 90h ; =============== S U B R O U T I N E ======================================= sub_D784 proc far push di xor ax, ax mov di, 20D6h xor dl, dl jmp short loc_D799 ; --------------------------------------------------------------------------- loc_D78E: xor dl, dl mov cx, 8 loc_D793: rol al, 1 rcr dl, 1 loop loc_D793 loc_D799: mov [di], dl inc di inc al jnz short loc_D78E pop di retf sub_D784 endp seg002 ends ; =========================================================================== ; Segment type: Pure code seg003 segment byte public 'CODE' use16 assume cs:seg003 ;org 2 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 seg003 ends ; =========================================================================== ; Segment type: Pure data dseg segment para public 'DATA' use16 assume cs:dseg include libs/BorlandC/c0[data].asm db 22h ; " db 1 db 2Bh ; + db 1 db 34h ; 4 db 1 db 3Dh ; = db 1 db 46h ; F db 1 db 4Fh ; O db 1 db 58h ; X db 1 db 61h ; a db 1 db 6Ah ; j db 1 dd a@00tx_txt ; "@00TX.TXT" dd a@01tx_txt ; "@01TX.TXT" dd a@02tx_txt ; "@02TX.TXT" dd a@03tx_txt ; "@03TX.TXT" dd a@04tx_txt ; "@04TX.TXT" dd a@05tx_txt ; "@05TX.TXT" dd a@06tx_txt ; "@06TX.TXT" dd a@07tx_txt ; "@07TX.TXT" dd a@08tx_txt ; "@08TX.TXT" off_E4B6 dd a@00dm0_txt ; "@00DM0.TXT" CHAR_TITLE dd TITLE_REIMU ; " 夢と伝統を保守する巫女 " CHAR_NAME dd NAME_REIMU ; " 博麗 靈夢" dd TITLE_MIMA ; " 久遠の夢に運命を任せる精神 " dd NAME_MIMA ; " 魅 魔" dd TITLE_MARISA ; " 魔法と紅夢からなる存在 " dd NAME_MARISA ; " 霧雨 魔理沙 " dd TITLE_ELLEN ; "はたらきもので恋を夢見る魔女" dd NAME_ELLEN ; "  エレン" dd TITLE_KOTOHIME ; " 弾幕に美を夢みる姫 " dd NAME_KOTOHIME ; " 小兎姫" dd TITLE_KANA ; " 夢を失った少女騒霊 " dd NAME_KANA ; "カナ・アナベラル" dd TITLE_RIKAKO ; "    夢を探す科学 " dd NAME_RIKAKO ; " 朝倉 理香子" dd TITLE_CHIYURI ; "  時をかける夢幻の住人 " dd NAME_CHIYURI ; " 北白河 ちゆり" dd TITLE_YUMEMI ; "     夢幻伝説    " dd NAME_YUMEMI ; "  岡崎 夢美" word_E502 dw 38Ah word_E504 dw 391h a0016_pi db '0016.pi',0 db 0 db 0 db 0 db 0 a00sl_cd2 db '00sl.cd2',0 a02sl_cd2 db '02sl.cd2',0 a04sl_cd2 db '04sl.cd2',0 a06sl_cd2 db '06sl.cd2',0 a08sl_cd2 db '08sl.cd2',0 a10sl_cd2 db '10sl.cd2',0 a12sl_cd2 db '12sl.cd2',0 a14sl_cd2 db '14sl.cd2',0 a16sl_cd2 db '16sl.cd2',0 a@00tx_txt db '@00TX.TXT',0 a@01tx_txt db '@01TX.TXT',0 a@02tx_txt db '@02TX.TXT',0 a@03tx_txt db '@03TX.TXT',0 a@04tx_txt db '@04TX.TXT',0 a@05tx_txt db '@05TX.TXT',0 a@06tx_txt db '@06TX.TXT',0 a@07tx_txt db '@07TX.TXT',0 a@08tx_txt db '@08TX.TXT',0 a@00dm0_txt db '@00DM0.TXT',0 TITLE_REIMU db ' 夢と伝統を保守する巫女 ',0 NAME_REIMU db ' 博麗 靈夢',0 TITLE_MIMA db ' 久遠の夢に運命を任せる精神 ',0 NAME_MIMA db ' 魅 魔',0 TITLE_MARISA db ' 魔法と紅夢からなる存在 ',0 NAME_MARISA db ' 霧雨 魔理沙 ',0 TITLE_ELLEN db 'はたらきもので恋を夢見る魔女',0 NAME_ELLEN db '  エレン',0 TITLE_KOTOHIME db ' 弾幕に美を夢みる姫 ',0 NAME_KOTOHIME db ' 小兎姫',0 TITLE_KANA db ' 夢を失った少女騒霊 ',0 NAME_KANA db 'カナ・アナベラル',0 TITLE_RIKAKO db '    夢を探す科学 ',0 NAME_RIKAKO db ' 朝倉 理香子',0 TITLE_CHIYURI db '  時をかける夢幻の住人 ',0 NAME_CHIYURI db ' 北白河 ちゆり',0 TITLE_YUMEMI db '     夢幻伝説    ',0 NAME_YUMEMI db '  岡崎 夢美',0 aYume_cfg db 'YUME.CFG',0 aLogo0_rgb db 'logo0.rgb',0 aLogo_cd2 db 'logo.cd2',0 aLogo5_cdg db 'logo5.cdg',0 aLogo1_rgb db 'logo1.rgb',0 aSt_cd2 db 'st.cd2',0 aStnx1_pi db 'stnx1.pi',0 aStnx0_pi db 'stnx0.pi',0 a00mm_m db '00mm.m',0 aDec_m db 'dec.m',0 aEn2_pi db 'EN2.pi',0 aEnemy00_pi db 'ENEMY00.pi',0 aEnemy01_pi db 'ENEMY01.pi',0 aEnemy02_pi db 'ENEMY02.pi',0 aEnemy03_pi db 'ENEMY03.pi',0 aEnemy04_pi db 'ENEMY04.pi',0 aYume_efc db 'YUME.EFC',0 aCOul db '夢時空1.dat',0 aMikoft_bft db 'MIKOFT.bft',0 ; char path[] path db 'op',0 aWin_m db 'win.m',0 ; char aMain[] aMain db 'main',0 include libs/master.lib/atan8[data].asm 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 word_E960 dw 0 db 0 db 0 db 0 db 0 db 0 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/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 byte_EC70 db 0 db 0 include libs/master.lib/respal_exist[data].asm byte_EC7C db 0FFh byte_EC7D db 0 a_exe db '.exe',0 db 0 byte_EC84 db 0 db 0 db 0 db 0 db 20h db 10h db 2 db 12h db 12h db 12h db 40h db 10h db 11h db 2 db 11h db 20h db 12h db 12h db 12h db 12h db 20h db 20h db 12h db 12h db 0Eh db 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 32h ; 2 db 20h db 18h db 44h ; D db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 30h ; 0 db 0 aOver_pi db 'over.pi',0 db 0 db 0 db 11h db 11h db 0 db 0 db 44h ; D db 44h ; D db 88h db 88h db 11h db 11h db 22h ; " db 22h ; " db 44h ; D db 44h ; D db 0AAh ; ェ db 0AAh ; ェ db 55h ; U db 55h ; U db 0AAh ; ェ db 0AAh ; ェ db 55h ; U db 55h ; U db 0EEh db 0EEh db 77h ; w db 77h ; w db 0BBh db 0BBh db 0DDh db 0DDh db 20h db 20h db 0 db 0 dd aNoEntry ; " No Entry! " dd aB@b@sCB@b@ ; "  靈夢  " dd aB@b@cgcvb@b@ ; "  魅魔  " dd aB@cvcanB@ ; "  魔理沙  " dd aB@gggmgub@ ; "  エレン  " dd aB@pmuexpb@ ; "  小兎姫  " dd aB@Gjgi ; "   カナ " dd aB@canboq ; "  理香子 " dd aB@vVfvsb@ ; "  ちゆり  " dd aB@CF ; "   夢美  " db 14h db 4 db 8 db 0Ch db 17h db 0Eh db 0Eh db 0Eh db 0Ch db 8 db 0Ch db 0 db 0Eh db 0Eh db 0Eh db 0Eh db 0Ch db 0 db 14h db 8 db 15h db 0 db 0Eh db 0Eh db 4 db 0Bh db 4 db 10h db 0Eh db 0Eh db 0Eh db 0Eh db 0Ah db 11h db 16h db 11h db 7 db 8 db 0Ch db 4 db 0Ah db 0 db 10h db 0 db 0Eh db 0Eh db 0Eh db 0Eh db 14h db 8 db 0Ah db 0 db 0Ah db 11h db 0Eh db 0Eh db 2 db 7 db 8 db 1Bh db 17h db 14h db 8 db 0Eh db 1Bh db 17h db 0Ch db 4 db 0Ch db 8 db 0Eh db 0Eh word_ED66 dw 0A04h word_ED68 dw 0A0Dh unk_ED6A db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 aNoEntry db ' No Entry! ',0 aB@b@sCB@b@ db '  靈夢  ',0 aB@b@cgcvb@b@ db '  魅魔  ',0 aB@cvcanB@ db '  魔理沙  ',0 aB@gggmgub@ db '  エレン  ',0 aB@pmuexpb@ db '  小兎姫  ',0 aB@Gjgi db '   カナ ',0 aB@canboq db '  理香子 ',0 aB@vVfvsb@ db '  ちゆり  ',0 aB@CF db '   夢美  ',0 aYume_nem db 'YUME.NEM',0 aRft0_cdg db 'rft0.cdg',0 aRegib_pi db 'regib.pi',0 aRegi2_bft db 'regi2.bft',0 aRegi1_bft db 'regi1.bft',0 aScore_m db 'score.m',0 aConti_pi db 'conti.pi',0 aConti_cd2 db 'conti.cd2',0 aOver_pi_0 db 'over.pi',0 aOver_m db 'over.m',0 db 0 off_EE4E dd a@00ed_txt ; "@00ED.TXT" db 3Ch ; < db 0 db 7Eh ; ~ db 0 db 0FFh db 0 db 0FFh db 0 db 0FFh db 0 db 0FFh db 0 db 7Eh ; ~ db 0 db 3Ch ; < db 0 db 0 db 0 db 18h db 0 db 3Ch ; < db 0 db 7Eh ; ~ db 0 db 7Eh ; ~ db 0 db 3Ch ; < db 0 db 18h db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 18h db 0 db 3Ch ; < db 0 db 3Ch ; < db 0 db 18h db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 18h db 0 db 18h db 0 db 0 db 0 db 0 db 0 db 0 db 0 db 0FFh db 0FFh db 0FFh db 0FFh db 0FFh db 0FFh db 0FFh db 0FFh db 22h ; " db 22h ; " db 55h ; U db 55h ; U db 88h db 88h db 55h ; U db 55h ; U db 0AAh ; ェ db 0AAh ; ェ db 55h ; U db 55h ; U db 0AAh ; ェ db 0AAh ; ェ db 55h ; U db 55h ; U db 0EEh db 0EEh db 55h ; U db 55h ; U db 0BBh db 0BBh db 55h ; U db 55h ; U db 0EEh db 0EEh db 77h ; w db 77h ; w db 0BBh db 0BBh db 0DDh db 0DDh db 0FFh db 0FFh db 55h ; U db 55h ; U db 0FFh db 0FFh db 55h ; U db 55h ; U db 0FFh db 0FFh db 0EEh db 0EEh db 0FFh db 0FFh db 0BBh db 0BBh db 0FFh db 0FFh db 77h ; w db 77h ; w db 0FFh db 0FFh db 0FFh db 0FFh dd aFocab@sC_0 ; " 博麗 靈夢" dd aCgCv_0 ; " 魅 魔" dd aCIjb@cvcan_0 ; " 霧雨 魔理沙 " dd aB@b@gggmgu_0 ; "  エレン" dd aPmuexp_0 ; " 小兎姫" dd aGjgibegagigx_0 ; "カナ・アナベラル" dd aB@tisqb@canb_0 ; " 朝倉 理香子" dd aCkftiB@vVfvs_0 ; " 北白河 ちゆり" dd aB@iknsb@cF_0 ; "  岡崎 夢美" dd aVdvbvuvs ; " Easy" dd aVmvpvtvnvbvm ; " Normal" dd aVgvbvtvd ; " Hard" dd aVkvxvovbvfvivg ; "Lunatic" dd aVo ; "0" dd aVp ; "1" dd aVq ; "2" dd aVr ; "3" dd aVs ; "4" dd aVt ; "5" dd aVu ; "6" dd aVv ; "7" dd aVw ; "8" dd aVx ; "9" a@00ed_txt db '@00ED.TXT',0 a@99ed_txt db '@99ED.TXT',0 ; char aOp_0[] aOp_0 db 'op',0 aFocab@sC_0 db ' 博麗 靈夢',0 aCgCv_0 db ' 魅 魔',0 aCIjb@cvcan_0 db ' 霧雨 魔理沙 ',0 aB@b@gggmgu_0 db '  エレン',0 aPmuexp_0 db ' 小兎姫',0 aGjgibegagigx_0 db 'カナ・アナベラル',0 aB@tisqb@canb_0 db ' 朝倉 理香子',0 aCkftiB@vVfvs_0 db ' 北白河 ちゆり',0 aB@iknsb@cF_0 db '  岡崎 夢美',0 aVdvbvuvs db ' Easy',0 aVmvpvtvnvbvm db ' Normal',0 aVgvbvtvd db ' Hard',0 aVkvxvovbvfvivg db 'Lunatic',0 aVo db '0',0 aVp db '1',0 aVq db '2',0 aVr db '3',0 aVs db '4',0 aVt db '5',0 aVu db '6',0 aVv db '7',0 aVw db '8',0 aVx db '9',0 aU_ db '点',0 aEd_m db 'ed.m',0 aEdbk1_rgb db 'edbk1.rgb',0 aStf1_cdg db 'stf1.cdg',0 aStf11_cdg db 'stf11.cdg',0 aStf3_cdg db 'stf3.cdg',0 aStf4_cdg db 'stf4.cdg',0 aStf5_cdg db 'stf5.cdg',0 aStf6_cdg db 'stf6.cdg',0 aStf7_cdg db 'stf7.cdg',0 aStf8_cdg db 'stf8.cdg',0 aStf9_cdg db 'stf9.cdg',0 aStf10_cdg db 'stf10.cdg',0 aStf2_cdg db 'stf2.cdg',0 aStf12_cdg db 'stf12.cdg',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 ; TODO: Missing clip[bss].asm (8 bytes) somewhere in there... unk_F72C db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; db ? ; db ? ; byte_F768 db ? unk_F769 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; db ? ; db ? ; byte_F7A5 db ? unk_F7A6 db ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; db ? ; db ? ; byte_F7E2 db ? byte_F7E3 db ? byte_F7E4 db ? byte_F7E5 db ? dd ? ; dd ? ; dd ? ; dd ? ; include libs/master.lib/fil[bss].asm word_F80A dw ? db ? ; db ? ; include libs/master.lib/pal[bss].asm include libs/master.lib/vs[bss].asm include libs/master.lib/vsync[bss].asm include libs/master.lib/mem[bss].asm include libs/master.lib/superpa[bss].asm dword_10050 dd ? dword_10054 dd ? dword_10058 dd ? dword_1005C dd ? byte_10060 db ? byte_10061 db ? byte_10062 db ? byte_10063 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 ? ; db ? ; db ? ; word_100F2 dw ? word_100F4 dw ? word_100F6 dw ? word_100F8 dw ? word_100FA dw ? word_100FC dw ? dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dword_102FE dd ? dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; unk_10316 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 ? ; db ? ; db ? ; db ? ; dword_105C6 dd ? dword_105CA dd ? byte_105CE db ? db ? word_105D0 dw ? word_105D2 dw ? word_105D4 dw ? byte_105D6 db ? byte_105D7 db ? word_105D8 dw ? dword_105DA dd ? word_105DE dw ? dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; byte_10630 db ? byte_10631 db ? dd ? ; byte_10636 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 ? ; db ? ; db ? ; db ? ; byte_106AA db ? byte_106AB db ? word_106AC dw ? dw ? byte_106B0 db ? dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; dd ? ; db ? ; word_10BB2 dw ? byte_10BB4 db ? byte_10BB5 db ? byte_10BB6 db ? dd ? ; db ? ; word_10BBC dw ? word_10BBE dw ? word_10BC0 dw ? word_10BC2 dw ? word_10BC4 dw ? byte_10BC6 db ? byte_10BC7 db ? word_10BC8 dw ? word_10BCA dw ? byte_10BCC db ? dd ? ; db ? ; byte_10BD2 db ? byte_10BD3 db ? byte_10BD4 db ? db ? byte_10BD6 db ? byte_10BD7 db ? byte_10BD8 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 seg005 segment byte stack 'STACK' use16 assume cs:seg005 assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing db 80h dup(?) seg005 ends end startx