ReC98/th01_fuuin.asm

4936 lines
99 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
.386 ; ... then switch to what we actually need.
; And yes, we can't move this to an include file for some reason.
BINARY = 'E'
include ReC98.inc
include th01/th01.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 __mbcjmstojis:proc
extern __setargv__:proc ; main() needs both to be set
extern __setenvp__:proc
extern _access:proc
extern _close:proc
extern _execl:proc
extern _exit:proc
extern _farfree:proc
extern _farmalloc:proc
extern _fclose:proc
extern _filelength:proc
extern _fopen:proc
extern _int86:proc
extern _intdosx:proc
extern _memcmp:proc
extern _open:proc
extern _printf:proc
extern _proc:proc
extern _puts:proc
extern _read:proc
extern _segread:proc
extern _strcmp:proc
extern _strcpy:proc
extern _vsprintf:proc
extern _write:proc
fuuin_02 group fuuin_02_TEXT, fuuin_02__TEXT
; ===========================================================================
; 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
extern _scoredat_name_byte_encode:proc
extern _scoredat_load:proc
extern _scoredat_name_get:proc
fuuin_02_TEXT ends
fuuin_02__TEXT segment byte public 'CODE' use16
assume cs:fuuin_02
; =============== 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 _graph_printf_fx
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 _graph_printf_fx
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 _graph_printf_fx
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 _graph_printf_fx
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 _graph_printf_fx
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 _graph_printf_fx
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 _graph_printf_fx
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 _graph_printf_fx
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, _scoredat_points
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 fuuin_02:sub_A168
add sp, 12h
cmp si, di
jz short loc_ABEE
mov ax, si
add ax, ax
les bx, _scoredat_stages
add bx, ax
cmp word ptr es:[bx], SCOREDAT_CLEARED
jl short loc_ABF8
loc_ABEE:
cmp si, di
jnz short loc_AC3F
cmp [bp+arg_6], SCOREDAT_CLEARED
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, _scoredat_stages
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 fuuin_02: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, _scoredat_stages
add bx, ax
cmp word ptr es:[bx], SCOREDAT_CLEARED_MAKAI
jz short loc_AC5D
loc_AC53:
cmp si, di
jnz short loc_AC87
cmp [bp+arg_6], SCOREDAT_CLEARED_MAKAI
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, _scoredat_stages
add bx, ax
cmp word ptr es:[bx], SCOREDAT_CLEARED_JIGOKU
jz short loc_ACA5
loc_AC9B:
cmp si, di
jnz short loc_ACCD
cmp [bp+arg_6], SCOREDAT_CLEARED_JIGOKU
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 _scoredat_routes+2
add bx, word ptr _scoredat_routes
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, _scoredat_routes
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 _graph_printf_fx
add sp, 0Eh
cmp di, si
jnz short loc_AD65
mov _name_entered_left, 144
mov ax, si
shl ax, 4
add ax, 64
mov _name_entered_top, ax
loc_AD65:
inc si
loc_AD66:
cmp si, SCOREDAT_PLACES
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
@@left = word ptr 6
@@top = word ptr 8
arg_4 = word ptr 0Ah
enter 4, 0
push si
push di
mov si, [bp+@@left]
mov di, [bp+@@top]
mov [bp+var_2], 0
call _egc_copy_rect_1_to_0 c, si, di, 32, 16
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 _graph_printf_fx
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 _graph_printf_fx
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 _graph_printf_fx
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 _graph_printf_fx
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 _graph_printf_fx
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:
call _egc_copy_rect_1_to_0 c, _name_entered_left, _name_entered_top, 128, 16
push word ptr [bp+0Ch]
push word ptr [bp+_arglist] ; arglist
push ds
push offset aS ; "%s"
push 23h ; '#' ; int
push _name_entered_top ; int
push _name_entered_left ; int
call _graph_printf_fx
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 _name_entered_top ; int
push _name_entered_left ; int
call _graph_printf_fx
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, _scoredat_names
add bx, si
mov al, es:[bx]
call fuuin_02:_scoredat_name_byte_encode pascal, ax
pop cx
les bx, _scoredat_names
add bx, si
mov es:[bx], al
inc si
loc_B4AF:
cmp si, size scoredat_names_t
jl short loc_B496
push size scoredat_names_t
push word ptr _scoredat_names+2
push word ptr _scoredat_names
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax
call _write
add sp, 8
push size scoredat_points_t
push word ptr _scoredat_points+2
push word ptr _scoredat_points
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax
call _write
add sp, 8
push size scoredat_stages_t
push word ptr _scoredat_stages+2
push word ptr _scoredat_stages
les bx, [bp+stream]
mov al, es:[bx+4]
cbw
push ax
call _write
add sp, 8
push size scoredat_routes_t
push word ptr _scoredat_routes+2
push word ptr _scoredat_routes
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 fuuin_02:sub_A44F
loc_B566:
push 0
call fuuin_02: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:
call _frame_delay stdcall, 4
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 _scoredat_names+2
add bx, word ptr _scoredat_names
mov es:[bx], al
inc si
loc_B5CB:
cmp si, SCOREDAT_NAME_BYTES
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
@@place = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
@@route = 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 _graph_printf_fx
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 fuuin_02:_scoredat_load
or ax, ax
jz short loc_B686
jmp loc_B941
; ---------------------------------------------------------------------------
loc_B686:
mov [bp+var_2], 0
mov [bp+@@place], 0
jmp short loc_B6B2
; ---------------------------------------------------------------------------
loc_B692:
mov ax, [bp+@@place]
imul ax, ((SCOREDAT_NAME_KANJI + 1) * word)
lea dx, [bp+var_C0]
add ax, dx
call fuuin_02:_scoredat_name_get c, [bp+@@place], ax, ss
add [bp+@@place], 1
adc [bp+var_2], 0
loc_B6B2:
cmp [bp+var_2], 0
jl short loc_B692
jnz short loc_B6C0
cmp [bp+@@place], SCOREDAT_PLACES
jb short loc_B692
loc_B6C0:
mov [bp+var_2], 0
mov [bp+@@place], 0
jmp short loc_B6F5
; ---------------------------------------------------------------------------
loc_B6CC:
mov ax, [bp+@@place]
shl ax, 2
les bx, _scoredat_points
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+@@place], 1
adc [bp+var_2], 0
loc_B6F5:
cmp [bp+var_2], 0
jl short loc_B6CC
jnz short loc_B703
cmp [bp+@@place], SCOREDAT_PLACES
jb short loc_B6CC
loc_B703:
call fuuin_02:sub_A44F
cmp [bp+var_2], 0
jle short loc_B710
jmp loc_B8BD
; ---------------------------------------------------------------------------
loc_B710:
jl short loc_B71B
cmp [bp+@@place], SCOREDAT_PLACES
jb short loc_B71B
jmp loc_B8BD
; ---------------------------------------------------------------------------
loc_B71B:
mov [bp+var_6], 0
mov [bp+var_8], (SCOREDAT_PLACES - 1)
jmp loc_B7D9
; ---------------------------------------------------------------------------
loc_B728:
push ss
mov ax, [bp+var_8]
imul ax, ((SCOREDAT_NAME_KANJI + 1) * word)
lea dx, [bp+var_D2]
add ax, dx
push ax ; src
mov ax, [bp+var_8]
imul ax, ((SCOREDAT_NAME_KANJI + 1) * word)
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, _scoredat_points
add bx, ax
mov dx, es:[bx+2]
mov ax, es:[bx]
mov bx, [bp+var_8]
shl bx, 2
les si, _scoredat_points
add si, bx
mov es:[si+2], dx
mov es:[si], ax
mov ax, [bp+var_8]
dec ax
add ax, ax
les bx, _scoredat_stages
add bx, ax
mov ax, es:[bx]
mov dx, [bp+var_8]
add dx, dx
les bx, _scoredat_stages
add bx, dx
mov es:[bx], ax
mov bx, [bp+var_8]
add bx, bx
mov es, word ptr _scoredat_routes+2
add bx, word ptr _scoredat_routes
mov al, es:[bx-2]
mov dx, [bp+var_8]
add dx, dx
les bx, _scoredat_routes
add bx, dx
mov es:[bx], al
mov bx, [bp+var_8]
add bx, bx
mov es, word ptr _scoredat_routes+2
add bx, word ptr _scoredat_routes
mov al, es:[bx-1]
mov bx, [bp+var_8]
add bx, bx
mov es, word ptr _scoredat_routes+2
add bx, word ptr _scoredat_routes
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+@@place]
jbe short loc_B7F1
jmp loc_B728
; ---------------------------------------------------------------------------
loc_B7F1:
mov [bp+var_A], 0
mov [bp+var_C], (size scoredat_names_t - 1)
jmp short loc_B81E
; ---------------------------------------------------------------------------
loc_B7FD:
mov bx, [bp+var_C]
mov es, word ptr _scoredat_names+2
add bx, word ptr _scoredat_names
mov al, es:[bx-SCOREDAT_NAME_BYTES]
les bx, _scoredat_names
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+@@place]
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+@@route+2]
push word ptr [bp+@@route]
push di
push [bp+arg_2]
push [bp+arg_0]
push [bp+@@place]
call sub_A9FF
add sp, 10h
call sub_A801
mov ax, [bp+@@place]
shl ax, 2
les bx, _scoredat_points
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+@@place]
add ax, ax
les bx, _scoredat_stages
add bx, ax
mov es:[bx], di
mov ax, [bp+@@place]
add ax, ax
les bx, _scoredat_routes
add bx, ax
push es
les si, [bp+@@route]
mov al, es:[si]
pop es
mov es:[bx], al
les bx, [bp+@@route]
mov al, es:[bx+1]
mov bx, [bp+@@place]
add bx, bx
mov es, word ptr _scoredat_routes+2
add bx, word ptr _scoredat_routes
mov es:[bx+1], al
push [bp+@@place]
call sub_B53B
pop cx
jmp short loc_B8FC
; ---------------------------------------------------------------------------
loc_B8BD:
push ss
lea ax, [bp+var_C0]
push ax
push word ptr [bp+@@route+2]
push word ptr [bp+@@route]
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 fuuin_02: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
call @$bdla$qnv c, word ptr _scoredat_names, word ptr _scoredat_names+2
call @$bdla$qnv c, word ptr _scoredat_stages, word ptr _scoredat_stages+2
call @$bdla$qnv c, word ptr _scoredat_routes, word ptr _scoredat_routes+2
call @$bdla$qnv c, word ptr _scoredat_points, word ptr _scoredat_points+2
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
call grp_palette_settone pascal, 0
call grp_put_palette_show_1 pascal, ds, offset aEd1a_grp ; "ED1A.grp"
push 0
call sub_C78B
pop cx
call grp_palette_black_in pascal, 6
call _frame_delay stdcall, 100
pop cx
call grp_palette_white_out pascal, 5
call _frame_delay stdcall, 100
pop cx
push 1
call sub_C78B
pop cx
call grp_palette_settone pascal, 100
call _frame_delay stdcall, 13
pop cx
push 2
call sub_C78B
pop cx
call _frame_delay stdcall, 13
pop cx
push 3
call sub_C78B
pop cx
call _frame_delay stdcall, 50
pop cx
call grp_put_palette_show_1 pascal, ds, offset aEd1b_grp ; "ED1B.grp"
push 0
call sub_C78B
pop cx
call _frame_delay stdcall, 10
pop cx
push 1
call sub_C78B
pop cx
call _frame_delay stdcall, 10
pop cx
push 2
call sub_C78B
pop cx
call _frame_delay stdcall, 100
pop cx
call grp_palette_black_out pascal, 6
push 0
call _graph_accesspage_func
pop cx
call _z_graph_clear
call grp_palette_settone pascal, 100
call grp_put_palette_show_1 pascal, ds, offset aEd1c_grp ; "ED1C.GRP"
xor si, si
jmp short loc_BA49
; ---------------------------------------------------------------------------
loc_BA28:
push 0
call sub_C78B
pop cx
call _frame_delay stdcall, 20
pop cx
push 1
call sub_C78B
pop cx
call _frame_delay stdcall, 20
pop cx
inc si
loc_BA49:
cmp si, 6
jl short loc_BA28
push 0
call sub_C78B
pop cx
call _frame_delay stdcall, 40
pop cx
push 2
call sub_C78B
pop cx
call _frame_delay stdcall, 40
pop cx
call grp_put_palette_show_1 pascal, ds, offset aEd1d_grp ; "ED1D.GRP"
push 3
call sub_C78B
pop cx
call _frame_delay stdcall, 70
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:
call _frame_delay stdcall, 2
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
call _frame_delay stdcall, 60
pop cx
push 0
call sub_C78B
pop cx
call _frame_delay stdcall, 20
pop cx
push 3
call sub_C78B
pop cx
call grp_palette_settone pascal, 105
call grp_put_palette_show_1 pascal, ds, offset aEd1e_grp ; "ED1E.GRP"
push 0
call sub_C78B
pop cx
xor si, si
jmp short loc_BB79
; ---------------------------------------------------------------------------
loc_BB62:
mov ax, si
imul ax, 5
add ax, 110
call grp_palette_settone pascal, ax
call _frame_delay stdcall, 16
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
call _frame_delay stdcall, 8
pop cx
push 2
call sub_C78B
pop cx
call _frame_delay stdcall, 8
pop cx
mov ax, si
imul ax, 5
add ax, 130
call grp_palette_settone pascal, ax
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
call grp_palette_black_out pascal, 10
call _z_graph_clear
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
call _frame_delay stdcall, 1
pop cx
test si, 1
jz short loc_BC2D
push 170
jmp short loc_BC2F
; ---------------------------------------------------------------------------
loc_BC2D:
push 100
loc_BC2F:
call grp_palette_settone
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
call _frame_delay stdcall, 2
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
call grp_put_palette_show_1 pascal, ds, offset aEd2a_grp ; "ed2a.grp"
call grp_palette_settone pascal, 200
push 0
call sub_C78B
pop cx
call grp_palette_white_in pascal, 5
call _frame_delay stdcall, 120
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
call _frame_delay stdcall, 50
pop cx
push 3
call sub_C78B
pop cx
call _frame_delay stdcall, 100
pop cx
call graph_type_ank pascal, 232, 316, 22, ds, offset aTryToNoContinu ; "Try to 'No continue'!!"
push 232
push 348
push 22
push ds
push offset aBadEnding2 ; " Bad Ending2 "
jmp loc_BDAC
; ---------------------------------------------------------------------------
loc_BCFC:
call grp_put_palette_show_1 pascal, ds, offset aEd4a_grp ; "ed4a.grp"
xor si, si
jmp short loc_BD2A
; ---------------------------------------------------------------------------
loc_BD09:
push 0
call sub_C78B
pop cx
call _frame_delay stdcall, 3
pop cx
push 1
call sub_C78B
pop cx
call _frame_delay stdcall, 3
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
call _frame_delay stdcall, 3
pop cx
push 1
call sub_C78B
pop cx
call _frame_delay stdcall, 3
pop cx
mov ax, si
imul ax, 5
add ax, 100
call grp_palette_settone pascal, ax
inc si
loc_BD62:
cmp si, 14h
jl short loc_BD33
push 2
call sub_C78B
pop cx
call grp_palette_white_in pascal, 5
call _frame_delay stdcall, 200
pop cx
push 3
call sub_C78B
pop cx
call _frame_delay stdcall, 100
pop cx
call graph_type_ank pascal, 232, 316, 22, ds, offset aTryToNoConti_0 ; "Try to 'No continue'!!"
push 232
push 348
push 22
push ds
push offset aBadEnding1 ; " Bad Ending1 "
loc_BDAC:
call graph_type_ank
call _frame_delay stdcall, 300
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
call grp_put_palette_show_1 pascal, ds, offset aEd3a_grp ; "ed3a.grp"
call grp_palette_settone pascal, 200
xor si, si
jmp short loc_BE07
; ---------------------------------------------------------------------------
loc_BDD6:
push 0
call sub_C78B
pop cx
call _frame_delay stdcall, 8
pop cx
push 1
call sub_C78B
pop cx
call _frame_delay stdcall, 8
pop cx
mov ax, si
imul ax, 5
mov dx, 200
sub dx, ax
call grp_palette_settone pascal, dx
inc si
loc_BE07:
cmp si, 14h
jl short loc_BDD6
call grp_palette_settone pascal, 100
xor si, si
jmp short loc_BE38
; ---------------------------------------------------------------------------
loc_BE17:
push 0
call sub_C78B
pop cx
call _frame_delay stdcall, 8
pop cx
push 1
call sub_C78B
pop cx
call _frame_delay stdcall, 8
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
call _frame_delay stdcall, 8
pop cx
mov ax, si
imul ax, 10
add ax, 100
call grp_palette_settone pascal, ax
inc si
loc_BE64:
cmp si, 0Ah
jl short loc_BE41
call grp_palette_settone pascal, 200
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
call grp_put_palette_show_1 pascal, ds, offset aEd3b_grp ; "ed3b.grp"
push 0
call sub_C78B
pop cx
call grp_palette_white_in pascal, 4
call _frame_delay stdcall, 250
pop cx
push 1
call sub_C78B
pop cx
call _frame_delay stdcall, 200
pop cx
push 2
call sub_C78B
pop cx
call _frame_delay stdcall, 150
pop cx
push 3
call sub_C78B
pop cx
call _frame_delay stdcall, 150
pop cx
call graph_type_ank pascal, 256, 316, 16, ds, offset aCongratulation ; "Congratulations!"
call graph_type_ank pascal, 232, 348, 22, ds, offset aGoodEnding2 ; " Good Ending2 "
call _frame_delay stdcall, 300
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
call grp_put_palette_show_1 pascal, ds, offset aEd5a_grp ; "ed5a.grp"
push 0
call sub_C78B
pop cx
call grp_palette_white_in pascal, 4
call _frame_delay stdcall, 300
pop cx
xor si, si
jmp short loc_BF51
; ---------------------------------------------------------------------------
loc_BF30:
push 1
call sub_C78B
pop cx
call _frame_delay stdcall, 8
pop cx
push 2
call sub_C78B
pop cx
call _frame_delay stdcall, 8
pop cx
inc si
loc_BF51:
cmp si, 0Fh
jl short loc_BF30
call grp_put_palette_show_1 pascal, ds, offset aEd5b_grp ; "ed5b.grp"
push 0
call sub_C78B
pop cx
call _frame_delay stdcall, 150
pop cx
push 1
call sub_C78B
pop cx
call _frame_delay stdcall, 100
pop cx
push 2
call sub_C78B
pop cx
call _frame_delay stdcall, 100
pop cx
push 3
call sub_C78B
pop cx
call _frame_delay stdcall, 100
pop cx
call grp_put_palette_show_1 pascal, ds, offset aEd5c_grp ; "ed5c.grp"
push 0
call sub_C78B
pop cx
call _frame_delay stdcall, 100
pop cx
push 1
call sub_C78B
pop cx
call _frame_delay stdcall, 150
pop cx
push 2
call sub_C78B
pop cx
call _frame_delay stdcall, 150
pop cx
call graph_type_ank pascal, 256, 316, 16, ds, offset aCongratulati_0 ; "Congratulations!"
call graph_type_ank pascal, 232, 348, 22, ds, offset aGoodEnding1 ; " Good Ending1 "
call _frame_delay stdcall, 300
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
call _frame_delay stdcall, 150
pop cx
call grp_palette_black_out pascal, 5
call _z_graph_clear
push [bp+arg_0]
call sub_C78B
pop cx
call grp_palette_black_in pascal, 5
call _frame_delay stdcall, 50
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
call grp_palette_black_out pascal, 10
call _z_graph_clear
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 grp_put_palette_show_1
push 0
call sub_C78B
pop cx
call grp_palette_settone pascal, 100
call _frame_delay stdcall, 50
pop cx
call graph_type_ank pascal, 272, 316, 13, ds, offset aStage5Boss ; "STAGE 5 BOSS"
call graph_type_ank pascal, 232, 348, 22, ds, offset aGatekeeperSing ; "Gatekeeper 'SinGyoku'"
push 1
call sub_C009
cmp byte_14021, 1
jnz short loc_C0E1
call graph_type_ank pascal, 272, 316, 13, ds, offset aStage10Boss ; "STAGE 10 BOSS"
push 232
push 348
push 22
push ds
push offset aEvileyesYuugen ; "EvilEyes 'YuugenMagan'"
jmp short loc_C0FE
; ---------------------------------------------------------------------------
loc_C0E1:
call graph_type_ank pascal, 272, 316, 13, ds, offset aStage10Boss_0 ; "STAGE 10 BOSS"
push 232
push 348
push 23
push ds
push offset aRevengefulGhos ; "Revengeful Ghost 'Mima'"
loc_C0FE:
call graph_type_ank
push 2
call sub_C009
cmp byte_14021, 1
jnz short loc_C12E
call graph_type_ank pascal, 272, 316, 13, ds, offset aStage15Boss ; "STAGE 15 BOSS"
push 232
push 348
push 22
push ds
push offset aInnocenceDevil ; "Innocence Devil 'Elis'"
jmp short loc_C14B
; ---------------------------------------------------------------------------
loc_C12E:
call graph_type_ank pascal, 272, 316, 13, ds, offset aStage15Boss_0 ; "STAGE 15 BOSS"
push 256
push 348
push 17
push ds
push offset aHellmoonKikuri ; "HellMoon 'Kikuri'"
loc_C14B:
call graph_type_ank
push 3
call sub_C009
cmp byte_14021, 1
jnz short loc_C17B
call graph_type_ank pascal, 272, 316, 13, ds, offset aStage20Boss ; "STAGE 20 BOSS"
push 232
push 348
push 22
push ds
push offset aAngelOfDeathSa ; "Angel of Death'Sariel'"
jmp short loc_C198
; ---------------------------------------------------------------------------
loc_C17B:
call graph_type_ank pascal, 272, 316, 13, ds, offset aStage20Boss_0 ; "STAGE 20 BOSS"
push 224
push 348
push 24
push ds
push offset aAstralKnightKo ; "Astral Knight 'Konngara'"
loc_C198:
call graph_type_ank
call _frame_delay stdcall, 150
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 _graph_printf_fx
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@
call grp_palette_black_out pascal, 10
push 1
call _graph_accesspage_func
pop cx
call _grp_put_palette_show c, offset aEndm_a_grp, ds ; "endm_a.grp"
call _graph_copy_page_back_to_front
push 0
call _graph_accesspage_func
pop cx
call grp_palette_black_in pascal, 8
call graph_type_kanji pascal, 400, 32, 5, ds, offset aUmx_1 ; "<22><><EFBFBD><EFBFBD><EFBFBD>ˈٓ`"
call graph_type_ank pascal, 496, 32, 3, ds, offset aVer ; "ver"
call graph_type_ank pascal, 528, 32, 4, ds, offset a1_10 ; "1.10"
call _frame_delay stdcall, 30
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 _graph_printf_fx
add sp, 0Eh
call _frame_delay stdcall, 30
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 _graph_printf_fx
add sp, 0Eh
call _frame_delay stdcall, 30
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 _graph_printf_fx
add sp, 0Eh
call _frame_delay stdcall, 30
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 _graph_printf_fx
add sp, 0Ah
call _frame_delay stdcall, 30
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 _graph_printf_fx
add sp, 0Eh
call _frame_delay stdcall, 30
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 _graph_printf_fx
add sp, 0Eh
call _frame_delay stdcall, 30
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 _graph_printf_fx
add sp, 0Eh
call _frame_delay stdcall, 30
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 _graph_printf_fx
add sp, 0Eh
call _frame_delay stdcall, 30
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 _graph_printf_fx
add sp, 0Eh
call _frame_delay stdcall, 30
pop cx
call graph_type_ank pascal, 296, 352, 29, ds, offset aThankYouForPla ; " Thank you for Playing !! "
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 _graph_printf_fx
add sp, 0Ah
call _frame_delay stdcall, 50
pop cx
call sub_C1A8
xor si, si
call _frame_delay stdcall, 100
pop cx
call sub_A44F
jmp short loc_C6B1
; ---------------------------------------------------------------------------
loc_C6A1:
push 0
call sub_A265
pop cx
call _frame_delay stdcall, 1
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 _graph_copy_page_back_to_front
push 0
call _graph_accesspage_func
pop cx
call grp_palette_settone pascal, 50
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
call _z_palette_set_all_show c, offset _z_Palettes, ds
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
include th01/formats/grp_put_palette_show_1.asm
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
extern _frame_delay:proc
extern GRP_PALETTE_SETTONE:proc
extern GRP_PALETTE_BLACK_OUT:proc
extern GRP_PALETTE_BLACK_IN:proc
extern GRP_PALETTE_WHITE_OUT:proc
extern GRP_PALETTE_WHITE_IN:proc
extern GRAPH_TYPE_ANK:proc
extern GRAPH_TYPE_KANJI:proc
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
extern _game_init:proc
extern _game_switch_binary:proc
fuuin_07_TEXT ends
; ===========================================================================
; Segment type: Pure code
fuuin_08_TEXT segment byte public 'CODE' use16
extern _z_graph_exit:proc
extern _graph_showpage_func:proc
extern _graph_accesspage_func:proc
extern _z_palette_set_all_show:proc
extern _z_palette_set_show:proc
extern _z_graph_clear:proc
extern _z_graph_clear_0:proc
extern _graph_copy_page_back_to_front:proc
extern _z_palette_black:proc
extern _z_palette_black_out:proc
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
extern _graph_printf_fx:proc
fuuin_09_TEXT ends
; ===========================================================================
; Segment type: Pure code
fuuin_10_TEXT segment byte public 'CODE' use16
extern _grp_put_palette_show:proc
fuuin_10_TEXT ends
; ===========================================================================
fuuin_11_TEXT segment byte public 'CODE' use16
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
include th01/hiscore/scorelod[data].asm
; 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
include th01/end/type[data].asm
include th01/hardware/vsync[data].asm
include th01/hardware/ztext[data].asm
include th01/core/initexit[data].asm
include th01/hardware/palette[data].asm
include th01/hardware/graph_r[data].asm
include th01/hardware/respal[data].asm
include th01/formats/grp_ptn[data].asm
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 ?
db 308 dup(?)
byte_14020 db ?
byte_14021 db ?
public _rank
_rank db ?
db ?
include th01/hiscore/hiscore[bss].asm
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
db 256 dup(?)
include th01/core/initexit[bss].asm
include th01/hardware/graph[bss].asm
db 80 dup(?)
include th01/formats/grp_palette[bss].asm
db 1136 dup(?)
include th01/formats/grp_buf[bss].asm
include th01/hardware/vram_planes[bss].asm
include libs/master.lib/pal[bss].asm
include libs/master.lib/fil[bss].asm
db 16 dup (?)
end