mirror of https://github.com/nmlgc/ReC98.git
10808 lines
187 KiB
NASM
10808 lines
187 KiB
NASM
;
|
||
; +-------------------------------------------------------------------------+
|
||
; | This file has been generated by The Interactive Disassembler (IDA) |
|
||
; | Copyright (c) 2009 by Hex-Rays, <support@hex-rays.com> |
|
||
; +-------------------------------------------------------------------------+
|
||
;
|
||
; Input MD5 : 2CAAD6F798E32B912A08DA327A97DDB4
|
||
|
||
; File Name : th01/FUUIN.EXE
|
||
; Format : MS-DOS executable (EXE)
|
||
; Base Address: 0h Range: 0h-147E0h Loaded length: 13ED8h
|
||
; Entry Point : 0:0
|
||
; OS type : MS DOS
|
||
; Application type: Executable 16bit
|
||
|
||
.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 th01/th01.inc
|
||
include libs/BorlandC/regs.inc
|
||
|
||
option emulator
|
||
|
||
extern @$bdla$qnv:proc
|
||
extern @$bnwa$qui:proc
|
||
extern FTOL@:proc
|
||
extern F_LUDIV@:proc
|
||
extern LUMOD@:proc
|
||
extern LXLSH@:proc
|
||
extern LXMUL@:proc
|
||
extern SCOPY@:proc
|
||
extern __fgetc:proc
|
||
extern __mbcjmstojis:proc
|
||
extern __mbctype:byte
|
||
extern __setargv__:proc ; main() needs both to be set
|
||
extern __setenvp__:proc
|
||
extern _access:proc
|
||
extern _close:proc
|
||
extern _delay:proc
|
||
extern _execl:proc
|
||
extern _exit:proc
|
||
extern _farfree:proc
|
||
extern _farmalloc:proc
|
||
extern _fclose:proc
|
||
extern _fgetc:proc
|
||
extern _filelength:proc
|
||
extern _fopen:proc
|
||
extern _getvect:proc
|
||
extern _int86:proc
|
||
extern _intdosx:proc
|
||
extern _memcmp:proc
|
||
extern _memcpy:proc
|
||
extern _memset:proc
|
||
extern _open:proc
|
||
extern _printf:proc
|
||
extern _proc:proc
|
||
extern _puts:proc
|
||
extern _read:proc
|
||
extern _segread:proc
|
||
extern _setvect:proc
|
||
extern _strcmp:proc
|
||
extern _strcpy:proc
|
||
extern _vsprintf:proc
|
||
extern _write:proc
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
_TEXT segment word public 'CODE' use16
|
||
assume cs:_TEXT
|
||
assume es:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
include libs/piloadc/piloadc.asm
|
||
include libs/master.lib/graph_400line.asm
|
||
include libs/master.lib/graph_clear.asm
|
||
include libs/master.lib/graph_show.asm
|
||
include libs/master.lib/graph_start.asm
|
||
include libs/master.lib/graph_scrollup.asm
|
||
include libs/master.lib/palette_show.asm
|
||
include libs/master.lib/palette_init.asm
|
||
include libs/master.lib/respal_exist.asm
|
||
include libs/master.lib/respal_free.asm
|
||
include libs/master.lib/resdata.asm
|
||
include libs/master.lib/file_read.asm
|
||
include libs/master.lib/file_close.asm
|
||
include libs/master.lib/file_ropen.asm
|
||
include libs/master.lib/file_seek.asm
|
||
include libs/master.lib/key_sense.asm
|
||
include libs/master.lib/dos_ropen.asm
|
||
include libs/master.lib/egc.asm
|
||
include libs/master.lib/gdc_outpw.asm
|
||
db 0
|
||
include libs/master.lib/random.asm
|
||
_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
fuuin_01_TEXT segment byte public 'CODE' use16
|
||
assume cs:fuuin_01_TEXT
|
||
;org 9
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_9F49 proc far
|
||
|
||
var_4 = dword ptr -4
|
||
|
||
enter 4, 0
|
||
push si
|
||
push di
|
||
push ds
|
||
push offset aReiidenconfig ; "ReiidenConfig"
|
||
push 0Dh
|
||
push 5
|
||
call resdata_exist
|
||
mov di, ax
|
||
or di, di
|
||
jnz short loc_9F65
|
||
jmp loc_A05D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9F65:
|
||
mov word ptr [bp+reiidenconfig+2], di
|
||
mov word ptr [bp+reiidenconfig], 0
|
||
les bx, [bp+reiidenconfig]
|
||
cmp es:[bx+reiidenconfig_t.end_flag], 0
|
||
jnz short loc_9F7A
|
||
jmp loc_A053
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9F7A:
|
||
les bx, [bp+reiidenconfig]
|
||
mov dx, word ptr es:[bx+reiidenconfig_t.score+2]
|
||
mov ax, word ptr es:[bx+reiidenconfig_t.score]
|
||
mov word ptr _score+2, dx
|
||
mov word ptr _score, ax
|
||
mov word ptr _continues_total+2, 0
|
||
mov word ptr _continues_total, 0
|
||
les bx, [bp+reiidenconfig]
|
||
mov al, es:[bx+reiidenconfig_t.end_flag]
|
||
mov byte_14021, al
|
||
les bx, [bp+reiidenconfig]
|
||
mov al, es:[bx+reiidenconfig_t.rank]
|
||
mov _rank, al
|
||
les bx, [bp+reiidenconfig]
|
||
mov dx, word ptr es:[bx+reiidenconfig_t.score_highest+2]
|
||
mov ax, word ptr es:[bx+reiidenconfig_t.score_highest]
|
||
mov word ptr _score_highest+2, dx
|
||
mov word ptr _score_highest, ax
|
||
xor si, si
|
||
jmp short loc_A003
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9FC2:
|
||
mov ax, si
|
||
add ax, ax
|
||
les bx, [bp+reiidenconfig]
|
||
add bx, ax
|
||
mov ax, es:[bx+reiidenconfig_t.continues_per_scene]
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov word ptr [bx+143Eh], 0
|
||
mov [bx+143Ch], ax
|
||
mov ax, si
|
||
add ax, ax
|
||
les bx, [bp+reiidenconfig]
|
||
add bx, ax
|
||
mov es:[bx+reiidenconfig_t.continues_per_scene], 0
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov dx, [bx+143Eh]
|
||
mov ax, [bx+143Ch]
|
||
add word ptr _continues_total, ax
|
||
adc word ptr _continues_total+2, dx
|
||
inc si
|
||
|
||
loc_A003:
|
||
cmp si, 4
|
||
jl short loc_9FC2
|
||
les bx, [bp+reiidenconfig]
|
||
mov dx, word ptr es:[bx+reiidenconfig_t.rand+2]
|
||
mov ax, word ptr es:[bx+reiidenconfig_t.rand]
|
||
mov word ptr random_seed+2, dx
|
||
mov word ptr random_seed, ax
|
||
les bx, [bp+reiidenconfig]
|
||
mov al, es:[bx+reiidenconfig_t.start_lives_extra]
|
||
mov byte_14020, al
|
||
les bx, [bp+reiidenconfig]
|
||
mov word ptr es:[bx+reiidenconfig_t.score+2], 0
|
||
mov word ptr es:[bx+reiidenconfig_t.score], 0
|
||
les bx, [bp+reiidenconfig]
|
||
mov word ptr es:[bx+reiidenconfig_t.continues_total+2], 0
|
||
mov word ptr es:[bx+reiidenconfig_t.continues_total], 0
|
||
les bx, [bp+reiidenconfig]
|
||
mov word ptr es:[bx+reiidenconfig_t.score_highest+2], 0
|
||
mov word ptr es:[bx+reiidenconfig_t.score_highest], 0
|
||
jmp short loc_A05B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A053:
|
||
push ds
|
||
push offset aErrorEnd_flagI ; "ERROR : end_flag is not ture !!"
|
||
jmp short loc_A061
|
||
; ---------------------------------------------------------------------------
|
||
jmp short loc_A069
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A05B:
|
||
jmp short loc_A06D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A05D:
|
||
push ds
|
||
push offset s ; "ERROR : cfg_id is not alloc!!"
|
||
|
||
loc_A061:
|
||
call _puts
|
||
add sp, 4
|
||
|
||
loc_A069:
|
||
xor ax, ax
|
||
jmp short loc_A072
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A06D:
|
||
mov ax, 1
|
||
jmp short $+2
|
||
|
||
loc_A072:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_9F49 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A076 proc far
|
||
|
||
reiidenconfig = dword ptr -4
|
||
|
||
enter 4, 0
|
||
push si
|
||
push di
|
||
push ds
|
||
push offset aReiidenconfi_0 ; "ReiidenConfig"
|
||
push 0Dh
|
||
push 5
|
||
call resdata_exist
|
||
mov di, ax
|
||
or di, di
|
||
jz short loc_A0EE
|
||
mov word ptr [bp+reiidenconfig+2], di
|
||
mov word ptr [bp+reiidenconfig], 0
|
||
les bx, [bp+reiidenconfig]
|
||
mov word ptr es:[bx+reiidenconfig_t.score+2], 0
|
||
mov word ptr es:[bx+reiidenconfig_t.score], 0
|
||
les bx, [bp+reiidenconfig]
|
||
mov word ptr es:[bx+reiidenconfig_t.continues_total+2], 0
|
||
mov word ptr es:[bx+reiidenconfig_t.continues_total], 0
|
||
les bx, [bp+reiidenconfig]
|
||
mov es:[bx+reiidenconfig_t.end_flag], 0
|
||
les bx, [bp+reiidenconfig]
|
||
mov word ptr es:[bx+reiidenconfig_t.score_highest+2], 0
|
||
mov word ptr es:[bx+reiidenconfig_t.score_highest], 0
|
||
xor si, si
|
||
jmp short loc_A0E0
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A0D0:
|
||
mov ax, si
|
||
add ax, ax
|
||
les bx, [bp+reiidenconfig]
|
||
add bx, ax
|
||
mov es:[bx+reiidenconfig_t.continues_per_scene], 0
|
||
inc si
|
||
|
||
loc_A0E0:
|
||
cmp si, 4
|
||
jl short loc_A0D0
|
||
les bx, [bp+reiidenconfig]
|
||
mov es:[bx+reiidenconfig_t.stage], 0
|
||
|
||
loc_A0EE:
|
||
mov ax, 1
|
||
jmp short $+2
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_A076 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)
|
||
public _main
|
||
_main proc far
|
||
|
||
_argc = word ptr 6
|
||
_argv = dword ptr 8
|
||
_envp = dword ptr 0Ch
|
||
|
||
push bp
|
||
mov bp, sp
|
||
call _mdrv2_resident
|
||
or ax, ax
|
||
jnz short loc_A105
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A105:
|
||
les bx, [bp+_argv]
|
||
les bx, es:[bx+4]
|
||
mov al, es:[bx]
|
||
cbw
|
||
cmp ax, 74h ; 't'
|
||
jz short loc_A121
|
||
call sub_9F49
|
||
or ax, ax
|
||
jnz short loc_A11F
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A11F:
|
||
jmp short loc_A13E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A121:
|
||
les bx, [bp+_argv]
|
||
les bx, es:[bx+4]
|
||
mov al, es:[bx+1]
|
||
cbw
|
||
cmp ax, 31h ; '1'
|
||
jnz short loc_A139
|
||
mov byte_14021, 1
|
||
jmp short loc_A13E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A139:
|
||
mov byte_14021, 2
|
||
|
||
loc_A13E:
|
||
call _mdrv2_check_board
|
||
call sub_CEAD
|
||
call sub_B945
|
||
call sub_CF1B
|
||
push 0
|
||
push 0
|
||
push ds
|
||
push offset arg0 ; "op"
|
||
push ds
|
||
push offset path ; "op"
|
||
call _execl
|
||
add sp, 0Ch
|
||
pop bp
|
||
retf
|
||
_main endp
|
||
|
||
fuuin_01_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
fuuin_02_TEXT segment byte public 'CODE' use16
|
||
assume cs:fuuin_02_TEXT
|
||
;org 8
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A168 proc far
|
||
|
||
var_30 = byte ptr -30h
|
||
var_8 = word ptr -8
|
||
var_6 = word ptr -6
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
arg_6 = word ptr 0Ch
|
||
arg_8 = word ptr 0Eh
|
||
arg_A = word ptr 10h
|
||
arg_C = word ptr 12h
|
||
arg_E = word ptr 14h
|
||
arg_10 = word ptr 16h
|
||
|
||
enter 30h, 0
|
||
push si
|
||
push di
|
||
mov si, [bp+arg_0]
|
||
mov [bp+var_6], 0
|
||
mov [bp+var_8], 1
|
||
lea ax, [bp+var_30]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset FULLWIDTH_NUMBERS
|
||
mov cx, 28h ; '('
|
||
call SCOPY@
|
||
xor di, di
|
||
jmp short loc_A1A7
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A190:
|
||
xor cx, cx
|
||
mov bx, 0Ah
|
||
mov dx, [bp+var_6]
|
||
mov ax, [bp+var_8]
|
||
call LXMUL@
|
||
mov [bp+var_6], dx
|
||
mov [bp+var_8], ax
|
||
inc di
|
||
|
||
loc_A1A7:
|
||
cmp di, [bp+arg_6]
|
||
jl short loc_A190
|
||
|
||
loc_A1AC:
|
||
push 0
|
||
push 0Ah
|
||
push [bp+var_6]
|
||
push [bp+var_8]
|
||
call far ptr F_LUDIV@
|
||
mov [bp+var_6], dx
|
||
mov [bp+var_8], ax
|
||
cmp si, 270h
|
||
jle short loc_A1CA
|
||
jmp loc_A261
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A1CA:
|
||
push 0
|
||
push 0Ah
|
||
push [bp+var_6]
|
||
push [bp+var_8]
|
||
push [bp+arg_A]
|
||
push [bp+arg_8]
|
||
call far ptr F_LUDIV@
|
||
push dx
|
||
push ax
|
||
call far ptr LUMOD@
|
||
mov [bp+var_2], ax
|
||
push 0
|
||
push 0Ah
|
||
push [bp+var_6]
|
||
push [bp+var_8]
|
||
push [bp+arg_E]
|
||
push [bp+arg_C]
|
||
call far ptr F_LUDIV@
|
||
push dx
|
||
push ax
|
||
call far ptr LUMOD@
|
||
mov [bp+var_4], ax
|
||
cmp [bp+var_2], 0
|
||
jz short loc_A213
|
||
mov [bp+arg_10], 1
|
||
|
||
loc_A213:
|
||
cmp [bp+arg_10], 0
|
||
jz short loc_A24A
|
||
mov ax, [bp+var_2]
|
||
cmp ax, [bp+var_4]
|
||
jnz short loc_A229
|
||
mov ax, [bp+arg_C]
|
||
or ax, [bp+arg_E]
|
||
jnz short loc_A24A
|
||
|
||
loc_A229:
|
||
mov bx, [bp+var_2]
|
||
shl bx, 2
|
||
lea ax, [bp+var_30]
|
||
add bx, ax
|
||
push word ptr ss:[bx+2]
|
||
push word ptr ss:[bx]
|
||
push [bp+arg_4]
|
||
push [bp+arg_2]
|
||
push si
|
||
call sub_E10C
|
||
add sp, 0Ah
|
||
|
||
loc_A24A:
|
||
add si, 10h
|
||
cmp [bp+var_6], 0
|
||
jbe short loc_A256
|
||
jmp loc_A1AC
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A256:
|
||
jnz short loc_A261
|
||
cmp [bp+var_8], 1
|
||
jbe short loc_A261
|
||
jmp loc_A1AC
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A261:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_A168 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A265 proc far
|
||
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
|
||
enter 4, 0
|
||
cmp [bp+arg_0], 1
|
||
jnz short loc_A2A5
|
||
mov byte_14039, 0
|
||
mov byte_1403A, 0
|
||
mov byte_1403B, 0
|
||
mov byte_1403C, 0
|
||
mov byte_1403D, 0
|
||
mov byte_1403E, 0
|
||
mov byte_1403F, 0
|
||
mov byte_14040, 0
|
||
mov byte_14041, 0
|
||
mov byte_14042, 0
|
||
leave
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
leave
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A2A5:
|
||
push 7
|
||
call key_sense
|
||
mov [bp+var_2], ax
|
||
push 5
|
||
call key_sense
|
||
mov [bp+var_4], ax
|
||
push 7
|
||
call key_sense
|
||
or [bp+var_2], ax
|
||
push 5
|
||
call key_sense
|
||
or [bp+var_4], ax
|
||
mov al, byte_14039
|
||
mov ah, 0
|
||
mov dx, [bp+var_2]
|
||
and dx, 4
|
||
cmp ax, dx
|
||
jz short loc_A2EE
|
||
test byte ptr [bp+var_2], 4
|
||
jz short loc_A2E9
|
||
mov byte_12BA2, 1
|
||
jmp short loc_A2EE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A2E9:
|
||
mov byte_12BA2, 0
|
||
|
||
loc_A2EE:
|
||
mov al, byte ptr [bp+var_2]
|
||
and al, 4
|
||
mov byte_14039, al
|
||
mov al, byte_1403A
|
||
mov ah, 0
|
||
mov dx, [bp+var_2]
|
||
and dx, 20h
|
||
cmp ax, dx
|
||
jz short loc_A317
|
||
test byte ptr [bp+var_2], 20h
|
||
jz short loc_A312
|
||
mov byte_12BA3, 1
|
||
jmp short loc_A317
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A312:
|
||
mov byte_12BA3, 0
|
||
|
||
loc_A317:
|
||
mov al, byte ptr [bp+var_2]
|
||
and al, 20h
|
||
mov byte_1403A, al
|
||
mov al, byte_1403B
|
||
mov ah, 0
|
||
mov dx, [bp+var_2]
|
||
and dx, 8
|
||
cmp ax, dx
|
||
jz short loc_A340
|
||
test byte ptr [bp+var_2], 8
|
||
jz short loc_A33B
|
||
or byte_12B99, 2
|
||
jmp short loc_A340
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A33B:
|
||
and byte_12B99, 0FDh
|
||
|
||
loc_A340:
|
||
mov al, byte ptr [bp+var_2]
|
||
and al, 8
|
||
mov byte_1403B, al
|
||
mov al, byte_1403C
|
||
mov ah, 0
|
||
mov dx, [bp+var_2]
|
||
and dx, 10h
|
||
cmp ax, dx
|
||
jz short loc_A369
|
||
test byte ptr [bp+var_2], 10h
|
||
jz short loc_A364
|
||
or byte_12B99, 1
|
||
jmp short loc_A369
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A364:
|
||
and byte_12B99, 0FEh
|
||
|
||
loc_A369:
|
||
mov al, byte ptr [bp+var_2]
|
||
and al, 10h
|
||
mov byte_1403C, al
|
||
mov al, byte_1403D
|
||
mov ah, 0
|
||
mov dx, [bp+var_4]
|
||
and dx, 2
|
||
cmp ax, dx
|
||
jz short loc_A392
|
||
test byte ptr [bp+var_4], 2
|
||
jz short loc_A38D
|
||
mov byte_12B9C, 1
|
||
jmp short loc_A392
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A38D:
|
||
mov byte_12B9C, 0
|
||
|
||
loc_A392:
|
||
mov al, byte ptr [bp+var_4]
|
||
and al, 2
|
||
mov byte_1403D, al
|
||
mov al, byte_1403E
|
||
mov ah, 0
|
||
mov dx, [bp+var_4]
|
||
and dx, 4
|
||
cmp ax, dx
|
||
jz short loc_A3BB
|
||
test byte ptr [bp+var_4], 4
|
||
jz short loc_A3B6
|
||
mov byte_12BA1, 1
|
||
jmp short loc_A3BB
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A3B6:
|
||
mov byte_12BA1, 0
|
||
|
||
loc_A3BB:
|
||
mov al, byte ptr [bp+var_4]
|
||
and al, 4
|
||
mov byte_1403E, al
|
||
push 0
|
||
call key_sense
|
||
mov [bp+var_2], ax
|
||
push 3
|
||
call key_sense
|
||
mov [bp+var_4], ax
|
||
push 0
|
||
call key_sense
|
||
or [bp+var_2], ax
|
||
push 3
|
||
call key_sense
|
||
or [bp+var_4], ax
|
||
mov al, byte_1403F
|
||
mov ah, 0
|
||
mov dx, [bp+var_2]
|
||
and dx, 1
|
||
cmp ax, dx
|
||
jz short loc_A409
|
||
test byte ptr [bp+var_2], 1
|
||
jz short loc_A409
|
||
mov al, 1
|
||
sub al, byte_12B9F
|
||
mov byte_12B9F, al
|
||
|
||
loc_A409:
|
||
mov al, byte ptr [bp+var_2]
|
||
and al, 1
|
||
mov byte_1403F, al
|
||
mov al, byte_14040
|
||
mov ah, 0
|
||
mov dx, [bp+var_4]
|
||
and dx, 10h
|
||
cmp ax, dx
|
||
jz short loc_A445
|
||
test byte ptr [bp+var_4], 10h
|
||
jz short loc_A440
|
||
cmp byte_12B9F, 1
|
||
jnz short loc_A439
|
||
cmp byte_12B9C, 1
|
||
jnz short loc_A439
|
||
mov byte_12B9D, 1
|
||
|
||
loc_A439:
|
||
mov byte_12BA0, 1
|
||
jmp short loc_A445
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A440:
|
||
mov byte_12BA0, 0
|
||
|
||
loc_A445:
|
||
mov al, byte ptr [bp+var_4]
|
||
and al, 10h
|
||
mov byte_14040, al
|
||
leave
|
||
retf
|
||
sub_A265 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A44F proc far
|
||
push bp
|
||
mov bp, sp
|
||
mov byte_12B99, 0
|
||
mov byte_12BA2, 0
|
||
mov byte_12BA3, 0
|
||
mov byte_12BA0, 0
|
||
mov byte_12B9F, 0
|
||
mov byte_12B9C, 0
|
||
mov byte_12BA1, 0
|
||
mov byte_12B9A, 0
|
||
mov byte_12B9B, 0
|
||
push 1
|
||
call sub_A265
|
||
pop cx
|
||
pop bp
|
||
retf
|
||
sub_A44F endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A488 proc far
|
||
|
||
arg_0 = byte ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
mov al, [bp+arg_0]
|
||
add al, 9Ch
|
||
pop bp
|
||
retf
|
||
sub_A488 endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
pop bp
|
||
retf
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A494 proc far
|
||
|
||
arg_0 = byte ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
mov al, [bp+arg_0]
|
||
add al, 64h ; 'd'
|
||
pop bp
|
||
retf
|
||
sub_A494 endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
pop bp
|
||
retf
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A4A0 proc far
|
||
|
||
dest = byte ptr -26h
|
||
var_16 = word ptr -16h
|
||
var_14 = word ptr -14h
|
||
var_12 = dword ptr -12h
|
||
stream = dword ptr -0Eh
|
||
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 26h, 0
|
||
push si
|
||
mov [bp+var_4], ds
|
||
mov [bp+var_6], 1ACh
|
||
mov word ptr [bp+var_12+2], ds
|
||
mov word ptr [bp+var_12], 1AFh
|
||
mov [bp+var_14], ds
|
||
mov [bp+var_16], 1C0h
|
||
mov al, _rank
|
||
mov ah, 0
|
||
mov bx, ax
|
||
cmp bx, RANK_LUNATIC
|
||
ja short loc_A4F5
|
||
add bx, bx
|
||
jmp cs:off_A614[bx]
|
||
|
||
loc_A4D0:
|
||
push ds
|
||
push offset aReyhies_dat ; "REYHIES.DAT"
|
||
jmp short loc_A4E6
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A4D6:
|
||
push ds
|
||
push offset aReyhino_dat ; "REYHINO.DAT"
|
||
jmp short loc_A4E6
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A4DC:
|
||
push ds
|
||
push offset aReyhiha_dat ; "REYHIHA.DAT"
|
||
jmp short loc_A4E6
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A4E2:
|
||
push ds
|
||
push offset src ; "REYHILU.DAT"
|
||
|
||
loc_A4E6:
|
||
push ss
|
||
lea ax, [bp+dest]
|
||
push ax ; dest
|
||
call _strcpy
|
||
add sp, 8
|
||
jmp short $+2
|
||
|
||
loc_A4F5:
|
||
cli
|
||
push ds
|
||
push offset aWB ; "wb"
|
||
push ss
|
||
lea ax, [bp+dest]
|
||
push ax ; path
|
||
call _fopen
|
||
add sp, 8
|
||
mov word ptr [bp+stream+2], dx
|
||
mov word ptr [bp+stream], ax
|
||
or ax, dx
|
||
jnz short loc_A517
|
||
jmp loc_A610
|
||
; ---------------------------------------------------------------------------
|
||
jmp loc_A611
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A517:
|
||
push 7
|
||
push [bp+var_14]
|
||
push [bp+var_16]
|
||
les bx, [bp+stream]
|
||
mov al, es:[bx+4]
|
||
cbw
|
||
push ax
|
||
call _write
|
||
add sp, 8
|
||
mov [bp+var_2], 0Ah
|
||
mov [bp+var_8], 0
|
||
mov [bp+var_A], 3E8h
|
||
xor si, si
|
||
jmp short loc_A55A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A543:
|
||
les bx, [bp+var_12]
|
||
add bx, si
|
||
mov al, es:[bx]
|
||
push ax
|
||
call sub_A488
|
||
pop cx
|
||
les bx, [bp+var_12]
|
||
add bx, si
|
||
mov es:[bx], al
|
||
inc si
|
||
|
||
loc_A55A:
|
||
cmp si, 10h
|
||
jl short loc_A543
|
||
xor si, si
|
||
jmp short loc_A57D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A563:
|
||
push 10h
|
||
push word ptr [bp+var_12+2]
|
||
push word ptr [bp+var_12]
|
||
les bx, [bp+stream]
|
||
mov al, es:[bx+4]
|
||
cbw
|
||
push ax
|
||
call _write
|
||
add sp, 8
|
||
inc si
|
||
|
||
loc_A57D:
|
||
cmp si, 0Ah
|
||
jl short loc_A563
|
||
xor si, si
|
||
jmp short loc_A5B1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A586:
|
||
push 4
|
||
push ss
|
||
lea ax, [bp+var_A]
|
||
push ax
|
||
les bx, [bp+stream]
|
||
mov al, es:[bx+4]
|
||
cbw
|
||
push ax
|
||
call _write
|
||
add sp, 8
|
||
mov dx, [bp+var_8]
|
||
mov ax, [bp+var_A]
|
||
add ax, 0FF9Ch
|
||
adc dx, 0FFFFh
|
||
mov [bp+var_8], dx
|
||
mov [bp+var_A], ax
|
||
inc si
|
||
|
||
loc_A5B1:
|
||
cmp si, 0Ah
|
||
jl short loc_A586
|
||
xor si, si
|
||
jmp short loc_A5DA
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A5BA:
|
||
push 2
|
||
push ss
|
||
lea ax, [bp+var_2]
|
||
push ax
|
||
les bx, [bp+stream]
|
||
mov al, es:[bx+4]
|
||
cbw
|
||
push ax
|
||
call _write
|
||
add sp, 8
|
||
mov ax, [bp+var_2]
|
||
dec ax
|
||
mov [bp+var_2], ax
|
||
inc si
|
||
|
||
loc_A5DA:
|
||
cmp si, 0Ah
|
||
jl short loc_A5BA
|
||
xor si, si
|
||
jmp short loc_A5FD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A5E3:
|
||
push 2
|
||
push [bp+var_4]
|
||
push [bp+var_6]
|
||
les bx, [bp+stream]
|
||
mov al, es:[bx+4]
|
||
cbw
|
||
push ax
|
||
call _write
|
||
add sp, 8
|
||
inc si
|
||
|
||
loc_A5FD:
|
||
cmp si, 0Ah
|
||
jl short loc_A5E3
|
||
push word ptr [bp+stream+2]
|
||
push word ptr [bp+stream] ; stream
|
||
call _fclose
|
||
add sp, 4
|
||
|
||
loc_A610:
|
||
sti
|
||
|
||
loc_A611:
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_A4A0 endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
off_A614 dw offset loc_A4D0
|
||
dw offset loc_A4D6
|
||
dw offset loc_A4DC
|
||
dw offset loc_A4E2
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A61C proc far
|
||
|
||
dest = byte ptr -46h
|
||
s1 = byte ptr -36h
|
||
stream = dword ptr -4
|
||
|
||
enter 46h, 0
|
||
push si
|
||
mov al, _rank
|
||
mov ah, 0
|
||
mov bx, ax
|
||
cmp bx, RANK_LUNATIC
|
||
ja short loc_A659
|
||
add bx, bx
|
||
jmp cs:off_A7C7[bx]
|
||
|
||
loc_A634:
|
||
push ds
|
||
push offset aReyhies_dat_0 ; "REYHIES.DAT"
|
||
jmp short loc_A64A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A63A:
|
||
push ds
|
||
push offset aReyhino_dat_0 ; "REYHINO.DAT"
|
||
jmp short loc_A64A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A640:
|
||
push ds
|
||
push offset aReyhiha_dat_0 ; "REYHIHA.DAT"
|
||
jmp short loc_A64A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A646:
|
||
push ds
|
||
push offset aReyhilu_dat_0 ; "REYHILU.DAT"
|
||
|
||
loc_A64A:
|
||
push ss
|
||
lea ax, [bp+dest]
|
||
push ax ; dest
|
||
call _strcpy
|
||
add sp, 8
|
||
jmp short $+2
|
||
|
||
loc_A659:
|
||
push 0 ; amode
|
||
push ss
|
||
lea ax, [bp+dest]
|
||
push ax ; path
|
||
call _access
|
||
add sp, 6
|
||
or ax, ax
|
||
jz short loc_A670
|
||
call sub_A4A0
|
||
|
||
loc_A670:
|
||
cli
|
||
push ds
|
||
push offset aRb ; "rb"
|
||
push ss
|
||
lea ax, [bp+dest]
|
||
push ax ; path
|
||
call _fopen
|
||
add sp, 8
|
||
mov word ptr [bp+stream+2], dx
|
||
mov word ptr [bp+stream], ax
|
||
or ax, dx
|
||
jnz short loc_A694
|
||
push ds
|
||
push offset aGtg@gcglvkvVVi ; "<22>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>݂<DD82><C282><EFBFBD><EFBFBD>Ȃ<EFBFBD>"
|
||
jmp short loc_A6D5
|
||
; ---------------------------------------------------------------------------
|
||
jmp short loc_A6DE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A694:
|
||
push 7
|
||
push ss
|
||
lea ax, [bp+s1]
|
||
push ax
|
||
les bx, [bp+stream]
|
||
mov al, es:[bx+4]
|
||
cbw
|
||
push ax
|
||
call _read
|
||
add sp, 8
|
||
push 4 ; n
|
||
push ds
|
||
push offset aHiscore ; "HISCORE"
|
||
push ss
|
||
lea ax, [bp+s1]
|
||
push ax ; s1
|
||
call _memcmp
|
||
add sp, 0Ah
|
||
or ax, ax
|
||
jz short loc_A6E4
|
||
push word ptr [bp+stream+2]
|
||
push word ptr [bp+stream] ; stream
|
||
call _fclose
|
||
add sp, 4
|
||
push ds
|
||
push offset format ; "<22>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>Ⴄ<EFBFBD>I"
|
||
|
||
loc_A6D5:
|
||
call _printf
|
||
add sp, 4
|
||
sti
|
||
|
||
loc_A6DE:
|
||
mov ax, 1
|
||
jmp loc_A7C4
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A6E4:
|
||
push 0A0h
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov word ptr font+2, dx
|
||
mov word ptr font, ax
|
||
push 14h
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov word ptr off_1402C+2, dx
|
||
mov word ptr off_1402C, ax
|
||
push 14h
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov word ptr off_14028+2, dx
|
||
mov word ptr off_14028, ax
|
||
push 28h ; '('
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov word ptr off_14034+2, dx
|
||
mov word ptr off_14034, ax
|
||
push 0A0h
|
||
push word ptr font+2
|
||
push word ptr font
|
||
les bx, [bp+stream]
|
||
mov al, es:[bx+4]
|
||
cbw
|
||
push ax
|
||
call _read
|
||
add sp, 8
|
||
push 28h ; '('
|
||
push word ptr off_14034+2
|
||
push word ptr off_14034
|
||
les bx, [bp+stream]
|
||
mov al, es:[bx+4]
|
||
cbw
|
||
push ax
|
||
call _read
|
||
add sp, 8
|
||
push 14h
|
||
push word ptr off_1402C+2
|
||
push word ptr off_1402C
|
||
les bx, [bp+stream]
|
||
mov al, es:[bx+4]
|
||
cbw
|
||
push ax
|
||
call _read
|
||
add sp, 8
|
||
push 14h
|
||
push word ptr off_14028+2
|
||
push word ptr off_14028
|
||
les bx, [bp+stream]
|
||
mov al, es:[bx+4]
|
||
cbw
|
||
push ax
|
||
call _read
|
||
add sp, 8
|
||
push word ptr [bp+stream+2]
|
||
push word ptr [bp+stream] ; stream
|
||
call _fclose
|
||
add sp, 4
|
||
xor si, si
|
||
jmp short loc_A7B9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A7A0:
|
||
les bx, font
|
||
add bx, si
|
||
mov al, es:[bx]
|
||
push ax
|
||
call sub_A494
|
||
pop cx
|
||
les bx, font
|
||
add bx, si
|
||
mov es:[bx], al
|
||
inc si
|
||
|
||
loc_A7B9:
|
||
cmp si, 0A0h
|
||
jl short loc_A7A0
|
||
sti
|
||
xor ax, ax
|
||
jmp short $+2
|
||
|
||
loc_A7C4:
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_A61C endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
off_A7C7 dw offset loc_A634
|
||
dw offset loc_A63A
|
||
dw offset loc_A640
|
||
dw offset loc_A646
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A7CF proc far
|
||
|
||
arg_0 = word ptr 6
|
||
arg_2 = dword ptr 8
|
||
|
||
push bp
|
||
mov bp, sp
|
||
xor dx, dx
|
||
jmp short loc_A7F2
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A7D6:
|
||
mov bx, [bp+arg_0]
|
||
shl bx, 4
|
||
add bx, dx
|
||
mov es, word ptr font+2
|
||
add bx, word ptr font
|
||
mov al, es:[bx]
|
||
les bx, [bp+arg_2]
|
||
add bx, dx
|
||
mov es:[bx], al
|
||
inc dx
|
||
|
||
loc_A7F2:
|
||
cmp dx, 10h
|
||
jl short loc_A7D6
|
||
les bx, [bp+arg_2]
|
||
mov byte ptr es:[bx+10h], 0
|
||
pop bp
|
||
retf
|
||
sub_A7CF endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A801 proc far
|
||
|
||
var_2 = word ptr -2
|
||
|
||
enter 2, 0
|
||
push si
|
||
push di
|
||
mov [bp+var_2], 27h ; '''
|
||
mov di, 8282h
|
||
mov si, 1
|
||
jmp short loc_A84F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A814:
|
||
mov ax, di
|
||
and ax, 0FFh
|
||
push ax
|
||
mov ax, di
|
||
shr ax, 8
|
||
push ax ; arglist
|
||
push ds
|
||
push offset aCC ; "%c%c"
|
||
push [bp+var_2] ; int
|
||
mov ax, si
|
||
mov bx, 12h
|
||
cwd
|
||
idiv bx
|
||
imul ax, 18h
|
||
add ax, 0F0h
|
||
push ax ; int
|
||
mov ax, si
|
||
mov bx, 12h
|
||
cwd
|
||
idiv bx
|
||
shl dx, 5
|
||
add dx, 20h ; ' '
|
||
push dx ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
inc di
|
||
inc si
|
||
|
||
loc_A84F:
|
||
cmp si, 1Ah
|
||
jl short loc_A814
|
||
push ds
|
||
push offset aVb ; "<22><>"
|
||
push 823h
|
||
push 0F0h
|
||
push 20h ; ' '
|
||
call sub_E10C
|
||
add sp, 0Ah
|
||
mov di, 8260h
|
||
xor si, si
|
||
jmp short loc_A8AA
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A86F:
|
||
mov ax, di
|
||
and ax, 0FFh
|
||
push ax
|
||
mov ax, di
|
||
shr ax, 8
|
||
push ax ; arglist
|
||
push ds
|
||
push offset aCC_0 ; "%c%c"
|
||
push [bp+var_2] ; int
|
||
mov ax, si
|
||
mov bx, 12h
|
||
cwd
|
||
idiv bx
|
||
imul ax, 18h
|
||
add ax, 120h
|
||
push ax ; int
|
||
mov ax, si
|
||
mov bx, 12h
|
||
cwd
|
||
idiv bx
|
||
shl dx, 5
|
||
add dx, 20h ; ' '
|
||
push dx ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
inc di
|
||
inc si
|
||
|
||
loc_A8AA:
|
||
cmp si, 1Ah
|
||
jl short loc_A86F
|
||
xor si, si
|
||
jmp short loc_A8F5
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A8B3:
|
||
mov bx, si
|
||
add bx, bx
|
||
mov di, [bx+108h]
|
||
mov ax, di
|
||
and ax, 0FFh
|
||
push ax
|
||
mov ax, di
|
||
shr ax, 8
|
||
push ax ; arglist
|
||
push ds
|
||
push offset aCC_1 ; "%c%c"
|
||
push [bp+var_2] ; int
|
||
mov ax, si
|
||
mov bx, 12h
|
||
cwd
|
||
idiv bx
|
||
imul ax, 18h
|
||
add ax, 150h
|
||
push ax ; int
|
||
mov ax, si
|
||
mov bx, 12h
|
||
cwd
|
||
idiv bx
|
||
shl dx, 5
|
||
add dx, 20h ; ' '
|
||
push dx ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
inc si
|
||
|
||
loc_A8F5:
|
||
cmp si, 12h
|
||
jl short loc_A8B3
|
||
mov di, 824Fh
|
||
xor si, si
|
||
jmp short loc_A93C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A901:
|
||
mov ax, di
|
||
and ax, 0FFh
|
||
push ax
|
||
mov ax, di
|
||
shr ax, 8
|
||
push ax ; arglist
|
||
push ds
|
||
push offset aCC_2 ; "%c%c"
|
||
push [bp+var_2] ; int
|
||
mov ax, si
|
||
mov bx, 12h
|
||
cwd
|
||
idiv bx
|
||
imul ax, 18h
|
||
add ax, 168h
|
||
push ax ; int
|
||
mov ax, si
|
||
mov bx, 12h
|
||
cwd
|
||
idiv bx
|
||
shl dx, 5
|
||
add dx, 20h ; ' '
|
||
push dx ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
inc di
|
||
inc si
|
||
|
||
loc_A93C:
|
||
cmp si, 0Ah
|
||
jl short loc_A901
|
||
push ds
|
||
push offset aSp ; "SP"
|
||
push [bp+var_2] ; int
|
||
mov ax, si
|
||
mov bx, 12h
|
||
cwd
|
||
idiv bx
|
||
imul ax, 18h
|
||
add ax, 168h
|
||
push ax ; int
|
||
mov ax, si
|
||
mov bx, 12h
|
||
cwd
|
||
idiv bx
|
||
shl dx, 5
|
||
add dx, 20h ; ' '
|
||
push dx ; int
|
||
call sub_E9E4
|
||
add sp, 0Ah
|
||
mov si, 0Fh
|
||
push ds
|
||
push offset aBi ; "<22><>"
|
||
push [bp+var_2] ; int
|
||
mov ax, si
|
||
mov bx, 12h
|
||
cwd
|
||
idiv bx
|
||
imul ax, 18h
|
||
add ax, 168h
|
||
push ax ; int
|
||
mov ax, si
|
||
mov bx, 12h
|
||
cwd
|
||
idiv bx
|
||
shl dx, 5
|
||
add dx, 20h ; ' '
|
||
push dx ; int
|
||
call sub_E9E4
|
||
add sp, 0Ah
|
||
inc si
|
||
push ds
|
||
push offset aBi_0 ; "<22><>"
|
||
push [bp+var_2] ; int
|
||
mov ax, si
|
||
mov bx, 12h
|
||
cwd
|
||
idiv bx
|
||
imul ax, 18h
|
||
add ax, 168h
|
||
push ax ; int
|
||
mov ax, si
|
||
mov bx, 12h
|
||
cwd
|
||
idiv bx
|
||
shl dx, 5
|
||
add dx, 20h ; ' '
|
||
push dx ; int
|
||
call sub_E9E4
|
||
add sp, 0Ah
|
||
inc si
|
||
push ds
|
||
push offset aPi ; "<22>I"
|
||
push [bp+var_2] ; int
|
||
mov ax, si
|
||
mov bx, 12h
|
||
cwd
|
||
idiv bx
|
||
imul ax, 18h
|
||
add ax, 168h
|
||
push ax ; int
|
||
mov ax, si
|
||
mov bx, 12h
|
||
cwd
|
||
idiv bx
|
||
shl dx, 5
|
||
add dx, 20h ; ' '
|
||
push dx ; int
|
||
call sub_E9E4
|
||
add sp, 0Ah
|
||
inc si
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_A801 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A9FF proc far
|
||
|
||
var_12 = byte ptr -12h
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
arg_6 = word ptr 0Ch
|
||
arg_8 = dword ptr 0Eh
|
||
arg_C = word ptr 12h
|
||
arg_E = word ptr 14h
|
||
|
||
enter 12h, 0
|
||
push si
|
||
push di
|
||
mov di, [bp+arg_0]
|
||
lea ax, [bp+var_12]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset aBqbqbqbqbqbqbq ; "<22>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q"
|
||
mov cx, 11h
|
||
call SCOPY@
|
||
push 0
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
push ds
|
||
push offset aB@cB@iB@ ; "<22>@<40><><EFBFBD>@<40>ʁ@"
|
||
push 33h ; '3'
|
||
push 30h ; '0'
|
||
push 20h ; ' '
|
||
call sub_E10C
|
||
add sp, 0Ah
|
||
push ds
|
||
push offset aB@b@cB@b@sob@b ; "<22>@<40>@<40><><EFBFBD>@<40>@<40>O<EFBFBD>@<40>@"
|
||
push 33h ; '3'
|
||
push 30h ; '0'
|
||
push 90h
|
||
call sub_E10C
|
||
add sp, 0Ah
|
||
push ds
|
||
push offset aB@b@uB@b@u_b@b ; "<22>@<40>@<40><><EFBFBD>@<40>@<40>_<EFBFBD>@<40>@"
|
||
push 33h ; '3'
|
||
push 30h ; '0'
|
||
push 160h
|
||
call sub_E10C
|
||
add sp, 0Ah
|
||
push ds
|
||
push offset aGxgebGwbeglbGg ; "<22>X<EFBFBD>e<EFBFBD>[<5B>W<EFBFBD>E<EFBFBD><45><EFBFBD>[<5B>g"
|
||
push 33h ; '3'
|
||
push 30h ; '0'
|
||
push 200h
|
||
call sub_E10C
|
||
add sp, 0Ah
|
||
xor si, si
|
||
jmp loc_AD66
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AA71:
|
||
mov bx, si
|
||
cmp bx, 9
|
||
jbe short loc_AA7B
|
||
jmp loc_AB4F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AA7B:
|
||
add bx, bx
|
||
jmp cs:off_AD72[bx]
|
||
|
||
loc_AA82:
|
||
push ds
|
||
push offset aB@sB@r_b@ ; "<22>@<40>ˁ@<40>_<EFBFBD>@"
|
||
cmp si, di
|
||
jnz short loc_AA8F
|
||
mov ax, 3
|
||
jmp short loc_AA92
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AA8F:
|
||
mov ax, 7
|
||
|
||
loc_AA92:
|
||
jmp loc_AB36
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AA95:
|
||
push ds
|
||
push offset aSMRgcId ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
cmp si, di
|
||
jnz short loc_AAA2
|
||
mov ax, 3
|
||
jmp short loc_AAA5
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AAA2:
|
||
mov ax, 7
|
||
|
||
loc_AAA5:
|
||
jmp loc_AB36
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AAA8:
|
||
push ds
|
||
push offset aB@uvb@rxb@ ; "<22>@<40>V<EFBFBD>@<40><><EFBFBD>@"
|
||
cmp si, di
|
||
jnz short loc_AAB5
|
||
mov ax, 3
|
||
jmp short loc_AAB8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AAB5:
|
||
mov ax, 7
|
||
|
||
loc_AAB8:
|
||
jmp short loc_AB36
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AABA:
|
||
push ds
|
||
push offset aB@r_b@rxb@ ; "<22>@<40>_<EFBFBD>@<40><><EFBFBD>@"
|
||
cmp si, di
|
||
jnz short loc_AAC7
|
||
mov ax, 3
|
||
jmp short loc_AACA
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AAC7:
|
||
mov ax, 7
|
||
|
||
loc_AACA:
|
||
jmp short loc_AB36
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AACC:
|
||
push ds
|
||
push offset aB@tnb@rxb@ ; "<22>@<40>n<EFBFBD>@<40><><EFBFBD>@"
|
||
cmp si, di
|
||
jnz short loc_AAD9
|
||
mov ax, 3
|
||
jmp short loc_AADC
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AAD9:
|
||
mov ax, 7
|
||
|
||
loc_AADC:
|
||
jmp short loc_AB36
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AADE:
|
||
push ds
|
||
push offset aB@rlb@rxb@ ; "<22>@<40>l<EFBFBD>@<40><><EFBFBD>@"
|
||
cmp si, di
|
||
jnz short loc_AAEB
|
||
mov ax, 3
|
||
jmp short loc_AAEE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AAEB:
|
||
mov ax, 7
|
||
|
||
loc_AAEE:
|
||
jmp short loc_AB36
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AAF0:
|
||
push ds
|
||
push offset aB@rxb@pcb@ ; "<22>@<40><><EFBFBD>@<40><><EFBFBD>@"
|
||
cmp si, di
|
||
jnz short loc_AAFD
|
||
mov ax, 3
|
||
jmp short loc_AB00
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AAFD:
|
||
mov ax, 7
|
||
|
||
loc_AB00:
|
||
jmp short loc_AB36
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AB02:
|
||
push ds
|
||
push offset aIab@czb@ot ; "<22>A<EFBFBD>@<40>z<EFBFBD>@<40>t"
|
||
cmp si, di
|
||
jnz short loc_AB0F
|
||
mov ax, 3
|
||
jmp short loc_AB12
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AB0F:
|
||
mov ax, 7
|
||
|
||
loc_AB12:
|
||
jmp short loc_AB36
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AB14:
|
||
push ds
|
||
push offset aSB@fB@ot ; "<22>ˁ@<40>}<7D>@<40>t"
|
||
cmp si, di
|
||
jnz short loc_AB21
|
||
mov ax, 3
|
||
jmp short loc_AB24
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AB21:
|
||
mov ax, 7
|
||
|
||
loc_AB24:
|
||
jmp short loc_AB36
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AB26:
|
||
push ds
|
||
push offset aPcb@lB@o ; "<22>C<EFBFBD>@<40>Ɓ@<40><>"
|
||
cmp si, di
|
||
jnz short loc_AB33
|
||
mov ax, 3
|
||
jmp short loc_AB36
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AB33:
|
||
mov ax, 7
|
||
|
||
loc_AB36:
|
||
or ax, 20h
|
||
push ax
|
||
mov ax, si
|
||
shl ax, 4
|
||
add ax, 40h
|
||
push ax
|
||
push 20h ; ' '
|
||
call sub_E10C
|
||
add sp, 0Ah
|
||
jmp short $+2
|
||
|
||
loc_AB4F:
|
||
cmp si, di
|
||
jnz short loc_AB5A
|
||
mov dx, ss
|
||
lea ax, [bp+var_12]
|
||
jmp short loc_AB69
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AB5A:
|
||
mov ax, si
|
||
imul ax, 12h
|
||
mov dx, [bp+arg_E]
|
||
push ax
|
||
mov ax, [bp+arg_C]
|
||
pop bx
|
||
add ax, bx
|
||
|
||
loc_AB69:
|
||
push dx
|
||
push ax
|
||
cmp si, di
|
||
jnz short loc_AB74
|
||
mov ax, 3
|
||
jmp short loc_AB77
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AB74:
|
||
mov ax, 7
|
||
|
||
loc_AB77:
|
||
or ax, 20h
|
||
push ax
|
||
mov ax, si
|
||
shl ax, 4
|
||
add ax, 40h
|
||
push ax
|
||
push 90h
|
||
call sub_E10C
|
||
add sp, 0Ah
|
||
push 0
|
||
push 0
|
||
push 0
|
||
cmp di, si
|
||
jnz short loc_ABA1
|
||
mov dx, [bp+arg_4]
|
||
mov ax, [bp+arg_2]
|
||
jmp short loc_ABB3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ABA1:
|
||
mov ax, si
|
||
shl ax, 2
|
||
les bx, off_14034
|
||
add bx, ax
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
|
||
loc_ABB3:
|
||
push dx
|
||
push ax
|
||
push 7
|
||
cmp si, di
|
||
jnz short loc_ABC0
|
||
mov ax, 3
|
||
jmp short loc_ABC3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ABC0:
|
||
mov ax, 7
|
||
|
||
loc_ABC3:
|
||
or ax, 30h
|
||
push ax
|
||
mov ax, si
|
||
shl ax, 4
|
||
add ax, 40h
|
||
push ax
|
||
push 160h
|
||
call sub_A168
|
||
add sp, 12h
|
||
cmp si, di
|
||
jz short loc_ABEE
|
||
mov ax, si
|
||
add ax, ax
|
||
les bx, off_1402C
|
||
add bx, ax
|
||
cmp word ptr es:[bx], 28h ; '('
|
||
jl short loc_ABF8
|
||
|
||
loc_ABEE:
|
||
cmp si, di
|
||
jnz short loc_AC3F
|
||
cmp [bp+arg_6], 28h ; '('
|
||
jge short loc_AC3F
|
||
|
||
loc_ABF8:
|
||
push 0
|
||
push 0
|
||
push 0
|
||
cmp si, di
|
||
jnz short loc_AC07
|
||
mov ax, [bp+arg_6]
|
||
jmp short loc_AC14
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AC07:
|
||
mov ax, si
|
||
add ax, ax
|
||
les bx, off_1402C
|
||
add bx, ax
|
||
mov ax, es:[bx]
|
||
|
||
loc_AC14:
|
||
cwd
|
||
push dx
|
||
push ax
|
||
push 2
|
||
cmp si, di
|
||
jnz short loc_AC22
|
||
mov ax, 3
|
||
jmp short loc_AC25
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AC22:
|
||
mov ax, 7
|
||
|
||
loc_AC25:
|
||
or ax, 20h
|
||
push ax
|
||
mov ax, si
|
||
shl ax, 4
|
||
add ax, 40h
|
||
push ax
|
||
push 210h
|
||
call sub_A168
|
||
add sp, 12h
|
||
jmp loc_ACCD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AC3F:
|
||
cmp si, di
|
||
jz short loc_AC53
|
||
mov ax, si
|
||
add ax, ax
|
||
les bx, off_1402C
|
||
add bx, ax
|
||
cmp word ptr es:[bx], 32h ; '2'
|
||
jz short loc_AC5D
|
||
|
||
loc_AC53:
|
||
cmp si, di
|
||
jnz short loc_AC87
|
||
cmp [bp+arg_6], 32h ; '2'
|
||
jnz short loc_AC87
|
||
|
||
loc_AC5D:
|
||
push ds
|
||
push offset aCvke ; "<22><><EFBFBD>E"
|
||
cmp si, di
|
||
jnz short loc_AC6A
|
||
mov ax, 3
|
||
jmp short loc_AC6D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AC6A:
|
||
mov ax, 7
|
||
|
||
loc_AC6D:
|
||
or ax, 20h
|
||
push ax
|
||
mov ax, si
|
||
shl ax, 4
|
||
add ax, 40h
|
||
push ax
|
||
push 210h
|
||
call sub_E10C
|
||
add sp, 0Ah
|
||
jmp short loc_ACCD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AC87:
|
||
cmp si, di
|
||
jz short loc_AC9B
|
||
mov ax, si
|
||
add ax, ax
|
||
les bx, off_1402C
|
||
add bx, ax
|
||
cmp word ptr es:[bx], 3Ch ; '<'
|
||
jz short loc_ACA5
|
||
|
||
loc_AC9B:
|
||
cmp si, di
|
||
jnz short loc_ACCD
|
||
cmp [bp+arg_6], 3Ch ; '<'
|
||
jnz short loc_ACCD
|
||
|
||
loc_ACA5:
|
||
push ds
|
||
push offset aTnnc ; "<22>n<EFBFBD><6E>"
|
||
cmp si, di
|
||
jnz short loc_ACB2
|
||
mov ax, 3
|
||
jmp short loc_ACB5
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ACB2:
|
||
mov ax, 7
|
||
|
||
loc_ACB5:
|
||
or ax, 20h
|
||
push ax
|
||
mov ax, si
|
||
shl ax, 4
|
||
add ax, 40h
|
||
push ax
|
||
push 210h
|
||
call sub_E10C
|
||
add sp, 0Ah
|
||
|
||
loc_ACCD:
|
||
push ds
|
||
push offset aB ; "<22>|"
|
||
cmp si, di
|
||
jnz short loc_ACDA
|
||
mov ax, 3
|
||
jmp short loc_ACDD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ACDA:
|
||
mov ax, 7
|
||
|
||
loc_ACDD:
|
||
or ax, 20h
|
||
push ax
|
||
mov ax, si
|
||
shl ax, 4
|
||
add ax, 40h
|
||
push ax
|
||
push 230h
|
||
call sub_E10C
|
||
add sp, 0Ah
|
||
cmp si, di
|
||
jnz short loc_ACFE
|
||
les bx, [bp+arg_8]
|
||
jmp short loc_AD0A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ACFE:
|
||
mov bx, si
|
||
add bx, bx
|
||
mov es, word ptr off_14028+2
|
||
add bx, word ptr off_14028
|
||
|
||
loc_AD0A:
|
||
mov al, es:[bx+1]
|
||
cbw
|
||
push ax
|
||
cmp si, di
|
||
jnz short loc_AD19
|
||
les bx, [bp+arg_8]
|
||
jmp short loc_AD23
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AD19:
|
||
mov ax, si
|
||
add ax, ax
|
||
les bx, off_14028
|
||
add bx, ax
|
||
|
||
loc_AD23:
|
||
mov al, es:[bx]
|
||
cbw
|
||
push ax ; arglist
|
||
push ds
|
||
push offset aCC_3 ; "%c%c"
|
||
cmp si, di
|
||
jnz short loc_AD35
|
||
mov ax, 3
|
||
jmp short loc_AD38
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AD35:
|
||
mov ax, 7
|
||
|
||
loc_AD38:
|
||
or ax, 20h
|
||
push ax ; int
|
||
mov ax, si
|
||
shl ax, 4
|
||
add ax, 40h
|
||
push ax ; int
|
||
push 240h ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
cmp di, si
|
||
jnz short loc_AD65
|
||
mov word_14030, 90h
|
||
mov ax, si
|
||
shl ax, 4
|
||
add ax, 40h
|
||
mov word_14032, ax
|
||
|
||
loc_AD65:
|
||
inc si
|
||
|
||
loc_AD66:
|
||
cmp si, 0Ah
|
||
jge short loc_AD6E
|
||
jmp loc_AA71
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AD6E:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_A9FF endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
off_AD72 dw offset loc_AA82
|
||
dw offset loc_AA95
|
||
dw offset loc_AAA8
|
||
dw offset loc_AABA
|
||
dw offset loc_AACC
|
||
dw offset loc_AADE
|
||
dw offset loc_AAF0
|
||
dw offset loc_AB02
|
||
dw offset loc_AB14
|
||
dw offset loc_AB26
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_AD86 proc far
|
||
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
|
||
enter 4, 0
|
||
push si
|
||
push di
|
||
mov si, [bp+arg_0]
|
||
mov di, [bp+arg_2]
|
||
mov [bp+var_2], 0
|
||
push 10h
|
||
push 20h ; ' '
|
||
push di
|
||
push si
|
||
call _egc_copy_rect_1_to_0
|
||
add sp, 8
|
||
cmp [bp+arg_4], 0
|
||
jnz short loc_ADB0
|
||
mov ax, 7
|
||
jmp short loc_ADB3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ADB0:
|
||
mov ax, 803h
|
||
|
||
loc_ADB3:
|
||
or ax, 20h
|
||
mov [bp+var_4], ax
|
||
cmp di, 0F0h
|
||
jnz short loc_ADD1
|
||
lea ax, [si-20h]
|
||
mov bx, 20h ; ' '
|
||
cwd
|
||
idiv bx
|
||
add ax, 8281h
|
||
mov [bp+var_2], ax
|
||
jmp loc_AECD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ADD1:
|
||
cmp di, 108h
|
||
jnz short loc_ADE9
|
||
lea ax, [si-20h]
|
||
mov bx, 20h ; ' '
|
||
cwd
|
||
idiv bx
|
||
add ax, 8293h
|
||
mov [bp+var_2], ax
|
||
jmp loc_AECD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ADE9:
|
||
cmp di, 120h
|
||
jnz short loc_AE01
|
||
lea ax, [si-20h]
|
||
mov bx, 20h ; ' '
|
||
cwd
|
||
idiv bx
|
||
add ax, 8260h
|
||
mov [bp+var_2], ax
|
||
jmp loc_AECD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AE01:
|
||
cmp di, 138h
|
||
jnz short loc_AE19
|
||
lea ax, [si-20h]
|
||
mov bx, 20h ; ' '
|
||
cwd
|
||
idiv bx
|
||
add ax, 8272h
|
||
mov [bp+var_2], ax
|
||
jmp loc_AECD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AE19:
|
||
cmp di, 150h
|
||
jnz short loc_AE36
|
||
lea ax, [si-20h]
|
||
mov bx, 20h ; ' '
|
||
cwd
|
||
idiv bx
|
||
add ax, ax
|
||
mov bx, ax
|
||
mov ax, [bx+108h]
|
||
mov [bp+var_2], ax
|
||
jmp loc_AECD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AE36:
|
||
cmp di, 168h
|
||
jnz short loc_AE53
|
||
cmp si, 160h
|
||
jge short loc_AE53
|
||
lea ax, [si-20h]
|
||
mov bx, 20h ; ' '
|
||
cwd
|
||
idiv bx
|
||
add ax, 824Fh
|
||
mov [bp+var_2], ax
|
||
jmp short loc_AECD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AE53:
|
||
cmp di, 168h
|
||
jnz short loc_AE72
|
||
cmp si, 160h
|
||
jnz short loc_AE72
|
||
push ds
|
||
push offset aSp_0 ; "SP"
|
||
push [bp+var_4] ; int
|
||
push di ; int
|
||
push si ; int
|
||
call sub_E9E4
|
||
add sp, 0Ah
|
||
jmp short loc_AECD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AE72:
|
||
cmp di, 168h
|
||
jnz short loc_AE91
|
||
cmp si, 200h
|
||
jnz short loc_AE91
|
||
push ds
|
||
push offset aBi_1 ; "<22><>"
|
||
push [bp+var_4] ; int
|
||
push di ; int
|
||
push si ; int
|
||
call sub_E9E4
|
||
add sp, 0Ah
|
||
jmp short loc_AECD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AE91:
|
||
cmp di, 168h
|
||
jnz short loc_AEB0
|
||
cmp si, 220h
|
||
jnz short loc_AEB0
|
||
push ds
|
||
push offset aBi_2 ; "<22><>"
|
||
push [bp+var_4] ; int
|
||
push di ; int
|
||
push si ; int
|
||
call sub_E9E4
|
||
add sp, 0Ah
|
||
jmp short loc_AECD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AEB0:
|
||
cmp di, 168h
|
||
jnz short loc_AECD
|
||
cmp si, 240h
|
||
jnz short loc_AECD
|
||
push ds
|
||
push offset aPi_0 ; "<22>I"
|
||
push [bp+var_4] ; int
|
||
push di ; int
|
||
push si ; int
|
||
call sub_E9E4
|
||
add sp, 0Ah
|
||
|
||
loc_AECD:
|
||
cmp [bp+var_2], 0
|
||
jz short loc_AEF2
|
||
mov ax, [bp+var_2]
|
||
and ax, 0FFh
|
||
push ax
|
||
mov ax, [bp+var_2]
|
||
sar ax, 8
|
||
push ax ; arglist
|
||
push ds
|
||
push offset aCC_4 ; "%c%c"
|
||
push [bp+var_4] ; int
|
||
push di ; int
|
||
push si ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
|
||
loc_AEF2:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_AD86 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
; int __cdecl __far sub_AEF6(int, int, char arglist, int, __int32)
|
||
sub_AEF6 proc far
|
||
|
||
var_14 = byte ptr -14h
|
||
var_13 = byte ptr -13h
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
_arglist = byte ptr 0Ah
|
||
arg_8 = dword ptr 0Eh
|
||
|
||
enter 14h, 0
|
||
push si
|
||
push di
|
||
mov si, [bp+arg_0]
|
||
mov di, [bp+arg_2]
|
||
mov [bp+var_2], 0
|
||
lea ax, [bp+var_14]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset aB@b@b@b@b@b@b@ ; "<22>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@"
|
||
mov cx, 11h
|
||
call SCOPY@
|
||
cmp di, 0F0h
|
||
jnz short loc_AF30
|
||
lea ax, [si-20h]
|
||
mov bx, 20h ; ' '
|
||
cwd
|
||
idiv bx
|
||
add ax, 8281h
|
||
mov [bp+var_2], ax
|
||
jmp loc_B021
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AF30:
|
||
cmp di, 108h
|
||
jnz short loc_AF48
|
||
lea ax, [si-20h]
|
||
mov bx, 20h ; ' '
|
||
cwd
|
||
idiv bx
|
||
add ax, 8293h
|
||
mov [bp+var_2], ax
|
||
jmp loc_B021
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AF48:
|
||
cmp di, 120h
|
||
jnz short loc_AF60
|
||
lea ax, [si-20h]
|
||
mov bx, 20h ; ' '
|
||
cwd
|
||
idiv bx
|
||
add ax, 8260h
|
||
mov [bp+var_2], ax
|
||
jmp loc_B021
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AF60:
|
||
cmp di, 138h
|
||
jnz short loc_AF78
|
||
lea ax, [si-20h]
|
||
mov bx, 20h ; ' '
|
||
cwd
|
||
idiv bx
|
||
add ax, 8272h
|
||
mov [bp+var_2], ax
|
||
jmp loc_B021
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AF78:
|
||
cmp di, 150h
|
||
jnz short loc_AF95
|
||
lea ax, [si-20h]
|
||
mov bx, 20h ; ' '
|
||
cwd
|
||
idiv bx
|
||
add ax, ax
|
||
mov bx, ax
|
||
mov ax, [bx+108h]
|
||
mov [bp+var_2], ax
|
||
jmp loc_B021
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AF95:
|
||
cmp di, 168h
|
||
jnz short loc_AFB2
|
||
cmp si, 160h
|
||
jge short loc_AFB2
|
||
lea ax, [si-20h]
|
||
mov bx, 20h ; ' '
|
||
cwd
|
||
idiv bx
|
||
add ax, 824Fh
|
||
mov [bp+var_2], ax
|
||
jmp short loc_B021
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AFB2:
|
||
cmp di, 168h
|
||
jnz short loc_AFC5
|
||
cmp si, 160h
|
||
jnz short loc_AFC5
|
||
mov [bp+var_2], 8140h
|
||
jmp short loc_B021
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AFC5:
|
||
cmp di, 168h
|
||
jnz short loc_AFEA
|
||
cmp si, 200h
|
||
jnz short loc_AFEA
|
||
les bx, [bp+arg_8]
|
||
dec word ptr es:[bx]
|
||
les bx, [bp+arg_8]
|
||
cmp word ptr es:[bx], 0
|
||
jge short loc_AFE8
|
||
les bx, [bp+arg_8]
|
||
mov word ptr es:[bx], 0
|
||
|
||
loc_AFE8:
|
||
jmp short loc_B021
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AFEA:
|
||
cmp di, 168h
|
||
jnz short loc_B00F
|
||
cmp si, 220h
|
||
jnz short loc_B00F
|
||
les bx, [bp+arg_8]
|
||
inc word ptr es:[bx]
|
||
les bx, [bp+arg_8]
|
||
cmp word ptr es:[bx], 7
|
||
jle short loc_B00D
|
||
les bx, [bp+arg_8]
|
||
mov word ptr es:[bx], 7
|
||
|
||
loc_B00D:
|
||
jmp short loc_B021
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B00F:
|
||
cmp di, 168h
|
||
jnz short loc_B021
|
||
cmp si, 240h
|
||
jnz short loc_B021
|
||
mov ax, 1
|
||
jmp loc_B0D5
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B021:
|
||
cmp [bp+var_2], 0
|
||
jz short loc_B063
|
||
mov ax, [bp+var_2]
|
||
sar ax, 8
|
||
les bx, [bp+arg_8]
|
||
mov dx, es:[bx]
|
||
add dx, dx
|
||
les bx, dword ptr [bp+_arglist]
|
||
add bx, dx
|
||
mov es:[bx], al
|
||
les bx, [bp+arg_8]
|
||
mov bx, es:[bx]
|
||
add bx, bx
|
||
mov es, word ptr [bp+0Ch]
|
||
add bx, word ptr [bp+_arglist]
|
||
mov al, byte ptr [bp+var_2]
|
||
and al, 0FFh
|
||
mov es:[bx+1], al
|
||
les bx, [bp+arg_8]
|
||
cmp word ptr es:[bx], 7
|
||
jge short loc_B063
|
||
les bx, [bp+arg_8]
|
||
inc word ptr es:[bx]
|
||
|
||
loc_B063:
|
||
push 10h
|
||
push 80h
|
||
push word_14032
|
||
push word_14030
|
||
call _egc_copy_rect_1_to_0
|
||
add sp, 8
|
||
push word ptr [bp+0Ch]
|
||
push word ptr [bp+_arglist] ; arglist
|
||
push ds
|
||
push offset aS ; "%s"
|
||
push 23h ; '#' ; int
|
||
push word_14032 ; int
|
||
push word_14030 ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
les bx, [bp+arg_8]
|
||
mov bx, es:[bx]
|
||
add bx, bx
|
||
lea ax, [bp+var_14]
|
||
add bx, ax
|
||
mov byte ptr ss:[bx], 81h
|
||
les bx, [bp+arg_8]
|
||
mov bx, es:[bx]
|
||
add bx, bx
|
||
lea ax, [bp+var_13]
|
||
add bx, ax
|
||
mov byte ptr ss:[bx], 51h ; 'Q'
|
||
push ss
|
||
lea ax, [bp+var_14]
|
||
push ax ; arglist
|
||
push ds
|
||
push offset aS_0 ; "%s"
|
||
push 3 ; int
|
||
push word_14032 ; int
|
||
push word_14030 ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
xor ax, ax
|
||
jmp short $+2
|
||
|
||
loc_B0D5:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_AEF6 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
; int __cdecl __far sub_B0D9(__int32, __int32, char arglist, int, __int32)
|
||
sub_B0D9 proc far
|
||
|
||
arg_0 = dword ptr 6
|
||
arg_4 = dword ptr 0Ah
|
||
_arglist = byte ptr 0Eh
|
||
arg_A = word ptr 10h
|
||
arg_C = dword ptr 12h
|
||
|
||
push bp
|
||
mov bp, sp
|
||
cmp byte_12BA2, 1
|
||
jz short loc_B0E6
|
||
jmp loc_B18F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B0E6:
|
||
push 0
|
||
les bx, [bp+arg_4]
|
||
push word ptr es:[bx]
|
||
les bx, [bp+arg_0]
|
||
push word ptr es:[bx]
|
||
call sub_AD86
|
||
add sp, 6
|
||
les bx, [bp+arg_4]
|
||
sub word ptr es:[bx], 18h
|
||
les bx, [bp+arg_4]
|
||
cmp word ptr es:[bx], 0F0h
|
||
jge short loc_B114
|
||
les bx, [bp+arg_4]
|
||
mov word ptr es:[bx], 168h
|
||
|
||
loc_B114:
|
||
les bx, [bp+arg_4]
|
||
cmp word ptr es:[bx], 108h
|
||
jnz short loc_B130
|
||
les bx, [bp+arg_0]
|
||
cmp word ptr es:[bx], 120h
|
||
jl short loc_B130
|
||
les bx, [bp+arg_4]
|
||
mov word ptr es:[bx], 0F0h
|
||
|
||
loc_B130:
|
||
les bx, [bp+arg_4]
|
||
cmp word ptr es:[bx], 138h
|
||
jnz short loc_B14C
|
||
les bx, [bp+arg_0]
|
||
cmp word ptr es:[bx], 120h
|
||
jl short loc_B14C
|
||
les bx, [bp+arg_4]
|
||
mov word ptr es:[bx], 120h
|
||
|
||
loc_B14C:
|
||
les bx, [bp+arg_4]
|
||
cmp word ptr es:[bx], 168h
|
||
jnz short loc_B172
|
||
les bx, [bp+arg_0]
|
||
cmp word ptr es:[bx], 160h
|
||
jle short loc_B172
|
||
les bx, [bp+arg_0]
|
||
cmp word ptr es:[bx], 200h
|
||
jge short loc_B172
|
||
les bx, [bp+arg_4]
|
||
mov word ptr es:[bx], 150h
|
||
|
||
loc_B172:
|
||
push 1
|
||
les bx, [bp+arg_4]
|
||
push word ptr es:[bx]
|
||
les bx, [bp+arg_0]
|
||
push word ptr es:[bx]
|
||
call sub_AD86
|
||
add sp, 6
|
||
mov byte_12BA2, 0
|
||
jmp loc_B408
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B18F:
|
||
cmp byte_12BA3, 1
|
||
jz short loc_B199
|
||
jmp loc_B242
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B199:
|
||
push 0
|
||
les bx, [bp+arg_4]
|
||
push word ptr es:[bx]
|
||
les bx, [bp+arg_0]
|
||
push word ptr es:[bx]
|
||
call sub_AD86
|
||
add sp, 6
|
||
les bx, [bp+arg_4]
|
||
add word ptr es:[bx], 18h
|
||
les bx, [bp+arg_4]
|
||
cmp word ptr es:[bx], 168h
|
||
jle short loc_B1C7
|
||
les bx, [bp+arg_4]
|
||
mov word ptr es:[bx], 0F0h
|
||
|
||
loc_B1C7:
|
||
les bx, [bp+arg_4]
|
||
cmp word ptr es:[bx], 108h
|
||
jnz short loc_B1E3
|
||
les bx, [bp+arg_0]
|
||
cmp word ptr es:[bx], 120h
|
||
jl short loc_B1E3
|
||
les bx, [bp+arg_4]
|
||
mov word ptr es:[bx], 120h
|
||
|
||
loc_B1E3:
|
||
les bx, [bp+arg_4]
|
||
cmp word ptr es:[bx], 138h
|
||
jnz short loc_B1FF
|
||
les bx, [bp+arg_0]
|
||
cmp word ptr es:[bx], 120h
|
||
jl short loc_B1FF
|
||
les bx, [bp+arg_4]
|
||
mov word ptr es:[bx], 150h
|
||
|
||
loc_B1FF:
|
||
les bx, [bp+arg_4]
|
||
cmp word ptr es:[bx], 168h
|
||
jnz short loc_B225
|
||
les bx, [bp+arg_0]
|
||
cmp word ptr es:[bx], 160h
|
||
jle short loc_B225
|
||
les bx, [bp+arg_0]
|
||
cmp word ptr es:[bx], 200h
|
||
jge short loc_B225
|
||
les bx, [bp+arg_4]
|
||
mov word ptr es:[bx], 0F0h
|
||
|
||
loc_B225:
|
||
push 1
|
||
les bx, [bp+arg_4]
|
||
push word ptr es:[bx]
|
||
les bx, [bp+arg_0]
|
||
push word ptr es:[bx]
|
||
call sub_AD86
|
||
add sp, 6
|
||
mov byte_12BA3, 0
|
||
jmp loc_B408
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B242:
|
||
cmp byte_12B99, 2
|
||
jz short loc_B24C
|
||
jmp loc_B2F4
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B24C:
|
||
push 0
|
||
les bx, [bp+arg_4]
|
||
push word ptr es:[bx]
|
||
les bx, [bp+arg_0]
|
||
push word ptr es:[bx]
|
||
call sub_AD86
|
||
add sp, 6
|
||
les bx, [bp+arg_0]
|
||
sub word ptr es:[bx], 20h ; ' '
|
||
les bx, [bp+arg_0]
|
||
cmp word ptr es:[bx], 20h ; ' '
|
||
jge short loc_B279
|
||
les bx, [bp+arg_0]
|
||
mov word ptr es:[bx], 240h
|
||
|
||
loc_B279:
|
||
les bx, [bp+arg_4]
|
||
cmp word ptr es:[bx], 108h
|
||
jnz short loc_B295
|
||
les bx, [bp+arg_0]
|
||
cmp word ptr es:[bx], 120h
|
||
jl short loc_B295
|
||
les bx, [bp+arg_0]
|
||
mov word ptr es:[bx], 100h
|
||
|
||
loc_B295:
|
||
les bx, [bp+arg_4]
|
||
cmp word ptr es:[bx], 138h
|
||
jnz short loc_B2B1
|
||
les bx, [bp+arg_0]
|
||
cmp word ptr es:[bx], 120h
|
||
jl short loc_B2B1
|
||
les bx, [bp+arg_0]
|
||
mov word ptr es:[bx], 100h
|
||
|
||
loc_B2B1:
|
||
les bx, [bp+arg_4]
|
||
cmp word ptr es:[bx], 168h
|
||
jnz short loc_B2D7
|
||
les bx, [bp+arg_0]
|
||
cmp word ptr es:[bx], 160h
|
||
jle short loc_B2D7
|
||
les bx, [bp+arg_0]
|
||
cmp word ptr es:[bx], 200h
|
||
jge short loc_B2D7
|
||
les bx, [bp+arg_0]
|
||
mov word ptr es:[bx], 160h
|
||
|
||
loc_B2D7:
|
||
push 1
|
||
les bx, [bp+arg_4]
|
||
push word ptr es:[bx]
|
||
les bx, [bp+arg_0]
|
||
push word ptr es:[bx]
|
||
call sub_AD86
|
||
add sp, 6
|
||
mov byte_12B99, 0
|
||
jmp loc_B408
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B2F4:
|
||
cmp byte_12B99, 1
|
||
jz short loc_B2FE
|
||
jmp loc_B3A6
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B2FE:
|
||
push 0
|
||
les bx, [bp+arg_4]
|
||
push word ptr es:[bx]
|
||
les bx, [bp+arg_0]
|
||
push word ptr es:[bx]
|
||
call sub_AD86
|
||
add sp, 6
|
||
les bx, [bp+arg_0]
|
||
add word ptr es:[bx], 20h ; ' '
|
||
les bx, [bp+arg_0]
|
||
cmp word ptr es:[bx], 240h
|
||
jle short loc_B32C
|
||
les bx, [bp+arg_0]
|
||
mov word ptr es:[bx], 20h ; ' '
|
||
|
||
loc_B32C:
|
||
les bx, [bp+arg_4]
|
||
cmp word ptr es:[bx], 108h
|
||
jnz short loc_B348
|
||
les bx, [bp+arg_0]
|
||
cmp word ptr es:[bx], 120h
|
||
jl short loc_B348
|
||
les bx, [bp+arg_0]
|
||
mov word ptr es:[bx], 20h ; ' '
|
||
|
||
loc_B348:
|
||
les bx, [bp+arg_4]
|
||
cmp word ptr es:[bx], 138h
|
||
jnz short loc_B364
|
||
les bx, [bp+arg_0]
|
||
cmp word ptr es:[bx], 120h
|
||
jl short loc_B364
|
||
les bx, [bp+arg_0]
|
||
mov word ptr es:[bx], 20h ; ' '
|
||
|
||
loc_B364:
|
||
les bx, [bp+arg_4]
|
||
cmp word ptr es:[bx], 168h
|
||
jnz short loc_B38A
|
||
les bx, [bp+arg_0]
|
||
cmp word ptr es:[bx], 160h
|
||
jle short loc_B38A
|
||
les bx, [bp+arg_0]
|
||
cmp word ptr es:[bx], 200h
|
||
jge short loc_B38A
|
||
les bx, [bp+arg_0]
|
||
mov word ptr es:[bx], 200h
|
||
|
||
loc_B38A:
|
||
push 1
|
||
les bx, [bp+arg_4]
|
||
push word ptr es:[bx]
|
||
les bx, [bp+arg_0]
|
||
push word ptr es:[bx]
|
||
call sub_AD86
|
||
add sp, 6
|
||
mov byte_12B99, 0
|
||
jmp short loc_B408
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B3A6:
|
||
cmp byte_12B9C, 1
|
||
jnz short loc_B3DC
|
||
push word ptr [bp+arg_C+2]
|
||
push word ptr [bp+arg_C] ; __int32
|
||
push [bp+arg_A] ; int
|
||
push word ptr [bp+_arglist] ; arglist
|
||
les bx, [bp+arg_4]
|
||
push word ptr es:[bx] ; int
|
||
les bx, [bp+arg_0]
|
||
push word ptr es:[bx] ; int
|
||
call sub_AEF6
|
||
add sp, 0Ch
|
||
or ax, ax
|
||
jz short loc_B3D5
|
||
mov ax, 1
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B3D5:
|
||
mov byte_12B9C, 0
|
||
jmp short loc_B408
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B3DC:
|
||
cmp byte_12BA1, 1
|
||
jnz short loc_B403
|
||
push word ptr [bp+arg_C+2]
|
||
push word ptr [bp+arg_C] ; __int32
|
||
push [bp+arg_A] ; int
|
||
push word ptr [bp+_arglist] ; arglist
|
||
push 168h ; int
|
||
push 200h ; int
|
||
call sub_AEF6
|
||
add sp, 0Ch
|
||
mov byte_12BA1, 0
|
||
jmp short loc_B408
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B403:
|
||
mov ax, 2
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B408:
|
||
xor ax, ax
|
||
pop bp
|
||
retf
|
||
sub_B0D9 endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
pop bp
|
||
retf
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B40E proc far
|
||
|
||
dest = byte ptr -1Ch
|
||
var_C = byte ptr -0Ch
|
||
stream = dword ptr -4
|
||
|
||
enter 1Ch, 0
|
||
push si
|
||
lea ax, [bp+var_C]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset aHiscore_0 ; "HISCORE"
|
||
mov cx, 8
|
||
call SCOPY@
|
||
mov al, _rank
|
||
mov ah, 0
|
||
mov bx, ax
|
||
cmp bx, RANK_LUNATIC
|
||
ja short loc_B45C
|
||
add bx, bx
|
||
jmp cs:off_B533[bx]
|
||
|
||
loc_B437:
|
||
push ds
|
||
push offset aReyhies_dat_1 ; "REYHIES.DAT"
|
||
jmp short loc_B44D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B43D:
|
||
push ds
|
||
push offset aReyhino_dat_1 ; "REYHINO.DAT"
|
||
jmp short loc_B44D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B443:
|
||
push ds
|
||
push offset aReyhiha_dat_1 ; "REYHIHA.DAT"
|
||
jmp short loc_B44D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B449:
|
||
push ds
|
||
push offset aReyhilu_dat_1 ; "REYHILU.DAT"
|
||
|
||
loc_B44D:
|
||
push ss
|
||
lea ax, [bp+dest]
|
||
push ax ; dest
|
||
call _strcpy
|
||
add sp, 8
|
||
jmp short $+2
|
||
|
||
loc_B45C:
|
||
push ds
|
||
push offset aWb_0 ; "wb"
|
||
push ss
|
||
lea ax, [bp+dest]
|
||
push ax ; path
|
||
call _fopen
|
||
add sp, 8
|
||
mov word ptr [bp+stream+2], dx
|
||
mov word ptr [bp+stream], ax
|
||
or ax, dx
|
||
jnz short loc_B47A
|
||
jmp loc_B530
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B47A:
|
||
push 7
|
||
push ss
|
||
lea ax, [bp+var_C]
|
||
push ax
|
||
les bx, [bp+stream]
|
||
mov al, es:[bx+4]
|
||
cbw
|
||
push ax
|
||
call _write
|
||
add sp, 8
|
||
xor si, si
|
||
jmp short loc_B4AF
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B496:
|
||
les bx, font
|
||
add bx, si
|
||
mov al, es:[bx]
|
||
push ax
|
||
call sub_A488
|
||
pop cx
|
||
les bx, font
|
||
add bx, si
|
||
mov es:[bx], al
|
||
inc si
|
||
|
||
loc_B4AF:
|
||
cmp si, 0A0h
|
||
jl short loc_B496
|
||
push 0A0h
|
||
push word ptr font+2
|
||
push word ptr font
|
||
les bx, [bp+stream]
|
||
mov al, es:[bx+4]
|
||
cbw
|
||
push ax
|
||
call _write
|
||
add sp, 8
|
||
push 28h ; '('
|
||
push word ptr off_14034+2
|
||
push word ptr off_14034
|
||
les bx, [bp+stream]
|
||
mov al, es:[bx+4]
|
||
cbw
|
||
push ax
|
||
call _write
|
||
add sp, 8
|
||
push 14h
|
||
push word ptr off_1402C+2
|
||
push word ptr off_1402C
|
||
les bx, [bp+stream]
|
||
mov al, es:[bx+4]
|
||
cbw
|
||
push ax
|
||
call _write
|
||
add sp, 8
|
||
push 14h
|
||
push word ptr off_14028+2
|
||
push word ptr off_14028
|
||
les bx, [bp+stream]
|
||
mov al, es:[bx+4]
|
||
cbw
|
||
push ax
|
||
call _write
|
||
add sp, 8
|
||
push word ptr [bp+stream+2]
|
||
push word ptr [bp+stream] ; stream
|
||
call _fclose
|
||
add sp, 4
|
||
|
||
loc_B530:
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_B40E endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
off_B533 dw offset loc_B437
|
||
dw offset loc_B43D
|
||
dw offset loc_B443
|
||
dw offset loc_B449
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B53B proc far
|
||
|
||
_arglist = byte ptr -18h
|
||
var_8 = byte ptr -8
|
||
var_6 = dword ptr -6
|
||
arg_0 = word ptr 6
|
||
|
||
enter 18h, 0
|
||
push si
|
||
push di
|
||
mov word ptr [bp+var_6], 0
|
||
mov word ptr [bp-2], 20h ; ' '
|
||
mov word ptr [bp+var_6+2], 0F0h
|
||
xor si, si
|
||
jmp short loc_B559
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B554:
|
||
mov [bp+si+_arglist], 20h ; ' '
|
||
inc si
|
||
|
||
loc_B559:
|
||
cmp si, 10h
|
||
jl short loc_B554
|
||
mov [bp+var_8], 0
|
||
call sub_A44F
|
||
|
||
loc_B566:
|
||
push 0
|
||
call sub_A265
|
||
pop cx
|
||
push ss
|
||
lea ax, [bp+var_6]
|
||
push ax ; __int32
|
||
push ss ; int
|
||
lea ax, [bp+_arglist]
|
||
push ax ; arglist
|
||
push ss
|
||
lea ax, [bp+var_6+2]
|
||
push ax ; __int32
|
||
push ss
|
||
lea ax, [bp-2]
|
||
push ax ; __int32
|
||
call sub_B0D9
|
||
add sp, 10h
|
||
mov di, ax
|
||
cmp di, 1
|
||
jnz short loc_B591
|
||
jmp short loc_B5AB
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B591:
|
||
cmp byte_12BA0, 0
|
||
jz short loc_B59A
|
||
jmp short loc_B5AB
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B59A:
|
||
cmp di, 2
|
||
jnz short loc_B5A1
|
||
jmp short loc_B5A9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B5A1:
|
||
push 4
|
||
call sub_C82D
|
||
pop cx
|
||
|
||
loc_B5A9:
|
||
jmp short loc_B566
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B5AB:
|
||
mov byte_12BA0, 0
|
||
xor si, si
|
||
jmp short loc_B5CB
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B5B4:
|
||
mov al, [bp+si+_arglist]
|
||
mov bx, [bp+arg_0]
|
||
shl bx, 4
|
||
add bx, si
|
||
mov es, word ptr font+2
|
||
add bx, word ptr font
|
||
mov es:[bx], al
|
||
inc si
|
||
|
||
loc_B5CB:
|
||
cmp si, 10h
|
||
jl short loc_B5B4
|
||
call sub_B40E
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_B53B endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B5D8 proc far
|
||
|
||
var_D2 = byte ptr -0D2h
|
||
var_D0 = byte ptr -0D0h
|
||
var_C0 = byte ptr -0C0h
|
||
var_C = word ptr -0Ch
|
||
var_A = word ptr -0Ah
|
||
var_8 = word ptr -8
|
||
var_6 = word ptr -6
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
arg_6 = dword ptr 0Ch
|
||
|
||
enter 0D0h, 0
|
||
push si
|
||
push di
|
||
mov di, [bp+arg_4]
|
||
lea ax, [bp+var_D0]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset off_12C1E
|
||
mov cx, 10h
|
||
call SCOPY@
|
||
push 1
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
mov al, _rank
|
||
mov ah, 0
|
||
shl ax, 2
|
||
lea dx, [bp+var_D0]
|
||
add ax, dx
|
||
mov bx, ax
|
||
push word ptr ss:[bx+2]
|
||
push word ptr ss:[bx] ; arglist
|
||
push ds
|
||
push offset aUmx ; "<22><><EFBFBD><EFBFBD><EFBFBD>ˈٓ`<60>@<40><><EFBFBD>҂̋L<CC8B>^<5E>@%s"
|
||
push 227h ; int
|
||
push 0 ; int
|
||
push 0 ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
push 0
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
cmp di, 1Eh
|
||
jge short loc_B666
|
||
push 10h
|
||
push 120h
|
||
push 180h
|
||
push 0
|
||
push 0
|
||
push 30h ; '0'
|
||
call _graph_slow_2xscale_rect_1_to_0
|
||
add sp, 0Ch
|
||
push 1
|
||
push 0
|
||
push 180h
|
||
push 0
|
||
push 190h
|
||
push 120h
|
||
push 180h
|
||
push 0
|
||
call sub_E56D
|
||
add sp, 10h
|
||
jmp short loc_B67B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B666:
|
||
push 10h
|
||
push 120h
|
||
push 0
|
||
push 0
|
||
push 0
|
||
push 30h ; '0'
|
||
call _graph_slow_2xscale_rect_1_to_0
|
||
add sp, 0Ch
|
||
|
||
loc_B67B:
|
||
call sub_A61C
|
||
or ax, ax
|
||
jz short loc_B686
|
||
jmp loc_B941
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B686:
|
||
mov [bp+var_2], 0
|
||
mov [bp+var_4], 0
|
||
jmp short loc_B6B2
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B692:
|
||
mov ax, [bp+var_4]
|
||
imul ax, 12h
|
||
lea dx, [bp+var_C0]
|
||
add ax, dx
|
||
push ss
|
||
push ax
|
||
push [bp+var_4]
|
||
call sub_A7CF
|
||
add sp, 6
|
||
add [bp+var_4], 1
|
||
adc [bp+var_2], 0
|
||
|
||
loc_B6B2:
|
||
cmp [bp+var_2], 0
|
||
jl short loc_B692
|
||
jnz short loc_B6C0
|
||
cmp [bp+var_4], 0Ah
|
||
jb short loc_B692
|
||
|
||
loc_B6C0:
|
||
mov [bp+var_2], 0
|
||
mov [bp+var_4], 0
|
||
jmp short loc_B6F5
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B6CC:
|
||
mov ax, [bp+var_4]
|
||
shl ax, 2
|
||
les bx, off_14034
|
||
add bx, ax
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
cmp dx, [bp+arg_2]
|
||
jg short loc_B6ED
|
||
jnz short loc_B6EB
|
||
cmp ax, [bp+arg_0]
|
||
ja short loc_B6ED
|
||
|
||
loc_B6EB:
|
||
jmp short loc_B703
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B6ED:
|
||
add [bp+var_4], 1
|
||
adc [bp+var_2], 0
|
||
|
||
loc_B6F5:
|
||
cmp [bp+var_2], 0
|
||
jl short loc_B6CC
|
||
jnz short loc_B703
|
||
cmp [bp+var_4], 0Ah
|
||
jb short loc_B6CC
|
||
|
||
loc_B703:
|
||
call sub_A44F
|
||
cmp [bp+var_2], 0
|
||
jle short loc_B710
|
||
jmp loc_B8BD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B710:
|
||
jl short loc_B71B
|
||
cmp [bp+var_4], 0Ah
|
||
jb short loc_B71B
|
||
jmp loc_B8BD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B71B:
|
||
mov [bp+var_6], 0
|
||
mov [bp+var_8], 9
|
||
jmp loc_B7D9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B728:
|
||
push ss
|
||
mov ax, [bp+var_8]
|
||
imul ax, 12h
|
||
lea dx, [bp+var_D2]
|
||
add ax, dx
|
||
push ax ; src
|
||
mov ax, [bp+var_8]
|
||
imul ax, 12h
|
||
lea dx, [bp+var_C0]
|
||
add ax, dx
|
||
push ss
|
||
push ax ; dest
|
||
call _strcpy
|
||
add sp, 8
|
||
mov ax, [bp+var_8]
|
||
dec ax
|
||
shl ax, 2
|
||
les bx, off_14034
|
||
add bx, ax
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
mov bx, [bp+var_8]
|
||
shl bx, 2
|
||
les si, off_14034
|
||
add si, bx
|
||
mov es:[si+2], dx
|
||
mov es:[si], ax
|
||
mov ax, [bp+var_8]
|
||
dec ax
|
||
add ax, ax
|
||
les bx, off_1402C
|
||
add bx, ax
|
||
mov ax, es:[bx]
|
||
mov dx, [bp+var_8]
|
||
add dx, dx
|
||
les bx, off_1402C
|
||
add bx, dx
|
||
mov es:[bx], ax
|
||
mov bx, [bp+var_8]
|
||
add bx, bx
|
||
mov es, word ptr off_14028+2
|
||
add bx, word ptr off_14028
|
||
mov al, es:[bx-2]
|
||
mov dx, [bp+var_8]
|
||
add dx, dx
|
||
les bx, off_14028
|
||
add bx, dx
|
||
mov es:[bx], al
|
||
mov bx, [bp+var_8]
|
||
add bx, bx
|
||
mov es, word ptr off_14028+2
|
||
add bx, word ptr off_14028
|
||
mov al, es:[bx-1]
|
||
mov bx, [bp+var_8]
|
||
add bx, bx
|
||
mov es, word ptr off_14028+2
|
||
add bx, word ptr off_14028
|
||
mov es:[bx+1], al
|
||
sub [bp+var_8], 1
|
||
sbb [bp+var_6], 0
|
||
|
||
loc_B7D9:
|
||
mov dx, [bp+var_6]
|
||
mov ax, [bp+var_8]
|
||
cmp dx, [bp+var_2]
|
||
jle short loc_B7E7
|
||
jmp loc_B728
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B7E7:
|
||
jnz short loc_B7F1
|
||
cmp ax, [bp+var_4]
|
||
jbe short loc_B7F1
|
||
jmp loc_B728
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B7F1:
|
||
mov [bp+var_A], 0
|
||
mov [bp+var_C], 9Fh
|
||
jmp short loc_B81E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B7FD:
|
||
mov bx, [bp+var_C]
|
||
mov es, word ptr font+2
|
||
add bx, word ptr font
|
||
mov al, es:[bx-10h]
|
||
les bx, font
|
||
add bx, [bp+var_C]
|
||
mov es:[bx], al
|
||
sub [bp+var_C], 1
|
||
sbb [bp+var_A], 0
|
||
|
||
loc_B81E:
|
||
mov dx, [bp+var_2]
|
||
mov ax, [bp+var_4]
|
||
mov cl, 4
|
||
call far ptr LXLSH@
|
||
add ax, 10h
|
||
adc dx, 0
|
||
cmp dx, [bp+var_A]
|
||
jl short loc_B7FD
|
||
jg short loc_B83D
|
||
cmp ax, [bp+var_C]
|
||
jbe short loc_B7FD
|
||
|
||
loc_B83D:
|
||
push ss
|
||
lea ax, [bp+var_C0]
|
||
push ax
|
||
push word ptr [bp+arg_6+2]
|
||
push word ptr [bp+arg_6]
|
||
push di
|
||
push [bp+arg_2]
|
||
push [bp+arg_0]
|
||
push [bp+var_4]
|
||
call sub_A9FF
|
||
add sp, 10h
|
||
call sub_A801
|
||
mov ax, [bp+var_4]
|
||
shl ax, 2
|
||
les bx, off_14034
|
||
add bx, ax
|
||
mov dx, [bp+arg_2]
|
||
mov ax, [bp+arg_0]
|
||
mov es:[bx+2], dx
|
||
mov es:[bx], ax
|
||
mov ax, [bp+var_4]
|
||
add ax, ax
|
||
les bx, off_1402C
|
||
add bx, ax
|
||
mov es:[bx], di
|
||
mov ax, [bp+var_4]
|
||
add ax, ax
|
||
les bx, off_14028
|
||
add bx, ax
|
||
push es
|
||
les si, [bp+arg_6]
|
||
mov al, es:[si]
|
||
pop es
|
||
mov es:[bx], al
|
||
les bx, [bp+arg_6]
|
||
mov al, es:[bx+1]
|
||
mov bx, [bp+var_4]
|
||
add bx, bx
|
||
mov es, word ptr off_14028+2
|
||
add bx, word ptr off_14028
|
||
mov es:[bx+1], al
|
||
push [bp+var_4]
|
||
call sub_B53B
|
||
pop cx
|
||
jmp short loc_B8FC
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B8BD:
|
||
push ss
|
||
lea ax, [bp+var_C0]
|
||
push ax
|
||
push word ptr [bp+arg_6+2]
|
||
push word ptr [bp+arg_6]
|
||
push di
|
||
push [bp+arg_2]
|
||
push [bp+arg_0]
|
||
push 1Eh
|
||
call sub_A9FF
|
||
add sp, 10h
|
||
mov byte_12BA0, 1
|
||
mov byte_12B9C, 1
|
||
|
||
loc_B8E3:
|
||
push 0
|
||
call sub_A265
|
||
pop cx
|
||
cmp byte_12BA0, 0
|
||
jz short loc_B8F8
|
||
cmp byte_12B9C, 0
|
||
jnz short loc_B8FA
|
||
|
||
loc_B8F8:
|
||
jmp short loc_B8FC
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B8FA:
|
||
jmp short loc_B8E3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B8FC:
|
||
mov ax, seg fuuin_08_TEXT
|
||
mov es, ax
|
||
assume es:fuuin_08_TEXT
|
||
push word ptr font+2
|
||
push word ptr font ; font
|
||
call @$bdla$qnv
|
||
add sp, 4
|
||
push word ptr off_1402C+2
|
||
push word ptr off_1402C ; font
|
||
call @$bdla$qnv
|
||
add sp, 4
|
||
push word ptr off_14028+2
|
||
push word ptr off_14028 ; font
|
||
call @$bdla$qnv
|
||
add sp, 4
|
||
push word ptr off_14034+2
|
||
push word ptr off_14034 ; font
|
||
call @$bdla$qnv
|
||
add sp, 4
|
||
|
||
loc_B941:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_B5D8 endp
|
||
|
||
fuuin_02_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
fuuin_03_TEXT segment byte public 'CODE' use16
|
||
assume cs:fuuin_03_TEXT
|
||
;org 5
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B945 proc far
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push ds
|
||
push offset aIris_mdt ; "iris.mdt"
|
||
call _mdrv2_bgm_load
|
||
add sp, 4
|
||
call _mdrv2_bgm_play
|
||
push 0
|
||
call sub_C842
|
||
push ds
|
||
push offset aEd1a_grp ; "ED1A.grp"
|
||
call sub_C73A
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
push 6
|
||
call sub_C939
|
||
push 64h ; 'd'
|
||
call sub_C82D
|
||
pop cx
|
||
push 5
|
||
call sub_C960
|
||
push 64h ; 'd'
|
||
call sub_C82D
|
||
pop cx
|
||
push 1
|
||
call sub_C78B
|
||
pop cx
|
||
push 64h ; 'd'
|
||
call sub_C842
|
||
push 0Dh
|
||
call sub_C82D
|
||
pop cx
|
||
push 2
|
||
call sub_C78B
|
||
pop cx
|
||
push 0Dh
|
||
call sub_C82D
|
||
pop cx
|
||
push 3
|
||
call sub_C78B
|
||
pop cx
|
||
push 32h ; '2'
|
||
call sub_C82D
|
||
pop cx
|
||
push ds
|
||
push offset aEd1b_grp ; "ED1B.grp"
|
||
call sub_C73A
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
push 0Ah
|
||
call sub_C82D
|
||
pop cx
|
||
push 1
|
||
call sub_C78B
|
||
pop cx
|
||
push 0Ah
|
||
call sub_C82D
|
||
pop cx
|
||
push 2
|
||
call sub_C78B
|
||
pop cx
|
||
push 64h ; 'd'
|
||
call sub_C82D
|
||
pop cx
|
||
push 6
|
||
call sub_C911
|
||
push 0
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
call sub_D2D6
|
||
push 64h ; 'd'
|
||
call sub_C842
|
||
push ds
|
||
push offset aEd1c_grp ; "ED1C.GRP"
|
||
call sub_C73A
|
||
xor si, si
|
||
jmp short loc_BA49
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BA28:
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
push 14h
|
||
call sub_C82D
|
||
pop cx
|
||
push 1
|
||
call sub_C78B
|
||
pop cx
|
||
push 14h
|
||
call sub_C82D
|
||
pop cx
|
||
inc si
|
||
|
||
loc_BA49:
|
||
cmp si, 6
|
||
jl short loc_BA28
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
push 28h ; '('
|
||
call sub_C82D
|
||
pop cx
|
||
push 2
|
||
call sub_C78B
|
||
pop cx
|
||
push 28h ; '('
|
||
call sub_C82D
|
||
pop cx
|
||
push ds
|
||
push offset aEd1d_grp ; "ED1D.GRP"
|
||
call sub_C73A
|
||
push 3
|
||
call sub_C78B
|
||
pop cx
|
||
push 46h ; 'F'
|
||
call sub_C82D
|
||
pop cx
|
||
xor si, si
|
||
jmp loc_BB16
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BA8C:
|
||
or si, si
|
||
jnz short loc_BA98
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
|
||
loc_BA98:
|
||
cmp si, 14h
|
||
jnz short loc_BAA5
|
||
push 1
|
||
call sub_C78B
|
||
pop cx
|
||
|
||
loc_BAA5:
|
||
cmp si, 18h
|
||
jnz short loc_BAB2
|
||
push 2
|
||
call sub_C78B
|
||
pop cx
|
||
|
||
loc_BAB2:
|
||
cmp si, 1Ch
|
||
jnz short loc_BABF
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
|
||
loc_BABF:
|
||
cmp si, 32h ; '2'
|
||
jnz short loc_BACC
|
||
push 1
|
||
call sub_C78B
|
||
pop cx
|
||
|
||
loc_BACC:
|
||
cmp si, 36h ; '6'
|
||
jnz short loc_BAD9
|
||
push 2
|
||
call sub_C78B
|
||
pop cx
|
||
|
||
loc_BAD9:
|
||
cmp si, 3Ah ; ':'
|
||
jnz short loc_BAE6
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
|
||
loc_BAE6:
|
||
cmp si, 5Ah ; 'Z'
|
||
jnz short loc_BAF3
|
||
push 1
|
||
call sub_C78B
|
||
pop cx
|
||
|
||
loc_BAF3:
|
||
cmp si, 5Eh ; '^'
|
||
jnz short loc_BB00
|
||
push 2
|
||
call sub_C78B
|
||
pop cx
|
||
|
||
loc_BB00:
|
||
cmp si, 62h ; 'b'
|
||
jnz short loc_BB0D
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
|
||
loc_BB0D:
|
||
push 2
|
||
call sub_C82D
|
||
pop cx
|
||
inc si
|
||
|
||
loc_BB16:
|
||
cmp si, 64h ; 'd'
|
||
jge short loc_BB1E
|
||
jmp loc_BA8C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BB1E:
|
||
push 3
|
||
call sub_C78B
|
||
pop cx
|
||
push 3Ch ; '<'
|
||
call sub_C82D
|
||
pop cx
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
push 14h
|
||
call sub_C82D
|
||
pop cx
|
||
push 3
|
||
call sub_C78B
|
||
pop cx
|
||
push 69h ; 'i'
|
||
call sub_C842
|
||
push ds
|
||
push offset aEd1e_grp ; "ED1E.GRP"
|
||
call sub_C73A
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
xor si, si
|
||
jmp short loc_BB79
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BB62:
|
||
mov ax, si
|
||
imul ax, 5
|
||
add ax, 6Eh ; 'n'
|
||
push ax
|
||
call sub_C842
|
||
push 10h
|
||
call sub_C82D
|
||
pop cx
|
||
inc si
|
||
|
||
loc_BB79:
|
||
cmp si, 4
|
||
jl short loc_BB62
|
||
xor si, si
|
||
jmp short loc_BBB1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BB82:
|
||
push 1
|
||
call sub_C78B
|
||
pop cx
|
||
push 8
|
||
call sub_C82D
|
||
pop cx
|
||
push 2
|
||
call sub_C78B
|
||
pop cx
|
||
push 8
|
||
call sub_C82D
|
||
pop cx
|
||
mov ax, si
|
||
imul ax, 5
|
||
add ax, 82h
|
||
push ax
|
||
call sub_C842
|
||
inc si
|
||
|
||
loc_BBB1:
|
||
cmp si, 0Fh
|
||
jl short loc_BB82
|
||
mov ax, word ptr _continues_total
|
||
or ax, word ptr _continues_total+2
|
||
jnz short loc_BBC7
|
||
call sub_BDBD
|
||
call sub_C03D
|
||
jmp short loc_BBF1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BBC7:
|
||
call sub_BC7C
|
||
call _mdrv2_bgm_fade_out_nonblock
|
||
push 0Ah
|
||
call sub_C911
|
||
call sub_D2D6
|
||
call _mdrv2_bgm_stop
|
||
push ds
|
||
push offset aSt1_mdt ; "st1.mdt"
|
||
call _mdrv2_bgm_load
|
||
add sp, 4
|
||
call _mdrv2_bgm_play
|
||
|
||
loc_BBF1:
|
||
nopcall sub_C446
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_B945 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BBF9 proc near
|
||
|
||
arg_0 = word ptr 4
|
||
arg_2 = word ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
xor si, si
|
||
jmp short loc_BC35
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BC01:
|
||
test si, 3
|
||
jnz short loc_BC0B
|
||
push 8
|
||
jmp short loc_BC0D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BC0B:
|
||
push 0
|
||
|
||
loc_BC0D:
|
||
call graph_scrollup
|
||
push 1
|
||
call sub_C78B
|
||
pop cx
|
||
push 1
|
||
call sub_C82D
|
||
pop cx
|
||
test si, 1
|
||
jz short loc_BC2D
|
||
push 0AAh ; '<27>'
|
||
jmp short loc_BC2F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BC2D:
|
||
push 64h ; 'd'
|
||
|
||
loc_BC2F:
|
||
call sub_C842
|
||
inc si
|
||
|
||
loc_BC35:
|
||
cmp si, [bp+arg_2]
|
||
jle short loc_BC01
|
||
xor si, si
|
||
jmp short loc_BC72
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BC3E:
|
||
test si, 3
|
||
jnz short loc_BC48
|
||
push 8
|
||
jmp short loc_BC4A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BC48:
|
||
push 0
|
||
|
||
loc_BC4A:
|
||
call graph_scrollup
|
||
push 1
|
||
call sub_C78B
|
||
pop cx
|
||
push 2
|
||
call sub_C82D
|
||
pop cx
|
||
test si, 1
|
||
jz short loc_BC69
|
||
push 2
|
||
jmp short loc_BC6B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BC69:
|
||
push 1
|
||
|
||
loc_BC6B:
|
||
call sub_C78B
|
||
pop cx
|
||
inc si
|
||
|
||
loc_BC72:
|
||
cmp si, [bp+arg_0]
|
||
jle short loc_BC3E
|
||
pop si
|
||
pop bp
|
||
retn 4
|
||
sub_BBF9 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BC7C proc near
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push ds
|
||
push offset aEd2a_grp ; "ed2a.grp"
|
||
call sub_C73A
|
||
push 0C8h ; '<27>'
|
||
call sub_C842
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
push 5
|
||
call sub_C988
|
||
push 78h ; 'x'
|
||
call sub_C82D
|
||
pop cx
|
||
cmp byte_14021, 2
|
||
jnz short loc_BCFC
|
||
push 40h
|
||
push 10h
|
||
call sub_BBF9
|
||
push 20h ; ' '
|
||
push 20h ; ' '
|
||
call sub_BBF9
|
||
push 0
|
||
call graph_scrollup
|
||
push 32h ; '2'
|
||
call sub_C82D
|
||
pop cx
|
||
push 3
|
||
call sub_C78B
|
||
pop cx
|
||
push 64h ; 'd'
|
||
call sub_C82D
|
||
pop cx
|
||
push 0E8h
|
||
push 13Ch
|
||
push 16h
|
||
push ds
|
||
push offset aTryToNoContinu ; "Try to 'No continue'!!"
|
||
call sub_C9B0
|
||
push 0E8h
|
||
push 15Ch
|
||
push 16h
|
||
push ds
|
||
push offset aBadEnding2 ; " Bad Ending2 "
|
||
jmp loc_BDAC
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BCFC:
|
||
push ds
|
||
push offset aEd4a_grp ; "ed4a.grp"
|
||
call sub_C73A
|
||
xor si, si
|
||
jmp short loc_BD2A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BD09:
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
push 3
|
||
call sub_C82D
|
||
pop cx
|
||
push 1
|
||
call sub_C78B
|
||
pop cx
|
||
push 3
|
||
call sub_C82D
|
||
pop cx
|
||
inc si
|
||
|
||
loc_BD2A:
|
||
cmp si, 14h
|
||
jl short loc_BD09
|
||
xor si, si
|
||
jmp short loc_BD62
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BD33:
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
push 3
|
||
call sub_C82D
|
||
pop cx
|
||
push 1
|
||
call sub_C78B
|
||
pop cx
|
||
push 3
|
||
call sub_C82D
|
||
pop cx
|
||
mov ax, si
|
||
imul ax, 5
|
||
add ax, 64h ; 'd'
|
||
push ax
|
||
call sub_C842
|
||
inc si
|
||
|
||
loc_BD62:
|
||
cmp si, 14h
|
||
jl short loc_BD33
|
||
push 2
|
||
call sub_C78B
|
||
pop cx
|
||
push 5
|
||
call sub_C988
|
||
push 0C8h ; '<27>'
|
||
call sub_C82D
|
||
pop cx
|
||
push 3
|
||
call sub_C78B
|
||
pop cx
|
||
push 64h ; 'd'
|
||
call sub_C82D
|
||
pop cx
|
||
push 0E8h
|
||
push 13Ch
|
||
push 16h
|
||
push ds
|
||
push offset aTryToNoConti_0 ; "Try to 'No continue'!!"
|
||
call sub_C9B0
|
||
push 0E8h
|
||
push 15Ch
|
||
push 16h
|
||
push ds
|
||
push offset aBadEnding1 ; " Bad Ending1 "
|
||
|
||
loc_BDAC:
|
||
call sub_C9B0
|
||
push 12Ch
|
||
call sub_C82D
|
||
pop cx
|
||
pop si
|
||
pop bp
|
||
retn
|
||
sub_BC7C endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BDBD proc near
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push ds
|
||
push offset aEd3a_grp ; "ed3a.grp"
|
||
call sub_C73A
|
||
push 0C8h ; '<27>'
|
||
call sub_C842
|
||
xor si, si
|
||
jmp short loc_BE07
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BDD6:
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
push 8
|
||
call sub_C82D
|
||
pop cx
|
||
push 1
|
||
call sub_C78B
|
||
pop cx
|
||
push 8
|
||
call sub_C82D
|
||
pop cx
|
||
mov ax, si
|
||
imul ax, 5
|
||
mov dx, 0C8h ; '<27>'
|
||
sub dx, ax
|
||
push dx
|
||
call sub_C842
|
||
inc si
|
||
|
||
loc_BE07:
|
||
cmp si, 14h
|
||
jl short loc_BDD6
|
||
push 64h ; 'd'
|
||
call sub_C842
|
||
xor si, si
|
||
jmp short loc_BE38
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BE17:
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
push 8
|
||
call sub_C82D
|
||
pop cx
|
||
push 1
|
||
call sub_C78B
|
||
pop cx
|
||
push 8
|
||
call sub_C82D
|
||
pop cx
|
||
inc si
|
||
|
||
loc_BE38:
|
||
cmp si, 0Ah
|
||
jl short loc_BE17
|
||
xor si, si
|
||
jmp short loc_BE64
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BE41:
|
||
mov ax, si
|
||
and ax, 1
|
||
push ax
|
||
call sub_C78B
|
||
pop cx
|
||
push 8
|
||
call sub_C82D
|
||
pop cx
|
||
mov ax, si
|
||
imul ax, 0Ah
|
||
add ax, 64h ; 'd'
|
||
push ax
|
||
call sub_C842
|
||
inc si
|
||
|
||
loc_BE64:
|
||
cmp si, 0Ah
|
||
jl short loc_BE41
|
||
push 0C8h ; '<27>'
|
||
call sub_C842
|
||
cmp byte_14021, 1
|
||
jnz short loc_BE7D
|
||
call sub_BF07
|
||
jmp short loc_BE80
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BE7D:
|
||
call sub_BE83
|
||
|
||
loc_BE80:
|
||
pop si
|
||
pop bp
|
||
retn
|
||
sub_BDBD endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BE83 proc near
|
||
push bp
|
||
mov bp, sp
|
||
push ds
|
||
push offset aEd3b_grp ; "ed3b.grp"
|
||
call sub_C73A
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
push 4
|
||
call sub_C988
|
||
push 0FAh
|
||
call sub_C82D
|
||
pop cx
|
||
push 1
|
||
call sub_C78B
|
||
pop cx
|
||
push 0C8h ; '<27>'
|
||
call sub_C82D
|
||
pop cx
|
||
push 2
|
||
call sub_C78B
|
||
pop cx
|
||
push 96h
|
||
call sub_C82D
|
||
pop cx
|
||
push 3
|
||
call sub_C78B
|
||
pop cx
|
||
push 96h
|
||
call sub_C82D
|
||
pop cx
|
||
push 100h
|
||
push 13Ch
|
||
push 10h
|
||
push ds
|
||
push offset aCongratulation ; "Congratulations!"
|
||
call sub_C9B0
|
||
push 0E8h
|
||
push 15Ch
|
||
push 16h
|
||
push ds
|
||
push offset aGoodEnding2 ; " Good Ending2 "
|
||
call sub_C9B0
|
||
push 12Ch
|
||
call sub_C82D
|
||
pop cx
|
||
pop bp
|
||
retn
|
||
sub_BE83 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BF07 proc near
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push ds
|
||
push offset aEd5a_grp ; "ed5a.grp"
|
||
call sub_C73A
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
push 4
|
||
call sub_C988
|
||
push 12Ch
|
||
call sub_C82D
|
||
pop cx
|
||
xor si, si
|
||
jmp short loc_BF51
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BF30:
|
||
push 1
|
||
call sub_C78B
|
||
pop cx
|
||
push 8
|
||
call sub_C82D
|
||
pop cx
|
||
push 2
|
||
call sub_C78B
|
||
pop cx
|
||
push 8
|
||
call sub_C82D
|
||
pop cx
|
||
inc si
|
||
|
||
loc_BF51:
|
||
cmp si, 0Fh
|
||
jl short loc_BF30
|
||
push ds
|
||
push offset aEd5b_grp ; "ed5b.grp"
|
||
call sub_C73A
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
push 96h
|
||
call sub_C82D
|
||
pop cx
|
||
push 1
|
||
call sub_C78B
|
||
pop cx
|
||
push 64h ; 'd'
|
||
call sub_C82D
|
||
pop cx
|
||
push 2
|
||
call sub_C78B
|
||
pop cx
|
||
push 64h ; 'd'
|
||
call sub_C82D
|
||
pop cx
|
||
push 3
|
||
call sub_C78B
|
||
pop cx
|
||
push 64h ; 'd'
|
||
call sub_C82D
|
||
pop cx
|
||
push ds
|
||
push offset aEd5c_grp ; "ed5c.grp"
|
||
call sub_C73A
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
push 64h ; 'd'
|
||
call sub_C82D
|
||
pop cx
|
||
push 1
|
||
call sub_C78B
|
||
pop cx
|
||
push 96h
|
||
call sub_C82D
|
||
pop cx
|
||
push 2
|
||
call sub_C78B
|
||
pop cx
|
||
push 96h
|
||
call sub_C82D
|
||
pop cx
|
||
push 100h
|
||
push 13Ch
|
||
push 10h
|
||
push ds
|
||
push offset aCongratulati_0 ; "Congratulations!"
|
||
call sub_C9B0
|
||
push 0E8h
|
||
push 15Ch
|
||
push 16h
|
||
push ds
|
||
push offset aGoodEnding1 ; " Good Ending1 "
|
||
call sub_C9B0
|
||
push 12Ch
|
||
call sub_C82D
|
||
pop cx
|
||
pop si
|
||
pop bp
|
||
retn
|
||
sub_BF07 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C009 proc near
|
||
|
||
arg_0 = word ptr 4
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push 96h
|
||
call sub_C82D
|
||
pop cx
|
||
push 5
|
||
call sub_C911
|
||
call sub_D2D6
|
||
push [bp+arg_0]
|
||
call sub_C78B
|
||
pop cx
|
||
push 5
|
||
call sub_C939
|
||
push 32h ; '2'
|
||
call sub_C82D
|
||
pop cx
|
||
pop bp
|
||
retn 2
|
||
sub_C009 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C03D proc near
|
||
push bp
|
||
mov bp, sp
|
||
call _mdrv2_bgm_fade_out_nonblock
|
||
push 0Ah
|
||
call sub_C911
|
||
call sub_D2D6
|
||
call _mdrv2_bgm_stop
|
||
push ds
|
||
push offset aSt1_mdt_0 ; "st1.mdt"
|
||
call _mdrv2_bgm_load
|
||
add sp, 4
|
||
call _mdrv2_bgm_play
|
||
cmp byte_14021, 1
|
||
jnz short loc_C074
|
||
push ds
|
||
push offset aEndb_a_grp ; "endb_a.grp"
|
||
jmp short loc_C078
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C074:
|
||
push ds
|
||
push offset aEndb_b_grp ; "endb_b.grp"
|
||
|
||
loc_C078:
|
||
call sub_C73A
|
||
push 0
|
||
call sub_C78B
|
||
pop cx
|
||
push 64h ; 'd'
|
||
call sub_C842
|
||
push 32h ; '2'
|
||
call sub_C82D
|
||
pop cx
|
||
push 110h
|
||
push 13Ch
|
||
push 0Dh
|
||
push ds
|
||
push offset aStage5Boss ; "STAGE 5 BOSS"
|
||
call sub_C9B0
|
||
push 0E8h
|
||
push 15Ch
|
||
push 16h
|
||
push ds
|
||
push offset aGatekeeperSing ; "Gatekeeper 'SinGyoku'"
|
||
call sub_C9B0
|
||
push 1
|
||
call sub_C009
|
||
cmp byte_14021, 1
|
||
jnz short loc_C0E1
|
||
push 110h
|
||
push 13Ch
|
||
push 0Dh
|
||
push ds
|
||
push offset aStage10Boss ; "STAGE 10 BOSS"
|
||
call sub_C9B0
|
||
push 0E8h
|
||
push 15Ch
|
||
push 16h
|
||
push ds
|
||
push offset aEvileyesYuugen ; "EvilEyes 'YuugenMagan'"
|
||
jmp short loc_C0FE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C0E1:
|
||
push 110h
|
||
push 13Ch
|
||
push 0Dh
|
||
push ds
|
||
push offset aStage10Boss_0 ; "STAGE 10 BOSS"
|
||
call sub_C9B0
|
||
push 0E8h
|
||
push 15Ch
|
||
push 17h
|
||
push ds
|
||
push offset aRevengefulGhos ; "Revengeful Ghost 'Mima'"
|
||
|
||
loc_C0FE:
|
||
call sub_C9B0
|
||
push 2
|
||
call sub_C009
|
||
cmp byte_14021, 1
|
||
jnz short loc_C12E
|
||
push 110h
|
||
push 13Ch
|
||
push 0Dh
|
||
push ds
|
||
push offset aStage15Boss ; "STAGE 15 BOSS"
|
||
call sub_C9B0
|
||
push 0E8h
|
||
push 15Ch
|
||
push 16h
|
||
push ds
|
||
push offset aInnocenceDevil ; "Innocence Devil 'Elis'"
|
||
jmp short loc_C14B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C12E:
|
||
push 110h
|
||
push 13Ch
|
||
push 0Dh
|
||
push ds
|
||
push offset aStage15Boss_0 ; "STAGE 15 BOSS"
|
||
call sub_C9B0
|
||
push 100h
|
||
push 15Ch
|
||
push 11h
|
||
push ds
|
||
push offset aHellmoonKikuri ; "HellMoon 'Kikuri'"
|
||
|
||
loc_C14B:
|
||
call sub_C9B0
|
||
push 3
|
||
call sub_C009
|
||
cmp byte_14021, 1
|
||
jnz short loc_C17B
|
||
push 110h
|
||
push 13Ch
|
||
push 0Dh
|
||
push ds
|
||
push offset aStage20Boss ; "STAGE 20 BOSS"
|
||
call sub_C9B0
|
||
push 0E8h
|
||
push 15Ch
|
||
push 16h
|
||
push ds
|
||
push offset aAngelOfDeathSa ; "Angel of Death'Sariel'"
|
||
jmp short loc_C198
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C17B:
|
||
push 110h
|
||
push 13Ch
|
||
push 0Dh
|
||
push ds
|
||
push offset aStage20Boss_0 ; "STAGE 20 BOSS"
|
||
call sub_C9B0
|
||
push 0E0h
|
||
push 15Ch
|
||
push 18h
|
||
push ds
|
||
push offset aAstralKnightKo ; "Astral Knight 'Konngara'"
|
||
|
||
loc_C198:
|
||
call sub_C9B0
|
||
push 96h
|
||
call sub_C82D
|
||
pop cx
|
||
pop bp
|
||
retn
|
||
sub_C03D endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C1A8 proc far
|
||
|
||
var_2 = word ptr -2
|
||
|
||
enter 2, 0
|
||
push si
|
||
push di
|
||
xor si, si
|
||
cmp word ptr _score+2, 26h ; '&'
|
||
jl short loc_C1C6
|
||
jnz short loc_C1C1
|
||
cmp word ptr _score, 25A0h
|
||
jb short loc_C1C6
|
||
|
||
loc_C1C1:
|
||
add si, 0Ah
|
||
jmp short loc_C21C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C1C6:
|
||
cmp word ptr _score+2, 1Eh
|
||
jl short loc_C1DC
|
||
jnz short loc_C1D7
|
||
cmp word ptr _score, 8480h
|
||
jb short loc_C1DC
|
||
|
||
loc_C1D7:
|
||
add si, 8
|
||
jmp short loc_C21C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C1DC:
|
||
cmp word ptr _score+2, 16h
|
||
jl short loc_C1F2
|
||
jnz short loc_C1ED
|
||
cmp word ptr _score, 0E360h
|
||
jb short loc_C1F2
|
||
|
||
loc_C1ED:
|
||
add si, 6
|
||
jmp short loc_C21C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C1F2:
|
||
cmp word ptr _score+2, 0Fh
|
||
jl short loc_C208
|
||
jnz short loc_C203
|
||
cmp word ptr _score, 4240h
|
||
jb short loc_C208
|
||
|
||
loc_C203:
|
||
add si, 4
|
||
jmp short loc_C21C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C208:
|
||
cmp word ptr _score+2, 7
|
||
jl short loc_C21C
|
||
jnz short loc_C219
|
||
cmp word ptr _score, 0A120h
|
||
jb short loc_C21C
|
||
|
||
loc_C219:
|
||
add si, 2
|
||
|
||
loc_C21C:
|
||
cmp word ptr _score_highest+2, 2Dh ; '-'
|
||
jl short loc_C232
|
||
jnz short loc_C22D
|
||
cmp word ptr _score_highest, 0C6C0h
|
||
jb short loc_C232
|
||
|
||
loc_C22D:
|
||
add si, 0Ah
|
||
jmp short loc_C288
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C232:
|
||
cmp word ptr _score_highest+2, 27h ; '''
|
||
jl short loc_C248
|
||
jnz short loc_C243
|
||
cmp word ptr _score_highest, 0AC40h
|
||
jb short loc_C248
|
||
|
||
loc_C243:
|
||
add si, 8
|
||
jmp short loc_C288
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C248:
|
||
cmp word ptr _score_highest+2, 21h ; '!'
|
||
jl short loc_C25E
|
||
jnz short loc_C259
|
||
cmp word ptr _score_highest, 91C0h
|
||
jb short loc_C25E
|
||
|
||
loc_C259:
|
||
add si, 6
|
||
jmp short loc_C288
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C25E:
|
||
cmp word ptr _score_highest+2, 1Bh
|
||
jl short loc_C274
|
||
jnz short loc_C26F
|
||
cmp word ptr _score_highest, 7740h
|
||
jb short loc_C274
|
||
|
||
loc_C26F:
|
||
add si, 4
|
||
jmp short loc_C288
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C274:
|
||
cmp word ptr _score_highest+2, 15h
|
||
jl short loc_C288
|
||
jnz short loc_C285
|
||
cmp word ptr _score_highest, 5CC0h
|
||
jb short loc_C288
|
||
|
||
loc_C285:
|
||
add si, 2
|
||
|
||
loc_C288:
|
||
mov ax, word ptr _continues_total
|
||
or ax, word ptr _continues_total+2
|
||
jnz short loc_C297
|
||
add si, 1Eh
|
||
jmp loc_C36C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C297:
|
||
cmp word ptr _continues_total+2, 0
|
||
jg short loc_C2AD
|
||
jnz short loc_C2A7
|
||
cmp word ptr _continues_total, 2
|
||
ja short loc_C2AD
|
||
|
||
loc_C2A7:
|
||
add si, 0Ah
|
||
jmp loc_C36C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C2AD:
|
||
cmp word ptr _continues_total+2, 0
|
||
jg short loc_C2C3
|
||
jnz short loc_C2BD
|
||
cmp word ptr _continues_total, 4
|
||
ja short loc_C2C3
|
||
|
||
loc_C2BD:
|
||
add si, 8
|
||
jmp loc_C36C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C2C3:
|
||
cmp word ptr _continues_total+2, 0
|
||
jg short loc_C2D9
|
||
jnz short loc_C2D3
|
||
cmp word ptr _continues_total, 6
|
||
ja short loc_C2D9
|
||
|
||
loc_C2D3:
|
||
add si, 6
|
||
jmp loc_C36C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C2D9:
|
||
cmp word ptr _continues_total+2, 0
|
||
jg short loc_C2EE
|
||
jnz short loc_C2E9
|
||
cmp word ptr _continues_total, 8
|
||
ja short loc_C2EE
|
||
|
||
loc_C2E9:
|
||
add si, 4
|
||
jmp short loc_C36C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C2EE:
|
||
cmp word ptr _continues_total+2, 0
|
||
jg short loc_C303
|
||
jnz short loc_C2FE
|
||
cmp word ptr _continues_total, 0Ah
|
||
ja short loc_C303
|
||
|
||
loc_C2FE:
|
||
add si, 2
|
||
jmp short loc_C36C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C303:
|
||
cmp word ptr _continues_total+2, 0
|
||
jg short loc_C315
|
||
jnz short loc_C313
|
||
cmp word ptr _continues_total, 0Ch
|
||
ja short loc_C315
|
||
|
||
loc_C313:
|
||
jmp short loc_C36C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C315:
|
||
cmp word ptr _continues_total+2, 0
|
||
jg short loc_C32A
|
||
jnz short loc_C325
|
||
cmp word ptr _continues_total, 0Eh
|
||
ja short loc_C32A
|
||
|
||
loc_C325:
|
||
sub si, 2
|
||
jmp short loc_C36C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C32A:
|
||
cmp word ptr _continues_total+2, 0
|
||
jg short loc_C33F
|
||
jnz short loc_C33A
|
||
cmp word ptr _continues_total, 10h
|
||
ja short loc_C33F
|
||
|
||
loc_C33A:
|
||
sub si, 4
|
||
jmp short loc_C36C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C33F:
|
||
cmp word ptr _continues_total+2, 0
|
||
jg short loc_C354
|
||
jnz short loc_C34F
|
||
cmp word ptr _continues_total, 12h
|
||
ja short loc_C354
|
||
|
||
loc_C34F:
|
||
sub si, 6
|
||
jmp short loc_C36C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C354:
|
||
cmp word ptr _continues_total+2, 0
|
||
jg short loc_C369
|
||
jnz short loc_C364
|
||
cmp word ptr _continues_total, 14h
|
||
ja short loc_C369
|
||
|
||
loc_C364:
|
||
sub si, 8
|
||
jmp short loc_C36C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C369:
|
||
sub si, 0Ah
|
||
|
||
loc_C36C:
|
||
cmp _rank, RANK_LUNATIC
|
||
jnz short loc_C378
|
||
add si, 32h ; '2'
|
||
jmp short loc_C39A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C378:
|
||
cmp _rank, RANK_HARD
|
||
jnz short loc_C384
|
||
add si, 1Eh
|
||
jmp short loc_C39A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C384:
|
||
cmp _rank, RANK_NORMAL
|
||
jnz short loc_C390
|
||
add si, 0Ah
|
||
jmp short loc_C39A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C390:
|
||
cmp _rank, RANK_EASY
|
||
jnz short loc_C39A
|
||
sub si, 0Ah
|
||
|
||
loc_C39A:
|
||
cmp byte_14021, 2
|
||
jnz short loc_C3A4
|
||
add si, 5
|
||
|
||
loc_C3A4:
|
||
mov al, byte_14020
|
||
cbw
|
||
cmp ax, 4
|
||
jnz short loc_C3B2
|
||
sub si, 0Ah
|
||
jmp short loc_C3D8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C3B2:
|
||
mov al, byte_14020
|
||
cbw
|
||
cmp ax, 3
|
||
jnz short loc_C3C0
|
||
sub si, 5
|
||
jmp short loc_C3D8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C3C0:
|
||
mov al, byte_14020
|
||
cbw
|
||
cmp ax, 1
|
||
jnz short loc_C3CE
|
||
add si, 5
|
||
jmp short loc_C3D8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C3CE:
|
||
cmp byte_14020, 0
|
||
jnz short loc_C3D8
|
||
add si, 0Ah
|
||
|
||
loc_C3D8:
|
||
call IRand
|
||
mov bx, 3
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_2], dx
|
||
cmp si, 50h ; 'P'
|
||
jl short loc_C3F0
|
||
mov di, 5
|
||
jmp short loc_C419
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C3F0:
|
||
cmp si, 3Ch ; '<'
|
||
jl short loc_C3FA
|
||
mov di, 4
|
||
jmp short loc_C419
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C3FA:
|
||
cmp si, 28h ; '('
|
||
jl short loc_C404
|
||
mov di, 3
|
||
jmp short loc_C419
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C404:
|
||
cmp si, 14h
|
||
jl short loc_C40E
|
||
mov di, 2
|
||
jmp short loc_C419
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C40E:
|
||
or si, si
|
||
jl short loc_C417
|
||
mov di, 1
|
||
jmp short loc_C419
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C417:
|
||
xor di, di
|
||
|
||
loc_C419:
|
||
mov bx, [bp+var_2]
|
||
imul bx, 18h
|
||
mov ax, di
|
||
shl ax, 2
|
||
add bx, ax
|
||
push word ptr [bx+3DAh]
|
||
push word ptr [bx+3D8h] ; arglist
|
||
push ds
|
||
push offset aS_1 ; "%s"
|
||
push 12h ; int
|
||
push 180h ; int
|
||
push 1E8h ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_C1A8 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C446 proc far
|
||
|
||
var_10 = byte ptr -10h
|
||
|
||
enter 10h, 0
|
||
push si
|
||
lea ax, [bp+var_10]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset off_12EC0
|
||
mov cx, 10h
|
||
call SCOPY@
|
||
push 0Ah
|
||
call sub_C911
|
||
push 1
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
push ds
|
||
push offset aEndm_a_grp ; "endm_a.grp"
|
||
call sub_EB39
|
||
add sp, 4
|
||
call sub_D349
|
||
push 0
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
push 8
|
||
call sub_C939
|
||
push 190h
|
||
push 20h ; ' '
|
||
push 5
|
||
push ds
|
||
push offset aUmx_1 ; "<22><><EFBFBD><EFBFBD><EFBFBD>ˈٓ`"
|
||
call sub_C9EE
|
||
push 1F0h
|
||
push 20h ; ' '
|
||
push 3
|
||
push ds
|
||
push offset aVer ; "ver"
|
||
call sub_C9B0
|
||
push 210h
|
||
push 20h ; ' '
|
||
push 4
|
||
push ds
|
||
push offset a1_10 ; "1.10"
|
||
call sub_C9B0
|
||
push 1Eh
|
||
call sub_C82D
|
||
pop cx
|
||
mov al, _rank
|
||
mov ah, 0
|
||
shl ax, 2
|
||
lea dx, [bp+var_10]
|
||
add ax, dx
|
||
mov bx, ax
|
||
push word ptr ss:[bx+2]
|
||
push word ptr ss:[bx] ; arglist
|
||
push ds
|
||
push offset aUqiUxb@b@b@b@b ; "<22><><EFBFBD>Փx<D593>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@ %s"
|
||
push 0Fh ; int
|
||
push 40h ; int
|
||
push 128h ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
push 1Eh
|
||
call sub_C82D
|
||
pop cx
|
||
push word ptr _score_highest+2
|
||
push word ptr _score_highest ; arglist
|
||
push ds
|
||
push offset aNbi ; "<22><><EFBFBD><EFBFBD><EFBFBD>̍ō<CC8D><C58D><EFBFBD><EFBFBD>_<EFBFBD>@<40>@<40>@<40>@<40>@<40>@ %7lu"
|
||
push 0Fh ; int
|
||
push 60h ; int
|
||
push 128h ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
push 1Eh
|
||
call sub_C82D
|
||
pop cx
|
||
push word ptr _score+2
|
||
push word ptr _score ; arglist
|
||
push ds
|
||
push offset aNPiuU_b@b@b@b@ ; "<22>ŏI<C58F><49><EFBFBD>_<EFBFBD>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@ %7lu"
|
||
push 0Fh ; int
|
||
push 80h ; int
|
||
push 128h ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
push 1Eh
|
||
call sub_C82D
|
||
pop cx
|
||
push ds
|
||
push offset aGrgugegbgjgebI ; "<22>R<EFBFBD><52><EFBFBD>e<EFBFBD>B<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B><><EFBFBD><EFBFBD>"
|
||
push 0Fh ; int
|
||
push 0A0h ; int
|
||
push 128h ; int
|
||
call sub_E9E4
|
||
add sp, 0Ah
|
||
push 1Eh
|
||
call sub_C82D
|
||
pop cx
|
||
push word_13EDE
|
||
push word_13EDC ; arglist
|
||
push ds
|
||
push offset aB@r_oB@b@b@b@b ; "<22>@<40>_<EFBFBD>Ё@<40>@<40>@<40>@<40>i<EFBFBD>P<EFBFBD>ʁ`<60>T<EFBFBD>ʁj <20>@ %3lu"
|
||
push 0Fh ; int
|
||
push 0C0h ;int
|
||
push 128h ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
push 1Eh
|
||
call sub_C82D
|
||
pop cx
|
||
cmp byte_14021, 1
|
||
jnz short loc_C590
|
||
push word_13EE2
|
||
push word_13EE0
|
||
push ds
|
||
push offset aB@gqbGgb@b@b@b ; "<22>@<40>Q<EFBFBD>[<5B>g<EFBFBD>@<40>@<40>@<40>i<EFBFBD>U<EFBFBD>ʁ`<60>P<EFBFBD>O<EFBFBD>ʁj %3lu"
|
||
jmp short loc_C59C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C590:
|
||
push word_13EE2
|
||
push word_13EE0 ; arglist
|
||
push ds
|
||
push offset aB@tkb@b@b@b@b@ ; "<22>@<40>K<EFBFBD>@<40>@<40>@<40>@<40>@<40>i<EFBFBD>U<EFBFBD>ʁ`<60>P<EFBFBD>O<EFBFBD>ʁj %3lu"
|
||
|
||
loc_C59C:
|
||
push 0Fh ; int
|
||
push 0E0h ; int
|
||
push 128h ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
push 1Eh
|
||
call sub_C82D
|
||
pop cx
|
||
cmp byte_14021, 1
|
||
jnz short loc_C5C9
|
||
push word_13EE6
|
||
push word_13EE4
|
||
push ds
|
||
push offset aGfgbgivFpBivpv ; " <20><><EFBFBD>B<EFBFBD>i<EFBFBD>̔p<CC94>Ёi<D081>P<EFBFBD>P<EFBFBD>ʁ`<60>P<EFBFBD>T<EFBFBD>ʁj%3lu"
|
||
jmp short loc_C5D5
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C5C9:
|
||
push word_13EE6
|
||
push word_13EE4 ; arglist
|
||
push ds
|
||
push offset aB@ikvXekeb@b@b ; "<22>@<40><><EFBFBD>̕<EFBFBD><CC95>E<EFBFBD>@<40>@<40>i<EFBFBD>P<EFBFBD>P<EFBFBD>ʁ`<60>P<EFBFBD>T<EFBFBD>ʁj%3lu"
|
||
|
||
loc_C5D5:
|
||
push 0Fh ; int
|
||
push 100h ; int
|
||
push 128h ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
push 1Eh
|
||
call sub_C82D
|
||
pop cx
|
||
cmp byte_14021, 1
|
||
jnz short loc_C602
|
||
push word_13EEA
|
||
push word_13EE8
|
||
push ds
|
||
push offset aSVVVsr_uabivpv ; " <20><EFBFBD><C282><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD>a<EFBFBD>i<EFBFBD>P<EFBFBD>T<EFBFBD>ʁ`<60>Q<EFBFBD>O<EFBFBD>ʁj%3lu"
|
||
jmp short loc_C60E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C602:
|
||
push word_13EEA
|
||
push word_13EE8 ; arglist
|
||
push ds
|
||
push offset aB@rVivVsr_uabi ; "<22>@<40>Â<EFBFBD><C382>Ȃ<EFBFBD><C882>_<EFBFBD>a<EFBFBD>i<EFBFBD>P<EFBFBD>T<EFBFBD>ʁ`<60>Q<EFBFBD>O<EFBFBD>ʁj%3lu"
|
||
|
||
loc_C60E:
|
||
push 0Fh ; int
|
||
push 120h ; int
|
||
push 128h ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
push 1Eh
|
||
call sub_C82D
|
||
pop cx
|
||
cmp byte_14021, 1
|
||
jnz short loc_C63B
|
||
push word ptr _continues_total+2
|
||
push word ptr _continues_total
|
||
push ds
|
||
push offset aCvkeglbGgsnnzb ; " <20><><EFBFBD>E<EFBFBD><45><EFBFBD>[<5B>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>@<40>@<40>@<40>@<40>@<40>@ %5lu"
|
||
jmp short loc_C647
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C63B:
|
||
push word ptr _continues_total+2
|
||
push word ptr _continues_total ; arglist
|
||
push ds
|
||
push offset aB@tnncglbGgsnn ; "<22>@<40>n<EFBFBD><6E><EFBFBD><EFBFBD><EFBFBD>[<5B>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>@<40>@<40>@<40>@<40>@<40>@<40>@%5lu"
|
||
|
||
loc_C647:
|
||
push 0Fh ; int
|
||
push 140h ; int
|
||
push 128h ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
push 1Eh
|
||
call sub_C82D
|
||
pop cx
|
||
push 128h
|
||
push 160h
|
||
push 1Dh
|
||
push ds
|
||
push offset aThankYouForPla ; " Thank you for Playing !! "
|
||
call sub_C9B0
|
||
push ds
|
||
push offset aBBBVavVVPNjbBB ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>̏̍<CC8F><CC8D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
push 12h ; int
|
||
push 180h ; int
|
||
push 108h ; int
|
||
call sub_E9E4
|
||
add sp, 0Ah
|
||
push 32h ; '2'
|
||
call sub_C82D
|
||
pop cx
|
||
call sub_C1A8
|
||
xor si, si
|
||
push 64h ; 'd'
|
||
call sub_C82D
|
||
pop cx
|
||
call sub_A44F
|
||
jmp short loc_C6B1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C6A1:
|
||
push 0
|
||
call sub_A265
|
||
pop cx
|
||
push 1
|
||
call sub_C82D
|
||
pop cx
|
||
|
||
loc_C6B1:
|
||
mov ax, si
|
||
inc si
|
||
cmp ax, 7D0h
|
||
jge short loc_C6C7
|
||
cmp byte_12BA0, 0
|
||
jnz short loc_C6C7
|
||
cmp byte_12B9C, 0
|
||
jz short loc_C6A1
|
||
|
||
loc_C6C7:
|
||
push 1
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
call sub_D349
|
||
push 0
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
push 32h ; '2'
|
||
call sub_C842
|
||
mov byte_134C3, 7
|
||
mov byte_134C4, 0Fh
|
||
mov byte_134C5, 7
|
||
mov byte_134CF, 0Fh
|
||
mov byte_134D0, 0Fh
|
||
mov byte_134D1, 0Fh
|
||
push ds
|
||
push offset unk_134BA
|
||
call sub_D1D9
|
||
add sp, 4
|
||
cmp byte_14021, 1
|
||
jnz short loc_C71C
|
||
push ds
|
||
push offset aKo ; "<22><>"
|
||
push 32h ; '2'
|
||
jmp short loc_C722
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C71C:
|
||
push ds
|
||
push offset aKo_0 ; "<22><>"
|
||
push 3Ch ; '<'
|
||
|
||
loc_C722:
|
||
push word ptr _score+2
|
||
push word ptr _score
|
||
call sub_B5D8
|
||
add sp, 0Ah
|
||
call sub_A076
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_C446 endp
|
||
|
||
fuuin_03_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
fuuin_04_TEXT segment byte public 'CODE' use16
|
||
assume cs:fuuin_04_TEXT
|
||
;org 0Ah
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C73A proc far
|
||
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push 1
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
push [bp+arg_2]
|
||
push [bp+arg_0]
|
||
call sub_EB39
|
||
add sp, 4
|
||
pop bp
|
||
retf 4
|
||
sub_C73A endp
|
||
|
||
EGC_START_COPY_DEF 1, far
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C78B proc far
|
||
|
||
var_A = word ptr -0Ah
|
||
var_8 = word ptr -8
|
||
var_6 = word ptr -6
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
|
||
enter 0Ah, 0
|
||
push si
|
||
push di
|
||
call egc_start_copy_1
|
||
mov ax, [bp+arg_0]
|
||
mov bx, 2
|
||
cwd
|
||
idiv bx
|
||
imul dx, 140h
|
||
mov [bp+var_2], dx
|
||
mov ax, [bp+arg_0]
|
||
cwd
|
||
sub ax, dx
|
||
sar ax, 1
|
||
imul ax, 0C8h
|
||
mov [bp+var_4], ax
|
||
mov ax, [bp+var_2]
|
||
sar ax, 3
|
||
mov dx, [bp+var_4]
|
||
shl dx, 6
|
||
add ax, dx
|
||
mov dx, [bp+var_4]
|
||
shl dx, 4
|
||
add ax, dx
|
||
mov si, ax
|
||
mov di, 1F54h
|
||
mov [bp+var_8], 0
|
||
jmp short loc_C81D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C7D6:
|
||
mov [bp+var_6], 0
|
||
jmp short loc_C80E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C7DD:
|
||
push 1
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, si
|
||
mov ax, es:[bx]
|
||
mov [bp+var_A], ax
|
||
push 0
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, di
|
||
mov ax, [bp+var_A]
|
||
mov es:[bx], ax
|
||
add si, 2
|
||
add di, 2
|
||
inc [bp+var_6]
|
||
|
||
loc_C80E:
|
||
cmp [bp+var_6], 14h
|
||
jl short loc_C7DD
|
||
add si, 28h ; '('
|
||
add di, 28h ; '('
|
||
inc [bp+var_8]
|
||
|
||
loc_C81D:
|
||
cmp [bp+var_8], 0C8h ; '<27>'
|
||
jl short loc_C7D6
|
||
call egc_off
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_C78B endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C82D proc far
|
||
|
||
arg_0 = word ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
mov _vsync_frame, 0
|
||
|
||
loc_C836:
|
||
mov ax, _vsync_frame
|
||
cmp ax, [bp+arg_0]
|
||
jnb short loc_C840
|
||
jmp short loc_C836
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C840:
|
||
pop bp
|
||
retf
|
||
sub_C82D endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C842 proc far
|
||
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
|
||
enter 2, 0
|
||
push si
|
||
push di
|
||
cmp [bp+arg_0], 0
|
||
jge short loc_C855
|
||
mov [bp+arg_0], 0
|
||
jmp short loc_C861
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C855:
|
||
cmp [bp+arg_0], 0C8h ; '<27>'
|
||
jle short loc_C861
|
||
mov [bp+arg_0], 0C8h ; '<27>'
|
||
|
||
loc_C861:
|
||
mov si, 1
|
||
jmp loc_C8F1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C867:
|
||
xor di, di
|
||
jmp short loc_C8E8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C86B:
|
||
cmp [bp+arg_0], 64h ; 'd'
|
||
jle short loc_C8A9
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, [bx+di+170Ah]
|
||
cbw
|
||
mov dx, 0Fh
|
||
sub dx, ax
|
||
mov [bp+var_2], dx
|
||
mov ax, [bp+arg_0]
|
||
add ax, 0FF9Ch
|
||
imul [bp+var_2]
|
||
mov [bp+var_2], ax
|
||
mov bx, 64h ; 'd'
|
||
mov ax, [bp+var_2]
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_2], ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, [bx+di+170Ah]
|
||
add al, byte ptr [bp+var_2]
|
||
jmp short loc_C8DE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C8A9:
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, [bx+di+170Ah]
|
||
cbw
|
||
mov [bp+var_2], ax
|
||
mov ax, 64h ; 'd'
|
||
sub ax, [bp+arg_0]
|
||
imul [bp+var_2]
|
||
mov [bp+var_2], ax
|
||
mov bx, 64h ; 'd'
|
||
mov ax, [bp+var_2]
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_2], ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, [bx+di+170Ah]
|
||
mov dl, byte ptr [bp+var_2]
|
||
neg dl
|
||
add al, dl
|
||
|
||
loc_C8DE:
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov [bx+di+0A1Ah], al
|
||
inc di
|
||
|
||
loc_C8E8:
|
||
cmp di, 3
|
||
jge short loc_C8F0
|
||
jmp loc_C86B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C8F0:
|
||
inc si
|
||
|
||
loc_C8F1:
|
||
cmp si, 10h
|
||
jge short loc_C8F9
|
||
jmp loc_C867
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C8F9:
|
||
mov ax, [bp+arg_0]
|
||
mov word_13507, ax
|
||
push ds
|
||
push offset unk_134BA
|
||
call sub_D1D9
|
||
add sp, 4
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf 2
|
||
sub_C842 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C911 proc far
|
||
|
||
arg_0 = word ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
mov di, 64h ; 'd'
|
||
xor si, si
|
||
jmp short loc_C92E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C91D:
|
||
sub di, 5
|
||
push di
|
||
call sub_C842
|
||
push [bp+arg_0]
|
||
call sub_C82D
|
||
pop cx
|
||
inc si
|
||
|
||
loc_C92E:
|
||
cmp si, 14h
|
||
jl short loc_C91D
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retf 2
|
||
sub_C911 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C939 proc far
|
||
|
||
arg_0 = word ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
xor di, di
|
||
xor si, si
|
||
jmp short loc_C955
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C944:
|
||
add di, 5
|
||
push di
|
||
call sub_C842
|
||
push [bp+arg_0]
|
||
call sub_C82D
|
||
pop cx
|
||
inc si
|
||
|
||
loc_C955:
|
||
cmp si, 14h
|
||
jl short loc_C944
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retf 2
|
||
sub_C939 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C960 proc far
|
||
|
||
arg_0 = word ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
mov di, 64h ; 'd'
|
||
xor si, si
|
||
jmp short loc_C97D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C96C:
|
||
add di, 5
|
||
push di
|
||
call sub_C842
|
||
push [bp+arg_0]
|
||
call sub_C82D
|
||
pop cx
|
||
inc si
|
||
|
||
loc_C97D:
|
||
cmp si, 14h
|
||
jl short loc_C96C
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retf 2
|
||
sub_C960 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C988 proc far
|
||
|
||
arg_0 = word ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
mov di, 0C8h ; '<27>'
|
||
xor si, si
|
||
jmp short loc_C9A5
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C994:
|
||
sub di, 5
|
||
push di
|
||
call sub_C842
|
||
push [bp+arg_0]
|
||
call sub_C82D
|
||
pop cx
|
||
inc si
|
||
|
||
loc_C9A5:
|
||
cmp si, 14h
|
||
jl short loc_C994
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retf 2
|
||
sub_C988 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C9B0 proc far
|
||
|
||
arg_0 = dword ptr 6
|
||
arg_4 = word ptr 0Ah
|
||
arg_6 = word ptr 0Ch
|
||
arg_8 = word ptr 0Eh
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
xor si, si
|
||
jmp short loc_C9E4
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C9B8:
|
||
les bx, [bp+arg_0]
|
||
add bx, si
|
||
mov al, es:[bx]
|
||
cbw
|
||
push ax ; arglist
|
||
push ds
|
||
push offset aC ; "%c"
|
||
push 0Fh ; int
|
||
push [bp+arg_6] ; int
|
||
mov ax, si
|
||
shl ax, 3
|
||
add ax, [bp+arg_8]
|
||
push ax ; int
|
||
call sub_E9E4
|
||
add sp, 0Ch
|
||
push 3
|
||
call sub_C82D
|
||
pop cx
|
||
inc si
|
||
|
||
loc_C9E4:
|
||
cmp si, [bp+arg_4]
|
||
jl short loc_C9B8
|
||
pop si
|
||
pop bp
|
||
retf 0Ah
|
||
sub_C9B0 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C9EE proc far
|
||
|
||
arg_0 = dword ptr 6
|
||
arg_4 = word ptr 0Ah
|
||
arg_6 = word ptr 0Ch
|
||
arg_8 = word ptr 0Eh
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
xor si, si
|
||
jmp short loc_CA36
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C9F6:
|
||
mov bx, si
|
||
add bx, bx
|
||
mov es, word ptr [bp+arg_0+2]
|
||
add bx, word ptr [bp+arg_0]
|
||
mov al, es:[bx+1]
|
||
cbw
|
||
push ax
|
||
mov ax, si
|
||
add ax, ax
|
||
les bx, [bp+arg_0]
|
||
add bx, ax
|
||
mov al, es:[bx]
|
||
cbw
|
||
push ax ; arglist
|
||
push ds
|
||
push offset aCC_5 ; "%c%c"
|
||
push 0Fh ; int
|
||
push [bp+arg_6] ; int
|
||
mov ax, si
|
||
shl ax, 4
|
||
add ax, [bp+arg_8]
|
||
push ax ; int
|
||
call sub_E9E4
|
||
add sp, 0Eh
|
||
push 3
|
||
call sub_C82D
|
||
pop cx
|
||
inc si
|
||
|
||
loc_CA36:
|
||
cmp si, [bp+arg_4]
|
||
jl short loc_C9F6
|
||
pop si
|
||
pop bp
|
||
retf 0Ah
|
||
sub_C9EE endp
|
||
|
||
fuuin_04_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
fuuin_05_TEXT segment byte public 'CODE' use16
|
||
extern _vsync_init:proc
|
||
extern _vsync_exit:proc
|
||
extern _z_vsync_wait:proc
|
||
fuuin_05_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
fuuin_06_TEXT segment byte public 'CODE' use16
|
||
extern _z_text_init:proc
|
||
extern _z_text_25line:proc
|
||
extern _z_text_setcursor:proc
|
||
extern _z_text_clear:proc
|
||
extern _z_text_show:proc
|
||
extern _z_text_print:proc
|
||
fuuin_06_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
fuuin_07_TEXT segment byte public 'CODE' use16
|
||
assume cs:fuuin_07_TEXT
|
||
;org 7
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
; void __interrupt sub_CE87()
|
||
sub_CE87 proc far
|
||
push eax
|
||
push ebx
|
||
push ecx
|
||
push edx
|
||
push es
|
||
push ds
|
||
push esi
|
||
push edi
|
||
push bp
|
||
mov bp, seg _DATA
|
||
mov ds, bp
|
||
mov bp, sp
|
||
pop bp
|
||
pop edi
|
||
pop esi
|
||
pop ds
|
||
pop es
|
||
pop edx
|
||
pop ecx
|
||
pop ebx
|
||
pop eax
|
||
iret
|
||
sub_CE87 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_CEAD proc far
|
||
push bp
|
||
mov bp, sp
|
||
cmp byte_134B8, 0
|
||
jnz short loc_CEFE
|
||
mov byte_134B8, 1
|
||
push 6 ; interruptno
|
||
call _getvect
|
||
pop cx
|
||
mov word ptr off_14150+2, dx
|
||
mov word ptr off_14150, ax
|
||
push seg fuuin_07_TEXT
|
||
push offset sub_CF87 ; isr
|
||
push 6 ; interruptno
|
||
call _setvect
|
||
add sp, 6
|
||
call _vsync_init
|
||
call _z_text_init
|
||
call egc_start
|
||
call graph_start
|
||
call respal_create
|
||
call sub_E984
|
||
call vram_planes_set
|
||
|
||
loc_CEFE:
|
||
pop bp
|
||
retf
|
||
sub_CEAD endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_CF00 proc far
|
||
push bp
|
||
mov bp, sp
|
||
cmp byte_134B8, 1
|
||
jnz short loc_CF19
|
||
mov byte_134B8, 0
|
||
nopcall sub_CF48
|
||
call respal_free
|
||
|
||
loc_CF19:
|
||
pop bp
|
||
retf
|
||
sub_CF00 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_CF1B proc far
|
||
push bp
|
||
mov bp, sp
|
||
cmp byte_134B8, 1
|
||
jnz short loc_CF46
|
||
nopcall sub_CF48
|
||
call _z_text_25line
|
||
push 0
|
||
call _z_text_setcursor
|
||
pop cx
|
||
call _z_text_clear
|
||
call _z_text_show
|
||
mov byte_134B8, 0
|
||
|
||
loc_CF46:
|
||
pop bp
|
||
retf
|
||
sub_CF1B endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_CF48 proc far
|
||
push bp
|
||
mov bp, sp
|
||
mov byte_134B8, 0
|
||
push seg fuuin_07_TEXT
|
||
push offset sub_CE87 ; isr
|
||
push 6 ; interruptno
|
||
call _setvect
|
||
call _vsync_exit
|
||
call _z_text_clear
|
||
call sub_D4FE
|
||
call sub_D094
|
||
call egc_start
|
||
pushd [off_14150] ; isr
|
||
push 6 ; interruptno
|
||
call _setvect
|
||
add sp, 0Ch
|
||
pop bp
|
||
retf
|
||
sub_CF48 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: noreturn bp-based frame
|
||
|
||
; void __interrupt sub_CF87()
|
||
sub_CF87 proc far
|
||
push eax
|
||
push ebx
|
||
push ecx
|
||
push edx
|
||
push es
|
||
push ds
|
||
push esi
|
||
push edi
|
||
push bp
|
||
mov bp, seg _DATA
|
||
mov ds, bp
|
||
mov bp, sp
|
||
call sub_CF00
|
||
push 0 ; status
|
||
call _exit
|
||
; ---------------------------------------------------------------------------
|
||
pop cx
|
||
pop bp
|
||
pop edi
|
||
pop esi
|
||
pop ds
|
||
pop es
|
||
pop edx
|
||
pop ecx
|
||
pop ebx
|
||
pop eax
|
||
iret
|
||
sub_CF87 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: noreturn bp-based frame
|
||
|
||
sub_CFB9 proc far
|
||
|
||
@@buffer = byte ptr -104h
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
_format = dword ptr 6
|
||
_arglist = byte ptr 0Ah
|
||
|
||
enter 104h, 0
|
||
lea ax, [bp+_arglist]
|
||
mov [bp+var_2], ss
|
||
mov [bp+var_4], ax
|
||
push [bp+var_2]
|
||
push ax ; arglist
|
||
pushd [bp+_format] ; format
|
||
push ss
|
||
lea ax, [bp+@@buffer]
|
||
push ax ; buffer
|
||
call _vsprintf
|
||
call sub_CF00
|
||
push ss
|
||
lea ax, [bp+@@buffer]
|
||
push ax
|
||
call _z_text_print
|
||
push 1 ; status
|
||
call _exit
|
||
; ---------------------------------------------------------------------------
|
||
add sp, 12h
|
||
leave
|
||
retf
|
||
sub_CFB9 endp
|
||
|
||
fuuin_07_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
fuuin_08_TEXT segment byte public 'CODE' use16
|
||
assume cs:fuuin_08_TEXT
|
||
;org 4
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_CFF4 proc far
|
||
|
||
inregs = REGS ptr -10h
|
||
|
||
enter 10h, 0
|
||
nopcall sub_D0E0
|
||
mov byte ptr [bp+inregs+1], 42h ; 'B'
|
||
mov byte ptr [bp+inregs+5], 0C0h ; '<27>'
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; outregs
|
||
push ss
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
mov dx, 6Ah ; 'j'
|
||
mov al, 1
|
||
out dx, al ; PC-98 GDC (6a):
|
||
;
|
||
push ds
|
||
push offset unk_134BA
|
||
nopcall sub_D1D9
|
||
push 0
|
||
nopcall _graph_accesspage_func
|
||
push 0
|
||
nopcall _graph_showpage_func
|
||
add sp, 12h
|
||
nopcall sub_D300
|
||
mov dx, 68h ; 'h'
|
||
mov al, 0Ah
|
||
out dx, al
|
||
GRCG_OFF_CLOBBERING dx
|
||
nopcall sub_D0C5
|
||
leave
|
||
retf
|
||
sub_CFF4 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D04B proc far
|
||
|
||
inregs = REGS ptr -10h
|
||
|
||
enter 10h, 0
|
||
nopcall sub_D0E0
|
||
mov byte ptr [bp+inregs+1], 42h ; 'B'
|
||
mov byte ptr [bp+inregs+5], 0C0h ; '<27>'
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; outregs
|
||
push ss
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
mov dx, 6Ah ; 'j'
|
||
mov al, 1
|
||
out dx, al ; PC-98 GDC (6a):
|
||
;
|
||
push 0
|
||
nopcall _graph_accesspage_func
|
||
push 0
|
||
nopcall _graph_showpage_func
|
||
add sp, 0Eh
|
||
mov dx, 68h ; 'h'
|
||
mov al, 0Ah
|
||
out dx, al
|
||
GRCG_OFF_CLOBBERING dx
|
||
nopcall sub_D0C5
|
||
leave
|
||
retf
|
||
sub_D04B endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D094 proc far
|
||
push bp
|
||
mov bp, sp
|
||
nopcall sub_D431
|
||
nopcall sub_D300
|
||
push 0
|
||
nopcall _graph_accesspage_func
|
||
push 0
|
||
nopcall _graph_showpage_func
|
||
add sp, 4
|
||
nopcall sub_D0C5
|
||
mov dx, 68h ; 'h'
|
||
mov al, 0Ah
|
||
out dx, al
|
||
GRCG_OFF_CLOBBERING dx
|
||
pop bp
|
||
retf
|
||
sub_D094 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D0C5 proc far
|
||
|
||
inregs = REGS ptr -10h
|
||
|
||
enter 10h, 0
|
||
mov byte ptr [bp+inregs+1], 40h
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; outregs
|
||
push ss
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
add sp, 0Ah
|
||
leave
|
||
retf
|
||
sub_D0C5 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D0E0 proc far
|
||
|
||
inregs = REGS ptr -10h
|
||
|
||
enter 10h, 0
|
||
mov byte ptr [bp+inregs+1], 41h ; 'A'
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; outregs
|
||
push ss
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
add sp, 0Ah
|
||
leave
|
||
retf
|
||
sub_D0E0 endp
|
||
|
||
include th01/hardware/graph_page.asm
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D119 proc far
|
||
|
||
arg_0 = byte ptr 6
|
||
arg_2 = byte ptr 8
|
||
arg_4 = byte ptr 0Ah
|
||
arg_6 = byte ptr 0Ch
|
||
|
||
push bp
|
||
mov bp, sp
|
||
mov dx, 0A8h ; '<27>'
|
||
mov al, [bp+arg_0]
|
||
out dx, al
|
||
mov dx, 0AAh ; '<27>'
|
||
mov al, [bp+arg_4]
|
||
out dx, al
|
||
mov dx, 0ACh ; '<27>'
|
||
mov al, [bp+arg_2]
|
||
out dx, al
|
||
mov dx, 0AEh ; '<27>'
|
||
mov al, [bp+arg_6]
|
||
out dx, al
|
||
pop bp
|
||
retf
|
||
sub_D119 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
public _grcg_setcolor_rmw
|
||
_grcg_setcolor_rmw proc far
|
||
|
||
arg_0 = word ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
mov bx, [bp+arg_0]
|
||
GRCG_SETMODE_CLOBBERING dx, GC_RMW
|
||
test bl, 1
|
||
jz short loc_D14F
|
||
mov al, 0FFh
|
||
jmp short loc_D151
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D14F:
|
||
mov al, 0
|
||
|
||
loc_D151:
|
||
mov dx, 7Eh ; '~'
|
||
out dx, al
|
||
test bl, 2
|
||
jz short loc_D15E
|
||
mov al, 0FFh
|
||
jmp short loc_D160
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D15E:
|
||
mov al, 0
|
||
|
||
loc_D160:
|
||
mov dx, 7Eh ; '~'
|
||
out dx, al
|
||
test bl, 4
|
||
jz short loc_D16D
|
||
mov al, 0FFh
|
||
jmp short loc_D16F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D16D:
|
||
mov al, 0
|
||
|
||
loc_D16F:
|
||
mov dx, 7Eh ; '~'
|
||
out dx, al
|
||
test bl, 8
|
||
jz short loc_D17C
|
||
mov al, 0FFh
|
||
jmp short loc_D17E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D17C:
|
||
mov al, 0
|
||
|
||
loc_D17E:
|
||
mov dx, 7Eh ; '~'
|
||
out dx, al
|
||
pop bp
|
||
retf
|
||
_grcg_setcolor_rmw endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D184 proc far
|
||
|
||
arg_0 = word ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
mov bx, [bp+arg_0]
|
||
GRCG_SETMODE_CLOBBERING dx, GC_TDW
|
||
test bl, 1
|
||
jz short loc_D199
|
||
mov al, 0FFh
|
||
jmp short loc_D19B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D199:
|
||
mov al, 0
|
||
|
||
loc_D19B:
|
||
mov dx, 7Eh ; '~'
|
||
out dx, al
|
||
test bl, 2
|
||
jz short loc_D1A8
|
||
mov al, 0FFh
|
||
jmp short loc_D1AA
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D1A8:
|
||
mov al, 0
|
||
|
||
loc_D1AA:
|
||
mov dx, 7Eh ; '~'
|
||
out dx, al
|
||
test bl, 4
|
||
jz short loc_D1B7
|
||
mov al, 0FFh
|
||
jmp short loc_D1B9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D1B7:
|
||
mov al, 0
|
||
|
||
loc_D1B9:
|
||
mov dx, 7Eh ; '~'
|
||
out dx, al
|
||
test bl, 8
|
||
jz short loc_D1C6
|
||
mov al, 0FFh
|
||
jmp short loc_D1C8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D1C6:
|
||
mov al, 0
|
||
|
||
loc_D1C8:
|
||
mov dx, 7Eh ; '~'
|
||
out dx, al
|
||
pop bp
|
||
retf
|
||
sub_D184 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
public _grcg_off_func
|
||
_grcg_off_func proc far
|
||
push bp
|
||
mov bp, sp
|
||
GRCG_OFF_CLOBBERING dx
|
||
pop bp
|
||
retf
|
||
_grcg_off_func endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D1D9 proc far
|
||
|
||
arg_0 = dword ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
xor si, si
|
||
jmp short loc_D21A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D1E1:
|
||
mov ax, si
|
||
imul ax, 3
|
||
les bx, [bp+arg_0]
|
||
add bx, ax
|
||
mov al, es:[bx+2]
|
||
cbw
|
||
push ax
|
||
mov ax, si
|
||
imul ax, 3
|
||
mov bx, word ptr [bp+arg_0]
|
||
add bx, ax
|
||
mov al, es:[bx+1]
|
||
cbw
|
||
push ax
|
||
mov ax, si
|
||
imul ax, 3
|
||
mov bx, word ptr [bp+arg_0]
|
||
add bx, ax
|
||
mov al, es:[bx]
|
||
cbw
|
||
push ax
|
||
push si
|
||
nopcall sub_D222
|
||
add sp, 8
|
||
inc si
|
||
|
||
loc_D21A:
|
||
cmp si, 10h
|
||
jl short loc_D1E1
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_D1D9 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D222 proc far
|
||
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
arg_6 = word ptr 0Ch
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
mov si, [bp+arg_0]
|
||
cmp [bp+arg_2], 0Fh
|
||
jge short loc_D234
|
||
mov ax, [bp+arg_2]
|
||
jmp short loc_D237
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D234:
|
||
mov ax, 0Fh
|
||
|
||
loc_D237:
|
||
or ax, ax
|
||
jle short loc_D24B
|
||
cmp [bp+arg_2], 0Fh
|
||
jge short loc_D246
|
||
mov ax, [bp+arg_2]
|
||
jmp short loc_D249
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D246:
|
||
mov ax, 0Fh
|
||
|
||
loc_D249:
|
||
jmp short loc_D24D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D24B:
|
||
xor ax, ax
|
||
|
||
loc_D24D:
|
||
mov [bp+arg_2], ax
|
||
cmp [bp+arg_4], 0Fh
|
||
jge short loc_D25B
|
||
mov ax, [bp+arg_4]
|
||
jmp short loc_D25E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D25B:
|
||
mov ax, 0Fh
|
||
|
||
loc_D25E:
|
||
or ax, ax
|
||
jle short loc_D272
|
||
cmp [bp+arg_4], 0Fh
|
||
jge short loc_D26D
|
||
mov ax, [bp+arg_4]
|
||
jmp short loc_D270
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D26D:
|
||
mov ax, 0Fh
|
||
|
||
loc_D270:
|
||
jmp short loc_D274
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D272:
|
||
xor ax, ax
|
||
|
||
loc_D274:
|
||
mov [bp+arg_4], ax
|
||
cmp [bp+arg_6], 0Fh
|
||
jge short loc_D282
|
||
mov ax, [bp+arg_6]
|
||
jmp short loc_D285
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D282:
|
||
mov ax, 0Fh
|
||
|
||
loc_D285:
|
||
or ax, ax
|
||
jle short loc_D299
|
||
cmp [bp+arg_6], 0Fh
|
||
jge short loc_D294
|
||
mov ax, [bp+arg_6]
|
||
jmp short loc_D297
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D294:
|
||
mov ax, 0Fh
|
||
|
||
loc_D297:
|
||
jmp short loc_D29B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D299:
|
||
xor ax, ax
|
||
|
||
loc_D29B:
|
||
mov [bp+arg_6], ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, byte ptr [bp+arg_2]
|
||
mov [bx+0A1Ah], al
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, byte ptr [bp+arg_4]
|
||
mov [bx+0A1Bh], al
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, byte ptr [bp+arg_6]
|
||
mov [bx+0A1Ch], al
|
||
push [bp+arg_6]
|
||
push [bp+arg_4]
|
||
push [bp+arg_2]
|
||
push si
|
||
call sub_D119
|
||
add sp, 8
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_D222 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D2D6 proc far
|
||
|
||
_s = dword ptr -4
|
||
|
||
enter 4, 0
|
||
mov [bp+_s], 0A8000000h
|
||
push 0
|
||
call _grcg_setcolor_rmw
|
||
push 7D0000FFh ; c
|
||
pushd [bp+_s] ; s
|
||
call _memset
|
||
add sp, 0Ah
|
||
call _grcg_off_func
|
||
leave
|
||
retf
|
||
sub_D2D6 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D300 proc far
|
||
push bp
|
||
mov bp, sp
|
||
push 2
|
||
call _graph_accesspage_func
|
||
call sub_D2D6
|
||
push 2
|
||
call _graph_accesspage_func
|
||
add sp, 4
|
||
call sub_D2D6
|
||
pop bp
|
||
retf
|
||
sub_D300 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D31C proc far
|
||
|
||
_s = dword ptr -4
|
||
arg_0 = byte ptr 6
|
||
|
||
enter 4, 0
|
||
mov [bp+_s], 0A8000000h
|
||
mov al, [bp+arg_0]
|
||
cbw
|
||
push ax
|
||
call _grcg_setcolor_rmw
|
||
push 7D0000FFh ; c
|
||
pushd [bp+_s] ; s
|
||
call _memset
|
||
add sp, 0Ah
|
||
call _grcg_off_func
|
||
leave
|
||
retf
|
||
sub_D31C endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D349 proc far
|
||
|
||
var_152 = byte ptr -152h
|
||
var_102 = byte ptr -102h
|
||
var_B2 = byte ptr -0B2h
|
||
dest = byte ptr -62h
|
||
@@page_other = byte ptr -11h
|
||
var_10 = dword ptr -10h
|
||
var_C = dword ptr -0Ch
|
||
var_8 = dword ptr -8
|
||
_src = dword ptr -4
|
||
|
||
enter 152h, 0
|
||
push si
|
||
mov [bp+_src], 0A8000000h
|
||
mov [bp+var_8], 0B0000000h
|
||
mov [bp+var_C], 0B8000000h
|
||
mov [bp+var_10], 0E0000000h
|
||
mov al, _graph_page
|
||
xor al, 1
|
||
mov [bp+@@page_other], al
|
||
xor si, si
|
||
jmp loc_D426
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D37B:
|
||
push 50h ; 'P' ; n
|
||
pushd [bp+_src] ; src
|
||
push ss
|
||
lea ax, [bp+dest]
|
||
push ax ; dest
|
||
call _memcpy
|
||
push 50h ; 'P' ; n
|
||
pushd [bp+var_8] ; src
|
||
push ss
|
||
lea ax, [bp+var_B2]
|
||
push ax ; dest
|
||
call _memcpy
|
||
push 50h ; 'P' ; n
|
||
pushd [bp+var_C] ; src
|
||
push ss
|
||
lea ax, [bp+var_102]
|
||
push ax ; dest
|
||
call _memcpy
|
||
push 50h ; 'P' ; n
|
||
pushd [bp+var_10] ; src
|
||
push ss
|
||
lea ax, [bp+var_152]
|
||
push ax ; dest
|
||
call _memcpy
|
||
graph_accesspage [bp+@@page_other]
|
||
push 50h ; 'P' ; n
|
||
push ss
|
||
lea ax, [bp+dest]
|
||
push ax ; src
|
||
pushd [bp+_src] ; dest
|
||
call _memcpy
|
||
add sp, 32h
|
||
push 50h ; 'P' ; n
|
||
push ss
|
||
lea ax, [bp+var_B2]
|
||
push ax ; src
|
||
pushd [bp+var_8] ; dest
|
||
call _memcpy
|
||
push 50h ; 'P' ; n
|
||
push ss
|
||
lea ax, [bp+var_102]
|
||
push ax ; src
|
||
pushd [bp+var_C] ; dest
|
||
call _memcpy
|
||
push 50h ; 'P' ; n
|
||
push ss
|
||
lea ax, [bp+var_152]
|
||
push ax ; src
|
||
pushd [bp+var_10] ; dest
|
||
call _memcpy
|
||
add sp, 1Eh
|
||
graph_accesspage _graph_page
|
||
add word ptr [bp+_src], 50h ; 'P'
|
||
add word ptr [bp+var_8], 50h ; 'P'
|
||
add word ptr [bp+var_C], 50h ; 'P'
|
||
add word ptr [bp+var_10], 50h ; 'P'
|
||
inc si
|
||
|
||
loc_D426:
|
||
cmp si, 190h
|
||
jl loc_D37B
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_D349 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D431 proc far
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
xor si, si
|
||
jmp short loc_D447
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D439:
|
||
pushd 0
|
||
push 0
|
||
push si
|
||
call sub_D119
|
||
add sp, 8
|
||
inc si
|
||
|
||
loc_D447:
|
||
cmp si, 10h
|
||
jl short loc_D439
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_D431 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D44F proc far
|
||
|
||
_s = byte ptr -32h
|
||
var_31 = byte ptr -31h
|
||
var_30 = byte ptr -30h
|
||
var_2 = word ptr -2
|
||
|
||
enter 32h, 0
|
||
push si
|
||
push di
|
||
push 300000h ; c
|
||
push ss
|
||
lea ax, [bp+_s]
|
||
push ax ; s
|
||
call _memset
|
||
add sp, 8
|
||
mov [bp+var_2], 0
|
||
jmp loc_D4F2
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D470:
|
||
call _z_vsync_wait
|
||
xor si, si
|
||
jmp short loc_D4E2
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D479:
|
||
xor di, di
|
||
jmp short loc_D4A7
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D47D:
|
||
mov bx, si
|
||
imul bx, 3
|
||
add bx, di
|
||
lea ax, [bp+_s]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
mov bx, si
|
||
imul bx, 3
|
||
cmp al, [bx+di+0A1Ah]
|
||
jge short loc_D4A6
|
||
mov bx, si
|
||
imul bx, 3
|
||
add bx, di
|
||
lea ax, [bp+_s]
|
||
add bx, ax
|
||
inc byte ptr ss:[bx]
|
||
|
||
loc_D4A6:
|
||
inc di
|
||
|
||
loc_D4A7:
|
||
cmp di, 3
|
||
jl short loc_D47D
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp+var_30]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp+var_31]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp+_s]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
push si
|
||
call sub_D119
|
||
add sp, 8
|
||
inc si
|
||
|
||
loc_D4E2:
|
||
cmp si, 10h
|
||
jl short loc_D479
|
||
push 0Ah
|
||
call _delay
|
||
pop cx
|
||
inc [bp+var_2]
|
||
|
||
loc_D4F2:
|
||
cmp [bp+var_2], 10h
|
||
jl loc_D470
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_D44F endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D4FE proc far
|
||
|
||
dest = byte ptr -32h
|
||
var_31 = byte ptr -31h
|
||
var_30 = byte ptr -30h
|
||
var_2 = word ptr -2
|
||
|
||
enter 32h, 0
|
||
push si
|
||
push di
|
||
push 30h ; '0' ; n
|
||
push ds
|
||
push offset unk_134BA ; src
|
||
push ss
|
||
lea ax, [bp+dest]
|
||
push ax ; dest
|
||
call _memcpy
|
||
add sp, 0Ah
|
||
mov [bp+var_2], 0
|
||
jmp short loc_D595
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D51E:
|
||
call _z_vsync_wait
|
||
xor si, si
|
||
jmp short loc_D585
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D527:
|
||
xor di, di
|
||
jmp short loc_D54A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D52B:
|
||
mov bx, si
|
||
imul bx, 3
|
||
add bx, di
|
||
lea ax, [bp+dest]
|
||
add bx, ax
|
||
cmp byte ptr ss:[bx], 0
|
||
jle short loc_D549
|
||
mov bx, si
|
||
imul bx, 3
|
||
add bx, di
|
||
add bx, ax
|
||
dec byte ptr ss:[bx]
|
||
|
||
loc_D549:
|
||
inc di
|
||
|
||
loc_D54A:
|
||
cmp di, 3
|
||
jl short loc_D52B
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp+var_30]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp+var_31]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp+dest]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
push si
|
||
call sub_D119
|
||
add sp, 8
|
||
inc si
|
||
|
||
loc_D585:
|
||
cmp si, 10h
|
||
jl short loc_D527
|
||
push 0Ah
|
||
call _delay
|
||
pop cx
|
||
inc [bp+var_2]
|
||
|
||
loc_D595:
|
||
cmp [bp+var_2], 10h
|
||
jl short loc_D51E
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_D4FE endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D59F proc far
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
xor si, si
|
||
jmp short loc_D5B8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D5A7:
|
||
push 0F000Fh
|
||
push 0Fh
|
||
push si
|
||
call sub_D119
|
||
add sp, 8
|
||
inc si
|
||
|
||
loc_D5B8:
|
||
cmp si, 10h
|
||
jl short loc_D5A7
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_D59F endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D5C0 proc far
|
||
|
||
_s = byte ptr -32h
|
||
var_31 = byte ptr -31h
|
||
var_30 = byte ptr -30h
|
||
var_2 = word ptr -2
|
||
|
||
enter 32h, 0
|
||
push si
|
||
push di
|
||
push 30000Fh ; c
|
||
push ss
|
||
lea ax, [bp+_s]
|
||
push ax ; s
|
||
call _memset
|
||
add sp, 8
|
||
mov [bp+var_2], 0
|
||
jmp loc_D663
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D5E1:
|
||
call _z_vsync_wait
|
||
xor si, si
|
||
jmp short loc_D653
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D5EA:
|
||
xor di, di
|
||
jmp short loc_D618
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D5EE:
|
||
mov bx, si
|
||
imul bx, 3
|
||
add bx, di
|
||
lea ax, [bp+_s]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
mov bx, si
|
||
imul bx, 3
|
||
cmp al, [bx+di+0A1Ah]
|
||
jle short loc_D617
|
||
mov bx, si
|
||
imul bx, 3
|
||
add bx, di
|
||
lea ax, [bp+_s]
|
||
add bx, ax
|
||
dec byte ptr ss:[bx]
|
||
|
||
loc_D617:
|
||
inc di
|
||
|
||
loc_D618:
|
||
cmp di, 3
|
||
jl short loc_D5EE
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp+var_30]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp+var_31]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp+_s]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
push si
|
||
call sub_D119
|
||
add sp, 8
|
||
inc si
|
||
|
||
loc_D653:
|
||
cmp si, 10h
|
||
jl short loc_D5EA
|
||
push 0Ah
|
||
call _delay
|
||
pop cx
|
||
inc [bp+var_2]
|
||
|
||
loc_D663:
|
||
cmp [bp+var_2], 10h
|
||
jl loc_D5E1
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_D5C0 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D66F proc far
|
||
|
||
dest = byte ptr -32h
|
||
var_31 = byte ptr -31h
|
||
var_30 = byte ptr -30h
|
||
var_2 = word ptr -2
|
||
|
||
enter 32h, 0
|
||
push si
|
||
push di
|
||
push 30h ; '0' ; n
|
||
push ds
|
||
push offset unk_134BA ; src
|
||
push ss
|
||
lea ax, [bp+dest]
|
||
push ax ; dest
|
||
call _memcpy
|
||
add sp, 0Ah
|
||
mov [bp+var_2], 0
|
||
jmp short loc_D706
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D68F:
|
||
call _z_vsync_wait
|
||
xor si, si
|
||
jmp short loc_D6F6
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D698:
|
||
xor di, di
|
||
jmp short loc_D6BB
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D69C:
|
||
mov bx, si
|
||
imul bx, 3
|
||
add bx, di
|
||
lea ax, [bp+dest]
|
||
add bx, ax
|
||
cmp byte ptr ss:[bx], 0Fh
|
||
jge short loc_D6BA
|
||
mov bx, si
|
||
imul bx, 3
|
||
add bx, di
|
||
add bx, ax
|
||
inc byte ptr ss:[bx]
|
||
|
||
loc_D6BA:
|
||
inc di
|
||
|
||
loc_D6BB:
|
||
cmp di, 3
|
||
jl short loc_D69C
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp+var_30]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp+var_31]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp+dest]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
push si
|
||
call sub_D119
|
||
add sp, 8
|
||
inc si
|
||
|
||
loc_D6F6:
|
||
cmp si, 10h
|
||
jl short loc_D698
|
||
push 0Ah
|
||
call _delay
|
||
pop cx
|
||
inc [bp+var_2]
|
||
|
||
loc_D706:
|
||
cmp [bp+var_2], 10h
|
||
jl short loc_D68F
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_D66F endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D710 proc far
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
xor si, si
|
||
jmp short loc_D742
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D718:
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, [bx+0A1Ch]
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, [bx+0A1Bh]
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, [bx+0A1Ah]
|
||
cbw
|
||
push ax
|
||
push si
|
||
call sub_D119
|
||
add sp, 8
|
||
inc si
|
||
|
||
loc_D742:
|
||
cmp si, 10h
|
||
jl short loc_D718
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_D710 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D74A proc far
|
||
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push [bp+arg_4]
|
||
call _grcg_setcolor_rmw
|
||
pop cx
|
||
mov bx, [bp+arg_2]
|
||
imul bx, 50h
|
||
mov ax, [bp+arg_0]
|
||
sar ax, 3
|
||
add bx, ax
|
||
mov ax, 0A800h
|
||
mov cl, byte ptr [bp+arg_0]
|
||
and cl, 7
|
||
mov dx, 80h
|
||
sar dx, cl
|
||
mov es, ax
|
||
assume es:nothing
|
||
mov es:[bx], dl
|
||
call _grcg_off_func
|
||
pop bp
|
||
retf
|
||
sub_D74A endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D77C proc far
|
||
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
|
||
enter 2, 0
|
||
push si
|
||
push di
|
||
mov ax, [bp+arg_2]
|
||
imul ax, 50h
|
||
mov dx, [bp+arg_0]
|
||
sar dx, 3
|
||
add ax, dx
|
||
mov di, ax
|
||
mov cl, byte ptr [bp+arg_0]
|
||
and cl, 7
|
||
mov ax, 80h
|
||
sar ax, cl
|
||
mov [bp+var_2], ax
|
||
xor si, si
|
||
mov ax, 0A800h
|
||
mov es, ax
|
||
mov al, es:[di]
|
||
cbw
|
||
test [bp+var_2], ax
|
||
jz short loc_D7B3
|
||
or si, 1
|
||
|
||
loc_D7B3:
|
||
mov ax, 0B000h
|
||
mov es, ax
|
||
assume es:nothing
|
||
mov al, es:[di]
|
||
cbw
|
||
test [bp+var_2], ax
|
||
jz short loc_D7C4
|
||
or si, 2
|
||
|
||
loc_D7C4:
|
||
mov ax, 0B800h
|
||
mov es, ax
|
||
assume es:nothing
|
||
mov al, es:[di]
|
||
cbw
|
||
test [bp+var_2], ax
|
||
jz short loc_D7D5
|
||
or si, 4
|
||
|
||
loc_D7D5:
|
||
mov ax, 0E000h
|
||
mov es, ax
|
||
assume es:nothing
|
||
mov al, es:[di]
|
||
cbw
|
||
test [bp+var_2], ax
|
||
jz short loc_D7E6
|
||
or si, 8
|
||
|
||
loc_D7E6:
|
||
mov ax, si
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_D77C endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D7EC proc far
|
||
|
||
var_A = dword ptr -0Ah
|
||
var_6 = byte ptr -6
|
||
var_5 = byte ptr -5
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
arg_6 = word ptr 0Ch
|
||
|
||
enter 0Ah, 0
|
||
push si
|
||
push di
|
||
mov di, [bp+arg_4]
|
||
mov ax, [bp+arg_0]
|
||
cmp ax, [bp+arg_2]
|
||
jle short loc_D80C
|
||
mov [bp+var_4], ax
|
||
mov ax, [bp+arg_2]
|
||
mov [bp+arg_0], ax
|
||
mov ax, [bp+var_4]
|
||
mov [bp+arg_2], ax
|
||
|
||
loc_D80C:
|
||
cmp [bp+arg_0], 0
|
||
jge short loc_D81F
|
||
cmp [bp+arg_2], 0
|
||
jl loc_D8FB
|
||
mov [bp+arg_0], 0
|
||
|
||
loc_D81F:
|
||
cmp [bp+arg_2], 27Fh
|
||
jle short loc_D834
|
||
cmp [bp+arg_0], 27Fh
|
||
jg loc_D8FB
|
||
mov [bp+arg_2], 27Fh
|
||
|
||
loc_D834:
|
||
mov ax, [bp+arg_2]
|
||
mov word_14154, ax
|
||
mov word_14156, di
|
||
mov ax, di
|
||
imul ax, 50h
|
||
push ax
|
||
mov ax, [bp+arg_0]
|
||
mov bx, 8
|
||
cwd
|
||
idiv bx
|
||
pop dx
|
||
add dx, ax
|
||
mov word ptr [bp+var_A+2], 0A800h
|
||
mov word ptr [bp+var_A], dx
|
||
mov ax, [bp+arg_2]
|
||
cwd
|
||
idiv bx
|
||
push ax
|
||
mov ax, [bp+arg_0]
|
||
cwd
|
||
idiv bx
|
||
pop dx
|
||
sub dx, ax
|
||
mov [bp+var_2], dx
|
||
mov cl, byte ptr [bp+arg_0]
|
||
and cl, 7
|
||
mov ax, 0FFh
|
||
sar ax, cl
|
||
mov [bp+var_5], al
|
||
mov al, byte ptr [bp+arg_2]
|
||
and al, 7
|
||
mov cl, 7
|
||
sub cl, al
|
||
mov al, 0FFh
|
||
shl al, cl
|
||
mov [bp+var_6], al
|
||
cmp byte_134EA, 0
|
||
jnz short loc_D898
|
||
push [bp+arg_6]
|
||
call _grcg_setcolor_rmw
|
||
pop cx
|
||
|
||
loc_D898:
|
||
cmp byte_134EA, 0
|
||
jz short loc_D8B6
|
||
push 1
|
||
mov ax, 280h
|
||
sub ax, [bp+arg_0]
|
||
push ax
|
||
push di
|
||
push [bp+arg_0]
|
||
call _egc_copy_rect_1_to_0
|
||
add sp, 8
|
||
jmp short loc_D8F0
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D8B6:
|
||
cmp [bp+var_2], 0
|
||
jnz short loc_D8C7
|
||
mov al, [bp+var_5]
|
||
and al, [bp+var_6]
|
||
les bx, [bp+var_A]
|
||
assume es:nothing
|
||
jmp short loc_D8ED
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D8C7:
|
||
les bx, [bp+var_A]
|
||
mov al, [bp+var_5]
|
||
mov es:[bx], al
|
||
mov si, 1
|
||
jmp short loc_D8DF
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D8D5:
|
||
les bx, [bp+var_A]
|
||
add bx, si
|
||
mov byte ptr es:[bx], 0FFh
|
||
inc si
|
||
|
||
loc_D8DF:
|
||
cmp si, [bp+var_2]
|
||
jl short loc_D8D5
|
||
les bx, [bp+var_A]
|
||
add bx, [bp+var_2]
|
||
mov al, [bp+var_6]
|
||
|
||
loc_D8ED:
|
||
mov es:[bx], al
|
||
|
||
loc_D8F0:
|
||
cmp byte_134EA, 0
|
||
jnz short loc_D8FB
|
||
call _grcg_off_func
|
||
|
||
loc_D8FB:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_D7EC endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D8FF proc far
|
||
|
||
var_8 = word ptr -8
|
||
var_6 = word ptr -6
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
arg_6 = word ptr 0Ch
|
||
|
||
enter 8, 0
|
||
push si
|
||
push di
|
||
mov si, [bp+arg_2]
|
||
mov di, [bp+arg_4]
|
||
cmp si, di
|
||
jle short loc_D917
|
||
mov [bp+var_4], si
|
||
mov si, di
|
||
mov di, [bp+var_4]
|
||
|
||
loc_D917:
|
||
or si, si
|
||
jge short loc_D923
|
||
or di, di
|
||
jl loc_D9BA
|
||
xor si, si
|
||
|
||
loc_D923:
|
||
cmp di, 18Fh
|
||
jle short loc_D934
|
||
cmp si, 18Fh
|
||
jg loc_D9BA
|
||
mov di, 18Fh
|
||
|
||
loc_D934:
|
||
mov ax, [bp+arg_0]
|
||
mov word_14154, ax
|
||
mov word_14156, di
|
||
cmp byte_134EA, 0
|
||
jz short loc_D95A
|
||
mov ax, di
|
||
sub ax, si
|
||
push ax
|
||
push 10h
|
||
push si
|
||
push [bp+arg_0]
|
||
call _egc_copy_rect_1_to_0
|
||
add sp, 8
|
||
jmp short loc_D9BA
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D95A:
|
||
mov ax, [bp+arg_0]
|
||
sar ax, 3
|
||
mov dx, si
|
||
shl dx, 6
|
||
add ax, dx
|
||
mov dx, si
|
||
shl dx, 4
|
||
add ax, dx
|
||
mov [bp+var_8], ax
|
||
mov cl, byte ptr [bp+arg_0]
|
||
and cl, 7
|
||
mov ax, word_134EB
|
||
shr ax, cl
|
||
mov [bp+var_6], ax
|
||
mov al, byte ptr [bp+arg_0]
|
||
and al, 7
|
||
mov cl, 10h
|
||
sub cl, al
|
||
mov ax, word_134EB
|
||
shl ax, cl
|
||
or [bp+var_6], ax
|
||
push [bp+arg_6]
|
||
call _grcg_setcolor_rmw
|
||
pop cx
|
||
mov [bp+var_2], si
|
||
jmp short loc_D9B1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D99D:
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, [bp+var_8]
|
||
mov ax, [bp+var_6]
|
||
mov es:[bx], ax
|
||
add [bp+var_8], 50h ; 'P'
|
||
inc [bp+var_2]
|
||
|
||
loc_D9B1:
|
||
cmp [bp+var_2], di
|
||
jle short loc_D99D
|
||
call _grcg_off_func
|
||
|
||
loc_D9BA:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_D8FF endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D9BE proc far
|
||
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
arg_6 = word ptr 0Ch
|
||
|
||
push bp
|
||
mov bp, sp
|
||
mov byte_134EA, 1
|
||
push 7
|
||
push [bp+arg_6]
|
||
push [bp+arg_4]
|
||
push [bp+arg_2]
|
||
push [bp+arg_0]
|
||
nopcall sub_DA0B
|
||
add sp, 0Ah
|
||
mov byte_134EA, 0
|
||
pop bp
|
||
retf
|
||
sub_D9BE endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D9E3 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
|
||
arg_A = word ptr 10h
|
||
|
||
push bp
|
||
mov bp, sp
|
||
mov ax, [bp+arg_A]
|
||
mov word_134EB, ax
|
||
push [bp+arg_8]
|
||
push [bp+arg_6]
|
||
push [bp+arg_4]
|
||
push [bp+arg_2]
|
||
push [bp+arg_0]
|
||
nopcall sub_DA0B
|
||
add sp, 0Ah
|
||
mov word_134EB, 80h
|
||
pop bp
|
||
retf
|
||
sub_D9E3 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_DA0B proc far
|
||
|
||
var_28 = dword ptr -28h
|
||
var_24 = dword ptr -24h
|
||
var_20 = dword ptr -20h
|
||
var_1C = dword ptr -1Ch
|
||
var_18 = word ptr -18h
|
||
var_16 = word ptr -16h
|
||
var_14 = word ptr -14h
|
||
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 = word ptr -8
|
||
var_6 = word ptr -6
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
arg_6 = word ptr 0Ch
|
||
arg_8 = word ptr 0Eh
|
||
|
||
enter 28h, 0
|
||
push si
|
||
push di
|
||
mov di, [bp+arg_2]
|
||
cmp byte_134EA, 0
|
||
jnz short loc_DA31
|
||
mov ax, [bp+arg_0]
|
||
cmp ax, [bp+arg_4]
|
||
jnz short loc_DA31
|
||
push [bp+arg_8]
|
||
push [bp+arg_6]
|
||
push di
|
||
push ax
|
||
call sub_D8FF
|
||
jmp short loc_DA4B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DA31:
|
||
cmp byte_134EA, 0
|
||
jnz short loc_DA51
|
||
cmp di, [bp+arg_6]
|
||
jnz short loc_DA51
|
||
push [bp+arg_8]
|
||
push di
|
||
push [bp+arg_4]
|
||
push [bp+arg_0]
|
||
call sub_D7EC
|
||
|
||
loc_DA4B:
|
||
add sp, 8
|
||
jmp loc_DF36
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DA51:
|
||
mov ax, [bp+arg_0]
|
||
cmp ax, [bp+arg_4]
|
||
jle short loc_DA74
|
||
mov [bp+var_10], ax
|
||
mov ax, [bp+arg_4]
|
||
mov [bp+arg_0], ax
|
||
mov ax, [bp+var_10]
|
||
mov [bp+arg_4], ax
|
||
mov [bp+var_10], di
|
||
mov di, [bp+arg_6]
|
||
mov ax, [bp+var_10]
|
||
mov [bp+arg_6], ax
|
||
|
||
loc_DA74:
|
||
cmp [bp+arg_0], 0
|
||
jge short loc_DAB2
|
||
cmp [bp+arg_4], 0
|
||
jl loc_DF36
|
||
mov ax, [bp+arg_6]
|
||
sub ax, di
|
||
mov bx, [bp+arg_4]
|
||
sub bx, [bp+arg_0]
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_18], ax
|
||
fild [bp+var_18]
|
||
xor ax, ax
|
||
sub ax, [bp+arg_0]
|
||
mov [bp+var_18], ax
|
||
fild [bp+var_18]
|
||
fmulp st(1), st
|
||
call ftol@
|
||
add di, ax
|
||
mov [bp+arg_0], 0
|
||
|
||
loc_DAB2:
|
||
cmp [bp+arg_4], 27Fh
|
||
jle short loc_DAF4
|
||
cmp [bp+arg_0], 27Fh
|
||
jg loc_DF36
|
||
mov ax, [bp+arg_6]
|
||
sub ax, di
|
||
mov bx, [bp+arg_4]
|
||
sub bx, [bp+arg_0]
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_18], ax
|
||
fild [bp+var_18]
|
||
mov ax, [bp+arg_4]
|
||
add ax, 0FD81h
|
||
mov [bp+var_18], ax
|
||
fild [bp+var_18]
|
||
fmulp st(1), st
|
||
call ftol@
|
||
sub [bp+arg_6], ax
|
||
mov [bp+arg_4], 27Fh
|
||
|
||
loc_DAF4:
|
||
or di, di
|
||
jge short loc_DB2D
|
||
cmp [bp+arg_6], 0
|
||
jl loc_DF36
|
||
mov ax, [bp+arg_4]
|
||
sub ax, [bp+arg_0]
|
||
mov bx, [bp+arg_6]
|
||
sub bx, di
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_18], ax
|
||
fild [bp+var_18]
|
||
xor ax, ax
|
||
sub ax, di
|
||
mov [bp+var_18], ax
|
||
fild [bp+var_18]
|
||
fmulp st(1), st
|
||
call ftol@
|
||
add [bp+arg_0], ax
|
||
xor di, di
|
||
|
||
loc_DB2D:
|
||
cmp [bp+arg_6], 18Fh
|
||
jle short loc_DB6E
|
||
cmp di, 18Fh
|
||
jg loc_DF36
|
||
mov ax, [bp+arg_4]
|
||
sub ax, [bp+arg_0]
|
||
mov bx, [bp+arg_6]
|
||
sub bx, di
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_18], ax
|
||
fild [bp+var_18]
|
||
mov ax, [bp+arg_6]
|
||
add ax, 0FE71h
|
||
mov [bp+var_18], ax
|
||
fild [bp+var_18]
|
||
fmulp st(1), st
|
||
call ftol@
|
||
sub [bp+arg_4], ax
|
||
mov [bp+arg_6], 18Fh
|
||
|
||
loc_DB6E:
|
||
cmp [bp+arg_6], 0
|
||
jge short loc_DBA5
|
||
mov ax, [bp+arg_4]
|
||
sub ax, [bp+arg_0]
|
||
mov bx, [bp+arg_6]
|
||
sub bx, di
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_18], ax
|
||
fild [bp+var_18]
|
||
xor ax, ax
|
||
sub ax, [bp+arg_6]
|
||
mov [bp+var_18], ax
|
||
fild [bp+var_18]
|
||
fmulp st(1), st
|
||
call ftol@
|
||
add [bp+arg_4], ax
|
||
mov [bp+arg_6], 0
|
||
|
||
loc_DBA5:
|
||
cmp di, 18Fh
|
||
jle short loc_DBD9
|
||
mov ax, [bp+arg_4]
|
||
sub ax, [bp+arg_0]
|
||
mov bx, [bp+arg_6]
|
||
sub bx, di
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_18], ax
|
||
fild [bp+var_18]
|
||
lea ax, [di-18Fh]
|
||
mov [bp+var_18], ax
|
||
fild [bp+var_18]
|
||
fmulp st(1), st
|
||
call ftol@
|
||
sub [bp+arg_0], ax
|
||
mov di, 18Fh
|
||
|
||
loc_DBD9:
|
||
mov ax, [bp+arg_4]
|
||
mov word_14154, ax
|
||
mov ax, [bp+arg_6]
|
||
mov word_14156, ax
|
||
mov ax, [bp+arg_0]
|
||
mov [bp+var_4], ax
|
||
mov [bp+var_6], di
|
||
cmp di, [bp+arg_6]
|
||
jge short loc_DBF8
|
||
mov ax, 1
|
||
jmp short loc_DBFB
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DBF8:
|
||
mov ax, 0FFFFh
|
||
|
||
loc_DBFB:
|
||
mov [bp+var_E], ax
|
||
mov ax, [bp+arg_4]
|
||
sub ax, [bp+arg_0]
|
||
mov [bp+var_8], ax
|
||
mov ax, [bp+arg_6]
|
||
sub ax, di
|
||
imul [bp+var_E]
|
||
mov [bp+var_A], ax
|
||
mov [bp+var_16], 0
|
||
mov ax, [bp+var_4]
|
||
sar ax, 3
|
||
mov [bp+var_12], ax
|
||
mov ax, [bp+var_6]
|
||
mov [bp+var_14], ax
|
||
cmp byte_134EA, 0
|
||
jnz short loc_DC35
|
||
push [bp+arg_8]
|
||
call _grcg_setcolor_rmw
|
||
pop cx
|
||
|
||
loc_DC35:
|
||
mov ax, [bp+var_8]
|
||
cmp ax, [bp+var_A]
|
||
jle loc_DD69
|
||
sar ax, 1
|
||
mov [bp+var_C], ax
|
||
mov [bp+var_2], 0
|
||
jmp loc_DD53
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DC4C:
|
||
mov ax, [bp+var_4]
|
||
sar ax, 3
|
||
cmp ax, [bp+var_12]
|
||
jnz short loc_DC61
|
||
mov ax, [bp+var_14]
|
||
cmp ax, [bp+var_6]
|
||
jz loc_DD16
|
||
|
||
loc_DC61:
|
||
mov ax, [bp+var_14]
|
||
imul ax, 50h
|
||
add ax, [bp+var_12]
|
||
mov si, ax
|
||
cmp byte_134EA, 0
|
||
jnz short loc_DC87
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, si
|
||
mov ax, [bp+var_16]
|
||
mov es:[bx], ax
|
||
mov [bp+var_16], 0
|
||
jmp loc_DD07
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DC87:
|
||
dec si
|
||
push 1
|
||
call _graph_accesspage_func
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov [bp+var_28], eax
|
||
les bx, _VRAM_PLANE_R
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov [bp+var_24], eax
|
||
les bx, _VRAM_PLANE_G
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov [bp+var_20], eax
|
||
les bx, _VRAM_PLANE_E
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov [bp+var_1C], eax
|
||
push 0
|
||
call _graph_accesspage_func
|
||
add sp, 4
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, si
|
||
mov eax, [bp+var_28]
|
||
mov es:[bx], eax
|
||
les bx, _VRAM_PLANE_R
|
||
add bx, si
|
||
mov eax, [bp+var_24]
|
||
mov es:[bx], eax
|
||
les bx, _VRAM_PLANE_G
|
||
add bx, si
|
||
mov eax, [bp+var_20]
|
||
mov es:[bx], eax
|
||
les bx, _VRAM_PLANE_E
|
||
add bx, si
|
||
mov eax, [bp+var_1C]
|
||
mov es:[bx], eax
|
||
|
||
loc_DD07:
|
||
mov ax, [bp+var_6]
|
||
mov [bp+var_14], ax
|
||
mov ax, [bp+var_4]
|
||
sar ax, 3
|
||
mov [bp+var_12], ax
|
||
|
||
loc_DD16:
|
||
mov cl, byte ptr [bp+var_4]
|
||
and cl, 7
|
||
mov ax, word_134EB
|
||
shr ax, cl
|
||
or [bp+var_16], ax
|
||
mov al, byte ptr [bp+var_4]
|
||
and al, 7
|
||
mov cl, 10h
|
||
sub cl, al
|
||
mov ax, word_134EB
|
||
shl ax, cl
|
||
or [bp+var_16], ax
|
||
mov ax, [bp+var_A]
|
||
sub [bp+var_C], ax
|
||
inc [bp+var_4]
|
||
cmp [bp+var_C], 0
|
||
jge short loc_DD50
|
||
mov ax, [bp+var_8]
|
||
add [bp+var_C], ax
|
||
mov ax, [bp+var_E]
|
||
add [bp+var_6], ax
|
||
|
||
loc_DD50:
|
||
inc [bp+var_2]
|
||
|
||
loc_DD53:
|
||
mov ax, [bp+var_2]
|
||
cmp ax, [bp+var_8]
|
||
jle loc_DC4C
|
||
cmp byte_134EA, 0
|
||
jz loc_DF2B
|
||
jmp loc_DE93
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DD69:
|
||
mov ax, [bp+var_A]
|
||
sar ax, 1
|
||
mov [bp+var_C], ax
|
||
mov [bp+var_2], 0
|
||
jmp loc_DE80
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DD79:
|
||
mov ax, [bp+var_4]
|
||
sar ax, 3
|
||
cmp ax, [bp+var_12]
|
||
jnz short loc_DD8E
|
||
mov ax, [bp+var_14]
|
||
cmp ax, [bp+var_6]
|
||
jz loc_DE43
|
||
|
||
loc_DD8E:
|
||
mov ax, [bp+var_14]
|
||
imul ax, 50h
|
||
add ax, [bp+var_12]
|
||
mov si, ax
|
||
cmp byte_134EA, 0
|
||
jnz short loc_DDB4
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, si
|
||
mov ax, [bp+var_16]
|
||
mov es:[bx], ax
|
||
mov [bp+var_16], 0
|
||
jmp loc_DE34
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DDB4:
|
||
dec si
|
||
push 1
|
||
call _graph_accesspage_func
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov [bp+var_28], eax
|
||
les bx, _VRAM_PLANE_R
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov [bp+var_24], eax
|
||
les bx, _VRAM_PLANE_G
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov [bp+var_20], eax
|
||
les bx, _VRAM_PLANE_E
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov [bp+var_1C], eax
|
||
push 0
|
||
call _graph_accesspage_func
|
||
add sp, 4
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, si
|
||
mov eax, [bp+var_28]
|
||
mov es:[bx], eax
|
||
les bx, _VRAM_PLANE_R
|
||
add bx, si
|
||
mov eax, [bp+var_24]
|
||
mov es:[bx], eax
|
||
les bx, _VRAM_PLANE_G
|
||
add bx, si
|
||
mov eax, [bp+var_20]
|
||
mov es:[bx], eax
|
||
les bx, _VRAM_PLANE_E
|
||
add bx, si
|
||
mov eax, [bp+var_1C]
|
||
mov es:[bx], eax
|
||
|
||
loc_DE34:
|
||
mov ax, [bp+var_6]
|
||
mov [bp+var_14], ax
|
||
mov ax, [bp+var_4]
|
||
sar ax, 3
|
||
mov [bp+var_12], ax
|
||
|
||
loc_DE43:
|
||
mov cl, byte ptr [bp+var_4]
|
||
and cl, 7
|
||
mov ax, word_134EB
|
||
shr ax, cl
|
||
or [bp+var_16], ax
|
||
mov al, byte ptr [bp+var_4]
|
||
and al, 7
|
||
mov cl, 10h
|
||
sub cl, al
|
||
mov ax, word_134EB
|
||
shl ax, cl
|
||
or [bp+var_16], ax
|
||
mov ax, [bp+var_8]
|
||
sub [bp+var_C], ax
|
||
mov ax, [bp+var_E]
|
||
add [bp+var_6], ax
|
||
cmp [bp+var_C], 0
|
||
jge short loc_DE7D
|
||
mov ax, [bp+var_A]
|
||
add [bp+var_C], ax
|
||
inc [bp+var_4]
|
||
|
||
loc_DE7D:
|
||
inc [bp+var_2]
|
||
|
||
loc_DE80:
|
||
mov ax, [bp+var_2]
|
||
cmp ax, [bp+var_A]
|
||
jle loc_DD79
|
||
cmp byte_134EA, 0
|
||
jz loc_DF2B
|
||
|
||
loc_DE93:
|
||
mov ax, [bp+var_4]
|
||
sar ax, 3
|
||
mov dx, [bp+var_6]
|
||
shl dx, 6
|
||
add ax, dx
|
||
mov dx, [bp+var_6]
|
||
shl dx, 4
|
||
add ax, dx
|
||
dec ax
|
||
mov si, ax
|
||
push 1
|
||
call _graph_accesspage_func
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov [bp+var_28], eax
|
||
les bx, _VRAM_PLANE_R
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov [bp+var_24], eax
|
||
les bx, _VRAM_PLANE_G
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov [bp+var_20], eax
|
||
les bx, _VRAM_PLANE_E
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov [bp+var_1C], eax
|
||
push 0
|
||
call _graph_accesspage_func
|
||
add sp, 4
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, si
|
||
mov eax, [bp+var_28]
|
||
mov es:[bx], eax
|
||
les bx, _VRAM_PLANE_R
|
||
add bx, si
|
||
mov eax, [bp+var_24]
|
||
mov es:[bx], eax
|
||
les bx, _VRAM_PLANE_G
|
||
add bx, si
|
||
mov eax, [bp+var_20]
|
||
mov es:[bx], eax
|
||
les bx, _VRAM_PLANE_E
|
||
add bx, si
|
||
mov eax, [bp+var_1C]
|
||
mov es:[bx], eax
|
||
|
||
loc_DF2B:
|
||
cmp byte_134EA, 0
|
||
jnz short loc_DF36
|
||
call _grcg_off_func
|
||
|
||
loc_DF36:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_DA0B endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_DF3A proc far
|
||
|
||
var_E = dword ptr -0Eh
|
||
var_A = byte ptr -0Ah
|
||
var_9 = byte ptr -9
|
||
var_8 = word ptr -8
|
||
var_6 = word ptr -6
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
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
|
||
|
||
enter 0Eh, 0
|
||
push si
|
||
push di
|
||
mov si, [bp+arg_2]
|
||
mov di, [bp+arg_6]
|
||
mov ax, [bp+arg_0]
|
||
cmp ax, [bp+arg_4]
|
||
jle short loc_DF5D
|
||
mov [bp+var_8], ax
|
||
mov ax, [bp+arg_4]
|
||
mov [bp+arg_0], ax
|
||
mov ax, [bp+var_8]
|
||
mov [bp+arg_4], ax
|
||
|
||
loc_DF5D:
|
||
cmp si, di
|
||
jle short loc_DF69
|
||
mov [bp+var_8], si
|
||
mov si, di
|
||
mov di, [bp+var_8]
|
||
|
||
loc_DF69:
|
||
cmp [bp+arg_0], 0
|
||
jge short loc_DF7C
|
||
cmp [bp+arg_4], 0
|
||
jl loc_E051
|
||
mov [bp+arg_0], 0
|
||
|
||
loc_DF7C:
|
||
cmp [bp+arg_4], 27Fh
|
||
jle short loc_DF91
|
||
cmp [bp+arg_0], 27Fh
|
||
jg loc_E051
|
||
mov [bp+arg_4], 27Fh
|
||
|
||
loc_DF91:
|
||
or si, si
|
||
jge short loc_DF9D
|
||
or di, di
|
||
jl loc_E051
|
||
xor si, si
|
||
|
||
loc_DF9D:
|
||
cmp di, 18Fh
|
||
jle short loc_DFAE
|
||
cmp si, 18Fh
|
||
jg loc_E051
|
||
mov di, 18Fh
|
||
|
||
loc_DFAE:
|
||
push [bp+arg_8]
|
||
call _grcg_setcolor_rmw
|
||
pop cx
|
||
mov ax, si
|
||
imul ax, 50h
|
||
mov dx, [bp+arg_0]
|
||
sar dx, 3
|
||
add ax, dx
|
||
mov word ptr [bp+var_E+2], 0A800h
|
||
mov word ptr [bp+var_E], ax
|
||
mov [bp+var_4], si
|
||
jmp short loc_E048
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DFD0:
|
||
mov ax, [bp+arg_4]
|
||
sar ax, 3
|
||
mov dx, [bp+arg_0]
|
||
sar dx, 3
|
||
sub ax, dx
|
||
mov [bp+var_6], ax
|
||
mov cl, byte ptr [bp+arg_0]
|
||
and cl, 7
|
||
mov ax, 0FFh
|
||
sar ax, cl
|
||
mov [bp+var_9], al
|
||
mov al, byte ptr [bp+arg_4]
|
||
and al, 7
|
||
mov cl, 7
|
||
sub cl, al
|
||
mov al, 0FFh
|
||
shl al, cl
|
||
mov [bp+var_A], al
|
||
cmp [bp+var_6], 0
|
||
jnz short loc_E010
|
||
mov al, [bp+var_9]
|
||
and al, [bp+var_A]
|
||
les bx, [bp+var_E]
|
||
jmp short loc_E03E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E010:
|
||
les bx, [bp+var_E]
|
||
mov al, [bp+var_9]
|
||
mov es:[bx], al
|
||
mov [bp+var_2], 1
|
||
jmp short loc_E02D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E020:
|
||
les bx, [bp+var_E]
|
||
add bx, [bp+var_2]
|
||
mov byte ptr es:[bx], 0FFh
|
||
inc [bp+var_2]
|
||
|
||
loc_E02D:
|
||
mov ax, [bp+var_2]
|
||
cmp ax, [bp+var_6]
|
||
jl short loc_E020
|
||
les bx, [bp+var_E]
|
||
add bx, [bp+var_6]
|
||
mov al, [bp+var_A]
|
||
|
||
loc_E03E:
|
||
mov es:[bx], al
|
||
add word ptr [bp+var_E], 50h ; 'P'
|
||
inc [bp+var_4]
|
||
|
||
loc_E048:
|
||
cmp [bp+var_4], di
|
||
jle short loc_DFD0
|
||
call _grcg_off_func
|
||
|
||
loc_E051:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_DF3A endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_E055 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
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
mov di, [bp+arg_0]
|
||
mov si, [bp+arg_8]
|
||
push si
|
||
push [bp+arg_2]
|
||
push [bp+arg_4]
|
||
push di
|
||
call sub_D7EC
|
||
push si
|
||
push [bp+arg_6]
|
||
push [bp+arg_2]
|
||
push di
|
||
call sub_D8FF
|
||
push si
|
||
push [bp+arg_6]
|
||
push [bp+arg_2]
|
||
push [bp+arg_4]
|
||
call sub_D8FF
|
||
push si
|
||
push [bp+arg_6]
|
||
push [bp+arg_4]
|
||
push di
|
||
call sub_D7EC
|
||
add sp, 20h
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_E055 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_E099 proc far
|
||
|
||
arg_0 = word ptr 6
|
||
arg_2 = dword ptr 8
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
xor cx, cx
|
||
mov ax, [bp+arg_0]
|
||
mov bx, 40h
|
||
cwd
|
||
idiv bx
|
||
mov bx, 8
|
||
cwd
|
||
idiv bx
|
||
mov si, dx
|
||
jmp short loc_E0FB
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E0B3:
|
||
les bx, [bp+arg_2]
|
||
mov al, es:[bx]
|
||
mov ah, 0
|
||
mov bx, ax
|
||
test __mbctype+1[bx], 4
|
||
jz short loc_E0F3
|
||
mov bx, word ptr [bp+arg_2]
|
||
mov al, es:[bx]
|
||
cbw
|
||
shl ax, 8
|
||
mov dl, es:[bx]
|
||
mov dh, 0
|
||
add ax, dx
|
||
mov di, ax
|
||
inc word ptr [bp+arg_2]
|
||
inc word ptr [bp+arg_2]
|
||
cmp di, 8540h
|
||
jb short loc_E0E9
|
||
cmp di, 869Eh
|
||
jbe short loc_E0EE
|
||
|
||
loc_E0E9:
|
||
add cx, 10h
|
||
jmp short loc_E0F9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E0EE:
|
||
add cx, 8
|
||
jmp short loc_E0F9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E0F3:
|
||
add cx, 8
|
||
inc word ptr [bp+arg_2]
|
||
|
||
loc_E0F9:
|
||
add cx, si
|
||
|
||
loc_E0FB:
|
||
les bx, [bp+arg_2]
|
||
cmp byte ptr es:[bx], 0
|
||
jnz short loc_E0B3
|
||
mov ax, cx
|
||
sub ax, si
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_E099 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_E10C proc far
|
||
|
||
var_3A = byte ptr -3Ah
|
||
var_1A = word ptr -1Ah
|
||
var_18 = word ptr -18h
|
||
var_16 = word ptr -16h
|
||
var_14 = word ptr -14h
|
||
var_12 = word ptr -12h
|
||
var_10 = word ptr -10h
|
||
var_E = word ptr -0Eh
|
||
var_C = word ptr -0Ch
|
||
var_A = word ptr -0Ah
|
||
var_8 = dword ptr -8
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
arg_6 = dword ptr 0Ch
|
||
|
||
enter 3Ah, 0
|
||
push si
|
||
push di
|
||
mov si, [bp+arg_0]
|
||
mov ax, [bp+arg_4]
|
||
mov bx, 10h
|
||
cwd
|
||
idiv bx
|
||
mov bx, 4
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_E], dx
|
||
mov ax, [bp+arg_4]
|
||
mov bx, 40h
|
||
cwd
|
||
idiv bx
|
||
mov bx, 8
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_10], dx
|
||
mov ax, [bp+arg_4]
|
||
and ax, 200h
|
||
mov [bp+var_12], ax
|
||
mov ax, [bp+arg_4]
|
||
and ax, 400h
|
||
mov [bp+var_14], ax
|
||
mov ax, [bp+arg_4]
|
||
and ax, 800h
|
||
mov [bp+var_16], ax
|
||
cmp [bp+var_12], 0
|
||
jz short loc_E1AB
|
||
pushd [bp+arg_6]
|
||
push [bp+arg_4]
|
||
call sub_E099
|
||
add sp, 6
|
||
mov [bp+var_18], ax
|
||
cmp [bp+var_14], 0
|
||
jz short loc_E18E
|
||
push 0
|
||
mov ax, [bp+arg_2]
|
||
add ax, 11h
|
||
push ax
|
||
mov ax, si
|
||
add ax, [bp+var_18]
|
||
dec ax
|
||
push ax
|
||
push [bp+arg_2]
|
||
push si
|
||
call sub_DF3A
|
||
add sp, 0Ah
|
||
jmp short loc_E1C2
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E18E:
|
||
push 0
|
||
mov ax, [bp+arg_2]
|
||
add ax, 0Fh
|
||
push ax
|
||
mov ax, si
|
||
add ax, [bp+var_18]
|
||
dec ax
|
||
push ax
|
||
push [bp+arg_2]
|
||
push si
|
||
call sub_DF3A
|
||
add sp, 0Ah
|
||
jmp short loc_E1DA
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E1AB:
|
||
cmp [bp+var_14], 0
|
||
jz short loc_E1DA
|
||
pushd [bp+arg_6]
|
||
push [bp+arg_4]
|
||
call sub_E099
|
||
add sp, 6
|
||
mov [bp+var_18], ax
|
||
|
||
loc_E1C2:
|
||
push 7
|
||
mov ax, [bp+arg_2]
|
||
add ax, 11h
|
||
push ax
|
||
mov ax, si
|
||
add ax, [bp+var_18]
|
||
dec ax
|
||
push ax
|
||
push si
|
||
call sub_D7EC
|
||
add sp, 8
|
||
|
||
loc_E1DA:
|
||
push [bp+arg_4]
|
||
call _grcg_setcolor_rmw
|
||
pop cx
|
||
mov dx, 68h ; 'h'
|
||
mov al, 0Bh
|
||
out dx, al
|
||
jmp loc_E412
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E1EB:
|
||
mov ax, [bp+arg_2]
|
||
imul ax, 50h
|
||
push ax
|
||
mov ax, si
|
||
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, si
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_C], dx
|
||
les bx, [bp+arg_6]
|
||
mov al, es:[bx]
|
||
mov ah, 0
|
||
mov bx, ax
|
||
test __mbctype+1[bx], 4
|
||
jz short loc_E240
|
||
mov bx, word ptr [bp+arg_6]
|
||
mov al, es:[bx]
|
||
cbw
|
||
shl ax, 8
|
||
mov dl, es:[bx+1]
|
||
mov dh, 0
|
||
add ax, dx
|
||
push ax
|
||
call __mbcjmstojis
|
||
pop cx
|
||
mov [bp+var_2], ax
|
||
add word ptr [bp+arg_6], 2
|
||
jmp short loc_E286
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E240:
|
||
les bx, [bp+arg_6]
|
||
mov al, es:[bx]
|
||
mov ah, 0
|
||
mov bx, ax
|
||
test __mbctype+1[bx], 3
|
||
jz short loc_E25E
|
||
mov bx, word ptr [bp+arg_6]
|
||
mov al, es:[bx]
|
||
mov ah, 0
|
||
add ax, 2980h
|
||
jmp short loc_E279
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E25E:
|
||
les bx, [bp+arg_6]
|
||
mov al, es:[bx]
|
||
cbw
|
||
mov bx, ax
|
||
test byte ptr [bx+0EEBh], 5Eh
|
||
jz short loc_E27E
|
||
mov bx, word ptr [bp+arg_6]
|
||
mov al, es:[bx]
|
||
mov ah, 0
|
||
add ax, 2900h
|
||
|
||
loc_E279:
|
||
mov [bp+var_2], ax
|
||
jmp short loc_E283
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E27E:
|
||
mov [bp+var_2], 2B21h
|
||
|
||
loc_E283:
|
||
inc word ptr [bp+arg_6]
|
||
|
||
loc_E286:
|
||
mov al, byte ptr [bp+var_2]
|
||
and al, 0FFh
|
||
mov dx, 0A1h ; '<27>'
|
||
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_E2E7
|
||
cmp [bp+var_2], 2B7Eh
|
||
ja short loc_E2E7
|
||
cmp si, 278h
|
||
jg loc_E41D
|
||
mov [bp+var_1A], 0
|
||
jmp short loc_E2DA
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E2B8:
|
||
mov al, byte ptr [bp+var_1A]
|
||
or al, 20h
|
||
mov dx, 0A5h ; '<27>'
|
||
out dx, al
|
||
mov dx, 0A9h ; '<27>'
|
||
in al, dx
|
||
mov ah, 0
|
||
shl ax, 8
|
||
mov bx, [bp+var_1A]
|
||
add bx, bx
|
||
lea dx, [bp+var_3A]
|
||
add bx, dx
|
||
mov ss:[bx], ax
|
||
inc [bp+var_1A]
|
||
|
||
loc_E2DA:
|
||
cmp [bp+var_1A], 10h
|
||
jl short loc_E2B8
|
||
mov [bp+var_A], 0
|
||
jmp short loc_E33D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E2E7:
|
||
cmp si, 270h
|
||
jg loc_E41D
|
||
mov [bp+var_1A], 0
|
||
jmp short loc_E332
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E2F6:
|
||
mov al, byte ptr [bp+var_1A]
|
||
or al, 20h
|
||
mov dx, 0A5h ; '<27>'
|
||
out dx, al
|
||
mov dx, 0A9h ; '<27>'
|
||
in al, dx
|
||
mov ah, 0
|
||
shl ax, 8
|
||
mov bx, [bp+var_1A]
|
||
add bx, bx
|
||
lea dx, [bp+var_3A]
|
||
add bx, dx
|
||
mov ss:[bx], ax
|
||
mov dx, 0A5h ; '<27>'
|
||
mov al, byte ptr [bp+var_1A]
|
||
out dx, al
|
||
mov dx, 0A9h ; '<27>'
|
||
in al, dx
|
||
mov ah, 0
|
||
mov bx, [bp+var_1A]
|
||
add bx, bx
|
||
lea dx, [bp+var_3A]
|
||
add bx, dx
|
||
add ss:[bx], ax
|
||
inc [bp+var_1A]
|
||
|
||
loc_E332:
|
||
cmp [bp+var_1A], 10h
|
||
jl short loc_E2F6
|
||
mov [bp+var_A], 1
|
||
|
||
loc_E33D:
|
||
mov [bp+var_1A], 0
|
||
jmp loc_E3F9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E345:
|
||
mov bx, [bp+var_1A]
|
||
add bx, bx
|
||
lea ax, [bp+var_3A]
|
||
add bx, ax
|
||
mov ax, ss:[bx]
|
||
mov [bp+var_4], ax
|
||
mov ax, [bp+var_E]
|
||
cmp ax, 1
|
||
jz short loc_E369
|
||
cmp ax, 2
|
||
jz short loc_E37F
|
||
cmp ax, 3
|
||
jz short loc_E375
|
||
jmp short loc_E395
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E369:
|
||
mov di, [bp+var_4]
|
||
mov ax, di
|
||
add ax, ax
|
||
or [bp+var_4], ax
|
||
jmp short loc_E395
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E375:
|
||
mov di, [bp+var_4]
|
||
mov ax, di
|
||
add ax, ax
|
||
or [bp+var_4], ax
|
||
|
||
loc_E37F:
|
||
mov di, [bp+var_4]
|
||
mov ax, di
|
||
add ax, ax
|
||
or [bp+var_4], ax
|
||
xor di, [bp+var_4]
|
||
mov ax, di
|
||
add ax, ax
|
||
not ax
|
||
and [bp+var_4], ax
|
||
|
||
loc_E395:
|
||
cmp [bp+var_16], 0
|
||
jz short loc_E3AC
|
||
cmp [bp+var_A], 0
|
||
jz short loc_E3A7
|
||
xor [bp+var_4], 0FFFFh
|
||
jmp short loc_E3AC
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E3A7:
|
||
xor [bp+var_4], 0FF00h
|
||
|
||
loc_E3AC:
|
||
cmp [bp+var_C], 0
|
||
jz short loc_E3DF
|
||
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_E3F2
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E3DF:
|
||
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_E3F2:
|
||
add word ptr [bp+var_8], 50h ; 'P'
|
||
inc [bp+var_1A]
|
||
|
||
loc_E3F9:
|
||
cmp [bp+var_1A], 10h
|
||
jl loc_E345
|
||
cmp [bp+var_A], 0
|
||
jz short loc_E40A
|
||
add si, 8
|
||
|
||
loc_E40A:
|
||
mov ax, [bp+var_10]
|
||
add ax, 8
|
||
add si, ax
|
||
|
||
loc_E412:
|
||
les bx, [bp+arg_6]
|
||
cmp byte ptr es:[bx], 0
|
||
jnz loc_E1EB
|
||
|
||
loc_E41D:
|
||
mov dx, 68h ; 'h'
|
||
mov al, 0Ah
|
||
out dx, al
|
||
call _grcg_off_func
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_E10C endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_E42B proc far
|
||
|
||
var_156 = byte ptr -156h
|
||
var_106 = byte ptr -106h
|
||
var_B6 = byte ptr -0B6h
|
||
dest = byte ptr -66h
|
||
var_16 = word ptr -16h
|
||
@@page_other = byte ptr -13h
|
||
var_12 = dword ptr -12h
|
||
var_E = dword ptr -0Eh
|
||
var_A = dword ptr -0Ah
|
||
_src = dword ptr -6
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
arg_6 = word ptr 0Ch
|
||
|
||
enter 156h, 0
|
||
push si
|
||
push di
|
||
mov di, [bp+arg_0]
|
||
mov ax, [bp+arg_4]
|
||
sub ax, di
|
||
mov bx, 8
|
||
cwd
|
||
idiv bx
|
||
mov si, ax
|
||
mov ax, [bp+arg_6]
|
||
sub ax, [bp+arg_2]
|
||
mov [bp+var_2], ax
|
||
mov [bp+_src], 0A8000000h
|
||
mov [bp+var_A], 0B0000000h
|
||
mov [bp+var_E], 0B8000000h
|
||
mov [bp+var_12], 0E0000000h
|
||
mov al, _graph_page
|
||
xor al, 1
|
||
mov [bp+@@page_other], al
|
||
mov ax, di
|
||
cwd
|
||
idiv bx
|
||
mov dx, [bp+arg_2]
|
||
imul dx, 50h
|
||
add ax, dx
|
||
add word ptr [bp+_src], ax
|
||
mov ax, di
|
||
cwd
|
||
idiv bx
|
||
mov dx, [bp+arg_2]
|
||
imul dx, 50h
|
||
add ax, dx
|
||
add word ptr [bp+var_A], ax
|
||
mov ax, di
|
||
cwd
|
||
idiv bx
|
||
mov dx, [bp+arg_2]
|
||
imul dx, 50h
|
||
add ax, dx
|
||
add word ptr [bp+var_E], ax
|
||
mov ax, di
|
||
cwd
|
||
idiv bx
|
||
mov dx, [bp+arg_2]
|
||
imul dx, 50h
|
||
add ax, dx
|
||
add word ptr [bp+var_12], ax
|
||
mov [bp+var_16], 0
|
||
jmp loc_E55F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E4BA:
|
||
push si ; n
|
||
pushd [bp+_src] ; src
|
||
push ss
|
||
lea ax, [bp+dest]
|
||
push ax ; dest
|
||
call _memcpy
|
||
push si ; n
|
||
pushd [bp+var_A] ; src
|
||
push ss
|
||
lea ax, [bp+var_B6]
|
||
push ax ; dest
|
||
call _memcpy
|
||
push si ; n
|
||
pushd [bp+var_E] ; src
|
||
push ss
|
||
lea ax, [bp+var_106]
|
||
push ax ; dest
|
||
call _memcpy
|
||
push si ; n
|
||
pushd [bp+var_12] ; src
|
||
push ss
|
||
lea ax, [bp+var_156]
|
||
push ax ; dest
|
||
call _memcpy
|
||
graph_accesspage [bp+@@page_other]
|
||
push si ; n
|
||
push ss
|
||
lea ax, [bp+dest]
|
||
push ax ; src
|
||
pushd [bp+_src] ; dest
|
||
call _memcpy
|
||
add sp, 32h
|
||
push si ; n
|
||
push ss
|
||
lea ax, [bp+var_B6]
|
||
push ax ; src
|
||
pushd [bp+var_A] ; dest
|
||
call _memcpy
|
||
push si ; n
|
||
push ss
|
||
lea ax, [bp+var_106]
|
||
push ax ; src
|
||
pushd [bp+var_E] ; dest
|
||
call _memcpy
|
||
push si ; n
|
||
push ss
|
||
lea ax, [bp+var_156]
|
||
push ax ; src
|
||
pushd [bp+var_12] ; dest
|
||
call _memcpy
|
||
add sp, 1Eh
|
||
graph_accesspage _graph_page
|
||
add word ptr [bp+_src], 50h ; 'P'
|
||
add word ptr [bp+var_A], 50h ; 'P'
|
||
add word ptr [bp+var_E], 50h ; 'P'
|
||
add word ptr [bp+var_12], 50h ; 'P'
|
||
inc [bp+var_16]
|
||
|
||
loc_E55F:
|
||
mov ax, [bp+var_16]
|
||
cmp ax, [bp+var_2]
|
||
jl loc_E4BA
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_E42B endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_E56D proc far
|
||
|
||
var_164 = byte ptr -164h
|
||
var_114 = byte ptr -114h
|
||
var_C4 = byte ptr -0C4h
|
||
dest = byte ptr -74h
|
||
var_24 = word ptr -24h
|
||
var_22 = dword ptr -22h
|
||
var_1E = dword ptr -1Eh
|
||
var_1A = dword ptr -1Ah
|
||
var_16 = dword ptr -16h
|
||
var_12 = dword ptr -12h
|
||
var_E = dword ptr -0Eh
|
||
var_A = dword ptr -0Ah
|
||
_src = dword ptr -6
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
arg_6 = word ptr 0Ch
|
||
arg_8 = word ptr 0Eh
|
||
arg_A = word ptr 10h
|
||
@@page = byte ptr 12h
|
||
@@page_other = byte ptr 14h
|
||
|
||
enter 164h, 0
|
||
push si
|
||
push di
|
||
mov di, [bp+arg_0]
|
||
mov ax, [bp+arg_4]
|
||
sub ax, di
|
||
mov bx, 8
|
||
cwd
|
||
idiv bx
|
||
mov si, ax
|
||
mov ax, [bp+arg_6]
|
||
sub ax, [bp+arg_2]
|
||
mov [bp+var_2], ax
|
||
mov [bp+_src], 0A8000000h
|
||
mov [bp+var_A], 0B0000000h
|
||
mov [bp+var_E], 0B8000000h
|
||
mov [bp+var_12], 0E0000000h
|
||
mov [bp+var_16], 0A8000000h
|
||
mov [bp+var_1A], 0B0000000h
|
||
mov [bp+var_1E], 0B8000000h
|
||
mov [bp+var_22], 0E0000000h
|
||
mov ax, di
|
||
cwd
|
||
idiv bx
|
||
mov dx, [bp+arg_2]
|
||
imul dx, 50h
|
||
add ax, dx
|
||
add word ptr [bp+_src], ax
|
||
mov ax, di
|
||
cwd
|
||
idiv bx
|
||
mov dx, [bp+arg_2]
|
||
imul dx, 50h
|
||
add ax, dx
|
||
add word ptr [bp+var_A], ax
|
||
mov ax, di
|
||
cwd
|
||
idiv bx
|
||
mov dx, [bp+arg_2]
|
||
imul dx, 50h
|
||
add ax, dx
|
||
add word ptr [bp+var_E], ax
|
||
mov ax, di
|
||
cwd
|
||
idiv bx
|
||
mov dx, [bp+arg_2]
|
||
imul dx, 50h
|
||
add ax, dx
|
||
add word ptr [bp+var_12], ax
|
||
mov ax, [bp+arg_8]
|
||
cwd
|
||
idiv bx
|
||
mov dx, [bp+arg_A]
|
||
imul dx, 50h
|
||
add ax, dx
|
||
add word ptr [bp+var_16], ax
|
||
mov ax, [bp+arg_8]
|
||
cwd
|
||
idiv bx
|
||
mov dx, [bp+arg_A]
|
||
imul dx, 50h
|
||
add ax, dx
|
||
add word ptr [bp+var_1A], ax
|
||
mov ax, [bp+arg_8]
|
||
cwd
|
||
idiv bx
|
||
mov dx, [bp+arg_A]
|
||
imul dx, 50h
|
||
add ax, dx
|
||
add word ptr [bp+var_1E], ax
|
||
mov ax, [bp+arg_8]
|
||
cwd
|
||
idiv bx
|
||
mov dx, [bp+arg_A]
|
||
imul dx, 50h
|
||
add ax, dx
|
||
add word ptr [bp+var_22], ax
|
||
mov [bp+var_24], 0
|
||
jmp loc_E70D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E658:
|
||
push si ; n
|
||
pushd [bp+_src] ; src
|
||
push ss
|
||
lea ax, [bp+dest]
|
||
push ax ; dest
|
||
call _memcpy
|
||
push si ; n
|
||
pushd [bp+var_A] ; src
|
||
push ss
|
||
lea ax, [bp+var_C4]
|
||
push ax ; dest
|
||
call _memcpy
|
||
push si ; n
|
||
pushd [bp+var_E] ; src
|
||
push ss
|
||
lea ax, [bp+var_114]
|
||
push ax ; dest
|
||
call _memcpy
|
||
push si ; n
|
||
pushd [bp+var_12] ; src
|
||
push ss
|
||
lea ax, [bp+var_164]
|
||
push ax ; dest
|
||
call _memcpy
|
||
graph_accesspage [bp+@@page_other]
|
||
push si ; n
|
||
push ss
|
||
lea ax, [bp+dest]
|
||
push ax ; src
|
||
pushd [bp+var_16] ; dest
|
||
call _memcpy
|
||
add sp, 32h
|
||
push si ; n
|
||
push ss
|
||
lea ax, [bp+var_C4]
|
||
push ax ; src
|
||
pushd [bp+var_1A] ; dest
|
||
call _memcpy
|
||
push si ; n
|
||
push ss
|
||
lea ax, [bp+var_114]
|
||
push ax ; src
|
||
pushd [bp+var_1E] ; dest
|
||
call _memcpy
|
||
push si ; n
|
||
push ss
|
||
lea ax, [bp+var_164]
|
||
push ax ; src
|
||
pushd [bp+var_22] ; dest
|
||
call _memcpy
|
||
add sp, 1Eh
|
||
graph_accesspage [bp+@@page]
|
||
add word ptr [bp+_src], 50h ; 'P'
|
||
add word ptr [bp+var_A], 50h ; 'P'
|
||
add word ptr [bp+var_E], 50h ; 'P'
|
||
add word ptr [bp+var_12], 50h ; 'P'
|
||
add word ptr [bp+var_16], 50h ; 'P'
|
||
add word ptr [bp+var_1A], 50h ; 'P'
|
||
add word ptr [bp+var_1E], 50h ; 'P'
|
||
add word ptr [bp+var_22], 50h ; 'P'
|
||
inc [bp+var_24]
|
||
|
||
loc_E70D:
|
||
mov ax, [bp+var_24]
|
||
cmp ax, [bp+var_2]
|
||
jl loc_E658
|
||
graph_accesspage _graph_page
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_E56D endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_E722 proc far
|
||
|
||
_s = byte ptr -34h
|
||
var_33 = byte ptr -33h
|
||
var_32 = byte ptr -32h
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
arg_0 = byte ptr 6
|
||
arg_2 = byte ptr 8
|
||
arg_4 = byte ptr 0Ah
|
||
arg_6 = dword ptr 0Ch
|
||
arg_A = word ptr 10h
|
||
|
||
enter 34h, 0
|
||
push si
|
||
push di
|
||
push 300000h ; c
|
||
push ss
|
||
lea ax, [bp+_s]
|
||
push ax ; s
|
||
call _memset
|
||
add sp, 8
|
||
xor di, di
|
||
jmp loc_E7C1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E740:
|
||
mov ax, di
|
||
add ax, ax
|
||
les bx, [bp+arg_6]
|
||
add bx, ax
|
||
cmp word ptr es:[bx], 0
|
||
jnz short loc_E77E
|
||
mov bx, di
|
||
imul bx, 3
|
||
lea ax, [bp+_s]
|
||
add bx, ax
|
||
mov al, [bp+arg_0]
|
||
mov ss:[bx], al
|
||
mov bx, di
|
||
imul bx, 3
|
||
lea ax, [bp+var_33]
|
||
add bx, ax
|
||
mov al, [bp+arg_2]
|
||
mov ss:[bx], al
|
||
mov bx, di
|
||
imul bx, 3
|
||
lea ax, [bp+var_32]
|
||
add bx, ax
|
||
mov al, [bp+arg_4]
|
||
jmp short loc_E7BD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E77E:
|
||
mov bx, di
|
||
imul bx, 3
|
||
lea ax, [bp+_s]
|
||
add bx, ax
|
||
mov si, di
|
||
imul si, 3
|
||
mov al, [si+0A1Ah]
|
||
mov ss:[bx], al
|
||
mov bx, di
|
||
imul bx, 3
|
||
lea ax, [bp+var_33]
|
||
add bx, ax
|
||
mov si, di
|
||
imul si, 3
|
||
mov al, [si+0A1Bh]
|
||
mov ss:[bx], al
|
||
mov bx, di
|
||
imul bx, 3
|
||
lea ax, [bp+var_32]
|
||
add bx, ax
|
||
mov si, di
|
||
imul si, 3
|
||
mov al, [si+0A1Ch]
|
||
|
||
loc_E7BD:
|
||
mov ss:[bx], al
|
||
inc di
|
||
|
||
loc_E7C1:
|
||
cmp di, 10h
|
||
jl loc_E740
|
||
xor di, di
|
||
jmp loc_E89E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E7CD:
|
||
call _z_vsync_wait
|
||
mov [bp+var_2], 0
|
||
jmp loc_E88C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E7DA:
|
||
mov [bp+var_4], 0
|
||
jmp short loc_E849
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E7E1:
|
||
mov bx, [bp+var_2]
|
||
imul bx, 3
|
||
add bx, [bp+var_4]
|
||
lea ax, [bp+_s]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
mov bx, [bp+var_2]
|
||
imul bx, 3
|
||
add bx, [bp+var_4]
|
||
cmp al, [bx+0A1Ah]
|
||
jz short loc_E846
|
||
mov bx, [bp+var_2]
|
||
imul bx, 3
|
||
add bx, [bp+var_4]
|
||
lea ax, [bp+_s]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
mov bx, [bp+var_2]
|
||
imul bx, 3
|
||
add bx, [bp+var_4]
|
||
cmp al, [bx+0A1Ah]
|
||
jge short loc_E825
|
||
mov al, 1
|
||
jmp short loc_E827
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E825:
|
||
mov al, 0FFh
|
||
|
||
loc_E827:
|
||
mov bx, [bp+var_2]
|
||
imul bx, 3
|
||
add bx, [bp+var_4]
|
||
lea dx, [bp+_s]
|
||
add bx, dx
|
||
add al, ss:[bx]
|
||
mov bx, [bp+var_2]
|
||
imul bx, 3
|
||
add bx, [bp+var_4]
|
||
add bx, dx
|
||
mov ss:[bx], al
|
||
|
||
loc_E846:
|
||
inc [bp+var_4]
|
||
|
||
loc_E849:
|
||
cmp [bp+var_4], 3
|
||
jl short loc_E7E1
|
||
mov bx, [bp+var_2]
|
||
imul bx, 3
|
||
lea ax, [bp+var_32]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
mov bx, [bp+var_2]
|
||
imul bx, 3
|
||
lea ax, [bp+var_33]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
mov bx, [bp+var_2]
|
||
imul bx, 3
|
||
lea ax, [bp+_s]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
push [bp+var_2]
|
||
call sub_D119
|
||
add sp, 8
|
||
inc [bp+var_2]
|
||
|
||
loc_E88C:
|
||
cmp [bp+var_2], 10h
|
||
jl loc_E7DA
|
||
push [bp+arg_A]
|
||
call _delay
|
||
pop cx
|
||
inc di
|
||
|
||
loc_E89E:
|
||
cmp di, 10h
|
||
jl loc_E7CD
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_E722 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_E8A9 proc far
|
||
|
||
inregs = REGS ptr -22h
|
||
var_12 = byte ptr -12h
|
||
segp = SREGS ptr -8
|
||
|
||
enter 22h, 0
|
||
push si
|
||
push di
|
||
lea ax, [bp+var_12]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset aPal98Grb ; "pal98 grb"
|
||
mov cx, 0Ah
|
||
call SCOPY@
|
||
push ss
|
||
lea ax, [bp+segp]
|
||
push ax ; segp
|
||
call _segread
|
||
add sp, 4
|
||
mov byte ptr [bp+inregs+1], 52h ; 'R'
|
||
push ss
|
||
lea ax, [bp+segp]
|
||
push ax ; segregs
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; outregs
|
||
push ss
|
||
push ax ; inregs
|
||
call _intdosx
|
||
add sp, 0Ch
|
||
mov bx, word ptr [bp+inregs+2]
|
||
sub bx, 2
|
||
mov es, [bp+segp+SREGS._es]
|
||
mov si, es:[bx]
|
||
|
||
loc_E8F1:
|
||
mov es, si
|
||
cmp word ptr es:1, 0
|
||
jz short loc_E91A
|
||
xor di, di
|
||
jmp short loc_E90B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E8FF:
|
||
mov es, si
|
||
mov al, es:[di+10h]
|
||
cmp al, [bp+di+var_12]
|
||
jnz short loc_E910
|
||
inc di
|
||
|
||
loc_E90B:
|
||
cmp di, 0Ah
|
||
jl short loc_E8FF
|
||
|
||
loc_E910:
|
||
cmp di, 0Ah
|
||
jnz short loc_E91A
|
||
lea ax, [si+1]
|
||
jmp short loc_E933
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E91A:
|
||
mov es, si
|
||
cmp byte ptr es:0, 4Dh ; 'M'
|
||
jz short loc_E928
|
||
xor ax, ax
|
||
jmp short loc_E933
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E928:
|
||
mov es, si
|
||
mov ax, es:3
|
||
inc ax
|
||
add si, ax
|
||
jmp short loc_E8F1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E933:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_E8A9 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_E937 proc far
|
||
|
||
var_4 = dword ptr -4
|
||
|
||
enter 4, 0
|
||
push si
|
||
push di
|
||
call sub_E8A9
|
||
mov di, ax
|
||
or di, di
|
||
jz short loc_E97D
|
||
mov word ptr [bp+var_4+2], di
|
||
mov word ptr [bp+var_4], 10h
|
||
xor si, si
|
||
jmp short loc_E974
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E953:
|
||
les bx, [bp+var_4]
|
||
mov al, es:[bx+2]
|
||
cbw
|
||
push ax
|
||
mov al, es:[bx]
|
||
cbw
|
||
push ax
|
||
mov al, es:[bx+1]
|
||
cbw
|
||
push ax
|
||
push si
|
||
call sub_D222
|
||
add sp, 8
|
||
add word ptr [bp+var_4], 3
|
||
inc si
|
||
|
||
loc_E974:
|
||
cmp si, 10h
|
||
jl short loc_E953
|
||
xor ax, ax
|
||
jmp short loc_E980
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E97D:
|
||
mov ax, 1
|
||
|
||
loc_E980:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_E937 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_E984 proc far
|
||
|
||
var_4 = dword ptr -4
|
||
|
||
enter 4, 0
|
||
push si
|
||
push di
|
||
call sub_E8A9
|
||
mov di, ax
|
||
or di, di
|
||
jz short loc_E9DD
|
||
mov word ptr [bp+var_4+2], di
|
||
mov word ptr [bp+var_4], 10h
|
||
xor si, si
|
||
jmp short loc_E9D4
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E9A0:
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, [bx+0A1Bh]
|
||
les bx, [bp+var_4]
|
||
mov es:[bx], al
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, [bx+0A1Ah]
|
||
mov bx, word ptr [bp+var_4]
|
||
mov es:[bx+1], al
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, [bx+0A1Ch]
|
||
mov bx, word ptr [bp+var_4]
|
||
mov es:[bx+2], al
|
||
add word ptr [bp+var_4], 3
|
||
inc si
|
||
|
||
loc_E9D4:
|
||
cmp si, 10h
|
||
jl short loc_E9A0
|
||
xor ax, ax
|
||
jmp short loc_E9E0
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E9DD:
|
||
mov ax, 1
|
||
|
||
loc_E9E0:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_E984 endp
|
||
|
||
fuuin_08_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
fuuin_09_TEXT segment byte public 'CODE' use16
|
||
assume cs:fuuin_09_TEXT
|
||
;org 4
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
; int __cdecl __far sub_E9E4(int, int, int, char *format, char arglist)
|
||
sub_E9E4 proc far
|
||
|
||
@@buffer = byte ptr -104h
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
_format = dword ptr 0Ch
|
||
_arglist = byte ptr 10h
|
||
|
||
enter 104h, 0
|
||
lea ax, [bp+_arglist]
|
||
mov [bp+var_2], ss
|
||
mov [bp+var_4], ax
|
||
push [bp+var_2]
|
||
push ax ; arglist
|
||
pushd [bp+_format] ; format
|
||
push ss
|
||
lea ax, [bp+@@buffer]
|
||
push ax ; buffer
|
||
call _vsprintf
|
||
push ss
|
||
lea ax, [bp+@@buffer]
|
||
push ax
|
||
push [bp+arg_4]
|
||
push [bp+arg_2]
|
||
push [bp+arg_0]
|
||
call sub_E10C
|
||
add sp, 16h
|
||
leave
|
||
retf
|
||
sub_E9E4 endp
|
||
|
||
fuuin_09_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
fuuin_10_TEXT segment byte public 'CODE' use16
|
||
assume cs:fuuin_10_TEXT
|
||
;org 0Dh
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_EA1D proc far
|
||
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push [bp+arg_2]
|
||
push [bp+arg_0]
|
||
call file_ropen
|
||
or ax, ax
|
||
jnz short loc_EA34
|
||
mov ax, 1
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_EA34:
|
||
push 0
|
||
push 12h
|
||
push 0
|
||
call file_seek
|
||
push ds
|
||
push offset unk_141AA
|
||
push 30h ; '0'
|
||
call file_read
|
||
push word_13507
|
||
call sub_C842
|
||
call file_close
|
||
xor ax, ax
|
||
pop bp
|
||
retf
|
||
sub_EA1D endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
pop bp
|
||
retf
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_EA5E proc far
|
||
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push [bp+arg_2]
|
||
push [bp+arg_0]
|
||
call file_ropen
|
||
or ax, ax
|
||
jnz short loc_EA75
|
||
mov ax, 1
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_EA75:
|
||
push 0
|
||
push 12h
|
||
push 0
|
||
call file_seek
|
||
push ds
|
||
push offset unk_141AA
|
||
push 30h ; '0'
|
||
call file_read
|
||
call file_close
|
||
xor ax, ax
|
||
pop bp
|
||
retf
|
||
sub_EA5E endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
pop bp
|
||
retf
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_EA96 proc far
|
||
|
||
stream = dword ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
les bx, [bp+stream]
|
||
dec word ptr es:[bx]
|
||
jl short loc_EABB
|
||
les bx, [bp+stream]
|
||
mov dx, es:[bx+0Eh]
|
||
mov si, es:[bx+0Ch]
|
||
inc word ptr es:[bx+0Ch]
|
||
mov es, dx
|
||
mov al, es:[si]
|
||
mov ah, 0
|
||
jmp short loc_EAC9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_EABB:
|
||
push word ptr [bp+stream+2]
|
||
push word ptr [bp+stream] ; stream
|
||
call __fgetc
|
||
add sp, 4
|
||
|
||
loc_EAC9:
|
||
mov di, ax
|
||
les bx, [bp+stream]
|
||
dec word ptr es:[bx]
|
||
jl short loc_EAEB
|
||
les bx, [bp+stream]
|
||
mov dx, es:[bx+0Eh]
|
||
mov si, es:[bx+0Ch]
|
||
inc word ptr es:[bx+0Ch]
|
||
mov es, dx
|
||
mov al, es:[si]
|
||
mov ah, 0
|
||
jmp short loc_EAF9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_EAEB:
|
||
push word ptr [bp+stream+2]
|
||
push word ptr [bp+stream] ; stream
|
||
call __fgetc
|
||
add sp, 4
|
||
|
||
loc_EAF9:
|
||
shl ax, 8
|
||
add di, ax
|
||
mov ax, di
|
||
jmp short $+2
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_EA96 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_EB06 proc far
|
||
|
||
arg_0 = dword ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
xor dx, dx
|
||
jmp short loc_EB32
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_EB0D:
|
||
xor cx, cx
|
||
jmp short loc_EB2C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_EB11:
|
||
mov ax, dx
|
||
imul ax, 3
|
||
les bx, [bp+arg_0]
|
||
add bx, ax
|
||
add bx, cx
|
||
mov al, es:[bx]
|
||
mov bx, dx
|
||
imul bx, 3
|
||
add bx, cx
|
||
mov [bx+170Ah], al
|
||
inc cx
|
||
|
||
loc_EB2C:
|
||
cmp cx, 3
|
||
jl short loc_EB11
|
||
inc dx
|
||
|
||
loc_EB32:
|
||
cmp dx, 10h
|
||
jl short loc_EB0D
|
||
pop bp
|
||
retf
|
||
sub_EB06 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_EB39 proc far
|
||
|
||
var_1 = byte ptr -1
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
|
||
enter 2, 0
|
||
push si
|
||
xor si, si
|
||
push 4000h
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov word_1464C, dx
|
||
mov off_1464A, ax
|
||
cmp word_134F8, 1
|
||
jnz short loc_EB5A
|
||
or si, 2
|
||
|
||
loc_EB5A:
|
||
cmp byte_13509, 1
|
||
jnz short loc_EB64
|
||
mov si, 0F40h
|
||
|
||
loc_EB64:
|
||
cmp word_134FA, 1
|
||
jnz short loc_EB8E
|
||
push si
|
||
push 64h ; 'd'
|
||
push 0
|
||
push 0
|
||
push 4000h
|
||
push word_1464C
|
||
push off_1464A
|
||
push [bp+arg_2]
|
||
push [bp+arg_0]
|
||
call _PiLoadL
|
||
add sp, 12h
|
||
mov [bp+var_1], al
|
||
|
||
loc_EB8E:
|
||
cmp word_134F8, 1
|
||
jnz short loc_EBA1
|
||
push [bp+arg_2]
|
||
push [bp+arg_0]
|
||
call sub_EA1D
|
||
jmp short loc_EBAB
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_EBA1:
|
||
push [bp+arg_2]
|
||
push [bp+arg_0]
|
||
call sub_EA5E
|
||
|
||
loc_EBAB:
|
||
add sp, 4
|
||
push word_1464C
|
||
push off_1464A ; font
|
||
call @$bdla$qnv
|
||
add sp, 4
|
||
mov al, [bp+var_1]
|
||
cbw
|
||
jmp short $+2
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_EB39 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_EBC7 proc far
|
||
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
|
||
enter 2, 0
|
||
mov word_134F8, 0
|
||
push [bp+arg_2]
|
||
push [bp+arg_0]
|
||
call sub_EB39
|
||
add sp, 4
|
||
mov [bp+var_2], ax
|
||
mov word_134F8, 1
|
||
mov ax, [bp+var_2]
|
||
leave
|
||
retf
|
||
sub_EBC7 endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
leave
|
||
retf
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_EBEE proc far
|
||
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
|
||
enter 2, 0
|
||
mov word_134FA, 0
|
||
push [bp+arg_2]
|
||
push [bp+arg_0]
|
||
call sub_EB39
|
||
add sp, 4
|
||
mov [bp+var_2], ax
|
||
mov word_134FA, 1
|
||
mov ax, [bp+var_2]
|
||
leave
|
||
retf
|
||
sub_EBEE endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
leave
|
||
retf
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_EC15 proc far
|
||
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
|
||
enter 2, 0
|
||
mov byte_13509, 1
|
||
mov word_134F8, 0
|
||
push [bp+arg_2]
|
||
push [bp+arg_0]
|
||
call sub_EB39
|
||
add sp, 4
|
||
mov [bp+var_2], ax
|
||
mov word_134F8, 1
|
||
mov byte_13509, 0
|
||
mov ax, [bp+var_2]
|
||
leave
|
||
retf
|
||
sub_EC15 endp
|
||
|
||
fuuin_10_TEXT ends
|
||
|
||
; ---------------------------------------------------------------------------
|
||
; ===========================================================================
|
||
|
||
fuuin_11_TEXT segment byte public 'CODE' use16
|
||
leave
|
||
retf
|
||
extern VRAM_PLANES_SET:proc
|
||
extern _egc_copy_rect_1_to_0:proc
|
||
fuuin_11_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
fuuin_12_TEXT segment byte public 'CODE' use16
|
||
extern _graph_slow_2xscale_rect_1_to_0:proc
|
||
fuuin_12_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
fuuin_13_TEXT segment byte public 'CODE' use16
|
||
extern _mdrv2_resident:proc
|
||
extern _mdrv2_bgm_load:proc
|
||
extern _mdrv2_se_load:proc
|
||
extern _mdrv2_bgm_play:proc
|
||
extern _mdrv2_bgm_stop:proc
|
||
extern _mdrv2_bgm_fade_out_nonblock:proc
|
||
extern _mdrv2_check_board:proc
|
||
extern _mdrv2_se_play:proc
|
||
fuuin_13_TEXT ends
|
||
|
||
.data
|
||
|
||
_score dd 100000
|
||
_score_highest dd 100000
|
||
aReiidenconfig db 'ReiidenConfig',0
|
||
aErrorEnd_flagI db 'ERROR : end_flag is not ture !!',0
|
||
; char s[]
|
||
s db 'ERROR : cfg_id is not alloc!!',0
|
||
aReiidenconfi_0 db 'ReiidenConfig',0
|
||
; char path[]
|
||
path db 'op',0
|
||
; char arg0[3]
|
||
arg0 db 'op',0
|
||
db 0
|
||
byte_12B99 db 0
|
||
byte_12B9A db 0
|
||
byte_12B9B db 0
|
||
byte_12B9C db 0
|
||
byte_12B9D db 0
|
||
db 0
|
||
byte_12B9F db 0
|
||
byte_12BA0 db 0
|
||
byte_12BA1 db 0
|
||
byte_12BA2 db 0
|
||
byte_12BA3 db 0
|
||
dd 0
|
||
db 49h ; I
|
||
db 81h
|
||
db 48h ; H
|
||
db 81h
|
||
db 94h
|
||
db 81h
|
||
db 95h
|
||
db 81h
|
||
db 96h
|
||
db 81h
|
||
db 98h
|
||
db 81h
|
||
db 99h
|
||
db 81h
|
||
db 9Fh
|
||
db 81h
|
||
db 87h
|
||
db 81h
|
||
db 88h
|
||
db 81h
|
||
db 89h
|
||
db 81h
|
||
db 8Ah
|
||
db 81h
|
||
db 63h ; c
|
||
db 81h
|
||
db 67h ; g
|
||
db 81h
|
||
db 68h ; h
|
||
db 81h
|
||
db 5Eh ; ^
|
||
db 81h
|
||
db 44h ; D
|
||
db 81h
|
||
db 45h ; E
|
||
db 81h
|
||
FULLWIDTH_NUMBERS dd aFW_0, aFW_1, aFW_2, aFW_3, aFW_4
|
||
dd aFW_5, aFW_6, aFW_7, aFW_8, aFW_9
|
||
aBqbqbqbqbqbqbq db '<27>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q<EFBFBD>Q',0
|
||
aB@b@b@b@b@b@b@ db '<27>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@',0
|
||
aHiscore_0 db 'HISCORE',0
|
||
off_12C1E dd aB@gcbGwbB@
|
||
; "<22>@<40>C<EFBFBD>[<5B>W<EFBFBD>[<5B>@"
|
||
dd aB@gmbGGlb@ ; "<22>@<40>m<EFBFBD>[<5B>}<7D><><EFBFBD>@"
|
||
dd aB@gnbGhb@b@ ; "<22>@<40>n<EFBFBD>[<5B>h<EFBFBD>@<40>@"
|
||
dd aGlgigegbgbgn ; "<22><><EFBFBD>i<EFBFBD>e<EFBFBD>B<EFBFBD>b<EFBFBD>N"
|
||
aFW_0 db '<27>O',0
|
||
aFW_1 db '<27>P',0
|
||
aFW_2 db '<27>Q',0
|
||
aFW_3 db '<27>R',0
|
||
aFW_4 db '<27>S',0
|
||
aFW_5 db '<27>T',0
|
||
aFW_6 db '<27>U',0
|
||
aFW_7 db '<27>V',0
|
||
aFW_8 db '<27>W',0
|
||
aFW_9 db '<27>X',0
|
||
aC_0 db '<27><>',0
|
||
aUmx_0 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˈٓ`<60>@<40>@',0
|
||
aHiscore_1 db 'HISCORE',0
|
||
aReyhies_dat db 'REYHIES.DAT',0
|
||
aReyhino_dat db 'REYHINO.DAT',0
|
||
aReyhiha_dat db 'REYHIHA.DAT',0
|
||
; char src[]
|
||
src db 'REYHILU.DAT',0
|
||
aWB db 'wb',0
|
||
aReyhies_dat_0 db 'REYHIES.DAT',0
|
||
aReyhino_dat_0 db 'REYHINO.DAT',0
|
||
aReyhiha_dat_0 db 'REYHIHA.DAT',0
|
||
; char aReyhilu_dat_0[]
|
||
aReyhilu_dat_0 db 'REYHILU.DAT',0
|
||
; char aRb[]
|
||
aRb db 'rb',0
|
||
aGtg@gcglvkvVVi db '<27>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>݂<DD82><C282><EFBFBD><EFBFBD>Ȃ<EFBFBD>',0
|
||
aHiscore db 'HISCORE',0
|
||
; char format[]
|
||
format db '<27>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>Ⴄ<EFBFBD>I',0
|
||
; char aCC[]
|
||
aCC db '%c%c',0
|
||
aVb db '<27><>',0
|
||
; char aCC_0[]
|
||
aCC_0 db '%c%c',0
|
||
; char aCC_1[]
|
||
aCC_1 db '%c%c',0
|
||
; char aCC_2[]
|
||
aCC_2 db '%c%c',0
|
||
; char aSp[]
|
||
aSp db 'SP',0
|
||
; char aBi[]
|
||
aBi db '<27><>',0
|
||
; char aBi_0[]
|
||
aBi_0 db '<27><>',0
|
||
; char aPi[]
|
||
aPi db '<27>I',0
|
||
aB@cB@iB@ db '<27>@<40><><EFBFBD>@<40>ʁ@',0
|
||
aB@b@cB@b@sob@b db '<27>@<40>@<40><><EFBFBD>@<40>@<40>O<EFBFBD>@<40>@',0
|
||
aB@b@uB@b@u_b@b db '<27>@<40>@<40><><EFBFBD>@<40>@<40>_<EFBFBD>@<40>@',0
|
||
aGxgebGwbeglbGg db '<27>X<EFBFBD>e<EFBFBD>[<5B>W<EFBFBD>E<EFBFBD><45><EFBFBD>[<5B>g',0
|
||
aB@sB@r_b@ db '<27>@<40>ˁ@<40>_<EFBFBD>@',0
|
||
aSMRgcId db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
aB@uvb@rxb@ db '<27>@<40>V<EFBFBD>@<40><><EFBFBD>@',0
|
||
aB@r_b@rxb@ db '<27>@<40>_<EFBFBD>@<40><><EFBFBD>@',0
|
||
aB@tnb@rxb@ db '<27>@<40>n<EFBFBD>@<40><><EFBFBD>@',0
|
||
aB@rlb@rxb@ db '<27>@<40>l<EFBFBD>@<40><><EFBFBD>@',0
|
||
aB@rxb@pcb@ db '<27>@<40><><EFBFBD>@<40><><EFBFBD>@',0
|
||
aIab@czb@ot db '<27>A<EFBFBD>@<40>z<EFBFBD>@<40>t',0
|
||
aSB@fB@ot db '<27>ˁ@<40>}<7D>@<40>t',0
|
||
aPcb@lB@o db '<27>C<EFBFBD>@<40>Ɓ@<40><>',0
|
||
aCvke db '<27><><EFBFBD>E',0
|
||
aTnnc db '<27>n<EFBFBD><6E>',0
|
||
aB db '<27>|',0
|
||
; char aCC_3[]
|
||
aCC_3 db '%c%c',0
|
||
; char aSp_0[]
|
||
aSp_0 db 'SP',0
|
||
; char aBi_1[]
|
||
aBi_1 db '<27><>',0
|
||
; char aBi_2[]
|
||
aBi_2 db '<27><>',0
|
||
; char aPi_0[]
|
||
aPi_0 db '<27>I',0
|
||
; char aCC_4[]
|
||
aCC_4 db '%c%c',0
|
||
; char aS[]
|
||
aS db '%s',0
|
||
; char aS_0[]
|
||
aS_0 db '%s',0
|
||
aReyhies_dat_1 db 'REYHIES.DAT',0
|
||
aReyhino_dat_1 db 'REYHINO.DAT',0
|
||
aReyhiha_dat_1 db 'REYHIHA.DAT',0
|
||
; char aReyhilu_dat_1[]
|
||
aReyhilu_dat_1 db 'REYHILU.DAT',0
|
||
; char aWb_0[]
|
||
aWb_0 db 'wb',0
|
||
aB@gcbGwbB@ db '<27>@<40>C<EFBFBD>[<5B>W<EFBFBD>[<5B>@',0
|
||
aB@gmbGGlb@ db '<27>@<40>m<EFBFBD>[<5B>}<7D><><EFBFBD>@',0
|
||
aB@gnbGhb@b@ db '<27>@<40>n<EFBFBD>[<5B>h<EFBFBD>@<40>@',0
|
||
aGlgigegbgbgn db '<27><><EFBFBD>i<EFBFBD>e<EFBFBD>B<EFBFBD>b<EFBFBD>N',0
|
||
; char aUmx[3]
|
||
aUmx db '<27><><EFBFBD><EFBFBD><EFBFBD>ˈٓ`<60>@<40><><EFBFBD>҂̋L<CC8B>^<5E>@%s',0
|
||
dd aB@gvguglbB@ ; "<22>@<40><><EFBFBD><EFBFBD><EFBFBD>L<EFBFBD>[<5B>@"
|
||
dd aB@cRlio ; "<22>@<40>ސl<DE90><6C>"
|
||
dd aGzgvgtgsgggugx ; "<22>z<EFBFBD><7A><EFBFBD>T<EFBFBD>s<EFBFBD>G<EFBFBD><47><EFBFBD>X"
|
||
dd aB@tRl ; "<22>@<40><><EFBFBD>l"
|
||
dd aB@sR_b@ ; "<22>@<40>ː_<CB90>@"
|
||
dd aB@r_v ; "<22>@<40>_<EFBFBD>z"
|
||
dd aVioqclgqbGB ; "<22><><EFBFBD>q<EFBFBD>l<EFBFBD>Q<EFBFBD>[<5B>}<7D>["
|
||
dd aOcf ; "<22><><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD>R<EFBFBD>A<EFBFBD><41><EFBFBD>["
|
||
dd aGGhglgxgrgagib ; "<22>~<7E>h<EFBFBD><68><EFBFBD>X<EFBFBD>R<EFBFBD>A<EFBFBD><41><EFBFBD>["
|
||
dd aGngcgxgrgagib ; "<22>n<EFBFBD>C<EFBFBD>X<EFBFBD>R<EFBFBD>A<EFBFBD><41><EFBFBD>["
|
||
dd aGxbGpbGqbGB ; "<22>X<EFBFBD>[<5B>p<EFBFBD>[<5B>Q<EFBFBD>[<5B>}<7D>["
|
||
dd aGqbGBV ; "<22>Q<EFBFBD>[<5B>}<7D>[<5B>z"
|
||
dd aXevVVViv ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>݂<EFBFBD><DD82><EFBFBD>"
|
||
dd aGugbgnbGavO ; "<22>U<EFBFBD>b<EFBFBD>N<EFBFBD>[<5B><><EFBFBD>̎<EFBFBD>"
|
||
dd aLTfvCMc ; "<22>֒f<D692>̗ь<CC97>"
|
||
dd aRvkeo ; "<22><><EFBFBD>E<EFBFBD><45><EFBFBD>̗t"
|
||
dd aIitsluucr_tomo ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD>_<EFBFBD>O<EFBFBD>o"
|
||
dd aB@gagagkg ; "<22>@<40>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>^"
|
||
off_12EC0 dd aEasy
|
||
; " EASY "
|
||
dd aNormal ; "NORMAL"
|
||
dd aHard ; " HARD "
|
||
dd aLunatic ; "LUNATIC"
|
||
aB@gvguglbB@ db '<27>@<40><><EFBFBD><EFBFBD><EFBFBD>L<EFBFBD>[<5B>@',0
|
||
aB@cRlio db '<27>@<40>ސl<DE90><6C>',0
|
||
aGzgvgtgsgggugx db '<27>z<EFBFBD><7A><EFBFBD>T<EFBFBD>s<EFBFBD>G<EFBFBD><47><EFBFBD>X',0
|
||
aB@tRl db '<27>@<40><><EFBFBD>l',0
|
||
aB@sR_b@ db '<27>@<40>ː_<CB90>@',0
|
||
aB@r_v db '<27>@<40>_<EFBFBD>z',0
|
||
aVioqclgqbGB db '<27><><EFBFBD>q<EFBFBD>l<EFBFBD>Q<EFBFBD>[<5B>}<7D>[',0
|
||
aOcf db '<27><><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD>R<EFBFBD>A<EFBFBD><41><EFBFBD>[',0
|
||
aGGhglgxgrgagib db '<27>~<7E>h<EFBFBD><68><EFBFBD>X<EFBFBD>R<EFBFBD>A<EFBFBD><41><EFBFBD>[',0
|
||
aGngcgxgrgagib db '<27>n<EFBFBD>C<EFBFBD>X<EFBFBD>R<EFBFBD>A<EFBFBD><41><EFBFBD>[',0
|
||
aGxbGpbGqbGB db '<27>X<EFBFBD>[<5B>p<EFBFBD>[<5B>Q<EFBFBD>[<5B>}<7D>[',0
|
||
aGqbGBV db '<27>Q<EFBFBD>[<5B>}<7D>[<5B>z',0
|
||
aXevVVViv db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>݂<EFBFBD><DD82><EFBFBD>',0
|
||
aGugbgnbGavO db '<27>U<EFBFBD>b<EFBFBD>N<EFBFBD>[<5B><><EFBFBD>̎<EFBFBD>',0
|
||
aLTfvCMc db '<27>֒f<D692>̗ь<CC97>',0
|
||
aRvkeo db '<27><><EFBFBD>E<EFBFBD><45><EFBFBD>̗t',0
|
||
aIitsluucr_tomo db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD>_<EFBFBD>O<EFBFBD>o',0
|
||
aB@gagagkg db '<27>@<40>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>^',0
|
||
; char aIris_mdt[]
|
||
aIris_mdt db 'iris.mdt',0
|
||
aEd1a_grp db 'ED1A.grp',0
|
||
aEd1b_grp db 'ED1B.grp',0
|
||
aEd1c_grp db 'ED1C.GRP',0
|
||
aEd1d_grp db 'ED1D.GRP',0
|
||
aEd1e_grp db 'ED1E.GRP',0
|
||
; char aSt1_mdt[]
|
||
aSt1_mdt db 'st1.mdt',0
|
||
aEd2a_grp db 'ed2a.grp',0
|
||
aTryToNoContinu db 'Try to ',27h,'No continue',27h,'!!',0
|
||
aBadEnding2 db ' Bad Ending2 ',0
|
||
aEd4a_grp db 'ed4a.grp',0
|
||
aTryToNoConti_0 db 'Try to ',27h,'No continue',27h,'!!',0
|
||
aBadEnding1 db ' Bad Ending1 ',0
|
||
aEd3a_grp db 'ed3a.grp',0
|
||
aEd3b_grp db 'ed3b.grp',0
|
||
aCongratulation db 'Congratulations!',0
|
||
aGoodEnding2 db ' Good Ending2 ',0
|
||
aEd5a_grp db 'ed5a.grp',0
|
||
aEd5b_grp db 'ed5b.grp',0
|
||
aEd5c_grp db 'ed5c.grp',0
|
||
aCongratulati_0 db 'Congratulations!',0
|
||
aGoodEnding1 db ' Good Ending1 ',0
|
||
; char aSt1_mdt_0[]
|
||
aSt1_mdt_0 db 'st1.mdt',0
|
||
aEndb_a_grp db 'endb_a.grp',0
|
||
aEndb_b_grp db 'endb_b.grp',0
|
||
aStage5Boss db 'STAGE 5 BOSS',0
|
||
aGatekeeperSing db 'Gatekeeper ',27h,'SinGyoku',27h,0
|
||
aStage10Boss db 'STAGE 10 BOSS',0
|
||
aEvileyesYuugen db 'EvilEyes ',27h,'YuugenMagan',27h,0
|
||
aStage10Boss_0 db 'STAGE 10 BOSS',0
|
||
aRevengefulGhos db 'Revengeful Ghost ',27h,'Mima',27h,0
|
||
aStage15Boss db 'STAGE 15 BOSS',0
|
||
aInnocenceDevil db 'Innocence Devil ',27h,'Elis',27h,0
|
||
aStage15Boss_0 db 'STAGE 15 BOSS',0
|
||
aHellmoonKikuri db 'HellMoon ',27h,'Kikuri',27h,0
|
||
aStage20Boss db 'STAGE 20 BOSS',0
|
||
aAngelOfDeathSa db 'Angel of Death',27h,'Sariel',27h,0
|
||
aStage20Boss_0 db 'STAGE 20 BOSS',0
|
||
aAstralKnightKo db 'Astral Knight ',27h,'Konngara',27h,0
|
||
; char aS_1[]
|
||
aS_1 db '%s',0
|
||
aEasy db ' EASY ',0
|
||
aNormal db 'NORMAL',0
|
||
aHard db ' HARD ',0
|
||
aLunatic db 'LUNATIC',0
|
||
aEndm_a_grp db 'endm_a.grp',0
|
||
aUmx_1 db '<27><><EFBFBD><EFBFBD><EFBFBD>ˈٓ`',0
|
||
aVer db 'ver',0
|
||
a1_10 db '1.10',0
|
||
; char aUqiUxb[]
|
||
aUqiUxb@b@b@b@b db '<27><><EFBFBD>Փx<D593>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@ %s',0
|
||
; char aNbi[3]
|
||
aNbi db '<27><><EFBFBD><EFBFBD><EFBFBD>̍ō<CC8D><C58D><EFBFBD><EFBFBD>_<EFBFBD>@<40>@<40>@<40>@<40>@<40>@ %7lu',0
|
||
; char aNPiuU_b[]
|
||
aNPiuU_b@b@b@b@ db '<27>ŏI<C58F><49><EFBFBD>_<EFBFBD>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@ %7lu',0
|
||
; char aGrgugegbgjgebI[15]
|
||
aGrgugegbgjgebI db '<27>R<EFBFBD><52><EFBFBD>e<EFBFBD>B<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B><><EFBFBD><EFBFBD>',0
|
||
; char aB[]
|
||
aB@r_oB@b@b@b@b db '<27>@<40>_<EFBFBD>Ё@<40>@<40>@<40>@<40>i<EFBFBD>P<EFBFBD>ʁ`<60>T<EFBFBD>ʁj <20>@ %3lu',0
|
||
aB@gqbGgb@b@b@b db '<27>@<40>Q<EFBFBD>[<5B>g<EFBFBD>@<40>@<40>@<40>i<EFBFBD>U<EFBFBD>ʁ`<60>P<EFBFBD>O<EFBFBD>ʁj %3lu',0
|
||
; char aB[]
|
||
aB@tkb@b@b@b@b@ db '<27>@<40>K<EFBFBD>@<40>@<40>@<40>@<40>@<40>i<EFBFBD>U<EFBFBD>ʁ`<60>P<EFBFBD>O<EFBFBD>ʁj %3lu',0
|
||
aGfgbgivFpBivpv db ' <20><><EFBFBD>B<EFBFBD>i<EFBFBD>̔p<CC94>Ёi<D081>P<EFBFBD>P<EFBFBD>ʁ`<60>P<EFBFBD>T<EFBFBD>ʁj%3lu',0
|
||
; char aB[]
|
||
aB@ikvXekeb@b@b db '<27>@<40><><EFBFBD>̕<EFBFBD><CC95>E<EFBFBD>@<40>@<40>i<EFBFBD>P<EFBFBD>P<EFBFBD>ʁ`<60>P<EFBFBD>T<EFBFBD>ʁj%3lu',0
|
||
aSVVVsr_uabivpv db ' <20><EFBFBD><C282><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD>a<EFBFBD>i<EFBFBD>P<EFBFBD>T<EFBFBD>ʁ`<60>Q<EFBFBD>O<EFBFBD>ʁj%3lu',0
|
||
; char aB[]
|
||
aB@rVivVsr_uabi db '<27>@<40>Â<EFBFBD><C382>Ȃ<EFBFBD><C882>_<EFBFBD>a<EFBFBD>i<EFBFBD>P<EFBFBD>T<EFBFBD>ʁ`<60>Q<EFBFBD>O<EFBFBD>ʁj%3lu',0
|
||
aCvkeglbGgsnnzb db ' <20><><EFBFBD>E<EFBFBD><45><EFBFBD>[<5B>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>@<40>@<40>@<40>@<40>@<40>@ %5lu',0
|
||
; char aB[]
|
||
aB@tnncglbGgsnn db '<27>@<40>n<EFBFBD><6E><EFBFBD><EFBFBD><EFBFBD>[<5B>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>@<40>@<40>@<40>@<40>@<40>@<40>@%5lu',0
|
||
aThankYouForPla db ' Thank you for Playing !! ',0
|
||
; char aBBBVavVVPNjbBB[]
|
||
aBBBVavVVPNjbBB db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>̏̍<CC8F><CC8D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
aKo db '<27><>',0
|
||
aKo_0 db '<27><>',0
|
||
db 0
|
||
; char aC[]
|
||
aC db '%c',0
|
||
; char aCC_5[]
|
||
aCC_5 db '%c%c',0
|
||
include th01/hardware/vsync[data].asm
|
||
include th01/ztext[data].asm
|
||
byte_134B8 db 0
|
||
db 0
|
||
unk_134BA db 0
|
||
dd 0
|
||
db 0Fh
|
||
db 0
|
||
db 0Fh
|
||
db 0
|
||
byte_134C3 db 0
|
||
byte_134C4 db 0Fh
|
||
byte_134C5 db 0Fh
|
||
db 0Fh
|
||
db 0
|
||
db 0
|
||
db 0Fh
|
||
db 0
|
||
db 0Fh
|
||
db 0Fh
|
||
db 0Fh
|
||
db 0
|
||
byte_134CF db 0Fh
|
||
byte_134D0 db 0Fh
|
||
byte_134D1 db 0Fh
|
||
db 8
|
||
db 8
|
||
db 8
|
||
db 0
|
||
db 0
|
||
db 0Ah
|
||
db 0
|
||
db 0Ah
|
||
db 0
|
||
db 0
|
||
db 0Ah
|
||
db 0Ah
|
||
db 0Ah
|
||
db 0
|
||
db 0
|
||
db 0Ah
|
||
db 0
|
||
db 0Ah
|
||
db 0Ah
|
||
db 0Ah
|
||
db 0
|
||
db 0Ch
|
||
db 0Ch
|
||
db 0Ch
|
||
byte_134EA db 0
|
||
word_134EB dw 80h
|
||
aPal98Grb db 'pal98 grb',0
|
||
db 0
|
||
word_134F8 dw 1
|
||
word_134FA dw 1
|
||
dd 0
|
||
dd 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
word_13507 dw 64h
|
||
byte_13509 db 0
|
||
include th01/mdrv2[data].asm
|
||
include libs/master.lib/version[data].asm
|
||
include libs/master.lib/grp[data].asm
|
||
include libs/master.lib/pal[data].asm
|
||
include libs/master.lib/respal_exist[data].asm
|
||
include libs/master.lib/resdata[data].asm
|
||
include libs/master.lib/fil[data].asm
|
||
include libs/master.lib/dos_ropen[data].asm
|
||
include libs/master.lib/clip[data].asm
|
||
include libs/master.lib/rand[data].asm
|
||
|
||
.data?
|
||
|
||
; TODO: Missing clip[bss].asm (16 bytes) somewhere in there...
|
||
_continues_total dd ?
|
||
; char word_13EDC[]
|
||
word_13EDC dw ?
|
||
word_13EDE dw ?
|
||
; char word_13EE0[]
|
||
word_13EE0 dw ?
|
||
word_13EE2 dw ?
|
||
; char word_13EE4[]
|
||
word_13EE4 dw ?
|
||
word_13EE6 dw ?
|
||
; char word_13EE8[]
|
||
word_13EE8 dw ?
|
||
word_13EEA 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 ?
|
||
byte_14020 db ?
|
||
byte_14021 db ?
|
||
_rank db ?
|
||
db ?
|
||
; void (*font)(void)
|
||
font dd ?
|
||
; void (*off_14028)(void)
|
||
off_14028 dd ?
|
||
; void (*off_1402C)(void)
|
||
off_1402C dd ?
|
||
; int word_14030
|
||
word_14030 dw ?
|
||
; int word_14032
|
||
word_14032 dw ?
|
||
; void (*off_14034)(void)
|
||
off_14034 dd ?
|
||
db ? ;
|
||
byte_14039 db ?
|
||
byte_1403A db ?
|
||
byte_1403B db ?
|
||
byte_1403C db ?
|
||
byte_1403D db ?
|
||
byte_1403E db ?
|
||
byte_1403F db ?
|
||
byte_14040 db ?
|
||
byte_14041 db ?
|
||
byte_14042 db ?
|
||
db ?
|
||
include th01/hardware/vsync[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 ?
|
||
; void (__interrupt far *off_14150)()
|
||
off_14150 dd ?
|
||
word_14154 dw ?
|
||
word_14156 dw ?
|
||
db ? ;
|
||
_graph_page db ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
unk_141AA 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 ?
|
||
db ? ;
|
||
db ? ;
|
||
db ? ;
|
||
; void (*off_1464A)(void)
|
||
off_1464A dw ?
|
||
word_1464C dw ?
|
||
include th01/hardware/vram_planes[bss].asm
|
||
include libs/master.lib/pal[bss].asm
|
||
include libs/master.lib/fil[bss].asm
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
|
||
end
|