mirror of https://github.com/nmlgc/ReC98.git
8321 lines
157 KiB
NASM
8321 lines
157 KiB
NASM
;
|
||
; +-------------------------------------------------------------------------+
|
||
; | 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
|