ReC98/th01_fuuin.asm

8115 lines
143 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;
; +-------------------------------------------------------------------------+
; | 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 game_init
call sub_B945
call game_switch_binary
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
call _graph_putsa_fx c, si, [bp+arg_2], [bp+arg_4], word ptr ss:[bx], word ptr ss:[bx+2]
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
call _graph_putsa_fx c, 32, 240, FX_REVERSE or 23h, offset aVb, ds ; "<22><>"
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
call _graph_putsa_fx c, 32, 48, 33h, offset aB@cB@iB@, ds ; "<22>@<40><><EFBFBD>@<40>ʁ@"
call _graph_putsa_fx c, 144, 48, 33h, offset aB@b@cB@b@sob@b, ds ; "<22>@<40>@<40><><EFBFBD>@<40>@<40>O<EFBFBD>@<40>@"
call _graph_putsa_fx c, 352, 48, 33h, offset aB@b@uB@b@u_b@b, ds ; "<22>@<40>@<40><><EFBFBD>@<40>@<40>_<EFBFBD>@<40>@"
call _graph_putsa_fx c, 512, 48, 33h, offset aGxgebGwbeglbGg, ds ; "<22>X<EFBFBD>e<EFBFBD>[<5B>W<EFBFBD>E<EFBFBD><45><EFBFBD>[<5B>g"
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, 64
push ax
push 32
call _graph_putsa_fx
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, 64
push ax
push 144
call _graph_putsa_fx
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, 64
push ax
push 528
call _graph_putsa_fx
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, 64
push ax
push 528
call _graph_putsa_fx
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, 64
push ax
push 560
call _graph_putsa_fx
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
call _graph_move_byterect_interpage c, 0, 384, 288, RES_Y, 0, 384, 0, 1
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
call graph_scrollup pascal, 0
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 _z_Palettes[3 * 3].r, 07h
mov _z_Palettes[3 * 3].g, 0Fh
mov _z_Palettes[3 * 3].b, 07h
mov _z_Palettes[7 * 3].r, 0Fh
mov _z_Palettes[7 * 3].g, 0Fh
mov _z_Palettes[7 * 3].b, 0Fh
push ds
push offset _z_Palettes
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 _z_Palettes[bx+di], 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 _z_Palettes
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 _int06_nop()
_int06_nop 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
_int06_nop endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public GAME_INIT
game_init proc far
push bp
mov bp, sp
cmp _game_initialized, 0
jnz short @@ret
mov _game_initialized, 1
push 6 ; interruptno
call _getvect
pop cx
mov word ptr _int06_old+2, dx
mov word ptr _int06_old, ax
push seg _int06_game_exit
push offset _int06_game_exit ; 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 _z_respal_set
call vram_planes_set
@@ret:
pop bp
retf
game_init endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public GAME_EXIT
game_exit proc far
push bp
mov bp, sp
cmp _game_initialized, 1
jnz short @@ret
mov _game_initialized, 0
nopcall game_exit_inner
call respal_free
@@ret:
pop bp
retf
game_exit endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public GAME_SWITCH_BINARY
game_switch_binary proc far
push bp
mov bp, sp
cmp _game_initialized, 1
jnz short @@ret
nopcall game_exit_inner
call _z_text_25line
push 0
call _z_text_setcursor
pop cx
call _z_text_clear
call _z_text_show
mov _game_initialized, 0
@@ret:
pop bp
retf
game_switch_binary endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
game_exit_inner proc far
push bp
mov bp, sp
mov _game_initialized, 0
push seg _int06_nop
push offset _int06_nop ; isr
push 6 ; interruptno
call _setvect
call _vsync_exit
call _z_text_clear
call sub_D4FE
call sub_D094
call egc_start
pushd [_int06_old] ; isr
push 6 ; interruptno
call _setvect
add sp, 0Ch
pop bp
retf
game_exit_inner endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
; void __interrupt _int06_game_exit()
_int06_game_exit 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 game_exit
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
_int06_game_exit endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
game_exit_print_error 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 game_exit
push ss
lea ax, [bp+@@buffer]
push ax
call _z_text_print
push 1 ; status
call _exit
; ---------------------------------------------------------------------------
add sp, 12h
leave
retf
game_exit_print_error 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 _z_Palettes
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 _z_palette_black
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
include th01/hardware/color.asm
; =============== 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 _z_palette_set_show
add sp, 8
inc si
loc_D21A:
cmp si, COLOR_COUNT
jl short loc_D1E1
pop si
pop bp
retf
sub_D1D9 endp
include th01/hardware/palette_set_show.asm
; =============== 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, _page_back
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 _page_back
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
include th01/hardware/palette_black.asm
; =============== 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, _z_Palettes[bx+di]
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 _z_palette_show_single
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 _z_Palettes ; 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 _z_palette_show_single
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
include th01/hardware/palette_white.asm
; =============== 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, _z_Palettes[bx+di]
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 _z_palette_show_single
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 _z_Palettes ; 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 _z_palette_show_single
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, _z_Palettes[bx].b
cbw
push ax
mov bx, si
imul bx, 3
mov al, _z_Palettes[bx].g
cbw
push ax
mov bx, si
imul bx, 3
mov al, _z_Palettes[bx].r
cbw
push ax
push si
call _z_palette_show_single
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
include th01/hardware/graph_r.asm
extern _graph_putsa_fx:proc
extern _graph_move_byterect_interpage:proc
extern _z_respal_set:proc
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 _graph_putsa_fx
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
public _game_initialized
_game_initialized db 0
db 0
include th01/hardware/palette[data].asm
include th01/hardware/graph_r[data].asm
include th01/hardware/respal[data].asm
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 *int06_old)()
_int06_old dd ?
include th01/hardware/graph[bss].asm
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