mirror of https://github.com/nmlgc/ReC98.git
5710 lines
105 KiB
NASM
5710 lines
105 KiB
NASM
;
|
||
; +-------------------------------------------------------------------------+
|
||
; | This file has been generated by The Interactive Disassembler (IDA) |
|
||
; | Copyright (c) 2009 by Hex-Rays, <support@hex-rays.com> |
|
||
; +-------------------------------------------------------------------------+
|
||
;
|
||
; Input MD5 : 9FB2839DB50F38119D0B98D4FB70CD0E
|
||
|
||
; File Name : th02/OP.EXE
|
||
; Format : MS-DOS executable (EXE)
|
||
; Base Address: 0h Range: 0h-F9F0h Loaded length: E8F8h
|
||
; 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 op_02_TEXT
|
||
__LARGE__ equ 1
|
||
.386 ; ... then switch to what we actually need.
|
||
; And yes, we can't move this to an include file for some reason.
|
||
|
||
include ReC98.inc
|
||
include th02/th02.asm
|
||
include th02/music/music.inc
|
||
|
||
extern F_LMOD@:proc
|
||
extern LDIV@:proc
|
||
extern LXMUL@:proc
|
||
extern LXRSH@:proc
|
||
extern SCOPY@:proc
|
||
extern __mbcjmstojis:proc
|
||
extern __mbctype:byte
|
||
extern _execl:proc
|
||
extern _memcpy: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_setvect.asm
|
||
include libs/master.lib/egc.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_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/grc_setclip.asm
|
||
include libs/master.lib/grcg_fill.asm
|
||
include libs/master.lib/grcg_hline.asm
|
||
include libs/master.lib/grcg_polygon_c.asm
|
||
include libs/master.lib/grcg_round_boxfill.asm
|
||
include libs/master.lib/grcg_setcolor.asm
|
||
include libs/master.lib/gaiji_backup.asm
|
||
include libs/master.lib/gaiji_entry_bfnt.asm
|
||
include libs/master.lib/gaiji_putca.asm
|
||
include libs/master.lib/gaiji_putsa.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_gaiji_puts.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_show.asm
|
||
include libs/master.lib/graph_start.asm
|
||
include libs/master.lib/keybeep.asm
|
||
include libs/master.lib/draw_trapezoid.asm
|
||
include libs/master.lib/make_linework.asm
|
||
include libs/master.lib/palette_init.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/text_clear.asm
|
||
include libs/master.lib/txesc.asm
|
||
include libs/master.lib/text_fillca.asm
|
||
include libs/master.lib/text_putca.asm
|
||
include libs/master.lib/text_putsa.asm
|
||
include libs/master.lib/vsync.asm
|
||
include libs/master.lib/vsync_wait.asm
|
||
include libs/master.lib/palette_white_in.asm
|
||
include libs/master.lib/hmem_lallocate.asm
|
||
include libs/master.lib/mem_assign_dos.asm
|
||
include libs/master.lib/mem_assign.asm
|
||
include libs/master.lib/memheap.asm
|
||
include libs/master.lib/mem_unassign.asm
|
||
include libs/master.lib/super_free.asm
|
||
include libs/master.lib/super_entry_pat.asm
|
||
include libs/master.lib/super_entry_at.asm
|
||
include libs/master.lib/super_entry_bfnt.asm
|
||
include libs/master.lib/super_cancel_pat.asm
|
||
include libs/master.lib/super_put_rect.asm
|
||
include libs/master.lib/super_put.asm
|
||
include libs/master.lib/pfint21.asm
|
||
db 0
|
||
include th02/formats/pfopen.asm
|
||
include libs/master.lib/pf_str_ieq.asm
|
||
_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
op_01_TEXT segment byte public 'CODE' use16
|
||
assume cs:op_01_TEXT
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_9BF0 proc far
|
||
|
||
var_C = word ptr -0Ch
|
||
var_A = word ptr -0Ah
|
||
var_8 = byte ptr -8
|
||
var_7 = byte ptr -7
|
||
var_6 = byte ptr -6
|
||
var_5 = byte ptr -5
|
||
var_4 = byte ptr -4
|
||
var_3 = word ptr -3
|
||
var_1 = byte ptr -1
|
||
|
||
enter 0Ch, 0
|
||
mov [bp+var_A], ds
|
||
mov [bp+var_C], 163h
|
||
push [bp+var_A]
|
||
push [bp+var_C]
|
||
call file_exist
|
||
or ax, ax
|
||
jnz short loc_9C0E
|
||
jmp loc_9C9D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9C0E:
|
||
push [bp+var_A]
|
||
push [bp+var_C]
|
||
call file_ropen
|
||
push ss
|
||
lea ax, [bp+var_8]
|
||
push ax
|
||
push 8
|
||
call file_read
|
||
mov al, [bp+var_8]
|
||
mov byte_DC34, al
|
||
mov al, [bp+var_7]
|
||
mov snd_bgm_mode, al
|
||
mov al, [bp+var_6]
|
||
mov byte_F3E2, al
|
||
mov al, [bp+var_5]
|
||
mov byte_F3E1, al
|
||
mov ax, [bp+var_3]
|
||
mov word_E900, ax
|
||
cmp word_E900, 0
|
||
jz short loc_9C9D
|
||
mov ax, word_E900
|
||
mov word ptr dword_F3DC+2, ax
|
||
mov word ptr dword_F3DC, 0
|
||
les bx, dword_F3DC
|
||
mov al, [bp+var_4]
|
||
mov es:[bx+24h], al
|
||
mov al, [bp+var_1]
|
||
mov es:[bx+0Ch], al
|
||
call file_close
|
||
cmp snd_bgm_mode, SND_BGM_OFF
|
||
jnz short loc_9C80
|
||
mov snd_fm_possible, 0
|
||
mov snd_active, 0
|
||
jmp short loc_9C99
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9C80:
|
||
cmp snd_bgm_mode, SND_BGM_FM
|
||
jnz short loc_9C8E
|
||
mov snd_midi_active, 0
|
||
jmp short loc_9C94
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9C8E:
|
||
mov al, snd_midi_possible
|
||
mov snd_midi_active, al
|
||
|
||
loc_9C94:
|
||
call snd_determine_mode
|
||
|
||
loc_9C99:
|
||
xor ax, ax
|
||
leave
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9C9D:
|
||
mov ax, 1
|
||
leave
|
||
retf
|
||
sub_9BF0 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_9CA2 proc far
|
||
|
||
var_C = byte ptr -0Ch
|
||
var_B = byte ptr -0Bh
|
||
var_A = byte ptr -0Ah
|
||
var_9 = byte ptr -9
|
||
var_8 = byte ptr -8
|
||
var_5 = byte ptr -5
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
|
||
enter 0Ch, 0
|
||
mov [bp+var_2], ds
|
||
mov [bp+var_4], 163h
|
||
mov [bp+var_5], 0
|
||
mov al, byte_DC34
|
||
mov [bp+var_C], al
|
||
mov al, snd_bgm_mode
|
||
mov [bp+var_B], al
|
||
mov al, byte_F3E2
|
||
mov [bp+var_A], al
|
||
mov al, byte_F3E1
|
||
mov [bp+var_9], al
|
||
les bx, dword_F3DC
|
||
mov al, es:[bx+24h]
|
||
mov [bp+var_8], al
|
||
push [bp+var_2]
|
||
push [bp+var_4]
|
||
call file_create
|
||
push ss
|
||
lea ax, [bp+var_C]
|
||
push ax
|
||
push 5
|
||
call file_write
|
||
push ds
|
||
push offset word_E900
|
||
push 2
|
||
call file_write
|
||
push ss
|
||
lea ax, [bp+var_5]
|
||
push ax
|
||
push 1
|
||
call file_write
|
||
call file_close
|
||
leave
|
||
retf
|
||
sub_9CA2 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_9D0A proc far
|
||
push bp
|
||
mov bp, sp
|
||
call text_clear
|
||
call text_fillca pascal, ' ', TX_BLACK + TX_REVERSE
|
||
pop bp
|
||
retf
|
||
sub_9D0A endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_9D1D proc near
|
||
|
||
arg_0 = byte ptr 4
|
||
arg_2 = word ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
call pi_slot_load stdcall, 0, [bp+arg_2], ds
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, [bp+arg_0]
|
||
out dx, al
|
||
call pi_slot_palette_apply stdcall, 0
|
||
call pi_slot_put stdcall, 0, 0, 0
|
||
add sp, 0Eh
|
||
freePISlot 0
|
||
pop bp
|
||
retn 4
|
||
sub_9D1D endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_9D5C proc far
|
||
|
||
var_6 = word ptr -6
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
|
||
enter 6, 0
|
||
push si
|
||
mov dx, word ptr gZUN+2
|
||
mov ax, word ptr gZUN
|
||
mov [bp+var_4], dx
|
||
mov [bp+var_6], ax
|
||
call sub_9D0A
|
||
call snd_load stdcall, offset aHuuma_efc, ds, SND_LOAD_SE
|
||
push 177h
|
||
push 1
|
||
call sub_9D1D
|
||
push 17Eh
|
||
push 0
|
||
call sub_9D1D
|
||
call pi_slot_load stdcall, 0, offset aOpa_pi, ds
|
||
call pi_slot_load stdcall, 1, offset aOpb_pi, ds
|
||
call pi_slot_load stdcall, 2, offset aOpc_pi, ds
|
||
add sp, 18h
|
||
mov PaletteTone, 0C8h ; '<27>'
|
||
call far ptr palette_show
|
||
mov [bp+var_2], 0
|
||
jmp short loc_9E0F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9DC4:
|
||
xor si, si
|
||
jmp short loc_9DED
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9DC8:
|
||
mov ax, 39
|
||
sub ax, [bp+var_2]
|
||
call text_putca pascal, ax, si, ' ', TX_WHITE
|
||
mov ax, [bp+var_2]
|
||
add ax, 40
|
||
call text_putca pascal, ax, si, ' ', TX_WHITE
|
||
inc si
|
||
|
||
loc_9DED:
|
||
cmp si, 25
|
||
jl short loc_9DC8
|
||
mov ax, [bp+var_2]
|
||
add ax, ax
|
||
mov dx, 0C8h ; '<27>'
|
||
sub dx, ax
|
||
mov PaletteTone, dx
|
||
call far ptr palette_show
|
||
push 1
|
||
call frame_delay
|
||
inc [bp+var_2]
|
||
|
||
loc_9E0F:
|
||
cmp [bp+var_2], 28h ; '('
|
||
jl short loc_9DC4
|
||
mov [bp+var_2], 28h ; '('
|
||
jmp short loc_9E39
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_9E1C:
|
||
mov ax, [bp+var_2]
|
||
add ax, ax
|
||
mov dx, 0C8h ; '<27>'
|
||
sub dx, ax
|
||
mov PaletteTone, dx
|
||
call far ptr palette_show
|
||
push 1
|
||
call frame_delay
|
||
inc [bp+var_2]
|
||
|
||
loc_9E39:
|
||
cmp [bp+var_2], 32h ; '2'
|
||
jl short loc_9E1C
|
||
mov PaletteTone, 64h ; 'd'
|
||
call far ptr palette_show
|
||
les bx, dword_F3DC
|
||
cmp byte ptr es:[bx+27h], 0
|
||
jnz short loc_9E97
|
||
mov [bp+var_2], 0
|
||
cmp snd_midi_possible, 0
|
||
jz short loc_9E7D
|
||
mov al, snd_midi_active
|
||
mov ah, 0
|
||
mov [bp+var_2], ax
|
||
mov snd_midi_active, 1
|
||
call snd_load c, offset aOp_m, ds, SND_LOAD_SONG
|
||
|
||
loc_9E7D:
|
||
mov snd_midi_active, 0
|
||
call snd_load c, offset aOp_m, ds, SND_LOAD_SONG
|
||
mov al, byte ptr [bp+var_2]
|
||
mov snd_midi_active, al
|
||
|
||
loc_9E97:
|
||
push 12h
|
||
call frame_delay
|
||
call sub_B2E8
|
||
mov PaletteTone, 0C8h ; '<27>'
|
||
call far ptr palette_show
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
push 224h
|
||
push 180h
|
||
push 0DFh ; '<27>'
|
||
push 0
|
||
call graph_gaiji_putc
|
||
push 234h
|
||
push 180h
|
||
push 10h
|
||
push ss
|
||
lea ax, [bp+var_6]
|
||
push ax
|
||
push 0
|
||
call graph_gaiji_puts
|
||
push 220h
|
||
push 17Ch
|
||
push 0DFh ; '<27>'
|
||
push 6
|
||
call graph_gaiji_putc
|
||
push 230h
|
||
push 17Ch
|
||
push 10h
|
||
push ss
|
||
lea ax, [bp+var_6]
|
||
push ax
|
||
push 6
|
||
call graph_gaiji_puts
|
||
push 0
|
||
call graph_copy_page
|
||
les bx, dword_F3DC
|
||
cmp byte ptr es:[bx+27h], 0
|
||
jnz short loc_9F16
|
||
kajacall KAJA_SONG_PLAY
|
||
pop cx
|
||
|
||
loc_9F16:
|
||
les bx, dword_F3DC
|
||
mov byte ptr es:[bx+27h], 0
|
||
push ds
|
||
push offset aOp_rgb ; "op.rgb"
|
||
call palette_entry_rgb
|
||
call far ptr palette_show
|
||
push 6
|
||
call palette_white_in
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_9D5C endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_9F37 proc near
|
||
push bp
|
||
mov bp, sp
|
||
call snd_se_reset
|
||
call snd_se_play stdcall, 13
|
||
pop cx
|
||
call snd_se_update
|
||
push 14h
|
||
call frame_delay
|
||
les bx, dword_F3DC
|
||
mov al, byte_F3E1
|
||
mov es:[bx+15h], al
|
||
mov al, byte_F3E2
|
||
mov es:[bx+14h], al
|
||
mov al, byte_F3E1
|
||
mov es:[bx+1Ah], al
|
||
mov al, byte_F3E2
|
||
mov es:[bx+19h], al
|
||
mov al, snd_bgm_mode
|
||
mov es:[bx+18h], al
|
||
mov byte ptr es:[bx+17h], 0
|
||
mov word ptr es:[bx+10h], 0
|
||
mov word ptr es:[bx+0Eh], 0
|
||
mov word ptr es:[bx+12h], 0
|
||
mov byte ptr es:[bx+25h], 0
|
||
mov word ptr es:[bx+20h], 0
|
||
mov byte ptr es:[bx+27h], 0
|
||
mov word ptr es:[bx+2Eh], 0
|
||
mov word ptr es:[bx+2Ch], 0
|
||
pop bp
|
||
retn
|
||
sub_9F37 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_9FAF proc far
|
||
push bp
|
||
mov bp, sp
|
||
call sub_9F37
|
||
les bx, dword_F3DC
|
||
mov al, byte_DC34
|
||
mov es:[bx+16h], al
|
||
mov byte ptr es:[bx+0Bh], 0
|
||
call sub_9CA2
|
||
call pi_slot_load stdcall, 0, offset aTs1_pi, ds
|
||
call text_clear
|
||
call sub_BD24
|
||
kajacall KAJA_SONG_FADE, 15
|
||
add sp, 8
|
||
call gaiji_restore
|
||
call super_free
|
||
call sub_B019
|
||
les bx, dword_F3DC
|
||
cmp byte ptr es:[bx+0Ch], 0
|
||
jz short loc_A011
|
||
push 0
|
||
push 0
|
||
push ds
|
||
push offset aSelect ; "select"
|
||
push ds
|
||
push offset aSelect ; "select"
|
||
jmp short loc_A01D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A011:
|
||
push 0
|
||
push 0
|
||
push ds
|
||
push offset path ; "main"
|
||
push ds
|
||
push offset path ; "main"
|
||
|
||
loc_A01D:
|
||
call _execl
|
||
add sp, 0Ch
|
||
pop bp
|
||
retf
|
||
sub_9FAF endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A027 proc far
|
||
push bp
|
||
mov bp, sp
|
||
les bx, dword_F3DC
|
||
mov byte ptr es:[bx+15h], 2
|
||
mov byte ptr es:[bx+14h], 3
|
||
mov byte ptr es:[bx+1Ah], 2
|
||
mov byte ptr es:[bx+19h], 3
|
||
mov al, snd_bgm_mode
|
||
mov es:[bx+18h], al
|
||
mov byte ptr es:[bx+16h], 1
|
||
mov word ptr es:[bx+12h], 0
|
||
mov byte ptr es:[bx+25h], 0
|
||
mov al, byte_E8FE
|
||
mov es:[bx+27h], al
|
||
mov byte ptr es:[bx+26h], 0
|
||
call sub_9CA2
|
||
call text_clear
|
||
freePISlot 0
|
||
freePISlot 1
|
||
freePISlot 2
|
||
call gaiji_restore
|
||
call super_free
|
||
call sub_B019
|
||
push 0
|
||
push 0
|
||
push ds
|
||
push offset path ; "main"
|
||
push ds
|
||
push offset path ; "main"
|
||
call _execl
|
||
add sp, 0Ch
|
||
pop bp
|
||
retf
|
||
sub_A027 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A0C6 proc far
|
||
push bp
|
||
mov bp, sp
|
||
call sub_9F37
|
||
les bx, dword_F3DC
|
||
mov byte ptr es:[bx+16h], 4
|
||
mov byte ptr es:[bx+0Bh], 5
|
||
mov byte ptr es:[bx+15h], 2
|
||
mov byte ptr es:[bx+14h], 1
|
||
mov byte ptr es:[bx+1Ah], 2
|
||
mov byte ptr es:[bx+19h], 1
|
||
call sub_9CA2
|
||
call pi_slot_load stdcall, 0, offset aTs1_pi, ds
|
||
call text_clear
|
||
call sub_BD24
|
||
kajacall KAJA_SONG_FADE, 15
|
||
add sp, 8
|
||
call gaiji_restore
|
||
call super_free
|
||
call sub_B019
|
||
les bx, dword_F3DC
|
||
cmp byte ptr es:[bx+0Ch], 0
|
||
jz short loc_A13A
|
||
push 0
|
||
push 0
|
||
push ds
|
||
push offset aSelect ; "select"
|
||
push ds
|
||
push offset aSelect ; "select"
|
||
jmp short loc_A146
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A13A:
|
||
push 0
|
||
push 0
|
||
push ds
|
||
push offset path ; "main"
|
||
push ds
|
||
push offset path ; "main"
|
||
|
||
loc_A146:
|
||
call _execl
|
||
add sp, 0Ch
|
||
pop bp
|
||
retf
|
||
sub_A0C6 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A150 proc near
|
||
push bp
|
||
mov bp, sp
|
||
push 11Ch
|
||
push 104h
|
||
push 10h
|
||
push ds
|
||
push offset gSTART
|
||
push 0
|
||
call graph_gaiji_puts
|
||
push 0ECh
|
||
push 114h
|
||
push 10h
|
||
push ds
|
||
push offset gEXTRA_START
|
||
push 0
|
||
call graph_gaiji_puts
|
||
push 10Ch
|
||
push 124h
|
||
push 10h
|
||
push ds
|
||
push offset gHISCORE
|
||
push 0
|
||
call graph_gaiji_puts
|
||
push 114h
|
||
push 134h
|
||
push 10h
|
||
push ds
|
||
push offset gOPTION
|
||
push 0
|
||
call graph_gaiji_puts
|
||
push 0F4h
|
||
push 144h
|
||
push 10h
|
||
push ds
|
||
push offset gMUSIC_MODE
|
||
push 0
|
||
call graph_gaiji_puts
|
||
push 124h
|
||
push 154h
|
||
push 10h
|
||
push ds
|
||
push offset gQUIT
|
||
push 0
|
||
call graph_gaiji_puts
|
||
push 0D4h
|
||
push 174h
|
||
push 10h
|
||
push ds
|
||
push offset gRANK
|
||
push 0
|
||
call graph_gaiji_puts
|
||
push 134h
|
||
push 174h
|
||
push 10h
|
||
push ds
|
||
mov al, byte_DC34
|
||
cbw
|
||
shl ax, 3
|
||
add ax, offset gcEASY
|
||
push ax
|
||
push 0
|
||
call graph_gaiji_puts
|
||
pop bp
|
||
retn
|
||
sub_A150 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A1F5 proc near
|
||
|
||
arg_0 = word ptr 4
|
||
arg_2 = word ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
mov si, [bp+arg_2]
|
||
mov di, [bp+arg_0]
|
||
or si, si
|
||
jnz short loc_A20E
|
||
push 35
|
||
push 16
|
||
push ds
|
||
push offset gSTART
|
||
jmp short loc_A248
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A20E:
|
||
cmp si, 2
|
||
jnz short loc_A21D
|
||
push 33
|
||
push 18
|
||
push ds
|
||
push offset gHISCORE
|
||
jmp short loc_A248
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A21D:
|
||
cmp si, 3
|
||
jnz short loc_A22C
|
||
push 34
|
||
push 19
|
||
push ds
|
||
push offset gOPTION
|
||
jmp short loc_A248
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A22C:
|
||
cmp si, 4
|
||
jnz short loc_A23B
|
||
push 30
|
||
push 20
|
||
push ds
|
||
push offset gMUSIC_MODE
|
||
jmp short loc_A248
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A23B:
|
||
cmp si, 5
|
||
jnz short loc_A24E
|
||
push 36
|
||
push 21
|
||
push ds
|
||
push offset gQUIT
|
||
|
||
loc_A248:
|
||
push di
|
||
call gaiji_putsa
|
||
|
||
loc_A24E:
|
||
cmp si, 1
|
||
jnz short loc_A274
|
||
cmp byte_F4A2, 0
|
||
jz short loc_A265
|
||
push 29
|
||
push 17
|
||
push ds
|
||
push offset gEXTRA_START
|
||
push di
|
||
jmp short loc_A26F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A265:
|
||
push 29
|
||
push 17
|
||
push ds
|
||
push offset gEXTRA_START
|
||
push TX_BLUE
|
||
|
||
loc_A26F:
|
||
call gaiji_putsa
|
||
|
||
loc_A274:
|
||
call gaiji_putsa pascal, 26, 23, ds, offset gRANK, TX_GREEN
|
||
push 38
|
||
push 23
|
||
push ds
|
||
mov al, byte_DC34
|
||
cbw
|
||
shl ax, 3
|
||
add ax, offset gcEASY
|
||
push ax
|
||
push TX_GREEN
|
||
call gaiji_putsa
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retn 4
|
||
sub_A1F5 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A2A2 proc near
|
||
|
||
arg_0 = byte ptr 4
|
||
arg_2 = byte ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
mov al, byte_D6C0
|
||
cbw
|
||
call fp_E902 pascal, ax, TX_YELLOW
|
||
mov al, [bp+arg_0]
|
||
add byte_D6C0, al
|
||
cmp byte_D6C1, 0
|
||
jnz short loc_A2D1
|
||
cmp byte_F4A2, 0
|
||
jnz short loc_A2D1
|
||
cmp byte_D6C0, 1
|
||
jnz short loc_A2D1
|
||
add byte_D6C0, al
|
||
|
||
loc_A2D1:
|
||
cmp byte_D6C0, 0
|
||
jge short loc_A2DE
|
||
mov al, [bp+arg_2]
|
||
mov byte_D6C0, al
|
||
|
||
loc_A2DE:
|
||
mov al, byte_D6C0
|
||
cmp al, [bp+arg_2]
|
||
jle short loc_A2EB
|
||
mov byte_D6C0, 0
|
||
|
||
loc_A2EB:
|
||
mov al, byte_D6C0
|
||
cbw
|
||
push ax
|
||
push 0E1h
|
||
call fp_E902
|
||
pop bp
|
||
retn 4
|
||
sub_A2A2 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A2FB proc far
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
cmp byte_D790, 0
|
||
jnz short loc_A356
|
||
mov byte_E8F8, 0
|
||
mov byte_D790, 1
|
||
call text_clear
|
||
mov dx, 0A4h ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
push 0
|
||
call graph_copy_page
|
||
call sub_A150
|
||
mov dx, 0A4h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
mov word_E8FC, 0
|
||
xor si, si
|
||
jmp short loc_A34B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A335:
|
||
push si
|
||
mov al, byte_D6C0
|
||
cbw
|
||
cmp ax, si
|
||
jnz short loc_A343
|
||
mov ax, TX_WHITE
|
||
jmp short loc_A346
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A343:
|
||
mov ax, TX_YELLOW
|
||
|
||
loc_A346:
|
||
push ax
|
||
call sub_A1F5
|
||
inc si
|
||
|
||
loc_A34B:
|
||
cmp si, 6
|
||
jl short loc_A335
|
||
mov fp_E902, offset sub_A1F5
|
||
|
||
loc_A356:
|
||
cmp word_F3C8, 0
|
||
jnz short loc_A362
|
||
mov byte_E8F8, 1
|
||
|
||
loc_A362:
|
||
cmp byte_E8F8, 0
|
||
jnz short loc_A36C
|
||
jmp loc_A466
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A36C:
|
||
test byte ptr word_F3C8, 1
|
||
jz short loc_A37A
|
||
push 5
|
||
push 0FFFFh
|
||
call sub_A2A2
|
||
|
||
loc_A37A:
|
||
test byte ptr word_F3C8, 2
|
||
jz short loc_A388
|
||
push 5
|
||
push 1
|
||
call sub_A2A2
|
||
|
||
loc_A388:
|
||
test byte ptr word_F3C8, 10h
|
||
jnz short loc_A399
|
||
test byte ptr word_F3C8, 80h
|
||
jnz short loc_A399
|
||
jmp loc_A448
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A399:
|
||
mov al, byte_D6C0
|
||
cbw
|
||
mov bx, ax
|
||
cmp bx, 5
|
||
jbe short loc_A3A7
|
||
jmp loc_A448
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A3A7:
|
||
add bx, bx
|
||
jmp cs:off_A475[bx]
|
||
|
||
loc_A3AE:
|
||
call sub_9FAF
|
||
jmp loc_A448
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A3B5:
|
||
call sub_A0C6
|
||
jmp loc_A448
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A3BC:
|
||
mov word_F4A4, 7D0h
|
||
call text_clear
|
||
call sub_B77E
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
mov dx, 0A4h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
call pi_slot_load stdcall, 0, offset aOp2_pi, ds
|
||
call pi_slot_palette_apply stdcall, 0
|
||
call pi_slot_put stdcall, 0, 0, 0
|
||
add sp, 0Eh
|
||
freePISlot 0
|
||
push ds
|
||
push offset aOp_rgb ; "op.rgb"
|
||
call palette_entry_rgb
|
||
call far ptr palette_show
|
||
push 0
|
||
call graph_copy_page
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
|
||
loc_A424:
|
||
mov byte_D790, 0
|
||
jmp short loc_A448
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A42B:
|
||
mov byte_D6C0, 0
|
||
mov byte_D6C1, 1
|
||
jmp short loc_A424
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A437:
|
||
call text_clear
|
||
call sub_C7A0
|
||
jmp short loc_A424
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A443:
|
||
mov byte_D6C2, 1
|
||
|
||
loc_A448:
|
||
test byte ptr word_F3C8, 40h
|
||
jz short loc_A454
|
||
mov byte_D6C2, 1
|
||
|
||
loc_A454:
|
||
cmp word_F3C8, 0
|
||
jz short loc_A466
|
||
mov byte_E8F8, 0
|
||
mov word_E8FC, 0
|
||
|
||
loc_A466:
|
||
cmp word_E8FC, 280h
|
||
jbe short loc_A472
|
||
call sub_A027
|
||
|
||
loc_A472:
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_A2FB endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
off_A475 dw offset loc_A3AE
|
||
dw offset loc_A3B5
|
||
dw offset loc_A3BC
|
||
dw offset loc_A42B
|
||
dw offset loc_A437
|
||
dw offset loc_A443
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A481 proc near
|
||
push bp
|
||
mov bp, sp
|
||
push 0C4h ; '<27>'
|
||
push 104h
|
||
push 10h
|
||
push ds
|
||
push offset gRANK
|
||
push 0
|
||
call graph_gaiji_puts
|
||
push 0C4h ; '<27>'
|
||
push 114h
|
||
push 10h
|
||
push ds
|
||
push offset gMUSIC
|
||
push 0
|
||
call graph_gaiji_puts
|
||
push 0C4h ; '<27>'
|
||
push 124h
|
||
push 10h
|
||
push ds
|
||
push offset gPLAYER
|
||
push 0
|
||
call graph_gaiji_puts
|
||
push 0C4h ; '<27>'
|
||
push 134h
|
||
push 10h
|
||
push ds
|
||
push offset gBOMB
|
||
push 0
|
||
call graph_gaiji_puts
|
||
push word ptr PERF_TITLE+2
|
||
push word ptr PERF_TITLE
|
||
push 0
|
||
push 144h
|
||
push 0C4h ; '<27>'
|
||
call sub_AB4D
|
||
add sp, 0Ah
|
||
push 11Ch
|
||
push 154h
|
||
push 10h
|
||
push ds
|
||
push offset gRESET
|
||
push 0
|
||
call graph_gaiji_puts
|
||
push 124h
|
||
push 174h
|
||
push 10h
|
||
push ds
|
||
push offset gQUIT
|
||
push 0
|
||
call graph_gaiji_puts
|
||
pop bp
|
||
retn
|
||
sub_A481 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A510 proc near
|
||
|
||
arg_0 = word ptr 4
|
||
arg_2 = word ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
mov di, [bp+arg_2]
|
||
mov si, [bp+arg_0]
|
||
or di, di
|
||
jnz short loc_A568
|
||
push 24
|
||
push 16
|
||
push ds
|
||
push offset gRANK
|
||
push si
|
||
call gaiji_putsa
|
||
push 42
|
||
push 16
|
||
push ds
|
||
mov al, byte_DC34
|
||
cbw
|
||
shl ax, 3
|
||
add ax, offset gcEASY
|
||
push ax
|
||
push si
|
||
call gaiji_putsa
|
||
push 150h
|
||
push 104h
|
||
push 80h
|
||
push 10h
|
||
call sub_AE00
|
||
push 154h
|
||
push 104h
|
||
push 10h
|
||
push ds
|
||
mov al, byte_DC34
|
||
cbw
|
||
shl ax, 3
|
||
add ax, offset gcEASY
|
||
jmp short loc_A5B3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A568:
|
||
cmp di, 1
|
||
jnz short loc_A5BE
|
||
call gaiji_putsa pascal, 24, 17, ds, offset gMUSIC, si
|
||
push 47
|
||
push 17
|
||
push ds
|
||
mov al, snd_bgm_mode
|
||
cbw
|
||
imul ax, 5
|
||
add ax, offset gOFF
|
||
push ax
|
||
push si
|
||
call gaiji_putsa
|
||
push 178h
|
||
push 114h
|
||
push 40h
|
||
push 10h
|
||
call sub_AE00
|
||
push 17Ch
|
||
push 114h
|
||
push 10h
|
||
push ds
|
||
mov al, snd_bgm_mode
|
||
cbw
|
||
imul ax, 5
|
||
add ax, 145h
|
||
|
||
loc_A5B3:
|
||
push ax
|
||
push 0
|
||
call graph_gaiji_puts
|
||
jmp loc_A6E9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A5BE:
|
||
cmp di, 2
|
||
jnz short loc_A60A
|
||
call gaiji_putsa pascal, 24, 18, ds, offset gPLAYER, si
|
||
push 49
|
||
push 18
|
||
mov al, byte_F3E1
|
||
cbw
|
||
add ax, 0A1h ; '<27>'
|
||
push ax
|
||
push si
|
||
call gaiji_putca
|
||
push 188h
|
||
push 124h
|
||
push 20h ; ' '
|
||
push 10h
|
||
call sub_AE00
|
||
push 18Ch
|
||
push 124h
|
||
mov al, byte_F3E1
|
||
cbw
|
||
add ax, 0A1h ; '<27>'
|
||
push ax
|
||
push 0
|
||
call graph_gaiji_putc
|
||
jmp loc_A6E9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A60A:
|
||
cmp di, 3
|
||
jnz short loc_A656
|
||
call gaiji_putsa pascal, 24, 19, ds, offset gBOMB, si
|
||
push 49
|
||
push 19
|
||
mov al, byte_F3E2
|
||
cbw
|
||
add ax, 0A0h
|
||
push ax
|
||
push si
|
||
call gaiji_putca
|
||
push 188h
|
||
push 134h
|
||
push 20h ; ' '
|
||
push 10h
|
||
call sub_AE00
|
||
push 18Ch
|
||
push 134h
|
||
mov al, byte_F3E2
|
||
cbw
|
||
add ax, 0A0h
|
||
push ax
|
||
push 0
|
||
call graph_gaiji_putc
|
||
jmp loc_A6E9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A656:
|
||
cmp di, 4
|
||
jnz short loc_A6C7
|
||
call text_putsa pascal, 24, 20, word ptr PERF_TITLE+2, word ptr PERF_TITLE, si
|
||
push 45
|
||
push 20
|
||
les bx, dword_F3DC
|
||
mov al, es:[bx+24h]
|
||
mov ah, 0
|
||
shl ax, 2
|
||
mov bx, ax
|
||
push word ptr (PERF_OPTION+2)[bx]
|
||
push word ptr PERF_OPTION[bx]
|
||
push si
|
||
call text_putsa
|
||
push 168h
|
||
push 144h
|
||
push 80h
|
||
push 10h
|
||
call sub_AE00
|
||
les bx, dword_F3DC
|
||
mov al, es:[bx+24h]
|
||
mov ah, 0
|
||
shl ax, 2
|
||
mov bx, ax
|
||
push word ptr (PERF_OPTION+2)[bx]
|
||
push word ptr PERF_OPTION[bx]
|
||
push 0
|
||
push 144h
|
||
push 16Ch
|
||
call sub_AB4D
|
||
add sp, 0Ah
|
||
jmp short loc_A6E9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A6C7:
|
||
cmp di, 5
|
||
jnz short loc_A6D6
|
||
push 35
|
||
push 21
|
||
push ds
|
||
push offset gRESET
|
||
jmp short loc_A6E3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A6D6:
|
||
cmp di, 6
|
||
jnz short loc_A6E9
|
||
push 36
|
||
push 23
|
||
push ds
|
||
push offset gQUIT
|
||
|
||
loc_A6E3:
|
||
push si
|
||
call gaiji_putsa
|
||
|
||
loc_A6E9:
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retn 4
|
||
sub_A510 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A6EF proc near
|
||
push bp
|
||
mov bp, sp
|
||
cmp snd_bgm_mode, SND_BGM_OFF
|
||
jnz short loc_A70E
|
||
mov snd_fm_possible, 0
|
||
kajacall KAJA_SONG_STOP
|
||
pop cx
|
||
mov snd_active, 0
|
||
pop bp
|
||
retn
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A70E:
|
||
cmp snd_bgm_mode, SND_BGM_FM
|
||
jnz short loc_A725
|
||
kajacall KAJA_SONG_STOP
|
||
pop cx
|
||
mov snd_midi_active, 0
|
||
jmp short loc_A73B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A725:
|
||
cmp snd_bgm_mode, SND_BGM_MIDI
|
||
jnz short loc_A748
|
||
kajacall KAJA_SONG_STOP
|
||
pop cx
|
||
mov al, snd_midi_possible
|
||
mov snd_midi_active, al
|
||
|
||
loc_A73B:
|
||
call snd_determine_mode
|
||
kajacall KAJA_SONG_PLAY
|
||
pop cx
|
||
|
||
loc_A748:
|
||
pop bp
|
||
retn
|
||
sub_A6EF endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A74A proc far
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
cmp byte_D792, 0
|
||
jnz short loc_A79F
|
||
mov byte_D791, 0
|
||
mov byte_D792, 1
|
||
call text_clear
|
||
mov dx, 0A4h ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
push 0
|
||
call graph_copy_page
|
||
call sub_A481
|
||
mov dx, 0A4h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
xor si, si
|
||
jmp short loc_A794
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A77E:
|
||
push si
|
||
mov al, byte_D6C0
|
||
cbw
|
||
cmp ax, si
|
||
jnz short loc_A78C
|
||
mov ax, TX_WHITE
|
||
jmp short loc_A78F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A78C:
|
||
mov ax, TX_YELLOW
|
||
|
||
loc_A78F:
|
||
push ax
|
||
call sub_A510
|
||
inc si
|
||
|
||
loc_A794:
|
||
cmp si, 7
|
||
jl short loc_A77E
|
||
mov fp_E902, offset sub_A510
|
||
|
||
loc_A79F:
|
||
cmp word_F3C8, 0
|
||
jnz short loc_A7AB
|
||
mov byte_D791, 1
|
||
|
||
loc_A7AB:
|
||
cmp byte_D791, 0
|
||
jnz short loc_A7B5
|
||
jmp loc_A9A1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A7B5:
|
||
test byte ptr word_F3C8, 1
|
||
jz short loc_A7C3
|
||
push 6
|
||
push 0FFFFh
|
||
call sub_A2A2
|
||
|
||
loc_A7C3:
|
||
test byte ptr word_F3C8, 2
|
||
jz short loc_A7D1
|
||
push 6
|
||
push 1
|
||
call sub_A2A2
|
||
|
||
loc_A7D1:
|
||
test byte ptr word_F3C8, 8
|
||
jnz short loc_A7DB
|
||
jmp loc_A85C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A7DB:
|
||
mov al, byte_D6C0
|
||
cbw
|
||
call sub_A510 pascal, ax, TX_YELLOW
|
||
mov al, byte_D6C0
|
||
cbw
|
||
mov bx, ax
|
||
cmp bx, 4
|
||
ja short loc_A851
|
||
add bx, bx
|
||
jmp cs:off_A9AF[bx]
|
||
|
||
loc_A7F8:
|
||
inc byte_DC34
|
||
cmp byte_DC34, 3
|
||
jle short loc_A851
|
||
mov byte_DC34, 0
|
||
jmp short loc_A851
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A80A:
|
||
inc snd_bgm_mode
|
||
cmp snd_bgm_mode, SND_BGM_MIDI
|
||
jle short loc_A81A
|
||
mov snd_bgm_mode, SND_BGM_OFF
|
||
|
||
loc_A81A:
|
||
call sub_A6EF
|
||
jmp short loc_A851
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A81F:
|
||
inc byte_F3E1
|
||
cmp byte_F3E1, 4
|
||
jle short loc_A851
|
||
mov byte_F3E1, 0
|
||
jmp short loc_A851
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A831:
|
||
inc byte_F3E2
|
||
cmp byte_F3E2, 3
|
||
jle short loc_A851
|
||
mov byte_F3E2, 0
|
||
jmp short loc_A851
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A843:
|
||
les bx, dword_F3DC
|
||
mov al, 1
|
||
sub al, es:[bx+24h]
|
||
mov es:[bx+24h], al
|
||
|
||
loc_A851:
|
||
mov al, byte_D6C0
|
||
cbw
|
||
call sub_A510 pascal, ax, TX_WHITE
|
||
|
||
loc_A85C:
|
||
test byte ptr word_F3C8, 4
|
||
jnz short loc_A866
|
||
jmp loc_A8E7
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A866:
|
||
mov al, byte_D6C0
|
||
cbw
|
||
call sub_A510 pascal, ax, TX_YELLOW
|
||
mov al, byte_D6C0
|
||
cbw
|
||
mov bx, ax
|
||
cmp bx, 4
|
||
ja short loc_A8DC
|
||
add bx, bx
|
||
jmp cs:off_A9A5[bx]
|
||
|
||
loc_A883:
|
||
dec byte_DC34
|
||
cmp byte_DC34, 0
|
||
jge short loc_A8DC
|
||
mov byte_DC34, 3
|
||
jmp short loc_A8DC
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A895:
|
||
dec snd_bgm_mode
|
||
cmp snd_bgm_mode, SND_BGM_OFF
|
||
jge short loc_A8A5
|
||
mov snd_bgm_mode, SND_BGM_MIDI
|
||
|
||
loc_A8A5:
|
||
call sub_A6EF
|
||
jmp short loc_A8DC
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A8AA:
|
||
dec byte_F3E1
|
||
cmp byte_F3E1, 0
|
||
jge short loc_A8DC
|
||
mov byte_F3E1, 4
|
||
jmp short loc_A8DC
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A8BC:
|
||
dec byte_F3E2
|
||
cmp byte_F3E2, 0
|
||
jge short loc_A8DC
|
||
mov byte_F3E2, 3
|
||
jmp short loc_A8DC
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A8CE:
|
||
les bx, dword_F3DC
|
||
mov al, 1
|
||
sub al, es:[bx+24h]
|
||
mov es:[bx+24h], al
|
||
|
||
loc_A8DC:
|
||
mov al, byte_D6C0
|
||
cbw
|
||
push ax
|
||
push 0E1h
|
||
call sub_A510
|
||
|
||
loc_A8E7:
|
||
test byte ptr word_F3C8, 10h
|
||
jnz short loc_A8F8
|
||
test byte ptr word_F3C8, 80h
|
||
jnz short loc_A8F8
|
||
jmp loc_A97F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A8F8:
|
||
mov al, byte_D6C0
|
||
cbw
|
||
cmp ax, 5
|
||
jz short loc_A908
|
||
cmp ax, 6
|
||
jz short loc_A970
|
||
jmp short loc_A97F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A908:
|
||
mov byte_DC34, 1
|
||
mov snd_bgm_mode, SND_BGM_FM
|
||
kajacall KAJA_SONG_STOP
|
||
mov snd_midi_active, 0
|
||
call snd_determine_mode
|
||
kajacall KAJA_SONG_PLAY
|
||
add sp, 4
|
||
mov byte_F3E1, 2
|
||
mov byte_F3E2, 3
|
||
les bx, dword_F3DC
|
||
mov byte ptr es:[bx+22h], 1
|
||
mov byte ptr es:[bx+24h], 0
|
||
call sub_A510 pascal, 0, TX_YELLOW
|
||
call sub_A510 pascal, 1, TX_YELLOW
|
||
call sub_A510 pascal, 2, TX_YELLOW
|
||
call sub_A510 pascal, 3, TX_YELLOW
|
||
call sub_A510 pascal, 4, TX_YELLOW
|
||
jmp short loc_A97F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A970:
|
||
mov byte_D6C0, 3
|
||
mov byte_D6C1, 0
|
||
mov byte_D792, 0
|
||
|
||
loc_A97F:
|
||
test byte ptr word_F3C8, 40h
|
||
jz short loc_A995
|
||
mov byte_D6C0, 3
|
||
mov byte_D6C1, 0
|
||
mov byte_D792, 0
|
||
|
||
loc_A995:
|
||
cmp word_F3C8, 0
|
||
jz short loc_A9A1
|
||
mov byte_D791, 0
|
||
|
||
loc_A9A1:
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_A74A endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
db 0
|
||
off_A9A5 dw offset loc_A883
|
||
dw offset loc_A895
|
||
dw offset loc_A8AA
|
||
dw offset loc_A8BC
|
||
dw offset loc_A8CE
|
||
off_A9AF dw offset loc_A7F8
|
||
dw offset loc_A80A
|
||
dw offset loc_A81F
|
||
dw offset loc_A831
|
||
dw offset loc_A843
|
||
|
||
; =============== 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 snd_pmd_resident
|
||
or ax, ax
|
||
jz short loc_A9EE
|
||
call snd_mmd_resident
|
||
call sub_AFB0
|
||
or ax, ax
|
||
jz short loc_A9DD
|
||
push 3
|
||
call sub_AB41
|
||
jmp short loc_A9EE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A9DD:
|
||
call sub_B86E
|
||
mov byte_F4A2, al
|
||
call sub_9BF0
|
||
cmp ax, 1
|
||
jnz short loc_A9F3
|
||
|
||
loc_A9EE:
|
||
mov ax, 1
|
||
leave
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A9F3:
|
||
call gaiji_backup
|
||
push ds
|
||
push offset aMikoft_bft ; "MIKOFT.bft"
|
||
call gaiji_entry_bfnt
|
||
les bx, dword_F3DC
|
||
cmp byte ptr es:[bx+27h], 0
|
||
jnz short loc_AA1C
|
||
mov byte_E8FE, 1
|
||
kajacall KAJA_SONG_STOP
|
||
pop cx
|
||
jmp short loc_AA4A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AA1C:
|
||
les bx, dword_F3DC
|
||
mov al, es:[bx+27h]
|
||
inc al
|
||
mov byte_E8FE, al
|
||
cmp byte_E8FE, 3
|
||
jbe short loc_AA35
|
||
mov byte_E8FE, 1
|
||
|
||
loc_AA35:
|
||
mov word_F4A4, 15Eh
|
||
call sub_B77E
|
||
mov dx, 0A4h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
mov dx, 0A6h ; '<27>'
|
||
out dx, al
|
||
|
||
loc_AA4A:
|
||
mov word_F3C8, 0
|
||
mov al, snd_bgm_mode
|
||
mov snd_active, al
|
||
les bx, dword_F3DC
|
||
cmp byte ptr es:[bx+27h], 0
|
||
jnz short loc_AA8F
|
||
cmp snd_midi_possible, 0
|
||
jz short loc_AA8F
|
||
mov al, snd_midi_active
|
||
mov [bp+var_2], al
|
||
mov snd_midi_active, 1
|
||
call snd_load stdcall, offset aGminit_m, ds, SND_LOAD_SONG
|
||
kajacall KAJA_SONG_PLAY
|
||
add sp, 8
|
||
mov al, [bp+var_2]
|
||
mov snd_midi_active, al
|
||
|
||
loc_AA8F:
|
||
call sub_9D5C
|
||
call pi_slot_load stdcall, 2, offset aTs3_pi, ds
|
||
call pi_slot_load stdcall, 1, offset aTs2_pi, ds
|
||
add sp, 0Ch
|
||
mov word_F3C8, 0
|
||
mov word_E8FC, 0
|
||
jmp short loc_AAF0
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AABA:
|
||
call sub_AED0
|
||
cmp byte_D6C1, 0
|
||
jnz short loc_AACC
|
||
call sub_A2FB
|
||
jmp short loc_AAD7
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AACC:
|
||
cmp byte_D6C1, 1
|
||
jnz short loc_AAD7
|
||
call sub_A74A
|
||
|
||
loc_AAD7:
|
||
les bx, dword_F3DC
|
||
add word ptr es:[bx+1Ch], 1
|
||
adc word ptr es:[bx+1Eh], 0
|
||
inc word_E8FC
|
||
push 1
|
||
call frame_delay
|
||
|
||
loc_AAF0:
|
||
cmp byte_D6C2, 0
|
||
jz short loc_AABA
|
||
les bx, dword_F3DC
|
||
mov al, es:[bx+23h]
|
||
mov [bp+var_1], al
|
||
mov word_E900, 0
|
||
call sub_9CA2
|
||
call text_clear
|
||
call graph_clear
|
||
call sub_AB28
|
||
call gaiji_restore
|
||
mov al, [bp-1]
|
||
mov ah, 0
|
||
leave
|
||
retf
|
||
_main endp
|
||
db 0
|
||
|
||
op_01_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
op_02_TEXT segment word public 'CODE' use16
|
||
assume cs:op_02_TEXT
|
||
;org 8
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_AB28 proc far
|
||
push bp
|
||
mov bp, sp
|
||
nopcall sub_B019
|
||
call key_beep_on
|
||
call text_systemline_show
|
||
call text_cursor_show
|
||
pop bp
|
||
retf
|
||
sub_AB28 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_AB41 proc far
|
||
|
||
arg_0 = word ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
mov ax, [bp+arg_0]
|
||
int 59h ; GSS Computer Graphics Interface (GSS*CGI)
|
||
; DS:DX -> block of 5 array pointers
|
||
; Return: CF set on error, AX = error code
|
||
; CF clear if successful, AX = return code
|
||
pop bp
|
||
retf 2
|
||
sub_AB41 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_AB4D proc far
|
||
|
||
var_32 = byte ptr -32h
|
||
var_12 = word ptr -12h
|
||
var_10 = word ptr -10h
|
||
var_E = word ptr -0Eh
|
||
var_C = word ptr -0Ch
|
||
var_A = word ptr -0Ah
|
||
var_8 = dword ptr -8
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
arg_6 = dword ptr 0Ch
|
||
|
||
enter 32h, 0
|
||
push si
|
||
push di
|
||
mov di, [bp+arg_0]
|
||
mov ax, [bp+arg_4]
|
||
sar ax, 4
|
||
and ax, 3
|
||
mov [bp+var_E], ax
|
||
mov ax, [bp+arg_4]
|
||
sar ax, 6
|
||
and ax, 7
|
||
mov [bp+var_10], ax
|
||
call grcg_setcolor pascal, GC_RMW, [bp+arg_4]
|
||
mov dx, 68h ; 'h'
|
||
mov al, 0Bh
|
||
out dx, al
|
||
jmp loc_AD92
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AB82:
|
||
mov ax, [bp+arg_2]
|
||
imul ax, 50h
|
||
push ax
|
||
mov ax, di
|
||
mov bx, 8
|
||
cwd
|
||
idiv bx
|
||
pop dx
|
||
add dx, ax
|
||
mov word ptr [bp+var_8+2], 0A800h
|
||
mov word ptr [bp+var_8], dx
|
||
mov ax, di
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_C], dx
|
||
les bx, [bp+arg_6]
|
||
mov al, es:[bx]
|
||
mov ah, 0
|
||
mov bx, ax
|
||
test __mbctype+1[bx], 4
|
||
jz short loc_ABD7
|
||
mov bx, word ptr [bp+arg_6]
|
||
mov al, es:[bx]
|
||
cbw
|
||
shl ax, 8
|
||
mov dl, es:[bx+1]
|
||
mov dh, 0
|
||
add ax, dx
|
||
push ax
|
||
call __mbcjmstojis
|
||
pop cx
|
||
mov [bp+var_2], ax
|
||
add word ptr [bp+arg_6], 2
|
||
jmp short loc_AC1D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ABD7:
|
||
les bx, [bp+arg_6]
|
||
mov al, es:[bx]
|
||
mov ah, 0
|
||
mov bx, ax
|
||
test __mbctype+1[bx], 3
|
||
jz short loc_ABF5
|
||
mov bx, word ptr [bp+arg_6]
|
||
mov al, es:[bx]
|
||
mov ah, 0
|
||
add ax, 2980h
|
||
jmp short loc_AC10
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ABF5:
|
||
les bx, [bp+arg_6]
|
||
mov al, es:[bx]
|
||
cbw
|
||
mov bx, ax
|
||
test byte ptr [bx+0E91h], 5Eh
|
||
jz short loc_AC15
|
||
mov bx, word ptr [bp+arg_6]
|
||
mov al, es:[bx]
|
||
mov ah, 0
|
||
add ax, 2900h
|
||
|
||
loc_AC10:
|
||
mov [bp+var_2], ax
|
||
jmp short loc_AC1A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AC15:
|
||
mov [bp+var_2], 2B21h
|
||
|
||
loc_AC1A:
|
||
inc word ptr [bp+arg_6]
|
||
|
||
loc_AC1D:
|
||
mov al, byte ptr [bp+var_2]
|
||
and al, 0FFh
|
||
mov dx, 0A1h ; '<27>'
|
||
out dx, al
|
||
mov ax, [bp+var_2]
|
||
shr ax, 8
|
||
sub al, 20h ; ' '
|
||
mov dx, 0A3h ; '<27>'
|
||
out dx, al
|
||
cmp [bp+var_2], 2921h
|
||
jb short loc_AC7E
|
||
cmp [bp+var_2], 2B7Eh
|
||
ja short loc_AC7E
|
||
cmp di, 278h
|
||
jg loc_AD9D
|
||
mov [bp+var_12], 0
|
||
jmp short loc_AC71
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AC4F:
|
||
mov al, byte ptr [bp+var_12]
|
||
or al, 20h
|
||
mov dx, 0A5h ; '<27>'
|
||
out dx, al
|
||
mov dx, 0A9h ; '<27>'
|
||
in al, dx
|
||
mov ah, 0
|
||
shl ax, 8
|
||
mov bx, [bp+var_12]
|
||
add bx, bx
|
||
lea dx, [bp+var_32]
|
||
add bx, dx
|
||
mov ss:[bx], ax
|
||
inc [bp+var_12]
|
||
|
||
loc_AC71:
|
||
cmp [bp+var_12], 10h
|
||
jl short loc_AC4F
|
||
mov [bp+var_A], 0
|
||
jmp short loc_ACD4
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AC7E:
|
||
cmp di, 270h
|
||
jg loc_AD9D
|
||
mov [bp+var_12], 0
|
||
jmp short loc_ACC9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AC8D:
|
||
mov al, byte ptr [bp+var_12]
|
||
or al, 20h
|
||
mov dx, 0A5h ; '<27>'
|
||
out dx, al
|
||
mov dx, 0A9h ; '<27>'
|
||
in al, dx
|
||
mov ah, 0
|
||
shl ax, 8
|
||
mov bx, [bp+var_12]
|
||
add bx, bx
|
||
lea dx, [bp+var_32]
|
||
add bx, dx
|
||
mov ss:[bx], ax
|
||
mov dx, 0A5h ; '<27>'
|
||
mov al, byte ptr [bp+var_12]
|
||
out dx, al
|
||
mov dx, 0A9h ; '<27>'
|
||
in al, dx
|
||
mov ah, 0
|
||
mov bx, [bp+var_12]
|
||
add bx, bx
|
||
lea dx, [bp+var_32]
|
||
add bx, dx
|
||
add ss:[bx], ax
|
||
inc [bp+var_12]
|
||
|
||
loc_ACC9:
|
||
cmp [bp+var_12], 10h
|
||
jl short loc_AC8D
|
||
mov [bp+var_A], 1
|
||
|
||
loc_ACD4:
|
||
mov [bp+var_12], 0
|
||
jmp loc_AD79
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ACDC:
|
||
mov bx, [bp+var_12]
|
||
add bx, bx
|
||
lea ax, [bp+var_32]
|
||
add bx, ax
|
||
mov ax, ss:[bx]
|
||
mov [bp+var_4], ax
|
||
mov ax, [bp+var_E]
|
||
cmp ax, 1
|
||
jz short loc_AD00
|
||
cmp ax, 2
|
||
jz short loc_AD16
|
||
cmp ax, 3
|
||
jz short loc_AD0C
|
||
jmp short loc_AD2C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AD00:
|
||
mov si, [bp+var_4]
|
||
mov ax, si
|
||
add ax, ax
|
||
or [bp+var_4], ax
|
||
jmp short loc_AD2C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AD0C:
|
||
mov si, [bp+var_4]
|
||
mov ax, si
|
||
add ax, ax
|
||
or [bp+var_4], ax
|
||
|
||
loc_AD16:
|
||
mov si, [bp+var_4]
|
||
mov ax, si
|
||
add ax, ax
|
||
or [bp+var_4], ax
|
||
xor si, [bp+var_4]
|
||
mov ax, si
|
||
add ax, ax
|
||
not ax
|
||
and [bp+var_4], ax
|
||
|
||
loc_AD2C:
|
||
cmp [bp+var_C], 0
|
||
jz short loc_AD5F
|
||
mov cl, byte ptr [bp+var_C]
|
||
add cl, 8
|
||
mov ax, [bp+var_4]
|
||
shr ax, cl
|
||
les bx, [bp+var_8]
|
||
mov es:[bx], al
|
||
mov ax, [bp+var_4]
|
||
mov cl, byte ptr [bp+var_C]
|
||
shr ax, cl
|
||
mov es:[bx+1], al
|
||
mov cl, 8
|
||
sub cl, byte ptr [bp+var_C]
|
||
mov al, byte ptr [bp+var_4]
|
||
shl al, cl
|
||
mov es:[bx+2], al
|
||
jmp short loc_AD72
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AD5F:
|
||
mov ax, [bp+var_4]
|
||
shr ax, 8
|
||
les bx, [bp+var_8]
|
||
mov es:[bx], al
|
||
mov al, byte ptr [bp+var_4]
|
||
mov es:[bx+1], al
|
||
|
||
loc_AD72:
|
||
add word ptr [bp+var_8], 50h ; 'P'
|
||
inc [bp+var_12]
|
||
|
||
loc_AD79:
|
||
cmp [bp+var_12], 10h
|
||
jl loc_ACDC
|
||
cmp [bp+var_A], 0
|
||
jz short loc_AD8A
|
||
add di, 8
|
||
|
||
loc_AD8A:
|
||
mov ax, [bp+var_10]
|
||
add ax, 8
|
||
add di, ax
|
||
|
||
loc_AD92:
|
||
les bx, [bp+arg_6]
|
||
cmp byte ptr es:[bx], 0
|
||
jnz loc_AB82
|
||
|
||
loc_AD9D:
|
||
mov dx, 68h ; 'h'
|
||
mov al, 0Ah
|
||
out dx, al
|
||
call grcg_off
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_AB4D endp
|
||
|
||
include th01/hardware/vram_planes_set.asm
|
||
include th02/formats/pi_slot_load.asm
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_AE00 proc far
|
||
|
||
var_A = word ptr -0Ah
|
||
var_8 = word ptr -8
|
||
var_6 = word ptr -6
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
arg_6 = word ptr 0Ch
|
||
|
||
enter 0Ah, 0
|
||
push si
|
||
push di
|
||
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
|
||
xor di, di
|
||
jmp loc_AEAE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AE23:
|
||
mov [bp+var_2], 0
|
||
mov cx, si
|
||
jmp short loc_AE9F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AE2C:
|
||
or si, si
|
||
jl short loc_AE99
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
les bx, VRAM_PLANE_B
|
||
add bx, cx
|
||
mov ax, es:[bx]
|
||
mov [bp+var_A], ax
|
||
les bx, VRAM_PLANE_R
|
||
add bx, cx
|
||
mov ax, es:[bx]
|
||
mov [bp+var_8], ax
|
||
les bx, VRAM_PLANE_G
|
||
add bx, cx
|
||
mov ax, es:[bx]
|
||
mov [bp+var_6], ax
|
||
les bx, VRAM_PLANE_E
|
||
add bx, cx
|
||
mov ax, es:[bx]
|
||
mov [bp+var_4], ax
|
||
mov al, 0
|
||
out dx, al
|
||
les bx, VRAM_PLANE_B
|
||
add bx, cx
|
||
mov ax, [bp+var_A]
|
||
mov es:[bx], ax
|
||
les bx, VRAM_PLANE_R
|
||
add bx, cx
|
||
mov ax, [bp+var_8]
|
||
mov es:[bx], ax
|
||
les bx, VRAM_PLANE_G
|
||
add bx, cx
|
||
mov ax, [bp+var_6]
|
||
mov es:[bx], ax
|
||
les bx, VRAM_PLANE_E
|
||
add bx, cx
|
||
mov ax, [bp+var_4]
|
||
mov es:[bx], ax
|
||
|
||
loc_AE99:
|
||
inc [bp+var_2]
|
||
add cx, 2
|
||
|
||
loc_AE9F:
|
||
mov ax, [bp+arg_2]
|
||
sar ax, 4
|
||
cmp ax, [bp+var_2]
|
||
jg short loc_AE2C
|
||
add si, 50h ; 'P'
|
||
inc di
|
||
|
||
loc_AEAE:
|
||
cmp di, [bp+arg_0]
|
||
jl loc_AE23
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf 8
|
||
sub_AE00 endp
|
||
|
||
include th02/frame_delay_.asm
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
|
||
sub_AED0 proc far
|
||
mov word_F3C8, 0
|
||
mov al, 7
|
||
mov ah, 4
|
||
int 18h ; TRANSFER TO ROM BASIC
|
||
; causes transfer to ROM-based BASIC (IBM-PC)
|
||
; often reboots a compatible; often has no effect at all
|
||
mov bh, ah
|
||
mov al, 8
|
||
mov ah, 4
|
||
int 18h ; TRANSFER TO ROM BASIC
|
||
; causes transfer to ROM-based BASIC (IBM-PC)
|
||
; often reboots a compatible; often has no effect at all
|
||
test bh, 4
|
||
jnz short loc_AEEE
|
||
test ah, 8
|
||
jz short loc_AEF3
|
||
|
||
loc_AEEE:
|
||
or word_F3C8, 1
|
||
|
||
loc_AEF3:
|
||
test bh, 8
|
||
jnz short loc_AEFD
|
||
test ah, 40h
|
||
jz short loc_AF02
|
||
|
||
loc_AEFD:
|
||
or word_F3C8, 4
|
||
|
||
loc_AF02:
|
||
test ah, 4
|
||
jz short loc_AF0D
|
||
or word_F3C8, 1000h
|
||
|
||
loc_AF0D:
|
||
test ah, 10h
|
||
jz short loc_AF18
|
||
or word_F3C8, 2000h
|
||
|
||
loc_AF18:
|
||
mov al, 9
|
||
mov ah, 4
|
||
int 18h ; TRANSFER TO ROM BASIC
|
||
; causes transfer to ROM-based BASIC (IBM-PC)
|
||
; often reboots a compatible; often has no effect at all
|
||
test bh, 20h
|
||
jnz short loc_AF28
|
||
test ah, 8
|
||
jz short loc_AF2D
|
||
|
||
loc_AF28:
|
||
or word_F3C8, 2
|
||
|
||
loc_AF2D:
|
||
test bh, 10h
|
||
jnz short loc_AF37
|
||
test ah, 1
|
||
jz short loc_AF3C
|
||
|
||
loc_AF37:
|
||
or word_F3C8, 8
|
||
|
||
loc_AF3C:
|
||
test ah, 4
|
||
jz short loc_AF47
|
||
or word_F3C8, 4000h
|
||
|
||
loc_AF47:
|
||
test ah, 10h
|
||
jz short loc_AF52
|
||
or word_F3C8, 8000h
|
||
|
||
loc_AF52:
|
||
mov al, 5
|
||
mov ah, 4
|
||
int 18h ; TRANSFER TO ROM BASIC
|
||
; causes transfer to ROM-based BASIC (IBM-PC)
|
||
; often reboots a compatible; often has no effect at all
|
||
test ah, 2
|
||
jz short loc_AF62
|
||
or word_F3C8, 10h
|
||
|
||
loc_AF62:
|
||
test ah, 4
|
||
jz short loc_AF6C
|
||
or word_F3C8, 20h
|
||
|
||
loc_AF6C:
|
||
mov al, 0
|
||
mov ah, 4
|
||
int 18h ; TRANSFER TO ROM BASIC
|
||
; causes transfer to ROM-based BASIC (IBM-PC)
|
||
; often reboots a compatible; often has no effect at all
|
||
test ah, 1
|
||
jz short loc_AF7C
|
||
or word_F3C8, 40h
|
||
|
||
loc_AF7C:
|
||
mov al, 3
|
||
mov ah, 4
|
||
int 18h ; TRANSFER TO ROM BASIC
|
||
; causes transfer to ROM-based BASIC (IBM-PC)
|
||
; often reboots a compatible; often has no effect at all
|
||
test ah, 10h
|
||
jz short loc_AF8D
|
||
or word_F3C8, 80h
|
||
|
||
loc_AF8D:
|
||
mov al, 2
|
||
mov ah, 4
|
||
int 18h ; TRANSFER TO ROM BASIC
|
||
; causes transfer to ROM-based BASIC (IBM-PC)
|
||
; often reboots a compatible; often has no effect at all
|
||
test ah, 1
|
||
jz short loc_AF9E
|
||
or word_F3C8, 100h
|
||
|
||
loc_AF9E:
|
||
mov al, 6
|
||
mov ah, 4
|
||
int 18h ; TRANSFER TO ROM BASIC
|
||
; causes transfer to ROM-based BASIC (IBM-PC)
|
||
; often reboots a compatible; often has no effect at all
|
||
test ah, 10h
|
||
jz short locret_AFAE
|
||
or word_F3C8, 10h
|
||
|
||
locret_AFAE:
|
||
retf
|
||
sub_AED0 endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
nop
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_AFB0 proc far
|
||
push bp
|
||
mov bp, sp
|
||
push 3E80h
|
||
call mem_assign_dos
|
||
or ax, ax
|
||
jz short loc_AFC4
|
||
mov ax, 1
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AFC4:
|
||
nopcall vram_planes_set
|
||
call graph_start
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
call graph_clear
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
call graph_clear
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
mov dx, 0A4h ; '<27>'
|
||
out dx, al
|
||
call vsync_start
|
||
call key_beep_off
|
||
call text_systemline_hide
|
||
call text_cursor_hide
|
||
call egc_start
|
||
mov pfkey, 12h
|
||
push ds
|
||
push offset aUmx ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E>^"
|
||
call pfstart
|
||
xor ax, ax
|
||
pop bp
|
||
retf
|
||
sub_AFB0 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B019 proc far
|
||
push bp
|
||
mov bp, sp
|
||
call pfend
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
call graph_clear
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
call graph_clear
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
mov dx, 0A4h ; '<27>'
|
||
out dx, al
|
||
call vsync_end
|
||
call mem_unassign
|
||
call text_clear
|
||
call egc_start
|
||
pop bp
|
||
retf
|
||
sub_B019 endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
db 0
|
||
|
||
include th02/hardware/snd_mmd_resident.asm
|
||
include th02/hardware/snd_determine_mode.asm
|
||
include th02/hardware/snd_pmd_resident.asm
|
||
include th02/hardware/snd_load.asm
|
||
include th02/formats/pi_slot_palette_apply.asm
|
||
include th02/formats/pi_slot_put.asm
|
||
include th02/hardware/snd_kaja_func.asm
|
||
|
||
; ---------------------------------------------------------------------------
|
||
push bp
|
||
mov bp, sp
|
||
cmp snd_active, 0
|
||
jnz short loc_B232
|
||
push 64h ; 'd'
|
||
nopcall frame_delay_
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B232:
|
||
push 1
|
||
nopcall frame_delay_
|
||
mov ah, KAJA_GET_SONG_MEASURE
|
||
cmp snd_midi_active, 1
|
||
jz short loc_B246
|
||
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
|
||
jmp short loc_B24B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B246:
|
||
mov dx, 0C0h
|
||
int 61h ; reserved for user interrupt
|
||
|
||
loc_B24B:
|
||
cmp ax, [bp+6]
|
||
jb short loc_B232
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
include th02/hardware/snd_se.asm
|
||
include th02/frame_delay.asm
|
||
op_02_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
op_03_TEXT segment byte public 'CODE' use16
|
||
assume cs:op_03_TEXT
|
||
;org 7
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
db 0
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B2E8 proc far
|
||
|
||
var_2 = word ptr -2
|
||
|
||
enter 2, 0
|
||
push si
|
||
mov [bp+var_2], 1
|
||
call snd_se_reset
|
||
call snd_se_play stdcall, 6
|
||
pop cx
|
||
call snd_se_update
|
||
xor si, si
|
||
jmp short loc_B370
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B308:
|
||
mov dx, 0A4h ; '<27>'
|
||
mov al, byte ptr [bp+var_2]
|
||
out dx, al
|
||
mov ax, 1
|
||
sub ax, [bp+var_2]
|
||
mov [bp+var_2], ax
|
||
or si, si
|
||
jnz short loc_B320
|
||
push 0
|
||
jmp short loc_B330
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B320:
|
||
cmp si, 5
|
||
jnz short loc_B329
|
||
push 1
|
||
jmp short loc_B330
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B329:
|
||
cmp si, 0Ah
|
||
jnz short loc_B33C
|
||
push 2
|
||
|
||
loc_B330:
|
||
push 0
|
||
push 0
|
||
call pi_slot_put
|
||
add sp, 6
|
||
|
||
loc_B33C:
|
||
mov ax, si
|
||
mov bx, 3
|
||
cwd
|
||
idiv bx
|
||
or dx, dx
|
||
jnz short loc_B350
|
||
mov PaletteTone, 96h
|
||
jmp short loc_B363
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B350:
|
||
mov ax, si
|
||
mov bx, 3
|
||
cwd
|
||
idiv bx
|
||
cmp dx, 1
|
||
jnz short loc_B368
|
||
mov PaletteTone, 64h ; 'd'
|
||
|
||
loc_B363:
|
||
call far ptr palette_show
|
||
|
||
loc_B368:
|
||
push 1
|
||
call frame_delay
|
||
inc si
|
||
|
||
loc_B370:
|
||
cmp si, 12h
|
||
jl short loc_B308
|
||
mov dx, 0A4h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
freePISlot 0
|
||
freePISlot 1
|
||
freePISlot 2
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_B2E8 endp
|
||
|
||
op_03_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
op_04_TEXT segment byte public 'CODE' use16
|
||
assume cs:op_04_TEXT
|
||
;org 1
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B3B1 proc near
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push word ptr HUUHI_DAT+2
|
||
push word ptr HUUHI_DAT
|
||
call file_ropen
|
||
mov al, byte_DC34
|
||
cbw
|
||
imul ax, 0B6h
|
||
push 0
|
||
push ax
|
||
push 0
|
||
call file_seek
|
||
push ds
|
||
push offset word_F3EC
|
||
push 0B6h ; '<27>'
|
||
call file_read
|
||
xor si, si
|
||
jmp short loc_B3EF
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B3E4:
|
||
mov al, [si+1DBCh]
|
||
add al, 0EEh
|
||
mov [si+1DBCh], al
|
||
inc si
|
||
|
||
loc_B3EF:
|
||
cmp si, 0B2h ; '<27>'
|
||
jl short loc_B3E4
|
||
call file_close
|
||
pop si
|
||
pop bp
|
||
retn
|
||
sub_B3B1 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B3FD proc near
|
||
|
||
var_9 = byte ptr -9
|
||
var_8 = word ptr -8
|
||
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
|
||
arg_6 = word ptr 0Ah
|
||
|
||
enter 0Ah, 0
|
||
push si
|
||
push di
|
||
mov di, 0A0h
|
||
mov [bp+var_2], 98h
|
||
mov [bp+var_4], 9680h
|
||
mov [bp+var_9], 0
|
||
xor si, si
|
||
jmp short loc_B492
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B418:
|
||
mov ax, [bp+var_4]
|
||
or ax, [bp+var_2]
|
||
jz short loc_B439
|
||
push 0
|
||
push 0Ah
|
||
push [bp+var_2]
|
||
push [bp+var_4]
|
||
push [bp+arg_4]
|
||
push [bp+arg_2]
|
||
call far ptr LDIV@
|
||
push dx
|
||
push ax
|
||
jmp short loc_B443
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B439:
|
||
push 0
|
||
push 0Ah
|
||
push [bp+arg_4]
|
||
push [bp+arg_2]
|
||
|
||
loc_B443:
|
||
call far ptr F_LMOD@
|
||
mov [bp+var_6], dx
|
||
mov [bp+var_8], ax
|
||
push 0
|
||
push 0Ah
|
||
push [bp+var_2]
|
||
push [bp+var_4]
|
||
call far ptr LDIV@
|
||
mov [bp+var_2], dx
|
||
mov [bp+var_4], ax
|
||
mov ax, [bp+var_8]
|
||
add ax, 0A0h
|
||
mov di, ax
|
||
mov ax, [bp+var_8]
|
||
or ax, [bp+var_6]
|
||
jz short loc_B477
|
||
mov [bp+var_9], 1
|
||
|
||
loc_B477:
|
||
cmp [bp+var_9], 0
|
||
jz short loc_B491
|
||
mov ax, si
|
||
add ax, ax
|
||
add ax, 1Ah
|
||
call gaiji_putca pascal, ax, [bp+arg_6], di, [bp+arg_0]
|
||
|
||
loc_B491:
|
||
inc si
|
||
|
||
loc_B492:
|
||
cmp si, 8
|
||
jl short loc_B418
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn 8
|
||
sub_B3FD endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B49D proc near
|
||
|
||
arg_0 = word ptr 4
|
||
arg_2 = word ptr 6
|
||
arg_4 = word ptr 8
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push 48
|
||
push [bp+arg_4]
|
||
mov bx, [bp+arg_2]
|
||
shl bx, 2
|
||
push word ptr (HISCORE_TYPE+2)[bx]
|
||
push word ptr HISCORE_TYPE[bx]
|
||
push [bp+arg_0]
|
||
call text_putsa
|
||
pop bp
|
||
retn 6
|
||
sub_B49D endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B4BF proc far
|
||
|
||
var_2 = word ptr -2
|
||
arg_0 = dword ptr 6
|
||
arg_4 = word ptr 0Ah
|
||
arg_6 = word ptr 0Ch
|
||
|
||
enter 2, 0
|
||
push si
|
||
push di
|
||
mov di, [bp+arg_6]
|
||
mov si, 1
|
||
mov cx, 1
|
||
jmp short loc_B4D8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B4D0:
|
||
mov ax, 0Ah
|
||
imul si
|
||
mov si, ax
|
||
inc cx
|
||
|
||
loc_B4D8:
|
||
cmp cx, di
|
||
jl short loc_B4D0
|
||
xor cx, cx
|
||
jmp short loc_B507
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B4E0:
|
||
mov ax, [bp+arg_4]
|
||
cwd
|
||
idiv si
|
||
mov bx, 0Ah
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_2], dx
|
||
les bx, [bp+arg_0]
|
||
add bx, cx
|
||
mov al, byte ptr [bp+var_2]
|
||
add al, 30h ; '0'
|
||
mov es:[bx], al
|
||
mov bx, 0Ah
|
||
mov ax, si
|
||
cwd
|
||
idiv bx
|
||
mov si, ax
|
||
inc cx
|
||
|
||
loc_B507:
|
||
cmp cx, di
|
||
jl short loc_B4E0
|
||
les bx, [bp+arg_0]
|
||
add bx, cx
|
||
mov byte ptr es:[bx], 0
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_B4BF endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B518 proc near
|
||
|
||
var_6 = byte ptr -6
|
||
arg_0 = word ptr 4
|
||
arg_2 = word ptr 6
|
||
arg_4 = word ptr 8
|
||
|
||
enter 6, 0
|
||
push si
|
||
push di
|
||
mov si, [bp+arg_4]
|
||
mov di, [bp+arg_0]
|
||
push 4
|
||
mov bx, [bp+arg_2]
|
||
shl bx, 2
|
||
push word ptr [bx+1E3Ch]
|
||
push ss
|
||
lea ax, [bp+var_6]
|
||
push ax
|
||
call sub_B4BF
|
||
push 56
|
||
push si
|
||
push ss
|
||
lea ax, [bp+var_6]
|
||
push ax
|
||
push di
|
||
call text_putsa
|
||
push 2
|
||
mov bx, [bp+arg_2]
|
||
shl bx, 2
|
||
mov al, [bx+1E3Fh]
|
||
cbw
|
||
push ax
|
||
push ss
|
||
lea ax, [bp+var_6]
|
||
push ax
|
||
call sub_B4BF
|
||
call text_putca pascal, 60, si, '/', di
|
||
push 61
|
||
push si
|
||
push ss
|
||
lea ax, [bp+var_6]
|
||
push ax
|
||
push di
|
||
call text_putsa
|
||
push 2
|
||
mov bx, [bp+arg_2]
|
||
shl bx, 2
|
||
mov al, [bx+1E3Eh]
|
||
cbw
|
||
push ax
|
||
push ss
|
||
lea ax, [bp+var_6]
|
||
push ax
|
||
call sub_B4BF
|
||
add sp, 18h
|
||
call text_putca pascal, 63, si, '/', di
|
||
push 64
|
||
push si
|
||
push ss
|
||
lea ax, [bp+var_6]
|
||
push ax
|
||
push di
|
||
call text_putsa
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn 6
|
||
sub_B518 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B5B0 proc near
|
||
|
||
arg_0 = word ptr 4
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
mov di, TX_WHITE
|
||
call gaiji_putsa pascal, 22, 2, ds, offset gHI_SCORE, TX_GREEN
|
||
push 40
|
||
push 2
|
||
push ds
|
||
mov al, byte_DC34
|
||
cbw
|
||
shl ax, 3
|
||
add ax, offset gcEASY_0
|
||
push ax
|
||
push TX_GREEN
|
||
call gaiji_putsa
|
||
call text_putsa pascal, 8, 4, ds, offset aHISCORE_HEAD, TX_GREEN
|
||
xor si, si
|
||
jmp short loc_B66D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B5F4:
|
||
cmp si, [bp+arg_0]
|
||
jnz short loc_B5FE
|
||
mov di, TX_GREEN
|
||
jmp short loc_B601
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B5FE:
|
||
mov di, TX_WHITE
|
||
|
||
loc_B601:
|
||
push 0Ch
|
||
lea ax, [si+7]
|
||
push ax
|
||
push ds
|
||
mov ax, si
|
||
imul ax, 7
|
||
add ax, 1DEAh
|
||
push ax
|
||
push di
|
||
call gaiji_putsa
|
||
lea ax, [si+7]
|
||
push ax
|
||
mov bx, si
|
||
shl bx, 2
|
||
push word ptr [bx+1DC0h]
|
||
push word ptr [bx+1DBEh]
|
||
push di
|
||
call sub_B3FD
|
||
cmp byte ptr [si+1E31h], 7Fh
|
||
jz short loc_B645
|
||
push 2Ch ; ','
|
||
lea ax, [si+7]
|
||
push ax
|
||
mov al, [si+1E31h]
|
||
mov ah, 0
|
||
add ax, 0A0h
|
||
push ax
|
||
jmp short loc_B64E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B645:
|
||
push 44
|
||
lea ax, [si+7]
|
||
push ax
|
||
push 0F0h
|
||
|
||
loc_B64E:
|
||
push di
|
||
call gaiji_putca
|
||
lea ax, [si+7]
|
||
push ax
|
||
mov al, [si+1E64h]
|
||
mov ah, 0
|
||
push ax
|
||
push di
|
||
call sub_B49D
|
||
lea ax, [si+7]
|
||
push ax
|
||
push si
|
||
push di
|
||
call sub_B518
|
||
inc si
|
||
|
||
loc_B66D:
|
||
cmp si, 0Ah
|
||
jl short loc_B5F4
|
||
xor si, si
|
||
jmp short loc_B6B0
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B676:
|
||
cmp si, [bp+arg_0]
|
||
jnz short loc_B680
|
||
mov di, TX_GREEN
|
||
jmp short loc_B683
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B680:
|
||
mov di, TX_WHITE
|
||
|
||
loc_B683:
|
||
cmp si, 9
|
||
jz short loc_B695
|
||
push 9
|
||
lea ax, [si+7]
|
||
push ax
|
||
lea ax, [si+0A1h]
|
||
push ax
|
||
jmp short loc_B6A9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B695:
|
||
call gaiji_putca pascal, 8, 16, 0A1h, di
|
||
push 10
|
||
push 16
|
||
push 0A0h
|
||
|
||
loc_B6A9:
|
||
push di
|
||
call gaiji_putca
|
||
inc si
|
||
|
||
loc_B6B0:
|
||
cmp si, 0Ah
|
||
jl short loc_B676
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retn 2
|
||
sub_B5B0 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B6BB proc near
|
||
|
||
var_2 = word ptr -2
|
||
|
||
enter 2, 0
|
||
push si
|
||
push di
|
||
call grcg_setcolor pascal, GC_RMW, 10
|
||
call grcg_fill
|
||
call grcg_off
|
||
inc word_DCB0
|
||
xor si, si
|
||
jmp short loc_B723
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B6DD:
|
||
mov ax, si
|
||
imul ax, 0A0h
|
||
add ax, word_DCB0
|
||
mov [bp+var_2], ax
|
||
mov bx, 280h
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_2], dx
|
||
mov ax, si
|
||
imul ax, 64h
|
||
sub ax, word_DCB0
|
||
mov di, ax
|
||
|
||
loc_B6FE:
|
||
or di, di
|
||
jge short loc_B708
|
||
add di, 190h
|
||
jmp short loc_B6FE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B708:
|
||
push [bp+var_2]
|
||
push di
|
||
push 0
|
||
call super_put_rect
|
||
mov ax, [bp+var_2]
|
||
add ax, 40h
|
||
push ax
|
||
push di
|
||
push 1
|
||
call super_put_rect
|
||
inc si
|
||
|
||
loc_B723:
|
||
cmp si, 4
|
||
jl short loc_B6DD
|
||
xor si, si
|
||
jmp short loc_B775
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B72C:
|
||
mov ax, si
|
||
imul ax, 0A0h
|
||
add ax, word_DCB0
|
||
add ax, 140h
|
||
mov [bp+var_2], ax
|
||
mov bx, 280h
|
||
cwd
|
||
idiv bx
|
||
mov [bp+var_2], dx
|
||
mov ax, si
|
||
imul ax, 64h
|
||
sub ax, word_DCB0
|
||
mov di, ax
|
||
|
||
loc_B750:
|
||
or di, di
|
||
jge short loc_B75A
|
||
add di, 190h
|
||
jmp short loc_B750
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B75A:
|
||
push [bp+var_2]
|
||
push di
|
||
push 0
|
||
call super_put_rect
|
||
mov ax, [bp+var_2]
|
||
add ax, 40h
|
||
push ax
|
||
push di
|
||
push 1
|
||
call super_put_rect
|
||
inc si
|
||
|
||
loc_B775:
|
||
cmp si, 4
|
||
jl short loc_B72C
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn
|
||
sub_B6BB endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B77E proc far
|
||
|
||
var_1 = byte ptr -1
|
||
|
||
enter 2, 0
|
||
push si
|
||
xor si, si
|
||
mov [bp+var_1], 0
|
||
call sub_B3B1
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
call graph_clear
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
call graph_clear
|
||
cmp byte_DCB2, 0
|
||
jz short loc_B7B7
|
||
mov byte_DCB2, 0
|
||
push ds
|
||
push offset aOp_h_bft ; "op_h.bft"
|
||
call super_entry_bfnt
|
||
|
||
loc_B7B7:
|
||
push ds
|
||
push offset aOp_h_rgb ; "op_h.rgb"
|
||
call palette_entry_rgb
|
||
call far ptr palette_show
|
||
push 80h
|
||
push 60h
|
||
push 200h
|
||
push 130h
|
||
call grc_setclip
|
||
call grcg_setcolor pascal, GC_RMW, 10
|
||
call grcg_fill
|
||
call grcg_off
|
||
push 0FFFFh
|
||
call sub_B5B0
|
||
mov word_DCB0, 0
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
mov al, 1
|
||
sub al, [bp+var_1]
|
||
mov [bp+var_1], al
|
||
mov dx, 0A4h ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
|
||
loc_B808:
|
||
call sub_AED0
|
||
or si, si
|
||
jnz short loc_B81D
|
||
cmp word_F3C8, 0
|
||
jnz short loc_B81D
|
||
mov si, 1
|
||
jmp short loc_B829
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B81D:
|
||
cmp si, 1
|
||
jnz short loc_B829
|
||
cmp word_F3C8, 0
|
||
jnz short loc_B84F
|
||
|
||
loc_B829:
|
||
call sub_B6BB
|
||
push 1
|
||
call frame_delay
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, [bp+var_1]
|
||
out dx, al
|
||
mov al, 1
|
||
sub al, [bp+var_1]
|
||
mov [bp+var_1], al
|
||
mov dx, 0A4h ; '<27>'
|
||
out dx, al
|
||
mov ax, word_DCB0
|
||
cmp ax, word_F4A4
|
||
jbe short loc_B808
|
||
|
||
loc_B84F:
|
||
mov word_F3C8, 0
|
||
push 14h
|
||
call frame_delay
|
||
push 0
|
||
push 0
|
||
push 27Fh
|
||
push 18Fh
|
||
call grc_setclip
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_B77E endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B86E proc far
|
||
|
||
var_A = byte ptr -0Ah
|
||
var_6 = byte ptr -6
|
||
|
||
enter 0Ah, 0
|
||
push si
|
||
push di
|
||
lea ax, [bp+var_6]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset unk_DCB4
|
||
mov cx, 6
|
||
call SCOPY@
|
||
lea ax, [bp+var_A]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset unk_DCBA
|
||
mov cx, 3
|
||
call SCOPY@
|
||
mov di, 1
|
||
mov byte_DC34, 0
|
||
jmp short loc_B8D7
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B8A0:
|
||
call sub_B3B1
|
||
mov al, byte_DC34
|
||
cbw
|
||
add ax, ax
|
||
lea dx, [bp+var_6]
|
||
add ax, dx
|
||
mov bx, ax
|
||
mov ax, ss:[bx]
|
||
cmp ax, word_F3EC
|
||
jz short loc_B8C8
|
||
mov al, byte_DC34
|
||
cbw
|
||
mov bx, ax
|
||
mov byte ptr [bx+1E76h], 0
|
||
xor di, di
|
||
jmp short loc_B8D3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B8C8:
|
||
mov al, byte_DC34
|
||
cbw
|
||
mov bx, ax
|
||
mov byte ptr [bx+1E76h], 1
|
||
|
||
loc_B8D3:
|
||
inc byte_DC34
|
||
|
||
loc_B8D7:
|
||
cmp byte_DC34, 3
|
||
jl short loc_B8A0
|
||
mov byte_DC34, 3
|
||
call sub_B3B1
|
||
xor si, si
|
||
jmp short loc_B902
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B8EA:
|
||
mov al, [bp+si+var_A]
|
||
mov ah, 0
|
||
test word_F3EC, ax
|
||
jz short loc_B8FC
|
||
mov byte ptr [si+1E79h], 1
|
||
jmp short loc_B901
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B8FC:
|
||
mov byte ptr [si+1E79h], 0
|
||
|
||
loc_B901:
|
||
inc si
|
||
|
||
loc_B902:
|
||
cmp si, 3
|
||
jl short loc_B8EA
|
||
mov ax, di
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_B86E endp
|
||
|
||
op_04_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
op_05_TEXT segment byte public 'CODE' use16
|
||
assume cs:op_05_TEXT
|
||
;org 0Dh
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B90D proc far
|
||
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
cmp [bp+arg_2], 0
|
||
jnz short loc_B953
|
||
mov ax, [bp+arg_0]
|
||
or ax, ax
|
||
jz short loc_B92B
|
||
cmp ax, 1
|
||
jz short loc_B930
|
||
cmp ax, 2
|
||
jz short loc_B938
|
||
jmp short loc_B93E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B92B:
|
||
mov si, 10h
|
||
jmp short loc_B93B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B930:
|
||
mov si, 0E0h
|
||
mov di, 0E0h
|
||
jmp short loc_B93E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B938:
|
||
mov si, 1B0h
|
||
|
||
loc_B93B:
|
||
mov di, 80h
|
||
|
||
loc_B93E:
|
||
push si
|
||
push di
|
||
push 10h
|
||
push 90h
|
||
call sub_AE00
|
||
push si
|
||
push di
|
||
push 0C0h
|
||
push 0Ah
|
||
jmp short loc_B9B2
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B953:
|
||
mov ax, [bp+arg_0]
|
||
or ax, ax
|
||
jz short loc_B966
|
||
cmp ax, 1
|
||
jz short loc_B96B
|
||
cmp ax, 2
|
||
jz short loc_B973
|
||
jmp short loc_B979
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B966:
|
||
mov si, 0D0h
|
||
jmp short loc_B976
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B96B:
|
||
mov si, 1A0h
|
||
mov di, 0E8h
|
||
jmp short loc_B979
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B973:
|
||
mov si, 270h
|
||
|
||
loc_B976:
|
||
mov di, 88h
|
||
|
||
loc_B979:
|
||
push si
|
||
push di
|
||
push 10h
|
||
push 90h
|
||
call sub_AE00
|
||
mov ax, [bp+arg_0]
|
||
or ax, ax
|
||
jz short loc_B998
|
||
cmp ax, 1
|
||
jz short loc_B99D
|
||
cmp ax, 2
|
||
jz short loc_B9A5
|
||
jmp short loc_B9AB
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B998:
|
||
mov si, 18h
|
||
jmp short loc_B9A8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B99D:
|
||
mov si, 0E8h
|
||
mov di, 170h
|
||
jmp short loc_B9AB
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B9A5:
|
||
mov si, 1B8h
|
||
|
||
loc_B9A8:
|
||
mov di, 110h
|
||
|
||
loc_B9AB:
|
||
push si
|
||
push di
|
||
push 0C0h
|
||
push 8
|
||
|
||
loc_B9B2:
|
||
call sub_AE00
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_B90D endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B9BB proc far
|
||
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
|
||
enter 2, 0
|
||
push si
|
||
push di
|
||
mov ax, [bp+arg_0]
|
||
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 [bp+var_2], ax
|
||
call grcg_setcolor pascal, GC_RMW, 0
|
||
xor si, si
|
||
jmp short loc_BA11
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B9E8:
|
||
xor di, di
|
||
jmp short loc_BA07
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B9EC:
|
||
test si, 1
|
||
jz short loc_B9F7
|
||
mov ax, 0AAAAh
|
||
jmp short loc_B9FA
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B9F7:
|
||
mov ax, 5555h
|
||
|
||
loc_B9FA:
|
||
les bx, VRAM_PLANE_B
|
||
add bx, [bp+var_2]
|
||
mov es:[bx+di], ax
|
||
add di, 2
|
||
|
||
loc_BA07:
|
||
cmp di, 18h
|
||
jl short loc_B9EC
|
||
inc si
|
||
add [bp+var_2], 50h ; 'P'
|
||
|
||
loc_BA11:
|
||
cmp si, 90h
|
||
jl short loc_B9E8
|
||
call grcg_off
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_B9BB endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BA20 proc far
|
||
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
mov ax, [bp+arg_0]
|
||
or ax, ax
|
||
jz short loc_BA38
|
||
cmp ax, 1
|
||
jz short loc_BA3D
|
||
cmp ax, 2
|
||
jz short loc_BA45
|
||
jmp short loc_BA4B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BA38:
|
||
mov si, 10h
|
||
jmp short loc_BA48
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BA3D:
|
||
mov si, 0E0h
|
||
mov di, 88h
|
||
jmp short loc_BA4B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BA45:
|
||
mov si, 1B0h
|
||
|
||
loc_BA48:
|
||
mov di, 128h
|
||
|
||
loc_BA4B:
|
||
call grcg_setcolor pascal, GC_RMW, [bp+arg_2]
|
||
lea ax, [si+8]
|
||
push ax
|
||
lea ax, [di+8]
|
||
push ax
|
||
lea ax, [si+0C8h]
|
||
push ax
|
||
lea ax, [di+48h]
|
||
push ax
|
||
push 8
|
||
call grcg_round_boxfill
|
||
call grcg_setcolor pascal, GC_RMW, 0
|
||
push si
|
||
push di
|
||
lea ax, [si+0C0h]
|
||
push ax
|
||
lea ax, [di+40h]
|
||
push ax
|
||
push 8
|
||
call grcg_round_boxfill
|
||
call grcg_off
|
||
mov bx, [bp+arg_0]
|
||
imul bx, 0Ch
|
||
push word ptr [bx+6F4h]
|
||
push word ptr [bx+6F2h]
|
||
mov ax, [bp+arg_2]
|
||
or ax, 20h
|
||
push ax
|
||
lea ax, [di+8]
|
||
push ax
|
||
lea ax, [si+8]
|
||
push ax
|
||
call sub_AB4D
|
||
mov bx, [bp+arg_0]
|
||
imul bx, 0Ch
|
||
push word ptr [bx+6F8h]
|
||
push word ptr [bx+6F6h]
|
||
mov ax, [bp+arg_2]
|
||
or ax, 20h
|
||
push ax
|
||
lea ax, [di+18h]
|
||
push ax
|
||
lea ax, [si+8]
|
||
push ax
|
||
call sub_AB4D
|
||
mov bx, [bp+arg_0]
|
||
imul bx, 0Ch
|
||
push word ptr [bx+6FCh]
|
||
push word ptr [bx+6FAh]
|
||
mov ax, [bp+arg_2]
|
||
or ax, 20h
|
||
push ax
|
||
lea ax, [di+28h]
|
||
push ax
|
||
lea ax, [si+8]
|
||
push ax
|
||
call sub_AB4D
|
||
add sp, 1Eh
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_BA20 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BAFC proc far
|
||
push bp
|
||
mov bp, sp
|
||
call grcg_setcolor pascal, GC_RMW, 12
|
||
push 88h
|
||
push 18h
|
||
push 208h
|
||
push 38h ; '8'
|
||
push 8
|
||
call grcg_round_boxfill
|
||
call grcg_setcolor pascal, GC_RMW, 0
|
||
push 80h
|
||
push 10h
|
||
push 200h
|
||
push 30h ; '0'
|
||
push 8
|
||
call grcg_round_boxfill
|
||
call grcg_off
|
||
push word ptr off_DD46+2
|
||
push word ptr off_DD46
|
||
push 2Ch ; ','
|
||
push 18h
|
||
push 90h
|
||
call sub_AB4D
|
||
add sp, 0Ah
|
||
les bx, dword_F3DC
|
||
cmp byte ptr es:[bx+0Bh], 5
|
||
jnz short loc_BBBE
|
||
call grcg_setcolor pascal, GC_RMW, 12
|
||
push 18h
|
||
push 38h ; '8'
|
||
push 278h
|
||
push 68h ; 'h'
|
||
push 8
|
||
call grcg_round_boxfill
|
||
call grcg_setcolor pascal, GC_RMW, 0
|
||
push 10h
|
||
push 30h ; '0'
|
||
push 270h
|
||
push 60h
|
||
push 8
|
||
call grcg_round_boxfill
|
||
call grcg_off
|
||
push word ptr off_DD4A+2
|
||
push word ptr off_DD4A
|
||
push 2Fh ; '/'
|
||
push 38h ; '8'
|
||
push 20h ; ' '
|
||
call sub_AB4D
|
||
push word ptr off_DD4E+2
|
||
push word ptr off_DD4E
|
||
push 2Fh ; '/'
|
||
push 48h ; 'H'
|
||
push 20h ; ' '
|
||
call sub_AB4D
|
||
add sp, 14h
|
||
|
||
loc_BBBE:
|
||
pop bp
|
||
retf
|
||
sub_BAFC endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BBC0 proc far
|
||
push bp
|
||
mov bp, sp
|
||
mov PaletteTone, 0
|
||
call far ptr palette_show
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
call pi_slot_load stdcall, 3, offset aTselect_pi, ds
|
||
call pi_slot_palette_apply stdcall, 3
|
||
call pi_slot_put stdcall, 0, 0, 3
|
||
add sp, 0Eh
|
||
freePISlot 3
|
||
push 1
|
||
call graph_copy_page
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
les bx, dword_F3DC
|
||
cmp byte ptr es:[bx+0Bh], 5
|
||
jz short loc_BC61
|
||
cmp byte_F4A6, 0
|
||
jz short loc_BC3A
|
||
push word ptr off_DD52+2
|
||
push word ptr off_DD52
|
||
push 2Fh ; '/'
|
||
push 70h ; 'p'
|
||
push 10h
|
||
call sub_AB4D
|
||
add sp, 0Ah
|
||
|
||
loc_BC3A:
|
||
cmp byte_F4A7, 0
|
||
jz short loc_BC58
|
||
push word ptr off_DD52+2
|
||
push word ptr off_DD52
|
||
push 2Fh ; '/'
|
||
push 70h ; 'p'
|
||
push 0E0h
|
||
call sub_AB4D
|
||
add sp, 0Ah
|
||
|
||
loc_BC58:
|
||
cmp byte_F4A8, 0
|
||
jz short loc_BCBA
|
||
jmp short loc_BCA3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BC61:
|
||
cmp byte_F4A9, 0
|
||
jz short loc_BC7E
|
||
push word ptr off_DD52+2
|
||
push word ptr off_DD52
|
||
push 2Fh ; '/'
|
||
push 70h ; 'p'
|
||
push 10h
|
||
call sub_AB4D
|
||
add sp, 0Ah
|
||
|
||
loc_BC7E:
|
||
cmp byte_F4AA, 0
|
||
jz short loc_BC9C
|
||
push word ptr off_DD52+2
|
||
push word ptr off_DD52
|
||
push 2Fh ; '/'
|
||
push 70h ; 'p'
|
||
push 0E0h
|
||
call sub_AB4D
|
||
add sp, 0Ah
|
||
|
||
loc_BC9C:
|
||
cmp byte_F4AB, 0
|
||
jz short loc_BCBA
|
||
|
||
loc_BCA3:
|
||
push word ptr off_DD52+2
|
||
push word ptr off_DD52
|
||
push 2Fh ; '/'
|
||
push 70h ; 'p'
|
||
push 1B0h
|
||
call sub_AB4D
|
||
add sp, 0Ah
|
||
|
||
loc_BCBA:
|
||
call pi_slot_put stdcall, 24, 136, 0
|
||
call pi_slot_put stdcall, 224, 224, 1
|
||
call pi_slot_put stdcall, 440, 136, 2
|
||
les bx, dword_F3DC
|
||
mov byte ptr es:[bx+26h], 1
|
||
push 88h
|
||
push 18h
|
||
call sub_B9BB
|
||
push 88h
|
||
push 1B8h
|
||
call sub_B9BB
|
||
push 7
|
||
push 0
|
||
call sub_BA20
|
||
push 0Ch
|
||
push 1
|
||
call sub_BA20
|
||
push 7
|
||
push 2
|
||
call sub_BA20
|
||
add sp, 26h
|
||
call sub_BAFC
|
||
push 2
|
||
call palette_black_in
|
||
pop bp
|
||
retf
|
||
sub_BBC0 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BD24 proc far
|
||
|
||
var_C = byte ptr -0Ch
|
||
var_6 = byte ptr -6
|
||
|
||
enter 0Ch, 0
|
||
push si
|
||
push di
|
||
xor si, si
|
||
lea ax, [bp+var_6]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset unk_DD56
|
||
mov cx, 6
|
||
call SCOPY@
|
||
lea ax, [bp+var_C]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset unk_DD5C
|
||
mov cx, 6
|
||
call SCOPY@
|
||
xor di, di
|
||
call sub_BBC0
|
||
|
||
loc_BD54:
|
||
call sub_AED0
|
||
or si, si
|
||
jz short loc_BD60
|
||
jmp loc_BF95
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BD60:
|
||
test byte ptr word_F3C8, 4
|
||
jnz short loc_BD6A
|
||
jmp loc_BE6D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BD6A:
|
||
push 7
|
||
mov al, byte_DD20
|
||
cbw
|
||
push ax
|
||
call sub_BA20
|
||
add sp, 4
|
||
push 1
|
||
call frame_delay
|
||
push 0
|
||
mov al, byte_DD20
|
||
cbw
|
||
push ax
|
||
call sub_B90D
|
||
add sp, 4
|
||
push 1
|
||
call frame_delay
|
||
mov al, byte_DD20
|
||
cbw
|
||
push ax
|
||
mov al, byte_DD20
|
||
cbw
|
||
add ax, ax
|
||
lea dx, [bp+var_C]
|
||
add ax, dx
|
||
mov bx, ax
|
||
mov ax, ss:[bx]
|
||
add ax, 8
|
||
push ax
|
||
mov al, byte_DD20
|
||
cbw
|
||
add ax, ax
|
||
lea dx, [bp+var_6]
|
||
add ax, dx
|
||
mov bx, ax
|
||
mov ax, ss:[bx]
|
||
add ax, 8
|
||
push ax
|
||
call pi_slot_put
|
||
add sp, 6
|
||
push 1
|
||
call frame_delay
|
||
mov al, byte_DD20
|
||
cbw
|
||
add ax, ax
|
||
lea dx, [bp+var_C]
|
||
add ax, dx
|
||
mov bx, ax
|
||
mov ax, ss:[bx]
|
||
add ax, 8
|
||
push ax
|
||
mov al, byte_DD20
|
||
cbw
|
||
add ax, ax
|
||
lea dx, [bp+var_6]
|
||
add ax, dx
|
||
mov bx, ax
|
||
mov ax, ss:[bx]
|
||
add ax, 8
|
||
push ax
|
||
call sub_B9BB
|
||
add sp, 4
|
||
dec byte_DD20
|
||
cmp byte_DD20, 0
|
||
jge short loc_BE0F
|
||
mov byte_DD20, 2
|
||
|
||
loc_BE0F:
|
||
push 1
|
||
call frame_delay
|
||
push 1
|
||
mov al, byte_DD20
|
||
cbw
|
||
push ax
|
||
call sub_B90D
|
||
add sp, 4
|
||
push 1
|
||
call frame_delay
|
||
push 0Ch
|
||
mov al, byte_DD20
|
||
cbw
|
||
push ax
|
||
call sub_BA20
|
||
add sp, 4
|
||
push 1
|
||
call frame_delay
|
||
mov al, byte_DD20
|
||
cbw
|
||
push ax
|
||
mov al, byte_DD20
|
||
cbw
|
||
add ax, ax
|
||
lea dx, [bp+var_C]
|
||
add ax, dx
|
||
mov bx, ax
|
||
push word ptr ss:[bx]
|
||
mov al, byte_DD20
|
||
cbw
|
||
add ax, ax
|
||
lea dx, [bp+var_6]
|
||
add ax, dx
|
||
mov bx, ax
|
||
push word ptr ss:[bx]
|
||
call pi_slot_put
|
||
add sp, 6
|
||
|
||
loc_BE6D:
|
||
test byte ptr word_F3C8, 8
|
||
jnz short loc_BE77
|
||
jmp loc_BF7A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BE77:
|
||
push 0
|
||
mov al, byte_DD20
|
||
cbw
|
||
push ax
|
||
call sub_B90D
|
||
add sp, 4
|
||
push 1
|
||
call frame_delay
|
||
mov al, byte_DD20
|
||
cbw
|
||
push ax
|
||
mov al, byte_DD20
|
||
cbw
|
||
add ax, ax
|
||
lea dx, [bp+var_C]
|
||
add ax, dx
|
||
mov bx, ax
|
||
mov ax, ss:[bx]
|
||
add ax, 8
|
||
push ax
|
||
mov al, byte_DD20
|
||
cbw
|
||
add ax, ax
|
||
lea dx, [bp+var_6]
|
||
add ax, dx
|
||
mov bx, ax
|
||
mov ax, ss:[bx]
|
||
add ax, 8
|
||
push ax
|
||
call pi_slot_put
|
||
add sp, 6
|
||
push 1
|
||
call frame_delay
|
||
push 7
|
||
mov al, byte_DD20
|
||
cbw
|
||
push ax
|
||
call sub_BA20
|
||
add sp, 4
|
||
push 1
|
||
call frame_delay
|
||
mov al, byte_DD20
|
||
cbw
|
||
add ax, ax
|
||
lea dx, [bp+var_C]
|
||
add ax, dx
|
||
mov bx, ax
|
||
mov ax, ss:[bx]
|
||
add ax, 8
|
||
push ax
|
||
mov al, byte_DD20
|
||
cbw
|
||
add ax, ax
|
||
lea dx, [bp+var_6]
|
||
add ax, dx
|
||
mov bx, ax
|
||
mov ax, ss:[bx]
|
||
add ax, 8
|
||
push ax
|
||
call sub_B9BB
|
||
add sp, 4
|
||
inc byte_DD20
|
||
cmp byte_DD20, 2
|
||
jle short loc_BF1C
|
||
mov byte_DD20, 0
|
||
|
||
loc_BF1C:
|
||
push 1
|
||
call frame_delay
|
||
push 1
|
||
mov al, byte_DD20
|
||
cbw
|
||
push ax
|
||
call sub_B90D
|
||
add sp, 4
|
||
push 1
|
||
call frame_delay
|
||
push 0Ch
|
||
mov al, byte_DD20
|
||
cbw
|
||
push ax
|
||
call sub_BA20
|
||
add sp, 4
|
||
push 1
|
||
call frame_delay
|
||
mov al, byte_DD20
|
||
cbw
|
||
push ax
|
||
mov al, byte_DD20
|
||
cbw
|
||
add ax, ax
|
||
lea dx, [bp+var_C]
|
||
add ax, dx
|
||
mov bx, ax
|
||
push word ptr ss:[bx]
|
||
mov al, byte_DD20
|
||
cbw
|
||
add ax, ax
|
||
lea dx, [bp+var_6]
|
||
add ax, dx
|
||
mov bx, ax
|
||
push word ptr ss:[bx]
|
||
call pi_slot_put
|
||
add sp, 6
|
||
|
||
loc_BF7A:
|
||
test byte ptr word_F3C8, 10h
|
||
jnz short loc_BF88
|
||
test byte ptr word_F3C8, 80h
|
||
jz short loc_BF95
|
||
|
||
loc_BF88:
|
||
les bx, dword_F3DC
|
||
mov al, byte_DD20
|
||
mov es:[bx+26h], al
|
||
jmp short loc_BFB7
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BF95:
|
||
push 1
|
||
call frame_delay
|
||
mov si, word_F3C8
|
||
or si, si
|
||
jz short loc_BFB2
|
||
inc di
|
||
cmp di, 1Eh
|
||
ja short loc_BFAD
|
||
jmp loc_BD54
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BFAD:
|
||
xor si, si
|
||
jmp loc_BD54
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BFB2:
|
||
xor di, di
|
||
jmp loc_BD54
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BFB7:
|
||
freePISlot 0
|
||
freePISlot 1
|
||
freePISlot 2
|
||
push 1
|
||
call palette_black_out
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_BD24 endp
|
||
|
||
op_05_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
op_06_TEXT segment byte public 'CODE' use16
|
||
assume cs:op_06_TEXT
|
||
;org 5
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BFF5 proc near
|
||
|
||
var_1 = byte ptr -1
|
||
arg_0 = byte ptr 4
|
||
arg_2 = byte ptr 6
|
||
|
||
enter 2, 0
|
||
mov al, 1
|
||
sub al, byte ptr word_F57C+1
|
||
mov [bp+var_1], al
|
||
mov dx, 0A6h ; '<27>'
|
||
out dx, al
|
||
mov al, [bp+arg_2]
|
||
mov ah, 0
|
||
shl ax, 2
|
||
mov bx, ax
|
||
push word ptr [bx+8E8h]
|
||
push word ptr [bx+8E6h]
|
||
mov al, [bp+arg_0]
|
||
mov ah, 0
|
||
or ax, 20h
|
||
push ax
|
||
mov al, [bp+arg_2]
|
||
mov ah, 0
|
||
add ax, 6
|
||
shl ax, 4
|
||
push ax
|
||
push 10h
|
||
call sub_AB4D
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, byte ptr word_F57C+1
|
||
out dx, al
|
||
mov al, [bp+arg_2]
|
||
mov ah, 0
|
||
shl ax, 2
|
||
mov bx, ax
|
||
push word ptr [bx+8E8h]
|
||
push word ptr [bx+8E6h]
|
||
mov al, [bp+arg_0]
|
||
mov ah, 0
|
||
or ax, 20h
|
||
push ax
|
||
mov al, [bp+arg_2]
|
||
mov ah, 0
|
||
add ax, 6
|
||
shl ax, 4
|
||
push ax
|
||
push 10h
|
||
call sub_AB4D
|
||
add sp, 14h
|
||
leave
|
||
retn 4
|
||
sub_BFF5 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C070 proc near
|
||
|
||
arg_0 = byte ptr 4
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
xor si, si
|
||
jmp short loc_C08D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C078:
|
||
push si
|
||
mov al, [bp+arg_0]
|
||
mov ah, 0
|
||
cmp ax, si
|
||
jnz short loc_C086
|
||
mov al, 0Fh
|
||
jmp short loc_C088
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C086:
|
||
mov al, 3
|
||
|
||
loc_C088:
|
||
push ax
|
||
call sub_BFF5
|
||
inc si
|
||
|
||
loc_C08D:
|
||
cmp si, 11h
|
||
jl short loc_C078
|
||
pop si
|
||
pop bp
|
||
retn 2
|
||
sub_C070 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C097 proc near
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push 7D00h
|
||
call hmem_allocbyte
|
||
mov word ptr dword_F57E+2, ax
|
||
mov word ptr dword_F57E, 0
|
||
xor si, si
|
||
jmp short loc_C0CD
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C0B0:
|
||
les bx, VRAM_PLANE_B
|
||
add bx, si
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, dword_F57E
|
||
add bx, si
|
||
mov es:[bx+2], dx
|
||
mov es:[bx], ax
|
||
add si, 4
|
||
|
||
loc_C0CD:
|
||
cmp si, 7D00h
|
||
jl short loc_C0B0
|
||
pop si
|
||
pop bp
|
||
retn
|
||
sub_C097 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C0D6 proc near
|
||
push bp
|
||
mov bp, sp
|
||
push word ptr dword_F57E+2
|
||
call hmem_free
|
||
pop bp
|
||
retn
|
||
sub_C0D6 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C0E4 proc near
|
||
push bp
|
||
mov bp, sp
|
||
xor cx, cx
|
||
jmp short loc_C108
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C0EB:
|
||
les bx, dword_F57E
|
||
add bx, cx
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, VRAM_PLANE_B
|
||
add bx, cx
|
||
mov es:[bx+2], dx
|
||
mov es:[bx], ax
|
||
add cx, 4
|
||
|
||
loc_C108:
|
||
cmp cx, 7D00h
|
||
jl short loc_C0EB
|
||
pop bp
|
||
retn
|
||
sub_C0E4 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C110 proc near
|
||
|
||
var_3 = byte ptr -3
|
||
var_2 = word ptr -2
|
||
arg_0 = byte ptr 4
|
||
arg_2 = word ptr 6
|
||
arg_4 = word ptr 8
|
||
arg_6 = word ptr 0Ah
|
||
arg_8 = word ptr 0Ch
|
||
arg_A = word ptr 0Eh
|
||
|
||
enter 4, 0
|
||
push si
|
||
push di
|
||
mov di, [bp+arg_A]
|
||
sar [bp+arg_6], 4
|
||
mov [bp+var_2], 0
|
||
jmp short loc_C18E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C124:
|
||
mov ax, [bp+var_2]
|
||
shl ax, 8
|
||
cwd
|
||
idiv [bp+arg_2]
|
||
add al, [bp+arg_0]
|
||
mov [bp+var_3], al
|
||
mov ax, [bp+arg_4]
|
||
cwd
|
||
mov bl, [bp+var_3]
|
||
mov bh, 0
|
||
add bx, bx
|
||
push ax
|
||
mov ax, [bx+308h]
|
||
push dx
|
||
cwd
|
||
pop cx
|
||
pop bx
|
||
call LXMUL@
|
||
mov cl, 8
|
||
call far ptr LXRSH@
|
||
add ax, [bp+arg_8]
|
||
mov bx, [bp+var_2]
|
||
shl bx, 2
|
||
mov [bx+di], ax
|
||
mov ax, [bp+arg_4]
|
||
cwd
|
||
mov bl, [bp+var_3]
|
||
mov bh, 0
|
||
add bx, bx
|
||
push ax
|
||
mov ax, [bx+288h]
|
||
push dx
|
||
cwd
|
||
pop cx
|
||
pop bx
|
||
call LXMUL@
|
||
mov cl, 8
|
||
call far ptr LXRSH@
|
||
add ax, [bp+arg_6]
|
||
mov bx, [bp+var_2]
|
||
shl bx, 2
|
||
mov [bx+di+2], ax
|
||
inc [bp+var_2]
|
||
|
||
loc_C18E:
|
||
mov ax, [bp+var_2]
|
||
cmp ax, [bp+arg_2]
|
||
jl short loc_C124
|
||
mov bx, [bp+var_2]
|
||
shl bx, 2
|
||
mov ax, [di]
|
||
mov [bx+di], ax
|
||
mov bx, [bp+var_2]
|
||
shl bx, 2
|
||
mov ax, [di+2]
|
||
mov [bx+di+2], ax
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn 0Ch
|
||
sub_C110 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C1B2 proc near
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
cmp byte_DF96, 0
|
||
jz short loc_C1C0
|
||
jmp loc_C263
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C1C0:
|
||
xor si, si
|
||
jmp loc_C256
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C1C5:
|
||
call IRand
|
||
mov bx, 280h
|
||
cwd
|
||
idiv bx
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov [bx+1EACh], dx
|
||
call IRand
|
||
mov bx, 1900h
|
||
cwd
|
||
idiv bx
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov [bx+1EAEh], dx
|
||
call IRand
|
||
and ax, 7
|
||
mov dx, 4
|
||
sub dx, ax
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov [bx+1EECh], dx
|
||
mov bx, si
|
||
shl bx, 2
|
||
cmp word ptr [bx+1EECh], 0
|
||
jnz short loc_C21A
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov word ptr [bx+1EECh], 1
|
||
|
||
loc_C21A:
|
||
call IRand
|
||
and ax, 3
|
||
shl ax, 4
|
||
add ax, 20h ; ' '
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov [bx+1EEEh], ax
|
||
call IRand
|
||
mov [si+1F2Ch], al
|
||
call IRand
|
||
and al, 7
|
||
mov dl, 4
|
||
sub dl, al
|
||
mov [si+1F3Ch], dl
|
||
cmp byte ptr [si+1F3Ch], 0
|
||
jnz short loc_C255
|
||
mov byte ptr [si+1F3Ch], 4
|
||
|
||
loc_C255:
|
||
inc si
|
||
|
||
loc_C256:
|
||
cmp si, 10h
|
||
jge short loc_C25E
|
||
jmp loc_C1C5
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C25E:
|
||
mov byte_DF96, 1
|
||
|
||
loc_C263:
|
||
xor si, si
|
||
jmp loc_C3A1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C268:
|
||
push 1E84h
|
||
mov bx, si
|
||
shl bx, 2
|
||
push word ptr [bx+1EACh]
|
||
mov bx, si
|
||
shl bx, 2
|
||
push word ptr [bx+1EAEh]
|
||
mov ax, si
|
||
and ax, 3
|
||
shl ax, 4
|
||
add ax, 40h
|
||
push ax
|
||
mov ax, si
|
||
mov bx, 4
|
||
cwd
|
||
idiv bx
|
||
add ax, 3
|
||
push ax
|
||
mov al, [si+1F2Ch]
|
||
push ax
|
||
call sub_C110
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov ax, [bx+1EECh]
|
||
mov bx, si
|
||
shl bx, 2
|
||
add [bx+1EACh], ax
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov ax, [bx+1EEEh]
|
||
mov bx, si
|
||
shl bx, 2
|
||
add [bx+1EAEh], ax
|
||
mov al, [si+1F3Ch]
|
||
add [si+1F2Ch], al
|
||
mov bx, si
|
||
shl bx, 2
|
||
cmp word ptr [bx+1EACh], 0
|
||
jle short loc_C2E2
|
||
mov bx, si
|
||
shl bx, 2
|
||
cmp word ptr [bx+1EACh], 27Fh
|
||
jl short loc_C2F4
|
||
|
||
loc_C2E2:
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov dx, 0FFFFh
|
||
mov ax, [bx+1EECh]
|
||
imul dx
|
||
mov [bx+1EECh], ax
|
||
|
||
loc_C2F4:
|
||
mov bx, si
|
||
shl bx, 2
|
||
cmp word ptr [bx+1EAEh], 1F40h
|
||
jge short loc_C304
|
||
jmp loc_C38B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C304:
|
||
call IRand
|
||
mov bx, 280h
|
||
cwd
|
||
idiv bx
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov [bx+1EACh], dx
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov word ptr [bx+1EAEh], 0F9C0h
|
||
call IRand
|
||
and ax, 0Fh
|
||
mov dx, 8
|
||
sub dx, ax
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov [bx+1EECh], dx
|
||
mov bx, si
|
||
shl bx, 2
|
||
cmp word ptr [bx+1EECh], 0
|
||
jnz short loc_C350
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov word ptr [bx+1EECh], 1
|
||
|
||
loc_C350:
|
||
call IRand
|
||
and ax, 3
|
||
shl ax, 4
|
||
add ax, 20h ; ' '
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov [bx+1EEEh], ax
|
||
call IRand
|
||
mov [si+1F2Ch], al
|
||
call IRand
|
||
and al, 7
|
||
mov dl, 4
|
||
sub dl, al
|
||
mov [si+1F3Ch], dl
|
||
cmp byte ptr [si+1F3Ch], 0
|
||
jnz short loc_C38B
|
||
mov byte ptr [si+1F3Ch], 4
|
||
|
||
loc_C38B:
|
||
push ds
|
||
push offset unk_F4B4
|
||
mov ax, si
|
||
mov bx, 4
|
||
cwd
|
||
idiv bx
|
||
add ax, 3
|
||
push ax
|
||
call grcg_polygon_c
|
||
inc si
|
||
|
||
loc_C3A1:
|
||
cmp si, 10h
|
||
jge short loc_C3A9
|
||
jmp loc_C268
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C3A9:
|
||
pop si
|
||
pop bp
|
||
retn
|
||
sub_C1B2 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C3AC proc near
|
||
push bp
|
||
mov bp, sp
|
||
call sub_C0E4
|
||
call grcg_setcolor pascal, GC_RMW or GC_B, 15
|
||
call sub_C1B2
|
||
call grcg_off
|
||
mov dx, 0A4h ; '<27>'
|
||
mov al, byte ptr word_F57C+1
|
||
out dx, al
|
||
mov al, 1
|
||
sub al, byte ptr word_F57C+1
|
||
mov byte ptr word_F57C+1, al
|
||
mov dx, 0A6h ; '<27>'
|
||
out dx, al
|
||
push 1
|
||
call frame_delay
|
||
pop bp
|
||
retn
|
||
sub_C3AC endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C3E1 proc near
|
||
|
||
var_6 = word ptr -6
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
|
||
enter 6, 0
|
||
push si
|
||
push di
|
||
mov [bp+var_6], 0
|
||
jmp short loc_C409
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C3EE:
|
||
push 3200h
|
||
call hmem_allocbyte
|
||
mov bx, [bp+var_6]
|
||
shl bx, 2
|
||
mov [bx+1F54h], ax
|
||
mov word ptr [bx+1F52h], 0
|
||
inc [bp+var_6]
|
||
|
||
loc_C409:
|
||
cmp [bp+var_6], 4
|
||
jl short loc_C3EE
|
||
xor si, si
|
||
mov di, 40h
|
||
jmp loc_C4AC
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C417:
|
||
mov [bp+var_2], 0A0h
|
||
jmp loc_C4A1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C41F:
|
||
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_4], ax
|
||
les bx, VRAM_PLANE_B
|
||
add bx, [bp+var_4]
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, dword ptr unk_F582
|
||
mov es:[bx+si+2], dx
|
||
mov es:[bx+si], ax
|
||
les bx, VRAM_PLANE_R
|
||
add bx, [bp+var_4]
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, dword ptr unk_F586
|
||
mov es:[bx+si+2], dx
|
||
mov es:[bx+si], ax
|
||
les bx, VRAM_PLANE_G
|
||
add bx, [bp+var_4]
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, dword ptr unk_F58A
|
||
mov es:[bx+si+2], dx
|
||
mov es:[bx+si], ax
|
||
les bx, VRAM_PLANE_E
|
||
add bx, [bp+var_4]
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, dword ptr unk_F58E
|
||
mov es:[bx+si+2], dx
|
||
mov es:[bx+si], ax
|
||
add si, 4
|
||
add [bp+var_2], 20h ; ' '
|
||
|
||
loc_C4A1:
|
||
cmp [bp+var_2], 1E0h
|
||
jge short loc_C4AB
|
||
jmp loc_C41F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C4AB:
|
||
inc di
|
||
|
||
loc_C4AC:
|
||
cmp di, 50h ; 'P'
|
||
jge short loc_C4B4
|
||
jmp loc_C417
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C4B4:
|
||
mov di, 50h ; 'P'
|
||
jmp loc_C54F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C4BA:
|
||
mov [bp+var_2], 130h
|
||
jmp loc_C544
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C4C2:
|
||
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_4], ax
|
||
les bx, VRAM_PLANE_B
|
||
add bx, [bp+var_4]
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, dword ptr unk_F582
|
||
mov es:[bx+si+2], dx
|
||
mov es:[bx+si], ax
|
||
les bx, VRAM_PLANE_R
|
||
add bx, [bp+var_4]
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, dword ptr unk_F586
|
||
mov es:[bx+si+2], dx
|
||
mov es:[bx+si], ax
|
||
les bx, VRAM_PLANE_G
|
||
add bx, [bp+var_4]
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, dword ptr unk_F58A
|
||
mov es:[bx+si+2], dx
|
||
mov es:[bx+si], ax
|
||
les bx, VRAM_PLANE_E
|
||
add bx, [bp+var_4]
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, dword ptr unk_F58E
|
||
mov es:[bx+si+2], dx
|
||
mov es:[bx+si], ax
|
||
add si, 4
|
||
add [bp+var_2], 20h ; ' '
|
||
|
||
loc_C544:
|
||
cmp [bp+var_2], 270h
|
||
jge short loc_C54E
|
||
jmp loc_C4C2
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C54E:
|
||
inc di
|
||
|
||
loc_C54F:
|
||
cmp di, 180h
|
||
jge short loc_C558
|
||
jmp loc_C4BA
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C558:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn
|
||
sub_C3E1 endp
|
||
|
||
include th02/music/music_cmt_load.asm
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C5A4 proc near
|
||
push bp
|
||
mov bp, sp
|
||
push word_F584
|
||
call hmem_free
|
||
push word_F588
|
||
call hmem_free
|
||
push word_F58C
|
||
call hmem_free
|
||
push word_F590
|
||
call hmem_free
|
||
pop bp
|
||
retn
|
||
sub_C5A4 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C5CD proc near
|
||
|
||
var_2 = word ptr -2
|
||
|
||
enter 2, 0
|
||
push si
|
||
push di
|
||
xor cx, cx
|
||
mov si, 40h
|
||
jmp loc_C673
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C5DB:
|
||
mov di, 0A0h
|
||
jmp loc_C669
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C5E1:
|
||
mov ax, di
|
||
sar ax, 3
|
||
mov dx, si
|
||
shl dx, 6
|
||
add ax, dx
|
||
mov dx, si
|
||
shl dx, 4
|
||
add ax, dx
|
||
mov [bp+var_2], ax
|
||
les bx, dword ptr unk_F582
|
||
add bx, cx
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, VRAM_PLANE_B
|
||
add bx, [bp+var_2]
|
||
mov es:[bx+2], dx
|
||
mov es:[bx], ax
|
||
les bx, dword ptr unk_F586
|
||
add bx, cx
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, VRAM_PLANE_R
|
||
add bx, [bp+var_2]
|
||
mov es:[bx+2], dx
|
||
mov es:[bx], ax
|
||
les bx, dword ptr unk_F58A
|
||
add bx, cx
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, VRAM_PLANE_G
|
||
add bx, [bp+var_2]
|
||
mov es:[bx+2], dx
|
||
mov es:[bx], ax
|
||
les bx, dword ptr unk_F58E
|
||
add bx, cx
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, VRAM_PLANE_E
|
||
add bx, [bp+var_2]
|
||
mov es:[bx+2], dx
|
||
mov es:[bx], ax
|
||
add cx, 4
|
||
add di, 20h ; ' '
|
||
|
||
loc_C669:
|
||
cmp di, 1E0h
|
||
jge short loc_C672
|
||
jmp loc_C5E1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C672:
|
||
inc si
|
||
|
||
loc_C673:
|
||
cmp si, 50h ; 'P'
|
||
jge short loc_C67B
|
||
jmp loc_C5DB
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C67B:
|
||
mov si, 50h ; 'P'
|
||
jmp loc_C719
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C681:
|
||
mov di, 130h
|
||
jmp loc_C70F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C687:
|
||
mov ax, di
|
||
sar ax, 3
|
||
mov dx, si
|
||
shl dx, 6
|
||
add ax, dx
|
||
mov dx, si
|
||
shl dx, 4
|
||
add ax, dx
|
||
mov [bp+var_2], ax
|
||
les bx, dword ptr unk_F582
|
||
add bx, cx
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, VRAM_PLANE_B
|
||
add bx, [bp+var_2]
|
||
mov es:[bx+2], dx
|
||
mov es:[bx], ax
|
||
les bx, dword ptr unk_F586
|
||
add bx, cx
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, VRAM_PLANE_R
|
||
add bx, [bp+var_2]
|
||
mov es:[bx+2], dx
|
||
mov es:[bx], ax
|
||
les bx, dword ptr unk_F58A
|
||
add bx, cx
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, VRAM_PLANE_G
|
||
add bx, [bp+var_2]
|
||
mov es:[bx+2], dx
|
||
mov es:[bx], ax
|
||
les bx, dword ptr unk_F58E
|
||
add bx, cx
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, VRAM_PLANE_E
|
||
add bx, [bp+var_2]
|
||
mov es:[bx+2], dx
|
||
mov es:[bx], ax
|
||
add cx, 4
|
||
add di, 20h ; ' '
|
||
|
||
loc_C70F:
|
||
cmp di, 270h
|
||
jge short loc_C718
|
||
jmp loc_C687
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C718:
|
||
inc si
|
||
|
||
loc_C719:
|
||
cmp si, 180h
|
||
jge short loc_C722
|
||
jmp loc_C681
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C722:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retn
|
||
sub_C5CD endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C726 proc near
|
||
|
||
@@track = word ptr 4
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
call music_cmt_load pascal, [bp+@@track]
|
||
call sub_C0E4
|
||
call sub_C5CD
|
||
push ds
|
||
push offset music_cmt
|
||
push 1Fh
|
||
push 40h
|
||
push 0A0h
|
||
call sub_AB4D
|
||
add sp, 0Ah
|
||
mov si, 1
|
||
jmp short loc_C76E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C74F:
|
||
push ds
|
||
mov ax, si
|
||
imul ax, MUSIC_CMT_LINE_LEN
|
||
add ax, offset music_cmt
|
||
push ax
|
||
push 1Dh
|
||
lea ax, [si+4]
|
||
shl ax, 4
|
||
push ax
|
||
push 130h
|
||
call sub_AB4D
|
||
add sp, 0Ah
|
||
inc si
|
||
|
||
loc_C76E:
|
||
cmp si, MUSIC_CMT_LINE_COUNT
|
||
jl short loc_C74F
|
||
xor di, di
|
||
jmp short loc_C794
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C777:
|
||
les bx, VRAM_PLANE_B
|
||
add bx, di
|
||
mov dx, es:[bx+2]
|
||
mov ax, es:[bx]
|
||
les bx, dword_F57E
|
||
add bx, di
|
||
mov es:[bx+2], dx
|
||
mov es:[bx], ax
|
||
add di, 4
|
||
|
||
loc_C794:
|
||
cmp di, 7D00h
|
||
jl short loc_C777
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retn 2
|
||
sub_C726 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_C7A0 proc far
|
||
|
||
var_1 = byte ptr -1
|
||
|
||
enter 2, 0
|
||
mov byte ptr word_F57C+1, 1
|
||
mov PaletteTone, 0
|
||
call far ptr palette_show
|
||
mov dx, 0A4h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
mov dx, 0A6h ; '<27>'
|
||
out dx, al
|
||
call graph_clear
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
call pi_slot_load stdcall, 0, offset aOp3_pi, ds
|
||
call pi_slot_palette_apply stdcall, 0
|
||
call pi_slot_put stdcall, 0, 0, 0
|
||
add sp, 0Eh
|
||
freePISlot 0
|
||
mov al, byte_DF97
|
||
mov byte ptr word_F57C, al
|
||
push word_F57C
|
||
call sub_C070
|
||
push 0
|
||
call graph_copy_page
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
mov dx, 0A4h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
call sub_C097
|
||
call sub_C3E1
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
mov al, byte_DF97
|
||
mov ah, 0
|
||
push ax
|
||
call sub_C726
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
mov al, byte_DF97
|
||
mov ah, 0
|
||
push ax
|
||
call sub_C726
|
||
mov PaletteTone, 64h ; 'd'
|
||
call far ptr palette_show
|
||
|
||
loc_C849:
|
||
call sub_AED0
|
||
cmp word_F3C8, 0
|
||
jz short loc_C85A
|
||
call sub_C3AC
|
||
jmp short loc_C849
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C85A:
|
||
call sub_AED0
|
||
test byte ptr word_F3C8, 1
|
||
jz short loc_C895
|
||
push word_F57C
|
||
push 3
|
||
call sub_BFF5
|
||
cmp byte ptr word_F57C, 0
|
||
jbe short loc_C87C
|
||
dec byte ptr word_F57C
|
||
jmp short loc_C881
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C87C:
|
||
mov byte ptr word_F57C, 10h
|
||
|
||
loc_C881:
|
||
cmp byte ptr word_F57C, 0Fh
|
||
jnz short loc_C88C
|
||
dec byte ptr word_F57C
|
||
|
||
loc_C88C:
|
||
push word_F57C
|
||
push 0Fh
|
||
call sub_BFF5
|
||
|
||
loc_C895:
|
||
test byte ptr word_F3C8, 2
|
||
jz short loc_C8CB
|
||
push word_F57C
|
||
push 3
|
||
call sub_BFF5
|
||
cmp byte ptr word_F57C, 10h
|
||
jnb short loc_C8B2
|
||
inc byte ptr word_F57C
|
||
jmp short loc_C8B7
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C8B2:
|
||
mov byte ptr word_F57C, 0
|
||
|
||
loc_C8B7:
|
||
cmp byte ptr word_F57C, 0Fh
|
||
jnz short loc_C8C2
|
||
inc byte ptr word_F57C
|
||
|
||
loc_C8C2:
|
||
push word_F57C
|
||
push 0Fh
|
||
call sub_BFF5
|
||
|
||
loc_C8CB:
|
||
test byte ptr word_F3C8, 10h
|
||
jnz short loc_C8D9
|
||
test byte ptr word_F3C8, 80h
|
||
jz short loc_C950
|
||
|
||
loc_C8D9:
|
||
cmp byte ptr word_F57C, 10h
|
||
jnz short loc_C8E3
|
||
jmp loc_C967
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C8E3:
|
||
mov al, snd_midi_active
|
||
mov [bp+var_1], al
|
||
mov al, snd_midi_possible
|
||
mov snd_midi_active, al
|
||
push SND_LOAD_SONG
|
||
mov al, byte ptr word_F57C
|
||
mov ah, 0
|
||
shl ax, 2
|
||
mov bx, ax
|
||
push word ptr [bx+92Ch]
|
||
push word ptr [bx+92Ah]
|
||
call snd_load
|
||
mov snd_midi_active, 0
|
||
push SND_LOAD_SONG
|
||
mov al, byte ptr word_F57C
|
||
mov ah, 0
|
||
shl ax, 2
|
||
mov bx, ax
|
||
push word ptr [bx+92Ch]
|
||
push word ptr [bx+92Ah]
|
||
call snd_load
|
||
mov al, [bp+var_1]
|
||
mov snd_midi_active, al
|
||
kajacall KAJA_SONG_PLAY
|
||
add sp, 0Eh
|
||
mov al, byte ptr word_F57C
|
||
mov byte_DF97, al
|
||
mov ah, 0
|
||
push ax
|
||
call sub_C726
|
||
call sub_C3AC
|
||
mov al, byte ptr word_F57C
|
||
mov ah, 0
|
||
push ax
|
||
call sub_C726
|
||
|
||
loc_C950:
|
||
test byte ptr word_F3C8, 40h
|
||
jnz short loc_C967
|
||
cmp word_F3C8, 0
|
||
jz short loc_C961
|
||
jmp loc_C849
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C961:
|
||
call sub_C3AC
|
||
jmp loc_C85A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C967:
|
||
call sub_AED0
|
||
cmp word_F3C8, 0
|
||
jz short loc_C978
|
||
call sub_C3AC
|
||
jmp short loc_C967
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_C978:
|
||
call sub_C0D6
|
||
call sub_C5A4
|
||
mov dx, 0A4h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
mov dx, 0A6h ; '<27>'
|
||
out dx, al
|
||
call graph_clear
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 1
|
||
out dx, al
|
||
call pi_slot_load stdcall, 0, offset aOp2_pi_0, ds
|
||
call pi_slot_palette_apply stdcall, 0
|
||
call pi_slot_put stdcall, 0, 0, 0
|
||
add sp, 0Eh
|
||
freePISlot 0
|
||
push ds
|
||
push offset aOp_rgb_0 ; "op.rgb"
|
||
call palette_entry_rgb
|
||
call far ptr palette_show
|
||
push 0
|
||
call graph_copy_page
|
||
mov dx, 0A6h ; '<27>'
|
||
mov al, 0
|
||
out dx, al
|
||
leave
|
||
retf
|
||
sub_C7A0 endp
|
||
|
||
op_06_TEXT ends
|
||
|
||
.data
|
||
|
||
byte_D6C0 db 0
|
||
byte_D6C1 db 0
|
||
byte_D6C2 db 0
|
||
db 0
|
||
gZUN db 0C3h, 0BEh, 0B6h, 0
|
||
include th02/strings/ranks_center[data].asm
|
||
gHIT_KEY db 0B1h, 0B2h, 0BDh, 0CFh, 0B4h, 0AEh, 0C2h, 0
|
||
g7SPACES db 0CFh, 0CFh, 0CFh, 0CFh, 0CFh, 0CFh, 0CFh, 0
|
||
gSTART db 0BCh, 0BDh, 0AAh, 0BBh, 0BDh, 0, 0, 0, 0, 0
|
||
gEXTRA_START db 0AEh, 0C1h, 0BDh, 0BBh, 0AAh, 0CFh, 0BCh, 0BDh, 0AAh, 0BBh, 0BDh, 0
|
||
gHISCORE db 0B1h, 0B2h, 0BCh, 0ACh, 0B8h, 0BBh, 0AEh, 0, 0, 0
|
||
gOPTION db 0B8h, 0B9h, 0BDh, 0B2h, 0B8h, 0B6h, 0, 0, 0, 0
|
||
gQUIT db 0BAh, 0BEh, 0B2h, 0BDh, 0, 0, 0, 0, 0, 0
|
||
gRANK db 0BBh, 0AAh, 0B6h, 0B4h, 0, 0, 0, 0, 0, 0
|
||
gPLAYER db 0B9h, 0B5h, 0AAh, 0C2h, 0AEh, 0BBh, 0, 0, 0, 0
|
||
gMUSIC db 0B7h, 0BEh, 0BCh, 0B2h, 0ACh, 0, 0, 0, 0, 0
|
||
gBOMB db 0ABh, 0B8h, 0B7h, 0ABh, 0, 0, 0, 0, 0, 0
|
||
gMUSIC_MODE db 0B7h, 0BEh, 0BCh, 0B2h, 0ACh, 0CFh, 0B7h, 0B8h, 0ADh, 0AEh, 0
|
||
gRESET db 0BBh, 0AEh, 0BCh, 0AEh, 0BDh, 0, 0, 0, 0, 0
|
||
gsEASY db 0E8h, 0E9h, 0
|
||
gsNORMAL db 0EAh, 0EBh, 0
|
||
gsHARD db 0ECh, 0EDh, 0
|
||
gsLUNATIC db 0EEh, 0EFh, 0
|
||
gOFF db 0B8h, 0AFh, 0AFh, 0CFh, 0
|
||
gFM db 0CFh, 0AFh, 0B7h, 0CFh, 0
|
||
gMIDI db 0B7h, 0B2h, 0ADh, 0B2h, 0
|
||
PERF_TITLE dd aPERF_TITLE
|
||
PERF_OPTION dd aPERF_NORMAL
|
||
dd aPERF_TRUNCATE
|
||
byte_D790 db 0
|
||
byte_D791 db 0
|
||
byte_D792 db 0
|
||
aHuuma_cfg db 'huuma.cfg',0
|
||
aHuuma_efc db 'huuma.efc',0
|
||
aOp2_pi db 'op2.pi',0
|
||
aOp_pi db 'op.pi',0
|
||
aOpa_pi db 'opa.pi',0
|
||
aOpb_pi db 'opb.pi',0
|
||
aOpc_pi db 'opc.pi',0
|
||
aOp_m db 'op.m',0
|
||
aOp_rgb db 'op.rgb',0
|
||
aTs1_pi db 'ts1.pi',0
|
||
aSelect db 'select',0
|
||
; char path[]
|
||
path db 'main',0
|
||
aPERF_TITLE db '<27><><EFBFBD>o',0
|
||
aPERF_NORMAL db '<27>@<40>ʏ<EFBFBD> ',0
|
||
aPERF_TRUNCATE db '<27>ꕔ<EFBFBD>y<EFBFBD><79>',0
|
||
aMikoft_bft db 'MIKOFT.bft',0
|
||
aGminit_m db 'gminit.m',0
|
||
aTs3_pi db 'ts3.pi',0
|
||
aTs2_pi db 'ts2.pi',0
|
||
db 0
|
||
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/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/version[data].asm
|
||
include libs/master.lib/vs[data].asm
|
||
include libs/master.lib/wordmask[data].asm
|
||
include libs/master.lib/mem[data].asm
|
||
include libs/master.lib/super_entry_bfnt[data].asm
|
||
include libs/master.lib/superpa[data].asm
|
||
include th02/formats/pfopen[data].asm
|
||
aUmx db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E>^',0
|
||
snd_active db 0
|
||
db 0
|
||
include th02/hardware/snd_se[data].asm
|
||
byte_DC34 db 1
|
||
db 0
|
||
include th02/strings/hiscore[data].asm
|
||
gcEASY_0 db 0CFh, 0AEh, 0AAh, 0BCh, 0C2h, 0CFh, 0CFh, 0
|
||
gcNORMAL_0 db 0B6h, 0B8h, 0BBh, 0B7h, 0AAh, 0B5h, 0CFh, 0
|
||
gcHARD_0 db 0CFh, 0B1h, 0AAh, 0BBh, 0ADh, 0CFh, 0CFh, 0
|
||
gcLUNATIC_0 db 0B5h, 0BEh, 0B6h, 0AAh, 0BDh, 0B2h, 0ACh, 0
|
||
HISCORE_TYPE dd aKOUKIDOU ; "<22><><EFBFBD>@<40><>"
|
||
dd aBOUGYO ; "<22>h<EFBFBD><68>"
|
||
dd aKOUGEKI ; "<22>U<EFBFBD><55>"
|
||
word_DCB0 dw 0
|
||
byte_DCB2 db 1
|
||
db 0
|
||
unk_DCB4 db 3Eh ; >
|
||
db 1
|
||
db 76h ; v
|
||
db 0
|
||
db 0DAh ; <20>
|
||
db 0
|
||
unk_DCBA db 1
|
||
db 2
|
||
db 4
|
||
aHuuhi_dat db 'huuhi.dat',0
|
||
aKOUKIDOU db '<27><><EFBFBD>@<40><>',0
|
||
aBOUGYO db '<27>h<EFBFBD><68>',0
|
||
aKOUGEKI db '<27>U<EFBFBD><55>',0
|
||
aHISCORE_HEAD db ' <20><><EFBFBD><EFBFBD><EFBFBD>O<EFBFBD>@<40>@<40>@<40>@<40>@<40>@<40><><EFBFBD>_<EFBFBD>@<40>@<40>@ STAGE TYPE <20><><EFBFBD>t',0
|
||
aOp_h_bft db 'op_h.bft',0
|
||
aOp_h_rgb db 'op_h.rgb',0
|
||
byte_DD20 db 1
|
||
db 0
|
||
dd aIaczlVCV ; " <20>A<EFBFBD>z<EFBFBD>ʂ̗͂<CC97><CD82>g<EFBFBD><67><EFBFBD>Ȃ<EFBFBD> "
|
||
dd aNlfIVVivL@uocV ; " <20>L<EFBFBD>͈͂ł<CD82><C582>@<40><><EFBFBD>͂<EFBFBD> "
|
||
dd aB@lnvvnvl@uocG ; "<22>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD>̓^<5E>C<EFBFBD>v<EFBFBD>@"
|
||
dd aB@sMvvkcdvVVvv ; " <20>@<40>ˌ<EFBFBD><CB8C><EFBFBD><EFBFBD>D<EFBFBD><44><EFBFBD>Ă<EFBFBD><C482><EFBFBD> <20>@"
|
||
dd aB@GogigugxvOcv ; "<22>@ <20>o<EFBFBD><6F><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD>̎<EFBFBD><CC8E>ꂽ<EFBFBD>@ "
|
||
dd aB@b@chmfpdolgG ; "<22>@<40>@<40>h<EFBFBD><68><EFBFBD>d<EFBFBD><64><EFBFBD>^<5E>C<EFBFBD>v<EFBFBD>@<40>@"
|
||
dd aB@iaczlVCVRavd ; " <20>@<40>A<EFBFBD>z<EFBFBD>ʂ̗͂Ő키 "
|
||
dd aB@numvcVkcdvVV ; "<22>@<40>U<EFBFBD><55><EFBFBD>͂<EFBFBD><CD82>D<EFBFBD><44><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>@"
|
||
dd aB@b@numvpdolgG ; "<22>@<40>@<40>U<EFBFBD><55><EFBFBD>d<EFBFBD><64><EFBFBD>^<5E>C<EFBFBD>v<EFBFBD>@<40>@"
|
||
off_DD46 dd aSCVRaumgxgGcgl
|
||
; "<22>˖<EFBFBD><CB96>̐퓬<CC90>X<EFBFBD>^<5E>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD>̂R<CC82><EFBFBD><C282>炦<EFBFBD><E782A6><EFBFBD>E...
|
||
off_DD4A dd aTnbjb@ggglgxgg
|
||
; "<22><><EFBFBD>j<EFBFBD>@<40>G<EFBFBD>L<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD>X<EFBFBD>e<EFBFBD>[<5B>W<EFBFBD>ł́A<CD81><41><EFBFBD>Փx<D593>A<EFBFBD>E...
|
||
off_DD4E dd aB@b@b@vVVVBauq
|
||
; "<22>@<40>@<40>@<40><><EFBFBD>ꂼ<EFBFBD><EA82BC><EFBFBD>A<EFBFBD><41><EFBFBD>Փx<D593>d<EFBFBD>w<EFBFBD>s<EFBFBD>q<EFBFBD>`<60>A<EFBFBD>v<EFBFBD><76><EFBFBD>E...
|
||
off_DD52 dd aBsbsvbvkvdvVqv
|
||
; " <20><><EFBFBD><EFBFBD><EFBFBD>b<EFBFBD>k<EFBFBD>d<EFBFBD>`<60>q<EFBFBD>d<EFBFBD>c<EFBFBD><63><EFBFBD><EFBFBD> "
|
||
unk_DD56 db 10h
|
||
db 0
|
||
db 0E0h
|
||
db 0
|
||
db 0B0h ; <20>
|
||
db 1
|
||
unk_DD5C db 80h
|
||
db 0
|
||
db 0E0h
|
||
db 0
|
||
db 80h
|
||
db 0
|
||
aIaczlVCV db ' <20>A<EFBFBD>z<EFBFBD>ʂ̗͂<CC97><CD82>g<EFBFBD><67><EFBFBD>Ȃ<EFBFBD> ',0
|
||
aNlfIVVivL@uocV db ' <20>L<EFBFBD>͈͂ł<CD82><C582>@<40><><EFBFBD>͂<EFBFBD> ',0
|
||
aB@lnvvnvl@uocG db '<27>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD>̓^<5E>C<EFBFBD>v<EFBFBD>@',0
|
||
aB@sMvvkcdvVVvv db ' <20>@<40>ˌ<EFBFBD><CB8C><EFBFBD><EFBFBD>D<EFBFBD><44><EFBFBD>Ă<EFBFBD><C482><EFBFBD> <20>@',0
|
||
aB@GogigugxvOcv db '<27>@ <20>o<EFBFBD><6F><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD>̎<EFBFBD><CC8E>ꂽ<EFBFBD>@ ',0
|
||
aB@b@chmfpdolgG db '<27>@<40>@<40>h<EFBFBD><68><EFBFBD>d<EFBFBD><64><EFBFBD>^<5E>C<EFBFBD>v<EFBFBD>@<40>@',0
|
||
aB@iaczlVCVRavd db ' <20>@<40>A<EFBFBD>z<EFBFBD>ʂ̗͂Ő키 ',0
|
||
aB@numvcVkcdvVV db '<27>@<40>U<EFBFBD><55><EFBFBD>͂<EFBFBD><CD82>D<EFBFBD><44><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>@',0
|
||
aB@b@numvpdolgG db '<27>@<40>@<40>U<EFBFBD><55><EFBFBD>d<EFBFBD><64><EFBFBD>^<5E>C<EFBFBD>v<EFBFBD>@<40>@',0
|
||
aSCVRaumgxgGcgl db '<27>˖<EFBFBD><CB96>̐퓬<CC90>X<EFBFBD>^<5E>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD>̂R<CC82><EFBFBD><C282>炦<EFBFBD><E782A6><EFBFBD><EFBFBD><EFBFBD>ł<EFBFBD>',0
|
||
aTnbjb@ggglgxgg db '<27><><EFBFBD>j<EFBFBD>@<40>G<EFBFBD>L<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD>X<EFBFBD>e<EFBFBD>[<5B>W<EFBFBD>ł́A<CD81><41><EFBFBD>Փx<D593>A<EFBFBD>v<EFBFBD><76><EFBFBD>C<EFBFBD><43><EFBFBD>[<5B>A<EFBFBD>{<7B><><EFBFBD><EFBFBD><EFBFBD>͕ύX<CF8D>o<EFBFBD><6F><EFBFBD>܂<EFBFBD><DC82><EFBFBD>',0
|
||
aB@b@b@vVVVBauq db '<27>@<40>@<40>@<40><><EFBFBD>ꂼ<EFBFBD><EA82BC><EFBFBD>A<EFBFBD><41><EFBFBD>Փx<D593>d<EFBFBD>w<EFBFBD>s<EFBFBD>q<EFBFBD>`<60>A<EFBFBD>v<EFBFBD><76><EFBFBD>C<EFBFBD><43><EFBFBD>[<5B>R<EFBFBD>l<EFBFBD>A<EFBFBD>{<7B><><EFBFBD>P<EFBFBD>ƂȂ<C682><C882>܂<EFBFBD> ',0
|
||
aBsbsvbvkvdvVqv db ' <20><><EFBFBD><EFBFBD><EFBFBD>b<EFBFBD>k<EFBFBD>d<EFBFBD>`<60>q<EFBFBD>d<EFBFBD>c<EFBFBD><63><EFBFBD><EFBFBD> ',0
|
||
aTselect_pi db 'TSELECT.pi',0
|
||
dd aNo_1Umx ; "NO.1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>^<5E>@<40>`<60><><EFBFBD>y<EFBFBD><79>䶗<EFBFBD>"
|
||
dd aNo_2B@Focab@bE ; "NO.2 <20>@ <20><><EFBFBD><EFBFBD><EFBFBD>@<40>`Eastern Wind "
|
||
dd aNo_3B@EndOfDay ; "NO.3 <20>@ End of Daylight<68>@ "
|
||
dd aNo_4B@b@b@b@b@ ; "NO.4 <20>@<40>@<40>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>E<EFBFBD>@<40>@<40>@<40>@"
|
||
dd aNo_5VVrvivmbav ; "NO.5 <20>Ђ<EFBFBD><D082>났<EFBFBD>A<EFBFBD>ނ炳<DE82><E782B3><EFBFBD>ɂ<EFBFBD><C982><EFBFBD>"
|
||
dd aNo_6B@umx ; "NO.6 <20>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>^<5E>@<40>`<60>H<EFBFBD><48><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
dd aNo_7B@SheSInAT ; "NO.7 <20>@ She's in a temper!! "
|
||
dd aNo_8B@B@VtvVVV ; "NO.8 <20>@ <20>@ <20><><EFBFBD>݂̂<DD82><CC82><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>@ "
|
||
dd aNo_9B@b@b@b@oa ; "NO.9 <20>@<40>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>q<EFBFBD><71><EFBFBD>ā@<40>@<40>@"
|
||
dd aNo_10B@B@C ; "NO.10 <20>@ <09>@ <20><><EFBFBD>F<EFBFBD>}<7D>W<EFBFBD>b<EFBFBD>N <09>@ "
|
||
dd aNo_11CompleteD ; "NO.11 Complete Darkness "
|
||
dd aNo_12B@b@iucVR ; "NO.12 <09>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>̐X<CC90>@<40>@<40>@ "
|
||
dd aNo_13RSbvav ; "NO.13 <20>̘b<CC98><62><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "
|
||
dd aNo_14B@Ggglgxg ; "NO.14 <20>@ <20>G<EFBFBD>L<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>u "
|
||
dd aNo_15RaoVVVVVV ; "NO.15 <20><><EFBFBD>Ԃނ<D482><DE82>߂݂̂<CC82><DD82><EFBFBD><EFBFBD><EFBFBD> "
|
||
dd aB@b@ ; " <20>@<40>@ "
|
||
dd aB@b@vpvxvivf ; " <20>@<40>@<40>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "
|
||
dd aOp_m_0 ; "op.m"
|
||
dd aStage0_m ; "stage0.m"
|
||
dd aStage1_m ; "stage1.m"
|
||
dd aStage2_m ; "stage2.m"
|
||
dd aStage3_m ; "stage3.m"
|
||
dd aStage4_m ; "stage4.m"
|
||
dd aBoss1_m ; "boss1.m"
|
||
dd aBoss4_m ; "boss4.m"
|
||
dd aBoss2_m ; "boss2.m"
|
||
dd aBoss3_m ; "boss3.m"
|
||
dd aMima_m ; "mima.m"
|
||
dd aEnd1_m ; "end1.m"
|
||
dd aEnding_m ; "ending.m"
|
||
dd aStage5_m ; "stage5.m"
|
||
dd aBoss5_m ; "boss5.m"
|
||
byte_DF96 db 0
|
||
byte_DF97 db 0
|
||
aNo_1Umx db 'NO.1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>^<5E>@<40>`<60><><EFBFBD>y<EFBFBD><79>䶗<EFBFBD>',0
|
||
aNo_2B@Focab@bE db 'NO.2 <20>@ <20><><EFBFBD><EFBFBD><EFBFBD>@<40>`Eastern Wind ',0
|
||
aNo_3B@EndOfDay db 'NO.3 <20>@ End of Daylight<68>@ ',0
|
||
aNo_4B@b@b@b@b@ db 'NO.4 <20>@<40>@<40>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>E<EFBFBD>@<40>@<40>@<40>@',0
|
||
aNo_5VVrvivmbav db 'NO.5 <20>Ђ<EFBFBD><D082>났<EFBFBD>A<EFBFBD>ނ炳<DE82><E782B3><EFBFBD>ɂ<EFBFBD><C982><EFBFBD>',0
|
||
aNo_6B@umx db 'NO.6 <20>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>^<5E>@<40>`<60>H<EFBFBD><48><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||
aNo_7B@SheSInAT db 'NO.7 <20>@ She',27h,'s in a temper!! ',0
|
||
aNo_8B@B@VtvVVV db 'NO.8 <20>@ <20>@ <20><><EFBFBD>݂̂<DD82><CC82><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40>@ ',0
|
||
aNo_9B@b@b@b@oa db 'NO.9 <20>@<40>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>q<EFBFBD><71><EFBFBD>ā@<40>@<40>@',0
|
||
aNo_10B@B@C db 'NO.10 <20>@ <20>@ <20><><EFBFBD>F<EFBFBD>}<7D>W<EFBFBD>b<EFBFBD>N <20>@ ',0
|
||
aNo_11CompleteD db 'NO.11 Complete Darkness ',0
|
||
aNo_12B@b@iucVR db 'NO.12 <20>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>̐X<CC90>@<40>@<40>@ ',0
|
||
aNo_13RSbvav db 'NO.13 <20>̘b<CC98><62><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
|
||
aNo_14B@Ggglgxg db 'NO.14 <20>@ <20>G<EFBFBD>L<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>u ',0
|
||
aNo_15RaoVVVVVV db 'NO.15 <20><><EFBFBD>Ԃނ<D482><DE82>߂݂̂<CC82><DD82><EFBFBD><EFBFBD><EFBFBD> ',0
|
||
aB@b@ db ' <20>@<40>@ ',0
|
||
aB@b@vpvxvivf db ' <20>@<40>@<40>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
|
||
aOp_m_0 db 'op.m',0
|
||
aStage0_m db 'stage0.m',0
|
||
aStage1_m db 'stage1.m',0
|
||
aStage2_m db 'stage2.m',0
|
||
aStage3_m db 'stage3.m',0
|
||
aStage4_m db 'stage4.m',0
|
||
aBoss1_m db 'boss1.m',0
|
||
aBoss4_m db 'boss4.m',0
|
||
aBoss2_m db 'boss2.m',0
|
||
aBoss3_m db 'boss3.m',0
|
||
aMima_m db 'mima.m',0
|
||
aEnd1_m db 'end1.m',0
|
||
aEnding_m db 'ending.m',0
|
||
aStage5_m db 'stage5.m',0
|
||
aBoss5_m db 'boss5.m',0
|
||
include th02/music/music_cmt_load[data].asm
|
||
aOp3_pi db 'op3.pi',0
|
||
aOp2_pi_0 db 'op2.pi',0
|
||
aOp_rgb_0 db 'op.rgb',0
|
||
|
||
.data?
|
||
|
||
byte_E8F8 db ?
|
||
snd_bgm_mode db ?
|
||
dw ?
|
||
word_E8FC dw ?
|
||
byte_E8FE db ?
|
||
db ?
|
||
word_E900 dw ?
|
||
fp_E902 dw ?
|
||
include libs/master.lib/clip[bss].asm
|
||
include libs/master.lib/fil[bss].asm
|
||
include libs/master.lib/pal[bss].asm
|
||
include libs/master.lib/vs[bss].asm
|
||
include libs/master.lib/vsync[bss].asm
|
||
include libs/master.lib/mem[bss].asm
|
||
include libs/master.lib/superpa[bss].asm
|
||
include libs/master.lib/super_put_rect[bss].asm
|
||
include th01/hardware/vram_planes[bss].asm
|
||
include th02/formats/pi_slots[bss].asm
|
||
include libs/master.lib/pfint21[bss].asm
|
||
word_F3C8 dw ?
|
||
include th02/hardware/snd[bss].asm
|
||
include th02/hardware/snd_load[bss].asm
|
||
dword_F3DC dd ?
|
||
db ? ;
|
||
byte_F3E1 db ?
|
||
byte_F3E2 db ?
|
||
dd ? ;
|
||
dd ? ;
|
||
db ? ;
|
||
word_F3EC dw ?
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
byte_F4A2 db ?
|
||
db ?
|
||
word_F4A4 dw ?
|
||
byte_F4A6 db ?
|
||
byte_F4A7 db ?
|
||
byte_F4A8 db ?
|
||
byte_F4A9 db ?
|
||
byte_F4AA db ?
|
||
byte_F4AB db ?
|
||
dd ? ;
|
||
dd ? ;
|
||
unk_F4B4 db ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
dd ? ;
|
||
db ? ;
|
||
db ? ;
|
||
db ? ;
|
||
word_F57C dw ?
|
||
dword_F57E dd ?
|
||
unk_F582 db ? ;
|
||
db ? ;
|
||
word_F584 dw ?
|
||
unk_F586 db ? ;
|
||
db ? ;
|
||
word_F588 dw ?
|
||
unk_F58A db ? ;
|
||
db ? ;
|
||
word_F58C dw ?
|
||
unk_F58E db ? ;
|
||
db ? ;
|
||
word_F590 dw ?
|
||
include th02/music/music_cmt[bss].asm
|
||
|
||
end
|