mirror of https://github.com/nmlgc/ReC98.git
9872 lines
167 KiB
NASM
9872 lines
167 KiB
NASM
;
|
||
; +-------------------------------------------------------------------------+
|
||
; | This file has been generated by The Interactive Disassembler (IDA) |
|
||
; | Copyright (c) 2009 by Hex-Rays, <support@hex-rays.com> |
|
||
; +-------------------------------------------------------------------------+
|
||
;
|
||
; 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
|
||
|
||
.286 ; Force the .model directive to create 16-bit default segments...
|
||
.model large
|
||
__LARGE__ equ 1
|
||
.386 ; ... then switch to what we actually need.
|
||
; And yes, we can't move this to an include file for some reason.
|
||
|
||
include ReC98.inc
|
||
include th03/th03.asm
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
seg000 segment word public 'CODE' use16
|
||
assume cs:seg000
|
||
assume es:nothing, ss:_STACK, ds:dseg, fs:nothing, gs:nothing
|
||
|
||
include libs/BorlandC/c0.asm
|
||
db 0
|
||
include libs/master.lib/bfnt_entry_pat.asm
|
||
include libs/master.lib/bfnt_extend_header_skip.asm
|
||
include libs/master.lib/bfnt_header_read.asm
|
||
include libs/master.lib/bfnt_header_analysis.asm
|
||
include libs/master.lib/bcloser.asm
|
||
include libs/master.lib/bfill.asm
|
||
include libs/master.lib/bfnt_palette_set.asm
|
||
include libs/master.lib/bgetc.asm
|
||
include libs/master.lib/palette_black_in.asm
|
||
include libs/master.lib/palette_black_out.asm
|
||
include libs/master.lib/bopenr.asm
|
||
include libs/master.lib/bread.asm
|
||
include libs/master.lib/bseek.asm
|
||
include libs/master.lib/bseek_.asm
|
||
include libs/master.lib/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
|
||
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/master.lib/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
|
||
include libs/master.lib/pfint21.asm
|
||
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
|
||
include th03/formats/pfopen.asm
|
||
include libs/master.lib/pf_str_ieq.asm
|
||
|
||
; ---------------------------------------------------------------------------
|
||
; 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
|
||
pushd 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 500110h
|
||
push 2Fh ; '/'
|
||
push ds
|
||
push offset unk_F72C
|
||
call sub_D197
|
||
push 500120h
|
||
push 2Fh ; '/'
|
||
push ds
|
||
push offset unk_F769
|
||
call sub_D197
|
||
push 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 ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
call graph_clear
|
||
mov dx, 0A6h ; '<27>'
|
||
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 160012Ch
|
||
push 0
|
||
call sub_D712
|
||
push 0
|
||
call sub_CEC2
|
||
push 2
|
||
call palette_black_in
|
||
push 60010h
|
||
call sub_D3FC
|
||
mov si, 1
|
||
jmp short loc_97FC
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_97E8:
|
||
push 160012Ch
|
||
push si
|
||
call sub_D712
|
||
push 6
|
||
call frame_delay
|
||
inc si
|
||
|
||
loc_97FC:
|
||
cmp si, 5
|
||
jl short loc_97E8
|
||
push 0A0040h
|
||
call sub_D3FC
|
||
mov PaletteTone, 0C8h
|
||
call far ptr palette_show
|
||
push 0E00040h
|
||
push 6
|
||
call sub_D712
|
||
push 160012Ch
|
||
push 5
|
||
call sub_D712
|
||
push ds
|
||
push offset aLogo1_rgb ; "logo1.rgb"
|
||
call palette_entry_rgb
|
||
call far ptr palette_show
|
||
call sub_9776
|
||
push 0B0004h
|
||
call sub_D3FC
|
||
push 1
|
||
call palette_white_in
|
||
push 8
|
||
call frame_delay
|
||
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 frame_delay
|
||
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 ; '<27>'
|
||
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 pi_slot_load
|
||
pushd 0
|
||
push 0
|
||
call sub_CD2F
|
||
freePISlotLarge 0
|
||
push 0
|
||
push ds
|
||
push word_E504
|
||
call pi_slot_load
|
||
pushd 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 pi_slot_palette_apply
|
||
push 0
|
||
call graph_copy_page
|
||
freePISlotLarge 0
|
||
push 600060h
|
||
push 0
|
||
call sub_C9D4
|
||
push 1600060h
|
||
push 1
|
||
call sub_CA88
|
||
cmp byte_F7E5, 0
|
||
jnz short loc_9A8E
|
||
push 180002Eh
|
||
push 2
|
||
call sub_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 500124h
|
||
push 2Fh ; '/'
|
||
mov bx, [bp+var_4]
|
||
shl bx, 2
|
||
pushd CHAR_TITLE[bx]
|
||
call sub_D197
|
||
push 800134h
|
||
push 2Fh ; '/'
|
||
mov bx, [bp+var_4]
|
||
shl bx, 2
|
||
pushd 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 1500124h
|
||
push 2Fh ; '/'
|
||
mov bx, [bp+var_4]
|
||
shl bx, 2
|
||
pushd CHAR_TITLE[bx]
|
||
call sub_D197
|
||
push 1800134h
|
||
push 2Fh ; '/'
|
||
mov bx, [bp+var_4]
|
||
shl bx, 2
|
||
pushd CHAR_NAME[bx]
|
||
call sub_D197
|
||
push 1
|
||
call palette_black_in
|
||
mov vsync_Count1, 0
|
||
mov dx, 0A6h ; '<27>'
|
||
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 pi_slot_load
|
||
pushd 118h
|
||
push 0
|
||
call sub_CDB7
|
||
freePISlotLarge 0
|
||
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 pi_slot_load
|
||
|
||
loc_9BC2:
|
||
pushd 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 ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
call graph_clear
|
||
push 1
|
||
call palette_white_in
|
||
push 200005h
|
||
call text_fillca
|
||
push 0
|
||
call pi_slot_palette_apply
|
||
freePISlotLarge 0
|
||
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
|
||
pushd [bp+arg_0]
|
||
call pi_slot_load
|
||
mov ax, si
|
||
imul ax, 140h
|
||
push ax
|
||
push 0C80000h
|
||
call sub_CDB7
|
||
freePISlotLarge 0
|
||
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 pi_slot_load
|
||
mov ax, si
|
||
imul ax, 140h
|
||
push ax
|
||
push 0D00000h
|
||
call sub_CDB7
|
||
freePISlotLarge 0
|
||
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 ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>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
|
||
pushd 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
|
||
freePISlotLarge 0
|
||
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 ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
mov dx, 0A4h
|
||
out dx, al
|
||
call graph_clear
|
||
call graph_show
|
||
pushd [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
|
||
pushd 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
|
||
freePISlotLarge 0
|
||
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
|
||
freePISlotLarge 0
|
||
|
||
loc_9F69:
|
||
call text_clear
|
||
call gaiji_restore
|
||
call sub_C990
|
||
pushd 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 0C00110h
|
||
push 0
|
||
call sub_D712
|
||
push 1600110h
|
||
push 3
|
||
call sub_D712
|
||
les bx, dword_105DA
|
||
mov al, es:[bx+36h]
|
||
les bx, [bp+var_6]
|
||
add al, es:[bx]
|
||
mov es:[bx], al
|
||
push 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 0C00110h
|
||
add ax, ax
|
||
mov dx, 2
|
||
sub dx, ax
|
||
push dx
|
||
call sub_D712
|
||
push 1600110h
|
||
mov ax, si
|
||
add ax, ax
|
||
inc ax
|
||
push ax
|
||
call sub_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 0C00000h
|
||
call grcg_setcolor
|
||
push 2400173h
|
||
push 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 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 frame_delay
|
||
jmp loc_A00B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A0C5:
|
||
push 203h
|
||
call sub_CEC2
|
||
push 1
|
||
call palette_black_out
|
||
mov dx, 0A6h ; '<27>'
|
||
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 pi_slot_load
|
||
push 0
|
||
call pi_slot_palette_apply
|
||
pushd 0
|
||
push 0
|
||
call sub_CD2F
|
||
freePISlotLarge 0
|
||
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
|
||
pushd [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 ; '<27>'
|
||
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 ; '<27>'
|
||
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, pi_slot_buffers
|
||
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 ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
xor di, di
|
||
jmp loc_A34E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A2B4:
|
||
pushd 190h
|
||
pushd [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 ; '<27>'
|
||
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
|
||
pushd [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 ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
call sub_A45B
|
||
mov dx, 0A6h ; '<27>'
|
||
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 ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
call sub_A45B
|
||
mov dx, 0A6h ; '<27>'
|
||
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 frame_delay
|
||
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 frame_delay
|
||
|
||
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 frame_delay
|
||
|
||
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 ; '<27>'
|
||
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 ; '<27>'
|
||
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 ; '<27>' ; jumptable 0000A67C case 64
|
||
mov al, 1
|
||
out dx, al
|
||
call graph_clear
|
||
mov dx, 0A6h ; '<27>'
|
||
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 ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
cmp [bp+arg_0], 3Dh ; '='
|
||
jnz short loc_A9FE
|
||
push 0
|
||
call pi_slot_palette_apply
|
||
|
||
loc_A9FE:
|
||
pushd 0
|
||
push 0
|
||
call sub_CD2F
|
||
push 0
|
||
call graph_copy_page
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
call sub_A36B
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AA1B:
|
||
cmp [bp+arg_0], 2Dh ; '-'
|
||
jnz short loc_AA32
|
||
freePISlotLarge 0
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AA32:
|
||
cmp [bp+arg_0], 70h ; 'p'
|
||
jnz short loc_AA42
|
||
push 0
|
||
call pi_slot_palette_apply
|
||
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 pi_slot_load
|
||
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 ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
cmp [bp+var_2], 4
|
||
jge short loc_AAD5
|
||
jmp short loc_AB44
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AAD5:
|
||
push 0C00000h
|
||
call grcg_setcolor
|
||
push 140040h
|
||
push 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 0A00040h
|
||
push [bp+var_2]
|
||
push si
|
||
call sub_A23C
|
||
cmp byte_105CE, 0
|
||
jnz short loc_AB32
|
||
push [bp+var_4]
|
||
call frame_delay
|
||
|
||
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 ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
|
||
loc_AB44:
|
||
push 0A00040h
|
||
push 0
|
||
push [bp+var_2]
|
||
call sub_D4F1
|
||
|
||
loc_AB54:
|
||
mov dx, 0A4h
|
||
mov al, 0
|
||
out dx, al
|
||
push 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 ; '<27>'
|
||
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 ; '<27>'
|
||
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
|
||
pushd [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 frame_delay
|
||
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 frame_delay
|
||
|
||
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 ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
mov dx, 0A4h
|
||
out dx, al
|
||
push 0
|
||
push ds
|
||
push offset aRegib_pi ; "regib.pi"
|
||
call pi_slot_load
|
||
push 0
|
||
call pi_slot_palette_apply
|
||
pushd 0
|
||
push 0
|
||
call sub_CD2F
|
||
freePISlotLarge 0
|
||
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 1400138h
|
||
push 0
|
||
call sub_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 ; '<27>'
|
||
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 ; '<27>'
|
||
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
|
||
pushd 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 frame_delay
|
||
|
||
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 ; '<27>'
|
||
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 ; '<27>'
|
||
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 pi_slot_load
|
||
push 0
|
||
call pi_slot_palette_apply
|
||
pushd 0
|
||
push 0
|
||
call sub_CD2F
|
||
freePISlotLarge 0
|
||
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 pi_slot_load
|
||
push 0
|
||
call pi_slot_palette_apply
|
||
pushd 0
|
||
push 0
|
||
call sub_CD2F
|
||
freePISlotLarge 0
|
||
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 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
|
||
freePISlotLarge 0
|
||
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 frame_delay
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
mov dx, 0A4h
|
||
out dx, al
|
||
call graph_clear
|
||
call graph_show
|
||
pushd [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 ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
call graph_clear
|
||
mov dx, 0A6h ; '<27>'
|
||
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
|
||
pushd 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 ; '<27>'
|
||
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 sub_D712
|
||
jmp short loc_BD83
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BD75:
|
||
push [bp+arg_6]
|
||
push [bp+arg_4]
|
||
push [bp+arg_2]
|
||
call sub_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 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 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 0C00000h
|
||
call grcg_setcolor
|
||
push 10008h
|
||
push 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 0C00000h
|
||
call grcg_setcolor
|
||
push 10008h
|
||
push 4E0187h
|
||
call grcg_byteboxfill_x
|
||
call grcg_off
|
||
call sub_BCD5
|
||
push 0C00000h
|
||
call grcg_setcolor
|
||
push 10008h
|
||
push 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 0C00000h
|
||
call grcg_setcolor
|
||
push 10008h
|
||
push 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 0C00000h
|
||
call grcg_setcolor
|
||
push 10008h
|
||
push 4E0187h
|
||
call grcg_byteboxfill_x
|
||
call grcg_off
|
||
call sub_BCD5
|
||
push 0C00000h
|
||
call grcg_setcolor
|
||
push 10008h
|
||
push 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 16000AEh
|
||
push 2Fh ; '/'
|
||
mov al, byte_10BD7
|
||
mov ah, 0
|
||
shl ax, 2
|
||
mov bx, ax
|
||
pushd dword ptr [bx+0AE2h]
|
||
call sub_D197
|
||
push 16800C7h
|
||
push 2Fh ; '/'
|
||
mov al, byte_10BD6
|
||
mov ah, 0
|
||
shl ax, 2
|
||
mov bx, ax
|
||
pushd 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 0E0002Fh
|
||
mov bx, di
|
||
shl bx, 2
|
||
pushd 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 0E0002Fh
|
||
mov bx, di
|
||
shl bx, 2
|
||
pushd dword ptr [bx+0B16h]
|
||
call sub_D197
|
||
push 19800F8h
|
||
push 2Fh ; '/'
|
||
mov bx, di
|
||
shl bx, 2
|
||
pushd 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 123002Fh
|
||
mov bx, di
|
||
shl bx, 2
|
||
pushd 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 123002Fh
|
||
mov bx, di
|
||
shl bx, 2
|
||
pushd 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 123002Fh
|
||
mov bx, di
|
||
shl bx, 2
|
||
pushd dword ptr [bx+0B16h]
|
||
call sub_D197
|
||
lea ax, [si+10h]
|
||
push ax
|
||
push 123002Fh
|
||
push ds
|
||
push offset aU_ ; "<22>_"
|
||
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 0C00008h
|
||
call grcg_setcolor
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
pushd 0
|
||
push 4F018Fh
|
||
call grcg_byteboxfill_x
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
pushd 0
|
||
push 4F018Fh
|
||
call grcg_byteboxfill_x
|
||
push 0C00000h
|
||
call grcg_setcolor
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
push 10008h
|
||
push 4E0187h
|
||
call grcg_byteboxfill_x
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
push 10008h
|
||
push 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 frame_delay
|
||
mov vsync_Count1, 0
|
||
|
||
loc_C657:
|
||
call sub_BB51
|
||
call sub_BCD5
|
||
inc word_10BB2
|
||
push 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
|
||
pushd 8
|
||
push 0Ah
|
||
call sub_BFB2
|
||
mov word_10BBC, 1
|
||
mov word_10BBE, 0A1h
|
||
mov byte_10BB6, 0
|
||
push 10010h
|
||
push 14h
|
||
call sub_BFB2
|
||
mov word_10BC4, 20h ; ' '
|
||
mov word_10BC0, 0A8h ; '<27>'
|
||
push 20016h
|
||
push 18h
|
||
call sub_C1FD
|
||
mov byte_10BC6, 7
|
||
mov word_10BC0, 0D8h
|
||
mov word_10BC4, 0FFF0h
|
||
push 30020h
|
||
push 22h ; '"'
|
||
call sub_C097
|
||
mov byte_10BC6, 0
|
||
mov word_10BC0, 0C8h
|
||
mov word_10BC4, 0
|
||
push 40024h
|
||
push 26h ; '&'
|
||
call sub_BFB2
|
||
push 0B002Ah
|
||
push 2Ch ; ','
|
||
call sub_BFB2
|
||
push 50030h
|
||
push 32h ; '2'
|
||
call sub_BFB2
|
||
push 60036h
|
||
push 38h ; '8'
|
||
call sub_BFB2
|
||
push 0A003Ch
|
||
push 3Eh ; '>'
|
||
call sub_BFB2
|
||
mov word_10BB2, 0
|
||
|
||
loc_C735:
|
||
call sub_BB51
|
||
push 1400080h
|
||
push 8
|
||
call sub_BF7E
|
||
push 0C000F0h
|
||
push 9
|
||
call sub_BF7E
|
||
call sub_BCD5
|
||
inc word_10BB2
|
||
push 420100h
|
||
call sub_BCA5
|
||
or ax, ax
|
||
jz short loc_C735
|
||
mov al, 1
|
||
sub al, byte_10BB4
|
||
mov dx, 0A6h ; '<27>'
|
||
out dx, al
|
||
call sub_C288
|
||
mov dx, 0A6h ; '<27>'
|
||
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
|
||
db 0
|
||
|
||
seg001 ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
seg002 segment word public 'CODE' use16
|
||
assume cs:seg002
|
||
;org 2
|
||
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_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 pfend
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
call graph_clear
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
call graph_clear
|
||
mov dx, 0A6h ; '<27>'
|
||
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
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C9D4 proc far
|
||
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
push 0C00000h
|
||
call grcg_setcolor
|
||
mov si, [bp+arg_0]
|
||
shl si, 4
|
||
add si, 1D0Eh
|
||
mov ax, [si+0Eh]
|
||
mov word ptr cs:loc_CA4B+1, ax
|
||
mov ax, [bp+arg_4]
|
||
sar ax, 3
|
||
add ax, [si+6]
|
||
mov di, ax
|
||
mov word ptr cs:loc_CA44+1, ax
|
||
mov ax, [si+8]
|
||
mov word ptr cs:loc_CA36+1, ax
|
||
mov word ptr cs:loc_CA50+1, ax
|
||
shl ax, 2
|
||
add ax, 50h ; 'P'
|
||
mov word ptr cs:loc_CA32+1, ax
|
||
jmp short $+2
|
||
mov ax, [bp+arg_2]
|
||
mov bx, ax
|
||
shl ax, 2
|
||
add ax, bx
|
||
add ax, 0A800h
|
||
mov es, ax
|
||
push ds
|
||
mov ax, [si+0Ch]
|
||
mov ds, ax
|
||
xor si, si
|
||
|
||
loc_CA32:
|
||
mov dx, 1234h
|
||
cld
|
||
|
||
loc_CA36:
|
||
mov cx, 1234h
|
||
rep movsd
|
||
sub di, dx
|
||
jns short loc_CA36
|
||
xor al, al
|
||
out 7Ch, al
|
||
|
||
loc_CA44:
|
||
mov bx, 1234h
|
||
mov di, bx
|
||
xor si, si
|
||
|
||
loc_CA4B:
|
||
mov ax, 1234h
|
||
mov ds, ax
|
||
assume ds:nothing
|
||
|
||
loc_CA50:
|
||
mov cx, 1234h
|
||
|
||
loc_CA53:
|
||
mov eax, [si]
|
||
or es:[di], eax
|
||
add si, 4
|
||
add di, 4
|
||
loop loc_CA53
|
||
sub di, dx
|
||
jns short loc_CA50
|
||
mov di, bx
|
||
mov ax, es
|
||
add ax, 800h
|
||
mov es, ax
|
||
assume es:nothing
|
||
cmp ax, 0C000h
|
||
jb short loc_CA50
|
||
cmp ax, 0C800h
|
||
jnb short loc_CA80
|
||
add ax, 2000h
|
||
mov es, ax
|
||
assume es:nothing
|
||
jmp short loc_CA50
|
||
|
||
loc_CA80:
|
||
pop ds
|
||
assume ds:dseg
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retf 6
|
||
sub_C9D4 endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
nop
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_CA88 proc far
|
||
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
push 0C00000h
|
||
call grcg_setcolor
|
||
mov si, [bp+arg_0]
|
||
shl si, 4
|
||
add si, 1D0Eh
|
||
mov ax, [bp+arg_4]
|
||
sar ax, 3
|
||
add ax, [si+6]
|
||
mov bx, [si+8]
|
||
shl bx, 2
|
||
add ax, bx
|
||
dec ax
|
||
mov di, ax
|
||
mov word ptr cs:loc_CB08+1, ax
|
||
mov word ptr cs:loc_CB30+1, ax
|
||
mov word ptr cs:loc_CAF2+1, bx
|
||
mov word ptr cs:loc_CB1E+1, bx
|
||
mov ax, 50h ; 'P'
|
||
sub ax, bx
|
||
mov word ptr cs:loc_CAEE+1, ax
|
||
mov word ptr cs:loc_CB1A+1, ax
|
||
jmp short $+2
|
||
mov ax, [bp+arg_2]
|
||
mov bx, ax
|
||
shl ax, 2
|
||
add ax, bx
|
||
add ax, 0A800h
|
||
mov es, ax
|
||
assume es:nothing
|
||
mov bx, 20D6h
|
||
mov fs, word ptr [si+0Ch]
|
||
xor si, si
|
||
|
||
loc_CAEE:
|
||
mov dx, 1234h
|
||
nop
|
||
|
||
loc_CAF2:
|
||
mov cx, 1234h
|
||
|
||
loc_CAF5:
|
||
mov al, fs:[si]
|
||
xlat
|
||
mov es:[di], al
|
||
inc si
|
||
dec di
|
||
loop loc_CAF5
|
||
sub di, dx
|
||
jns short loc_CAF2
|
||
xor al, al
|
||
out 7Ch, al
|
||
|
||
loc_CB08:
|
||
mov di, 1234h
|
||
mov si, [bp+arg_0]
|
||
shl si, 4
|
||
add si, 1D0Eh
|
||
mov fs, word ptr [si+0Eh]
|
||
xor si, si
|
||
|
||
loc_CB1A:
|
||
mov dx, 1234h
|
||
nop
|
||
|
||
loc_CB1E:
|
||
mov cx, 4D2h
|
||
|
||
loc_CB21:
|
||
mov al, fs:[si]
|
||
xlat
|
||
or es:[di], al
|
||
inc si
|
||
dec di
|
||
loop loc_CB21
|
||
sub di, dx
|
||
jns short loc_CB1E
|
||
|
||
loc_CB30:
|
||
mov di, 1234h
|
||
mov ax, es
|
||
add ax, 800h
|
||
mov es, ax
|
||
assume es:nothing
|
||
cmp ax, 0C000h
|
||
jb short loc_CB1E
|
||
cmp ax, 0C800h
|
||
jnb short loc_CB4B
|
||
add ax, 2000h
|
||
mov es, ax
|
||
assume es:nothing
|
||
jmp short loc_CB1E
|
||
|
||
loc_CB4B:
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retf 6
|
||
sub_CA88 endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
nop
|
||
|
||
include th02/frame_delay.asm
|
||
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
|
||
|
||
include th02/formats/pi_slot_palette_apply.asm
|
||
|
||
; =============== 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
|
||
pushd [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
|
||
pushd [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:
|
||
nopcall sub_C7E2
|
||
call vsync_start
|
||
call egc_start
|
||
call graph_400line
|
||
call sub_2AAE
|
||
pushd [bp+arg_0]
|
||
call pfstart
|
||
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
|
||
nopcall sub_D130
|
||
mov ax, di
|
||
shl ax, 4
|
||
add ax, 1D0Eh
|
||
mov si, ax
|
||
pushd [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
|
||
nopcall sub_D130
|
||
mov ax, di
|
||
shl ax, 4
|
||
add ax, 1D0Eh
|
||
mov si, ax
|
||
pushd [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
|
||
pushd [bp+arg_0]
|
||
call file_ropen
|
||
push [bp+arg_4]
|
||
nopcall 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
|
||
nopcall 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]
|
||
pushd [bp+arg_0]
|
||
call 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 pfend
|
||
mov dx, 0A6h ; '<27>'
|
||
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 ; '<27>'
|
||
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]
|
||
nopcall frame_delay
|
||
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]
|
||
nopcall 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:
|
||
nopcall 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:
|
||
nopcall 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
|
||
|
||
include th02/formats/pi_slot_load.asm
|
||
|
||
; =============== 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
|
||
pushd [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
|
||
nopcall 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
|
||
nopcall sub_CB68
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
push bp
|
||
mov bp, sp
|
||
nopcall 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
|
||
nopcall 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
|
||
nopcall 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
|
||
nopcall 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
|
||
nopcall 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
|
||
nopcall 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:
|
||
call sub_D5A2
|
||
cmp word_100FC, 0
|
||
jz short loc_D6E3
|
||
push 1
|
||
nopcall frame_delay
|
||
jmp short loc_D6CF
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D6E3:
|
||
or si, si
|
||
jnz short loc_D707
|
||
mov si, 270Fh
|
||
jmp short loc_D707
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D6EC:
|
||
call sub_D5A2
|
||
cmp word_100FC, 0
|
||
jnz short loc_D70B
|
||
inc di
|
||
push 1
|
||
nopcall frame_delay
|
||
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
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D712 proc far
|
||
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
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 word ptr cs:loc_D758+1, 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
|
||
|
||
loc_D758:
|
||
mov cx, 1234h
|
||
rep movsd
|
||
sub di, dx
|
||
jns short loc_D758
|
||
mov di, bx
|
||
mov ax, es
|
||
add ax, 800h
|
||
mov es, ax
|
||
assume es:nothing
|
||
cmp ax, 0C000h
|
||
jb short loc_D758
|
||
cmp ax, 0C800h
|
||
jnb short loc_D77C
|
||
add ax, 2000h
|
||
mov es, ax
|
||
assume es:nothing
|
||
jmp short loc_D758
|
||
|
||
loc_D77C:
|
||
pop ds
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retf 6
|
||
sub_D712 endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
nop
|
||
|
||
; =============== 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
|
||
dw 0
|
||
seg003 ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure data
|
||
dseg segment para public 'DATA' use16
|
||
assume cs:dseg
|
||
|
||
include libs/BorlandC/c0[data].asm
|
||
|
||
dw offset a00sl_cd2
|
||
dw offset a02sl_cd2
|
||
dw offset a04sl_cd2
|
||
dw offset a06sl_cd2
|
||
dw offset a08sl_cd2
|
||
dw offset a10sl_cd2
|
||
dw offset a12sl_cd2
|
||
dw offset a14sl_cd2
|
||
dw offset a16sl_cd2
|
||
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 ; " <20><><EFBFBD>Ɠ`<60><><EFBFBD><EFBFBD><EFBFBD>ێ炷<DB8E><E782B7><EFBFBD>ޏ<EFBFBD> "
|
||
CHAR_NAME dd NAME_REIMU ; " <20><><EFBFBD><EFBFBD><EFBFBD>@<40>˖<EFBFBD>"
|
||
dd TITLE_MIMA ; " <20>v<EFBFBD><76><EFBFBD>̖<EFBFBD><CC96>ɉ^<5E><><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD><43><EFBFBD>鐸<EFBFBD>_ "
|
||
dd NAME_MIMA ; " <09><> <20><>"
|
||
dd TITLE_MARISA ; " <20><><EFBFBD>@<40>ƍg<C68D><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ鑶<C882><E991B6> "
|
||
dd NAME_MARISA ; " <20><><EFBFBD>J<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "
|
||
dd TITLE_ELLEN ; "<22>͂<EFBFBD><CD82>炫<EFBFBD><E782AB><EFBFBD>̂ŗ<CC82><C597><EFBFBD><F096B28C>閂<EFBFBD><E99682>"
|
||
dd NAME_ELLEN ; "<22>@<40>@<40>G<EFBFBD><47><EFBFBD><EFBFBD>"
|
||
dd TITLE_KOTOHIME ; " <09>e<EFBFBD><65><EFBFBD>ɔ<EFBFBD><C994>݂<F096B282><DD82>P "
|
||
dd NAME_KOTOHIME ; " <20><><EFBFBD>e<EFBFBD>P"
|
||
dd TITLE_KANA ; " <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "
|
||
dd NAME_KANA ; "<22>J<EFBFBD>i<EFBFBD>E<EFBFBD>A<EFBFBD>i<EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD>"
|
||
dd TITLE_RIKAKO ; " <20>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>T<EFBFBD><54><EFBFBD>Ȋw "
|
||
dd NAME_RIKAKO ; "<22>@<40><><EFBFBD>q<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>q"
|
||
dd TITLE_CHIYURI ; "<22>@ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>閲<EFBFBD><E996B2><EFBFBD>̏Z<CC8F>l "
|
||
dd NAME_CHIYURI ; " <20>k<EFBFBD><6B><EFBFBD>́@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
dd TITLE_YUMEMI ; "<22>@ <20>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>`<60><><EFBFBD>@<40>@<40>@ "
|
||
dd NAME_YUMEMI ; " <20>@<40><><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD><EFBFBD>"
|
||
word_E502 dw offset aSt_cd2
|
||
word_E504 dw offset aStnx1_pi
|
||
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 ' <20><><EFBFBD>Ɠ`<60><><EFBFBD><EFBFBD><EFBFBD>ێ炷<DB8E><E782B7><EFBFBD>ޏ<EFBFBD> ',0
|
||
NAME_REIMU db ' <20><><EFBFBD><EFBFBD><EFBFBD>@<40>˖<EFBFBD>',0
|
||
TITLE_MIMA db ' <20>v<EFBFBD><76><EFBFBD>̖<EFBFBD><CC96>ɉ^<5E><><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD><43><EFBFBD>鐸<EFBFBD>_ ',0
|
||
NAME_MIMA db ' <20><> <20><>',0
|
||
TITLE_MARISA db ' <20><><EFBFBD>@<40>ƍg<C68D><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ鑶<C882><E991B6> ',0
|
||
NAME_MARISA db ' <20><><EFBFBD>J<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
|
||
TITLE_ELLEN db '<27>͂<EFBFBD><CD82>炫<EFBFBD><E782AB><EFBFBD>̂ŗ<CC82><C597><EFBFBD><F096B28C>閂<EFBFBD><E99682>',0
|
||
NAME_ELLEN db '<27>@<40>@<40>G<EFBFBD><47><EFBFBD><EFBFBD>',0
|
||
TITLE_KOTOHIME db ' <20>e<EFBFBD><65><EFBFBD>ɔ<EFBFBD><C994>݂<F096B282><DD82>P ',0
|
||
NAME_KOTOHIME db ' <20><><EFBFBD>e<EFBFBD>P',0
|
||
TITLE_KANA db ' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
|
||
NAME_KANA db '<27>J<EFBFBD>i<EFBFBD>E<EFBFBD>A<EFBFBD>i<EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD>',0
|
||
TITLE_RIKAKO db ' <20>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>T<EFBFBD><54><EFBFBD>Ȋw ',0
|
||
NAME_RIKAKO db '<27>@<40><><EFBFBD>q<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>q',0
|
||
TITLE_CHIYURI db '<27>@ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>閲<EFBFBD><E996B2><EFBFBD>̏Z<CC8F>l ',0
|
||
NAME_CHIYURI db ' <20>k<EFBFBD><6B><EFBFBD>́@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
TITLE_YUMEMI db '<27>@ <20>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>`<60><><EFBFBD>@<40>@<40>@ ',0
|
||
NAME_YUMEMI db ' <20>@<40><><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD><EFBFBD>',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 '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>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
|
||
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
|
||
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
|
||
include th02/formats/pfopen[data].asm
|
||
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 ; <20>
|
||
db 0AAh ; <20>
|
||
db 55h ; U
|
||
db 55h ; U
|
||
db 0AAh ; <20>
|
||
db 0AAh ; <20>
|
||
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@ ; "<22>@<40>@<40>˖<EFBFBD><CB96>@<40>@"
|
||
dd aB@b@cgcvb@b@ ; "<22>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>@<40>@"
|
||
dd aB@cvcanB@ ; " <20>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ "
|
||
dd aB@gggmgub@ ; " <20>@<40>G<EFBFBD><47><EFBFBD><EFBFBD><EFBFBD>@ "
|
||
dd aB@pmuexpb@ ; " <20>@<40><><EFBFBD>e<EFBFBD>P<EFBFBD>@ "
|
||
dd aB@Gjgi ; " <20>@ <20>J<EFBFBD>i "
|
||
dd aB@canboq ; " <20>@<40><><EFBFBD><EFBFBD><EFBFBD>q "
|
||
dd aB@vVfvsb@ ; " <20>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ "
|
||
dd aB@CF ; " <20>@ <20><><EFBFBD><EFBFBD><EFBFBD>@ "
|
||
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 '<27>@<40>@<40>˖<EFBFBD><CB96>@<40>@',0
|
||
aB@b@cgcvb@b@ db '<27>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>@<40>@',0
|
||
aB@cvcanB@ db ' <20>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ ',0
|
||
aB@gggmgub@ db ' <20>@<40>G<EFBFBD><47><EFBFBD><EFBFBD><EFBFBD>@ ',0
|
||
aB@pmuexpb@ db ' <20>@<40><><EFBFBD>e<EFBFBD>P<EFBFBD>@ ',0
|
||
aB@Gjgi db ' <20>@ <20>J<EFBFBD>i ',0
|
||
aB@canboq db ' <20>@<40><><EFBFBD><EFBFBD><EFBFBD>q ',0
|
||
aB@vVfvsb@ db ' <20>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ ',0
|
||
aB@CF db ' <20>@ <20><><EFBFBD><EFBFBD><EFBFBD>@ ',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 ; <20>
|
||
db 0AAh ; <20>
|
||
db 55h ; U
|
||
db 55h ; U
|
||
db 0AAh ; <20>
|
||
db 0AAh ; <20>
|
||
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 ; " <20><><EFBFBD><EFBFBD><EFBFBD>@<40>˖<EFBFBD>"
|
||
dd aCgCv_0 ; " <09><> <20><>"
|
||
dd aCIjb@cvcan_0 ; " <20><><EFBFBD>J<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "
|
||
dd aB@b@gggmgu_0 ; "<22>@<40>@<40>G<EFBFBD><47><EFBFBD><EFBFBD>"
|
||
dd aPmuexp_0 ; " <20><><EFBFBD>e<EFBFBD>P"
|
||
dd aGjgibegagigx_0 ; "<22>J<EFBFBD>i<EFBFBD>E<EFBFBD>A<EFBFBD>i<EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD>"
|
||
dd aB@tisqb@canb_0 ; "<22>@<40><><EFBFBD>q<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>q"
|
||
dd aCkftiB@vVfvs_0 ; " <20>k<EFBFBD><6B><EFBFBD>́@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
dd aB@iknsb@cF_0 ; " <20>@<40><><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD><EFBFBD>"
|
||
dd aVdvbvuvs ; " <20>d<EFBFBD><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
dd aVmvpvtvnvbvm ; " <20>m<EFBFBD><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
dd aVgvbvtvd ; " <20>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
dd aVkvxvovbvfvivg ; "<22>k<EFBFBD><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
dd aVo ; "<22>O"
|
||
dd aVp ; "<22>P"
|
||
dd aVq ; "<22>Q"
|
||
dd aVr ; "<22>R"
|
||
dd aVs ; "<22>S"
|
||
dd aVt ; "<22>T"
|
||
dd aVu ; "<22>U"
|
||
dd aVv ; "<22>V"
|
||
dd aVw ; "<22>W"
|
||
dd aVx ; "<22>X"
|
||
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 ' <20><><EFBFBD><EFBFBD><EFBFBD>@<40>˖<EFBFBD>',0
|
||
aCgCv_0 db ' <20><> <20><>',0
|
||
aCIjb@cvcan_0 db ' <20><><EFBFBD>J<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
|
||
aB@b@gggmgu_0 db '<27>@<40>@<40>G<EFBFBD><47><EFBFBD><EFBFBD>',0
|
||
aPmuexp_0 db ' <20><><EFBFBD>e<EFBFBD>P',0
|
||
aGjgibegagigx_0 db '<27>J<EFBFBD>i<EFBFBD>E<EFBFBD>A<EFBFBD>i<EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD>',0
|
||
aB@tisqb@canb_0 db '<27>@<40><><EFBFBD>q<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>q',0
|
||
aCkftiB@vVfvs_0 db ' <20>k<EFBFBD><6B><EFBFBD>́@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
aB@iknsb@cF_0 db ' <20>@<40><><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD><EFBFBD>',0
|
||
aVdvbvuvs db ' <20>d<EFBFBD><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
aVmvpvtvnvbvm db ' <20>m<EFBFBD><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
aVgvbvtvd db ' <20>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
aVkvxvovbvfvivg db '<27>k<EFBFBD><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
aVo db '<27>O',0
|
||
aVp db '<27>P',0
|
||
aVq db '<27>Q',0
|
||
aVr db '<27>R',0
|
||
aVs db '<27>S',0
|
||
aVt db '<27>T',0
|
||
aVu db '<27>U',0
|
||
aVv db '<27>V',0
|
||
aVw db '<27>W',0
|
||
aVx db '<27>X',0
|
||
aU_ db '<27>_',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
|
||
include libs/BorlandC/_abort[data].asm
|
||
include libs/BorlandC/atexit[data].asm
|
||
include libs/BorlandC/exit[data].asm
|
||
include libs/BorlandC/files[data].asm
|
||
include libs/BorlandC/ioerror[data].asm
|
||
include libs/BorlandC/new[data].asm
|
||
include libs/BorlandC/stklen[data].asm
|
||
include libs/BorlandC/ctype[data].asm
|
||
include libs/BorlandC/xxv[data].asm
|
||
include libs/BorlandC/cputype[data].asm
|
||
include libs/BorlandC/fbrk[data].asm
|
||
include libs/BorlandC/signal[data].asm
|
||
include libs/BorlandC/pathops[data].asm
|
||
include libs/BorlandC/srchenv[data].asm
|
||
include libs/BorlandC/srchstr[data].asm
|
||
include libs/BorlandC/setvbuf[data].asm
|
||
include libs/BorlandC/sysnerr[data].asm
|
||
include libs/BorlandC/xx[data].asm
|
||
include libs/BorlandC/setenvp[data].asm
|
||
include libs/BorlandC/strings[data].asm
|
||
include libs/BorlandC/mbctype[data].asm
|
||
include libs/BorlandC/loadprog[data].asm
|
||
|
||
InitStart label byte
|
||
include libs/BorlandC/new[initdata].asm
|
||
include libs/BorlandC/setupio[initdata].asm
|
||
include libs/BorlandC/cputype[initdata].asm
|
||
include libs/BorlandC/pathops[initdata].asm
|
||
include libs/BorlandC/setenvp[initdata].asm
|
||
InitEnd label byte
|
||
|
||
ExitStart label byte
|
||
include libs/BorlandC/new[exitdata].asm
|
||
ExitEnd label byte
|
||
|
||
bdata@ label byte
|
||
; TODO: Missing clip[bss].asm (8 bytes) somewhere in there...
|
||
unk_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 ? ;
|
||
db ? ;
|
||
db ? ;
|
||
include libs/master.lib/pfint21[bss].asm
|
||
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 ? ;
|
||
include th02/formats/pi_slots[bss].asm
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
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_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
|
||
include libs/BorlandC/xxv[bss].asm
|
||
include libs/BorlandC/signal[bss].asm
|
||
include libs/BorlandC/xx[bss].asm
|
||
edata@ label byte
|
||
|
||
dseg ends
|
||
|
||
include libs/BorlandC/stack.asm
|
||
|
||
end startx
|