mirror of https://github.com/nmlgc/ReC98.git
6065 lines
114 KiB
NASM
6065 lines
114 KiB
NASM
;
|
||
; +-------------------------------------------------------------------------+
|
||
; | This file has been generated by The Interactive Disassembler (IDA) |
|
||
; | Copyright (c) 2009 by Hex-Rays, <support@hex-rays.com> |
|
||
; +-------------------------------------------------------------------------+
|
||
;
|
||
; Input MD5 : CE44AA7A114237C6B3CD67EEA9C0225A
|
||
|
||
; File Name : th03/MAINL.EXE
|
||
; Format : MS-DOS executable (EXE)
|
||
; Base Address: 0h Range: 0h-10CF0h Loaded length: F72Ch
|
||
; 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.
|
||
|
||
include ReC98.inc
|
||
include th03/th03.inc
|
||
|
||
extern SCOPY@:proc
|
||
extern __mbcjmstojis:proc
|
||
extern __mbctype:byte
|
||
extern __ctype:byte
|
||
extern _execl:proc
|
||
extern _memcpy:proc
|
||
extern _tolower:proc
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
_TEXT segment word public 'CODE' use16
|
||
assume cs:_TEXT
|
||
assume es:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
include libs/master.lib/bfnt_entry_pat.asm
|
||
include libs/master.lib/bfnt_extend_header_skip.asm
|
||
include libs/master.lib/bfnt_header_read.asm
|
||
include libs/master.lib/bfnt_header_analysis.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_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_setcolor.asm
|
||
include libs/master.lib/gdc_outpw.asm
|
||
db 0
|
||
include libs/master.lib/gaiji_backup.asm
|
||
include libs/master.lib/gaiji_entry_bfnt.asm
|
||
include libs/master.lib/gaiji_read.asm
|
||
include libs/master.lib/gaiji_write.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_gaiji_putc.asm
|
||
include libs/master.lib/graph_pi_free.asm
|
||
include libs/master.lib/graph_pi_load_pack.asm
|
||
include libs/master.lib/graph_pack_put_8.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/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/palette_entry_rgb.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_fillca.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.asm
|
||
include libs/master.lib/respal_exist.asm
|
||
include libs/master.lib/respal_set_palettes.asm
|
||
include libs/master.lib/pfint21.asm
|
||
db 0
|
||
include libs/master.lib/js_start.asm
|
||
include libs/master.lib/js_sense.asm
|
||
db 0
|
||
include th03/formats/pfopen.asm
|
||
include libs/master.lib/pf_str_ieq.asm
|
||
include libs/master.lib/graph_pack_put_8_noclip.asm
|
||
_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
mainl_01_TEXT segment byte public 'CODE' use16
|
||
assume cs:mainl_01_TEXT
|
||
;org 3
|
||
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
|
||
|
||
sub_9624 proc near
|
||
|
||
var_2 = byte ptr -2
|
||
var_1 = byte ptr -1
|
||
|
||
enter 2, 0
|
||
push ds
|
||
push offset aLogo0_rgb ; "logo0.rgb"
|
||
call palette_entry_rgb
|
||
call far ptr palette_show
|
||
call cdg_load_all_noalpha pascal, 0, ds, offset aLogo_cd2
|
||
call cdg_load_single_forcealpha pascal, 5, ds, offset aLogo5_cdg, 0
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.pid_winner], 0
|
||
jnz short loc_965E
|
||
mov al, _playchar_filename_id[0]
|
||
jmp short loc_9661
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_965E:
|
||
mov al, _playchar_filename_id[1]
|
||
|
||
loc_9661:
|
||
mov [bp+var_1], al
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.pid_winner], 0
|
||
jnz short loc_969A
|
||
cmp es:[bx+resident_t.story_stage], 6
|
||
jnz short loc_967C
|
||
mov [bp+var_2], 9
|
||
jmp short loc_96B7
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_967C:
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.story_stage], 7
|
||
jnz short loc_968D
|
||
mov [bp+var_2], 0Ah
|
||
jmp short loc_96B7
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_968D:
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.pid_winner], 0
|
||
jnz short loc_96AA
|
||
jmp short loc_96A5
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_969A:
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.pid_winner], 0
|
||
jnz short loc_96AA
|
||
|
||
loc_96A5:
|
||
mov al, _playchar_filename_id[1]
|
||
jmp short loc_96AD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_96AA:
|
||
mov al, _playchar_filename_id[0]
|
||
|
||
loc_96AD:
|
||
mov ah, 0
|
||
cwd
|
||
sub ax, dx
|
||
sar ax, 1
|
||
mov [bp+var_2], al
|
||
|
||
loc_96B7:
|
||
push 6
|
||
push ds
|
||
mov al, [bp+var_1]
|
||
mov ah, 0
|
||
cwd
|
||
sub ax, dx
|
||
mov bx, ax
|
||
sar bx, 1
|
||
add bx, bx
|
||
push word ptr [bx+90h]
|
||
mov al, [bp+var_1]
|
||
mov ah, 0
|
||
and ax, 1
|
||
push ax
|
||
call cdg_load_single_noalpha
|
||
mov al, [bp+var_1]
|
||
mov ah, 0
|
||
cwd
|
||
sub ax, dx
|
||
mov bx, ax
|
||
sar bx, 1
|
||
shl bx, 2
|
||
pushd dword ptr [bx+0A2h]
|
||
call file_ropen
|
||
mov al, [bp+var_2]
|
||
mov ah, 0
|
||
imul ax, 0B4h
|
||
cwde
|
||
push eax
|
||
push 0
|
||
call file_seek
|
||
push ds
|
||
push offset unk_F72C
|
||
push 3Ch ; '<'
|
||
call file_read
|
||
mov byte_F768, 0
|
||
push ds
|
||
push offset unk_F769
|
||
push 3Ch ; '<'
|
||
call file_read
|
||
mov byte_F7A5, 0
|
||
push ds
|
||
push offset unk_F7A6
|
||
push 3Ch ; '<'
|
||
call file_read
|
||
mov byte_F7E2, 0
|
||
call file_close
|
||
leave
|
||
retn
|
||
sub_9624 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_973E proc near
|
||
push bp
|
||
mov bp, sp
|
||
call graph_putsa_fx pascal, (80 shl 16) or 272, 2Fh, ds, offset unk_F72C
|
||
call graph_putsa_fx pascal, (80 shl 16) or 288, 2Fh, ds, offset unk_F769
|
||
call graph_putsa_fx pascal, (80 shl 16) or 304, 2Fh, ds, offset unk_F7A6
|
||
pop bp
|
||
retn
|
||
sub_973E endp
|
||
|
||
include th03/formats/cdg_freeall.asm
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_978D proc near
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
graph_accesspage 1
|
||
call graph_clear
|
||
graph_accesspage 0
|
||
call graph_clear
|
||
graph_showpage 0
|
||
mov PaletteTone, 0
|
||
call far ptr palette_show
|
||
call graph_show
|
||
push (352 shl 16) or 300
|
||
push 0
|
||
call cdg_put_noalpha
|
||
kajacall KAJA_SONG_PLAY
|
||
push 2
|
||
call palette_black_in
|
||
push 60010h
|
||
call snd_delay_until_measure
|
||
mov si, 1
|
||
jmp short loc_97FC
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_97E8:
|
||
push (352 shl 16) or 300
|
||
push si
|
||
call cdg_put_noalpha
|
||
push 6
|
||
call frame_delay
|
||
inc si
|
||
|
||
loc_97FC:
|
||
cmp si, 5
|
||
jl short loc_97E8
|
||
push 0A0040h
|
||
call snd_delay_until_measure
|
||
mov PaletteTone, 200
|
||
call far ptr palette_show
|
||
push (224 shl 16) or 64
|
||
push 6
|
||
call cdg_put_noalpha
|
||
push (352 shl 16) or 300
|
||
push 5
|
||
call cdg_put_noalpha
|
||
push ds
|
||
push offset aLogo1_rgb ; "logo1.rgb"
|
||
call palette_entry_rgb
|
||
call far ptr palette_show
|
||
call cdg_freeall
|
||
push 0B0004h
|
||
call snd_delay_until_measure
|
||
push 1
|
||
call palette_white_in
|
||
push 8
|
||
call frame_delay
|
||
call sub_973E
|
||
call sub_9887
|
||
or ax, ax
|
||
jnz short loc_9868
|
||
call sub_990C
|
||
|
||
loc_9868:
|
||
call input_mode_interface
|
||
cmp _input_sp, INPUT_NONE
|
||
jnz short loc_987D
|
||
push 1
|
||
call frame_delay
|
||
jmp short loc_9868
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_987D:
|
||
push 1
|
||
call palette_black_out
|
||
pop si
|
||
pop bp
|
||
retn
|
||
sub_978D endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_9887 proc near
|
||
|
||
var_2 = word ptr -2
|
||
|
||
enter 2, 0
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.game_mode], GM_STORY
|
||
jnz short loc_98A1
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.pid_winner], 0
|
||
jz short loc_98A6
|
||
|
||
loc_98A1:
|
||
mov ax, 1
|
||
leave
|
||
retn
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_98A6:
|
||
les bx, _resident
|
||
mov al, es:[bx+resident_t.story_stage]
|
||
mov ah, 0
|
||
add bx, ax
|
||
mov al, es:[bx+resident_t.story_opponents]
|
||
mov bx, word ptr _resident
|
||
mov es:[bx+resident_t.RESIDENT_playchar_paletted][1], al
|
||
cmp es:[bx+resident_t.story_stage], 7
|
||
jnz short loc_98CA
|
||
mov ax, 3
|
||
leave
|
||
retn
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_98CA:
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.story_stage], 8
|
||
jnz short loc_98DA
|
||
mov ax, 4
|
||
leave
|
||
retn
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_98DA:
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.story_stage], 9
|
||
jnz short loc_98EA
|
||
mov ax, 5
|
||
leave
|
||
retn
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_98EA:
|
||
les bx, _resident
|
||
mov al, es:[bx+resident_t.RESIDENT_playchar_paletted][1]
|
||
mov ah, 0
|
||
dec ax
|
||
cwd
|
||
sub ax, dx
|
||
sar ax, 1
|
||
mov [bp+var_2], ax
|
||
cmp [bp+var_2], 7
|
||
jl short loc_9908
|
||
mov es:[bx+resident_t.RESIDENT_playchar_paletted][1], (1 + (PLAYCHAR_REIMU * 2))
|
||
|
||
loc_9908:
|
||
xor ax, ax
|
||
leave
|
||
retn
|
||
sub_9887 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_990C proc near
|
||
|
||
var_1 = byte ptr -1
|
||
|
||
enter 2, 0
|
||
graph_showpage 0
|
||
graph_accesspage 1
|
||
mov al, _playchar_filename_id[0]
|
||
mov [bp+var_1], al
|
||
push 0
|
||
push ds
|
||
mov ah, 0
|
||
cwd
|
||
sub ax, dx
|
||
mov bx, ax
|
||
sar bx, 1
|
||
add bx, bx
|
||
push word ptr [bx+90h]
|
||
mov al, [bp+var_1]
|
||
mov ah, 0
|
||
and ax, 1
|
||
push ax
|
||
call cdg_load_single_forcealpha
|
||
les bx, _resident
|
||
mov al, es:[bx+resident_t.RESIDENT_playchar_paletted][1]
|
||
add al, -1
|
||
mov [bp+var_1], al
|
||
push 1
|
||
push ds
|
||
mov ah, 0
|
||
cwd
|
||
sub ax, dx
|
||
mov bx, ax
|
||
sar bx, 1
|
||
add bx, bx
|
||
push word ptr [bx+90h]
|
||
mov al, [bp+var_1]
|
||
mov ah, 0
|
||
and ax, 1
|
||
push ax
|
||
call cdg_load_single_forcealpha
|
||
mov al, [bp+var_1]
|
||
mov ah, 0
|
||
cwd
|
||
sub ax, dx
|
||
sar ax, 1
|
||
mov [bp+var_1], al
|
||
mov byte_F7E5, 1
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.game_mode], GM_STORY
|
||
jz short loc_9997
|
||
mov bx, word_E504
|
||
mov al, [bx+4]
|
||
add al, 4
|
||
jmp short loc_99CB
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9997:
|
||
cmp [bp+var_1], 7
|
||
jnz short loc_99A8
|
||
mov bx, word_E504
|
||
mov al, [bx+4]
|
||
add al, 2
|
||
jmp short loc_99CB
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_99A8:
|
||
cmp [bp+var_1], 8
|
||
jnz short loc_99B7
|
||
mov bx, word_E504
|
||
inc byte ptr [bx+4]
|
||
jmp short loc_99F1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_99B7:
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.story_stage], 6
|
||
jnz short loc_99D4
|
||
mov bx, word_E504
|
||
mov al, [bx+4]
|
||
add al, 3
|
||
|
||
loc_99CB:
|
||
mov bx, word_E504
|
||
mov [bx+4], al
|
||
jmp short loc_99F1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_99D4:
|
||
push 2
|
||
push ds
|
||
push word_E502
|
||
les bx, _resident
|
||
mov al, es:[bx+resident_t.story_stage]
|
||
mov ah, 0
|
||
inc ax
|
||
push ax
|
||
call cdg_load_single_forcealpha
|
||
mov byte_F7E5, 0
|
||
|
||
loc_99F1:
|
||
call pi_slot_load pascal, 0, ds, offset aStnx0_pi
|
||
call pi_slot_put pascal, large 0, 0
|
||
freePISlotLarge 0
|
||
call pi_slot_load pascal, 0, ds, word_E504
|
||
call pi_slot_put pascal, large 0, 0
|
||
leave
|
||
retn
|
||
sub_990C endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_9A2C proc near
|
||
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
|
||
enter 4, 0
|
||
push si
|
||
mov si, 3A3h
|
||
mov [bp+var_2], 3AAh
|
||
mov PaletteTone, 0
|
||
call far ptr palette_show
|
||
call pi_slot_palette_apply pascal, 0
|
||
call graph_copy_page pascal, 0
|
||
freePISlotLarge 0
|
||
push (96 shl 16) or 96
|
||
push 0
|
||
call cdg_put
|
||
push (352 shl 16) or 96
|
||
push 1
|
||
call cdg_put_hflip
|
||
cmp byte_F7E5, 0
|
||
jnz short loc_9A8E
|
||
push (384 shl 16) or 46
|
||
push 2
|
||
call cdg_put
|
||
|
||
loc_9A8E:
|
||
call cdg_free pascal, 0
|
||
call cdg_free pascal, 1
|
||
call cdg_free pascal, 2
|
||
les bx, _resident
|
||
mov al, es:[bx+resident_t.RESIDENT_playchar_paletted][0]
|
||
mov ah, 0
|
||
dec ax
|
||
cwd
|
||
sub ax, dx
|
||
sar ax, 1
|
||
add ax, ax
|
||
mov [bp+var_4], ax
|
||
push (80 shl 16) or 292
|
||
push 2Fh
|
||
mov bx, [bp+var_4]
|
||
shl bx, 2
|
||
pushd CHAR_TITLE[bx]
|
||
call graph_putsa_fx
|
||
push (128 shl 16) or 308
|
||
push 2Fh
|
||
mov bx, [bp+var_4]
|
||
shl bx, 2
|
||
pushd CHAR_NAME[bx]
|
||
call graph_putsa_fx
|
||
les bx, _resident
|
||
mov al, es:[bx+resident_t.RESIDENT_playchar_paletted][1]
|
||
mov ah, 0
|
||
dec ax
|
||
cwd
|
||
sub ax, dx
|
||
sar ax, 1
|
||
add ax, ax
|
||
mov [bp+var_4], ax
|
||
push (336 shl 16) or 292
|
||
push 2Fh
|
||
mov bx, [bp+var_4]
|
||
shl bx, 2
|
||
pushd CHAR_TITLE[bx]
|
||
call graph_putsa_fx
|
||
push (384 shl 16) or 308
|
||
push 2Fh
|
||
mov bx, [bp+var_4]
|
||
shl bx, 2
|
||
pushd CHAR_NAME[bx]
|
||
call graph_putsa_fx
|
||
push 1
|
||
call palette_black_in
|
||
mov vsync_Count1, 0
|
||
graph_accesspage 1
|
||
call graph_clear
|
||
push 0
|
||
call sub_9D20
|
||
push 1
|
||
call sub_9D20
|
||
call pi_slot_load pascal, 0, ds, offset aEn2_pi
|
||
call pi_slot_put_interlace pascal, large 280, 0
|
||
freePISlotLarge 0
|
||
les bx, _resident
|
||
mov al, es:[bx+resident_t.RESIDENT_playchar_paletted][1]
|
||
mov ah, 0
|
||
dec ax
|
||
cwd
|
||
sub ax, dx
|
||
sar ax, 1
|
||
mov [bp+var_4], ax
|
||
mov bx, [bp+var_4]
|
||
cmp bx, 8
|
||
ja short loc_9BC2
|
||
add bx, bx
|
||
jmp cs:off_9C9F[bx]
|
||
|
||
loc_9B97:
|
||
push 0
|
||
push ds
|
||
push offset aEnemy00_pi ; "ENEMY00.pi"
|
||
jmp short loc_9BBD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9B9F:
|
||
push 0
|
||
push ds
|
||
push offset aEnemy01_pi ; "ENEMY01.pi"
|
||
jmp short loc_9BBD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9BA7:
|
||
push 0
|
||
push ds
|
||
push offset aEnemy02_pi ; "ENEMY02.pi"
|
||
jmp short loc_9BBD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9BAF:
|
||
push 0
|
||
push ds
|
||
push offset aEnemy03_pi ; "ENEMY03.pi"
|
||
jmp short loc_9BBD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9BB7:
|
||
push 0
|
||
push ds
|
||
push offset aEnemy04_pi ; "ENEMY04.pi"
|
||
|
||
loc_9BBD:
|
||
call pi_slot_load
|
||
|
||
loc_9BC2:
|
||
call pi_slot_put_interlace pascal, large 304, 0
|
||
les bx, _resident
|
||
mov al, es:[bx+resident_t.RESIDENT_playchar_paletted][1]
|
||
mov ah, 0
|
||
dec ax
|
||
cwd
|
||
sub ax, dx
|
||
sar ax, 1
|
||
mov [bp+var_4], ax
|
||
cmp [bp+var_4], 0Ah
|
||
jl short loc_9BFB
|
||
mov bx, 0Ah
|
||
cwd
|
||
idiv bx
|
||
add al, [si]
|
||
mov [si], al
|
||
mov ax, [bp+var_4]
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_4], dx
|
||
|
||
loc_9BFB:
|
||
mov al, [si+1]
|
||
add al, byte ptr [bp+var_4]
|
||
mov [si+1], al
|
||
kajacall KAJA_SONG_STOP
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.story_stage], 6
|
||
jz short loc_9C1E
|
||
push SND_LOAD_SONG
|
||
push ds
|
||
push si
|
||
jmp short loc_9C25
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9C1E:
|
||
push SND_LOAD_SONG
|
||
push ds
|
||
push [bp+var_2]
|
||
|
||
loc_9C25:
|
||
call snd_load
|
||
add sp, 6
|
||
call snd_load c, offset aYume_efc, ds, SND_LOAD_SE
|
||
mov _input_sp, INPUT_NONE
|
||
|
||
loc_9C42:
|
||
cmp vsync_Count1, 20h ; ' '
|
||
jbe short loc_9C42
|
||
jmp short loc_9C50
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9C4B:
|
||
call input_mode_interface
|
||
|
||
loc_9C50:
|
||
cmp vsync_Count1, 60h
|
||
ja short loc_9C5E
|
||
cmp _input_sp, INPUT_NONE
|
||
jz short loc_9C4B
|
||
|
||
loc_9C5E:
|
||
push 1
|
||
call palette_white_out
|
||
graph_accesspage 0
|
||
call graph_clear
|
||
push 1
|
||
call palette_white_in
|
||
call text_fillca pascal, (' ' shl 16) + TX_BLACK + TX_REVERSE
|
||
call pi_slot_palette_apply pascal, 0
|
||
freePISlotLarge 0
|
||
call respal_set_palettes
|
||
pop si
|
||
leave
|
||
retn
|
||
sub_9A2C endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
off_9C9F dw offset loc_9B97
|
||
dw offset loc_9B97
|
||
dw offset loc_9B9F
|
||
dw offset loc_9BA7
|
||
dw offset loc_9B9F
|
||
dw offset loc_9BA7
|
||
dw offset loc_9B97
|
||
dw offset loc_9BAF
|
||
dw offset loc_9BB7
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_9CB1 proc near
|
||
|
||
arg_0 = dword ptr 4
|
||
arg_4 = word ptr 8
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
mov si, [bp+arg_4]
|
||
call pi_slot_load pascal, 0, large [bp+arg_0]
|
||
mov ax, si
|
||
imul ax, 320
|
||
call pi_slot_put_interlace pascal, ax, (200 shl 16)
|
||
freePISlotLarge 0
|
||
les bx, [bp+arg_0]
|
||
mov byte ptr es:[bx+2], 'e'
|
||
mov byte ptr es:[bx+3], 'x'
|
||
call pi_slot_load pascal, 0, word ptr [bp+arg_0+2], bx
|
||
mov ax, si
|
||
imul ax, 320
|
||
call pi_slot_put_interlace pascal, ax, (208 shl 16)
|
||
freePISlotLarge 0
|
||
pop si
|
||
pop bp
|
||
retn 6
|
||
sub_9CB1 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_9D20 proc near
|
||
|
||
var_E = byte ptr -0Eh
|
||
var_D = byte ptr -0Dh
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 4
|
||
|
||
enter 0Eh, 0
|
||
push si
|
||
push di
|
||
mov di, [bp+arg_0]
|
||
xor si, si
|
||
jmp short loc_9D35
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9D2D:
|
||
mov al, [si+116h]
|
||
mov [bp+si+var_E], al
|
||
inc si
|
||
|
||
loc_9D35:
|
||
cmp si, 0Ch
|
||
jl short loc_9D2D
|
||
les bx, _resident
|
||
add bx, di
|
||
mov al, es:[bx+resident_t.RESIDENT_playchar_paletted]
|
||
mov ah, 0
|
||
dec ax
|
||
mov [bp+var_2], ax
|
||
cmp [bp+var_2], 10
|
||
jl short loc_9D65
|
||
mov bx, 10
|
||
cwd
|
||
idiv bx
|
||
add al, [bp+var_E]
|
||
mov [bp+var_E], al
|
||
mov ax, [bp+var_2]
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_2], dx
|
||
|
||
loc_9D65:
|
||
mov al, [bp+var_D]
|
||
add al, byte ptr [bp+var_2]
|
||
mov [bp+var_D], al
|
||
push di
|
||
push ss
|
||
lea ax, [bp+var_E]
|
||
push ax
|
||
call sub_9CB1
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn 2
|
||
sub_9D20 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
|
||
|
||
var_2 = byte ptr -2
|
||
var_1 = byte ptr -1
|
||
_argc = word ptr 6
|
||
_argv = dword ptr 8
|
||
_envp = dword ptr 0Ch
|
||
|
||
enter 2, 0
|
||
call cfg_load_resident
|
||
or ax, ax
|
||
jz @@ret
|
||
call game_init_main pascal, ds, offset aCOul
|
||
call respal_exist
|
||
mov _snd_midi_active, 0
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.bgm_mode], SND_BGM_OFF
|
||
jz short loc_9DAD
|
||
call snd_determine_mode
|
||
|
||
loc_9DAD:
|
||
call gaiji_backup
|
||
push ds
|
||
push offset aMikoft_bft ; "MIKOFT.bft"
|
||
call gaiji_entry_bfnt
|
||
call snd_load c, offset aYume_efc, ds, SND_LOAD_SE
|
||
call snd_se_reset
|
||
call hflip_lut_generate
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.show_score_menu], 0
|
||
jz short loc_9E04
|
||
call sub_B7D2
|
||
call text_clear
|
||
call gaiji_restore
|
||
call game_exit
|
||
pushd 0
|
||
push ds
|
||
push offset path ; "op"
|
||
push ds
|
||
push offset path ; "op"
|
||
call _execl
|
||
add sp, 0Ch
|
||
|
||
loc_9E04:
|
||
les bx, _resident
|
||
mov al, es:[bx+resident_t.RESIDENT_playchar_paletted][0]
|
||
add al, -1
|
||
mov _playchar_filename_id[0], al
|
||
mov al, es:[bx+resident_t.RESIDENT_playchar_paletted][1]
|
||
add al, -1
|
||
mov _playchar_filename_id[1], al
|
||
cmp es:[bx+resident_t.story_stage], 0
|
||
jz loc_9F85
|
||
cmp es:[bx+resident_t.game_mode], GM_STORY
|
||
jnz short loc_9E3F
|
||
call sub_9887
|
||
mov [bp+var_1], al
|
||
cmp [bp+var_1], 4
|
||
jz short loc_9E89
|
||
cmp [bp+var_1], 5
|
||
jnz short loc_9E3F
|
||
call sub_B972
|
||
|
||
loc_9E3F:
|
||
call snd_load c, offset aWin_m, ds, SND_LOAD_SONG
|
||
call sub_9624
|
||
call sub_978D
|
||
kajacall KAJA_SONG_STOP
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.game_mode], GM_STORY
|
||
jnz loc_9F58
|
||
call sub_9887
|
||
mov [bp+var_1], al
|
||
cmp [bp+var_1], 0
|
||
jnz short loc_9E7B
|
||
|
||
loc_9E75:
|
||
call sub_9A2C
|
||
jmp loc_9F1E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9E7B:
|
||
cmp [bp+var_1], 3
|
||
jz short loc_9E89
|
||
cmp [bp+var_1], 4
|
||
jnz loc_9F38
|
||
|
||
loc_9E89:
|
||
call cdg_freeall
|
||
freePISlotLarge 0
|
||
mov al, _playchar_filename_id[0]
|
||
mov ah, 0
|
||
cwd
|
||
sub ax, dx
|
||
sar ax, 1
|
||
mov [bp+var_2], al
|
||
cmp [bp+var_2], 10
|
||
jb short loc_9EDC
|
||
les bx, off_E4B6
|
||
mov al, es:[bx+1]
|
||
mov dl, [bp+var_2]
|
||
mov dh, 0
|
||
mov bx, 10
|
||
push ax
|
||
mov ax, dx
|
||
cwd
|
||
idiv bx
|
||
pop dx
|
||
add dl, al
|
||
mov bx, word ptr off_E4B6
|
||
mov es:[bx+1], dl
|
||
mov al, [bp+var_2]
|
||
mov ah, 0
|
||
mov bx, 10
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_2], dl
|
||
|
||
loc_9EDC:
|
||
les bx, off_E4B6
|
||
mov al, [bp+var_2]
|
||
add es:[bx+2], al
|
||
cmp [bp+var_1], 4
|
||
jnz short loc_9EF1
|
||
inc byte ptr es:[bx+5]
|
||
|
||
loc_9EF1:
|
||
graph_accesspage 0
|
||
graph_showpage al
|
||
call graph_clear
|
||
call graph_show
|
||
pushd [off_E4B6]
|
||
call sub_A12E
|
||
call sub_AC6E
|
||
call sub_A174
|
||
call sub_990C
|
||
call sub_9A2C
|
||
call gaiji_restore
|
||
|
||
loc_9F1E:
|
||
call sub_D16F
|
||
pushd 0
|
||
push ds
|
||
push offset aMain ; "main"
|
||
push ds
|
||
push offset aMain ; "main"
|
||
|
||
loc_9F2E:
|
||
call _execl
|
||
add sp, 0Ch
|
||
leave
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9F38:
|
||
call cdg_freeall
|
||
freePISlotLarge 0
|
||
call sub_B7D2
|
||
call sub_9F8D
|
||
or ax, ax
|
||
jnz short loc_9F85
|
||
call sub_B92E
|
||
jmp short loc_9F69
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9F58:
|
||
call cdg_freeall
|
||
freePISlotLarge 0
|
||
|
||
loc_9F69:
|
||
call text_clear
|
||
call gaiji_restore
|
||
call game_exit
|
||
pushd 0
|
||
push ds
|
||
push offset path ; "op"
|
||
push ds
|
||
push offset path ; "op"
|
||
jmp short loc_9F2E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9F85:
|
||
call sub_990C
|
||
jmp loc_9E75
|
||
; ---------------------------------------------------------------------------
|
||
|
||
@@ret:
|
||
leave
|
||
retf
|
||
_main endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_9F8D proc near
|
||
|
||
var_6 = dword ptr -6
|
||
var_2 = word ptr -2
|
||
|
||
enter 6, 0
|
||
push si
|
||
push di
|
||
mov si, 1
|
||
mov [bp+var_2], 0
|
||
mov word ptr [bp+var_6+2], ds
|
||
mov word ptr [bp+var_6], offset a0
|
||
xor di, di
|
||
jmp short loc_9FB3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9FA7:
|
||
les bx, _resident
|
||
add bx, di
|
||
mov es:[bx+resident_t.score_last], 0
|
||
inc di
|
||
|
||
loc_9FB3:
|
||
cmp di, (PLAYER_COUNT * SCORE_DIGITS)
|
||
jl short loc_9FA7
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.rem_credits], 0
|
||
jnz short loc_9FC8
|
||
xor ax, ax
|
||
jmp loc_A12A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9FC8:
|
||
push (192 shl 16) or 272
|
||
push 0
|
||
call cdg_put_noalpha
|
||
push (352 shl 16) or 272
|
||
push 3
|
||
call cdg_put_noalpha
|
||
les bx, _resident
|
||
mov al, es:[bx+resident_t.rem_credits]
|
||
les bx, [bp+var_6]
|
||
add al, es:[bx]
|
||
mov es:[bx], al
|
||
call graph_putsa_fx pascal, (576 shl 16) or 371, 2Fh, word ptr [bp+var_6+2], bx
|
||
push 1
|
||
call palette_black_in
|
||
|
||
loc_A00B:
|
||
call input_mode_interface
|
||
test _input_sp.lo, low INPUT_LEFT
|
||
jnz short loc_A01E
|
||
test _input_sp.lo, low INPUT_RIGHT
|
||
jz short loc_A056
|
||
|
||
loc_A01E:
|
||
cmp [bp+var_2], 0
|
||
jnz short loc_A05B
|
||
mov ax, 1
|
||
sub ax, si
|
||
mov si, ax
|
||
push (192 shl 16) or 272
|
||
add ax, ax
|
||
mov dx, 2
|
||
sub dx, ax
|
||
push dx
|
||
call cdg_put_noalpha
|
||
push (352 shl 16) or 272
|
||
mov ax, si
|
||
add ax, ax
|
||
inc ax
|
||
push ax
|
||
call cdg_put_noalpha
|
||
mov [bp+var_2], 1
|
||
jmp short loc_A05B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A056:
|
||
mov [bp+var_2], 0
|
||
|
||
loc_A05B:
|
||
test _input_sp.hi, high INPUT_OK
|
||
jnz short loc_A069
|
||
test _input_sp.lo, low INPUT_SHOT
|
||
jz short loc_A0B0
|
||
|
||
loc_A069:
|
||
cmp si, 1
|
||
jnz short loc_A0C5
|
||
call grcg_setcolor pascal, (GC_RMW shl 16) + 0
|
||
call grcg_boxfill pascal, (576 shl 16) or 371, (592 shl 16) or 387
|
||
call grcg_off
|
||
les bx, _resident
|
||
dec es:[bx+resident_t.rem_credits]
|
||
les bx, [bp+var_6]
|
||
dec byte ptr es:[bx]
|
||
call graph_putsa_fx pascal, (576 shl 16) or 371, 2Fh, word ptr [bp+var_6+2], bx
|
||
jmp short loc_A0C5
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A0B0:
|
||
test _input_sp.hi, high INPUT_CANCEL
|
||
jz short loc_A0BB
|
||
xor si, si
|
||
jmp short loc_A0C5
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A0BB:
|
||
push 1
|
||
call frame_delay
|
||
jmp loc_A00B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A0C5:
|
||
kajacall KAJA_SONG_FADE, 3
|
||
push 1
|
||
call palette_black_out
|
||
graph_accesspage 0
|
||
graph_showpage al
|
||
mov PaletteTone, 0
|
||
call far ptr palette_show
|
||
call pi_slot_load pascal, 0, ds, offset aOver_pi
|
||
call pi_slot_palette_apply pascal, 0
|
||
call pi_slot_put pascal, large 0, 0
|
||
freePISlotLarge 0
|
||
kajacall KAJA_SONG_STOP
|
||
les bx, _resident
|
||
dec es:[bx+resident_t.story_stage]
|
||
mov es:[bx+resident_t.story_lives], CREDIT_LIVES
|
||
mov ax, si
|
||
|
||
loc_A12A:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn
|
||
sub_9F8D endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A12E proc near
|
||
|
||
arg_0 = dword ptr 4
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
call sub_A174
|
||
pushd [bp+arg_0]
|
||
call file_ropen
|
||
or ax, ax
|
||
jnz short loc_A147
|
||
mov ax, 1
|
||
jmp short loc_A16F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A147:
|
||
call file_size
|
||
mov si, ax
|
||
push ax
|
||
call hmem_allocbyte
|
||
mov word ptr dword_105C6+2, ax
|
||
mov word ptr dword_105C6, 0
|
||
push ax
|
||
push word ptr dword_105C6
|
||
push si
|
||
call file_read
|
||
call file_close
|
||
xor ax, ax
|
||
|
||
loc_A16F:
|
||
pop si
|
||
pop bp
|
||
retn 4
|
||
sub_A12E endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A174 proc near
|
||
push bp
|
||
mov bp, sp
|
||
cmp dword_105C6, 0
|
||
jz short loc_A191
|
||
push word ptr dword_105C6+2
|
||
call hmem_free
|
||
mov dword_105C6, 0
|
||
|
||
loc_A191:
|
||
pop bp
|
||
retn
|
||
sub_A174 endp
|
||
|
||
EGC_START_COPY_DEF 1, near
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A1C7 proc near
|
||
|
||
var_4 = 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 ax, [bp+arg_2]
|
||
sar ax, 3
|
||
mov dx, [bp+arg_0]
|
||
shl dx, 6
|
||
add ax, dx
|
||
mov dx, [bp+arg_0]
|
||
shl dx, 4
|
||
add ax, dx
|
||
mov si, ax
|
||
call egc_start_copy_1
|
||
xor di, di
|
||
jmp short loc_A225
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A1EC:
|
||
mov [bp+var_2], 0
|
||
jmp short loc_A21B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A1F3:
|
||
graph_accesspage 0
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, si
|
||
mov ax, es:[bx]
|
||
mov [bp+var_4], ax
|
||
mov al, 1
|
||
out dx, al
|
||
mov bx, word ptr _VRAM_PLANE_B
|
||
add bx, si
|
||
mov ax, [bp+var_4]
|
||
mov es:[bx], ax
|
||
add [bp+var_2], 2
|
||
add si, 2
|
||
|
||
loc_A21B:
|
||
cmp [bp+var_2], 28h ; '('
|
||
jl short loc_A1F3
|
||
inc di
|
||
add si, 28h ; '('
|
||
|
||
loc_A225:
|
||
cmp di, 0C8h
|
||
jl short loc_A1EC
|
||
call egc_off
|
||
graph_accesspage 0
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn 4
|
||
sub_A1C7 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A23C proc near
|
||
|
||
var_8 = dword ptr -8
|
||
var_4 = word ptr -4
|
||
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 8, 0
|
||
push si
|
||
push di
|
||
mov eax, _pi_slot_buffers
|
||
mov [bp+var_8], eax
|
||
cmp [bp+arg_2], 1
|
||
jnz short loc_A257
|
||
add word ptr [bp+var_8], 0A0h
|
||
jmp short loc_A26F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A257:
|
||
cmp [bp+arg_2], 2
|
||
jnz short loc_A264
|
||
add word ptr [bp+var_8], 0FA00h
|
||
jmp short loc_A26F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A264:
|
||
cmp [bp+arg_2], 3
|
||
jnz short loc_A26F
|
||
add word ptr [bp+var_8], 0FAA0h
|
||
|
||
loc_A26F:
|
||
mov eax, [bp+var_8]
|
||
shr eax, 10h
|
||
mov dx, word ptr [bp+var_8]
|
||
shr dx, 4
|
||
add ax, dx
|
||
mov dx, word ptr [bp+var_8]
|
||
and dx, 0Fh
|
||
mov word ptr [bp+var_8+2], ax
|
||
mov word ptr [bp+var_8], dx
|
||
graph_showpage 1
|
||
mov ax, [bp+arg_6]
|
||
sar ax, 3
|
||
mov dx, [bp+arg_4]
|
||
shl dx, 6
|
||
add ax, dx
|
||
mov dx, [bp+arg_4]
|
||
shl dx, 4
|
||
add ax, dx
|
||
mov si, ax
|
||
graph_accesspage 0
|
||
xor di, di
|
||
jmp loc_A34E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A2B4:
|
||
call graph_pack_put_8_noclip pascal, large 400, [bp+var_8], 320
|
||
call egc_start_copy_1
|
||
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, di
|
||
and ax, 3
|
||
add ax, ax
|
||
add bx, ax
|
||
outw2 EGC_MASKREG, _PI_MASKS[bx]
|
||
mov [bp+var_4], 7D00h
|
||
mov [bp+var_2], 0
|
||
jmp short loc_A31E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A301:
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, [bp+var_4]
|
||
mov ax, es:[bx]
|
||
mov bx, word ptr _VRAM_PLANE_B
|
||
add bx, si
|
||
mov es:[bx], ax
|
||
inc [bp+var_2]
|
||
add si, 2
|
||
add [bp+var_4], 2
|
||
|
||
loc_A31E:
|
||
cmp [bp+var_2], 14h
|
||
jl short loc_A301
|
||
call egc_off
|
||
add si, 28h ; '('
|
||
add word ptr [bp+var_8], 140h
|
||
mov eax, [bp+var_8]
|
||
shr eax, 10h
|
||
mov dx, word ptr [bp+var_8]
|
||
shr dx, 4
|
||
add ax, dx
|
||
mov dx, word ptr [bp+var_8]
|
||
and dx, 0Fh
|
||
mov word ptr [bp+var_8+2], ax
|
||
mov word ptr [bp+var_8], dx
|
||
inc di
|
||
|
||
loc_A34E:
|
||
cmp di, 0C8h
|
||
jl loc_A2B4
|
||
graph_showpage 0
|
||
push [bp+arg_6]
|
||
push [bp+arg_4]
|
||
call sub_A1C7
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn 8
|
||
sub_A23C endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A36B proc near
|
||
|
||
var_8 = word ptr -8
|
||
var_6 = word ptr -6
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
|
||
enter 8, 0
|
||
push si
|
||
push di
|
||
call sub_A43C
|
||
graph_accesspage 0
|
||
push 3C00h
|
||
call hmem_allocbyte
|
||
mov word ptr dword_105CA+2, ax
|
||
mov word ptr dword_105CA, 0
|
||
xor si, si
|
||
mov di, 140h
|
||
mov [bp+var_4], 0
|
||
jmp loc_A430
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A398:
|
||
mov [bp+var_2], 50h ; 'P'
|
||
mov [bp+var_6], 0
|
||
jmp loc_A424
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A3A5:
|
||
mov ax, [bp+var_2]
|
||
sar ax, 3
|
||
mov dx, di
|
||
shl dx, 6
|
||
add ax, dx
|
||
mov dx, di
|
||
shl dx, 4
|
||
add ax, dx
|
||
mov [bp+var_8], ax
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, [bp+var_8]
|
||
mov ax, es:[bx]
|
||
mov dx, si
|
||
add dx, dx
|
||
les bx, dword_105CA
|
||
add bx, dx
|
||
mov es:[bx], ax
|
||
inc si
|
||
les bx, _VRAM_PLANE_R
|
||
add bx, [bp+var_8]
|
||
mov ax, es:[bx]
|
||
mov dx, si
|
||
add dx, dx
|
||
les bx, dword_105CA
|
||
add bx, dx
|
||
mov es:[bx], ax
|
||
inc si
|
||
les bx, _VRAM_PLANE_G
|
||
add bx, [bp+var_8]
|
||
mov ax, es:[bx]
|
||
mov dx, si
|
||
add dx, dx
|
||
les bx, dword_105CA
|
||
add bx, dx
|
||
mov es:[bx], ax
|
||
inc si
|
||
les bx, _VRAM_PLANE_E
|
||
add bx, [bp+var_8]
|
||
mov ax, es:[bx]
|
||
mov dx, si
|
||
add dx, dx
|
||
les bx, dword_105CA
|
||
add bx, dx
|
||
mov es:[bx], ax
|
||
inc si
|
||
add [bp+var_6], 2
|
||
add [bp+var_2], 10h
|
||
|
||
loc_A424:
|
||
cmp [bp+var_6], 3Ch ; '<'
|
||
jl loc_A3A5
|
||
inc [bp+var_4]
|
||
inc di
|
||
|
||
loc_A430:
|
||
cmp [bp+var_4], 40h
|
||
jl loc_A398
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn
|
||
sub_A36B endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A43C proc near
|
||
push bp
|
||
mov bp, sp
|
||
cmp dword_105CA, 0
|
||
jz short loc_A459
|
||
push word ptr dword_105CA+2
|
||
call hmem_free
|
||
mov dword_105CA, 0
|
||
|
||
loc_A459:
|
||
pop bp
|
||
retn
|
||
sub_A43C endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A45B proc near
|
||
|
||
var_6 = word ptr -6
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
|
||
enter 6, 0
|
||
push si
|
||
push di
|
||
xor cx, cx
|
||
mov si, 140h
|
||
mov [bp+var_4], 0
|
||
jmp loc_A4FE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A46E:
|
||
mov [bp+var_2], 50h ; 'P'
|
||
mov [bp+var_6], 0
|
||
jmp short loc_A4F4
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A47A:
|
||
mov ax, [bp+var_2]
|
||
sar ax, 3
|
||
mov dx, si
|
||
shl dx, 6
|
||
add ax, dx
|
||
mov dx, si
|
||
shl dx, 4
|
||
add ax, dx
|
||
mov di, ax
|
||
mov ax, cx
|
||
add ax, ax
|
||
les bx, dword_105CA
|
||
add bx, ax
|
||
mov ax, es:[bx]
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, di
|
||
mov es:[bx], ax
|
||
inc cx
|
||
mov ax, cx
|
||
add ax, ax
|
||
les bx, dword_105CA
|
||
add bx, ax
|
||
mov ax, es:[bx]
|
||
les bx, _VRAM_PLANE_R
|
||
add bx, di
|
||
mov es:[bx], ax
|
||
inc cx
|
||
mov ax, cx
|
||
add ax, ax
|
||
les bx, dword_105CA
|
||
add bx, ax
|
||
mov ax, es:[bx]
|
||
les bx, _VRAM_PLANE_G
|
||
add bx, di
|
||
mov es:[bx], ax
|
||
inc cx
|
||
mov ax, cx
|
||
add ax, ax
|
||
les bx, dword_105CA
|
||
add bx, ax
|
||
mov ax, es:[bx]
|
||
les bx, _VRAM_PLANE_E
|
||
add bx, di
|
||
mov es:[bx], ax
|
||
inc cx
|
||
add [bp+var_6], 2
|
||
add [bp+var_2], 10h
|
||
|
||
loc_A4F4:
|
||
cmp [bp+var_6], 3Ch ; '<'
|
||
jl short loc_A47A
|
||
inc [bp+var_4]
|
||
inc si
|
||
|
||
loc_A4FE:
|
||
cmp [bp+var_4], 40h
|
||
jl loc_A46E
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn
|
||
sub_A45B endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A50A proc near
|
||
|
||
var_2 = byte ptr -2
|
||
var_1 = byte ptr -1
|
||
arg_0 = dword ptr 4
|
||
|
||
enter 2, 0
|
||
les bx, dword_105C6
|
||
mov cl, es:[bx]
|
||
inc word ptr dword_105C6
|
||
les bx, dword_105C6
|
||
mov al, es:[bx]
|
||
mov [bp+var_1], al
|
||
inc word ptr dword_105C6
|
||
les bx, dword_105C6
|
||
mov al, es:[bx]
|
||
mov [bp+var_2], al
|
||
inc word ptr dword_105C6
|
||
mov al, cl
|
||
mov ah, 0
|
||
mov bx, ax
|
||
test (__ctype + 1)[bx], _IS_DIG
|
||
jnz short loc_A554
|
||
les bx, [bp+arg_0]
|
||
mov ax, word_105D8
|
||
mov es:[bx], ax
|
||
sub word ptr dword_105C6, 3
|
||
leave
|
||
retn 4
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A554:
|
||
mov al, [bp+var_1]
|
||
mov ah, 0
|
||
mov bx, ax
|
||
test (__ctype + 1)[bx], _IS_DIG
|
||
jnz short loc_A578
|
||
mov al, cl
|
||
mov ah, 0
|
||
add ax, 0FFD0h
|
||
les bx, [bp+arg_0]
|
||
mov es:[bx], ax
|
||
sub word ptr dword_105C6, 2
|
||
leave
|
||
retn 4
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A578:
|
||
mov al, [bp+var_2]
|
||
mov ah, 0
|
||
mov bx, ax
|
||
test (__ctype + 1)[bx], _IS_DIG
|
||
jnz short loc_A5A8
|
||
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 ptr dword_105C6
|
||
leave
|
||
retn 4
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A5A8:
|
||
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_A50A endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A5D3 proc near
|
||
|
||
arg_0 = dword ptr 4
|
||
|
||
push bp
|
||
mov bp, sp
|
||
les bx, dword_105C6
|
||
cmp byte ptr es:[bx], 2Ch ; ','
|
||
jnz short loc_A5EF
|
||
inc word ptr dword_105C6
|
||
pushd [bp+arg_0]
|
||
call sub_A50A
|
||
pop bp
|
||
retn 4
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A5EF:
|
||
les bx, [bp+arg_0]
|
||
mov ax, word_105D8
|
||
mov es:[bx], ax
|
||
pop bp
|
||
retn 4
|
||
sub_A5D3 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A5FC proc near
|
||
push bp
|
||
mov bp, sp
|
||
add point_105D0.x, 16
|
||
cmp point_105D0.x, 560
|
||
jl short loc_A64B
|
||
add point_105D0.y, 16
|
||
mov point_105D0.x, 144
|
||
cmp point_105D0.y, 384
|
||
jl short loc_A64B
|
||
cmp byte_105CE, 0
|
||
jnz short loc_A62D
|
||
call input_wait_for_change pascal, 0
|
||
|
||
loc_A62D:
|
||
mov point_105D0.x, 80
|
||
mov point_105D0.y, 320
|
||
graph_accesspage 1
|
||
call sub_A45B
|
||
graph_accesspage 0
|
||
call sub_A45B
|
||
|
||
loc_A64B:
|
||
pop bp
|
||
retn
|
||
sub_A5FC endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A64D 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_AC2E
|
||
|
||
loc_A66C:
|
||
mov ax, cs:[bx]
|
||
cmp ax, [bp+var_6]
|
||
jz short loc_A67C
|
||
add bx, 2
|
||
loop loc_A66C
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A67C:
|
||
jmp word ptr cs:[bx+20h] ; switch jump
|
||
|
||
loc_A680:
|
||
add point_105D0.y, 16 ; jumptable 0000A67C case 110
|
||
mov point_105D0.x, 80
|
||
cmp point_105D0.y, 384
|
||
jl loc_AC1E ; default
|
||
|
||
loc_A695:
|
||
les bx, dword_105C6 ; jumptable 0000A67C case 115
|
||
mov al, es:[bx]
|
||
mov [bp+arg_0], al
|
||
cmp [bp+arg_0], 2Dh ; '-'
|
||
jz short loc_A6C4
|
||
mov word_105D8, 0
|
||
push ss
|
||
lea ax, [bp+var_2]
|
||
push ax
|
||
call sub_A50A
|
||
cmp byte_105CE, 0
|
||
jnz short loc_A6C8
|
||
call input_wait_for_change pascal, [bp+var_2]
|
||
jmp short loc_A6C8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A6C4:
|
||
inc word ptr dword_105C6
|
||
|
||
loc_A6C8:
|
||
mov point_105D0.x, 80
|
||
mov point_105D0.y, 320
|
||
graph_accesspage 1
|
||
call sub_A45B
|
||
graph_accesspage 0
|
||
call sub_A45B
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A6E9:
|
||
mov word_105D8, 0Fh ; jumptable 0000A67C case 99
|
||
push ss
|
||
lea ax, [bp+var_2]
|
||
push ax
|
||
call sub_A50A
|
||
mov al, byte ptr [bp+var_2]
|
||
mov col_105D6, al
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A700:
|
||
mov word_105D8, 2 ; jumptable 0000A67C case 98
|
||
push ss
|
||
lea ax, [bp+var_2]
|
||
push ax
|
||
call sub_A50A
|
||
mov bx, [bp+var_2]
|
||
cmp bx, 3
|
||
ja loc_AC1E ; default
|
||
add bx, bx
|
||
jmp cs:off_AC26[bx]
|
||
|
||
loc_A71F:
|
||
mov byte_105D7, 0
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A727:
|
||
mov byte_105D7, 10h
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A72F:
|
||
mov byte_105D7, 20h ; ' '
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A737:
|
||
mov byte_105D7, 30h ; '0'
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A73F:
|
||
les bx, dword_105C6 ; jumptable 0000A67C case 119
|
||
mov al, es:[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_A75E
|
||
cmp [bp+arg_0], 69h ; 'i'
|
||
jnz short loc_A78C
|
||
|
||
loc_A75E:
|
||
inc word ptr dword_105C6
|
||
mov word_105D8, 1
|
||
push ss
|
||
lea ax, [bp+var_2]
|
||
push ax
|
||
call sub_A50A
|
||
cmp [bp+arg_0], 69h ; 'i'
|
||
jnz short loc_A781
|
||
push [bp+var_2]
|
||
call palette_white_in
|
||
jmp loc_AB90
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A781:
|
||
push [bp+var_2]
|
||
call palette_white_out
|
||
jmp loc_AB90
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A78C:
|
||
mov word_105D8, 40h
|
||
cmp [bp+arg_0], 6Dh ; 'm'
|
||
jz short loc_A7CF
|
||
cmp [bp+arg_0], 6Bh ; 'k'
|
||
jnz short loc_A7A2
|
||
inc word ptr dword_105C6
|
||
|
||
loc_A7A2:
|
||
push ss
|
||
lea ax, [bp+var_2]
|
||
push ax
|
||
call sub_A50A
|
||
cmp byte_105CE, 0
|
||
jnz loc_AC1E ; default
|
||
cmp [bp+arg_0], 6Bh ; 'k'
|
||
jz short loc_A7C4
|
||
push [bp+var_2]
|
||
call frame_delay
|
||
jmp loc_AB90
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A7C4:
|
||
push [bp+var_2]
|
||
call input_wait_for_ok
|
||
jmp loc_AB90
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A7CF:
|
||
inc word ptr dword_105C6
|
||
les bx, dword_105C6
|
||
mov al, es:[bx]
|
||
mov [bp+arg_0], al
|
||
cmp [bp+arg_0], 6Bh ; 'k'
|
||
jnz short loc_A7E7
|
||
inc word ptr dword_105C6
|
||
|
||
loc_A7E7:
|
||
push ss
|
||
lea ax, [bp+var_2]
|
||
push ax
|
||
call sub_A50A
|
||
push ss
|
||
lea ax, [bp+var_4]
|
||
push ax
|
||
call sub_A5D3
|
||
cmp byte_105CE, 0
|
||
jnz loc_AC1E ; default
|
||
cmp [bp+arg_0], 6Bh ; 'k'
|
||
jz short loc_A814
|
||
push [bp+var_2]
|
||
push [bp+var_4]
|
||
call snd_delay_until_measure
|
||
jmp loc_AB63
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A814:
|
||
push [bp+var_2]
|
||
push [bp+var_4]
|
||
call input_wait_for_ok_or_measure
|
||
jmp loc_AB63
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A822:
|
||
les bx, dword_105C6 ; jumptable 0000A67C case 118
|
||
cmp byte ptr es:[bx], 70h ; 'p'
|
||
jz short loc_A843
|
||
mov word_105D8, 1
|
||
push ss
|
||
lea ax, [bp+var_2]
|
||
push ax
|
||
call sub_A50A
|
||
mov ax, [bp+var_2]
|
||
mov word_105D4, ax
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A843:
|
||
inc word ptr dword_105C6
|
||
mov word_105D8, 0
|
||
push ss
|
||
lea ax, [bp+var_2]
|
||
push ax
|
||
call sub_A50A
|
||
graph_showpage byte ptr [bp+var_2]
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A85F:
|
||
mov word_105D8, 64h ; 'd' ; jumptable 0000A67C case 116
|
||
push ss
|
||
lea ax, [bp+var_2]
|
||
push ax
|
||
call sub_A50A
|
||
cmp byte_105CE, 0
|
||
jnz short loc_A87B
|
||
push 1
|
||
call frame_delay
|
||
|
||
loc_A87B:
|
||
mov ax, [bp+var_2]
|
||
mov PaletteTone, ax
|
||
call far ptr palette_show
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A889:
|
||
les bx, dword_105C6 ; jumptable 0000A67C case 102
|
||
mov al, es:[bx]
|
||
mov [bp+arg_0], al
|
||
cmp [bp+arg_0], 6Dh ; 'm'
|
||
jz short loc_A8D5
|
||
cmp [bp+arg_0], 69h ; 'i'
|
||
jz short loc_A8A7
|
||
cmp [bp+arg_0], 6Fh ; 'o'
|
||
jnz loc_AC1E ; default
|
||
|
||
loc_A8A7:
|
||
inc word ptr dword_105C6
|
||
mov word_105D8, 1
|
||
push ss
|
||
lea ax, [bp+var_2]
|
||
push ax
|
||
call sub_A50A
|
||
cmp [bp+arg_0], 69h ; 'i'
|
||
jnz short loc_A8CA
|
||
push [bp+var_2]
|
||
call palette_black_in
|
||
jmp loc_AB90
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A8CA:
|
||
push [bp+var_2]
|
||
call palette_black_out
|
||
jmp loc_AB90
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A8D5:
|
||
inc word ptr dword_105C6
|
||
mov word_105D8, 1
|
||
push ss
|
||
lea ax, [bp+var_2]
|
||
push ax
|
||
call sub_A50A
|
||
mov ax, [bp+var_2]
|
||
add ax, 200h
|
||
push ax
|
||
jmp loc_AB8B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A8F1:
|
||
les bx, dword_105C6 ; jumptable 0000A67C case 103
|
||
cmp byte ptr es:[bx], 61h ; 'a'
|
||
jz short loc_A945
|
||
mov word_105D8, 8
|
||
push ss
|
||
lea ax, [bp+var_2]
|
||
push ax
|
||
call sub_A50A
|
||
mov [bp+var_4], 0
|
||
jmp short loc_A933
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A910:
|
||
test byte ptr [bp+var_4], 1
|
||
jz short loc_A91A
|
||
push 4
|
||
jmp short loc_A91D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A91A:
|
||
push RES_Y - 4
|
||
|
||
loc_A91D:
|
||
call graph_scrollup
|
||
cmp byte_105CE, 0
|
||
jnz short loc_A930
|
||
push 1
|
||
call frame_delay
|
||
|
||
loc_A930:
|
||
inc [bp+var_4]
|
||
|
||
loc_A933:
|
||
mov ax, [bp+var_4]
|
||
cmp ax, [bp+var_2]
|
||
jle short loc_A910
|
||
call graph_scrollup pascal, 0
|
||
jmp loc_AB90
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A945:
|
||
inc word ptr dword_105C6
|
||
mov word_105D8, 0
|
||
push ss
|
||
lea ax, [bp+var_2]
|
||
push ax
|
||
call sub_A50A
|
||
graph_accesspage 1
|
||
push point_105D0.x
|
||
push point_105D0.y
|
||
mov ax, [bp+var_2]
|
||
dec ax
|
||
push ax
|
||
mov al, col_105D6
|
||
mov ah, 0
|
||
push ax
|
||
call graph_gaiji_putc
|
||
graph_accesspage 0
|
||
push point_105D0.x
|
||
push point_105D0.y
|
||
push [bp+var_2]
|
||
mov al, col_105D6
|
||
mov ah, 0
|
||
push ax
|
||
call graph_gaiji_putc
|
||
call sub_A5FC
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A997:
|
||
mov word_105D8, 0 ; jumptable 0000A67C case 107
|
||
push ss
|
||
lea ax, [bp+var_2]
|
||
push ax
|
||
call sub_A50A
|
||
cmp byte_105CE, 0
|
||
jnz loc_AC1E ; default
|
||
call input_wait_for_change pascal, 0
|
||
jmp loc_AB90
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A9B8:
|
||
graph_accesspage 1 ; jumptable 0000A67C case 64
|
||
call graph_clear
|
||
graph_accesspage 0
|
||
call graph_clear
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A9D1:
|
||
les bx, dword_105C6 ; jumptable 0000A67C case 112
|
||
mov al, es:[bx]
|
||
mov [bp+arg_0], al
|
||
inc word ptr dword_105C6
|
||
cmp [bp+arg_0], 3Dh ; '='
|
||
jz short loc_A9EB
|
||
cmp [bp+arg_0], 40h
|
||
jnz short loc_AA1B
|
||
|
||
loc_A9EB:
|
||
graph_accesspage 1
|
||
cmp [bp+arg_0], 3Dh ; '='
|
||
jnz short loc_A9FE
|
||
call pi_slot_palette_apply pascal, 0
|
||
|
||
loc_A9FE:
|
||
call pi_slot_put pascal, large 0, 0
|
||
call graph_copy_page pascal, 0
|
||
graph_accesspage 0
|
||
call sub_A36B
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AA1B:
|
||
cmp [bp+arg_0], 2Dh ; '-'
|
||
jnz short loc_AA32
|
||
freePISlotLarge 0
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AA32:
|
||
cmp [bp+arg_0], 70h ; 'p'
|
||
jnz short loc_AA42
|
||
call pi_slot_palette_apply pascal, 0
|
||
jmp loc_AB90
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AA42:
|
||
cmp [bp+arg_0], 2Ch ; ','
|
||
jz short loc_AA4F
|
||
dec word ptr dword_105C6
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AA4F:
|
||
mov [bp+var_2], 0
|
||
jmp short loc_AA84
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AA56:
|
||
les bx, dword_105C6
|
||
mov al, es:[bx]
|
||
mov [bp+arg_0], al
|
||
inc word ptr dword_105C6
|
||
mov ah, 0
|
||
mov bx, ax
|
||
test (__ctype + 1)[bx], _IS_CTL
|
||
jnz short loc_AA8A
|
||
cmp [bp+arg_0], 20h ; ' '
|
||
jz short loc_AA8A
|
||
lea bx, [bp+var_16]
|
||
add bx, [bp+var_2]
|
||
mov al, [bp+arg_0]
|
||
mov ss:[bx], al
|
||
inc [bp+var_2]
|
||
|
||
loc_AA84:
|
||
cmp [bp+var_2], 0Ch
|
||
jl short loc_AA56
|
||
|
||
loc_AA8A:
|
||
lea bx, [bp+var_16]
|
||
add bx, [bp+var_2]
|
||
mov byte ptr ss:[bx], 0
|
||
push 0
|
||
push ss
|
||
lea ax, [bp+var_16]
|
||
push ax
|
||
call pi_slot_load
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AAA3:
|
||
mov word_105D8, 4 ; jumptable 0000A67C case 61
|
||
les bx, dword_105C6
|
||
mov al, es:[bx]
|
||
mov [bp+arg_0], al
|
||
cmp [bp+arg_0], 3Dh ; '='
|
||
jz short loc_AAF8
|
||
push ss
|
||
lea ax, [bp+var_2]
|
||
push ax
|
||
call sub_A50A
|
||
graph_showpage 1
|
||
graph_accesspage 0
|
||
cmp [bp+var_2], 4
|
||
jge short loc_AAD5
|
||
jmp short loc_AB44
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AAD5:
|
||
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
|
||
call grcg_off
|
||
jmp short loc_AB54
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AAF8:
|
||
inc word ptr dword_105C6
|
||
push ss
|
||
lea ax, [bp+var_2]
|
||
push ax
|
||
call sub_A50A
|
||
mov word_105D8, 1
|
||
push ss
|
||
lea ax, [bp+var_4]
|
||
push ax
|
||
call sub_A5D3
|
||
xor si, si
|
||
jmp short loc_AB33
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AB16:
|
||
push 0A00040h
|
||
push [bp+var_2]
|
||
push si
|
||
call sub_A23C
|
||
cmp byte_105CE, 0
|
||
jnz short loc_AB32
|
||
push [bp+var_4]
|
||
call frame_delay
|
||
|
||
loc_AB32:
|
||
inc si
|
||
|
||
loc_AB33:
|
||
cmp si, 4
|
||
jl short loc_AB16
|
||
graph_showpage 1
|
||
graph_accesspage 0
|
||
|
||
loc_AB44:
|
||
call pi_slot_put_quarter pascal, (160 shl 16) + 64, 0, [bp+var_2]
|
||
|
||
loc_AB54:
|
||
graph_showpage 0
|
||
push 0A00040h
|
||
call sub_A1C7
|
||
|
||
loc_AB63:
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AB66:
|
||
les bx, dword_105C6 ; jumptable 0000A67C case 109
|
||
mov al, es:[bx]
|
||
mov [bp+arg_0], al
|
||
cmp [bp+arg_0], 24h ; '$'
|
||
jnz short loc_AB7F
|
||
inc word ptr dword_105C6
|
||
push (KAJA_SONG_STOP shl 8)
|
||
jmp short loc_AB8B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AB7F:
|
||
cmp [bp+arg_0], 2Ah ; '*'
|
||
jnz short loc_AB93
|
||
inc word ptr dword_105C6
|
||
|
||
loc_AB89:
|
||
push (KAJA_SONG_PLAY shl 8)
|
||
|
||
loc_AB8B:
|
||
call snd_kaja_interrupt
|
||
|
||
loc_AB90:
|
||
jmp loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AB93:
|
||
cmp [bp+arg_0], 2Ch ; ','
|
||
jnz loc_AC1E ; default
|
||
inc word ptr dword_105C6
|
||
mov [bp+var_2], 0
|
||
jmp short loc_ABD4
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ABA6:
|
||
les bx, dword_105C6
|
||
mov al, es:[bx]
|
||
mov [bp+arg_0], al
|
||
inc word ptr dword_105C6
|
||
mov ah, 0
|
||
mov bx, ax
|
||
test (__ctype + 1)[bx], _IS_CTL
|
||
jnz short loc_ABDA
|
||
cmp [bp+arg_0], 20h ; ' '
|
||
jz short loc_ABDA
|
||
lea bx, [bp+var_16]
|
||
add bx, [bp+var_2]
|
||
mov al, [bp+arg_0]
|
||
mov ss:[bx], al
|
||
inc [bp+var_2]
|
||
|
||
loc_ABD4:
|
||
cmp [bp+var_2], 0Ch
|
||
jl short loc_ABA6
|
||
|
||
loc_ABDA:
|
||
lea bx, [bp+var_16]
|
||
add bx, [bp+var_2]
|
||
mov byte ptr ss:[bx], 0
|
||
kajacall KAJA_SONG_STOP
|
||
push SND_LOAD_SONG
|
||
push ss
|
||
lea ax, [bp+var_16]
|
||
push ax
|
||
call snd_load
|
||
add sp, 6
|
||
jmp short loc_AB89
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ABFE:
|
||
push ss ; jumptable 0000A67C case 101
|
||
lea ax, [bp+var_2]
|
||
push ax
|
||
call sub_A50A
|
||
call snd_se_reset
|
||
call snd_se_play pascal, [bp+var_2]
|
||
call snd_se_update
|
||
jmp short loc_AC1E ; default
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AC1A:
|
||
mov al, 0FFh ; jumptable 0000A67C case 36
|
||
jmp short loc_AC20
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AC1E:
|
||
mov al, 0 ; default
|
||
|
||
loc_AC20:
|
||
pop si
|
||
leave
|
||
retn 2
|
||
sub_A64D endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
db 0
|
||
off_AC26 dw offset loc_A71F
|
||
dw offset loc_A727
|
||
dw offset loc_A72F
|
||
dw offset loc_A737
|
||
word_AC2E 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_AC1A ; jump table for switch statement
|
||
dw offset loc_AAA3
|
||
dw offset loc_A9B8
|
||
dw offset loc_A700
|
||
dw offset loc_A6E9
|
||
dw offset loc_ABFE
|
||
dw offset loc_A889
|
||
dw offset loc_A8F1
|
||
dw offset loc_A997
|
||
dw offset loc_AB66
|
||
dw offset loc_A680
|
||
dw offset loc_A9D1
|
||
dw offset loc_A695
|
||
dw offset loc_A85F
|
||
dw offset loc_A822
|
||
dw offset loc_A73F
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_AC6E proc near
|
||
|
||
var_6 = dword ptr -6
|
||
var_2 = byte ptr -2
|
||
var_1 = byte ptr -1
|
||
|
||
enter 6, 0
|
||
push si
|
||
mov word ptr [bp+var_6+2], ds
|
||
mov word ptr [bp+var_6], offset asc_EFC2
|
||
mov point_105D0.x, 80
|
||
mov point_105D0.y, 320
|
||
mov word_105D4, 1
|
||
mov col_105D6, 0Fh
|
||
mov byte_105D7, 20h ; ' '
|
||
mov [bp+var_2], 0
|
||
call sub_A36B
|
||
mov byte_105CE, 0
|
||
|
||
loc_ACA3:
|
||
call input_mode_interface
|
||
test _input_sp.hi, high INPUT_CANCEL
|
||
jz short loc_ACB6
|
||
mov byte_105CE, 1
|
||
jmp short loc_ACBB
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ACB6:
|
||
mov byte_105CE, 0
|
||
|
||
loc_ACBB:
|
||
les bx, dword_105C6
|
||
mov al, es:[bx]
|
||
mov [bp+var_1], al
|
||
inc word ptr dword_105C6
|
||
mov ah, 0
|
||
mov bx, ax
|
||
test (__ctype + 1)[bx], _IS_CTL
|
||
jnz short loc_ACA3
|
||
cmp [bp+var_1], 20h ; ' '
|
||
jz short loc_ACA3
|
||
cmp [bp+var_1], 5Ch
|
||
jnz short loc_ACFB
|
||
les bx, dword_105C6
|
||
mov al, es:[bx]
|
||
mov [bp+var_1], al
|
||
inc word ptr dword_105C6
|
||
push word ptr [bp+var_1]
|
||
call sub_A64D
|
||
cmp al, 0FFh
|
||
jnz short loc_ACA3
|
||
jmp loc_ADA0
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ACFB:
|
||
les bx, [bp+var_6]
|
||
mov al, [bp+var_1]
|
||
mov es:[bx], al
|
||
les bx, dword_105C6
|
||
mov al, es:[bx]
|
||
mov [bp+var_1], al
|
||
les bx, [bp+var_6]
|
||
mov es:[bx+1], al
|
||
inc word ptr dword_105C6
|
||
graph_accesspage 1
|
||
push point_105D0.x
|
||
push point_105D0.y
|
||
mov al, col_105D6
|
||
or al, byte_105D7
|
||
mov ah, 0
|
||
push ax
|
||
push word ptr [bp+var_6+2]
|
||
push bx
|
||
call graph_putsa_fx
|
||
graph_accesspage 0
|
||
push point_105D0.x
|
||
push point_105D0.y
|
||
mov al, col_105D6
|
||
or al, byte_105D7
|
||
mov ah, 0
|
||
push ax
|
||
pushd [bp+var_6]
|
||
call graph_putsa_fx
|
||
call sub_A5FC
|
||
cmp byte_105CE, 0
|
||
jnz loc_ACA3
|
||
cmp _input_sp, INPUT_NONE
|
||
jnz short loc_AD7A
|
||
push word_105D4
|
||
call frame_delay
|
||
jmp loc_ACA3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AD7A:
|
||
mov ax, word_105D4
|
||
mov bx, 3
|
||
cwd
|
||
idiv bx
|
||
mov si, ax
|
||
test [bp+var_2], 1
|
||
jnz short loc_AD8F
|
||
or si, si
|
||
jz short loc_AD9A
|
||
|
||
loc_AD8F:
|
||
or si, si
|
||
jnz short loc_AD94
|
||
inc si
|
||
|
||
loc_AD94:
|
||
push si
|
||
call frame_delay
|
||
|
||
loc_AD9A:
|
||
inc [bp+var_2]
|
||
jmp loc_ACA3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ADA0:
|
||
call sub_A45B
|
||
call sub_A43C
|
||
pop si
|
||
leave
|
||
retn
|
||
sub_AC6E endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_ADA9 proc near
|
||
|
||
var_1 = byte ptr -1
|
||
|
||
enter 2, 0
|
||
push si
|
||
mov si, 21EEh
|
||
xor dx, dx
|
||
jmp short loc_ADD1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ADB5:
|
||
mov al, [si+1]
|
||
mov [bp+var_1], al
|
||
mov al, byte_106AB
|
||
ror [bp+var_1], 3
|
||
xor [bp+var_1], al
|
||
mov al, byte_106AA
|
||
add al, [bp+var_1]
|
||
add al, [si]
|
||
mov [si], al
|
||
inc dx
|
||
inc si
|
||
|
||
loc_ADD1:
|
||
cmp dx, 0CBh
|
||
jl short loc_ADB5
|
||
mov al, byte_106AA
|
||
add al, byte_106AB
|
||
add al, [si]
|
||
mov [si], al
|
||
pop si
|
||
leave
|
||
retn
|
||
sub_ADA9 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_ADE5 proc near
|
||
|
||
var_1 = byte ptr -1
|
||
|
||
enter 2, 0
|
||
push si
|
||
push di
|
||
mov [bp+var_1], 29h ; ')'
|
||
xor si, si
|
||
jmp short loc_AE26
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ADF3:
|
||
xor di, di
|
||
jmp short loc_AE02
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ADF7:
|
||
mov bx, si
|
||
shl bx, 3
|
||
mov byte ptr [bx+di+21F0h], 2Ah ; '*'
|
||
inc di
|
||
|
||
loc_AE02:
|
||
cmp di, 8
|
||
jl short loc_ADF7
|
||
xor di, di
|
||
jmp short loc_AE16
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AE0B:
|
||
mov bx, si
|
||
imul bx, 0Ah
|
||
mov byte ptr [bx+di+2242h], 20h ; ' '
|
||
inc di
|
||
|
||
loc_AE16:
|
||
cmp di, 0Ah
|
||
jl short loc_AE0B
|
||
mov byte ptr [si+22A6h], 0
|
||
mov byte ptr [si+22B0h], 21h ; '!'
|
||
inc si
|
||
|
||
loc_AE26:
|
||
cmp si, 0Ah
|
||
jl short loc_ADF3
|
||
mov byte_10636, 21h ; '!'
|
||
mov di, 1
|
||
jmp short loc_AE45
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AE35:
|
||
mov bx, di
|
||
imul bx, 0Ah
|
||
mov al, [bp+var_1]
|
||
mov [bx+2245h], al
|
||
inc di
|
||
dec [bp+var_1]
|
||
|
||
loc_AE45:
|
||
cmp di, 0Ah
|
||
jl short loc_AE35
|
||
mov byte_10630, 12h
|
||
xor si, si
|
||
jmp short loc_AE5B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AE53:
|
||
push si
|
||
call sub_AEF0
|
||
call sub_ADA9
|
||
inc si
|
||
|
||
loc_AE5B:
|
||
cmp si, 4
|
||
jl short loc_AE53
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn
|
||
sub_ADE5 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_AE64 proc near
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
xor cx, cx
|
||
mov si, 21F0h
|
||
xor dx, dx
|
||
jmp short loc_AE79
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AE71:
|
||
mov al, [si]
|
||
mov ah, 0
|
||
add cx, ax
|
||
inc dx
|
||
inc si
|
||
|
||
loc_AE79:
|
||
cmp dx, 0CCh
|
||
jl short loc_AE71
|
||
cmp word_105DE, cx
|
||
jz short loc_AE89
|
||
mov al, 1
|
||
jmp short loc_AE8B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AE89:
|
||
mov al, 0
|
||
|
||
loc_AE8B:
|
||
pop si
|
||
pop bp
|
||
retn
|
||
sub_AE64 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_AE8E proc near
|
||
|
||
arg_0 = word ptr 4
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push ds
|
||
push word_ED66
|
||
call file_exist
|
||
or ax, ax
|
||
jnz short loc_AEB0
|
||
push ds
|
||
push word_ED66
|
||
call file_create
|
||
call file_close
|
||
jmp short loc_AEE9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AEB0:
|
||
push ds
|
||
push word_ED66
|
||
call file_ropen
|
||
mov ax, [bp+arg_0]
|
||
imul ax, 0CEh
|
||
movzx eax, ax
|
||
push eax
|
||
push 0
|
||
call file_seek
|
||
push ds
|
||
push offset word_105DE
|
||
push 0CEh
|
||
call file_read
|
||
call file_close
|
||
call sub_ADA9
|
||
call sub_AE64
|
||
or al, al
|
||
jz short loc_AEEC
|
||
|
||
loc_AEE9:
|
||
call sub_ADE5
|
||
|
||
loc_AEEC:
|
||
pop bp
|
||
retn 2
|
||
sub_AE8E endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_AEF0 proc near
|
||
|
||
var_4 = word ptr -4
|
||
var_1 = byte ptr -1
|
||
arg_0 = word ptr 4
|
||
|
||
enter 4, 0
|
||
push si
|
||
push di
|
||
mov [bp+var_4], 0
|
||
call IRand
|
||
mov byte_106AA, al
|
||
call IRand
|
||
mov byte_106AB, al
|
||
call IRand
|
||
mov byte_10631, al
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.story_stage], STAGE_ALL
|
||
jnz short loc_AF2A
|
||
cmp es:[bx+resident_t.rem_credits], 3
|
||
jnz short loc_AF2A
|
||
mov byte_10630, 63h ; 'c'
|
||
|
||
loc_AF2A:
|
||
mov si, 21F0h
|
||
xor di, di
|
||
jmp short loc_AF3A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AF31:
|
||
mov al, [si]
|
||
mov ah, 0
|
||
add [bp+var_4], ax
|
||
inc di
|
||
inc si
|
||
|
||
loc_AF3A:
|
||
cmp di, 0CCh
|
||
jl short loc_AF31
|
||
mov ax, [bp+var_4]
|
||
mov word_105DE, ax
|
||
mov si, 22BAh
|
||
dec si
|
||
mov al, byte_106AB
|
||
mov [bp+var_1], al
|
||
mov di, 0CBh
|
||
jmp short loc_AF73
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AF55:
|
||
mov al, [si]
|
||
mov dl, byte_106AA
|
||
add dl, [bp+var_1]
|
||
sub al, dl
|
||
mov [si], al
|
||
mov al, [si]
|
||
mov [bp+var_1], al
|
||
mov al, byte_106AB
|
||
ror [bp+var_1], 3
|
||
xor [bp+var_1], al
|
||
dec di
|
||
dec si
|
||
|
||
loc_AF73:
|
||
or di, di
|
||
jge short loc_AF55
|
||
push ds
|
||
push word_ED66
|
||
call file_append
|
||
mov ax, [bp+arg_0]
|
||
imul ax, 0CEh
|
||
movzx eax, ax
|
||
push eax
|
||
push 0
|
||
call file_seek
|
||
push ds
|
||
push offset word_105DE
|
||
push 0CEh
|
||
call file_write
|
||
call file_close
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn 2
|
||
sub_AEF0 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_AFAC proc near
|
||
push bp
|
||
mov bp, sp
|
||
mov PaletteTone, 0
|
||
call far ptr palette_show
|
||
graph_accesspage 0
|
||
graph_showpage al
|
||
call pi_slot_load pascal, 0, ds, offset aRegib_pi
|
||
call pi_slot_palette_apply pascal, 0
|
||
call pi_slot_put pascal, large 0, 0
|
||
freePISlotLarge 0
|
||
les bx, _resident
|
||
mov al, es:[bx+resident_t.rank]
|
||
mov bx, word_ED68
|
||
add [bx+3], al
|
||
call cdg_load_single_forcealpha pascal, 0, ds, bx, 0
|
||
push (320 shl 16) or 312
|
||
push 0
|
||
call cdg_put
|
||
call cdg_free pascal, 0
|
||
call super_entry_bfnt pascal, ds, offset aRegi2_bft ; "regi2.bft"
|
||
call super_entry_bfnt pascal, ds, offset aRegi1_bft ; "regi1.bft"
|
||
call graph_copy_page pascal, 1
|
||
graph_accesspage 0
|
||
pop bp
|
||
retn
|
||
sub_AFAC endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B03D proc near
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
xor si, si
|
||
jmp short loc_B091
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B046:
|
||
mov cx, (SCORE_DIGITS - 1)
|
||
jmp short loc_B08C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B04B:
|
||
les bx, _resident
|
||
add bx, cx
|
||
mov al, es:[bx+resident_t.score_last]
|
||
mov ah, 0
|
||
add ax, 20h ; ' '
|
||
mov bx, si
|
||
imul bx, 0Ah
|
||
add bx, cx
|
||
mov dl, [bx+2243h]
|
||
mov dh, 0
|
||
cmp ax, dx
|
||
jg short loc_B0A1
|
||
les bx, _resident
|
||
add bx, cx
|
||
mov al, es:[bx+resident_t.score_last]
|
||
mov ah, 0
|
||
add ax, 20h ; ' '
|
||
mov bx, si
|
||
imul bx, 0Ah
|
||
add bx, cx
|
||
mov dl, [bx+2243h]
|
||
mov dh, 0
|
||
cmp ax, dx
|
||
jl short loc_B090
|
||
dec cx
|
||
|
||
loc_B08C:
|
||
or cx, cx
|
||
jge short loc_B04B
|
||
|
||
loc_B090:
|
||
inc si
|
||
|
||
loc_B091:
|
||
cmp si, 0Ah
|
||
jl short loc_B046
|
||
cmp si, 0Ah
|
||
jnz short loc_B0A1
|
||
mov ax, 0FFFFh
|
||
jmp loc_B183
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B0A1:
|
||
cmp si, 9
|
||
jge short loc_B100
|
||
mov di, 8
|
||
jmp short loc_B0FC
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B0AB:
|
||
xor cx, cx
|
||
jmp short loc_B0C6
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B0AF:
|
||
mov bx, di
|
||
shl bx, 3
|
||
add bx, cx
|
||
mov al, [bx+21F0h]
|
||
mov bx, di
|
||
shl bx, 3
|
||
add bx, cx
|
||
mov [bx+21F8h], al
|
||
inc cx
|
||
|
||
loc_B0C6:
|
||
cmp cx, 8
|
||
jl short loc_B0AF
|
||
xor cx, cx
|
||
jmp short loc_B0E6
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B0CF:
|
||
mov bx, di
|
||
imul bx, 0Ah
|
||
add bx, cx
|
||
mov al, [bx+2242h]
|
||
mov bx, di
|
||
imul bx, 0Ah
|
||
add bx, cx
|
||
mov [bx+224Ch], al
|
||
inc cx
|
||
|
||
loc_B0E6:
|
||
cmp cx, 0Ah
|
||
jl short loc_B0CF
|
||
mov al, [di+22B0h]
|
||
mov [di+22B1h], al
|
||
mov al, [di+22A6h]
|
||
mov [di+22A7h], al
|
||
dec di
|
||
|
||
loc_B0FC:
|
||
cmp di, si
|
||
jge short loc_B0AB
|
||
|
||
loc_B100:
|
||
xor cx, cx
|
||
jmp short loc_B111
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B104:
|
||
mov bx, si
|
||
shl bx, 3
|
||
add bx, cx
|
||
mov byte ptr [bx+21F0h], 0Eh
|
||
inc cx
|
||
|
||
loc_B111:
|
||
cmp cx, 8
|
||
jl short loc_B104
|
||
mov cx, 1
|
||
jmp short loc_B133
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B11B:
|
||
les bx, _resident
|
||
add bx, cx
|
||
mov al, es:[bx+resident_t.pid_winner]
|
||
add al, 20h ; ' '
|
||
mov bx, si
|
||
imul bx, 0Ah
|
||
add bx, cx
|
||
mov [bx+2242h], al
|
||
inc cx
|
||
|
||
loc_B133:
|
||
cmp cx, 9
|
||
jl short loc_B11B
|
||
les bx, _resident
|
||
mov al, 23h ; '#'
|
||
sub al, es:[bx+resident_t.rem_credits]
|
||
mov bx, si
|
||
imul bx, 0Ah
|
||
mov [bx+2242h], al
|
||
mov bx, word ptr _resident
|
||
cmp es:[bx+resident_t.story_stage], STAGE_ALL
|
||
jnz short loc_B15D
|
||
mov byte ptr [si+22B0h], 30h ; '0'
|
||
jmp short loc_B16B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B15D:
|
||
les bx, _resident
|
||
mov al, es:[bx+resident_t.story_stage]
|
||
add al, 20h ; ' '
|
||
mov [si+22B0h], al
|
||
|
||
loc_B16B:
|
||
les bx, _resident
|
||
mov al, es:[bx+resident_t.RESIDENT_playchar_paletted][0]
|
||
mov ah, 0
|
||
dec ax
|
||
cwd
|
||
sub ax, dx
|
||
sar ax, 1
|
||
inc al
|
||
mov [si+22A6h], al
|
||
mov ax, si
|
||
|
||
loc_B183:
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retn
|
||
sub_B03D endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B187 proc near
|
||
|
||
@@patnum = word ptr -2
|
||
|
||
enter 2, 0
|
||
push si
|
||
push di
|
||
mov [bp+@@patnum], 0
|
||
mov di, 320
|
||
jmp short loc_B1B5
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B197:
|
||
mov si, 64
|
||
jmp short loc_B1AC
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B19C:
|
||
call super_put pascal, si, di, [bp+@@patnum]
|
||
add si, 32
|
||
inc [bp+@@patnum]
|
||
|
||
loc_B1AC:
|
||
cmp si, 576
|
||
jl short loc_B19C
|
||
add di, 24
|
||
|
||
loc_B1B5:
|
||
cmp di, 368
|
||
jle short loc_B197
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn
|
||
sub_B187 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B1BF proc near
|
||
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 4
|
||
arg_2 = word ptr 6
|
||
|
||
enter 4, 0
|
||
push si
|
||
mov si, [bp+arg_2]
|
||
mov ax, si
|
||
mov bx, 10h
|
||
cwd
|
||
idiv bx
|
||
shl dx, 5
|
||
add dx, 40h
|
||
mov [bp+var_2], dx
|
||
mov ax, si
|
||
cwd
|
||
idiv bx
|
||
imul ax, 18h
|
||
add ax, 140h
|
||
mov [bp+var_4], ax
|
||
push [bp+var_2]
|
||
push ax
|
||
push si
|
||
push [bp+arg_0]
|
||
call sub_B2AD
|
||
pop si
|
||
leave
|
||
retn 4
|
||
sub_B1BF endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B1F6 proc near
|
||
|
||
var_14 = dword ptr -14h
|
||
var_10 = dword ptr -10h
|
||
var_C = dword ptr -0Ch
|
||
var_8 = dword ptr -8
|
||
var_4 = dword ptr -4
|
||
arg_0 = word ptr 4
|
||
arg_2 = word ptr 6
|
||
|
||
enter 14h, 0
|
||
push si
|
||
mov si, [bp+arg_0]
|
||
mov ax, [bp+arg_2]
|
||
sar ax, 3
|
||
mov dx, si
|
||
shl dx, 6
|
||
add ax, dx
|
||
mov dx, si
|
||
shl dx, 4
|
||
add ax, dx
|
||
mov cx, ax
|
||
mov [bp+var_4], 0
|
||
jmp loc_B29F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B21F:
|
||
graph_accesspage 1
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, cx
|
||
mov eax, es:[bx]
|
||
mov [bp+var_14], eax
|
||
les bx, _VRAM_PLANE_R
|
||
add bx, cx
|
||
mov eax, es:[bx]
|
||
mov [bp+var_10], eax
|
||
les bx, _VRAM_PLANE_G
|
||
add bx, cx
|
||
mov eax, es:[bx]
|
||
mov [bp+var_C], eax
|
||
les bx, _VRAM_PLANE_E
|
||
add bx, cx
|
||
mov eax, es:[bx]
|
||
mov [bp+var_8], eax
|
||
mov al, 0
|
||
out dx, al
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, cx
|
||
mov eax, [bp+var_14]
|
||
mov es:[bx], eax
|
||
les bx, _VRAM_PLANE_R
|
||
add bx, cx
|
||
mov eax, [bp+var_10]
|
||
mov es:[bx], eax
|
||
les bx, _VRAM_PLANE_G
|
||
add bx, cx
|
||
mov eax, [bp+var_C]
|
||
mov es:[bx], eax
|
||
les bx, _VRAM_PLANE_E
|
||
add bx, cx
|
||
mov eax, [bp+var_8]
|
||
mov es:[bx], eax
|
||
add cx, 50h ; 'P'
|
||
inc [bp+var_4]
|
||
|
||
loc_B29F:
|
||
cmp [bp+var_4], 20h ; ' '
|
||
jb loc_B21F
|
||
pop si
|
||
leave
|
||
retn 4
|
||
sub_B1F6 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B2AD proc near
|
||
|
||
arg_0 = word ptr 4
|
||
arg_2 = word ptr 6
|
||
@@y = word ptr 8
|
||
arg_6 = word ptr 0Ah
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
mov di, [bp+arg_6]
|
||
mov si, [bp+arg_2]
|
||
cmp [bp+arg_0], 0
|
||
jz short loc_B2C1
|
||
add si, 49
|
||
|
||
loc_B2C1:
|
||
call super_put pascal, di, [bp+@@y], si
|
||
mov ax, [bp+arg_2]
|
||
mov bx, 16
|
||
cwd
|
||
idiv bx
|
||
cmp dx, 14
|
||
jnz short loc_B2E9
|
||
lea ax, [di+32]
|
||
push ax
|
||
push [bp+@@y]
|
||
lea ax, [si+1]
|
||
push ax
|
||
call super_put
|
||
|
||
loc_B2E9:
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retn 8
|
||
sub_B2AD endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B2EF proc near
|
||
|
||
var_7 = byte ptr -7
|
||
var_6 = word ptr -6
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 4
|
||
arg_2 = word ptr 6
|
||
arg_4 = word ptr 8
|
||
|
||
enter 8, 0
|
||
push si
|
||
push di
|
||
mov si, [bp+arg_4]
|
||
mov di, [bp+arg_0]
|
||
cmp word_106AC, di
|
||
jnz short loc_B306
|
||
mov ax, 1
|
||
jmp short loc_B308
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B306:
|
||
xor ax, ax
|
||
|
||
loc_B308:
|
||
mov [bp+var_6], ax
|
||
cmp word_106AC, di
|
||
jnz short loc_B315
|
||
mov al, 0Fh
|
||
jmp short loc_B317
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B315:
|
||
mov al, 4
|
||
|
||
loc_B317:
|
||
mov [bp+var_7], al
|
||
cmp word_106AC, 0FFFFh
|
||
jnz short loc_B32A
|
||
mov [bp+var_6], 1
|
||
mov [bp+var_7], 0Fh
|
||
|
||
loc_B32A:
|
||
cmp di, 9
|
||
jz short loc_B339
|
||
push si
|
||
push [bp+arg_2]
|
||
lea ax, [di+21h]
|
||
push ax
|
||
jmp short loc_B351
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B339:
|
||
lea ax, [si-8]
|
||
push ax
|
||
push [bp+arg_2]
|
||
push 21h ; '!'
|
||
push [bp+var_6]
|
||
call sub_B2AD
|
||
lea ax, [si+8]
|
||
push ax
|
||
push [bp+arg_2]
|
||
push 20h ; ' '
|
||
|
||
loc_B351:
|
||
push [bp+var_6]
|
||
call sub_B2AD
|
||
add si, 30h ; '0'
|
||
mov [bp+var_2], 7
|
||
jmp short loc_B38F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B361:
|
||
mov bx, di
|
||
shl bx, 3
|
||
add bx, [bp+var_2]
|
||
cmp byte ptr [bx+21F0h], 0Eh
|
||
jz short loc_B389
|
||
push si
|
||
push [bp+arg_2]
|
||
mov bx, di
|
||
shl bx, 3
|
||
add bx, [bp+var_2]
|
||
mov al, [bx+21F0h]
|
||
mov ah, 0
|
||
push ax
|
||
push [bp+var_6]
|
||
call sub_B2AD
|
||
|
||
loc_B389:
|
||
dec [bp+var_2]
|
||
add si, 18h
|
||
|
||
loc_B38F:
|
||
cmp [bp+var_2], 0
|
||
jge short loc_B361
|
||
add si, 10h
|
||
mov [bp+var_4], 20h ; ' '
|
||
mov [bp+var_2], 9
|
||
jmp short loc_B3E0
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B3A4:
|
||
cmp [bp+var_4], 20h ; ' '
|
||
jnz short loc_B3BB
|
||
mov bx, di
|
||
imul bx, 0Ah
|
||
add bx, [bp+var_2]
|
||
mov al, [bx+2242h]
|
||
mov ah, 0
|
||
mov [bp+var_4], ax
|
||
|
||
loc_B3BB:
|
||
cmp [bp+var_4], 20h ; ' '
|
||
jz short loc_B3DA
|
||
push si
|
||
push [bp+arg_2]
|
||
mov bx, di
|
||
imul bx, 0Ah
|
||
add bx, [bp+var_2]
|
||
mov al, [bx+2242h]
|
||
mov ah, 0
|
||
push ax
|
||
push [bp+var_6]
|
||
call sub_B2AD
|
||
|
||
loc_B3DA:
|
||
dec [bp+var_2]
|
||
add si, 10h
|
||
|
||
loc_B3E0:
|
||
cmp [bp+var_2], 0
|
||
jge short loc_B3A4
|
||
add si, 10h
|
||
push si
|
||
mov ax, [bp+arg_2]
|
||
add ax, 8
|
||
push ax
|
||
mov al, [bp+var_7]
|
||
mov ah, 0
|
||
or ax, 20h
|
||
push ax
|
||
mov al, [di+22A6h]
|
||
mov ah, 0
|
||
shl ax, 2
|
||
mov bx, ax
|
||
pushd aSCORE_PLAYCHARS[bx]
|
||
call graph_putsa_fx
|
||
add si, 70h ; 'p'
|
||
push si
|
||
push [bp+arg_2]
|
||
mov al, [di+22B0h]
|
||
mov ah, 0
|
||
push ax
|
||
push [bp+var_6]
|
||
call sub_B2AD
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn 6
|
||
sub_B2EF endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B429 proc near
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
call graph_copy_page pascal, 0
|
||
xor si, si
|
||
mov di, 68h ; 'h'
|
||
jmp short loc_B447
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B43C:
|
||
push 18h
|
||
push di
|
||
push si
|
||
call sub_B2EF
|
||
inc si
|
||
add di, 14h
|
||
|
||
loc_B447:
|
||
cmp si, 0Ah
|
||
jl short loc_B43C
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retn
|
||
sub_B429 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B450 proc near
|
||
|
||
arg_0 = word ptr 4
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
mov si, [bp+arg_0]
|
||
push 18h
|
||
mov ax, si
|
||
imul ax, 14h
|
||
add ax, 68h ; 'h'
|
||
push ax
|
||
push si
|
||
call sub_B2EF
|
||
pop si
|
||
pop bp
|
||
retn 2
|
||
sub_B450 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B46B proc near
|
||
|
||
var_F = byte ptr -0Fh
|
||
var_E = byte ptr -0Eh
|
||
var_D = byte ptr -0Dh
|
||
var_C = byte ptr -0Ch
|
||
var_B = byte ptr -0Bh
|
||
var_A = word ptr -0Ah
|
||
var_8 = word ptr -8
|
||
var_6 = word ptr -6
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
|
||
enter 10h, 0
|
||
push si
|
||
mov [bp+var_2], 0
|
||
lea ax, [bp+var_A]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset unk_ED6A
|
||
mov cx, 8
|
||
call SCOPY@
|
||
mov [bp+var_B], 0
|
||
mov [bp+var_C], 1
|
||
mov [bp+var_D], 0
|
||
mov [bp+var_E], 7
|
||
mov [bp+var_F], 0
|
||
mov ax, word_106AC
|
||
imul ax, 14h
|
||
add ax, 68h ; 'h'
|
||
mov si, ax
|
||
jmp loc_B743
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B4A8:
|
||
call input_mode_interface
|
||
test _input_sp.lo, low INPUT_UP
|
||
jz short loc_B4F2
|
||
cmp [bp+var_A], 0
|
||
jz short loc_B4CD
|
||
cmp [bp+var_A], 1Eh
|
||
jl short loc_B4ED
|
||
mov ax, [bp+var_A]
|
||
mov bx, 4
|
||
cwd
|
||
idiv bx
|
||
or dx, dx
|
||
jnz short loc_B4ED
|
||
|
||
loc_B4CD:
|
||
cmp [bp+var_2], 2Dh ; '-'
|
||
jz short loc_B4ED
|
||
push [bp+var_2]
|
||
push 0
|
||
call sub_B1BF
|
||
sub [bp+var_2], 10h
|
||
cmp [bp+var_2], 0
|
||
jge short loc_B4E9
|
||
add [bp+var_2], 30h ; '0'
|
||
|
||
loc_B4E9:
|
||
mov [bp+var_C], 1
|
||
|
||
loc_B4ED:
|
||
inc [bp+var_A]
|
||
jmp short loc_B4F7
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B4F2:
|
||
mov [bp+var_A], 0
|
||
|
||
loc_B4F7:
|
||
test _input_sp.lo, low INPUT_DOWN
|
||
jz short loc_B53C
|
||
cmp [bp+var_8], 0
|
||
jz short loc_B517
|
||
cmp [bp+var_8], 1Eh
|
||
jl short loc_B537
|
||
mov ax, [bp+var_8]
|
||
mov bx, 4
|
||
cwd
|
||
idiv bx
|
||
or dx, dx
|
||
jnz short loc_B537
|
||
|
||
loc_B517:
|
||
cmp [bp+var_2], 2Dh ; '-'
|
||
jz short loc_B537
|
||
push [bp+var_2]
|
||
push 0
|
||
call sub_B1BF
|
||
add [bp+var_2], 10h
|
||
cmp [bp+var_2], 30h ; '0'
|
||
jl short loc_B533
|
||
sub [bp+var_2], 30h ; '0'
|
||
|
||
loc_B533:
|
||
mov [bp+var_C], 1
|
||
|
||
loc_B537:
|
||
inc [bp+var_8]
|
||
jmp short loc_B541
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B53C:
|
||
mov [bp+var_8], 0
|
||
|
||
loc_B541:
|
||
test _input_sp.lo, low INPUT_LEFT
|
||
jz short loc_B59A
|
||
cmp [bp+var_6], 0
|
||
jz short loc_B561
|
||
cmp [bp+var_6], 1Eh
|
||
jl short loc_B595
|
||
mov ax, [bp+var_6]
|
||
mov bx, 4
|
||
cwd
|
||
idiv bx
|
||
or dx, dx
|
||
jnz short loc_B595
|
||
|
||
loc_B561:
|
||
push [bp+var_2]
|
||
push 0
|
||
call sub_B1BF
|
||
mov ax, [bp+var_2]
|
||
mov bx, 10h
|
||
cwd
|
||
idiv bx
|
||
or dx, dx
|
||
jnz short loc_B57C
|
||
add [bp+var_2], 0Eh
|
||
jmp short loc_B591
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B57C:
|
||
cmp [bp+var_2], 1Eh
|
||
jz short loc_B588
|
||
cmp [bp+var_2], 0Eh
|
||
jnz short loc_B58E
|
||
|
||
loc_B588:
|
||
sub [bp+var_2], 2
|
||
jmp short loc_B591
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B58E:
|
||
dec [bp+var_2]
|
||
|
||
loc_B591:
|
||
mov [bp+var_C], 1
|
||
|
||
loc_B595:
|
||
inc [bp+var_6]
|
||
jmp short loc_B59F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B59A:
|
||
mov [bp+var_6], 0
|
||
|
||
loc_B59F:
|
||
test _input_sp.lo, low INPUT_RIGHT
|
||
jz short loc_B5F9
|
||
cmp [bp+var_4], 0
|
||
jz short loc_B5BF
|
||
cmp [bp+var_4], 1Eh
|
||
jl short loc_B5F4
|
||
mov ax, [bp+var_4]
|
||
mov bx, 4
|
||
cwd
|
||
idiv bx
|
||
or dx, dx
|
||
jnz short loc_B5F4
|
||
|
||
loc_B5BF:
|
||
push [bp+var_2]
|
||
push 0
|
||
call sub_B1BF
|
||
mov ax, [bp+var_2]
|
||
mov bx, 10h
|
||
cwd
|
||
idiv bx
|
||
cmp dx, 0Eh
|
||
jnz short loc_B5DB
|
||
sub [bp+var_2], 0Eh
|
||
jmp short loc_B5F0
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B5DB:
|
||
cmp [bp+var_2], 0Ch
|
||
jz short loc_B5E7
|
||
cmp [bp+var_2], 1Ch
|
||
jnz short loc_B5ED
|
||
|
||
loc_B5E7:
|
||
add [bp+var_2], 2
|
||
jmp short loc_B5F0
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B5ED:
|
||
inc [bp+var_2]
|
||
|
||
loc_B5F0:
|
||
mov [bp+var_C], 1
|
||
|
||
loc_B5F4:
|
||
inc [bp+var_4]
|
||
jmp short loc_B5FE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B5F9:
|
||
mov [bp+var_4], 0
|
||
|
||
loc_B5FE:
|
||
test _input_sp.hi, high INPUT_OK
|
||
jnz short loc_B60C
|
||
test _input_sp.lo, low INPUT_SHOT
|
||
jz short loc_B683
|
||
|
||
loc_B60C:
|
||
cmp [bp+var_D], 0
|
||
jnz short loc_B67D
|
||
cmp [bp+var_2], 1Eh
|
||
jnz short loc_B64B
|
||
mov al, [bp+var_E]
|
||
mov ah, 0
|
||
mov dx, 7
|
||
sub dx, ax
|
||
imul dx, 18h
|
||
add dx, 48h ; 'H'
|
||
push dx
|
||
push si
|
||
call sub_B1F6
|
||
mov bx, word_106AC
|
||
shl bx, 3
|
||
mov al, [bp+var_E]
|
||
mov ah, 0
|
||
add bx, ax
|
||
mov byte ptr [bx+21F0h], 0Eh
|
||
cmp [bp+var_E], 7
|
||
jnb short loc_B679
|
||
inc [bp+var_E]
|
||
jmp short loc_B679
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B64B:
|
||
cmp [bp+var_2], 2Eh ; '.'
|
||
jnz short loc_B657
|
||
mov [bp+var_B], 1
|
||
jmp short loc_B679
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B657:
|
||
mov bx, word_106AC
|
||
shl bx, 3
|
||
mov al, [bp+var_E]
|
||
mov ah, 0
|
||
add bx, ax
|
||
mov al, byte ptr [bp+var_2]
|
||
mov [bx+21F0h], al
|
||
cmp [bp+var_E], 0
|
||
jnz short loc_B676
|
||
mov [bp+var_B], 1
|
||
|
||
loc_B676:
|
||
dec [bp+var_E]
|
||
|
||
loc_B679:
|
||
mov [bp+var_C], 1
|
||
|
||
loc_B67D:
|
||
mov [bp+var_D], 1
|
||
jmp short loc_B687
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B683:
|
||
mov [bp+var_D], 0
|
||
|
||
loc_B687:
|
||
test _input_sp.lo, low INPUT_BOMB
|
||
jz short loc_B6CF
|
||
cmp [bp+var_F], 0
|
||
jnz short loc_B6C9
|
||
mov al, [bp+var_E]
|
||
mov ah, 0
|
||
mov dx, 7
|
||
sub dx, ax
|
||
imul dx, 18h
|
||
add dx, 48h ; 'H'
|
||
push dx
|
||
push si
|
||
call sub_B1F6
|
||
mov bx, word_106AC
|
||
shl bx, 3
|
||
mov al, [bp+var_E]
|
||
mov ah, 0
|
||
add bx, ax
|
||
mov byte ptr [bx+21F0h], 0Eh
|
||
cmp [bp+var_E], 7
|
||
jnb short loc_B6C5
|
||
inc [bp+var_E]
|
||
|
||
loc_B6C5:
|
||
mov [bp+var_C], 1
|
||
|
||
loc_B6C9:
|
||
mov [bp+var_F], 1
|
||
jmp short loc_B6D3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B6CF:
|
||
mov [bp+var_F], 0
|
||
|
||
loc_B6D3:
|
||
cmp [bp+var_C], 1
|
||
jnz short loc_B73C
|
||
push [bp+var_2]
|
||
push 1
|
||
call sub_B1BF
|
||
mov al, [bp+var_E]
|
||
mov ah, 0
|
||
mov dx, 7
|
||
sub dx, ax
|
||
imul dx, 18h
|
||
add dx, 48h ; 'H'
|
||
push dx
|
||
push si
|
||
call sub_B1F6
|
||
mov bx, word_106AC
|
||
shl bx, 3
|
||
mov al, [bp+var_E]
|
||
mov ah, 0
|
||
add bx, ax
|
||
mov byte ptr [bx+21F0h], 0Eh
|
||
push word_106AC
|
||
call sub_B450
|
||
mov ax, [bp+var_2]
|
||
mov bx, 10h
|
||
cwd
|
||
idiv bx
|
||
cmp dx, 0Eh
|
||
jz short loc_B738
|
||
mov al, [bp+var_E]
|
||
mov ah, 0
|
||
mov dx, 7
|
||
sub dx, ax
|
||
imul dx, 18h
|
||
add dx, 48h ; 'H'
|
||
push dx
|
||
push si
|
||
push [bp+var_2]
|
||
push 0
|
||
call sub_B2AD
|
||
|
||
loc_B738:
|
||
mov [bp+var_C], 0
|
||
|
||
loc_B73C:
|
||
push 1
|
||
call frame_delay
|
||
|
||
loc_B743:
|
||
cmp [bp+var_B], 0
|
||
jz loc_B4A8
|
||
pop si
|
||
leave
|
||
retn
|
||
sub_B46B endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B74E proc near
|
||
|
||
var_1 = byte ptr -1
|
||
|
||
enter 2, 0
|
||
push si
|
||
push di
|
||
xor cx, cx
|
||
jmp short loc_B769
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B758:
|
||
mov bx, word_106AC
|
||
shl bx, 3
|
||
add bx, cx
|
||
cmp byte ptr [bx+21F0h], 0Eh
|
||
jnz short loc_B7A2
|
||
inc cx
|
||
|
||
loc_B769:
|
||
cmp cx, 8
|
||
jl short loc_B758
|
||
|
||
loc_B76E:
|
||
les bx, _resident
|
||
mov al, es:[bx+resident_t.RESIDENT_playchar_paletted][0]
|
||
mov ah, 0
|
||
dec ax
|
||
cwd
|
||
sub ax, dx
|
||
sar ax, 1
|
||
shl ax, 3
|
||
add ax, 92Eh
|
||
mov di, ax
|
||
mov cx, 7
|
||
jmp short loc_B79C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B78B:
|
||
mov bx, word_106AC
|
||
shl bx, 3
|
||
add bx, cx
|
||
mov al, [di]
|
||
mov [bx+21F0h], al
|
||
dec cx
|
||
inc di
|
||
|
||
loc_B79C:
|
||
or cx, cx
|
||
jge short loc_B78B
|
||
jmp short loc_B7CE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B7A2:
|
||
mov bx, word_106AC
|
||
shl bx, 3
|
||
mov al, [bx+21F0h]
|
||
mov [bp+var_1], al
|
||
xor cx, cx
|
||
jmp short loc_B7C7
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B7B4:
|
||
mov bx, word_106AC
|
||
shl bx, 3
|
||
add bx, cx
|
||
mov al, [bx+21F0h]
|
||
cmp al, [bp+var_1]
|
||
jnz short loc_B7CE
|
||
inc cx
|
||
|
||
loc_B7C7:
|
||
cmp cx, 8
|
||
jl short loc_B7B4
|
||
jmp short loc_B76E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B7CE:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn
|
||
sub_B74E endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B7D2 proc near
|
||
push bp
|
||
mov bp, sp
|
||
les bx, _resident
|
||
mov eax, es:[bx+resident_t.rand]
|
||
mov random_seed, eax
|
||
call snd_load c, offset aScore_m, ds, SND_LOAD_SONG
|
||
kajacall KAJA_SONG_PLAY
|
||
les bx, _resident
|
||
mov al, es:[bx+resident_t.rank]
|
||
mov ah, 0
|
||
push ax
|
||
call sub_AE8E
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.story_stage], STAGE_NONE
|
||
jnz short loc_B819
|
||
mov word_106AC, 0FFFFh
|
||
jmp short loc_B81F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B819:
|
||
call sub_B03D
|
||
mov word_106AC, ax
|
||
|
||
loc_B81F:
|
||
call sub_AFAC
|
||
cmp word_106AC, 0FFFFh
|
||
jnz short loc_B835
|
||
call sub_B429
|
||
push 2
|
||
call palette_black_in
|
||
jmp short loc_B858
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B835:
|
||
call sub_B429
|
||
call graph_copy_page pascal, 1
|
||
graph_accesspage 0
|
||
call sub_B187
|
||
push 2
|
||
call palette_black_in
|
||
call sub_B46B
|
||
call sub_B74E
|
||
call sub_B429
|
||
|
||
loc_B858:
|
||
call input_wait_for_change pascal, 0
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.rem_credits], 0
|
||
jz short loc_B871
|
||
cmp es:[bx+resident_t.story_stage], STAGE_ALL
|
||
jnz short loc_B879
|
||
|
||
loc_B871:
|
||
kajacall KAJA_SONG_FADE, 16
|
||
|
||
loc_B879:
|
||
push 2
|
||
call palette_black_out
|
||
les bx, _resident
|
||
mov al, es:[bx+resident_t.rank]
|
||
mov ah, 0
|
||
push ax
|
||
call sub_AEF0
|
||
call super_free
|
||
graph_accesspage 0
|
||
graph_showpage al
|
||
mov PaletteTone, 0
|
||
call far ptr palette_show
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.rem_credits], 0
|
||
jz short loc_B8F1
|
||
cmp es:[bx+resident_t.story_stage], STAGE_ALL
|
||
jz short loc_B8F1
|
||
call pi_slot_load pascal, 0, ds, offset aConti_pi
|
||
call pi_slot_palette_apply pascal, 0
|
||
call pi_slot_put pascal, large 0, 0
|
||
freePISlotLarge 0
|
||
call cdg_load_all pascal, 0, ds, offset aConti_cd2
|
||
pop bp
|
||
retn
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B8F1:
|
||
call pi_slot_load pascal, 0, ds, offset aOver_pi_0
|
||
call pi_slot_palette_apply pascal, 0
|
||
call pi_slot_put pascal, large 0, 0
|
||
freePISlotLarge 0
|
||
call snd_delay_until_volume stdcall, 255
|
||
pop cx
|
||
kajacall KAJA_SONG_STOP
|
||
pop bp
|
||
retn
|
||
sub_B7D2 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B92E proc near
|
||
push bp
|
||
mov bp, sp
|
||
kajacall KAJA_SONG_STOP
|
||
call snd_load c, offset aOver_m, ds, SND_LOAD_SONG
|
||
kajacall KAJA_SONG_PLAY
|
||
push 1
|
||
call palette_black_in
|
||
push 30040h
|
||
call snd_delay_until_measure
|
||
push 1
|
||
call palette_black_out
|
||
kajacall KAJA_SONG_STOP
|
||
pop bp
|
||
retn
|
||
sub_B92E endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B972 proc near
|
||
|
||
var_1 = byte ptr -1
|
||
|
||
enter 2, 0
|
||
call cdg_free pascal, 0
|
||
call cdg_free pascal, 1
|
||
call cdg_free pascal, 2
|
||
freePISlotLarge 0
|
||
les bx, _resident
|
||
mov al, es:[bx+resident_t.RESIDENT_playchar_paletted][0]
|
||
mov ah, 0
|
||
dec ax
|
||
cwd
|
||
sub ax, dx
|
||
sar ax, 1
|
||
mov [bp+var_1], al
|
||
cmp [bp+var_1], 10
|
||
jl short loc_B9DD
|
||
les bx, off_EE4E
|
||
mov al, es:[bx+1]
|
||
push ax
|
||
mov al, [bp+var_1]
|
||
cbw
|
||
mov bx, 10
|
||
cwd
|
||
idiv bx
|
||
pop dx
|
||
add dl, al
|
||
mov bx, word ptr off_EE4E
|
||
mov es:[bx+1], dl
|
||
mov al, [bp+var_1]
|
||
cbw
|
||
mov bx, 10
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_1], dl
|
||
|
||
loc_B9DD:
|
||
les bx, off_EE4E
|
||
mov al, [bp+var_1]
|
||
add es:[bx+2], al
|
||
mov PaletteTone, 0
|
||
call far ptr palette_show
|
||
push 60h
|
||
call frame_delay
|
||
graph_accesspage 0
|
||
graph_showpage al
|
||
call graph_clear
|
||
call graph_show
|
||
pushd [off_EE4E]
|
||
call sub_A12E
|
||
call sub_AC6E
|
||
call sub_A174
|
||
call sub_C40D
|
||
les bx, _resident
|
||
mov es:[bx+resident_t.story_stage], STAGE_ALL
|
||
call sub_B7D2
|
||
les bx, _resident
|
||
cmp es:[bx+resident_t.rem_credits], 3
|
||
jnz short loc_BA66
|
||
cmp es:[bx+resident_t.RESIDENT_playchar_paletted], (1 + (PLAYCHAR_CHIYURI * 2))
|
||
jnb short loc_BA66
|
||
graph_accesspage 1
|
||
call graph_clear
|
||
graph_accesspage 0
|
||
call graph_clear
|
||
graph_showpage 0
|
||
push ds
|
||
push offset a@99ed_txt ; "@99ED.TXT"
|
||
call sub_A12E
|
||
call sub_AC6E
|
||
call sub_A174
|
||
|
||
loc_BA66:
|
||
call text_clear
|
||
call gaiji_restore
|
||
call game_exit
|
||
pushd 0
|
||
push ds
|
||
push offset aOp_0 ; "op"
|
||
push ds
|
||
push offset aOp_0 ; "op"
|
||
call _execl
|
||
add sp, 0Ch
|
||
leave
|
||
retn
|
||
sub_B972 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BA8A 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 ax, [bp+arg_4]
|
||
sar ax, 3
|
||
mov dx, [bp+arg_2]
|
||
shl dx, 6
|
||
add ax, dx
|
||
mov dx, [bp+arg_2]
|
||
shl dx, 4
|
||
add ax, dx
|
||
mov di, ax
|
||
mov si, [bp+arg_0]
|
||
shl si, 4
|
||
add si, 0A62h
|
||
mov ax, 0A800h
|
||
mov es, ax
|
||
assume es:nothing
|
||
mov cx, [bp+arg_4]
|
||
; Hack (and cx, 7)
|
||
db 081h
|
||
db 0e1h
|
||
db 007h
|
||
db 000h
|
||
mov bx, 8
|
||
|
||
loc_BAC0:
|
||
mov ax, [si]
|
||
ror ax, cl
|
||
or es:[di], ax
|
||
add di, 50h ; 'P'
|
||
add si, 2
|
||
dec bx
|
||
jnz short loc_BAC0
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retn 6
|
||
sub_BA8A endp
|
||
|
||
include th03/formats/cdg_unput_upwards.asm
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BB51 proc near
|
||
push bp
|
||
mov bp, sp
|
||
push di
|
||
mov ax, 0A800h
|
||
mov es, ax
|
||
assume es:nothing
|
||
xor ax, ax
|
||
mov di, ax
|
||
mov cx, 3E80h
|
||
rep stosw
|
||
pop di
|
||
pop bp
|
||
retn
|
||
sub_BB51 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BB66 proc near
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
mov si, 22C2h
|
||
xor ax, ax
|
||
jmp short loc_BB78
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BB71:
|
||
mov byte ptr [si], 0
|
||
inc ax
|
||
add si, 10h
|
||
|
||
loc_BB78:
|
||
cmp ax, 50h ; 'P'
|
||
jl short loc_BB71
|
||
pop si
|
||
pop bp
|
||
retn
|
||
sub_BB66 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BB80 proc near
|
||
|
||
var_2 = byte ptr -2
|
||
var_1 = byte ptr -1
|
||
|
||
enter 2, 0
|
||
push si
|
||
push di
|
||
mov si, 22C2h
|
||
xor di, di
|
||
jmp loc_BC1A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BB8E:
|
||
cmp byte ptr [si], 0
|
||
jnz loc_BC16
|
||
mov ax, di
|
||
shl ax, 3
|
||
cmp ax, word_10BB2
|
||
jg short loc_BC16
|
||
mov byte ptr [si], 1
|
||
test di, 3
|
||
jz short loc_BBBE
|
||
call IRand
|
||
mov bx, 2780h
|
||
cwd
|
||
idiv bx
|
||
mov [si+2], dx
|
||
mov word ptr [si+4], 0
|
||
jmp short loc_BBD1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BBBE:
|
||
mov word ptr [si+2], 2780h
|
||
call IRand
|
||
mov bx, 1880h
|
||
cwd
|
||
idiv bx
|
||
mov [si+4], dx
|
||
|
||
loc_BBD1:
|
||
call IRand
|
||
mov bx, 20h ; ' '
|
||
cwd
|
||
idiv bx
|
||
add dl, 50h ; 'P'
|
||
mov [bp+var_1], dl
|
||
call IRand
|
||
mov bx, 40h
|
||
cwd
|
||
idiv bx
|
||
add dl, 30h ; '0'
|
||
mov [bp+var_2], dl
|
||
call IRand
|
||
and ax, 3
|
||
mov [si+0Ah], ax
|
||
push ds
|
||
lea ax, [si+6]
|
||
push ax
|
||
push ds
|
||
lea ax, [si+8]
|
||
push ax
|
||
push word ptr [bp+var_1]
|
||
mov al, [bp+var_2]
|
||
mov ah, 0
|
||
push ax
|
||
call vector2
|
||
|
||
loc_BC16:
|
||
inc di
|
||
add si, 10h
|
||
|
||
loc_BC1A:
|
||
mov al, byte_106B0
|
||
mov ah, 0
|
||
cmp ax, di
|
||
jg loc_BB8E
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn
|
||
sub_BB80 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BC29 proc near
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
mov si, 22C2h
|
||
xor dx, dx
|
||
jmp short loc_BC63
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BC34:
|
||
cmp byte ptr [si], 0
|
||
jz short loc_BC5F
|
||
mov byte ptr [si], 1
|
||
mov ax, [si+6]
|
||
add [si+2], ax
|
||
mov ax, [si+8]
|
||
add [si+4], ax
|
||
cmp word ptr [si+2], 0
|
||
jg short loc_BC53
|
||
add word ptr [si+2], 2780h
|
||
|
||
loc_BC53:
|
||
cmp word ptr [si+4], 1880h
|
||
jl short loc_BC5F
|
||
sub word ptr [si+4], 1880h
|
||
|
||
loc_BC5F:
|
||
inc dx
|
||
add si, 10h
|
||
|
||
loc_BC63:
|
||
mov al, byte_106B0
|
||
mov ah, 0
|
||
cmp ax, dx
|
||
jg short loc_BC34
|
||
pop si
|
||
pop bp
|
||
retn
|
||
sub_BC29 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BC6F proc near
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
mov si, 22C2h
|
||
xor di, di
|
||
jmp short loc_BC98
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BC7B:
|
||
cmp byte ptr [si], 0
|
||
jz short loc_BC94
|
||
mov ax, [si+2]
|
||
sar ax, 4
|
||
push ax
|
||
mov ax, [si+4]
|
||
sar ax, 4
|
||
push ax
|
||
push word ptr [si+0Ah]
|
||
call sub_BA8A
|
||
|
||
loc_BC94:
|
||
inc di
|
||
add si, 10h
|
||
|
||
loc_BC98:
|
||
mov al, byte_106B0
|
||
mov ah, 0
|
||
cmp ax, di
|
||
jg short loc_BC7B
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retn
|
||
sub_BC6F endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BCA5 proc near
|
||
|
||
arg_0 = word ptr 4
|
||
arg_2 = word ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
cmp _snd_active, 0
|
||
jnz short loc_BCB9
|
||
mov ax, word_10BB2
|
||
cmp ax, [bp+arg_0]
|
||
jle short loc_BCCF
|
||
jmp short loc_BCCA
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BCB9:
|
||
mov ah, KAJA_GET_SONG_MEASURE
|
||
int 60h ; - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE
|
||
; BX = handle
|
||
; Return: CF set on error, DH = error code
|
||
; CF clear if successful
|
||
cmp ax, [bp+arg_2]
|
||
jb short loc_BCCF
|
||
cmp word_10BB2, 0C0h
|
||
jle short loc_BCCF
|
||
|
||
loc_BCCA:
|
||
mov ax, 1
|
||
jmp short loc_BCD1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BCCF:
|
||
xor ax, ax
|
||
|
||
loc_BCD1:
|
||
pop bp
|
||
retn 4
|
||
sub_BCA5 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BCD5 proc near
|
||
push bp
|
||
mov bp, sp
|
||
call sub_BB80
|
||
call sub_BC29
|
||
call sub_BC6F
|
||
cmp byte_10BB6, 0
|
||
jz short loc_BCFE
|
||
cmp vsync_Count1, 1
|
||
jbe short loc_BCFE
|
||
mov byte_10BB5, 0
|
||
mov byte_106B0, 32h ; '2'
|
||
mov byte_10BB6, 0
|
||
|
||
loc_BCFE:
|
||
cmp vsync_Count1, 0
|
||
jz short loc_BCFE
|
||
mov vsync_Count1, 0
|
||
graph_showpage byte_10BB4
|
||
mov al, 1
|
||
sub al, byte_10BB4
|
||
mov byte_10BB4, al
|
||
graph_accesspage al
|
||
pop bp
|
||
retn
|
||
sub_BCD5 endp
|
||
|
||
include th03/formats/cdg_put_dissolve.asm
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BDF4 proc near
|
||
|
||
arg_0 = word ptr 4
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
mov di, [bp+arg_0]
|
||
call sub_BB51
|
||
mov ax, word_10BB2
|
||
cmp ax, word_10BBE
|
||
jg loc_BEC1
|
||
push 140h
|
||
mov al, byte_10BB4
|
||
mov ah, 0
|
||
add ax, ax
|
||
mov bx, ax
|
||
push word ptr [bx+27D8h]
|
||
push di
|
||
call cdg_unput_for_upwards_motion_e
|
||
mov al, byte_10BB4
|
||
mov ah, 0
|
||
add ax, ax
|
||
mov bx, ax
|
||
mov ax, [bx+27D8h]
|
||
cmp ax, word_10BC0
|
||
jle short loc_BE66
|
||
mov al, byte_10BB4
|
||
mov ah, 0
|
||
add ax, ax
|
||
mov dx, word_10BBC
|
||
mov bx, ax
|
||
sub [bx+27D8h], dx
|
||
mov al, byte_10BB4
|
||
mov ah, 0
|
||
add ax, ax
|
||
mov bx, ax
|
||
mov ax, [bx+27D8h]
|
||
cmp ax, word_10BC0
|
||
jge short loc_BE66
|
||
mov al, byte_10BB4
|
||
mov ah, 0
|
||
add ax, ax
|
||
mov dx, word_10BC0
|
||
mov bx, ax
|
||
mov [bx+27D8h], dx
|
||
|
||
loc_BE66:
|
||
mov ax, word_10BBE
|
||
mov bx, 8
|
||
cwd
|
||
idiv bx
|
||
push ax
|
||
mov ax, word_10BB2
|
||
cwd
|
||
pop bx
|
||
idiv bx
|
||
mov dx, 7
|
||
sub dx, ax
|
||
mov si, dx
|
||
or si, si
|
||
jge short loc_BE84
|
||
xor si, si
|
||
|
||
loc_BE84:
|
||
cmp byte_10BB5, 0
|
||
jz short loc_BEA7
|
||
cmp byte_10BC6, 0
|
||
jz short loc_BEA7
|
||
push (504 shl 16) or 200
|
||
mov al, byte_10BC6
|
||
mov ah, 0
|
||
push ax
|
||
push si
|
||
call cdg_put_dissolve_e
|
||
mov byte_10BC7, 1
|
||
|
||
loc_BEA7:
|
||
push 320
|
||
mov al, byte_10BB4
|
||
mov ah, 0
|
||
add ax, ax
|
||
mov bx, ax
|
||
push word ptr [bx+27D8h]
|
||
push di
|
||
push si
|
||
call cdg_put_dissolve_e
|
||
mov byte_10BC7, 0
|
||
|
||
loc_BEC1:
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retn 2
|
||
sub_BDF4 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BEC7 proc near
|
||
|
||
arg_0 = word ptr 4
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
mov di, [bp+arg_0]
|
||
call sub_BB51
|
||
cmp word_10BB2, 0A1h
|
||
jg loc_BF78
|
||
cmp word_10BB2, 0A0h
|
||
jge short loc_BF57
|
||
push 140h
|
||
mov al, byte_10BB4
|
||
mov ah, 0
|
||
add ax, ax
|
||
mov bx, ax
|
||
push word ptr [bx+27D8h]
|
||
push di
|
||
call cdg_unput_for_upwards_motion_e
|
||
mov al, byte_10BB4
|
||
mov ah, 0
|
||
add ax, ax
|
||
mov bx, ax
|
||
dec word ptr [bx+27D8h]
|
||
mov ax, word_10BB2
|
||
mov bx, 14h
|
||
cwd
|
||
idiv bx
|
||
mov si, ax
|
||
cmp si, 7
|
||
jle short loc_BF18
|
||
mov si, 7
|
||
|
||
loc_BF18:
|
||
cmp byte_10BB5, 0
|
||
jz short loc_BF3B
|
||
cmp byte_10BC6, 0
|
||
jz short loc_BF3B
|
||
push (504 shl 16) or 200
|
||
mov al, byte_10BC6
|
||
mov ah, 0
|
||
push ax
|
||
push si
|
||
call cdg_put_dissolve_e
|
||
mov byte_10BC7, 1
|
||
|
||
loc_BF3B:
|
||
push 320
|
||
mov al, byte_10BB4
|
||
mov ah, 0
|
||
add ax, ax
|
||
mov bx, ax
|
||
push word ptr [bx+27D8h]
|
||
push di
|
||
push si
|
||
call cdg_put_dissolve_e
|
||
mov byte_10BC7, 0
|
||
jmp short loc_BF78
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BF57:
|
||
call grcg_setcolor pascal, (GC_RMW shl 16) + 0
|
||
call grcg_byteboxfill_x pascal, ((8 / 8) shl 16) or 8, (((RES_X - 1 - 8) / 8) shl 16) or (RES_Y - 1 - 8)
|
||
call grcg_off
|
||
|
||
loc_BF78:
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retn 2
|
||
sub_BEC7 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BF7E proc near
|
||
|
||
@@slot = word ptr 4
|
||
@@y_center = word ptr 6
|
||
@@x_center = word ptr 8
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
cmp word_10BB2, 0A0h
|
||
jg short loc_BFAD
|
||
mov ax, word_10BB2
|
||
mov bx, 14h
|
||
cwd
|
||
idiv bx
|
||
mov dx, 7
|
||
sub dx, ax
|
||
mov si, dx
|
||
or si, si
|
||
jge short loc_BFA0
|
||
xor si, si
|
||
|
||
loc_BFA0:
|
||
call cdg_put_dissolve_e pascal, [bp+@@x_center], [bp+@@y_center], [bp+@@slot], si
|
||
|
||
loc_BFAD:
|
||
pop si
|
||
pop bp
|
||
retn 6
|
||
sub_BF7E endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BFB2 proc near
|
||
|
||
arg_0 = word ptr 4
|
||
arg_2 = word ptr 6
|
||
arg_4 = word ptr 8
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
mov si, [bp+arg_4]
|
||
cmp word_10BBC, 2
|
||
jnz short loc_BFE3
|
||
mov al, byte_10BB4
|
||
mov ah, 0
|
||
add ax, ax
|
||
mov bx, ax
|
||
mov word ptr [bx+27D8h], 108h
|
||
mov al, byte_10BB4
|
||
mov ah, 0
|
||
xor ax, 1
|
||
add ax, ax
|
||
mov bx, ax
|
||
mov word ptr [bx+27D8h], 107h
|
||
jmp short loc_C00E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BFE3:
|
||
mov al, byte_10BB4
|
||
mov ah, 0
|
||
add ax, ax
|
||
mov dx, 118h
|
||
sub dx, word_10BC4
|
||
mov bx, ax
|
||
mov [bx+27D8h], dx
|
||
mov al, byte_10BB4
|
||
mov ah, 0
|
||
xor ax, 1
|
||
add ax, ax
|
||
mov dx, 118h
|
||
sub dx, word_10BC4
|
||
mov bx, ax
|
||
mov [bx+27D8h], dx
|
||
|
||
loc_C00E:
|
||
mov word_10BB2, 0
|
||
|
||
loc_C014:
|
||
push si
|
||
call sub_BDF4
|
||
call sub_BCD5
|
||
inc word_10BB2
|
||
push [bp+arg_2]
|
||
push 100h
|
||
call sub_BCA5
|
||
or ax, ax
|
||
jz short loc_C014
|
||
mov word_10BB2, 0
|
||
|
||
loc_C032:
|
||
push si
|
||
call sub_BEC7
|
||
call sub_BCD5
|
||
inc word_10BB2
|
||
push [bp+arg_0]
|
||
push 100h
|
||
call sub_BCA5
|
||
or ax, ax
|
||
jz short loc_C032
|
||
call grcg_setcolor pascal, (GC_RMW shl 16) + 0
|
||
call grcg_byteboxfill_x pascal, ((8 / 8) shl 16) or 8, (((RES_X - 1 - 8) / 8) shl 16) or (RES_Y - 1 - 8)
|
||
call grcg_off
|
||
call sub_BCD5
|
||
call grcg_setcolor pascal, (GC_RMW shl 16) + 0
|
||
call grcg_byteboxfill_x pascal, ((8 / 8) shl 16) or 8, (((RES_X - 1 - 8) / 8) shl 16) or (RES_Y - 1 - 8)
|
||
call grcg_off
|
||
call sub_BCD5
|
||
pop si
|
||
pop bp
|
||
retn 6
|
||
sub_BFB2 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C097 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]
|
||
cmp word_10BBC, 2
|
||
jnz short loc_C0C9
|
||
mov al, byte_10BB4
|
||
mov ah, 0
|
||
add ax, ax
|
||
mov bx, ax
|
||
mov word ptr [bx+27D8h], 108h
|
||
mov al, byte_10BB4
|
||
mov ah, 0
|
||
xor ax, 1
|
||
add ax, ax
|
||
mov bx, ax
|
||
mov word ptr [bx+27D8h], 107h
|
||
jmp short loc_C0D6
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C0C9:
|
||
mov ax, 118h
|
||
sub ax, word_10BC4
|
||
mov word_10BC8, ax
|
||
mov word_10BCA, ax
|
||
|
||
loc_C0D6:
|
||
mov word_10BB2, 0
|
||
|
||
loc_C0DC:
|
||
push si
|
||
call sub_BDF4
|
||
mov byte_10BC7, 1
|
||
push 320
|
||
push word_10BC2
|
||
lea ax, [si-1]
|
||
push ax
|
||
push 0
|
||
call cdg_put_dissolve_e
|
||
mov byte_10BC7, 0
|
||
call sub_BCD5
|
||
inc word_10BB2
|
||
push [bp+arg_2]
|
||
push 100h
|
||
call sub_BCA5
|
||
or ax, ax
|
||
jz short loc_C0DC
|
||
mov word_10BB2, 0
|
||
|
||
loc_C114:
|
||
cmp word_10BB2, 0A1h
|
||
jg short loc_C12A
|
||
push 320
|
||
push word_10BC2
|
||
lea ax, [si-1]
|
||
push ax
|
||
call cdg_unput_for_upwards_motion_e
|
||
|
||
loc_C12A:
|
||
push si
|
||
call sub_BEC7
|
||
cmp word_10BB2, 0A1h
|
||
jg short loc_C199
|
||
mov ax, word_10BB2
|
||
dec ax
|
||
mov bx, 14h
|
||
cwd
|
||
idiv bx
|
||
mov di, ax
|
||
cmp di, 7
|
||
jle short loc_C14A
|
||
mov di, 7
|
||
|
||
loc_C14A:
|
||
cmp byte_10BB4, 0
|
||
jnz short loc_C155
|
||
dec word_10BC2
|
||
|
||
loc_C155:
|
||
mov byte_10BC7, 1
|
||
cmp word_10BB2, 0A0h
|
||
jge short loc_C173
|
||
push 320
|
||
push word_10BC2
|
||
lea ax, [si-1]
|
||
push ax
|
||
push di
|
||
call cdg_put_dissolve_e
|
||
jmp short loc_C194
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C173:
|
||
call grcg_setcolor pascal, (GC_RMW shl 16) + 0
|
||
call grcg_byteboxfill_x pascal, ((8 / 8) shl 16) or 8, (((RES_X - 1 - 8) / 8) shl 16) or (RES_Y - 1 - 8)
|
||
call grcg_off
|
||
|
||
loc_C194:
|
||
mov byte_10BC7, 0
|
||
|
||
loc_C199:
|
||
call sub_BCD5
|
||
inc word_10BB2
|
||
push [bp+arg_0]
|
||
push 100h
|
||
call sub_BCA5
|
||
or ax, ax
|
||
jz loc_C114
|
||
call grcg_setcolor pascal, (GC_RMW shl 16) + 0
|
||
call grcg_byteboxfill_x pascal, ((8 / 8) shl 16) or 8, (((RES_X - 1 - 8) / 8) shl 16) or (RES_Y - 1 - 8)
|
||
call grcg_off
|
||
call sub_BCD5
|
||
call grcg_setcolor pascal, (GC_RMW shl 16) + 0
|
||
call grcg_byteboxfill_x pascal, ((8 / 8) shl 16) or 8, (((RES_X - 1 - 8) / 8) shl 16) or (RES_Y - 1 - 8)
|
||
call grcg_off
|
||
call sub_BCD5
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retn 6
|
||
sub_C097 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C1FD proc near
|
||
|
||
arg_0 = word ptr 4
|
||
arg_2 = word ptr 6
|
||
arg_4 = word ptr 8
|
||
|
||
push bp
|
||
mov bp, sp
|
||
cmp word_10BBC, 2
|
||
jnz short loc_C22A
|
||
mov al, byte_10BB4
|
||
mov ah, 0
|
||
add ax, ax
|
||
mov bx, ax
|
||
mov word ptr [bx+27D8h], 108h
|
||
mov al, byte_10BB4
|
||
mov ah, 0
|
||
xor ax, 1
|
||
add ax, ax
|
||
mov bx, ax
|
||
mov word ptr [bx+27D8h], 107h
|
||
jmp short loc_C237
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C22A:
|
||
mov ax, 118h
|
||
sub ax, word_10BC4
|
||
mov word_10BC8, ax
|
||
mov word_10BCA, ax
|
||
|
||
loc_C237:
|
||
mov word_10BB2, 0
|
||
|
||
loc_C23D:
|
||
push [bp+arg_4]
|
||
call sub_BDF4
|
||
call sub_BCD5
|
||
inc word_10BB2
|
||
push [bp+arg_2]
|
||
push 100h
|
||
call sub_BCA5
|
||
or ax, ax
|
||
jz short loc_C23D
|
||
mov word_10BB2, 0
|
||
|
||
loc_C25D:
|
||
call sub_BB51
|
||
call sub_BCD5
|
||
inc word_10BB2
|
||
push [bp+arg_0]
|
||
push 100h
|
||
call sub_BCA5
|
||
or ax, ax
|
||
jz short loc_C25D
|
||
mov al, byte_10BB4
|
||
mov ah, 0
|
||
add ax, ax
|
||
mov bx, ax
|
||
mov ax, [bx+27D8h]
|
||
mov word_10BC2, ax
|
||
pop bp
|
||
retn 6
|
||
sub_C1FD endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C288 proc near
|
||
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
|
||
enter 4, 0
|
||
push si
|
||
push di
|
||
push (352 shl 16) or 174
|
||
push 2Fh
|
||
mov al, playchar_10BD7
|
||
mov ah, 0
|
||
shl ax, 2
|
||
mov bx, ax
|
||
pushd aVERDICT_PLAYCHARS[bx]
|
||
call graph_putsa_fx
|
||
push (360 shl 16) or 199
|
||
push 2Fh ; '/'
|
||
mov al, _rank
|
||
mov ah, 0
|
||
shl ax, 2
|
||
mov bx, ax
|
||
pushd aVERDICT_RANKS[bx]
|
||
call graph_putsa_fx
|
||
mov si, 408
|
||
mov [bp+var_4], 0
|
||
mov [bp+var_2], 8
|
||
jmp short loc_C319
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C2D5:
|
||
mov bx, [bp+var_2]
|
||
mov al, [bx+27DCh]
|
||
mov ah, 0
|
||
mov di, ax
|
||
cmp [bp+var_4], 0
|
||
jnz short loc_C2F7
|
||
or di, di
|
||
jz short loc_C2F7
|
||
mov ax, [bp+var_2]
|
||
shl ax, 3
|
||
sub si, ax
|
||
mov [bp+var_4], 1
|
||
|
||
loc_C2F7:
|
||
cmp [bp+var_4], 0
|
||
jz short loc_C316
|
||
push si
|
||
push (224 shl 16) or 2Fh
|
||
mov bx, di
|
||
shl bx, 2
|
||
pushd aVERDICT_NUMBERS[bx]
|
||
call graph_putsa_fx
|
||
add si, 16
|
||
|
||
loc_C316:
|
||
dec [bp+var_2]
|
||
|
||
loc_C319:
|
||
cmp [bp+var_2], 0
|
||
jg short loc_C2D5
|
||
mov al, _rem_credits
|
||
mov ah, 0
|
||
mov di, ax
|
||
push si
|
||
push (224 shl 16) or 2Fh
|
||
mov bx, di
|
||
shl bx, 2
|
||
pushd aVERDICT_NUMBERS[bx]
|
||
call graph_putsa_fx
|
||
push (408 shl 16) or 248
|
||
push 2Fh
|
||
mov bx, di
|
||
shl bx, 2
|
||
pushd aVERDICT_NUMBERS[bx]
|
||
call graph_putsa_fx
|
||
mov al, _skill
|
||
mov ah, 0
|
||
mov bx, 100
|
||
cwd
|
||
idiv bx
|
||
mov di, ax
|
||
mov si, 408
|
||
mov [bp+var_4], 0
|
||
or di, di
|
||
jz short loc_C38D
|
||
sub si, 16
|
||
mov [bp+var_4], 1
|
||
push si
|
||
push (291 shl 16) or 2Fh
|
||
mov bx, di
|
||
shl bx, 2
|
||
pushd aVERDICT_NUMBERS[bx]
|
||
call graph_putsa_fx
|
||
add si, 16
|
||
|
||
loc_C38D:
|
||
mov al, _skill
|
||
mov ah, 0
|
||
mov bx, 100
|
||
cwd
|
||
idiv bx
|
||
mov bx, 10
|
||
mov ax, dx
|
||
cwd
|
||
idiv bx
|
||
mov di, ax
|
||
or di, di
|
||
jz short loc_C3B4
|
||
cmp [bp+var_4], 0
|
||
jnz short loc_C3B4
|
||
mov [bp+var_4], 1
|
||
sub si, 8
|
||
|
||
loc_C3B4:
|
||
cmp [bp+var_4], 0
|
||
jz short loc_C3D3
|
||
push si
|
||
push (291 shl 16) or 2Fh
|
||
mov bx, di
|
||
shl bx, 2
|
||
pushd aVERDICT_NUMBERS[bx]
|
||
call graph_putsa_fx
|
||
add si, 16
|
||
|
||
loc_C3D3:
|
||
mov al, _skill
|
||
mov ah, 0
|
||
mov bx, 10
|
||
cwd
|
||
idiv bx
|
||
mov di, dx
|
||
push si
|
||
push (291 shl 16) or 2Fh
|
||
mov bx, di
|
||
shl bx, 2
|
||
pushd aVERDICT_NUMBERS[bx]
|
||
call graph_putsa_fx
|
||
lea ax, [si+16]
|
||
call graph_putsa_fx pascal, ax, (291 shl 16) or 2Fh, ds, offset aU_ ; "<22>_"
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn
|
||
sub_C288 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C40D proc near
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
kajacall KAJA_SONG_FADE, 16
|
||
push 4
|
||
call palette_black_out
|
||
call snd_delay_until_volume stdcall, 255
|
||
pop cx
|
||
kajacall KAJA_SONG_STOP
|
||
mov byte_106B0, 50h ; 'P'
|
||
mov si, 1
|
||
jmp short loc_C44B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C43C:
|
||
les bx, _resident
|
||
assume es:nothing
|
||
add bx, si
|
||
mov al, es:[bx+resident_t.pid_winner]
|
||
mov [si+27DCh], al
|
||
inc si
|
||
|
||
loc_C44B:
|
||
cmp si, 9
|
||
jl short loc_C43C
|
||
les bx, _resident
|
||
mov al, 3
|
||
sub al, es:[bx+resident_t.rem_credits]
|
||
mov _rem_credits, al
|
||
mov al, es:[bx+resident_t.RESIDENT_playchar_paletted][0]
|
||
mov ah, 0
|
||
dec ax
|
||
cwd
|
||
sub ax, dx
|
||
sar ax, 1
|
||
mov playchar_10BD7, al
|
||
mov al, es:[bx+resident_t.rank]
|
||
mov _rank, al
|
||
mov al, es:[bx+resident_t.skill]
|
||
mov _skill, al
|
||
mov al, byte_10BD3
|
||
mov ah, 0
|
||
cmp ax, 3
|
||
jz short loc_C48B
|
||
cmp ax, 4
|
||
jz short loc_C49E
|
||
jmp short loc_C4B1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C48B:
|
||
mov al, byte_10BD2
|
||
mov ah, 0
|
||
cwd
|
||
sub ax, dx
|
||
sar ax, 1
|
||
add al, _skill
|
||
add al, 2
|
||
mov _skill, al
|
||
|
||
loc_C49E:
|
||
mov al, byte_10BD2
|
||
mov ah, 0
|
||
cwd
|
||
sub ax, dx
|
||
sar ax, 1
|
||
add al, _skill
|
||
add al, 7
|
||
mov _skill, al
|
||
|
||
loc_C4B1:
|
||
cmp byte_10BD3, 5
|
||
jb short loc_C4C0
|
||
mov al, _skill
|
||
add al, 15
|
||
mov _skill, al
|
||
|
||
loc_C4C0:
|
||
cmp byte_10BD4, 0
|
||
jz short loc_C4CC
|
||
mov _skill, 100
|
||
|
||
loc_C4CC:
|
||
cmp _skill, 100
|
||
jbe short loc_C4D8
|
||
mov _skill, 100
|
||
|
||
loc_C4D8:
|
||
call snd_load c, offset aEd_m, ds, SND_LOAD_SONG
|
||
mov PaletteTone, 0
|
||
call far ptr palette_show
|
||
push ds
|
||
push offset aEdbk1_rgb ; "edbk1.rgb"
|
||
call palette_entry_rgb
|
||
call far ptr palette_show
|
||
call grcg_setcolor pascal, (GC_RMW shl 16) + 8
|
||
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 grcg_setcolor pascal, (GC_RMW shl 16) + 0
|
||
graph_accesspage 1
|
||
call grcg_byteboxfill_x pascal, ((8 / 8) shl 16) or 8, (((RES_X - 1 - 8) / 8) shl 16) or (RES_Y - 1 - 8)
|
||
graph_accesspage 0
|
||
call grcg_byteboxfill_x pascal, ((8 / 8) shl 16) or 8, (((RES_X - 1 - 8) / 8) shl 16) or (RES_Y - 1 - 8)
|
||
call grcg_off
|
||
graph_showpage 1
|
||
call cdg_load_single_noalpha pascal, 0, ds, offset aStf1_cdg, 0
|
||
call cdg_load_single_noalpha pascal, 1, ds, offset aStf11_cdg, 0
|
||
call cdg_load_single_forcealpha pascal, 2, ds, offset aStf3_cdg, 0
|
||
call cdg_load_single_forcealpha pascal, 3, ds, offset aStf4_cdg, 0
|
||
call cdg_load_single_noalpha pascal, 4, ds, offset aStf5_cdg, 0
|
||
call cdg_load_single_noalpha pascal, 5, ds, offset aStf6_cdg, 0
|
||
call cdg_load_single_noalpha pascal, 6, ds, offset aStf7_cdg, 0
|
||
call cdg_load_single_noalpha pascal, 7, ds, offset aStf8_cdg, 0
|
||
call cdg_load_single_noalpha pascal, 8, ds, offset aStf9_cdg, 0
|
||
call cdg_load_single_noalpha pascal, 9, ds, offset aStf10_cdg, 0
|
||
call cdg_load_single_noalpha pascal, 10, ds, offset aStf2_cdg, 0
|
||
call cdg_load_single_noalpha pascal, 11, ds, offset aStf12_cdg, 0
|
||
call sub_BB66
|
||
mov word_10BB2, 0
|
||
les bx, _resident
|
||
mov eax, es:[bx+resident_t.rand]
|
||
mov random_seed, eax
|
||
mov byte_10BB4, 0
|
||
mov PaletteTone, 100
|
||
call far ptr palette_show
|
||
kajacall KAJA_SONG_PLAY
|
||
mov byte_10BB6, 1
|
||
mov byte_10BB5, 1
|
||
push 1
|
||
call frame_delay
|
||
mov vsync_Count1, 0
|
||
|
||
loc_C657:
|
||
call sub_BB51
|
||
call sub_BCD5
|
||
inc word_10BB2
|
||
push 40100h
|
||
call sub_BCA5
|
||
or ax, ax
|
||
jz short loc_C657
|
||
mov byte_10BC7, 0
|
||
mov word_10BC4, 0
|
||
mov word_10BC0, 0C8h
|
||
mov word_10BBC, 2
|
||
mov word_10BBE, 41h ; 'A'
|
||
mov byte_10BC6, 0
|
||
pushd 8
|
||
push 0Ah
|
||
call sub_BFB2
|
||
mov word_10BBC, 1
|
||
mov word_10BBE, 0A1h
|
||
mov byte_10BB6, 0
|
||
push 10010h
|
||
push 14h
|
||
call sub_BFB2
|
||
mov word_10BC4, 20h ; ' '
|
||
mov word_10BC0, 0A8h ; '<27>'
|
||
push 20016h
|
||
push 18h
|
||
call sub_C1FD
|
||
mov byte_10BC6, 7
|
||
mov word_10BC0, 0D8h
|
||
mov word_10BC4, 0FFF0h
|
||
push 30020h
|
||
push 22h ; '"'
|
||
call sub_C097
|
||
mov byte_10BC6, 0
|
||
mov word_10BC0, 0C8h
|
||
mov word_10BC4, 0
|
||
push 40024h
|
||
push 26h ; '&'
|
||
call sub_BFB2
|
||
push 0B002Ah
|
||
push 2Ch ; ','
|
||
call sub_BFB2
|
||
push 50030h
|
||
push 32h ; '2'
|
||
call sub_BFB2
|
||
push 60036h
|
||
push 38h ; '8'
|
||
call sub_BFB2
|
||
push 0A003Ch
|
||
push 3Eh ; '>'
|
||
call sub_BFB2
|
||
mov word_10BB2, 0
|
||
|
||
loc_C735:
|
||
call sub_BB51
|
||
push 1400080h
|
||
push 8
|
||
call sub_BF7E
|
||
push 0C000F0h
|
||
push 9
|
||
call sub_BF7E
|
||
call sub_BCD5
|
||
inc word_10BB2
|
||
push 420100h
|
||
call sub_BCA5
|
||
or ax, ax
|
||
jz short loc_C735
|
||
mov al, 1
|
||
sub al, byte_10BB4
|
||
graph_accesspage al
|
||
call sub_C288
|
||
graph_accesspage byte_10BB4
|
||
call sub_C288
|
||
mov word_10BB2, 0
|
||
xor di, di
|
||
|
||
loc_C781:
|
||
call input_mode_interface
|
||
call sub_BB51
|
||
call sub_BCD5
|
||
inc word_10BB2
|
||
or di, di
|
||
jz short loc_C7AB
|
||
mov PaletteTone, di
|
||
call far ptr palette_show
|
||
test byte ptr word_10BB2, 1
|
||
jz short loc_C781
|
||
dec di
|
||
or di, di
|
||
jnz short loc_C781
|
||
jmp short loc_C7CD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C7AB:
|
||
cmp _input_sp, INPUT_NONE
|
||
jz short loc_C781
|
||
cmp word_10BB2, 100h
|
||
jle short loc_C781
|
||
kajacall KAJA_SONG_FADE, 8
|
||
mov di, 100
|
||
mov word_10BB2, 0
|
||
jmp short loc_C781
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C7CD:
|
||
xor si, si
|
||
jmp short loc_C7D8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C7D1:
|
||
call cdg_free pascal, si
|
||
inc si
|
||
|
||
loc_C7D8:
|
||
cmp si, CDG_SLOT_COUNT
|
||
jl short loc_C7D1
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retn
|
||
sub_C40D endp
|
||
db 0
|
||
|
||
mainl_01_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
mainl_02_TEXT segment word public 'CODE' use16
|
||
assume cs:mainl_02_TEXT
|
||
;org 2
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
include th01/hardware/vram_planes_set.asm
|
||
db 0
|
||
include th02/snd/detmode.asm
|
||
include th02/snd/pmd_res.asm
|
||
include th02/snd/delayvol.asm
|
||
include th02/snd/load.asm
|
||
include th03/math/vector2.asm
|
||
nop
|
||
include th03/math/vector2_between_plus.asm
|
||
include th02/exit.asm
|
||
db 0
|
||
include th03/formats/cdg_put.asm
|
||
include th03/formats/cdg_put_hflip.asm
|
||
include th02/hardware/frame_delay.asm
|
||
db 0
|
||
include th03/hardware/input_sense.asm
|
||
include th02/formats/pi_slot_palette_apply.asm
|
||
include th02/formats/pi_slot_put.asm
|
||
include th03/formats/pi_slot_put_interlace.asm
|
||
include th02/snd/se.asm
|
||
include th02/snd/kajaint.asm
|
||
include th02/initmain.asm
|
||
include th03/formats/cdg_load.asm
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D16F proc far
|
||
push bp
|
||
mov bp, sp
|
||
call pfend
|
||
graph_accesspage 0
|
||
graph_showpage al
|
||
call vsync_end
|
||
call mem_unassign
|
||
call js_end
|
||
call egc_start
|
||
pop bp
|
||
retf
|
||
sub_D16F endp
|
||
|
||
include th03/hardware/grppsafx.asm
|
||
include th03/snd/delaymea.asm
|
||
include th03/hardware/input_wait_ok.asm
|
||
include th02/formats/pi_slot_load.asm
|
||
include th03/formats/pi_slot_put_quarter.asm
|
||
include th03/hardware/input_modes.asm
|
||
include th03/hardware/input_wait.asm
|
||
db 0
|
||
include th03/formats/cdg_put_noalpha.asm
|
||
include th03/formats/hfliplut.asm
|
||
mainl_02_TEXT ends
|
||
|
||
.data
|
||
|
||
dw offset a00sl_cd2
|
||
dw offset a02sl_cd2
|
||
dw offset a04sl_cd2
|
||
dw offset a06sl_cd2
|
||
dw offset a08sl_cd2
|
||
dw offset a10sl_cd2
|
||
dw offset a12sl_cd2
|
||
dw offset a14sl_cd2
|
||
dw offset a16sl_cd2
|
||
dd a@00tx_txt ; "@00TX.TXT"
|
||
dd a@01tx_txt ; "@01TX.TXT"
|
||
dd a@02tx_txt ; "@02TX.TXT"
|
||
dd a@03tx_txt ; "@03TX.TXT"
|
||
dd a@04tx_txt ; "@04TX.TXT"
|
||
dd a@05tx_txt ; "@05TX.TXT"
|
||
dd a@06tx_txt ; "@06TX.TXT"
|
||
dd a@07tx_txt ; "@07TX.TXT"
|
||
dd a@08tx_txt ; "@08TX.TXT"
|
||
off_E4B6 dd a@00dm0_txt
|
||
; "@00DM0.TXT"
|
||
CHAR_TITLE dd TITLE_REIMU ; " <20><><EFBFBD>Ɠ`<60><><EFBFBD><EFBFBD><EFBFBD>ێ炷<DB8E><E782B7><EFBFBD>ޏ<EFBFBD> "
|
||
CHAR_NAME dd NAME_REIMU ; " <20><><EFBFBD><EFBFBD><EFBFBD>@<40>˖<EFBFBD>"
|
||
dd TITLE_MIMA ; " <20>v<EFBFBD><76><EFBFBD>̖<EFBFBD><CC96>ɉ^<5E><><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD><43><EFBFBD>鐸<EFBFBD>_ "
|
||
dd NAME_MIMA ; " <09><> <20><>"
|
||
dd TITLE_MARISA ; " <20><><EFBFBD>@<40>ƍg<C68D><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ鑶<C882><E991B6> "
|
||
dd NAME_MARISA ; " <20><><EFBFBD>J<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "
|
||
dd TITLE_ELLEN ; "<22>͂<EFBFBD><CD82>炫<EFBFBD><E782AB><EFBFBD>̂ŗ<CC82><C597><EFBFBD><F096B28C>閂<EFBFBD><E99682>"
|
||
dd NAME_ELLEN ; "<22>@<40>@<40>G<EFBFBD><47><EFBFBD><EFBFBD>"
|
||
dd TITLE_KOTOHIME ; " <09>e<EFBFBD><65><EFBFBD>ɔ<EFBFBD><C994>݂<F096B282><DD82>P "
|
||
dd NAME_KOTOHIME ; " <20><><EFBFBD>e<EFBFBD>P"
|
||
dd TITLE_KANA ; " <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "
|
||
dd NAME_KANA ; "<22>J<EFBFBD>i<EFBFBD>E<EFBFBD>A<EFBFBD>i<EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD>"
|
||
dd TITLE_RIKAKO ; " <20>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>T<EFBFBD><54><EFBFBD>Ȋw "
|
||
dd NAME_RIKAKO ; "<22>@<40><><EFBFBD>q<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>q"
|
||
dd TITLE_CHIYURI ; "<22>@ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>閲<EFBFBD><E996B2><EFBFBD>̏Z<CC8F>l "
|
||
dd NAME_CHIYURI ; " <20>k<EFBFBD><6B><EFBFBD>́@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
dd TITLE_YUMEMI ; "<22>@ <20>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>`<60><><EFBFBD>@<40>@<40>@ "
|
||
dd NAME_YUMEMI ; " <20>@<40><><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD><EFBFBD>"
|
||
word_E502 dw offset aSt_cd2
|
||
word_E504 dw offset aStnx1_pi
|
||
a0016_pi db '0016.pi',0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
a00sl_cd2 db '00sl.cd2',0
|
||
a02sl_cd2 db '02sl.cd2',0
|
||
a04sl_cd2 db '04sl.cd2',0
|
||
a06sl_cd2 db '06sl.cd2',0
|
||
a08sl_cd2 db '08sl.cd2',0
|
||
a10sl_cd2 db '10sl.cd2',0
|
||
a12sl_cd2 db '12sl.cd2',0
|
||
a14sl_cd2 db '14sl.cd2',0
|
||
a16sl_cd2 db '16sl.cd2',0
|
||
a@00tx_txt db '@00TX.TXT',0
|
||
a@01tx_txt db '@01TX.TXT',0
|
||
a@02tx_txt db '@02TX.TXT',0
|
||
a@03tx_txt db '@03TX.TXT',0
|
||
a@04tx_txt db '@04TX.TXT',0
|
||
a@05tx_txt db '@05TX.TXT',0
|
||
a@06tx_txt db '@06TX.TXT',0
|
||
a@07tx_txt db '@07TX.TXT',0
|
||
a@08tx_txt db '@08TX.TXT',0
|
||
a@00dm0_txt db '@00DM0.TXT',0
|
||
TITLE_REIMU db ' <20><><EFBFBD>Ɠ`<60><><EFBFBD><EFBFBD><EFBFBD>ێ炷<DB8E><E782B7><EFBFBD>ޏ<EFBFBD> ',0
|
||
NAME_REIMU db ' <20><><EFBFBD><EFBFBD><EFBFBD>@<40>˖<EFBFBD>',0
|
||
TITLE_MIMA db ' <20>v<EFBFBD><76><EFBFBD>̖<EFBFBD><CC96>ɉ^<5E><><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD><43><EFBFBD>鐸<EFBFBD>_ ',0
|
||
NAME_MIMA db ' <20><> <20><>',0
|
||
TITLE_MARISA db ' <20><><EFBFBD>@<40>ƍg<C68D><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ鑶<C882><E991B6> ',0
|
||
NAME_MARISA db ' <20><><EFBFBD>J<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
|
||
TITLE_ELLEN db '<27>͂<EFBFBD><CD82>炫<EFBFBD><E782AB><EFBFBD>̂ŗ<CC82><C597><EFBFBD><F096B28C>閂<EFBFBD><E99682>',0
|
||
NAME_ELLEN db '<27>@<40>@<40>G<EFBFBD><47><EFBFBD><EFBFBD>',0
|
||
TITLE_KOTOHIME db ' <20>e<EFBFBD><65><EFBFBD>ɔ<EFBFBD><C994>݂<F096B282><DD82>P ',0
|
||
NAME_KOTOHIME db ' <20><><EFBFBD>e<EFBFBD>P',0
|
||
TITLE_KANA db ' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
|
||
NAME_KANA db '<27>J<EFBFBD>i<EFBFBD>E<EFBFBD>A<EFBFBD>i<EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD>',0
|
||
TITLE_RIKAKO db ' <20>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>T<EFBFBD><54><EFBFBD>Ȋw ',0
|
||
NAME_RIKAKO db '<27>@<40><><EFBFBD>q<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>q',0
|
||
TITLE_CHIYURI db '<27>@ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>閲<EFBFBD><E996B2><EFBFBD>̏Z<CC8F>l ',0
|
||
NAME_CHIYURI db ' <20>k<EFBFBD><6B><EFBFBD>́@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
TITLE_YUMEMI db '<27>@ <20>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>`<60><><EFBFBD>@<40>@<40>@ ',0
|
||
NAME_YUMEMI db ' <20>@<40><><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD><EFBFBD>',0
|
||
include th03/formats/cfg_lres[data].asm
|
||
aLogo0_rgb db 'logo0.rgb',0
|
||
aLogo_cd2 db 'logo.cd2',0
|
||
aLogo5_cdg db 'logo5.cdg',0
|
||
aLogo1_rgb db 'logo1.rgb',0
|
||
aSt_cd2 db 'st.cd2',0
|
||
aStnx1_pi db 'stnx1.pi',0
|
||
aStnx0_pi db 'stnx0.pi',0
|
||
a00mm_m db '00mm.m',0
|
||
aDec_m db 'dec.m',0
|
||
aEn2_pi db 'EN2.pi',0
|
||
aEnemy00_pi db 'ENEMY00.pi',0
|
||
aEnemy01_pi db 'ENEMY01.pi',0
|
||
aEnemy02_pi db 'ENEMY02.pi',0
|
||
aEnemy03_pi db 'ENEMY03.pi',0
|
||
aEnemy04_pi db 'ENEMY04.pi',0
|
||
aYume_efc db 'YUME.EFC',0
|
||
aCOul db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1.dat',0
|
||
aMikoft_bft db 'MIKOFT.bft',0
|
||
; char path[]
|
||
path db 'op',0
|
||
aWin_m db 'win.m',0
|
||
; char aMain[]
|
||
aMain db 'main',0
|
||
include libs/master.lib/atan8[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/gaiji_backup[data].asm
|
||
include libs/master.lib/gaiji_entry_bfnt[data].asm
|
||
include libs/master.lib/grp[data].asm
|
||
include libs/master.lib/js[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
|
||
_snd_active db 0
|
||
db 0
|
||
include libs/master.lib/respal_exist[data].asm
|
||
include th03/snd/se_state[data].asm
|
||
include th02/formats/pfopen[data].asm
|
||
include th03/formats/cdg[data].asm
|
||
include th03/snd/se_priority[data].asm
|
||
a0 db '0',0
|
||
aOver_pi db 'over.pi',0
|
||
include th03/formats/pi_slot_put_mask[data].asm
|
||
asc_EFC2 db ' ', 0
|
||
even
|
||
aSCORE_PLAYCHARS label dword
|
||
dd aNoEntry ; " No Entry! "
|
||
dd aB@b@sCB@b@ ; "<22>@<40>@<40>˖<EFBFBD><CB96>@<40>@"
|
||
dd aB@b@cgcvb@b@ ; "<22>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>@<40>@"
|
||
dd aB@cvcanB@ ; " <20>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ "
|
||
dd aB@gggmgub@ ; " <20>@<40>G<EFBFBD><47><EFBFBD><EFBFBD><EFBFBD>@ "
|
||
dd aB@pmuexpb@ ; " <20>@<40><><EFBFBD>e<EFBFBD>P<EFBFBD>@ "
|
||
dd aB@Gjgi ; " <20>@ <20>J<EFBFBD>i "
|
||
dd aB@canboq ; " <20>@<40><><EFBFBD><EFBFBD><EFBFBD>q "
|
||
dd aB@vVfvsb@ ; " <20>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ "
|
||
dd aB@CF ; " <20>@ <20><><EFBFBD><EFBFBD><EFBFBD>@ "
|
||
db 14h
|
||
db 4
|
||
db 8
|
||
db 0Ch
|
||
db 17h
|
||
db 0Eh
|
||
db 0Eh
|
||
db 0Eh
|
||
db 0Ch
|
||
db 8
|
||
db 0Ch
|
||
db 0
|
||
db 0Eh
|
||
db 0Eh
|
||
db 0Eh
|
||
db 0Eh
|
||
db 0Ch
|
||
db 0
|
||
db 14h
|
||
db 8
|
||
db 15h
|
||
db 0
|
||
db 0Eh
|
||
db 0Eh
|
||
db 4
|
||
db 0Bh
|
||
db 4
|
||
db 10h
|
||
db 0Eh
|
||
db 0Eh
|
||
db 0Eh
|
||
db 0Eh
|
||
db 0Ah
|
||
db 11h
|
||
db 16h
|
||
db 11h
|
||
db 7
|
||
db 8
|
||
db 0Ch
|
||
db 4
|
||
db 0Ah
|
||
db 0
|
||
db 10h
|
||
db 0
|
||
db 0Eh
|
||
db 0Eh
|
||
db 0Eh
|
||
db 0Eh
|
||
db 14h
|
||
db 8
|
||
db 0Ah
|
||
db 0
|
||
db 0Ah
|
||
db 11h
|
||
db 0Eh
|
||
db 0Eh
|
||
db 2
|
||
db 7
|
||
db 8
|
||
db 1Bh
|
||
db 17h
|
||
db 14h
|
||
db 8
|
||
db 0Eh
|
||
db 1Bh
|
||
db 17h
|
||
db 0Ch
|
||
db 4
|
||
db 0Ch
|
||
db 8
|
||
db 0Eh
|
||
db 0Eh
|
||
word_ED66 dw 0A04h
|
||
word_ED68 dw 0A0Dh
|
||
unk_ED6A db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
aNoEntry db ' No Entry! ',0
|
||
aB@b@sCB@b@ db '<27>@<40>@<40>˖<EFBFBD><CB96>@<40>@',0
|
||
aB@b@cgcvb@b@ db '<27>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>@<40>@',0
|
||
aB@cvcanB@ db ' <20>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ ',0
|
||
aB@gggmgub@ db ' <20>@<40>G<EFBFBD><47><EFBFBD><EFBFBD><EFBFBD>@ ',0
|
||
aB@pmuexpb@ db ' <20>@<40><><EFBFBD>e<EFBFBD>P<EFBFBD>@ ',0
|
||
aB@Gjgi db ' <20>@ <20>J<EFBFBD>i ',0
|
||
aB@canboq db ' <20>@<40><><EFBFBD><EFBFBD><EFBFBD>q ',0
|
||
aB@vVfvsb@ db ' <20>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ ',0
|
||
aB@CF db ' <20>@ <20><><EFBFBD><EFBFBD><EFBFBD>@ ',0
|
||
aYume_nem db 'YUME.NEM',0
|
||
aRft0_cdg db 'rft0.cdg',0
|
||
aRegib_pi db 'regib.pi',0
|
||
aRegi2_bft db 'regi2.bft',0
|
||
aRegi1_bft db 'regi1.bft',0
|
||
aScore_m db 'score.m',0
|
||
aConti_pi db 'conti.pi',0
|
||
aConti_cd2 db 'conti.cd2',0
|
||
aOver_pi_0 db 'over.pi',0
|
||
aOver_m db 'over.m',0
|
||
db 0
|
||
off_EE4E dd a@00ed_txt
|
||
; "@00ED.TXT"
|
||
db 3Ch ; <
|
||
db 0
|
||
db 7Eh ; ~
|
||
db 0
|
||
db 0FFh
|
||
db 0
|
||
db 0FFh
|
||
db 0
|
||
db 0FFh
|
||
db 0
|
||
db 0FFh
|
||
db 0
|
||
db 7Eh ; ~
|
||
db 0
|
||
db 3Ch ; <
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 18h
|
||
db 0
|
||
db 3Ch ; <
|
||
db 0
|
||
db 7Eh ; ~
|
||
db 0
|
||
db 7Eh ; ~
|
||
db 0
|
||
db 3Ch ; <
|
||
db 0
|
||
db 18h
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 18h
|
||
db 0
|
||
db 3Ch ; <
|
||
db 0
|
||
db 3Ch ; <
|
||
db 0
|
||
db 18h
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 18h
|
||
db 0
|
||
db 18h
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
include th03/formats/cdg_put_dissolve[data].asm
|
||
|
||
aVERDICT_PLAYCHARS label dword
|
||
dd aFocab@sC_0 ; " <20><><EFBFBD><EFBFBD><EFBFBD>@<40>˖<EFBFBD>"
|
||
dd aCgCv_0 ; " <09><> <20><>"
|
||
dd aCIjb@cvcan_0 ; " <20><><EFBFBD>J<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "
|
||
dd aB@b@gggmgu_0 ; "<22>@<40>@<40>G<EFBFBD><47><EFBFBD><EFBFBD>"
|
||
dd aPmuexp_0 ; " <20><><EFBFBD>e<EFBFBD>P"
|
||
dd aGjgibegagigx_0 ; "<22>J<EFBFBD>i<EFBFBD>E<EFBFBD>A<EFBFBD>i<EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD>"
|
||
dd aB@tisqb@canb_0 ; "<22>@<40><><EFBFBD>q<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>q"
|
||
dd aCkftiB@vVfvs_0 ; " <20>k<EFBFBD><6B><EFBFBD>́@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
dd aB@iknsb@cF_0 ; " <20>@<40><><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD><EFBFBD>"
|
||
aVERDICT_RANKS label dword
|
||
dd aVdvbvuvs ; " <20>d<EFBFBD><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
dd aVmvpvtvnvbvm ; " <20>m<EFBFBD><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
dd aVgvbvtvd ; " <20>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
dd aVkvxvovbvfvivg ; "<22>k<EFBFBD><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
aVERDICT_NUMBERS label dword
|
||
dd aVo ; "<22>O"
|
||
dd aVp ; "<22>P"
|
||
dd aVq ; "<22>Q"
|
||
dd aVr ; "<22>R"
|
||
dd aVs ; "<22>S"
|
||
dd aVt ; "<22>T"
|
||
dd aVu ; "<22>U"
|
||
dd aVv ; "<22>V"
|
||
dd aVw ; "<22>W"
|
||
dd aVx ; "<22>X"
|
||
a@00ed_txt db '@00ED.TXT',0
|
||
a@99ed_txt db '@99ED.TXT',0
|
||
; char aOp_0[]
|
||
aOp_0 db 'op',0
|
||
aFocab@sC_0 db ' <20><><EFBFBD><EFBFBD><EFBFBD>@<40>˖<EFBFBD>',0
|
||
aCgCv_0 db ' <20><> <20><>',0
|
||
aCIjb@cvcan_0 db ' <20><><EFBFBD>J<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
|
||
aB@b@gggmgu_0 db '<27>@<40>@<40>G<EFBFBD><47><EFBFBD><EFBFBD>',0
|
||
aPmuexp_0 db ' <20><><EFBFBD>e<EFBFBD>P',0
|
||
aGjgibegagigx_0 db '<27>J<EFBFBD>i<EFBFBD>E<EFBFBD>A<EFBFBD>i<EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD>',0
|
||
aB@tisqb@canb_0 db '<27>@<40><><EFBFBD>q<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>q',0
|
||
aCkftiB@vVfvs_0 db ' <20>k<EFBFBD><6B><EFBFBD>́@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
aB@iknsb@cF_0 db ' <20>@<40><><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD><EFBFBD>',0
|
||
aVdvbvuvs db ' <20>d<EFBFBD><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
aVmvpvtvnvbvm db ' <20>m<EFBFBD><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
aVgvbvtvd db ' <20>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
aVkvxvovbvfvivg db '<27>k<EFBFBD><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
aVo db '<27>O',0
|
||
aVp db '<27>P',0
|
||
aVq db '<27>Q',0
|
||
aVr db '<27>R',0
|
||
aVs db '<27>S',0
|
||
aVt db '<27>T',0
|
||
aVu db '<27>U',0
|
||
aVv db '<27>V',0
|
||
aVw db '<27>W',0
|
||
aVx db '<27>X',0
|
||
aU_ db '<27>_',0
|
||
aEd_m db 'ed.m',0
|
||
aEdbk1_rgb db 'edbk1.rgb',0
|
||
aStf1_cdg db 'stf1.cdg',0
|
||
aStf11_cdg db 'stf11.cdg',0
|
||
aStf3_cdg db 'stf3.cdg',0
|
||
aStf4_cdg db 'stf4.cdg',0
|
||
aStf5_cdg db 'stf5.cdg',0
|
||
aStf6_cdg db 'stf6.cdg',0
|
||
aStf7_cdg db 'stf7.cdg',0
|
||
aStf8_cdg db 'stf8.cdg',0
|
||
aStf9_cdg db 'stf9.cdg',0
|
||
aStf10_cdg db 'stf10.cdg',0
|
||
aStf2_cdg db 'stf2.cdg',0
|
||
aStf12_cdg db 'stf12.cdg',0
|
||
|
||
.data?
|
||
|
||
; TODO: Missing clip[bss].asm (16 bytes) somewhere in there...
|
||
unk_F72C db ? ;
|
||
db 59 dup(?)
|
||
byte_F768 db ?
|
||
unk_F769 db ? ;
|
||
db 59 dup(?)
|
||
byte_F7A5 db ?
|
||
unk_F7A6 db ? ;
|
||
db 59 dup(?)
|
||
byte_F7E2 db ?
|
||
_playchar_filename_id db PLAYER_COUNT dup (?)
|
||
byte_F7E5 db ?
|
||
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 th01/hardware/vram_planes[bss].asm
|
||
include th02/snd/snd[bss].asm
|
||
include th02/snd/load[bss].asm
|
||
include libs/master.lib/pfint21[bss].asm
|
||
include th03/hardware/input[bss].asm
|
||
include th03/formats/cdg[bss].asm
|
||
include th02/formats/pi_slots[bss].asm
|
||
include th03/formats/hfliplut[bss].asm
|
||
dword_105C6 dd ?
|
||
dword_105CA dd ?
|
||
byte_105CE db ?
|
||
db ?
|
||
point_105D0 Point <?>
|
||
word_105D4 dw ?
|
||
col_105D6 db ?
|
||
byte_105D7 db ?
|
||
word_105D8 dw ?
|
||
public _resident
|
||
_resident dd ?
|
||
word_105DE dw ?
|
||
db 80 dup(?)
|
||
byte_10630 db ?
|
||
byte_10631 db ?
|
||
db 4 dup(?)
|
||
byte_10636 db ?
|
||
db 115 dup(?)
|
||
byte_106AA db ?
|
||
byte_106AB db ?
|
||
word_106AC dw ?
|
||
db 2 dup(?)
|
||
byte_106B0 db ?
|
||
db 1281 dup(?)
|
||
word_10BB2 dw ?
|
||
byte_10BB4 db ?
|
||
byte_10BB5 db ?
|
||
byte_10BB6 db ?
|
||
db 5 dup(?)
|
||
word_10BBC dw ?
|
||
word_10BBE dw ?
|
||
word_10BC0 dw ?
|
||
word_10BC2 dw ?
|
||
word_10BC4 dw ?
|
||
byte_10BC6 db ?
|
||
byte_10BC7 db ?
|
||
word_10BC8 dw ?
|
||
word_10BCA dw ?
|
||
_rem_credits db ?
|
||
db 5 dup(?)
|
||
byte_10BD2 db ?
|
||
byte_10BD3 db ?
|
||
byte_10BD4 db ?
|
||
db ?
|
||
_rank db ?
|
||
playchar_10BD7 db ?
|
||
_skill db ?
|
||
db ? ;
|
||
|
||
end
|