ReC98/th05_maine.asm

8321 lines
157 KiB
NASM
Raw Blame History

This file contains ambiguous Unicode characters

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 : 57F21130457B229B7ED74E30D2B6E6E5
; File Name : th05/MAINE.EXE
; Format : MS-DOS executable (EXE)
; Base Address: 0h Range: 0h-1C6F0h Loaded length: 128A6h
; 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 th05/th05.inc
extern _execl:proc
extern _tolower:proc
extern __ctype:byte
; ===========================================================================
; Segment type: Pure code
_TEXT segment word public 'CODE' use16
assume cs:_TEXT
assume es:nothing, ds:_DATA, fs:nothing, gs:nothing
include libs/master.lib/bfnt_entry_pat.asm
include libs/master.lib/bfnt_header_read.asm
include libs/master.lib/bfnt_header_analysis.asm
include libs/master.lib/atrtcmod.asm
include libs/master.lib/bcloser.asm
include libs/master.lib/bfill.asm
include libs/master.lib/bfnt_palette_set.asm
include libs/master.lib/bgetc.asm
include libs/master.lib/palette_black_in.asm
include libs/master.lib/palette_black_out.asm
include libs/master.lib/bopenr.asm
include libs/master.lib/bread.asm
include libs/master.lib/bseek.asm
include libs/master.lib/bseek_.asm
include libs/master.lib/dos_axdx.asm
include libs/master.lib/dos_filesize.asm
include libs/master.lib/dos_keyclear.asm
include libs/master.lib/dos_read.asm
include libs/master.lib/dos_seek.asm
include libs/master.lib/dos_setvect.asm
include libs/master.lib/egc.asm
include libs/master.lib/file_append.asm
include libs/master.lib/file_close.asm
include libs/master.lib/file_create.asm
include libs/master.lib/file_exist.asm
include libs/master.lib/file_read.asm
include libs/master.lib/file_ropen.asm
include libs/master.lib/file_seek.asm
include libs/master.lib/file_size.asm
include libs/master.lib/file_write.asm
include libs/master.lib/dos_close.asm
include libs/master.lib/dos_ropen.asm
include libs/master.lib/grcg_boxfill.asm
include libs/master.lib/grcg_byteboxfill_x.asm
include libs/master.lib/grcg_circlefill.asm
include libs/master.lib/grc_setclip.asm
include libs/master.lib/grcg_hline.asm
include libs/master.lib/grcg_pset.asm
include libs/master.lib/grcg_setcolor.asm
include libs/master.lib/grcg_vline.asm
include libs/master.lib/gdc_outpw.asm
include libs/master.lib/get_machine_98.asm
include libs/master.lib/get_machine_at.asm
include libs/master.lib/get_machine_dosbox.asm
include libs/master.lib/check_machine_fmr.asm
include libs/master.lib/get_machine.asm
include libs/master.lib/gaiji_putca.asm
include libs/master.lib/gaiji_putsa.asm
include libs/master.lib/graph_400line.asm
include libs/master.lib/graph_clear.asm
include libs/master.lib/graph_copy_page.asm
include libs/master.lib/graph_extmode.asm
include libs/master.lib/graph_hide.asm
include libs/master.lib/graph_pi_free.asm
include libs/master.lib/graph_pi_load_pack.asm
include libs/master.lib/graph_scrollup.asm
include libs/master.lib/graph_show.asm
include libs/master.lib/iatan2.asm
include libs/master.lib/isqrt.asm
include libs/master.lib/js_end.asm
include libs/master.lib/palette_show.asm
include libs/master.lib/pfclose.asm
include libs/master.lib/pfgetc.asm
include libs/master.lib/pfread.asm
include libs/master.lib/pfrewind.asm
include libs/master.lib/pfseek.asm
include libs/master.lib/random.asm
include libs/master.lib/rottbl.asm
include libs/master.lib/smem_release.asm
include libs/master.lib/smem_wget.asm
include libs/master.lib/soundio.asm
include libs/master.lib/text_clear.asm
include libs/master.lib/text_putsa.asm
include libs/master.lib/vsync.asm
include libs/master.lib/vsync_wait.asm
include libs/master.lib/palette_white_in.asm
include libs/master.lib/palette_white_out.asm
include libs/master.lib/hmem_lallocate.asm
include libs/master.lib/mem_assign_dos.asm
include libs/master.lib/mem_assign.asm
include libs/master.lib/memheap.asm
include libs/master.lib/mem_unassign.asm
include libs/master.lib/super_free.asm
include libs/master.lib/super_entry_pat.asm
include libs/master.lib/super_entry_at.asm
include libs/master.lib/super_entry_bfnt.asm
include libs/master.lib/super_cancel_pat.asm
include libs/master.lib/super_put_rect.asm
include libs/master.lib/super_put.asm
include libs/master.lib/super_convert_tiny.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_2DB6 proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
push bp
mov bp, sp
push ds
push si
push di
mov es, graph_VramSeg
mov cx, [bp+arg_4]
mov di, [bp+arg_2]
mov bx, [bp+arg_0]
shl bx, 1
mov bp, [bx+21DCh]
mov ds, word ptr [bx+1DDCh]
mov ax, di
shl ax, 2
add di, ax
shl di, 4
mov ax, cx
and cx, 7
shr ax, 3
add di, ax
xor si, si
lodsw
cmp al, 80h
jnz short loc_2E3F
GRCG_NOINT_SETMODE_VIA_MOV al, GC_RMW
push ax
mov dx, bp
mov al, 50h ; 'P'
mul dl
mov bp, ax
shr dl, 1
pop ax
nop
loc_2E02:
GRCG_SETCOLOR_DIRECT_INLINED ah
mov ch, dl
loc_2E1C:
lodsw
mov bl, ah
xor ah, ah
ror ax, cl
mov es:[di], ax
xor bh, bh
ror bx, cl
mov es:[di+50h], bx
add di, 0A0h
dec ch
jnz short loc_2E1C
sub di, bp
lodsw
cmp al, GC_TDW
jz short loc_2E02
out 7Ch, al
loc_2E3F:
pop di
pop si
pop ds
pop bp
retf 6
sub_2DB6 endp
include libs/master.lib/js_start.asm
include libs/master.lib/js_sense.asm
include libs/master.lib/bgm_bell_org.asm
include libs/master.lib/bgm_mget.asm
include libs/master.lib/bgm_read_sdata.asm
include libs/master.lib/bgm_timer.asm
include libs/master.lib/bgm_pinit.asm
include libs/master.lib/bgm_timerhook.asm
include libs/master.lib/bgm_play.asm
include libs/master.lib/bgm_sound.asm
include libs/master.lib/bgm_effect_sound.asm
include libs/master.lib/bgm_stop_play.asm
include libs/master.lib/bgm_set_tempo.asm
include libs/master.lib/bgm_init_finish.asm
include libs/master.lib/bgm_stop_sound.asm
include libs/master.lib/graph_pack_put_8_noclip.asm
include libs/master.lib/graph_gaiji_puts.asm
include libs/master.lib/graph_gaiji_putc.asm
include libs/master.lib/pfint21.asm
db 0
include th03/formats/pfopen.asm
include libs/master.lib/pf_str_ieq.asm
_TEXT ends
; ===========================================================================
; Segment type: Pure code
maine_01_TEXT segment byte public 'CODE' use16
assume cs:maine_01_TEXT
;org 5
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
include th03/formats/cfg_lres.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __stdcall sub_A576(char *arg0)
sub_A576 proc near
_arg0 = dword ptr 4
push bp
mov bp, sp
call cdg_freeall
call graph_hide
call text_clear
call game_exit
pushd 0
pushd [bp+_arg0] ; arg0
pushd [bp+_arg0] ; path
call _execl
add sp, 0Ch
pop bp
retn 4
sub_A576 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A5A4 proc near
push bp
mov bp, sp
les bx, _resident
cmp es:[bx+resident_t.end_sequence], ES_CONTINUED
jnz short loc_A5BD
les bx, off_10190
mov byte ptr es:[bx+3], '0'
jmp short loc_A5DC
; ---------------------------------------------------------------------------
loc_A5BD:
les bx, _resident
cmp es:[bx+resident_t.end_sequence], ES_EXTRA
jnz short loc_A5D3
les bx, off_10190
mov byte ptr es:[bx+3], '2'
jmp short loc_A5DC
; ---------------------------------------------------------------------------
loc_A5D3:
les bx, off_10190
mov byte ptr es:[bx+3], '1'
loc_A5DC:
les bx, _resident
mov al, es:[bx+resident_t.playchar]
add al, '0'
les bx, off_10190
mov es:[bx+4], al
push word ptr off_10190+2
push bx
call sub_A695
call sub_AFD6
pop bp
retn
sub_A5A4 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 cfg_load_resident
or ax, ax
jz loc_A693
mov _mem_assign_paras, MEM_ASSIGN_PARAS_MAINE
call game_init_main pascal, ds, offset aKaikidan1_dat
les bx, _resident
mov al, es:[bx+resident_t.bgm_mode]
mov ah, 0
push ax
mov al, es:[bx+resident_t.se_mode]
mov ah, 0
push ax
call snd_determine_modes
call snd_load pascal, ds, offset aMiko, SND_LOAD_SE
call graph_show
les bx, _resident
mov eax, es:[bx+resident_t.rand]
mov random_seed, eax
call frame_delay pascal, 100
les bx, _resident
cmp es:[bx+resident_t.end_sequence], ES_CONTINUED
jb short loc_A665
call sub_A5A4
call sub_E41D
jmp short loc_A679
; ---------------------------------------------------------------------------
loc_A665:
les bx, _resident
cmp es:[bx+resident_t.end_sequence], ES_EXTRA
jnz short loc_A67E
call sub_A5A4
call sub_B3CB
call sub_D1B1
loc_A679:
call sub_C1DD
jmp short loc_A684
; ---------------------------------------------------------------------------
loc_A67E:
call sub_C1DD
call sub_D1B1
loc_A684:
kajacall KAJA_SONG_FADE, 4
push ds
push offset arg0 ; "op"
call sub_A576
loc_A693:
pop bp
retf
_main endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A695 proc near
var_2 = word ptr -2
arg_0 = dword ptr 4
enter 2, 0
pushd [bp+arg_0]
call file_ropen
or ax, ax
jnz short loc_A6AD
mov ax, 1
leave
retn 4
; ---------------------------------------------------------------------------
loc_A6AD:
call file_size
mov [bp+var_2], ax
mov word_14F88, 2E88h
push ds
push word_14F88
push ax
call file_read
call file_close
xor ax, ax
leave
retn 4
sub_A695 endp
EGC_START_COPY_DEF 1, near
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A705 proc near
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
arg_6 = word ptr 0Ah
push bp
mov bp, sp
push si
push di
mov si, [bp+arg_6]
mov di, [bp+arg_4]
graph_accesspage 1
push si
push di
push 0
push [bp+arg_2]
push [bp+arg_0]
call pi_slot_put_quarter_mask
call egc_copy_rect_1_to_0 pascal, si, di, (320 shl 16) or 200
pop di
pop si
pop bp
retn 8
sub_A705 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A738 proc near
var_2 = byte ptr -2
var_1 = byte ptr -1
arg_0 = dword ptr 4
enter 2, 0
mov bx, word_14F88
mov cl, [bx]
inc word_14F88
mov bx, word_14F88
mov al, [bx]
mov [bp+var_1], al
inc word_14F88
mov bx, word_14F88
mov al, [bx]
mov [bp+var_2], al
inc word_14F88
mov al, cl
mov ah, 0
mov bx, ax
test (__ctype + 1)[bx], _IS_DIG
jnz short loc_A77F
les bx, [bp+arg_0]
mov ax, word_1500C
mov es:[bx], ax
sub word_14F88, 3
leave
retn 4
; ---------------------------------------------------------------------------
loc_A77F:
mov al, [bp+var_1]
mov ah, 0
mov bx, ax
test (__ctype + 1)[bx], _IS_DIG
jnz short loc_A7A3
mov al, cl
mov ah, 0
add ax, 0FFD0h
les bx, [bp+arg_0]
mov es:[bx], ax
sub word_14F88, 2
leave
retn 4
; ---------------------------------------------------------------------------
loc_A7A3:
mov al, [bp+var_2]
mov ah, 0
mov bx, ax
test (__ctype + 1)[bx], _IS_DIG
jnz short loc_A7D3
mov al, cl
mov ah, 0
add ax, 0FFD0h
imul ax, 0Ah
mov dl, [bp+var_1]
mov dh, 0
add ax, dx
add ax, 0FFD0h
les bx, [bp+arg_0]
mov es:[bx], ax
dec word_14F88
leave
retn 4
; ---------------------------------------------------------------------------
loc_A7D3:
mov al, cl
mov ah, 0
add ax, 0FFD0h
imul ax, 64h
mov dl, [bp+var_1]
mov dh, 0
add dx, 0FFD0h
imul dx, 0Ah
add ax, dx
mov dl, [bp+var_2]
mov dh, 0
add ax, dx
add ax, 0FFD0h
les bx, [bp+arg_0]
mov es:[bx], ax
leave
retn 4
sub_A738 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A7FE proc near
arg_0 = dword ptr 4
push bp
mov bp, sp
mov bx, word_14F88
cmp byte ptr [bx], 2Ch ; ','
loc_A808:
jnz short loc_A819
inc word_14F88
pushd [bp+arg_0]
call sub_A738
pop bp
retn 4
; ---------------------------------------------------------------------------
loc_A819:
les bx, [bp+arg_0]
mov ax, word_1500C
mov es:[bx], ax
pop bp
retn 4
sub_A7FE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A826 proc near
push bp
mov bp, sp
add point_15004.x, 16
cmp point_15004.x, 560
jl short loc_A864
add point_15004.y, 16
mov point_15004.x, 144
cmp point_15004.y, 384
jl short loc_A864
call sub_A8EC
cmp byte_14F8E, 0
jnz short loc_A858
push 0
call sub_A92B
loc_A858:
mov point_15004.x, 80
mov point_15004.y, 320
loc_A864:
pop bp
retn
sub_A826 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A866 proc near
var_2 = word ptr -2
arg_0 = word ptr 4
enter 2, 0
push si
push di
mov cx, 140h
jmp short loc_A8E0
; ---------------------------------------------------------------------------
loc_A871:
egc_selectpat
egc_setrop EGC_COMPAREREAD or EGC_WS_PATREG or EGC_RL_MEMREAD
outw2 EGC_BITLENGTHREG, 0Fh
mov bx, [bp+arg_0]
shl bx, 3
mov ax, cx
and ax, 3
add ax, ax
add bx, ax
outw2 EGC_MASKREG, [bx+732h]
mov ax, cx
shl ax, 6
mov dx, cx
shl dx, 4
add ax, dx
add ax, 0Ah
mov si, ax
xor di, di
jmp short loc_A8D9
; ---------------------------------------------------------------------------
loc_A8B2:
graph_accesspage 1
les bx, _VRAM_PLANE_B
add bx, si
mov ax, es:[bx]
mov [bp+var_2], ax
mov al, 0
out dx, al
mov bx, word ptr _VRAM_PLANE_B
add bx, si
mov ax, [bp+var_2]
mov es:[bx], ax
add di, 10h
add si, 2
loc_A8D9:
cmp di, 1E0h
jl short loc_A8B2
inc cx
loc_A8E0:
cmp cx, 180h
jl short loc_A871
pop di
pop si
leave
retn 2
sub_A866 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A8EC proc near
push bp
mov bp, sp
push si
graph_accesspage 0
call egc_start_copy_1
cmp byte_14F8E, 0
jnz short loc_A917
xor si, si
jmp short loc_A912
; ---------------------------------------------------------------------------
loc_A904:
push si
call sub_A866
push word_15008
call frame_delay
inc si
loc_A912:
cmp si, 4
jl short loc_A904
loc_A917:
push 4
call sub_A866
call egc_off
push 1
call frame_delay
pop si
pop bp
retn
sub_A8EC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A92B proc near
var_2 = word ptr -2
arg_0 = word ptr 4
enter 2, 0
push si
push di
mov si, [bp+arg_0]
xor di, di
mov [bp+var_2], 0
loc_A93B:
call _input_reset_sense_held
cmp _key_det, INPUT_NONE
jz short loc_A950
push 1
call frame_delay
jmp short loc_A93B
; ---------------------------------------------------------------------------
loc_A950:
or si, si
jnz short loc_A95C
mov si, 3E7h
mov [bp+var_2], 1
loc_A95C:
graph_accesspage 0
loc_A962:
call _input_reset_sense_held
call bgimage_put_rect pascal, 576, point_15004.y, (16 shl 16) or 16
or si, si
jle short loc_A9BD
test _key_det.hi, high INPUT_OK
jnz short loc_A9BD
test _key_det.lo, low INPUT_SHOT
jnz short loc_A9BD
test _key_det.hi, high INPUT_CANCEL
jnz short loc_A9BD
push 576
push point_15004.y
mov ax, di
shr ax, 3
and ax, ga_RETURN_KEY_CELS - 1
add ax, ga_RETURN_KEY
push ax
push 15
call graph_gaiji_putc
inc di
cmp [bp+var_2], 0
jnz short loc_A9B4
dec si
loc_A9B4:
push 1
call frame_delay
jmp short loc_A962
; ---------------------------------------------------------------------------
loc_A9BD:
pop di
pop si
leave
retn 2
sub_A92B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A9C3 proc near
var_16 = byte ptr -16h
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = byte ptr 4
enter 16h, 0
push si
mov al, [bp+arg_0]
mov ah, 0
push ax ; ch
call _tolower
pop cx
mov [bp+arg_0], al
mov ah, 0
mov [bp+var_6], ax
mov cx, 10h ; switch 16 cases
mov bx, offset word_AF96
loc_A9E2:
mov ax, cs:[bx]
cmp ax, [bp+var_6]
jz short loc_A9F2
add bx, 2
loop loc_A9E2
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_A9F2:
jmp word ptr cs:[bx+20h] ; switch jump
loc_A9F6:
add point_15004.y, 16 ; jumptable 0000A9F2 case 110
mov point_15004.x, 80
cmp point_15004.y, 384
jl loc_AF8F ; default
loc_AA0B:
mov bx, word_14F88 ; jumptable 0000A9F2 case 115
mov al, [bx]
mov [bp+arg_0], al
call sub_A8EC
cmp [bp+arg_0], 2Dh ; '-'
jz short loc_AA3A
mov word_1500C, 0
push ss
lea ax, [bp+var_2]
push ax
call sub_A738
cmp byte_14F8E, 0
jnz short loc_AA3E
push [bp+var_2]
call sub_A92B
jmp short loc_AA3E
; ---------------------------------------------------------------------------
loc_AA3A:
inc word_14F88
loc_AA3E:
mov point_15004.x, 80
mov point_15004.y, 320
graph_accesspage 1
call bgimage_put_rect pascal, (80 shl 16) or 320, (480 shl 16) or 64
mov dx, 0A6h
mov al, 0
loc_AA66:
out dx, al
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AA6A:
mov bx, word_14F88 ; jumptable 0000A9F2 case 99
mov al, [bx]
mov ah, 0
push ax ; ch
call _tolower
pop cx
mov [bp+arg_0], al
cmp [bp+arg_0], 3Dh ; '='
jz loc_AF34
mov word_1500C, 0Fh
push ss
lea ax, [bp+var_2]
push ax
call sub_A738
mov al, byte ptr [bp+var_2]
mov col_1500A, al
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AA9B:
mov word_1500C, 2 ; jumptable 0000A9F2 case 98
push ss
lea ax, [bp+var_2]
push ax
call sub_A738
mov ax, [bp+var_2]
mov _graph_putsa_fx_func, ax
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AAB2:
mov bx, word_14F88 ; jumptable 0000A9F2 case 119
mov al, [bx]
mov ah, 0
push ax ; ch
call _tolower
pop cx
mov [bp+arg_0], al
cmp [bp+arg_0], 6Fh ; 'o'
jz short loc_AAD0
cmp [bp+arg_0], 69h ; 'i'
jnz short loc_AAFE
loc_AAD0:
inc word_14F88
mov word_1500C, 1
push ss
lea ax, [bp+var_2]
push ax
call sub_A738
cmp [bp+arg_0], 69h ; 'i'
jnz short loc_AAF3
push [bp+var_2]
call palette_white_in
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AAF3:
push [bp+var_2]
call palette_white_out
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AAFE:
call sub_A8EC
mov word_1500C, 40h
cmp [bp+arg_0], 6Dh ; 'm'
jz short loc_AB33
cmp [bp+arg_0], 6Bh ; 'k'
jnz short loc_AB17
inc word_14F88
loc_AB17:
push ss
lea ax, [bp+var_2]
push ax
call sub_A738
cmp byte_14F8E, 0
jnz loc_AF8F ; default
push [bp+var_2]
call frame_delay
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AB33:
inc word_14F88
mov bx, word_14F88
mov al, [bx]
mov [bp+arg_0], al
cmp [bp+arg_0], 6Bh ; 'k'
jnz short loc_AB4A
inc word_14F88
loc_AB4A:
push ss
lea ax, [bp+var_2]
push ax
call sub_A738
push ss
lea ax, [bp+var_4]
push ax
call sub_A7FE
cmp byte_14F8E, 0
jnz loc_AF8F ; default
push [bp+var_2]
push [bp+var_4]
call snd_delay_until_measure
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AB71:
mov bx, word_14F88 ; jumptable 0000A9F2 case 118
cmp byte ptr [bx], 70h ; 'p'
jz short loc_AB91
mov word_1500C, 2
push ss
lea ax, [bp+var_2]
push ax
call sub_A738
mov ax, [bp+var_2]
mov word_15008, ax
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AB91:
inc word_14F88
mov word_1500C, 0
push ss
lea ax, [bp+var_2]
push ax
call sub_A738
mov dx, 0A4h
mov al, byte ptr [bp+var_2]
jmp loc_AA66
; ---------------------------------------------------------------------------
loc_ABAC:
mov word_1500C, 64h ; 'd' ; jumptable 0000A9F2 case 116
push ss
lea ax, [bp+var_2]
push ax
call sub_A738
cmp byte_14F8E, 0
jnz short loc_ABC8
push 1
call frame_delay
loc_ABC8:
mov ax, [bp+var_2]
mov PaletteTone, ax
call far ptr palette_show
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_ABD6:
mov bx, word_14F88 ; jumptable 0000A9F2 case 102
mov al, [bx]
mov [bp+arg_0], al
cmp [bp+arg_0], 6Dh ; 'm'
jz short loc_AC21
cmp [bp+arg_0], 69h ; 'i'
jz short loc_ABF3
cmp [bp+arg_0], 6Fh ; 'o'
jnz loc_AF8F ; default
loc_ABF3:
inc word_14F88
mov word_1500C, 1
push ss
lea ax, [bp+var_2]
push ax
call sub_A738
cmp [bp+arg_0], 69h ; 'i'
jnz short loc_AC16
push [bp+var_2]
call palette_black_in
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AC16:
push [bp+var_2]
call palette_black_out
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AC21:
inc word_14F88
mov word_1500C, 1
push ss
lea ax, [bp+var_2]
push ax
call sub_A738
mov ax, [bp+var_2]
add ax, (KAJA_SONG_FADE shl 8)
push ax
jmp loc_AF11
; ---------------------------------------------------------------------------
loc_AC3D:
mov word_1500C, 8 ; jumptable 0000A9F2 case 103
push ss
lea ax, [bp+var_2]
push ax
call sub_A738
mov [bp+var_4], 0
jmp short loc_AC75
; ---------------------------------------------------------------------------
loc_AC52:
test byte ptr [bp+var_4], 1
jz short loc_AC5C
push 4
jmp short loc_AC5F
; ---------------------------------------------------------------------------
loc_AC5C:
push RES_Y - 4
loc_AC5F:
call graph_scrollup
cmp byte_14F8E, 0
jnz short loc_AC72
push 1
call frame_delay
loc_AC72:
inc [bp+var_4]
loc_AC75:
mov ax, [bp+var_4]
cmp ax, [bp+var_2]
jle short loc_AC52
call graph_scrollup pascal, 0
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AC87:
call sub_A8EC ; jumptable 0000A9F2 case 107
mov word_1500C, 0
push ss
lea ax, [bp+var_2]
push ax
call sub_A738
cmp byte_14F8E, 0
jnz loc_AF8F ; default
push [bp+var_2]
call sub_A92B
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_ACAA:
graph_accesspage 1 ; jumptable 0000A9F2 case 64
call graph_clear
graph_accesspage 0
call graph_clear
call bgimage_snap
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_ACC8:
mov bx, word_14F88 ; jumptable 0000A9F2 case 112
mov al, [bx]
mov [bp+arg_0], al
inc word_14F88
cmp [bp+arg_0], 3Dh ; '='
jz short loc_ACE1
cmp [bp+arg_0], 40h
jnz short loc_AD13
loc_ACE1:
graph_accesspage 1
cmp [bp+arg_0], 3Dh ; '='
jnz short loc_ACF4
call pi_slot_palette_apply pascal, 0
loc_ACF4:
call pi_slot_put pascal, large 0, 0
call graph_copy_page pascal, 0
graph_accesspage 0
call bgimage_snap
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AD13:
cmp [bp+arg_0], 2Dh ; '-'
jnz short loc_AD23
call pi_slot_free pascal, 0
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AD23:
cmp [bp+arg_0], 70h ; 'p'
jnz short loc_AD33
call pi_slot_palette_apply pascal, 0
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AD33:
cmp [bp+arg_0], 2Ch ; ','
jz short loc_AD40
dec word_14F88
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AD40:
mov [bp+var_2], 0
jmp short loc_AD74
; ---------------------------------------------------------------------------
loc_AD47:
mov bx, word_14F88
mov al, [bx]
mov [bp+arg_0], al
inc word_14F88
mov ah, 0
mov bx, ax
test (__ctype + 1)[bx], _IS_CTL
jnz short loc_AD7A
loc_AD5F:
cmp [bp+arg_0], 20h ; ' '
jz short loc_AD7A
lea bx, [bp+var_16]
add bx, [bp+var_2]
mov al, [bp+arg_0]
mov ss:[bx], al
inc [bp+var_2]
loc_AD74:
cmp [bp+var_2], 0Ch
jl short loc_AD47
loc_AD7A:
lea bx, [bp+var_16]
add bx, [bp+var_2]
mov byte ptr ss:[bx], 0
call pi_slot_free pascal, 0
push 0
push ss
lea ax, [bp+var_16]
push ax
call pi_slot_load
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AD9A:
mov word_1500C, 4 ; jumptable 0000A9F2 case 61
mov bx, word_14F88
mov al, [bx]
mov [bp+arg_0], al
cmp [bp+arg_0], 3Dh ; '='
jz short loc_AE07
push ss
lea ax, [bp+var_2]
push ax
call sub_A738
push 1
call frame_delay
graph_showpage 0
graph_accesspage 1
cmp [bp+var_2], 4
jge short loc_ADE3
call pi_slot_put_quarter pascal, (160 shl 16) + 64, 0, [bp+var_2]
jmp loc_AE64
; ---------------------------------------------------------------------------
loc_ADE3:
call grcg_setcolor pascal, (GC_RMW shl 16) + 0
call grcg_byteboxfill_x pascal, ((160 / 8) shl 16) or 64, ((472 / 8) shl 16) or 263
GRCG_OFF_CLOBBERING dx
jmp short loc_AE64
; ---------------------------------------------------------------------------
loc_AE07:
inc word_14F88
push ss
lea ax, [bp+var_2]
push ax
call sub_A738
mov word_1500C, 1
push ss
loc_AE1A:
lea ax, [bp+var_4]
push ax
call sub_A7FE
xor si, si
jmp short loc_AE42
; ---------------------------------------------------------------------------
loc_AE25:
push 0A00040h
push [bp+var_2]
push si
call sub_A705
cmp byte_14F8E, 0
jnz short loc_AE41
push [bp+var_4]
call frame_delay
loc_AE41:
inc si
loc_AE42:
cmp si, 4
jl short loc_AE25
graph_accesspage 1
call pi_slot_put_quarter pascal, (160 shl 16) + 64, 0, [bp+var_2]
push 1
call frame_delay
loc_AE64:
call egc_copy_rect_1_to_0 pascal, (160 shl 16) or 64, (320 shl 16) or 200
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AE78:
mov bx, word_14F88 ; jumptable 0000A9F2 case 109
mov al, [bx]
mov [bp+arg_0], al
cmp [bp+arg_0], 24h ; '$'
jnz short loc_AE96
inc word_14F88
kajacall KAJA_SONG_STOP
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AE96:
cmp [bp+arg_0], 2Ah ; '*'
jnz short loc_AEAA
inc word_14F88
kajacall KAJA_SONG_PLAY
jmp loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AEAA:
cmp [bp+arg_0], 2Ch ; ','
jnz loc_AF8F ; default
inc word_14F88
mov [bp+var_2], 0
jmp short loc_AEEA
; ---------------------------------------------------------------------------
loc_AEBD:
mov bx, word_14F88
mov al, [bx]
mov [bp+arg_0], al
inc word_14F88
mov ah, 0
mov bx, ax
test (__ctype + 1)[bx], _IS_CTL
jnz short loc_AEF0
cmp [bp+arg_0], 20h ; ' '
jz short loc_AEF0
lea bx, [bp+var_16]
add bx, [bp+var_2]
mov al, [bp+arg_0]
mov ss:[bx], al
inc [bp+var_2]
loc_AEEA:
cmp [bp+var_2], 0Ch
jl short loc_AEBD
loc_AEF0:
lea bx, [bp+var_16]
add bx, [bp+var_2]
mov byte ptr ss:[bx], 0
kajacall KAJA_SONG_STOP
push ss
lea ax, [bp+var_16]
push ax
push SND_LOAD_SONG
call snd_load
push (KAJA_SONG_PLAY shl 8)
loc_AF11:
call snd_kaja_interrupt
jmp short loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AF18:
push ss ; jumptable 0000A9F2 case 101
lea ax, [bp+var_2]
push ax
call sub_A738
call snd_se_reset
call snd_se_play pascal, [bp+var_2]
call snd_se_update
jmp short loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AF34:
inc word_14F88
mov al, byte_10830
mov ah, 0
imul ax, 6
mov bx, word_14F88
mov dl, [bx]
mov bx, ax
mov [bx+4ED3h], dl
inc word_14F88
mov al, byte_10830
mov ah, 0
imul ax, 6
mov bx, word_14F88
mov dl, [bx]
mov bx, ax
mov [bx+4ED4h], dl
add word_14F88, 2
mov word_1500C, 0Fh
push ss
lea ax, [bp+var_2]
push ax
call sub_A738
mov al, byte_10830
mov ah, 0
mov dl, byte ptr [bp+var_2]
mov bx, ax
mov [bx+4ECBh], dl
inc byte_10830
jmp short loc_AF8F ; default
; ---------------------------------------------------------------------------
loc_AF8B:
mov al, 0FFh ; jumptable 0000A9F2 case 36
jmp short loc_AF91
; ---------------------------------------------------------------------------
loc_AF8F:
mov al, 0 ; default
loc_AF91:
pop si
leave
retn 2
sub_A9C3 endp
; ---------------------------------------------------------------------------
word_AF96 dw 24h, 3Dh, 40h, 62h
dw 63h, 65h, 66h, 67h ; value table for switch statement
dw 6Bh, 6Dh, 6Eh, 70h
dw 73h, 74h, 76h, 77h
dw offset loc_AF8B ; jump table for switch statement
dw offset loc_AD9A
dw offset loc_ACAA
dw offset loc_AA9B
dw offset loc_AA6A
dw offset loc_AF18
dw offset loc_ABD6
dw offset loc_AC3D
dw offset loc_AC87
dw offset loc_AE78
dw offset loc_A9F6
dw offset loc_ACC8
dw offset loc_AA0B
dw offset loc_ABAC
dw offset loc_AB71
dw offset loc_AAB2
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_AFD6 proc near
var_A = word ptr -0Ah
@@str = dword ptr -8
var_3 = word ptr -3
@@ch = word ptr -2
enter 0Ah, 0
push si
mov word ptr [bp+@@str+2], ds
mov word ptr [bp+@@str], offset asc_1085A
mov point_15004.x, 80
mov point_15004.y, 320
mov word_15008, 2
mov col_1500A, 15
mov _graph_putsa_fx_func, 2
mov byte_14F8E, 0
loc_B005:
call _input_reset_sense_held
test _key_det.hi, high INPUT_CANCEL
jz short loc_B018
mov byte_14F8E, 1
jmp short loc_B01D
; ---------------------------------------------------------------------------
loc_B018:
mov byte_14F8E, 0
loc_B01D:
xor si, si
mov bx, word_14F88
mov al, [bx]
mov byte ptr [bp+var_3], al
inc word_14F88
mov ah, 0
mov bx, ax
test (__ctype + 1)[bx], _IS_CTL
jnz short loc_B005
cmp byte ptr [bp+var_3], 20h ; ' '
jz short loc_B005
cmp byte ptr [bp+var_3], 5Ch
jnz short loc_B05D
mov bx, word_14F88
mov al, [bx]
mov byte ptr [bp+var_3], al
inc word_14F88
push [bp+var_3]
call sub_A9C3
cmp al, 0FFh
jnz short loc_B005
jmp loc_B196
; ---------------------------------------------------------------------------
loc_B05D:
cmp byte ptr [bp+var_3], 40h
jnz loc_B118
mov bx, word_14F88
mov al, [bx]
mov ah, 0
push ax ; ch
call _tolower
pop cx
mov byte ptr [bp+var_3], al
inc word_14F88
mov ah, 0
mov [bp+var_A], ax
mov cx, 4 ; switch 4 cases
mov bx, offset word_B1A5
loc_B086:
mov ax, cs:[bx]
cmp ax, [bp+var_A]
jz short loc_B095
add bx, 2
loop loc_B086
jmp short loc_B0E2 ; default
; ---------------------------------------------------------------------------
loc_B095:
jmp word ptr cs:[bx+8] ; switch jump
loc_B099:
mov [bp+@@ch], 9 ; jumptable 0000B095 case 116
jmp short loc_B0F4
; ---------------------------------------------------------------------------
loc_B0A0:
mov [bp+@@ch], 6 ; jumptable 0000B095 case 104
jmp short loc_B0F4
; ---------------------------------------------------------------------------
loc_B0A7:
mov [bp+@@ch], 8 ; jumptable 0000B095 case 63
jmp short loc_B0F4
; ---------------------------------------------------------------------------
loc_B0AE:
mov bx, word_14F88 ; jumptable 0000B095 case 33
mov al, [bx]
mov byte ptr [bp+var_3], al
inc word_14F88
mov ah, 0
cmp ax, 21h ; '!'
jz short loc_B0C9
cmp ax, 3Fh ; '?'
jz short loc_B0D0
jmp short loc_B0D7
; ---------------------------------------------------------------------------
loc_B0C9:
mov [bp+@@ch], 0Ah
jmp short loc_B0F4
; ---------------------------------------------------------------------------
loc_B0D0:
mov [bp+@@ch], 0Bh
jmp short loc_B0F4
; ---------------------------------------------------------------------------
loc_B0D7:
dec word_14F88
mov [bp+@@ch], 7
jmp short loc_B0F4
; ---------------------------------------------------------------------------
loc_B0E2:
dec word_14F88 ; default
mov word_1500C, 3
push ss
lea ax, [bp+@@ch]
push ax
call sub_A738
loc_B0F4:
graph_showpage 0
graph_accesspage 1
push point_15004.x
push point_15004.y
push [bp+@@ch]
mov al, col_1500A
mov ah, 0
push ax
call graph_gaiji_putc
jmp short loc_B18D
; ---------------------------------------------------------------------------
loc_B118:
les bx, [bp+@@str]
mov al, byte ptr [bp+var_3]
mov es:[bx], al
mov bx, word_14F88
mov al, [bx]
mov byte ptr [bp+var_3], al
mov bx, word ptr [bp+@@str]
mov es:[bx+1], al
inc word_14F88
cmp point_15004.x, 80
jnz short loc_B164
xor si, si
jmp short loc_B15B
; ---------------------------------------------------------------------------
loc_B140:
mov bx, si
imul bx, 6
mov ax, [bx+4ED3h]
les bx, [bp+@@str]
cmp ax, es:[bx]
jnz short loc_B15A
mov al, [si+4ECBh]
mov col_1500A, al
jmp short loc_B164
; ---------------------------------------------------------------------------
loc_B15A:
inc si
loc_B15B:
mov al, byte_10830
mov ah, 0
cmp ax, si
jg short loc_B140
loc_B164:
graph_showpage 0
graph_accesspage 1
push point_15004.x
push point_15004.y
mov al, col_1500A
mov ah, 0
push ax
pushd [bp+@@str]
call graph_putsa_fx
graph_accesspage 0
loc_B18D:
call sub_A826
mov si, 1
jmp loc_B005
; ---------------------------------------------------------------------------
loc_B196:
call bgimage_free
call pi_slot_free pascal, 0
pop si
leave
retn
sub_AFD6 endp
; ---------------------------------------------------------------------------
word_B1A5 dw 21h, 3Fh, 68h, 74h
; value table for switch statement
dw offset loc_B0AE ; jump table for switch statement
dw offset loc_B0A7
dw offset loc_B0A0
dw offset loc_B099
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B1B5 proc near
@@str = dword ptr -4
enter 4, 0
push si
push di
mov bx, allcast_step
shl bx, 2
mov ax, word ptr (ALLCAST_PTRS+2)[bx]
mov dx, word ptr ALLCAST_PTRS[bx]
mov word ptr [bp+@@str+2], ax
mov word ptr [bp+@@str], dx
mov bx, allcast_screen_plus_one
add bx, bx
mov ax, word ptr ALLCAST_LINES_PER_SCREEN[bx]
dec ax
shl ax, 4
mov dx, 0C0h
sub dx, ax
mov ax, allcast_line_on_screen
shl ax, 5
add dx, ax
mov si, dx
mov _graph_putsa_fx_func, 7
xor di, di
jmp short loc_B21E
; ---------------------------------------------------------------------------
loc_B1F7:
call graph_putsa_fx pascal, 64, si, 15, large [bp+@@str]
call sub_B37C
call graph_putsa_fx pascal, 64, si, 15, large [bp+@@str]
call sub_B37C
dec _graph_putsa_fx_func
inc di
loc_B21E:
cmp di, 4
jl short loc_B1F7
mov _graph_putsa_fx_func, 2
call graph_putsa_fx pascal, 64, si, 15, large [bp+@@str]
call sub_B37C
call graph_putsa_fx pascal, 64, si, 15, large [bp+@@str]
call sub_B37C
inc allcast_step
inc allcast_line_on_screen
mov bx, allcast_screen_plus_one
add bx, bx
mov ax, word ptr ALLCAST_LINES_PER_SCREEN[bx]
cmp ax, allcast_line_on_screen
jg short loc_B26D
mov allcast_line_on_screen, 0
mov al, 1
jmp short loc_B26F
; ---------------------------------------------------------------------------
loc_B26D:
mov al, 0
loc_B26F:
pop di
pop si
leave
retn
sub_B1B5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B273 proc near
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 2, 0
push si
push di
mov di, [bp+arg_2]
mov al, playchar_15018
mov ah, 0
shl ax, 4
mov dx, allcast_screen_plus_one
add dx, dx
add ax, dx
mov bx, ax
mov ax, [bx+7E0h]
mov [bp+var_2], ax
push 2
call palette_black_out
call grcg_setcolor pascal, (GC_RMW shl 16) + 0Eh
graph_accesspage 1
call grcg_byteboxfill_x pascal, large 0, (((RES_X - 1) / 8) shl 16) or (RES_Y - 1)
graph_accesspage 0
call grcg_byteboxfill_x pascal, large 0, (((RES_X - 1) / 8) shl 16) or (RES_Y - 1)
call sub_B37C
GRCG_OFF_CLOBBERING dx
mov PaletteTone, 100
call far ptr palette_show
call pi_slot_palette_apply pascal, 0
xor si, si
jmp short loc_B309
; ---------------------------------------------------------------------------
loc_B2EE:
push di
push [bp+arg_0]
push 0
push [bp+var_2]
mov ax, si
mov bx, 4
cwd
idiv bx
push ax
call pi_slot_put_quarter_mask
call sub_B37C
inc si
loc_B309:
cmp si, 8
jl short loc_B2EE
call pi_slot_put_quarter pascal, di, [bp+arg_0], 0, [bp+var_2]
call sub_B37C
call pi_slot_put_quarter pascal, di, [bp+arg_0], 0, [bp+var_2]
inc allcast_screen_plus_one
cmp allcast_screen_plus_one, 8
jge short loc_B357
push 0
mov al, playchar_15018
mov ah, 0
shl ax, 5
mov dx, allcast_screen_plus_one
shl dx, 2
add ax, dx
mov bx, ax
pushd dword ptr [bx+760h]
call pi_slot_load
loc_B357:
add word_15012, 2
loc_B35C:
call sub_B37C
or al, al
jz short loc_B35C
call sub_B1B5
or al, al
jz short loc_B357
add word_15012, 1Eh
loc_B36F:
call sub_B37C
or al, al
jz short loc_B36F
pop di
pop si
leave
retn 4
sub_B273 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B37C proc near
push bp
mov bp, sp
push 2
call frame_delay
graph_accesspage byte_1085E
mov al, 1
sub al, byte_1085E
mov byte_1085E, al
graph_showpage al
inc word_15010
call _snd_bgm_measure
mov measure_1500E, ax
cmp measure_1500E, 0
jge short loc_B3B9
mov ax, word_15010
mov bx, 22
cwd
idiv bx
mov measure_1500E, ax
loc_B3B9:
mov ax, measure_1500E
cmp ax, word_15012
jl short loc_B3C7
mov ax, 1
jmp short loc_B3C9
; ---------------------------------------------------------------------------
loc_B3C7:
xor ax, ax
loc_B3C9:
pop bp
retn
sub_B37C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B3CB proc near
push bp
mov bp, sp
mov allcast_step, 0
les bx, _resident
mov al, es:[bx+resident_t.playchar]
mov playchar_15018, al
mov PaletteTone, 0
call far ptr palette_show
call grcg_setcolor pascal, (GC_RMW shl 16) + 14
graph_accesspage 1
call grcg_byteboxfill_x pascal, large 0, (((RES_X - 1) / 8) shl 16) or (RES_Y - 1)
graph_accesspage 0
call grcg_byteboxfill_x pascal, large 0, (((RES_X - 1) / 8) shl 16) or (RES_Y - 1)
GRCG_OFF_CLOBBERING dx
mov allcast_screen_plus_one, 0
push 0
mov al, playchar_15018
mov ah, 0
shl ax, 5
mov bx, ax
pushd dword ptr [bx+760h]
call pi_slot_load
call pi_slot_palette_apply pascal, 0
call snd_load pascal, ds, offset aExed, SND_LOAD_SONG
kajacall KAJA_SONG_PLAY
mov word_15012, 2
loc_B45F:
call sub_B37C
or al, al
jz short loc_B45F
mov PaletteTone, 100
call far ptr palette_show
push 0A00064h
call sub_B273
push 0A00064h
call sub_B273
push 0A00064h
call sub_B273
push 0A00064h
call sub_B273
push 0A00064h
call sub_B273
push 0A00064h
call sub_B273
push 0A00064h
call sub_B273
add word_15012, 10h
loc_B4B5:
call sub_B37C
or al, al
jz short loc_B4B5
push 4
call palette_black_out
call pi_slot_free pascal, 0
graph_accesspage 0
graph_showpage al
pop bp
retn
sub_B3CB endp
include th04/formats/scoredat_decode.asm
include th04/formats/scoredat_encode.asm
include th05/formats/scoredat_recreate_maine.asm
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B646 proc near
arg_0 = word ptr 4
push bp
mov bp, sp
push ds
push offset aGensou_scr_0 ; "GENSOU.SCR"
call file_exist
or ax, ax
jz short loc_B694
push ds
push offset aGensou_scr_1 ; "GENSOU.SCR"
call file_ropen
mov ax, [bp+arg_0]
imul ax, 5
mov dl, _hiscore_rank
mov dh, 0
add ax, dx
imul ax, size scoredat_section_t
movzx eax, ax
push eax
push 0
call file_seek
call file_read pascal, ds, offset _hi, size scoredat_section_t
call file_close
call scoredat_decode
or al, al
jz short loc_B69D
loc_B694:
call scoredat_recreate_maine
mov al, 1
pop bp
retn 2
; ---------------------------------------------------------------------------
loc_B69D:
mov al, 0
pop bp
retn 2
sub_B646 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B6A3 proc near
push bp
mov bp, sp
push si
call scoredat_encode
push ds
push offset aGensou_scr_2 ; "GENSOU.SCR"
call file_append
mov al, playchar_15178
mov ah, 0
imul ax, 5
mov dl, _hiscore_rank
mov dh, 0
add ax, dx
imul ax, size scoredat_section_t
movzx eax, ax
push eax
push 0
call file_seek
call file_write pascal, ds, offset _hi, size scoredat_section_t
xor si, si
jmp short loc_B723
; ---------------------------------------------------------------------------
loc_B6E2:
mov ax, si
imul ax, size scoredat_section_t
movzx eax, ax
push eax
push 0
call file_seek
call file_read pascal, ds, offset _hi, size scoredat_section_t
call scoredat_decode
call scoredat_encode
mov ax, si
imul ax, size scoredat_section_t
movzx eax, ax
push eax
push 0
call file_seek
call file_write pascal, ds, offset _hi, size scoredat_section_t
inc si
loc_B723:
cmp si, RANK_COUNT * PLAYCHAR_COUNT
jl short loc_B6E2
call file_close
pop si
pop bp
retn
sub_B6A3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B730 proc near
var_2 = word ptr -2
enter 2, 0
mov [bp+var_2], 4
jmp short loc_B78C
; ---------------------------------------------------------------------------
loc_B73B:
mov cx, 7
jmp short loc_B785
; ---------------------------------------------------------------------------
loc_B740:
les bx, _resident
add bx, cx
mov al, es:[bx+resident_t.score_last]
mov ah, 0
mov bx, [bp+var_2]
shl bx, 3
add bx, cx
mov dl, _hi.score.g_points[bx]
mov dh, 0
add dx, -gb_0_
cmp ax, dx
jg short loc_B789
les bx, _resident
add bx, cx
mov al, es:[bx+resident_t.score_last]
mov ah, 0
mov bx, [bp+var_2]
shl bx, 3
add bx, cx
mov dl, _hi.score.g_points[bx]
mov dh, 0
add dx, -gb_0_
cmp ax, dx
jl short loc_B799
dec cx
loc_B785:
or cx, cx
jge short loc_B740
loc_B789:
dec [bp+var_2]
loc_B78C:
cmp [bp+var_2], 0
jge short loc_B73B
mov byte_15176, 0
jmp short loc_B7AE
; ---------------------------------------------------------------------------
loc_B799:
cmp [bp+var_2], 4
jnz short loc_B7A6
mov byte_15176, 0FFh
leave
retn
; ---------------------------------------------------------------------------
loc_B7A6:
mov al, byte ptr [bp+var_2]
inc al
mov byte_15176, al
loc_B7AE:
mov [bp+var_2], 3
jmp short loc_B807
; ---------------------------------------------------------------------------
loc_B7B5:
mov cx, 7
jmp short loc_B7D3
; ---------------------------------------------------------------------------
loc_B7BA:
mov bx, [bp+var_2]
imul bx, (SCOREDAT_NAME_LEN + 1)
add bx, cx
mov al, _hi.score.g_name[0 * (SCOREDAT_NAME_LEN + 1)][bx]
mov bx, [bp+var_2]
imul bx, (SCOREDAT_NAME_LEN + 1)
add bx, cx
mov _hi.score.g_name[1 * (SCOREDAT_NAME_LEN + 1)][bx], al
dec cx
loc_B7D3:
or cx, cx
jge short loc_B7BA
mov cx, SCORE_DIGITS - 1
jmp short loc_B7F5
; ---------------------------------------------------------------------------
loc_B7DC:
mov bx, [bp+var_2]
shl bx, 3
add bx, cx
mov al, _hi.score.g_points[0 * SCORE_DIGITS][bx]
mov bx, [bp+var_2]
shl bx, 3
add bx, cx
mov _hi.score.g_points[1 * SCORE_DIGITS][bx], al
dec cx
loc_B7F5:
or cx, cx
jge short loc_B7DC
mov bx, [bp+var_2]
mov al, _hi.score.g_stage+0[bx]
mov _hi.score.g_stage+1[bx], al
dec [bp+var_2]
loc_B807:
mov al, byte_15176
mov ah, 0
cmp ax, [bp+var_2]
jle short loc_B7B5
mov cx, (SCOREDAT_NAME_LEN - 1)
jmp short loc_B828
; ---------------------------------------------------------------------------
loc_B816:
mov al, byte_15176
mov ah, 0
imul ax, (SCOREDAT_NAME_LEN + 1)
add ax, cx
mov bx, ax
mov _hi.score.g_name[bx], gs_DOT
dec cx
loc_B828:
or cx, cx
jge short loc_B816
mov cx, SCOREDAT_NAME_LEN - 1
jmp short loc_B84F
; ---------------------------------------------------------------------------
loc_B831:
les bx, _resident
add bx, cx
mov al, es:[bx+resident_t.score_last]
add al, gb_0_
mov dl, byte_15176
mov dh, 0
shl dx, 3
add dx, cx
mov bx, dx
mov _hi.score.g_points[bx], al
dec cx
loc_B84F:
or cx, cx
jge short loc_B831
les bx, _resident
cmp es:[bx+resident_t.end_sequence], ES_EXTRA
jb short loc_B86C
mov al, byte_15176
mov ah, 0
mov bx, ax
mov _hi.score.g_stage[bx], gs_ALL
leave
retn
; ---------------------------------------------------------------------------
loc_B86C:
cmp _hiscore_rank, RANK_EXTRA
jnb short loc_B88B
les bx, _resident
mov al, es:[bx+resident_t.stage]
add al, gb_1_
mov dl, byte_15176
mov dh, 0
mov bx, dx
mov _hi.score.g_stage[bx], al
leave
retn
; ---------------------------------------------------------------------------
loc_B88B:
mov al, byte_15176
mov ah, 0
mov bx, ax
mov _hi.score.g_stage[bx], gb_1_
leave
retn
sub_B730 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B899 proc near
@@y = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 4, 0
push si
push di
mov si, [bp+arg_2]
mov bx, [bp+arg_0]
cmp bx, 3
ja short loc_B90A
add bx, bx
jmp cs:off_B9B9[bx]
loc_B8B1:
mov di, 174
or si, si
jnz short loc_B8BD
mov ax, 88
jmp short loc_B907
; ---------------------------------------------------------------------------
loc_B8BD:
mov ax, si
shl ax, 4
add ax, 96
jmp short loc_B907
; ---------------------------------------------------------------------------
loc_B8C7:
mov di, 494
or si, si
jnz short loc_B8D3
mov ax, 88
jmp short loc_B907
; ---------------------------------------------------------------------------
loc_B8D3:
mov ax, si
shl ax, 4
add ax, 96
jmp short loc_B907
; ---------------------------------------------------------------------------
loc_B8DD:
mov di, 174
or si, si
jnz short loc_B8E9
mov ax, 224
jmp short loc_B907
; ---------------------------------------------------------------------------
loc_B8E9:
mov ax, si
shl ax, 4
add ax, 232
jmp short loc_B907
; ---------------------------------------------------------------------------
loc_B8F3:
mov di, 494
or si, si
jnz short loc_B8FF
mov ax, 224
jmp short loc_B907
; ---------------------------------------------------------------------------
loc_B8FF:
mov ax, si
shl ax, 4
add ax, 232
loc_B907:
mov [bp+@@y], ax
loc_B90A:
mov al, byte_15176
mov ah, 0
cmp ax, si
jnz short loc_B922
mov al, playchar_15178
mov ah, 0
cmp ax, [bp+arg_0]
jnz short loc_B922
mov ax, 0Ah
jmp short loc_B924
; ---------------------------------------------------------------------------
loc_B922:
xor ax, ax
loc_B924:
mov [bp+arg_0], ax
mov bx, si
shl bx, 3
mov al, _hi.score.g_points[bx][SCORE_DIGITS - 1]
mov ah, 0
add ax, -gb_0_
cmp ax, 10
jl short loc_B95E
lea ax, [di-32]
push ax
push [bp+@@y]
mov bx, si
shl bx, 3
mov al, _hi.score.g_points[bx][SCORE_DIGITS - 1]
mov ah, 0
add ax, -gb_0_
mov bx, 10
cwd
idiv bx
add ax, [bp+arg_0]
push ax
call super_put
loc_B95E:
lea ax, [di-16]
push ax
push [bp+@@y]
mov bx, si
shl bx, 3
mov al, _hi.score.g_points[bx][SCORE_DIGITS - 1]
mov ah, 0
add ax, -gb_0_
mov bx, 10
cwd
idiv bx
add dx, [bp+arg_0]
push dx
call super_put
mov [bp+var_2], 6
jmp short loc_B9AD
; ---------------------------------------------------------------------------
loc_B989:
push di
push [bp+@@y]
mov bx, si
shl bx, 3
add bx, [bp+var_2]
mov al, _hi.score.g_points[bx]
mov ah, 0
add ax, [bp+arg_0]
add ax, -gb_0_
push ax
call super_put
dec [bp+var_2]
add di, 16
loc_B9AD:
cmp [bp+var_2], 0
jge short loc_B989
pop di
pop si
leave
retn 4
sub_B899 endp
; ---------------------------------------------------------------------------
off_B9B9 dw offset loc_B8B1
dw offset loc_B8C7
dw offset loc_B8DD
dw offset loc_B8F3
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B9C1 proc near
@@col = byte ptr -3
@@y = word ptr -2
@@gaiji = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
enter 4, 0
push si
push di
mov si, [bp+arg_4]
mov al, byte_15176
mov ah, 0
cmp ax, si
jnz short loc_B9E1
mov al, playchar_15178
mov ah, 0
cmp ax, [bp+arg_2]
jnz short loc_B9E1
mov al, 7
jmp short loc_B9E3
; ---------------------------------------------------------------------------
loc_B9E1:
mov al, 2
loc_B9E3:
mov [bp+@@col], al
mov bx, [bp+arg_2]
cmp bx, 3
ja short loc_BA4E
add bx, bx
jmp cs:off_BA7C[bx]
loc_B9F5:
mov di, 126h
or si, si
jnz short loc_BA01
mov ax, 58h ; 'X'
jmp short loc_BA4B
; ---------------------------------------------------------------------------
loc_BA01:
mov ax, si
shl ax, 4
add ax, 96
jmp short loc_BA4B
; ---------------------------------------------------------------------------
loc_BA0B:
mov di, 614
or si, si
jnz short loc_BA17
mov ax, 88
jmp short loc_BA4B
; ---------------------------------------------------------------------------
loc_BA17:
mov ax, si
shl ax, 4
add ax, 96
jmp short loc_BA4B
; ---------------------------------------------------------------------------
loc_BA21:
mov di, 294
or si, si
jnz short loc_BA2D
mov ax, 224
jmp short loc_BA4B
; ---------------------------------------------------------------------------
loc_BA2D:
mov ax, si
shl ax, 4
add ax, 232
jmp short loc_BA4B
; ---------------------------------------------------------------------------
loc_BA37:
mov di, 614
or si, si
jnz short loc_BA43
mov ax, 224
jmp short loc_BA4B
; ---------------------------------------------------------------------------
loc_BA43:
mov ax, si
shl ax, 4
add ax, 232
loc_BA4B:
mov [bp+@@y], ax
loc_BA4E:
lea ax, [di+2]
push ax
mov ax, [bp+@@y]
add ax, 2
push ax
push [bp+@@gaiji]
push 14
call graph_gaiji_putc
push di
push [bp+@@y]
push [bp+@@gaiji]
mov al, [bp+@@col]
mov ah, 0
push ax
call graph_gaiji_putc
pop di
pop si
leave
retn 6
sub_B9C1 endp
; ---------------------------------------------------------------------------
db 0
off_BA7C dw offset loc_B9F5
dw offset loc_BA0B
dw offset loc_BA21
dw offset loc_BA37
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BA84 proc near
arg_0 = byte ptr 4
arg_2 = byte ptr 6
@@place = word ptr 8
push bp
mov bp, sp
push si
push di
mov al, [bp+arg_2]
mov ah, 0
mov bx, ax
cmp bx, 3
ja short loc_BB00
add bx, bx
jmp cs:off_BBE7[bx]
loc_BA9C:
mov si, 8
cmp [bp+@@place], 0
jnz short loc_BAAA
mov ax, 88
jmp short loc_BAFE
; ---------------------------------------------------------------------------
loc_BAAA:
mov ax, [bp+@@place]
shl ax, 4
add ax, 96
jmp short loc_BAFE
; ---------------------------------------------------------------------------
loc_BAB5:
mov si, 328
cmp [bp+@@place], 0
jnz short loc_BAC3
mov ax, 88
jmp short loc_BAFE
; ---------------------------------------------------------------------------
loc_BAC3:
mov ax, [bp+@@place]
shl ax, 4
add ax, 96
jmp short loc_BAFE
; ---------------------------------------------------------------------------
loc_BACE:
mov si, 8
cmp [bp+@@place], 0
jnz short loc_BADC
mov ax, 224
jmp short loc_BAFE
; ---------------------------------------------------------------------------
loc_BADC:
mov ax, [bp+@@place]
shl ax, 4
add ax, 232
jmp short loc_BAFE
; ---------------------------------------------------------------------------
loc_BAE7:
mov si, 328
cmp [bp+@@place], 0
jnz short loc_BAF5
mov ax, 224
jmp short loc_BAFE
; ---------------------------------------------------------------------------
loc_BAF5:
mov ax, [bp+@@place]
shl ax, 4
add ax, 232
loc_BAFE:
mov di, ax
loc_BB00:
call bgimage_put_rect pascal, si, di, (130 shl 16) or 18
lea ax, [si+2]
push ax
lea ax, [di+2]
push ax
push GAIJI_W
mov ax, [bp+@@place]
imul ax, (SCOREDAT_NAME_LEN + 1)
add ax, offset _hi.score.g_name
push ds
push ax
push 14
call graph_gaiji_puts
push si
push di
push GAIJI_W
mov ax, [bp+@@place]
imul ax, (SCOREDAT_NAME_LEN + 1)
add ax, offset _hi.score.g_name
push ds
push ax
push 6
call graph_gaiji_puts
mov al, [bp+arg_0]
mov ah, 0
shl ax, 4
add ax, si
push ax
push di
mov bx, [bp+@@place]
imul bx, (SCOREDAT_NAME_LEN + 1)
mov al, [bp+arg_0]
mov ah, 0
add bx, ax
mov al, _hi.score.g_name[bx]
mov ah, 0
push ax
push 7
call graph_gaiji_putc
call grcg_setcolor pascal, (GC_RMW shl 16) + 7
mov al, [bp+arg_0]
mov ah, 0
shl ax, 4
add ax, si
push ax
mov al, [bp+arg_0]
mov ah, 0
shl ax, 4
add ax, si
add ax, 16
push ax
lea ax, [di+15]
push ax
call grcg_hline
lea ax, [si-2]
push ax
lea ax, [di-1]
push ax
lea ax, [di+16]
push ax
call grcg_vline
lea ax, [si+306]
push ax
lea ax, [di-1]
push ax
lea ax, [di+16]
push ax
call grcg_vline
lea ax, [si-2]
push ax
lea ax, [si+306]
push ax
lea ax, [di-1]
push ax
call grcg_hline
lea ax, [si-2]
push ax
lea ax, [si+306]
push ax
lea ax, [di+16]
push ax
call grcg_hline
GRCG_OFF_CLOBBERING dx
pop di
pop si
pop bp
retn 6
sub_BA84 endp
; ---------------------------------------------------------------------------
db 0
off_BBE7 dw offset loc_BA9C
dw offset loc_BAB5
dw offset loc_BACE
dw offset loc_BAE7
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BBEF proc near
@@x = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 2, 0
push si
push di
mov si, [bp+arg_2]
mov bx, [bp+arg_0]
cmp bx, 3
ja short loc_BC67
add bx, bx
jmp cs:off_BCCB[bx]
loc_BC07:
mov [bp+@@x], 8
or si, si
jnz short loc_BC15
mov ax, 88
jmp short loc_BC65
; ---------------------------------------------------------------------------
loc_BC15:
mov ax, si
shl ax, 4
add ax, 96
jmp short loc_BC65
; ---------------------------------------------------------------------------
loc_BC1F:
mov [bp+@@x], 328
or si, si
jnz short loc_BC2D
mov ax, 88
jmp short loc_BC65
; ---------------------------------------------------------------------------
loc_BC2D:
mov ax, si
shl ax, 4
add ax, 96
jmp short loc_BC65
; ---------------------------------------------------------------------------
loc_BC37:
mov [bp+@@x], 8
or si, si
jnz short loc_BC45
mov ax, 224
jmp short loc_BC65
; ---------------------------------------------------------------------------
loc_BC45:
mov ax, si
shl ax, 4
add ax, 232
jmp short loc_BC65
; ---------------------------------------------------------------------------
loc_BC4F:
mov [bp+@@x], 328
or si, si
jnz short loc_BC5D
mov ax, 224
jmp short loc_BC65
; ---------------------------------------------------------------------------
loc_BC5D:
mov ax, si
shl ax, 4
add ax, 232
loc_BC65:
mov di, ax
loc_BC67:
push si
push [bp+arg_0]
call sub_B899
push si
push [bp+arg_0]
mov al, _hi.score.g_stage[si]
mov ah, 0
push ax
call sub_B9C1
mov al, playchar_15178
mov ah, 0
cmp ax, [bp+arg_0]
jnz short loc_BC8F
mov al, byte_15176
mov ah, 0
cmp ax, si
jz short loc_BCC4
loc_BC8F:
mov ax, [bp+@@x]
add ax, 2
push ax
lea ax, [di+2]
push ax
push GAIJI_W
mov ax, si
imul ax, (SCOREDAT_NAME_LEN + 1)
add ax, offset _hi.score.g_name
push ds
push ax
push 14
call graph_gaiji_puts
push [bp+@@x]
push di
push GAIJI_W
mov ax, si
imul ax, (SCOREDAT_NAME_LEN + 1)
add ax, offset _hi.score.g_name
push ds
push ax
push 2
call graph_gaiji_puts
loc_BCC4:
pop di
pop si
leave
retn 4
sub_BBEF endp
; ---------------------------------------------------------------------------
db 0
off_BCCB dw offset loc_BC07
dw offset loc_BC1F
dw offset loc_BC37
dw offset loc_BC4F
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BCD3 proc near
arg_0 = word ptr 4
push bp
mov bp, sp
push si
xor si, si
jmp short loc_BCE3
; ---------------------------------------------------------------------------
loc_BCDB:
push si
push [bp+arg_0]
call sub_BBEF
inc si
loc_BCE3:
cmp si, 5
jl short loc_BCDB
pop si
pop bp
retn 2
sub_BCD3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BCED proc near
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
push bp
mov bp, sp
push si
push di
mov si, [bp+arg_4]
mov di, [bp+arg_2]
mov ax, si
add ax, ax
add ax, 17h
push ax
lea ax, [di+15h]
push ax
mov bx, di
imul bx, 11h
mov al, [bx+si+14EEh]
mov ah, 0
push ax
push [bp+arg_0]
call gaiji_putca
pop di
pop si
pop bp
retn 6
sub_BCED endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BD1E proc near
push bp
mov bp, sp
call snd_se_update
call sub_BE76
push 1
call frame_delay
graph_accesspage byte_11621
mov al, 1
sub al, byte_11621
mov byte_11621, al
graph_showpage al
pop bp
retn
sub_BD1E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BD46 proc near
arg_0 = byte ptr 4
arg_2 = byte ptr 6
arg_4 = word ptr 8
arg_6 = word ptr 0Ah
arg_8 = word ptr 0Ch
push bp
mov bp, sp
push si
push di
mov di, [bp+arg_4]
mov al, [bp+arg_0]
mov ah, 0
imul ax, 1Ch
add ax, 4F7Ah
mov si, ax
cmp byte ptr [si], 0
jz short loc_BD68
mov byte ptr [si], 5
jmp short loc_BD68
; ---------------------------------------------------------------------------
loc_BD65:
call sub_BD1E
loc_BD68:
cmp byte ptr [si], 0
jnz short loc_BD65
mov byte ptr [si], 1
mov word ptr [si+14h], 0
mov bx, [bp+arg_6]
imul bx, 11h
add bx, [bp+arg_8]
mov al, [bx+14EEh]
mov [si+1], al
cmp byte ptr [si+1], 0CDh ; '<27>'
jnz short loc_BD8F
mov byte ptr [si+1], 2
loc_BD8F:
mov ax, [bp+arg_8]
add ax, ax
add ax, 17h
shl ax, 4
shl ax, 3
add ax, 80h
mov [si+2], ax
mov ax, [bp+arg_6]
add ax, 15h
shl ax, 4
shl ax, 4
add ax, 80h
mov [si+4], ax
call IRand
mov [si+12h], al
call IRand
mov bx, 40h
cwd
idiv bx
add dl, 40h
mov [si+13h], dl
mov al, [bp+arg_2]
mov ah, 0
mov bx, ax
cmp bx, 3
ja short loc_BE42
add bx, bx
jmp cs:off_BE6E[bx]
loc_BDE1:
mov [bp+arg_8], 8
or di, di
jnz short loc_BDEF
mov ax, 58h ; 'X'
jmp short loc_BE3F
; ---------------------------------------------------------------------------
loc_BDEF:
mov ax, di
shl ax, 4
add ax, 60h
jmp short loc_BE3F
; ---------------------------------------------------------------------------
loc_BDF9:
mov [bp+arg_8], 148h
or di, di
jnz short loc_BE07
mov ax, 58h ; 'X'
jmp short loc_BE3F
; ---------------------------------------------------------------------------
loc_BE07:
mov ax, di
shl ax, 4
add ax, 60h
jmp short loc_BE3F
; ---------------------------------------------------------------------------
loc_BE11:
mov [bp+arg_8], 8
or di, di
jnz short loc_BE1F
mov ax, 0E0h ; '<27>E
jmp short loc_BE3F
; ---------------------------------------------------------------------------
loc_BE1F:
mov ax, di
shl ax, 4
add ax, 0E8h ; '<27>E
jmp short loc_BE3F
; ---------------------------------------------------------------------------
loc_BE29:
mov [bp+arg_8], 148h
or di, di
jnz short loc_BE37
mov ax, 0E0h ; '<27>E
jmp short loc_BE3F
; ---------------------------------------------------------------------------
loc_BE37:
mov ax, di
shl ax, 4
add ax, 0E8h ; '<27>E
loc_BE3F:
mov [bp+arg_6], ax
loc_BE42:
mov ax, [bp+arg_8]
shl ax, 4
mov dl, [bp+arg_0]
mov dh, 0
shl dx, 4
shl dx, 4
add ax, dx
add ax, 80h
mov [si+0Eh], ax
mov ax, [bp+arg_6]
shl ax, 4
add ax, 80h
mov [si+10h], ax
pop di
pop si
pop bp
retn 0Ah
sub_BD46 endp
; ---------------------------------------------------------------------------
db 0
off_BE6E dw offset loc_BDE1
dw offset loc_BDF9
dw offset loc_BE11
dw offset loc_BE29
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BE76 proc near
var_8 = byte ptr -8
var_7 = byte ptr -7
@@y = word ptr -6
@@x = word ptr -4
@@patnum = word ptr -2
enter 8, 0
push si
push di
mov si, 4F7Ah
xor di, di
jmp short loc_BECC
; ---------------------------------------------------------------------------
loc_BE83:
cmp byte ptr [si], 0
jz short loc_BEC8
cmp byte ptr [si], 4
jnz short loc_BE90
mov byte ptr [si], 0
loc_BE90:
cmp word ptr [si+6], 0
jge short loc_BE9B
mov word ptr [si+6], 0
loc_BE9B:
cmp word ptr [si+8], 0
jge short loc_BEA6
mov word ptr [si+8], 0
loc_BEA6:
mov ax, [si+6]
mov bx, 16
cwd
idiv bx
add ax, -16
push ax
mov ax, [si+8]
cwd
idiv bx
add ax, -16
push ax
push (32 shl 16) or 32
call bgimage_put_rect
loc_BEC8:
inc di
add si, 1Ch
loc_BECC:
cmp di, 8
jl short loc_BE83
mov al, byte_15176
mov ah, 0
push ax
push word ptr playchar_15178
push word_11622
call sub_BA84
mov si, 4F7Ah
xor di, di
jmp loc_C156
; ---------------------------------------------------------------------------
loc_BEEA:
cmp byte ptr [si], 0
jz loc_C152
mov al, [si]
mov ah, 0
dec ax
mov bx, ax
cmp bx, 4
ja loc_C141
add bx, bx
jmp cs:off_C162[bx]
loc_BF06:
mov eax, [si+2]
mov [si+6], eax
mov ax, [si+2]
mov bx, 16
cwd
idiv bx
add ax, -16
mov [bp+@@x], ax
mov ax, [si+4]
cwd
idiv bx
add ax, -16
mov [bp+@@y], ax
mov ax, [si+14h]
shr ax, 1
add ax, 20
mov [bp+@@patnum], ax
cmp [bp+@@patnum], 24
jl loc_C141
inc byte ptr [si]
loc_BF3E:
mov eax, [si+2]
mov [si+6], eax
lea ax, [si+0Ah]
push ax
pushd 0
mov al, [si+13h]
mov ah, 0
push ax
mov al, [si+12h]
mov ah, 0
push ax
call vector2_at
mov ax, [si+0Ah]
add [si+2], ax
mov ax, [si+0Ch]
add [si+4], ax
mov ax, [si+2]
mov bx, 16
cwd
idiv bx
add ax, -8
mov [bp+@@x], ax
mov ax, [si+4]
cwd
idiv bx
add ax, -8
mov [bp+@@y], ax
cmp [bp+@@x], 0
jge short loc_BF9F
mov [bp+@@x], 0
mov al, 80h
sub al, [si+12h]
mov [si+12h], al
mov word ptr [si+2], 80h
jmp short loc_BFB8
; ---------------------------------------------------------------------------
loc_BF9F:
cmp [bp+@@x], 624
jl short loc_BFB8
mov [bp+@@x], 624
mov al, 80h
sub al, [si+12h]
mov [si+12h], al
mov word ptr [si+2], 2780h
loc_BFB8:
cmp [bp+@@y], 0
jge short loc_BFD2
mov [bp+@@y], 0
mov al, [si+12h]
neg al
mov [si+12h], al
mov word ptr [si+4], 80h
jmp short loc_BFEB
; ---------------------------------------------------------------------------
loc_BFD2:
cmp [bp+@@y], 384
jl short loc_BFEB
mov [bp+@@y], 384
mov al, [si+12h]
neg al
mov [si+12h], al
mov word ptr [si+4], 1880h
loc_BFEB:
mov ax, [si+14h]
shr ax, 2
and ax, 3
add ax, 28
mov [bp+@@patnum], ax
mov ax, [si+10h]
sub ax, [si+4]
push ax
mov ax, [si+0Eh]
sub ax, [si+2]
push ax
call iatan2
mov [bp+var_8], al
mov al, [si+12h]
sub al, [bp+var_8]
mov [bp+var_7], al
cmp [bp+var_7], 80h
jb short loc_C077
cmp [bp+var_7], 0FEh
jb short loc_C035
mov al, [bp+var_8]
mov [si+12h], al
cmp byte ptr [si+13h], 80h
jnb loc_C0CC
jmp short loc_C089
; ---------------------------------------------------------------------------
loc_C035:
cmp [bp+var_7], 0F0h ; '<27>E
jbe short loc_C04C
mov [bp+var_7], 1
cmp byte ptr [si+13h], 80h
jnb short loc_C06F
mov al, [si+13h]
add al, 2
jmp short loc_C06C
; ---------------------------------------------------------------------------
loc_C04C:
mov al, [bp+var_7]
mov ah, 0
push ax
mov ax, 100h
pop dx
sub ax, dx
mov bx, 10h
cwd
idiv bx
mov [bp+var_7], al
cmp byte ptr [si+13h], 8
jbe short loc_C06F
mov al, [si+13h]
add al, 0FEh
loc_C06C:
mov [si+13h], al
loc_C06F:
mov al, [bp+var_7]
add [si+12h], al
jmp short loc_C0CC
; ---------------------------------------------------------------------------
loc_C077:
cmp [bp+var_7], 2
ja short loc_C093
mov al, [bp+var_8]
mov [si+12h], al
cmp byte ptr [si+13h], 80h
jnb short loc_C0CC
loc_C089:
mov al, [si+13h]
add al, 2
mov [si+13h], al
jmp short loc_C0CC
; ---------------------------------------------------------------------------
loc_C093:
cmp [bp+var_7], 10h
jnb short loc_C0AA
mov [bp+var_7], 1
cmp byte ptr [si+13h], 80h
jnb short loc_C0C6
mov al, [si+13h]
add al, 2
jmp short loc_C0C3
; ---------------------------------------------------------------------------
loc_C0AA:
mov al, [bp+var_7]
mov ah, 0
mov bx, 10h
cwd
idiv bx
mov [bp+var_7], al
cmp byte ptr [si+13h], 8
jbe short loc_C0C6
mov al, [si+13h]
add al, 0FEh
loc_C0C3:
mov [si+13h], al
loc_C0C6:
mov al, [bp+var_7]
sub [si+12h], al
loc_C0CC:
mov ax, [si+2]
sub ax, [si+0Eh]
add ax, 40h
cmp ax, 80h
jnb short loc_C141
mov ax, [si+4]
sub ax, [si+10h]
add ax, 40h
cmp ax, 80h
jnb short loc_C141
inc byte ptr [si]
mov word ptr [si+14h], 0
mov al, byte_15176
mov ah, 0
imul ax, 9
mov dl, [si+1]
mov bx, ax
mov _hi.score.g_name[bx+di], dl
jmp short loc_C141
; ---------------------------------------------------------------------------
loc_C102:
mov ax, [si+14h]
shr ax, 2
add ax, 24
mov [bp+@@patnum], ax
cmp [bp+@@patnum], 28
jl short loc_C118
inc byte ptr [si]
jmp short loc_C152
; ---------------------------------------------------------------------------
loc_C118:
mov eax, [si+0Eh]
mov [si+6], eax
mov ax, [si+0Eh]
mov bx, 16
cwd
idiv bx
add ax, -16
mov [bp+@@x], ax
mov ax, [si+10h]
cwd
idiv bx
add ax, -16
mov [bp+@@y], ax
jmp short loc_C141
; ---------------------------------------------------------------------------
loc_C13D:
dec byte ptr [si]
jmp short loc_C152
; ---------------------------------------------------------------------------
loc_C141:
inc word ptr [si+14h]
call super_put_rect pascal, [bp+@@x], [bp+@@y], [bp+@@patnum]
loc_C152:
inc di
add si, 1Ch
loc_C156:
cmp di, 8
jl loc_BEEA
pop di
pop si
leave
retn
sub_BE76 endp
; ---------------------------------------------------------------------------
db 0
off_C162 dw offset loc_BF06
dw offset loc_BF3E
dw offset loc_C102
dw offset loc_C141
dw offset loc_C13D
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C16C proc near
var_1 = byte ptr -1
enter 2, 0
push si
push di
mov [bp+var_1], 0
call snd_se_play pascal, 11
mov si, 4F7Ah
xor di, di
jmp short loc_C1AF
; ---------------------------------------------------------------------------
loc_C184:
cmp byte ptr [si], 1
jnz short loc_C18C
mov byte ptr [si], 2
loc_C18C:
cmp byte ptr [si], 2
jnz short loc_C1AB
mov ax, [si+10h]
sub ax, [si+4]
push ax
mov ax, [si+0Eh]
sub ax, [si+2]
push ax
call iatan2
mov [si+12h], al
mov byte ptr [si+13h], 60h
loc_C1AB:
inc di
add si, 1Ch
loc_C1AF:
cmp di, 8
jl short loc_C184
loc_C1B4:
mov [bp+var_1], 0
xor di, di
mov si, 4F7Ah
jmp short loc_C1CB
; ---------------------------------------------------------------------------
loc_C1BF:
cmp byte ptr [si], 0
jz short loc_C1C7
inc [bp+var_1]
loc_C1C7:
inc di
add si, 1Ch
loc_C1CB:
cmp di, 8
jl short loc_C1BF
call sub_BD1E
cmp [bp+var_1], 0
jnz short loc_C1B4
pop di
pop si
leave
retn
sub_C16C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C1DD proc near
var_8 = byte ptr -8
var_7 = byte ptr -7
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
enter 8, 0
push si
push di
mov [bp+var_7], 0
graph_accesspage 0
graph_showpage al
mov PaletteTone, 0
call far ptr palette_show
graph_accesspage 1
call pi_slot_load pascal, 0, ds, offset aHi01_pi
call pi_slot_palette_apply pascal, 0
call pi_slot_put pascal, large 0, 0
call pi_slot_free pascal, 0
call graph_copy_page pascal, 0
call super_entry_bfnt pascal, ds, offset aScnum_bft ; "scnum.bft"
call super_entry_bfnt pascal, ds, offset aSctm0_bft ; "sctm0.bft"
call super_entry_bfnt pascal, ds, offset aSctm1_bft ; "sctm1.bft"
les bx, _resident
cmp es:[bx+resident_t.stage], STAGE_EXTRA
jnz short loc_C256
mov al, RANK_EXTRA
jmp short loc_C25E
; ---------------------------------------------------------------------------
loc_C256:
les bx, _resident
mov al, es:[bx+resident_t.rank]
loc_C25E:
mov _hiscore_rank, al
les bx, _resident
mov al, es:[bx+resident_t.playchar]
mov playchar_15178, al
mov [bp+var_4], 0
jmp short loc_C28C
; ---------------------------------------------------------------------------
loc_C273:
mov al, playchar_15178
mov ah, 0
cmp ax, [bp+var_4]
jz short loc_C289
push [bp+var_4]
call sub_B646
push [bp+var_4]
call sub_BCD3
loc_C289:
inc [bp+var_4]
loc_C28C:
cmp [bp+var_4], 4
jl short loc_C273
mov al, playchar_15178
mov ah, 0
push ax
call sub_B646
les bx, _resident
cmp es:[bx+resident_t.turbo_mode], 0
jnz short loc_C2AD
cmp _hiscore_rank, RANK_EXTRA
jnz short loc_C2BB
loc_C2AD:
call sub_B730
mov al, playchar_15178
mov ah, 0
push ax
call sub_BCD3
jmp short loc_C2EB
; ---------------------------------------------------------------------------
loc_C2BB:
mov byte_15176, 0FFh
mov al, playchar_15178
mov ah, 0
push ax
call sub_BCD3
call graph_putsa_fx pascal, (124 shl 16) or 196, 9, ds, offset aGxgnbGvbGhvVGv
call graph_putsa_fx pascal, (120 shl 16) or 192, 2, ds, offset aGxgnbGvbGhvV_0
loc_C2EB:
call bgimage_snap
les bx, _resident
cmp es:[bx+resident_t.end_sequence], ES_EXTRA
jb short loc_C307
cmp es:[bx+resident_t.score_last], 0
jnz short loc_C307
mov _hi.score.cleared, SCOREDAT_CLEARED
loc_C307:
call graph_copy_page pascal, 1
call bgimage_snap
kajacall KAJA_SONG_STOP
call snd_load pascal, ds, offset aName, SND_LOAD_SONG
kajacall KAJA_SONG_PLAY
push 2
call palette_black_in
cmp byte_15176, 0FFh
jz loc_C5C3
mov al, byte_15176
mov ah, 0
push ax
push word ptr playchar_15178
push 0
call sub_BA84
graph_accesspage 0
mov al, byte_15176
mov ah, 0
push ax
push word ptr playchar_15178
push 0
call sub_BA84
graph_accesspage 1
mov [bp+var_4], 0
jmp short loc_C3AA
; ---------------------------------------------------------------------------
loc_C36F:
mov [bp+var_6], 0
jmp short loc_C3A1
; ---------------------------------------------------------------------------
loc_C376:
mov ax, [bp+var_6]
add ax, ax
add ax, 23
push ax
mov ax, [bp+var_4]
add ax, 21
push ax
mov bx, [bp+var_4]
imul bx, 11h
add bx, [bp+var_6]
mov al, [bx+14EEh]
mov ah, 0
push ax
push TX_WHITE
call gaiji_putca
inc [bp+var_6]
loc_C3A1:
cmp [bp+var_6], 11h
jl short loc_C376
inc [bp+var_4]
loc_C3AA:
cmp [bp+var_4], 3
jl short loc_C36F
push (23 shl 16) + 21
mov al, gALPHABET
mov ah, 0
push ax
push TX_GREEN + TX_REVERSE
call gaiji_putca
xor si, si
xor di, di
mov [bp+var_2], 1
loc_C3CD:
call _input_reset_sense_held
cmp [bp+var_2], 0
jnz loc_C58A
test _key_det.lo, low INPUT_MOVEMENT
jz short loc_C438
push si
push di
push TX_WHITE
call sub_BCED
test _key_det.lo, low INPUT_UP
jz short loc_C3F1
dec di
loc_C3F1:
test _key_det.lo, low INPUT_DOWN
jz short loc_C3F9
inc di
loc_C3F9:
test _key_det.lo, low INPUT_LEFT
jz short loc_C401
dec si
loc_C401:
test _key_det.lo, low INPUT_RIGHT
jz short loc_C409
inc si
loc_C409:
or di, di
jge short loc_C412
mov di, 2
jmp short loc_C419
; ---------------------------------------------------------------------------
loc_C412:
cmp di, 2
jle short loc_C419
xor di, di
loc_C419:
or si, si
jge short loc_C422
mov si, 10h
jmp short loc_C429
; ---------------------------------------------------------------------------
loc_C422:
cmp si, 10h
jle short loc_C429
xor si, si
loc_C429:
push si
push di
push TX_GREEN + TX_REVERSE
call sub_BCED
call snd_se_play pascal, 1
loc_C438:
test _key_det.lo, low INPUT_SHOT
jnz short loc_C448
test _key_det.hi, high INPUT_OK
jz loc_C516
loc_C448:
mov bx, di
imul bx, 11h
mov al, [bx+si+14EEh]
mov [bp+var_8], al
mov ah, 0
cmp ax, 0CEh
jz short loc_C469
cmp ax, 0CFh ; '<27>'
jz short loc_C4C4
cmp ax, 0D5h ; '<27>'
jz loc_C57D
jmp short loc_C4D4
; ---------------------------------------------------------------------------
loc_C469:
mov al, byte_15176
mov ah, 0
imul ax, 9
add ax, word_11622
mov bx, ax
mov _hi.score.g_name[bx], g_EMPTY
mov bx, word_11622
imul bx, 1Ch
cmp byte ptr [bx+4F7Ah], 0
jz short loc_C496
mov bx, word_11622
imul bx, 1Ch
mov byte ptr [bx+4F7Ah], 5
loc_C496:
cmp word_11622, 0
jle short loc_C4A1
dec word_11622
loc_C4A1:
mov bx, word_11622
imul bx, 1Ch
cmp byte ptr [bx+4F7Ah], 0
jz short loc_C4BB
mov bx, word_11622
imul bx, 1Ch
mov byte ptr [bx+4F7Ah], 5
loc_C4BB:
call snd_se_play pascal, 4
jmp short loc_C516
; ---------------------------------------------------------------------------
loc_C4C4:
call snd_se_play pascal, 11
cmp word_11622, 7
jge short loc_C516
jmp short loc_C512
; ---------------------------------------------------------------------------
loc_C4D4:
call snd_se_play pascal, 11
push si
push di
mov al, byte_15176
mov ah, 0
push ax
push word ptr playchar_15178
push word_11622
call sub_BD46
cmp word_11622, 7
jnz short loc_C50B
push si
push di
push TX_WHITE
call sub_BCED
mov si, 10h
mov di, 2
push si
push di
push TX_GREEN + TX_REVERSE
call sub_BCED
loc_C50B:
cmp word_11622, 7
jge short loc_C516
loc_C512:
inc word_11622
loc_C516:
test _key_det.lo, low INPUT_BOMB
jz short loc_C576
mov al, byte_15176
mov ah, 0
imul ax, 9
add ax, word_11622
mov bx, ax
mov _hi.score.g_name[bx], g_EMPTY
mov bx, word_11622
imul bx, 1Ch
cmp byte ptr [bx+4F7Ah], 0
jz short loc_C54A
mov bx, word_11622
imul bx, 1Ch
mov byte ptr [bx+4F7Ah], 5
loc_C54A:
cmp word_11622, 0
jle short loc_C555
dec word_11622
loc_C555:
mov bx, word_11622
imul bx, 1Ch
cmp byte ptr [bx+4F7Ah], 0
jz short loc_C56F
mov bx, word_11622
imul bx, 1Ch
mov byte ptr [bx+4F7Ah], 5
loc_C56F:
call snd_se_play pascal, 4
loc_C576:
test _key_det.hi, high INPUT_CANCEL
jz short loc_C582
loc_C57D:
call sub_C16C
jmp short loc_C5BE
; ---------------------------------------------------------------------------
loc_C582:
mov ax, _key_det
mov [bp+var_2], ax
jmp short loc_C5B8
; ---------------------------------------------------------------------------
loc_C58A:
mov ax, _key_det
cmp ax, [bp+var_2]
jnz short loc_C5A8
inc [bp+var_7]
cmp [bp+var_7], 1Eh
jbe short loc_C5B8
test [bp+var_7], 1
jnz short loc_C5B8
mov [bp+var_2], 0
jmp short loc_C5B8
; ---------------------------------------------------------------------------
loc_C5A8:
cmp _key_det, INPUT_NONE
jnz short loc_C5B4
mov [bp+var_2], 0
loc_C5B4:
mov [bp+var_7], 0
loc_C5B8:
call sub_BD1E
jmp loc_C3CD
; ---------------------------------------------------------------------------
loc_C5BE:
call sub_B6A3
jmp short loc_C5CD
; ---------------------------------------------------------------------------
loc_C5C3:
call sub_B6A3
call input_wait_for_change pascal, 0
loc_C5CD:
call bgimage_free
call super_free
call text_clear
push 1
call palette_black_out
pop di
pop si
leave
retn
sub_C1DD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C5E7 proc near
var_6 = word ptr -6
@@g_str = byte ptr -4
arg_0 = word ptr 4
@@y = word ptr 6
@@x = word ptr 8
enter 6, 0
push si
xor si, si
mov [bp+@@g_str], 2
mov ax, [bp+arg_0]
mov bx, 100
xor dx, dx
div bx
mov [bp+var_6], ax
mov ax, [bp+arg_0]
xor dx, dx
div bx
mov [bp+arg_0], dx
cmp byte_11713, 0
jnz short loc_C625
or si, [bp+var_6]
or si, si
jz short loc_C621
mov al, byte ptr [bp+var_6]
add al, gb_0_
mov [bp+@@g_str], al
jmp short loc_C625
; ---------------------------------------------------------------------------
loc_C621:
mov [bp+@@g_str], 2
loc_C625:
mov ax, [bp+arg_0]
mov bx, 10
xor dx, dx
div bx
mov [bp+var_6], ax
mov ax, [bp+arg_0]
xor dx, dx
div bx
mov [bp+arg_0], dx
or si, [bp+var_6]
mov al, byte_11713
mov ah, 0
or si, ax
or si, si
jz short loc_C654
mov al, byte ptr [bp+var_6]
add al, gb_0_
mov [bp+@@g_str+1], al
jmp short loc_C658
; ---------------------------------------------------------------------------
loc_C654:
mov [bp+@@g_str+1], g_EMPTY
loc_C658:
mov al, byte ptr [bp+arg_0]
add al, gb_0_
mov [bp+@@g_str+2], al
mov [bp+@@g_str+3], 0
push [bp+@@x]
push [bp+@@y]
push GAIJI_W
push ss
lea ax, [bp+@@g_str]
push ax
push col_116E4
call graph_gaiji_puts
pop si
leave
retn 6
sub_C5E7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C67F proc near
@@g_str = byte ptr -0Ch
var_2 = byte ptr -2
var_1 = byte ptr -1
arg_0 = dword ptr 4
@@y = word ptr 8
arg_6 = word ptr 0Ah
enter 0Ch, 0
push si
push di
mov di, [bp+arg_6]
les bx, [bp+arg_0]
cmp byte ptr es:[bx+7], 0Ah
jb short loc_C6AC
mov al, es:[bx+7]
mov ah, 0
mov bx, 10
cwd
idiv bx
mov [bp+var_1], al
add al, gb_0_
mov [bp+@@g_str], al
mov [bp+var_2], 1
jmp short loc_C6B4
; ---------------------------------------------------------------------------
loc_C6AC:
mov [bp+@@g_str], g_EMPTY
mov [bp+var_2], 0
loc_C6B4:
mov si, 1
jmp short loc_C6F1
; ---------------------------------------------------------------------------
loc_C6B9:
mov ax, 8
sub ax, si
les bx, [bp+arg_0]
add bx, ax
mov al, es:[bx]
mov ah, 0
mov bx, 10
cwd
idiv bx
mov [bp+var_1], dl
mov al, [bp+var_1]
or [bp+var_2], al
cmp [bp+var_2], 0
jnz short loc_C6E2
cmp si, 8
jnz short loc_C6EC
loc_C6E2:
mov al, [bp+var_1]
add al, gb_0_
mov [bp+si+@@g_str], al
jmp short loc_C6F0
; ---------------------------------------------------------------------------
loc_C6EC:
mov [bp+si+@@g_str], g_EMPTY
loc_C6F0:
inc si
loc_C6F1:
cmp si, 8
jle short loc_C6B9
mov [bp+@@g_str+9], 0
push di
push [bp+@@y]
push GAIJI_W
push ss
lea ax, [bp+@@g_str]
push ax
push col_116E4
call graph_gaiji_puts
lea ax, [di+144]
call graph_putsa_fx pascal, ax, [bp+@@y], col_116E4, ds, offset aU__0
pop di
pop si
leave
retn 8
sub_C67F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C729 proc near
var_6 = dword ptr -6
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
arg_6 = word ptr 0Ah
enter 6, 0
push si
push di
mov si, [bp+arg_6]
mov di, [bp+arg_4]
cmp [bp+arg_2], 0
jz short loc_C745
mov [bp+var_6], 0F4240h
jmp short loc_C74D
; ---------------------------------------------------------------------------
loc_C745:
mov [bp+var_6], 0
loc_C74D:
mov ax, [bp+arg_2]
cmp ax, [bp+arg_0]
jz short loc_C786
cmp [bp+arg_2], 0
jz short loc_C770
movzx ebx, [bp+arg_2]
mov eax, [bp+var_6]
xor edx, edx
div ebx
mov [bp+var_6], eax
jmp short loc_C778
; ---------------------------------------------------------------------------
loc_C770:
mov [bp+var_6], 0
loc_C778:
movzx eax, [bp+arg_0]
imul eax, [bp+var_6]
mov [bp+var_6], eax
loc_C786:
cmp byte_116EA, 0
jnz short loc_C797
mov eax, dword_1517E
add eax, [bp+var_6]
jmp short loc_C79F
; ---------------------------------------------------------------------------
loc_C797:
mov eax, dword_1517E
sub eax, [bp+var_6]
loc_C79F:
mov dword_1517E, eax
cmp byte_1517C, 0
jz short loc_C7B6
mov eax, [bp+var_6]
shr eax, 2
mov dword_15182, eax
loc_C7B6:
mov eax, [bp+var_6]
mov ebx, 2710h
xor edx, edx
div ebx
mov [bp+var_2], ax
push si
push di
push ax
call sub_C5E7
mov ebx, 2710h
mov eax, [bp+var_6]
xor edx, edx
div ebx
mov [bp+var_6], edx
mov eax, [bp+var_6]
mov ebx, 64h ; 'd'
xor edx, edx
div ebx
mov [bp+var_2], ax
mov byte_11713, 1
lea ax, [si+48]
push ax
push di
push [bp+var_2]
call sub_C5E7
mov byte_11713, 0
lea ax, [si+48]
call graph_putsa_fx pascal, ax, di, col_116E4, ds, offset aBd
lea ax, [si+96]
call graph_putsa_fx pascal, ax, di, col_116E4, ds, offset aBu
pop di
pop si
leave
retn 8
sub_C729 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C835 proc near
var_2 = word ptr -2
arg_0 = dword ptr 4
@@y = word ptr 8
arg_6 = word ptr 0Ah
enter 2, 0
push si
push di
mov si, [bp+arg_6]
mov di, [bp+@@y]
mov eax, [bp+arg_0]
mov ebx, 2710h
xor edx, edx
div ebx
mov [bp+var_2], ax
push si
push di
push ax
call sub_C5E7
mov ebx, 2710h
mov eax, [bp+arg_0]
xor edx, edx
div ebx
mov [bp+arg_0], edx
mov eax, [bp+arg_0]
mov ebx, 64h ; 'd'
xor edx, edx
div ebx
mov [bp+var_2], ax
mov byte_11713, 1
lea ax, [si+48]
push ax
push di
push [bp+var_2]
call sub_C5E7
mov byte_11713, 0
lea ax, [si+48]
call graph_putsa_fx pascal, ax, di, col_116E4, ds, offset aBd_0
pop di
pop si
leave
retn 8
sub_C835 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C8AE proc near
var_4 = dword ptr -4
enter 4, 0
les bx, _resident
mov eax, es:[bx+resident_t.rand]
mov random_seed, eax
mov al, es:[bx+resident_t.credit_lives]
mov ah, 0
dec ax
mov bx, ax
cmp bx, 5
ja short loc_C90E
add bx, bx
jmp cs:off_C9F6[bx]
loc_C8D4:
mov [bp+var_4], 9C4h
jmp short loc_C90E
; ---------------------------------------------------------------------------
loc_C8DE:
mov [bp+var_4], 7D0h
jmp short loc_C90E
; ---------------------------------------------------------------------------
loc_C8E8:
mov [bp+var_4], 5DCh
jmp short loc_C90E
; ---------------------------------------------------------------------------
loc_C8F2:
mov [bp+var_4], 3E8h
jmp short loc_C90E
; ---------------------------------------------------------------------------
loc_C8FC:
mov [bp+var_4], 1F4h
jmp short loc_C90E
; ---------------------------------------------------------------------------
loc_C906:
mov [bp+var_4], 0
loc_C90E:
les bx, _resident
mov al, es:[bx+resident_t.credit_bombs]
mov ah, 0
or ax, ax
jz short loc_C928
cmp ax, 1
jz short loc_C932
cmp ax, 2
jz short loc_C93C
jmp short loc_C944
; ---------------------------------------------------------------------------
loc_C928:
add [bp+var_4], 9C4h
jmp short loc_C944
; ---------------------------------------------------------------------------
loc_C932:
add [bp+var_4], 5DCh
jmp short loc_C944
; ---------------------------------------------------------------------------
loc_C93C:
add [bp+var_4], 3E8h
loc_C944:
les bx, _resident
cmp es:[bx+resident_t.turbo_mode], 0
jz short loc_C957
add [bp+var_4], 7D0h
loc_C957:
les bx, _resident
cmp es:[bx+resident_t.graze], 0
jz short loc_C971
mov ax, es:[bx+resident_t.graze]
imul ax, 3
movzx eax, ax
add [bp+var_4], eax
loc_C971:
les bx, _resident
mov al, es:[bx+resident_t.miss_count]
mov ah, 0
mov dl, es:[bx+resident_t.bombs_used]
mov dh, 0
sub ax, dx
cwde
imul eax, 0C8h
add [bp+var_4], eax
cmp [bp+var_4], 0
jge short loc_C9A1
mov [bp+var_4], 0
jmp short loc_C9B3
; ---------------------------------------------------------------------------
loc_C9A1:
cmp [bp+var_4], 2710h
jle short loc_C9B3
mov [bp+var_4], 2710h
loc_C9B3:
mov eax, [bp+var_4]
imul eax, 64h
mov [bp+var_4], eax
add dword_1517E, eax
mov ax, x_116E2
add ax, 176
push ax
mov ax, y_116E8
add ax, 216
push ax
pushd [bp+var_4]
call sub_C835
mov ax, x_116E2
add ax, 272
push ax
mov ax, y_116E8
add ax, 216
push ax
push col_116E4
push ds
push offset aBu_0
call graph_putsa_fx
leave
retn
sub_C8AE endp
; ---------------------------------------------------------------------------
off_C9F6 dw offset loc_C8D4
dw offset loc_C8DE
dw offset loc_C8E8
dw offset loc_C8F2
dw offset loc_C8FC
dw offset loc_C906
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CA02 proc near
push bp
mov bp, sp
les bx, _resident
cmp es:[bx+resident_t.end_sequence], ES_1CC
jz short loc_CA17
cmp es:[bx+resident_t.end_sequence], ES_EXTRA
jnz short loc_CA57
loc_CA17:
les bx, _resident
cmp es:[bx+resident_t.rank], RANK_EASY
jnz short loc_CA26
mov al, 4
pop bp
retn
; ---------------------------------------------------------------------------
loc_CA26:
les bx, _resident
cmp byte ptr es:[bx+score_last][7], 7
ja short loc_CA35
mov al, 1
pop bp
retn
; ---------------------------------------------------------------------------
loc_CA35:
les bx, _resident
cmp es:[bx+resident_t.miss_count], 6
jb short loc_CA44
mov al, 7
pop bp
retn
; ---------------------------------------------------------------------------
loc_CA44:
les bx, _resident
cmp es:[bx+resident_t.RESIDENT_unknown], 15
jb short loc_CA53
mov al, 8
pop bp
retn
; ---------------------------------------------------------------------------
loc_CA53:
mov al, 0
pop bp
retn
; ---------------------------------------------------------------------------
loc_CA57:
les bx, _resident
cmp es:[bx+resident_t.end_sequence], ES_CONTINUED
jnz short loc_CA66
mov al, 2
pop bp
retn
; ---------------------------------------------------------------------------
loc_CA66:
les bx, _resident
mov al, es:[bx+resident_t.bombs_used]
mov ah, 0
mov dl, es:[bx+resident_t.miss_count]
mov dh, 0
add dx, dx
cmp ax, dx
jg short loc_CA80
mov al, 5
pop bp
retn
; ---------------------------------------------------------------------------
loc_CA80:
les bx, _resident
cmp es:[bx+resident_t.stage], 4
jb short loc_CA97
cmp es:[bx+resident_t.point_items_collected], 350
ja short loc_CA97
mov al, 6
pop bp
retn
; ---------------------------------------------------------------------------
loc_CA97:
mov al, 3
pop bp
retn
sub_CA02 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CA9B proc near
var_4 = dword ptr -4
enter 4, 0
push si
mov dword_1517E, 0
mov _graph_putsa_fx_func, 2
call graph_putsa_fx pascal, x_116E2, y_116E8, col_116E4, ds, offset aB@b@b@b@b@b@b@ ; "<22>@<40>@<40>@<40>@<40>@<40>@<40>@ <20>r<EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD>"
push x_116E2
mov ax, y_116E8
add ax, 24
push ax
push col_116E4
push ds
push offset aUqiUx ; "<22><><EFBFBD>Փx"
call graph_putsa_fx
push x_116E2
mov ax, y_116E8
add ax, 48
push ax
push col_116E4
push ds
push offset aNPiuU_ ; "<22>ŏI<C58F><49><EFBFBD>_"
call graph_putsa_fx
push x_116E2
mov ax, y_116E8
add ax, 72
push ax
push col_116E4
push ds
push offset aGGxi
call graph_putsa_fx
push x_116E2
mov ax, y_116E8
add ax, 96
push ax
push col_116E4
push ds
push offset aGGaogcpi
call graph_putsa_fx
push x_116E2
mov ax, y_116E8
add ax, 120
push ax
push col_116E4
push ds
push offset aGqbGatbrmcj ; "<22>Q<EFBFBD>[<5B><><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD>"
call graph_putsa_fx
push x_116E2
mov ax, y_116E8
add ax, 144
push ax
push col_116E4
push ds
push offset aIlcSObcj ; "<22><><EFBFBD><EFBFBD><EFBFBD>ގ<EFBFBD><DE8E><EFBFBD>"
call graph_putsa_fx
push x_116E2
mov ax, y_116E8
add ax, 168
push ax
push col_116E4
push ds
push offset aGagcgegai
call graph_putsa_fx
push x_116E2
mov ax, y_116E8
add ax, 192
push ax
push col_116E4
push ds
push offset aUU_gagcgeganNv ; "<22><><EFBFBD>_<EFBFBD>A<EFBFBD>C<EFBFBD>e<EFBFBD><65><EFBFBD>ō<EFBFBD><C58D>_<EFBFBD><5F>"
call graph_putsa_fx
push x_116E2
mov ax, y_116E8
add ax, 216
push ax
push col_116E4
push ds
push offset aLcnzvv ; "<22>C<EFBFBD><43><EFBFBD><EFBFBD>"
call graph_putsa_fx
push x_116E2
mov ax, y_116E8
add ax, 240
push ax
push col_116E4
push ds
push offset aPicacovCj ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
call graph_putsa_fx
push x_116E2
mov ax, y_116E8
add ax, 272
push ax
push col_116E4
push ds
push offset aVavVVSrso ; "<22><><EFBFBD>Ȃ<EFBFBD><C882>̘r<CC98>O"
call graph_putsa_fx
les bx, _resident
cmp es:[bx+resident_t.stage], STAGE_EXTRA
jnz short loc_CBDB
mov al, RANK_EXTRA
jmp short loc_CBE3
; ---------------------------------------------------------------------------
loc_CBDB:
les bx, _resident
mov al, es:[bx+resident_t.rank]
loc_CBE3:
mov _verdict_rank, al
mov ax, x_116E2
add ax, 160
push ax
mov ax, y_116E8
add ax, 24
push ax
push GAIJI_W
push ds
mov al, _verdict_rank
mov ah, 0
shl ax, 3
add ax, offset grEASY
push ax
push col_116E4
call graph_gaiji_puts
mov ax, x_116E2
add ax, 128
push ax
mov ax, y_116E8
add ax, 48
push ax
mov ax, word ptr _resident
add ax, 20h ; ' '
push word ptr _resident+2
push ax
call sub_C67F
mov ax, x_116E2
add ax, 224
push ax
mov ax, y_116E8
add ax, 72
push ax
les bx, _resident
mov al, es:[bx+resident_t.miss_count]
mov ah, 0
push ax
call sub_C5E7
mov ax, x_116E2
add ax, 224
push ax
mov ax, y_116E8
add ax, 96
push ax
les bx, _resident
mov al, es:[bx+resident_t.bombs_used]
mov ah, 0
push ax
call sub_C5E7
mov ax, x_116E2
add ax, 272
push ax
mov ax, y_116E8
add ax, 72
push ax
push col_116E4
push ds
push offset aI
call graph_putsa_fx
mov ax, x_116E2
add ax, 272
push ax
mov ax, y_116E8
add ax, 96
push ax
push col_116E4
push ds
push offset aI_0
call graph_putsa_fx
mov byte_1517C, 1
les bx, _resident
cmp es:[bx+resident_t.stage], STAGE_EXTRA
jz short loc_CCC6
cmp es:[bx+resident_t.end_sequence], ES_CONTINUED
jb short loc_CCB3
mov es:[bx+resident_t.std_frames], 46000
loc_CCB3:
mov ax, x_116E2
add ax, 176
push ax
mov ax, y_116E8
add ax, 120
push ax
push 46000
jmp short loc_CCE8
; ---------------------------------------------------------------------------
loc_CCC6:
les bx, _resident
cmp es:[bx+resident_t.end_sequence], ES_EXTRA
jnz short loc_CCD7
mov es:[bx+resident_t.std_frames], 12800
loc_CCD7:
mov ax, x_116E2
add ax, 176
push ax
mov ax, y_116E8
add ax, 120
push ax
push 12800
loc_CCE8:
les bx, _resident
push es:[bx+resident_t.std_frames]
call sub_C729
mov byte_1517C, 0
mov ax, x_116E2
add ax, 176
push ax
mov ax, y_116E8
add ax, 144
push ax
les bx, _resident
push es:[bx+resident_t.enemies_gone]
push es:[bx+resident_t.enemies_killed]
call sub_C729
mov ax, x_116E2
add ax, 176
push ax
mov ax, y_116E8
add ax, 168
push ax
les bx, _resident
push es:[bx+resident_t.items_spawned]
push es:[bx+resident_t.items_collected]
call sub_C729
mov ax, x_116E2
add ax, 176
push ax
mov ax, y_116E8
add ax, 192
push ax
les bx, _resident
push es:[bx+resident_t.point_items_collected]
push es:[bx+resident_t.max_valued_point_items_collected]
call sub_C729
call sub_C8AE
mov byte_116EA, 1
mov ax, x_116E2
add ax, 176
push ax
mov ax, y_116E8
add ax, 240
push ax
les bx, _resident
mov eax, es:[bx+resident_t.frames]
mov ebx, 10
xor edx, edx
div ebx
push ax
mov bx, word ptr _resident
mov eax, es:[bx+resident_t.slow_frames]
mov ebx, 10
xor edx, edx
div ebx
push ax
call sub_C729
mov byte_116EA, 0
mov ebx, 0Ch
mov eax, dword_1517E
cdq
idiv ebx
mov dword_1517E, eax
mov eax, dword_15182
add dword_1517E, eax
les bx, _resident
cmp es:[bx+resident_t.score_highest][7], 10
jb short loc_CDCB
add dword_1517E, 7A120h
jmp short loc_CDF3
; ---------------------------------------------------------------------------
loc_CDCB:
les bx, _resident
movzx eax, es:[bx+resident_t.score_highest][6]
imul eax, 1388h
add dword_1517E, eax
movzx eax, es:[bx+resident_t.score_highest][7]
imul eax, 0C350h
add dword_1517E, eax
loc_CDF3:
mov al, _verdict_rank
mov ah, 0
mov bx, ax
cmp bx, RANK_EXTRA
ja loc_CEAF
add bx, bx
jmp cs:off_D165[bx]
loc_CE08:
sub dword_1517E, 0C350h
mov [bp+var_4], 0C3500h
jmp loc_CEAF
; ---------------------------------------------------------------------------
loc_CE1C:
mov [bp+var_4], 0F4240h
jmp loc_CEAF
; ---------------------------------------------------------------------------
loc_CE27:
mov eax, dword_1517E
imul eax, 5
mov dword_1517E, eax
mov ebx, 4
cdq
idiv ebx
mov dword_1517E, eax
add dword_1517E, 249F0h
mov [bp+var_4], 124F80h
jmp short loc_CEAF
; ---------------------------------------------------------------------------
loc_CE55:
mov eax, dword_1517E
imul eax, 3
mov dword_1517E, eax
mov ebx, 2
cdq
idiv ebx
mov dword_1517E, eax
add dword_1517E, 493E0h
mov [bp+var_4], 155CC0h
jmp short loc_CEAF
; ---------------------------------------------------------------------------
loc_CE83:
mov eax, dword_1517E
imul eax, 3
mov dword_1517E, eax
mov ebx, 2
cdq
idiv ebx
mov dword_1517E, eax
add dword_1517E, 3D090h
mov [bp+var_4], 1E8480h
loc_CEAF:
les bx, _resident
mov al, es:[bx+resident_t.credit_lives]
mov ah, 0
dec ax
mov bx, ax
cmp bx, 5
ja short loc_CF0A
add bx, bx
jmp cs:off_D159[bx]
loc_CEC8:
add dword_1517E, 0C350h
add [bp+var_4], 186A0h
jmp short loc_CF0A
; ---------------------------------------------------------------------------
loc_CEDB:
add dword_1517E, 61A8h
add [bp+var_4], 0C350h
jmp short loc_CF0A
; ---------------------------------------------------------------------------
loc_CEEE:
sub [bp+var_4], 61A8h
jmp short loc_CF0A
; ---------------------------------------------------------------------------
loc_CEF8:
sub [bp+var_4], 0C350h
jmp short loc_CF0A
; ---------------------------------------------------------------------------
loc_CF02:
sub [bp+var_4], 124F8h
loc_CF0A:
les bx, _resident
mov al, es:[bx+resident_t.credit_bombs]
mov ah, 0
or ax, ax
jz short loc_CF24
cmp ax, 1
jz short loc_CF37
cmp ax, 2
jz short loc_CF4A
jmp short loc_CF5B
; ---------------------------------------------------------------------------
loc_CF24:
add dword_1517E, 0C350h
add [bp+var_4], 186A0h
jmp short loc_CF5B
; ---------------------------------------------------------------------------
loc_CF37:
add dword_1517E, 7530h
add [bp+var_4], 0C350h
jmp short loc_CF5B
; ---------------------------------------------------------------------------
loc_CF4A:
add dword_1517E, 4E20h
add [bp+var_4], 61A8h
loc_CF5B:
les bx, _resident
cmp es:[bx+resident_t.turbo_mode], 0
jnz short loc_CF77
sub dword_1517E, 30D40h
sub [bp+var_4], 186A0h
loc_CF77:
les bx, _resident
cmp es:[bx+resident_t.miss_count], 10
jb short loc_CF8D
sub dword_1517E, 493E0h
jmp short loc_CFA3
; ---------------------------------------------------------------------------
loc_CF8D:
les bx, _resident
movzx eax, es:[bx+resident_t.miss_count]
imul eax, 7530h
sub dword_1517E, eax
loc_CFA3:
les bx, _resident
cmp es:[bx+resident_t.bombs_used], 15
jb short loc_CFB9
sub dword_1517E, 36EE8h
jmp short loc_CFCF
; ---------------------------------------------------------------------------
loc_CFB9:
les bx, _resident
movzx eax, es:[bx+resident_t.bombs_used]
imul eax, 3A98h
sub dword_1517E, eax
loc_CFCF:
les bx, _resident
cmp es:[bx+resident_t.end_sequence], ES_EXTRA
jnb short loc_CFF5
mov eax, dword_1517E
imul eax, 7
mov dword_1517E, eax
mov ebx, 8
cdq
idiv ebx
mov dword_1517E, eax
loc_CFF5:
cmp dword_1517E, 0
jge short loc_D008
mov dword_1517E, 0
jmp short loc_D01A
; ---------------------------------------------------------------------------
loc_D008:
mov eax, dword_1517E
cmp eax, [bp+var_4]
jbe short loc_D01A
mov eax, [bp+var_4]
mov dword_1517E, eax
loc_D01A:
mov byte_15187, 0
mov byte_151A5, 0
les bx, _resident
mov eax, es:[bx+resident_t.frames]
shr eax, 1
cmp eax, es:[bx+resident_t.slow_frames]
jbe loc_D120
mov ax, x_116E2
add ax, 176
push ax
mov ax, y_116E8
add ax, 272
push ax
pushd [dword_1517E]
call sub_C835
mov ax, x_116E2
add ax, 272
push ax
mov ax, y_116E8
add ax, 272
push ax
push col_116E4
push ds
push offset aU_
call graph_putsa_fx
push ds
push offset a_ude_txt ; "_ude.txt"
call file_ropen
cmp dword_1517E, 16E360h
jge short loc_D0E1
cmp dword_1517E, 0
jnz short loc_D08B
mov si, 19h
jmp short loc_D0D1
; ---------------------------------------------------------------------------
loc_D08B:
cmp dword_1517E, 100590h
jge short loc_D0AE
mov eax, dword_1517E
mov ebx, 0C350h
cdq
idiv ebx
mov dx, 18h
sub dx, ax
mov si, dx
jmp short loc_D0D1
; ---------------------------------------------------------------------------
loc_D0AE:
cmp dword_1517E, 124F80h
jge short loc_D0BE
mov si, 3
jmp short loc_D0D1
; ---------------------------------------------------------------------------
loc_D0BE:
cmp dword_1517E, 149970h
jge short loc_D0CE
mov si, 2
jmp short loc_D0D1
; ---------------------------------------------------------------------------
loc_D0CE:
mov si, 1
loc_D0D1:
mov ax, si
imul ax, 1Eh
cwde
push eax
push 0
call file_seek
loc_D0E1:
push ds
push offset byte_15187
push 1Eh
call file_read
call sub_CA02
mov ah, 0
mov si, ax
imul ax, 1Eh
add ax, 30Ch
cwde
push eax
push 0
call file_seek
push ds
push offset byte_151A5
push 1Eh
call file_read
call file_close
mov byte_151A3, 0
mov byte_151C1, 0
jmp short loc_D156
; ---------------------------------------------------------------------------
loc_D120:
mov ax, x_116E2
add ax, 176
push ax
mov ax, y_116E8
add ax, 272
push ax
push col_116E4
push ds
push offset aBhbhbhbhbhbhu_ ; "<22>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD>_"
call graph_putsa_fx
mov ax, x_116E2
add ax, 48
push ax
mov ax, y_116E8
add ax, 296
push ax
push word_116E6
push ds
push offset aPicacovVVcvsfT ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><C982><EFBFBD><E994BB><EFBFBD>s<EFBFBD><73>"
call graph_putsa_fx
loc_D156:
pop si
leave
retn
sub_CA9B endp
; ---------------------------------------------------------------------------
off_D159 dw offset loc_CEC8
dw offset loc_CEDB
dw offset loc_CF0A
dw offset loc_CEEE
dw offset loc_CEF8
dw offset loc_CF02
off_D165 dw offset loc_CE08
dw offset loc_CE1C
dw offset loc_CE27
dw offset loc_CE55
dw offset loc_CE83
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D16F proc near
push bp
mov bp, sp
cmp byte_15187, 0
jz short loc_D1AF
mov ax, x_116E2
add ax, 48
push ax
mov ax, y_116E8
add ax, 296
push ax
push word_116E6
push ds
push offset byte_15187
call graph_putsa_fx
mov ax, x_116E2
add ax, 48
push ax
mov ax, y_116E8
add ax, 312
push ax
push word_116E6
push ds
push offset byte_151A5
call graph_putsa_fx
loc_D1AF:
pop bp
retn
sub_D16F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D1B1 proc near
push bp
mov bp, sp
mov PaletteTone, 0
call far ptr palette_show
graph_accesspage 1
call pi_slot_load pascal, 0, ds, offset aUde_pi
call pi_slot_palette_apply pascal, 0
call pi_slot_put pascal, large 0, 0
call pi_slot_free pascal, 0
call graph_copy_page pascal, 0
push 4
call palette_black_in
graph_accesspage 0
graph_showpage al
call sub_CA9B
push 40h
call frame_delay
call sub_D16F
call input_wait_for_change pascal, 0
push 2
call palette_black_out
pop bp
retn
sub_D1B1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D21D proc near
var_2 = word ptr -2
enter 2, 0
push si
push di
push x_116E2
mov ax, y_116E8
add ax, 64
push ax
push col_116E4
push ds
push offset aB@vpcB@ ; "<22>@<40>P<EFBFBD>ʁ@"
call graph_putsa_fx
push x_116E2
mov ax, y_116E8
add ax, 96
push ax
push col_116E4
push ds
push offset aB@vqcB@ ; "<22>@<40>Q<EFBFBD>ʁ@"
call graph_putsa_fx
push x_116E2
mov ax, y_116E8
add ax, 128
push ax
push col_116E4
push ds
push offset aB@vrcB@ ; "<22>@<40>R<EFBFBD>ʁ@"
call graph_putsa_fx
push x_116E2
mov ax, y_116E8
add ax, 160
push ax
push col_116E4
push ds
push offset aB@vscB@ ; "<22>@<40>S<EFBFBD>ʁ@"
call graph_putsa_fx
push x_116E2
mov ax, y_116E8
add ax, 192
push ax
push col_116E4
push ds
push offset aB@vtcB@ ; "<22>@<40>T<EFBFBD>ʁ@"
call graph_putsa_fx
push x_116E2
mov ax, y_116E8
add ax, 224
push ax
push col_116E4
push ds
push offset aB@vucB@ ; "<22>@<40>U<EFBFBD>ʁ@"
call graph_putsa_fx
push x_116E2
mov ax, y_116E8
add ax, 288
push ax
push col_116E4
push ds
push offset aNPiuU__0 ; "<22>ŏI<C58F><49><EFBFBD>_"
call graph_putsa_fx
mov ax, x_116E2
add ax, 128
mov [bp+var_2], ax
xor si, si
mov ax, y_116E8
add ax, 64
mov di, ax
jmp short loc_D2FE
; ---------------------------------------------------------------------------
loc_D2E0:
push [bp+var_2]
push di
mov ax, si
shl ax, 3
mov dx, word ptr _resident
add dx, ax
add dx, 4Ch ; 'L'
push word ptr _resident+2
push dx
call sub_C67F
inc si
add di, 20h ; ' '
loc_D2FE:
cmp si, 6
jl short loc_D2E0
push [bp+var_2]
mov ax, y_116E8
add ax, 288
push ax
mov ax, word ptr _resident
add ax, 20h ; ' '
push word ptr _resident+2
push ax
call sub_C67F
pop di
pop si
leave
retn
sub_D21D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D31F proc near
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
arg_6 = word ptr 0Ah
push bp
mov bp, sp
mov ax, [bp+arg_6]
mov word_151D6, ax
mov ax, [bp+arg_4]
mov word_151D8, ax
mov ax, [bp+arg_2]
mov word_151CE, ax
mov ax, [bp+arg_0]
mov word_151D0, ax
mov ax, word_151CE
cwd
sub ax, dx
sar ax, 1
mov dx, word_151D6
sub dx, ax
add dx, 0FFF8h
push dx
mov ax, word_151D0
cwd
sub ax, dx
sar ax, 1
mov dx, word_151D8
sub dx, ax
add dx, 0FFF8h
push dx
mov ax, word_151CE
cwd
sub ax, dx
sar ax, 1
add ax, word_151D6
add ax, 7
push ax
mov ax, word_151D0
cwd
sub ax, dx
sar ax, 1
add ax, word_151D8
add ax, 7
push ax
call grc_setclip
pop bp
retn 8
sub_D31F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D387 proc near
var_4 = word ptr -4
var_2 = word ptr -2
enter 4, 0
push si
push di
mov si, 50E4h
mov [bp+var_2], 55F8h
mov [bp+var_4], 5618h
push 14000C8h
push 1800140h
call sub_D31F
mov word_151DE, 0
xor di, di
jmp short loc_D41B
; ---------------------------------------------------------------------------
loc_D3B3:
call IRand
cwd
idiv word_151CE
shl dx, 4
mov ax, word_151CE
shl ax, 3
sub dx, ax
movsx eax, dx
mov [si], eax
call IRand
cwd
idiv word_151D0
shl dx, 4
mov ax, word_151D0
shl ax, 3
sub dx, ax
movsx eax, dx
mov [si+4], eax
call IRand
mov [si+12h], al
mov word ptr [si+0Eh], 0Ah
mov word ptr [si+0Ch], 0
mov byte ptr [si+13h], 0
lea ax, [si+8]
push ax
pushd 0
push word ptr [si+0Eh]
mov al, [si+12h]
mov ah, 0
push ax
call vector2_at
inc di
add si, 14h
loc_D41B:
cmp di, 40h
jl short loc_D3B3
mov dword ptr [si], 0FFFFC190h
mov byte ptr [si+13h], 0
mov word ptr [si+8], 0
mov word ptr [si+0Ah], 0
mov word_151DA, 0
mov word_151DC, 0
xor di, di
jmp short loc_D451
; ---------------------------------------------------------------------------
loc_D445:
mov bx, [bp+var_2]
mov word ptr [bx], 0C190h
inc di
add [bp+var_2], 4
loc_D451:
cmp di, 8
jl short loc_D445
xor di, di
jmp short loc_D494
; ---------------------------------------------------------------------------
loc_D45A:
call IRand
cwd
idiv word_151CE
shl dx, 4
mov ax, word_151CE
shl ax, 3
sub dx, ax
mov bx, [bp+var_4]
mov [bx], dx
call IRand
cwd
idiv word_151D0
shl dx, 4
mov ax, word_151D0
shl ax, 3
sub dx, ax
mov bx, [bp+var_4]
mov [bx+2], dx
inc di
add [bp+var_4], 4
loc_D494:
cmp di, 30h ; '0'
jl short loc_D45A
pop di
pop si
leave
retn
sub_D387 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D49D proc near
push bp
mov bp, sp
push si
push di
mov si, 50E4h
xor di, di
jmp short loc_D4ED
; ---------------------------------------------------------------------------
loc_D4A9:
mov ax, [si+4]
neg ax
push ax
mov ax, [si]
neg ax
push ax
call iatan2
mov [si+12h], al
push word ptr [si]
push word ptr [si+4]
call ihypot
mov bx, 20h ; ' '
cwd
idiv bx
mov [si+0Eh], ax
mov word ptr [si+10h], 0
lea ax, [si+8]
push ax
pushd 0
push word ptr [si+0Eh]
mov al, [si+12h]
mov ah, 0
push ax
call vector2_at
inc di
add si, 14h
loc_D4ED:
cmp di, 40h
jl short loc_D4A9
mov dword ptr [si], 0
mov dword ptr [si+4], 0
mov byte ptr [si+13h], 1
pop di
pop si
pop bp
retn
sub_D49D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D509 proc near
push bp
mov bp, sp
push si
mov si, 50E4h
xor ax, ax
jmp short loc_D51F
; ---------------------------------------------------------------------------
loc_D514:
mov dword ptr [si], 0FFFFC190h
inc ax
add si, 14h
loc_D51F:
cmp ax, 40h
jl short loc_D514
mov byte ptr [si+13h], 10h
mov word_151DE, 1
pop si
pop bp
retn
sub_D509 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D531 proc near
push bp
mov bp, sp
push si
push di
mov si, 50E4h
xor di, di
jmp loc_D5C9
; ---------------------------------------------------------------------------
loc_D53E:
mov ax, [si+4]
neg ax
push ax
mov ax, [si]
neg ax
push ax
call iatan2
mov [si+12h], al
push word ptr [si]
push word ptr [si+4]
call ihypot
mov bx, 20h ; ' '
cwd
idiv bx
mov [si+0Eh], ax
mov word ptr [si+0Ch], 0
call IRand
and al, 7Fh
mov [si+12h], al
call IRand
mov bx, 40h
cwd
idiv bx
add dx, 5Ch
mov [si+0Eh], dx
push offset point_151D2
push x_156E4
push y_156E8
push (12 shl 4)
mov al, [si+12h]
mov ah, 0
push ax
call vector2_at
lea ax, [si+8]
push ax
pushd 0
push word ptr [si+0Eh]
mov al, [si+12h]
mov ah, 0
push ax
call vector2_at
movsx eax, point_151D2.x
mov [si], eax
movsx eax, point_151D2.y
mov [si+4], eax
inc di
add si, 14h
loc_D5C9:
cmp di, 40h
jl loc_D53E
mov dword ptr [si], 0FFFFC190h
mov word_151DE, 1
pop di
pop si
pop bp
retn
sub_D531 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D5E1 proc near
var_4 = word ptr -4
var_2 = word ptr -2
enter 4, 0
push si
push di
mov si, 50E4h
mov [bp+var_4], 55F8h
mov di, 5618h
mov [bp+var_2], 0
jmp loc_D6FF
; ---------------------------------------------------------------------------
loc_D5FA:
cmp dword ptr [si], 0FFFFC190h
jz loc_D6F9
mov ax, [si+8]
sub ax, word_151DA
cwde
add [si], eax
mov ax, [si+0Ah]
sub ax, word_151DC
cwde
add [si+4], eax
cmp word_151DE, 0
jnz loc_D6AB
mov ax, word_151CE
neg ax
shl ax, 3
add ax, 0FFC0h
cwde
cmp eax, [si]
jl short loc_D649
mov ax, word_151CE
shl ax, 4
add ax, 80h
cwde
add [si], eax
jmp short loc_D667
; ---------------------------------------------------------------------------
loc_D649:
mov ax, word_151CE
shl ax, 3
add ax, 40h
cwde
cmp eax, [si]
jg short loc_D667
mov ax, word_151CE
shl ax, 4
add ax, 80h
cwde
sub [si], eax
loc_D667:
mov ax, word_151D0
neg ax
shl ax, 3
add ax, 0FFC0h
cwde
cmp eax, [si+4]
jl short loc_D68B
mov ax, word_151D0
shl ax, 4
add ax, 80h
cwde
add [si+4], eax
jmp short loc_D6AB
; ---------------------------------------------------------------------------
loc_D68B:
mov ax, word_151D0
shl ax, 3
add ax, 40h
cwde
cmp eax, [si+4]
jg short loc_D6AB
mov ax, word_151D0
shl ax, 4
add ax, 80h
cwde
sub [si+4], eax
loc_D6AB:
cmp word_151DE, 0
jz short loc_D6F9
mov ax, word_151DE
sub [si+0Eh], ax
cmp word ptr [si+0Eh], 0
jnz short loc_D6C7
mov dword ptr [si], 0FFFFC190h
jmp short loc_D6F9
; ---------------------------------------------------------------------------
loc_D6C7:
cmp word ptr [si+0Eh], 23h ; '#'
jle short loc_D6D4
mov word ptr [si+0Ch], 0
jmp short loc_D6E4
; ---------------------------------------------------------------------------
loc_D6D4:
mov ax, [si+0Eh]
mov bx, 7
cwd
idiv bx
or dx, dx
jnz short loc_D6E4
inc word ptr [si+0Ch]
loc_D6E4:
lea ax, [si+8]
push ax
pushd 0
push word ptr [si+0Eh]
mov al, [si+12h]
mov ah, 0
push ax
call vector2_at
loc_D6F9:
inc [bp+var_2]
add si, 14h
loc_D6FF:
cmp [bp+var_2], 40h
jl loc_D5FA
mov [bp+var_2], 0
jmp short loc_D72C
; ---------------------------------------------------------------------------
loc_D70E:
mov bx, [bp+var_4]
cmp word ptr [bx], 0C190h
jz short loc_D725
mov bx, [bp+var_4]
mov ax, word_151DA
sub [bx], ax
mov ax, word_151DC
sub [bx+2], ax
loc_D725:
inc [bp+var_2]
add [bp+var_4], 4
loc_D72C:
cmp [bp+var_2], 8
jl short loc_D70E
mov [bp+var_2], 0
jmp loc_D7F8
; ---------------------------------------------------------------------------
loc_D73A:
mov ax, [bp+var_2]
mov bx, 2
cwd
idiv bx
or dx, dx
jnz short loc_D751
mov ax, word_151DA
sub [di], ax
mov ax, word_151DC
jmp short loc_D763
; ---------------------------------------------------------------------------
loc_D751:
mov ax, word_151DA
cwd
sub ax, dx
sar ax, 1
sub [di], ax
mov ax, word_151DC
cwd
sub ax, dx
sar ax, 1
loc_D763:
sub [di+2], ax
cmp word_151DA, 0
jnz short loc_D7A5
mov ax, word_151CE
neg ax
shl ax, 3
cmp ax, [di]
jge short loc_D783
mov ax, word_151CE
shl ax, 3
cmp ax, [di]
jg short loc_D7CA
loc_D783:
call IRand
cwd
idiv word_151CE
shl dx, 4
mov ax, word_151CE
shl ax, 3
sub dx, ax
mov [di], dx
mov ax, word_151D0
shl ax, 3
mov [di+2], ax
jmp short loc_D7CA
; ---------------------------------------------------------------------------
loc_D7A5:
mov ax, word_151CE
neg ax
shl ax, 3
cmp ax, [di]
jl short loc_D7B6
mov ax, word_151CE
jmp short loc_D7C5
; ---------------------------------------------------------------------------
loc_D7B6:
mov ax, word_151CE
shl ax, 3
cmp ax, [di]
jg short loc_D7CA
mov ax, word_151CE
neg ax
loc_D7C5:
shl ax, 3
mov [di], ax
loc_D7CA:
mov ax, word_151D0
neg ax
shl ax, 3
cmp ax, [di+2]
jl short loc_D7DC
mov ax, word_151D0
jmp short loc_D7EC
; ---------------------------------------------------------------------------
loc_D7DC:
mov ax, word_151D0
shl ax, 3
cmp ax, [di+2]
jg short loc_D7F2
mov ax, word_151D0
neg ax
loc_D7EC:
shl ax, 3
mov [di+2], ax
loc_D7F2:
inc [bp+var_2]
add di, 4
loc_D7F8:
cmp [bp+var_2], 30h ; '0'
jl loc_D73A
mov si, offset x_156E4
cmp dword ptr [si], 0FFFFC190h
jz short loc_D83F
mov ax, [si+8]
sub ax, word_151DA
cwde
add [si], eax
mov ax, [si+0Ah]
sub ax, word_151DC
cwde
add [si+4], eax
cmp byte ptr [si+13h], 10h
jb short loc_D83F
cmp byte_1183A, 0
jz short loc_D83F
call sub_D853
cmp word ptr [si+0Ah], 0B4h ; '<27>'
jge short loc_D83F
inc word ptr [si+0Ah]
loc_D83F:
mov ax, word_151E2
mov bx, 3
cwd
idiv bx
or dx, dx
jnz short loc_D84F
call sub_D8B6
loc_D84F:
pop di
pop si
leave
retn
sub_D5E1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D853 proc near
push bp
mov bp, sp
push si
mov ax, word_1183C
inc word_1183C
imul ax, 14h
add ax, 50E4h
mov si, ax
mov word ptr [si+0Ch], 0
call IRand
and al, 7Fh
mov [si+12h], al
mov word ptr [si+0Eh], 30h ; '0'
push offset point_151D2
push x_156E4
push y_156E8
push (12 shl 4)
mov al, [si+12h]
mov ah, 0
push ax
call vector2_at
movsx eax, point_151D2.x
mov [si], eax
movsx eax, point_151D2.y
mov [si+4], eax
cmp word_1183C, 40h
jl short loc_D8B3
mov word_1183C, 0
loc_D8B3:
pop si
pop bp
retn
sub_D853 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D8B6 proc near
push bp
mov bp, sp
mov dx, 6
jmp short loc_D8E3
; ---------------------------------------------------------------------------
loc_D8BE:
mov bx, dx
shl bx, 2
mov ax, [bx+55F8h]
mov bx, dx
shl bx, 2
mov [bx+55FCh], ax
mov bx, dx
shl bx, 2
mov ax, [bx+55FAh]
mov bx, dx
shl bx, 2
mov [bx+55FEh], ax
dec dx
loc_D8E3:
or dx, dx
jge short loc_D8BE
mov ax, x_156E4
mov word_156F8, ax
mov ax, y_156E8
mov word_156FA, ax
pop bp
retn
sub_D8B6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D8F5 proc near
push bp
mov bp, sp
push si
mov si, 50E4h
xor cx, cx
jmp short loc_D91D
; ---------------------------------------------------------------------------
loc_D900:
inc word ptr [si+10h]
mov ax, [si+10h]
mov bx, 8
cwd
idiv bx
or dx, dx
jnz short loc_D919
cmp word ptr [si+0Ch], 5
jge short loc_D919
inc word ptr [si+0Ch]
loc_D919:
inc cx
add si, 14h
loc_D91D:
cmp cx, 40h
jl short loc_D900
cmp byte ptr [si+13h], 10h
jnb short loc_D92E
mov al, byte_1183A
add [si+13h], al
loc_D92E:
pop si
pop bp
retn
sub_D8F5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D931 proc near
var_2 = word ptr -2
enter 2, 0
push si
inc word_1183E
cmp word_1183E, 50h ; 'P'
jl loc_DA31
cmp word_1183E, 0B0h ; '<27>'
jge short loc_D951
inc word_151DC
jmp short loc_D9B5
; ---------------------------------------------------------------------------
loc_D951:
cmp word_1183E, 158h
jge short loc_D964
mov al, byte_1183A
mov ah, 0
add word_151DC, ax
jmp short loc_D9B5
; ---------------------------------------------------------------------------
loc_D964:
cmp byte_11840, 0
jnz short loc_D991
mov ax, word_151E2
mov bx, 10h
cwd
idiv bx
or dx, dx
jnz short loc_D97D
mov ax, 1
jmp short loc_D97F
; ---------------------------------------------------------------------------
loc_D97D:
xor ax, ax
loc_D97F:
add word_151DC, ax
cmp word_151DC, 0B6h ; '<27>'
jle short loc_D9B5
inc byte_11840
jmp short loc_D9B5
; ---------------------------------------------------------------------------
loc_D991:
mov ax, word_151E2
mov bx, 10h
cwd
idiv bx
or dx, dx
jnz short loc_D9A3
mov ax, 1
jmp short loc_D9A5
; ---------------------------------------------------------------------------
loc_D9A3:
xor ax, ax
loc_D9A5:
sub word_151DC, ax
cmp word_151DC, 0B2h ; '<27>'
jge short loc_D9B5
dec byte_11840
loc_D9B5:
cmp word_1183E, 0EAh ; '<27>E
jl short loc_DA31
cmp word_1183E, 200h
jge short loc_DA04
mov ax, word_1183E
add ax, 0FF16h
mov si, ax
cmp si, 58h ; 'X'
jle short loc_D9D7
add ax, 0FFA8h
jmp short loc_D9D9
; ---------------------------------------------------------------------------
loc_D9D7:
xor ax, ax
loc_D9D9:
mov [bp+var_2], ax
mov ax, 140h
sub ax, [bp+var_2]
push ax
push 0C8h
mov ax, si
cwd
sub ax, dx
sar ax, 1
mov dx, 180h
sub dx, ax
push dx
mov ax, si
mov bx, 8
cwd
idiv bx
add ax, 140h
push ax
call sub_D31F
jmp short loc_DA31
; ---------------------------------------------------------------------------
loc_DA04:
cmp word_1183E, 3E0h
jl short loc_DA18
cmp word_1183E, 400h
jg short loc_DA18
dec word_156EC
loc_DA18:
cmp word_1183E, 3F0h
jl short loc_DA2C
cmp word_1183E, 410h
jg short loc_DA2C
dec word_151DA
loc_DA2C:
mov ax, 1
jmp short loc_DA33
; ---------------------------------------------------------------------------
loc_DA31:
xor ax, ax
loc_DA33:
pop si
leave
retn
sub_D931 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_DA36 proc near
push bp
mov bp, sp
push si
mov ax, word_11842
imul ax, 14h
add ax, 50E4h
mov si, ax
inc word_11842
mov ax, word_11842
cmp ax, 40h
jge loc_DAD4
call IRand
mov bx, 18h
cwd
idiv bx
add dx, 8
mov [si+0Eh], dx
call IRand
mov bx, 40h
cwd
idiv bx
add dl, 20h ; ' '
mov [si+12h], dl
call IRand
mov bx, 6
cwd
idiv bx
mov [si+0Ch], dx
call IRand
cwd
idiv word_151CE
shl dx, 4
mov ax, word_151CE
shl ax, 3
sub dx, ax
movsx eax, dx
mov [si], eax
mov ax, word_151D0
neg ax
shl ax, 3
add ax, 0FFC0h
cwde
mov [si+4], eax
cmp byte ptr [si+12h], 40h
jnb short loc_DABA
mov al, 0
jmp short loc_DABC
; ---------------------------------------------------------------------------
loc_DABA:
mov al, 1
loc_DABC:
mov [si+13h], al
lea ax, [si+8]
push ax
pushd 0
push word ptr [si+0Eh]
mov al, [si+12h]
mov ah, 0
push ax
call vector2_at
loc_DAD4:
pop si
pop bp
retn
sub_DA36 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_DAD7 proc near
push bp
mov bp, sp
push si
push di
mov si, 50E4h
cmp word_151DA, 0
jge short loc_DAEF
mov al, byte_1183A
mov ah, 0
add word_151DA, ax
loc_DAEF:
inc word_11844
cmp word_11844, 20h ; ' '
jl loc_DBE0
cmp word_11844, 80h
jge short loc_DB0B
dec word_151DC
jmp loc_DBC3
; ---------------------------------------------------------------------------
loc_DB0B:
cmp word_11844, 134h
jge short loc_DB1F
mov al, byte_1183A
mov ah, 0
sub word_151DC, ax
jmp loc_DBC3
; ---------------------------------------------------------------------------
loc_DB1F:
mov ax, word_151CE
cwd
sub ax, dx
sar ax, 1
add ax, word_151D6
cmp ax, 276h
jge short loc_DB45
mov ax, word_151D6
add ax, 4
push ax
push 0C8h
push word_151CE
push word_151D0
call sub_D31F
loc_DB45:
mov word_151DE, 0
mov ax, word_11844
mov bx, 8
cwd
idiv bx
or dx, dx
jnz short loc_DB9F
call sub_DA36
xor di, di
jmp short loc_DB9A
; ---------------------------------------------------------------------------
loc_DB5F:
cmp byte ptr [si+13h], 0
jnz short loc_DB74
inc byte ptr [si+12h]
cmp byte ptr [si+12h], 60h
jb short loc_DB81
mov byte ptr [si+13h], 1
jmp short loc_DB81
; ---------------------------------------------------------------------------
loc_DB74:
dec byte ptr [si+12h]
cmp byte ptr [si+12h], 20h ; ' '
ja short loc_DB81
mov byte ptr [si+13h], 0
loc_DB81:
lea ax, [si+8]
push ax
pushd 0
push word ptr [si+0Eh]
mov al, [si+12h]
mov ah, 0
push ax
call vector2_at
inc di
add si, 14h
loc_DB9A:
cmp di, 40h
jl short loc_DB5F
loc_DB9F:
cmp word_11844, 7530h
jl short loc_DBAD
mov word_11844, 7528h
loc_DBAD:
mov ax, word_151CE
cwd
sub ax, dx
sar ax, 1
add ax, word_151D6
cmp ax, 276h
jl short loc_DBC3
mov ax, 1
jmp short loc_DBE2
; ---------------------------------------------------------------------------
loc_DBC3:
mov ax, word_11844
mov bx, 4
cwd
idiv bx
or dx, dx
jnz short loc_DBE0
cmp Palettes+2, 60h
jnb short loc_DBE0
inc Palettes+2
call far ptr palette_show
loc_DBE0:
xor ax, ax
loc_DBE2:
pop di
pop si
pop bp
retn
sub_DAD7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_DBE6 proc near
var_2C = byte ptr -2Ch
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
arg_6 = word ptr 0Ah
arg_8 = word ptr 0Ch
arg_A = word ptr 0Eh
enter 2Ch, 0
push si
push di
mov di, [bp+arg_8]
cmp [bp+arg_2], 0
jge short loc_DBFF
mov byte_11846, 1
mov al, 1
jmp loc_DCF6
; ---------------------------------------------------------------------------
loc_DBFF:
mov ax, [bp+arg_6]
mov bx, 10h
cwd
idiv bx
add ax, 7
cmp ax, [bp+arg_2]
jge short loc_DC48
call grcg_setcolor pascal, (GC_RMW shl 16) + 1
mov ax, [bp+arg_A]
mov bx, 8
cwd
idiv bx
push ax
push di
mov ax, [bp+arg_A]
add ax, [bp+arg_6]
dec ax
cwd
idiv bx
push ax
mov ax, di
add ax, [bp+arg_4]
dec ax
push ax
call grcg_byteboxfill_x
GRCG_OFF_CLOBBERING dx
mov al, 2
jmp loc_DCF6
; ---------------------------------------------------------------------------
loc_DC48:
mov bx, 8
mov ax, [bp+arg_A]
cwd
idiv bx
mov [bp+arg_A], ax
mov bx, 10h
mov ax, di
cwd
idiv bx
mov di, ax
mov ax, [bp+arg_6]
cwd
idiv bx
mov [bp+arg_6], ax
mov ax, [bp+arg_4]
cwd
idiv bx
mov [bp+arg_4], ax
cmp [bp+arg_0], 0
jle short loc_DC7D
mov [bp+var_2], 0
jmp short loc_DC84
; ---------------------------------------------------------------------------
loc_DC7D:
mov ax, [bp+arg_6]
dec ax
mov [bp+var_2], ax
loc_DC84:
xor si, si
jmp short loc_DCD0
; ---------------------------------------------------------------------------
loc_DC88:
cmp [bp+arg_2], 7
jl short loc_DC9A
lea bx, [bp+var_2C]
add bx, [bp+var_2]
mov byte ptr ss:[bx], 98h ; '<27>E
jmp short loc_DCBA
; ---------------------------------------------------------------------------
loc_DC9A:
cmp [bp+arg_2], 0
jge short loc_DCAC
lea bx, [bp+var_2C]
add bx, [bp+var_2]
mov byte ptr ss:[bx], 2
jmp short loc_DCBA
; ---------------------------------------------------------------------------
loc_DCAC:
lea bx, [bp+var_2C]
add bx, [bp+var_2]
mov al, 9Fh ; '<27>E
sub al, byte ptr [bp+arg_2]
mov ss:[bx], al
loc_DCBA:
mov ax, si
add ax, ax
add ax, [bp+arg_A]
cmp ax, 50h ; 'P'
jge short loc_DCD5
inc si
mov ax, [bp+arg_0]
add [bp+var_2], ax
dec [bp+arg_2]
loc_DCD0:
cmp si, [bp+arg_6]
jl short loc_DC88
loc_DCD5:
mov [bp+si+var_2C], 0
xor si, si
jmp short loc_DCEF
; ---------------------------------------------------------------------------
loc_DCDD:
push [bp+arg_A]
push di
push ss
lea ax, [bp+var_2C]
push ax
push TX_BLACK
call gaiji_putsa
inc si
inc di
loc_DCEF:
cmp si, [bp+arg_4]
jle short loc_DCDD
mov al, 0
loc_DCF6:
pop di
pop si
leave
retn 0Ch
sub_DBE6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_DCFC proc near
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 4
@@slot = word ptr 6
@@y_center = word ptr 8
@@x_center = word ptr 0Ah
enter 4, 0
push si
push di
mov di, [bp+@@y_center]
mov ax, [bp+@@slot]
shl ax, 4
add ax, offset _cdg_slots
mov si, ax
mov ax, [si+CDGSlot.pixel_width]
cwd
sub ax, dx
sar ax, 1
sub [bp+@@x_center], ax
mov ax, [si+CDGSlot.pixel_height]
cwd
sub ax, dx
sar ax, 1
sub di, ax
cmp word_11848, 1
jg loc_DDBC
mov ax, [si+CDGSlot.pixel_width]
mov bx, 10h
cwd
idiv bx
add ax, 7
mov word_151C4, ax
mov word_151C6, 0
inc word_11848
call cdg_put_noalpha pascal, [bp+@@x_center], di, [bp+@@slot]
mov [bp+var_2], 0
jmp short loc_DDB1
; ---------------------------------------------------------------------------
loc_DD5A:
mov [bp+var_4], 0
jmp short loc_DDA2
; ---------------------------------------------------------------------------
loc_DD61:
mov ax, [bp+@@x_center]
mov bx, 8
cwd
idiv bx
push ax
mov ax, [bp+var_4]
cwd
idiv bx
pop dx
add dx, ax
cmp dx, 50h ; 'P'
jge short loc_DD9E
mov ax, [bp+@@x_center]
cwd
idiv bx
push ax
mov ax, [bp+var_4]
cwd
idiv bx
pop dx
add dx, ax
push dx
mov ax, di
mov bx, 10h
cwd
idiv bx
push ax
push ds
push offset unk_1184C
push TX_BLACK + TX_REVERSE
call text_putsa
loc_DD9E:
add [bp+var_4], 10h
loc_DDA2:
mov ax, [si+2]
cmp ax, [bp+var_4]
jge short loc_DD61
add [bp+var_2], 10h
add di, 10h
loc_DDB1:
mov ax, [si+4]
cmp ax, [bp+var_2]
jge short loc_DD5A
jmp loc_DE6C
; ---------------------------------------------------------------------------
loc_DDBC:
cmp word_11848, 3
jg short loc_DE01
inc word_151C6
mov ax, word_151C6
mov bx, 4
cwd
idiv bx
or dx, dx
jnz short loc_DDD8
dec word_151C4
loc_DDD8:
push [bp+@@x_center]
push di
push [si+CDGSlot.pixel_width]
push [si+CDGSlot.pixel_height]
push word_151C4
push 1
call sub_DBE6
cmp al, 1
jnz short loc_DE6C
inc word_11848
mov word_151C4, 0
mov word_151C6, 0
jmp short loc_DE6C
; ---------------------------------------------------------------------------
loc_DE01:
mov ax, measure_151E0
cmp ax, [bp+arg_0]
jl short loc_DE6C
cmp [bp+arg_0], 0F9Ch
jz short loc_DE6C
cmp word_11848, 4
jnz short loc_DE49
inc word_151C6
mov ax, word_151C6
mov bx, 4
cwd
idiv bx
or dx, dx
jnz short loc_DE2C
inc word_151C4
loc_DE2C:
push [bp+@@x_center]
push di
push [si+CDGSlot.pixel_width]
push [si+CDGSlot.pixel_height]
push word_151C4
push 0FFFFh
call sub_DBE6
cmp al, 2
jnz short loc_DE6C
inc word_11848
jmp short loc_DE6C
; ---------------------------------------------------------------------------
loc_DE49:
push [bp+@@x_center]
push di
push [si+CDGSlot.pixel_width]
push [si+CDGSlot.pixel_height]
push 80FFFFh
call sub_DBE6
mov word_11848, 0
mov byte_11846, 1
mov ax, 1
jmp short loc_DE6E
; ---------------------------------------------------------------------------
loc_DE6C:
xor ax, ax
loc_DE6E:
pop di
pop si
leave
retn 8
sub_DCFC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_DE74 proc near
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 4
@@slot = word ptr 6
@@y_center = word ptr 8
@@x_center = word ptr 0Ah
enter 4, 0
push si
push di
mov di, [bp+@@y_center]
mov ax, [bp+@@slot]
shl ax, 4
add ax, offset _cdg_slots
mov si, ax
mov ax, [si+CDGSlot.pixel_width]
cwd
sub ax, dx
sar ax, 1
sub [bp+@@x_center], ax
mov ax, [si+CDGSlot.pixel_height]
cwd
sub ax, dx
sar ax, 1
sub di, ax
cmp word_1184A, 1
jg loc_DF34
mov ax, [si+CDGSlot.pixel_width]
mov bx, 10h
cwd
idiv bx
add ax, 7
mov word_151C8, ax
mov word_151CA, 0
inc word_1184A
call cdg_put_noalpha pascal, [bp+@@x_center], di, [bp+@@slot]
mov [bp+var_2], 0
jmp short loc_DF29
; ---------------------------------------------------------------------------
loc_DED2:
mov [bp+var_4], 0
jmp short loc_DF1A
; ---------------------------------------------------------------------------
loc_DED9:
mov ax, [bp+@@x_center]
mov bx, 8
cwd
idiv bx
push ax
mov ax, [bp+var_4]
cwd
idiv bx
pop dx
add dx, ax
cmp dx, 50h ; 'P'
jge short loc_DF16
mov ax, [bp+@@x_center]
cwd
idiv bx
push ax
mov ax, [bp+var_4]
cwd
idiv bx
pop dx
add dx, ax
push dx
mov ax, di
mov bx, 10h
cwd
idiv bx
push ax
push ds
push offset unk_1184F
push TX_BLACK + TX_REVERSE
call text_putsa
loc_DF16:
add [bp+var_4], 10h
loc_DF1A:
mov ax, [si+CDGSlot.pixel_width]
cmp ax, [bp+var_4]
jge short loc_DED9
add [bp+var_2], 10h
add di, 10h
loc_DF29:
mov ax, [si+CDGSlot.pixel_height]
cmp ax, [bp+var_2]
jge short loc_DED2
jmp loc_DFE4
; ---------------------------------------------------------------------------
loc_DF34:
cmp word_1184A, 3
jg short loc_DF79
inc word_151CA
mov ax, word_151CA
mov bx, 4
cwd
idiv bx
or dx, dx
jnz short loc_DF50
dec word_151C8
loc_DF50:
push [bp+@@x_center]
push di
push [si+CDGSlot.pixel_width]
push [si+CDGSlot.pixel_height]
push word_151C8
push 1
call sub_DBE6
cmp al, 1
jnz short loc_DFE4
inc word_1184A
mov word_151C8, 0
mov word_151CA, 0
jmp short loc_DFE4
; ---------------------------------------------------------------------------
loc_DF79:
mov ax, measure_151E0
cmp ax, [bp+arg_0]
jl short loc_DFE4
cmp [bp+arg_0], 0F9Ch
jz short loc_DFE4
cmp word_1184A, 4
jnz short loc_DFC1
inc word_151CA
mov ax, word_151CA
mov bx, 4
cwd
idiv bx
or dx, dx
jnz short loc_DFA4
inc word_151C8
loc_DFA4:
push [bp+@@x_center]
push di
push [si+CDGSlot.pixel_width]
push [si+CDGSlot.pixel_height]
push word_151C8
push 0FFFFh
call sub_DBE6
cmp al, 2
jnz short loc_DFE4
inc word_1184A
jmp short loc_DFE4
; ---------------------------------------------------------------------------
loc_DFC1:
push [bp+@@x_center]
push di
push [si+CDGSlot.pixel_width]
push [si+CDGSlot.pixel_height]
push 80FFFFh
call sub_DBE6
mov word_1184A, 0
mov byte_11846, 1
mov ax, 1
jmp short loc_DFE6
; ---------------------------------------------------------------------------
loc_DFE4:
xor ax, ax
loc_DFE6:
pop di
pop si
leave
retn 8
sub_DE74 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_DFEC proc near
var_A = word ptr -0Ah
var_8 = word ptr -8
var_6 = word ptr -6
@@y = word ptr -4
@@x = word ptr -2
enter 0Ah, 0
push si
push di
mov si, 55E4h
mov [bp+var_8], 5614h
mov [bp+var_A], 5618h
call grcg_setcolor pascal, (GC_RMW shl 16) + 0
mov ax, word_151CE
cwd
sub ax, dx
sar ax, 1
mov dx, word_151D6
sub dx, ax
push dx
mov ax, word_151D0
cwd
sub ax, dx
sar ax, 1
mov dx, word_151D8
sub dx, ax
push dx
mov ax, word_151CE
cwd
sub ax, dx
sar ax, 1
add ax, word_151D6
dec ax
push ax
mov ax, word_151D0
cwd
sub ax, dx
sar ax, 1
add ax, word_151D8
dec ax
push ax
call grcg_boxfill
GRCG_OFF_CLOBBERING dx
xor di, di
jmp short loc_E098
; ---------------------------------------------------------------------------
loc_E053:
mov bx, [bp+var_A]
mov ax, [bx]
mov bx, 16
cwd
idiv bx
add ax, word_151D6
add ax, -4
mov [bp+@@x], ax
mov bx, [bp+var_A]
mov ax, [bx+2]
mov bx, 16
cwd
idiv bx
add ax, word_151D8
add ax, -4
mov [bp+@@y], ax
push [bp+@@x]
push ax
mov ax, di
mov bx, 2
cwd
idiv bx
add dx, 6
push dx
call sub_2DB6
inc di
add [bp+var_A], 4
loc_E098:
cmp di, 30h ; '0'
jl short loc_E053
xor di, di
mov [bp+var_6], 6
jmp short loc_E0FB
; ---------------------------------------------------------------------------
loc_E0A6:
mov bx, [bp+var_8]
cmp word ptr [bx], 0C190h
jz short loc_E0F6
mov bx, [bp+var_8]
mov ax, [bx]
mov bx, 10h
cwd
idiv bx
add ax, word_151D6
mov [bp+@@x], ax
mov bx, [bp+var_8]
mov ax, [bx+2]
mov bx, 10h
cwd
idiv bx
add ax, word_151D8
mov [bp+@@y], ax
push GC_RMW
mov ax, [bp+var_6]
inc [bp+var_6]
push ax
call grcg_setcolor
call grcg_circlefill pascal, [bp+@@x], [bp+@@y], 16
GRCG_OFF_CLOBBERING dx
loc_E0F6:
inc di
sub [bp+var_8], 4
loc_E0FB:
cmp di, 8
jl short loc_E0A6
cmp dword ptr [si], 0FFFFC190h
jz loc_E18B
mov eax, [si]
mov ebx, 16
cdq
idiv ebx
add ax, word_151D6
add ax, -16
mov [bp+@@x], ax
mov eax, [si+4]
cdq
idiv ebx
add ax, word_151D8
add ax, -16
mov [bp+@@y], ax
cmp byte ptr [si+13h], 10h
jb short loc_E161
mov al, byte_151CC
mov ah, 0
mov bx, 4
cwd
idiv bx
cwd
idiv bx
add dx, 8
mov di, dx
call super_put_rect pascal, [bp+@@x], [bp+@@y], dx
inc byte_151CC
jmp short loc_E18B
; ---------------------------------------------------------------------------
loc_E161:
call grcg_setcolor pascal, (GC_RMW shl 16) + 15
mov ax, [bp+@@x]
add ax, 16
push ax
mov ax, [bp+@@y]
add ax, 16
push ax
mov al, [si+13h]
mov ah, 0
push ax
call grcg_circlefill
GRCG_OFF_CLOBBERING dx
loc_E18B:
sub si, 14h
xor di, di
jmp loc_E21D
; ---------------------------------------------------------------------------
loc_E193:
cmp dword ptr [si], 0FFFFC190h
jz short loc_E219
mov ax, word_151CE
neg ax
shl ax, 3
add ax, 0FFC0h
cwde
cmp eax, [si]
jge short loc_E219
mov ax, word_151CE
shl ax, 3
add ax, 40h
cwde
cmp eax, [si]
jle short loc_E219
mov ax, word_151D0
neg ax
shl ax, 3
add ax, 0FFC0h
cwde
cmp eax, [si+4]
jge short loc_E219
mov ax, word_151D0
shl ax, 3
add ax, 40h
cwde
cmp eax, [si+4]
jle short loc_E219
mov eax, [si]
mov ebx, 10h
cdq
idiv ebx
add ax, word_151D6
add ax, -4
mov [bp+@@x], ax
mov eax, [si+4]
cdq
idiv ebx
add ax, word_151D8
add ax, -4
mov [bp+@@y], ax
push [bp+@@x]
push ax
push word ptr [si+0Ch]
call sub_2DB6
loc_E219:
inc di
sub si, 14h
loc_E21D:
cmp di, 40h
jl loc_E193
call grcg_setcolor pascal, (GC_RMW shl 16) + 1
mov ax, word_151CE
cwd
sub ax, dx
sar ax, 1
mov dx, word_151D6
sub dx, ax
add dx, 0FFF8h
push dx
mov ax, word_151D0
cwd
sub ax, dx
sar ax, 1
mov dx, word_151D8
sub dx, ax
push dx
mov ax, word_151CE
cwd
sub ax, dx
sar ax, 1
mov dx, word_151D6
sub dx, ax
dec dx
push dx
mov ax, word_151D0
cwd
sub ax, dx
sar ax, 1
add ax, word_151D8
dec ax
push ax
call grcg_boxfill
mov ax, word_151CE
cwd
sub ax, dx
sar ax, 1
add ax, word_151D6
push ax
mov ax, word_151D0
cwd
sub ax, dx
sar ax, 1
mov dx, word_151D8
sub dx, ax
push dx
mov ax, word_151CE
cwd
sub ax, dx
sar ax, 1
add ax, word_151D6
add ax, 7
push ax
mov ax, word_151D0
cwd
sub ax, dx
sar ax, 1
add ax, word_151D8
dec ax
push ax
call grcg_boxfill
mov ax, word_151CE
cwd
sub ax, dx
sar ax, 1
mov dx, word_151D6
sub dx, ax
add dx, 0FFF8h
push dx
mov ax, word_151D0
cwd
sub ax, dx
sar ax, 1
mov dx, word_151D8
sub dx, ax
add dx, 0FFF8h
push dx
mov ax, word_151CE
cwd
sub ax, dx
sar ax, 1
add ax, word_151D6
add ax, 7
push ax
mov ax, word_151D0
cwd
sub ax, dx
sar ax, 1
mov dx, word_151D8
sub dx, ax
dec dx
push dx
call grcg_boxfill
mov ax, word_151CE
cwd
sub ax, dx
sar ax, 1
mov dx, word_151D6
sub dx, ax
add dx, 0FFF8h
push dx
mov ax, word_151D0
cwd
sub ax, dx
sar ax, 1
add ax, word_151D8
push ax
mov ax, word_151CE
cwd
sub ax, dx
sar ax, 1
add ax, word_151D6
add ax, 7
push ax
mov ax, word_151D0
cwd
sub ax, dx
sar ax, 1
add ax, word_151D8
add ax, 7
push ax
call grcg_boxfill
GRCG_OFF_CLOBBERING dx
pop di
pop si
leave
retn
sub_DFEC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_E349 proc near
push bp
mov bp, sp
call sub_D5E1
call sub_DFEC
push 1
call frame_delay
graph_accesspage byte_1183A
mov al, 1
sub al, byte_1183A
mov byte_1183A, al
graph_showpage al
cmp byte_11846, 0
jz short loc_E37E
call text_clear
mov byte_11846, 0
loc_E37E:
inc word_151E2
call _snd_bgm_measure
mov measure_151E0, ax
cmp measure_151E0, 0
jge short loc_E39D
mov ax, word_151E2
mov bx, 22
cwd
idiv bx
mov measure_151E0, ax
loc_E39D:
pop bp
retn
sub_E349 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_E39F proc near
arg_0 = word ptr 4
push bp
mov bp, sp
push si
push di
push ds
push ds
pop es
assume es:_DATA
mov ax, 0E000h
mov ds, ax
assume ds:nothing
xor si, si
mov di, [bp+arg_0]
add di, 56D8h
mov ax, 160h
loc_E3B8:
mov cx, 14h
rep movsw
add si, 28h ; '('
dec ax
jnz short loc_E3B8
pop ds
assume ds:_DATA
pop di
pop si
pop bp
retn 2
sub_E39F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_E3CA proc near
arg_0 = word ptr 4
push bp
mov bp, sp
push si
push di
call grcg_setcolor pascal, (GC_TDW shl 16) + 1
mov ax, GRAM_400
mov es, ax
assume es:nothing
xor di, di
mov dx, 160h
loc_E3E4:
mov cx, (40 / 2)
rep stosw
add di, ROW_SIZE - 40
dec dx
jnz short loc_E3E4
call grcg_setcolor pascal, (GC_RMW shl 16) + 13
xor di, di
mov si, [bp+arg_0]
add si, 56D8h
mov dx, 160h
loc_E406:
mov cx, (40 / 2)
rep movsw
add di, ROW_SIZE - 40
dec dx
jnz short loc_E406
GRCG_OFF_CLOBBERING dx
pop di
pop si
pop bp
retn 2
sub_E3CA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_E41D proc near
var_4 = word ptr -4
var_2 = word ptr -2
enter 4, 0
push si
push di
mov x_116E2, 32
mov col_116E4, 13
mov word_116E6, 0Dh
mov y_116E8, 16
mov PaletteTone, 0
call far ptr palette_show
call grcg_setcolor pascal, (GC_RMW shl 16) + 1
graph_accesspage 0
call grcg_byteboxfill_x pascal, large 0, (((RES_X - 1) / 8) shl 16) or (RES_Y - 1)
GRCG_OFF_CLOBBERING dx
call sub_D21D
push 3700h
call sub_E39F
call grcg_setcolor pascal, (GC_RMW shl 16) + 1
call grcg_byteboxfill_x pascal, large 0, (((RES_X - 1) / 8) shl 16) or (RES_Y - 1)
graph_accesspage 1
call grcg_byteboxfill_x pascal, large 0, (((RES_X - 1) / 8) shl 16) or (RES_Y - 1)
GRCG_OFF_CLOBBERING dx
call snd_load pascal, ds, offset aStaff, SND_LOAD_SONG
kajacall KAJA_SONG_PLAY
call cdg_load_all_noalpha pascal, 0, ds, offset aStf00_cdg
call cdg_load_all_noalpha pascal, 1, ds, offset aStf01_cdg
call cdg_load_all_noalpha pascal, 2, ds, offset aStf02_cdg
call cdg_load_all_noalpha pascal, 3, ds, offset aStf03_cdg
call cdg_load_all_noalpha pascal, 4, ds, offset aStf04_cdg
call cdg_load_all_noalpha pascal, 5, ds, offset aStf05_cdg
call cdg_load_all_noalpha pascal, 6, ds, offset aStf06_cdg
call cdg_load_all_noalpha pascal, 7, ds, offset aStf07_cdg
call cdg_load_all_noalpha pascal, 8, ds, offset aStf08_cdg
call cdg_load_all_noalpha pascal, 9, ds, offset aStf09_cdg
call cdg_load_all_noalpha pascal, 10, ds, offset aStf10_cdg
call super_entry_bfnt pascal, ds, offset aStf01_bft ; "stf01.bft"
call super_entry_bfnt pascal, ds, offset aStf00_bft ; "stf00.bft"
xor si, si
jmp short loc_E550
; ---------------------------------------------------------------------------
loc_E549:
call super_convert_tiny pascal, si
inc si
loc_E550:
cmp si, 8
jl short loc_E549
mov Palettes+2, 30h ; '0'
call sub_D387
xor si, si
mov word_151E2, 0
loc_E565:
cmp si, 100
jg short loc_E573
mov PaletteTone, si
call far ptr palette_show
loc_E573:
call sub_E349
inc si
cmp measure_151E0, 30
jl short loc_E565
call sub_D49D
xor si, si
jmp short loc_E58C
; ---------------------------------------------------------------------------
loc_E585:
call sub_D8F5
call sub_E349
inc si
loc_E58C:
cmp si, 20h ; ' '
jl short loc_E585
call sub_D509
loc_E594:
call sub_D931
mov si, ax
call sub_E349
or si, si
jz short loc_E594
cmp measure_151E0, 48
jl short loc_E594
xor si, si
xor di, di
loc_E5AB:
call sub_D931
cmp si, 80h
jle short loc_E5C9
push 21000F0h
push 1004Ch
call sub_DE74
or ax, ax
jz short loc_E5C9
xor si, si
loc_E5C9:
push 1D000C0h
pushd 4Ch ; 'L'
call sub_DCFC
mov di, ax
call sub_E349
inc si
or di, di
jz short loc_E5AB
xor di, di
loc_E5E1:
call sub_D931
push 1D000C8h
push 2005Ch
call sub_DCFC
mov di, ax
call sub_E349
or di, di
jz short loc_E5E1
xor si, si
xor di, di
loc_E600:
call sub_D931
cmp si, 100h
jle short loc_E61E
push 1D000E0h
push 40078h
call sub_DE74
or ax, ax
jz short loc_E61E
xor si, si
loc_E61E:
push 1D000B0h
push 30078h
call sub_DCFC
mov di, ax
call sub_E349
inc si
or di, di
jz short loc_E600
call sub_D531
loc_E63A:
call sub_DAD7
mov si, ax
call sub_E349
or si, si
jz short loc_E63A
xor di, di
loc_E648:
call sub_DAD7
push 0B000C8h
push 500ACh
call sub_DCFC
mov di, ax
call sub_E349
or di, di
jz short loc_E648
loc_E663:
call sub_DAD7
push 0B000C8h
push 600BCh
call sub_DCFC
mov di, ax
call sub_E349
or di, di
jz short loc_E663
loc_E67E:
call sub_DAD7
push 0B000C8h
push 700CCh
call sub_DCFC
mov di, ax
call sub_E349
or di, di
jz short loc_E67E
loc_E699:
call sub_DAD7
push 0B000C8h
push 800DCh
call sub_DCFC
mov di, ax
call sub_E349
or di, di
jz short loc_E699
loc_E6B4:
call sub_DAD7
push 0B000C8h
push 900ECh
call sub_DCFC
mov di, ax
call sub_E349
or di, di
jz short loc_E6B4
xor si, si
mov [bp+var_2], 0
mov [bp+var_4], 0
loc_E6DB:
call _input_reset_sense_held
cmp si, 100h
jz short loc_E6EC
cmp si, 101h
jnz short loc_E6F1
loc_E6EC:
call sub_CA9B
jmp short loc_E70D
; ---------------------------------------------------------------------------
loc_E6F1:
cmp si, 140h
jz short loc_E6FD
cmp si, 141h
jnz short loc_E702
loc_E6FD:
call sub_D16F
jmp short loc_E70D
; ---------------------------------------------------------------------------
loc_E702:
cmp si, 15Eh
jnz short loc_E70D
push 0
call sub_E39F
loc_E70D:
call sub_DAD7
push 0B00170h
push 0A0F9Ch
call sub_DCFC
inc si
cmp si, 190h
jl loc_E7BB
test _key_det.hi, high INPUT_CANCEL
jnz short loc_E757
test _key_det.lo, low INPUT_BOMB
jnz short loc_E757
cmp [bp+var_4], 0
jnz short loc_E781
test _key_det.lo, low INPUT_SHOT
jnz short loc_E74A
test _key_det.hi, high INPUT_OK
jz short loc_E75C
loc_E74A:
cmp [bp+var_2], 0
jnz short loc_E757
mov [bp+var_4], 1
jmp short loc_E75C
; ---------------------------------------------------------------------------
loc_E757:
call sub_E349
jmp short loc_E7C1
; ---------------------------------------------------------------------------
loc_E75C:
test _key_det.lo, low INPUT_DOWN
jz short loc_E76E
cmp [bp+var_2], 0
jnz short loc_E76E
mov [bp+var_4], 1
loc_E76E:
test _key_det.lo, low INPUT_UP
jz short loc_E781
cmp [bp+var_2], 3700h
jnz short loc_E781
mov [bp+var_4], 2
loc_E781:
cmp [bp+var_4], 1
jnz short loc_E79A
add [bp+var_2], 140h
cmp [bp+var_2], 3700h
jbe short loc_E7B5
mov [bp+var_2], 3700h
jmp short loc_E7B0
; ---------------------------------------------------------------------------
loc_E79A:
cmp [bp+var_4], 2
jnz short loc_E7BB
sub [bp+var_2], 140h
cmp [bp+var_2], 0
jge short loc_E7B5
mov [bp+var_2], 0
loc_E7B0:
mov [bp+var_4], 0
loc_E7B5:
push [bp+var_2]
call sub_E3CA
loc_E7BB:
call sub_E349
jmp loc_E6DB
; ---------------------------------------------------------------------------
loc_E7C1:
kajacall KAJA_SONG_FADE, 4
mov si, 100
loc_E7CC:
mov PaletteTone, si
call far ptr palette_show
call sub_DAD7
call sub_E349
dec si
or si, si
jg short loc_E7CC
call cdg_freeall
call super_free
call grc_setclip pascal, large 0, ((RES_X - 1) shl 16) or (RES_Y - 1)
pop di
pop si
leave
retn
sub_E41D endp
maine_01_TEXT ends
; ---------------------------------------------------------------------------
; ===========================================================================
; Segment type: Pure code
maine_02_TEXT segment word public 'CODE' use16
assume cs:maine_02_TEXT
;org 0Ch
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
include th03/formats/hfliplut.asm
include th04/snd/pmd_res.asm
include th02/snd/mmd_res.asm
include th04/snd/detmodes.asm
include th04/hardware/grppsafx.asm
include th04/formats/cdg_put_noalpha.asm
include th04/snd/se.asm
include th04/bgimage.asm
include th02/exit.asm
include th04/math/vector1_at.asm
include th04/math/vector2_at.asm
include th04/bgimage_put_rect.asm
include th05/snd/load.asm
include th05/snd/kajaint.asm
include th05/formats/pi_slot_put_mask.asm
include th05/formats/pi_slot_load.asm
include th05/formats/pi_slot_put.asm
include th05/formats/pi_slot_palette_apply.asm
include th05/formats/pi_slot_free.asm
include th02/initmain.asm
include th04/hardware/input_sense.asm
include th05/hardware/input_held.asm
include th05/hardware/input_wait.asm
include th05/snd/measure.asm
include th05/snd/delaymea.asm
include th05/hardware/frame_delay.asm
db 0
include th04/formats/cdg_load.asm
include th04/hardware/egccopyr.asm
maine_02_TEXT ends
.data
off_10190 dd a_ed00_txt
; "_ED00.TXT"
include th04/formats/cfg_lres[data].asm
a_ed00_txt db '_ED00.TXT',0
aKaikidan1_dat db '<27><><EFBFBD>Y<EFBFBD>k1.dat',0
aMiko db 'miko',0
; char arg0[]
arg0 db 'op',0
db 0
include libs/master.lib/atan8[data].asm
include libs/master.lib/atrtcmod[data].asm
include libs/master.lib/bfnt_id[data].asm
include libs/master.lib/clip[data].asm
include libs/master.lib/edges[data].asm
include libs/master.lib/fil[data].asm
include libs/master.lib/dos_ropen[data].asm
include libs/master.lib/get_machine_98[data].asm
include libs/master.lib/get_machine_at[data].asm
include libs/master.lib/grp[data].asm
include libs/master.lib/js[data].asm
include libs/master.lib/machine[data].asm
include libs/master.lib/pal[data].asm
include libs/master.lib/pf[data].asm
include libs/master.lib/rand[data].asm
include libs/master.lib/sin8[data].asm
include libs/master.lib/tx[data].asm
include libs/master.lib/vs[data].asm
include libs/master.lib/wordmask[data].asm
include libs/master.lib/mem[data].asm
include libs/master.lib/super_entry_bfnt[data].asm
include libs/master.lib/superpa[data].asm
include libs/master.lib/bgm_timerhook[data].asm
include libs/master.lib/bgm[data].asm
include th04/snd/se_priority[data].asm
include th04/hardware/grppsafx[data].asm
include th03/snd/se_state[data].asm
include th04/bgimage[data].asm
include th05/mem[data].asm
include th05/snd/load[data].asm
include th04/snd/snd[data].asm
include th03/formats/pi_slot_put_mask[data].asm
include th05/formats/pi_slot_buffers[bss].asm
include th05/hardware/vram_planes[data].asm
include th03/formats/cdg[data].asm
byte_10830 db 0
db 0
db 88h
db 88h
db 0
db 0
db 22h ; "
db 22h ; "
db 0
db 0
db 88h
db 88h
db 44h ; D
db 44h ; D
db 22h ; "
db 22h ; "
db 11h
db 11h
db 0AAh ; <20>
db 0AAh ; <20>
db 44h ; D
db 44h ; D
db 0AAh ; <20>
db 0AAh ; <20>
db 11h
db 11h
db 0AAh ; <20>
db 0AAh ; <20>
db 44h ; D
db 44h ; D
db 0AAh ; <20>
db 0AAh ; <20>
db 55h ; U
db 55h ; U
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 0FFh
asc_1085A db ' ', 0
even
byte_1085E db 0
db 0
dd aExed01_pi ; "EXED01.pi"
dd aExed07_pi ; "EXED07.pi"
dd aExed08_pi ; "EXED08.pi"
dd aExed09_pi ; "EXED09.pi"
dd aExed10_pi ; "EXED10.pi"
dd aExed16_pi ; "EXED16.pi"
dd aExed15_pi ; "EXED15.pi"
dd 0
dd aExed01_pi_0 ; "EXED01.pi"
dd aExed11_pi ; "EXED11.pi"
dd aExed11_pi_0 ; "EXED11.pi"
dd aExed11_pi_1 ; "EXED11.pi"
dd aExed03_pi ; "EXED03.pi"
dd aExed16_pi_0 ; "EXED16.pi"
dd aExed15_pi_0 ; "EXED15.pi"
dd 0
dd aExed01_pi_1 ; "EXED01.pi"
dd aExed12_pi ; "EXED12.pi"
dd aExed12_pi_0 ; "EXED12.pi"
dd aExed13_pi ; "EXED13.pi"
dd aExed04_pi ; "EXED04.pi"
dd aExed16_pi_1 ; "EXED16.pi"
dd aExed15_pi_1 ; "EXED15.pi"
dd 0
dd aExed01_pi_2 ; "EXED01.pi"
dd aExed14_pi ; "EXED14.pi"
dd aExed05_pi ; "EXED05.pi"
dd aExed14_pi_0 ; "EXED14.pi"
dd aExed06_pi ; "EXED06.pi"
dd aExed16_pi_2 ; "EXED16.pi"
dd aExed15_pi_2 ; "EXED15.pi"
dd 0
db 1
db 0
db 0
db 0
db 1
db 0
db 3
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 1
db 0
db 0
db 0
db 1
db 0
db 2
db 0
db 1
db 0
db 1
db 0
db 1
db 0
db 0
db 0
db 1
db 0
db 2
db 0
db 0
db 0
db 1
db 0
db 0
db 0
db 2
db 0
db 2
db 0
db 0
db 0
db 1
db 0
db 0
db 0
db 0
db 0
db 2
db 0
db 0
db 0
db 3
db 0
db 3
db 0
db 0
db 0
ALLCAST_PTRS dd aProjectOfTouho
dd aNo_1Buumx ; " Project of TOUHOU "...
dd aReimuHakureiSh
dd aNo_2Buumx
dd aReimuHakurei_0
dd aRikaEngineer
dd aMeiraSamurai
dd aMarisaKirisame
dd aMimaGhost
dd aNo_3Buumx
dd aReimuHakurei_1
dd aMarisaKirisa_0
dd aMimaGhost_0
dd aEllenWitch
dd aKotohimePrince
dd aKanaAnaberalPo
dd aRikakoAsakuraS
dd aTiyuriKitashir
dd aYumemiOkazakiP
dd aNo_4Buumx
dd aReimuHakurei_2
dd aMarisaKirisa_1
dd aOrangeOriental
dd aKurumiVampire
dd aElliyGateKeepe
dd aYukaOrientalDe
dd aMugetuMaid
dd aGengetuDemon
dd aNo_5Buumx
dd aReimuHakurei_3
dd aMarisaKirisa_2
dd aMimaGhost_1
dd aYukaOriental_0
dd aSaraGateKeeper
dd aLuizeDemon
dd aAliceWitchOfDe
dd aYukiBlackWitch
dd aMaiWhiteWitch
dd aYumekoMaid
dd aShinkiGoddessO
dd aProgramerZunJu
dd aGraphicsZunJun
dd aMusicComposeZu
dd aP_m_d_ProgramM
dd aSpecialThanksA
dd aAmusementMaker
dd aAndAllTestPlay
ALLCAST_LINES_PER_SCREEN equ $-2
dw 1, 2, 6, 10, 9, 12, 7
db 0
db 0
allcast_line_on_screen dw 0
aExed01_pi db 'EXED01.pi',0
aExed07_pi db 'EXED07.pi',0
aExed08_pi db 'EXED08.pi',0
aExed09_pi db 'EXED09.pi',0
aExed10_pi db 'EXED10.pi',0
aExed16_pi db 'EXED16.pi',0
aExed15_pi db 'EXED15.pi',0
aExed01_pi_0 db 'EXED01.pi',0
aExed11_pi db 'EXED11.pi',0
aExed11_pi_0 db 'EXED11.pi',0
aExed11_pi_1 db 'EXED11.pi',0
aExed03_pi db 'EXED03.pi',0
aExed16_pi_0 db 'EXED16.pi',0
aExed15_pi_0 db 'EXED15.pi',0
aExed01_pi_1 db 'EXED01.pi',0
aExed12_pi db 'EXED12.pi',0
aExed12_pi_0 db 'EXED12.pi',0
aExed13_pi db 'EXED13.pi',0
aExed04_pi db 'EXED04.pi',0
aExed16_pi_1 db 'EXED16.pi',0
aExed15_pi_1 db 'EXED15.pi',0
aExed01_pi_2 db 'EXED01.pi',0
aExed14_pi db 'EXED14.pi',0
aExed05_pi db 'EXED05.pi',0
aExed14_pi_0 db 'EXED14.pi',0
aExed06_pi db 'EXED06.pi',0
aExed16_pi_2 db 'EXED16.pi',0
aExed15_pi_2 db 'EXED15.pi',0
aProjectOfTouho db ' Project of TOUHOU All Cast',0
aNo_1Buumx db 'No.1 <20>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD>ˈٓ`<60>v <20>` Highly Responsive to Prayers 1996,1997',0
aReimuHakureiSh db ' Reimu Hakurei ( Shaman )',0
aNo_2Buumx db 'No.2 <20>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>^<5E>v <20>` The story of eastern wonderland 1997',0
aReimuHakurei_0 db ' Reimu Hakurei ( Shaman )',0
aRikaEngineer db ' Rika ( Engineer )',0
aMeiraSamurai db ' Meira ( Samurai )',0
aMarisaKirisame db ' Marisa Kirisame ( Sorceress )',0
aMimaGhost db ' Mima ( Ghost )',0
aNo_3Buumx db 'No.3 <20>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>v <20>` The Phantasmagoria of Dim.Dream... 1997',0
aReimuHakurei_1 db ' Reimu Hakurei ( Shaman )',0
aMarisaKirisa_0 db ' Marisa Kirisame ( Sorceress )',0
aMimaGhost_0 db ' Mima ( Ghost )',0
aEllenWitch db ' Ellen ( Witch )',0
aKotohimePrince db ' Kotohime ( Princess )',0
aKanaAnaberalPo db ' Kana Anaberal ( Poltergeist )',0
aRikakoAsakuraS db ' Rikako Asakura ( Scientist )',0
aTiyuriKitashir db ' Tiyuri Kitashirakawa ( Assistant professor )',0
aYumemiOkazakiP db ' Yumemi Okazaki ( Professor )',0
aNo_4Buumx db 'No.4 <20>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>z<EFBFBD><7A><EFBFBD>v <20>` Lotus Land Story 1998',0
aReimuHakurei_2 db ' Reimu Hakurei ( Shaman )',0
aMarisaKirisa_1 db ' Marisa Kirisame ( Sorceress )',0
aOrangeOriental db ' Orange ( Oriental demon )',0
aKurumiVampire db ' Kurumi ( Vampire )',0
aElliyGateKeepe db ' Elliy ( Gate keeper )',0
aYukaOrientalDe db ' Yuka ( Oriental demon )',0
aMugetuMaid db ' Mugetu ( Maid )',0
aGengetuDemon db ' Gengetu ( Demon )',0
aNo_5Buumx db 'No.5 <20>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD>k<EFBFBD>v <20>` Mystic Square 1998',0
aReimuHakurei_3 db ' Reimu Hakurei ( Shaman )',0
aMarisaKirisa_2 db ' Marisa Kirisame ( Sorceress )',0
aMimaGhost_1 db ' Mima ( Ghost )',0
aYukaOriental_0 db ' Yuka ( Oriental demon )',0
aSaraGateKeeper db ' Sara ( Gate keeper )',0
aLuizeDemon db ' Luize ( Demon )',0
aAliceWitchOfDe db ' Alice ( Witch of death )',0
aYukiBlackWitch db ' Yuki ( Black witch )',0
aMaiWhiteWitch db ' Mai ( White witch )',0
aYumekoMaid db ' Yumeko ( Maid )',0
aShinkiGoddessO db ' Shinki ( Goddess of devil',27h,'s world )',0
aProgramerZunJu db ' Programer ZUN (Junya Ota)',0
aGraphicsZunJun db ' Graphics ZUN (Junya Ota)',0
aMusicComposeZu db ' Music Compose ZUN (Junya Ota)',0
aP_m_d_ProgramM db ' P.M.D. Program M.Kajihara(KAJA)',0
aSpecialThanksA db ' Special Thanks Aotaka',0
aAmusementMaker db ' Amusement Makers',0
aAndAllTestPlay db ' and all test player and you ... ',0
aExed db 'EXED',0
gALPHABET db 0AAh, 0ABh, 0ACh, 0ADh, 0AEh, 0AFh, 0B0h, 0B1h, 0B2h
db 0B3h, 0B4h, 0B5h, 0B6h, 0B7h, 0B8h, 0B9h, 0BAh, 0BBh
db 0BCh, 0BDh, 0BEh, 0BFh, 0C0h, 0C1h, 0C2h, 0C3h, 0C4h
db 0C5h, 3, 6, 7, 8, 0Ch, 0Fh, 0A0h, 0A1h, 0A2h, 0A3h
db 0A4h, 0A5h, 0A6h, 0A7h, 0A8h, 0A9h, 0E6h, 0E7h, 0E8h
db 0CEh, 0CFh, 0CDh, 0D5h
byte_11621 db 0
word_11622 dw 0
aGensou_scr db 'GENSOU.SCR',0
aGensou_scr_0 db 'GENSOU.SCR',0
aGensou_scr_1 db 'GENSOU.SCR',0
aGensou_scr_2 db 'GENSOU.SCR',0
aHi01_pi db 'hi01.pi',0
aScnum_bft db 'scnum.bft',0
aSctm0_bft db 'sctm0.bft',0
aSctm1_bft db 'sctm1.bft',0
aGxgnbGvbGhvVGv db '<27>X<EFBFBD><58><EFBFBD>[<5B><><EFBFBD>[<5B>h<EFBFBD>ł̃v<CC83><76><EFBFBD>C<EFBFBD>ł́A<CD81>X<EFBFBD>R<EFBFBD>A<EFBFBD>͋L<CD8B>^<5E><><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>',0
aGxgnbGvbGhvV_0 db '<27>X<EFBFBD><58><EFBFBD>[<5B><><EFBFBD>[<5B>h<EFBFBD>ł̃v<CC83><76><EFBFBD>C<EFBFBD>ł́A<CD81>X<EFBFBD>R<EFBFBD>A<EFBFBD>͋L<CD8B>^<5E><><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>',0
aName db 'name',0
db 0
x_116E2 dw 336
col_116E4 dw 2
word_116E6 dw 6
y_116E8 dw 48
byte_116EA db 0
include th04/strings/verdict[data].asm
byte_11713 db 0
aU__0 db '<27>_',0
aBd db '<27>D',0
aBu db '<27><>',0
aBd_0 db '<27>D',0
aBu_0 db '<27><>',0
aB@b@b@b@b@b@b@ db '<27>@<40>@<40>@<40>@<40>@<40>@<40>@ <20>r<EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD>',0
aUqiUx db '<27><><EFBFBD>Փx',0
aNPiuU_ db '<27>ŏI<C58F><49><EFBFBD>_',0
aGGxi db '<27>~<7E>X<EFBFBD><58><EFBFBD><EFBFBD>',0
aGGaogcpi db '<27>{<7B><><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD>',0
aGqbGatbrmcj db '<27>Q<EFBFBD>[<5B><><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD>',0
aIlcSObcj db '<27><><EFBFBD><EFBFBD><EFBFBD>ގ<EFBFBD><DE8E><EFBFBD>',0
aGagcgegai db '<27>A<EFBFBD>C<EFBFBD>e<EFBFBD><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
aUU_gagcgeganNv db '<27><><EFBFBD>_<EFBFBD>A<EFBFBD>C<EFBFBD>e<EFBFBD><65><EFBFBD>ō<EFBFBD><C58D>_<EFBFBD><5F>',0
aLcnzvv db '<27>C<EFBFBD><43><EFBFBD><EFBFBD>',0
aPicacovCj db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
aVavVVSrso db '<27><><EFBFBD>Ȃ<EFBFBD><C882>̘r<CC98>O',0
aI db '<27><>',0
aI_0 db '<27><>',0
aU_ db '<27>_',0
a_ude_txt db '_ude.txt',0
aBhbhbhbhbhbhu_ db '<27>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD>_',0
aPicacovVVcvsfT db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><C982><EFBFBD><E994BB><EFBFBD>s<EFBFBD><73>',0
aUde_pi db 'ude.pi',0
aB@vpcB@ db '<27>@<40>P<EFBFBD>ʁ@',0
aB@vqcB@ db '<27>@<40>Q<EFBFBD>ʁ@',0
aB@vrcB@ db '<27>@<40>R<EFBFBD>ʁ@',0
aB@vscB@ db '<27>@<40>S<EFBFBD>ʁ@',0
aB@vtcB@ db '<27>@<40>T<EFBFBD>ʁ@',0
aB@vucB@ db '<27>@<40>U<EFBFBD>ʁ@',0
aNPiuU__0 db '<27>ŏI<C58F><49><EFBFBD>_',0
byte_1183A db 0
db 0
word_1183C dw 0
word_1183E dw 0
byte_11840 db 0
db 0
word_11842 dw 0
word_11844 dw 0
byte_11846 db 0
db 0
word_11848 dw 0
word_1184A dw 0
unk_1184C db 20h
db 20h
db 0
unk_1184F db 20h
db 20h
db 0
aStaff db 'staff',0
aStf00_cdg db 'stf00.cdg',0
aStf01_cdg db 'stf01.cdg',0
aStf02_cdg db 'stf02.cdg',0
aStf03_cdg db 'stf03.cdg',0
aStf04_cdg db 'stf04.cdg',0
aStf05_cdg db 'stf05.cdg',0
aStf06_cdg db 'stf06.cdg',0
aStf07_cdg db 'stf07.cdg',0
aStf08_cdg db 'stf08.cdg',0
aStf09_cdg db 'stf09.cdg',0
aStf10_cdg db 'stf10.cdg',0
aStf01_bft db 'stf01.bft',0
aStf00_bft db 'stf00.bft',0
.data?
; TODO: Missing clip[bss].asm (16 bytes) somewhere in there...
public _resident
_resident dd ?
db 16 dup(?)
include libs/master.lib/fil[bss].asm
include libs/master.lib/js[bss].asm
include libs/master.lib/pal[bss].asm
include libs/master.lib/vs[bss].asm
include libs/master.lib/vsync[bss].asm
include libs/master.lib/mem[bss].asm
include libs/master.lib/superpa[bss].asm
include libs/master.lib/super_put_rect[bss].asm
include th03/formats/hfliplut[bss].asm
include th04/snd/interrupt[bss].asm
include libs/master.lib/bgm[bss].asm
include th02/snd/load[bss].asm
include th05/formats/pi_slot_put_mask[bss].asm
include th05/formats/pi_slot_headers[bss].asm
include th04/hardware/input[bss].asm
include th04/formats/cdg[bss].asm
include libs/master.lib/pfint21[bss].asm
include th04/hardware/egccopyr[bss].asm
db 4472 dup(?)
word_14100 dw ?
word_14102 dw ?
dword_14104 dd ?
word_14108 dw ?
word_1410A dw ?
db 256 dup(?)
byte_1420C db ?
db ?
word_1420E dw ?
word_14210 dw ?
byte_14212 db ?
byte_14213 db ?
db 3444 dup(?)
word_14F88 dw ?
db 4 dup(?)
byte_14F8E db ?
db 117 dup(?)
point_15004 Point <?>
word_15008 dw ?
col_1500A db ?
db ?
word_1500C dw ?
measure_1500E dw ?
word_15010 dw ?
word_15012 dw ?
allcast_screen_plus_one dw ?
allcast_step dw ?
playchar_15018 db ?
db ?
include th04/formats/scoredat[bss].asm
db 252 dup(?)
byte_15176 db ?
_hiscore_rank db ?
playchar_15178 db ?
db 3 dup(?)
byte_1517C db ?
db ?
dword_1517E dd ?
dword_15182 dd ?
_verdict_rank db ?
byte_15187 db ?
db 27 dup(?)
byte_151A3 db ?
db ? ;
byte_151A5 db ?
db 27 dup(?)
byte_151C1 db ?
db 2 dup(?)
word_151C4 dw ?
word_151C6 dw ?
word_151C8 dw ?
word_151CA dw ?
byte_151CC db ?
db ?
word_151CE dw ?
word_151D0 dw ?
point_151D2 Point <?>
word_151D6 dw ?
word_151D8 dw ?
word_151DA dw ?
word_151DC dw ?
word_151DE dw ?
measure_151E0 dw ?
word_151E2 dw ?
db 1280 dup(?)
x_156E4 dw ?
db 2 dup(?)
y_156E8 dw ?
db 2 dup(?)
word_156EC dw ?
db 10 dup(?)
word_156F8 dw ?
word_156FA dw ?
db 14386 dup(?)
byte_18F2E db ?
db 6329 dup(?)
word_1A7E8 dw ?
db 7662 dup(?)
end