ReC98/th03_mainl.asm

9237 lines
158 KiB
NASM
Raw Normal View History

2014-07-01 18:30:39 +00:00
;
; +-------------------------------------------------------------------------+
; | This file has been generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2009 by Hex-Rays, <support@hex-rays.com> |
; +-------------------------------------------------------------------------+
;
; Input MD5 : CE44AA7A114237C6B3CD67EEA9C0225A
; File Name : th03/MAINL.EXE
; Format : MS-DOS executable (EXE)
; Base Address: 0h Range: 0h-10CF0h Loaded length: F72Ch
; Entry Point : 0:0
; OS type : MS DOS
; Application type: Executable 16bit
CGROUP00 group seg000
CGROUP01 group seg001
CGROUP02 group seg002
CGROUP03 group seg003
.286 ; Force the .model directive to create 16-bit default segments...
2014-07-01 18:30:39 +00:00
.model large
__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.
2014-07-01 18:30:39 +00:00
include ReC98.inc
include th03/th03.asm
2014-07-01 18:30:39 +00:00
; ===========================================================================
; Segment type: Pure code
seg000 segment word public 'CODE' use16
2014-07-01 18:30:39 +00:00
assume cs:seg000
assume es:nothing, ss:_STACK, ds:dseg, fs:nothing, gs:nothing
2014-07-01 18:30:39 +00:00
include libs/BorlandC/c0.asm
2014-08-23 09:51:14 +00:00
db 0
include libs/master.lib/bfnt_entry_pat.asm
include libs/master.lib/bfnt_extend_header_skip.asm
2014-08-23 10:08:48 +00:00
include libs/master.lib/bfnt_header_read.asm
include libs/master.lib/bfnt_header_analysis.asm
2014-08-26 18:54:57 +00:00
include libs/master.lib/bcloser.asm
include libs/master.lib/bfill.asm
2014-08-23 14:56:01 +00:00
include libs/master.lib/bfnt_palette_set.asm
2014-08-26 19:23:54 +00:00
include libs/master.lib/bgetc.asm
2014-08-26 22:21:45 +00:00
include libs/master.lib/palette_black_in.asm
2014-08-26 22:33:43 +00:00
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
2014-08-23 01:03:17 +00:00
include libs/master.lib/dos_axdx.asm
2014-08-28 03:13:35 +00:00
include libs/master.lib/dos_filesize.asm
2014-08-23 01:02:18 +00:00
include libs/master.lib/dos_keyclear.asm
2014-08-22 23:38:22 +00:00
include libs/master.lib/dos_setvect.asm
include libs/master.lib/egc.asm
2014-08-30 05:58:36 +00:00
include libs/master.lib/file_append.asm
include libs/master.lib/file_close.asm
2014-08-30 06:32:10 +00:00
include libs/master.lib/file_create.asm
2014-08-30 06:46:38 +00:00
include libs/master.lib/file_exist.asm
2014-08-30 07:00:31 +00:00
include libs/master.lib/file_read.asm
2014-08-30 07:12:17 +00:00
include libs/master.lib/file_ropen.asm
include libs/master.lib/file_seek.asm
2014-08-30 08:06:10 +00:00
include libs/master.lib/file_size.asm
2014-08-30 07:38:09 +00:00
include libs/master.lib/file_write.asm
2014-08-22 22:46:33 +00:00
include libs/master.lib/dos_close.asm
include libs/master.lib/dos_ropen.asm
2014-08-28 03:31:57 +00:00
include libs/master.lib/grcg_boxfill.asm
2014-08-27 21:20:37 +00:00
include libs/master.lib/grcg_byteboxfill_x.asm
include libs/master.lib/grcg_setcolor.asm
2014-08-30 12:15:00 +00:00
include libs/master.lib/gdc_outpw.asm
2014-07-01 18:30:39 +00:00
db 0
include libs/master.lib/gaiji_backup.asm
2014-08-31 08:08:09 +00:00
include libs/master.lib/gaiji_entry_bfnt.asm
include libs/master.lib/gaiji_read.asm
include libs/master.lib/gaiji_write.asm
2014-08-27 22:58:40 +00:00
include libs/master.lib/graph_400line.asm
2014-08-27 04:03:08 +00:00
include libs/master.lib/graph_clear.asm
2014-08-27 04:13:48 +00:00
include libs/master.lib/graph_copy_page.asm
2014-08-15 14:11:51 +00:00
include libs/master.lib/graph_extmode.asm
include libs/master.lib/graph_gaiji_putc.asm
include libs/master.lib/graph_pi_free.asm
include libs/master.lib/graph_pi_load_pack.asm
2014-08-31 05:26:45 +00:00
include libs/master.lib/graph_pack_put_8.asm
2014-08-31 04:43:32 +00:00
include libs/master.lib/graph_scrollup.asm
include libs/master.lib/graph_show.asm
2014-08-30 11:44:36 +00:00
include libs/master.lib/iatan2.asm
2014-08-23 11:46:31 +00:00
include libs/master.lib/js_end.asm
2014-08-23 14:11:16 +00:00
include libs/master.lib/palette_show.asm
2014-08-27 01:11:13 +00:00
include libs/master.lib/pfclose.asm
2014-09-07 13:07:36 +00:00
include libs/master.lib/pfgetc.asm
2014-08-30 10:50:48 +00:00
include libs/master.lib/pfread.asm
include libs/master.lib/pfrewind.asm
2014-08-30 10:26:02 +00:00
include libs/master.lib/pfseek.asm
2014-08-30 10:13:04 +00:00
include libs/master.lib/random.asm
2014-08-31 03:14:54 +00:00
include libs/master.lib/palette_entry_rgb.asm
include libs/master.lib/rottbl.asm
include libs/master.lib/smem_release.asm
2014-08-21 23:04:46 +00:00
include libs/master.lib/smem_wget.asm
2014-08-31 04:27:47 +00:00
include libs/master.lib/soundio.asm
include libs/master.lib/text_clear.asm
2014-08-26 20:02:09 +00:00
include libs/master.lib/text_fillca.asm
include libs/master.lib/vsync.asm
2014-08-26 22:11:29 +00:00
include libs/master.lib/vsync_wait.asm
include libs/master.lib/palette_white_in.asm
2014-08-26 22:57:45 +00:00
include libs/master.lib/palette_white_out.asm
2014-08-21 23:19:52 +00:00
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
2014-08-22 21:56:33 +00:00
include libs/master.lib/super_entry_at.asm
include libs/master.lib/super_entry_bfnt.asm
2014-08-22 21:33:18 +00:00
include libs/master.lib/super_cancel_pat.asm
include libs/master.lib/super_put.asm
include libs/master.lib/respal_exist.asm
2014-09-03 14:08:44 +00:00
include libs/master.lib/respal_set_palettes.asm
include libs/master.lib/pfint21.asm
2014-07-01 18:30:39 +00:00
db 0
; =============== S U B R O U T I N E =======================================
sub_2AAE proc far
2014-07-01 18:30:39 +00:00
mov cx, 100h
mov dx, 188h
loc_2AB4:
2014-07-01 18:30:39 +00:00
in al, dx
inc al
jnz short loc_2ABF
loop loc_2AB4
xor ax, ax
jmp short loc_2AD3
; ---------------------------------------------------------------------------
loc_2ABF:
2014-07-01 18:30:39 +00:00
pushf
cli
mov bh, 7
2014-08-31 04:27:47 +00:00
call sound_i
2014-07-01 18:30:39 +00:00
and al, 3Fh
or al, 80h
mov bl, al
2014-08-31 04:27:47 +00:00
call sound_o
2014-07-01 18:30:39 +00:00
popf
mov ax, 1
loc_2AD3:
2014-07-01 18:30:39 +00:00
mov word_E960, ax
retf
sub_2AAE endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_2AD8 proc near
2014-07-01 18:30:39 +00:00
mov bh, 0Fh
2014-08-31 04:27:47 +00:00
call sound_o
2014-07-01 18:30:39 +00:00
mov dx, 188h
mov al, 0Eh
out dx, al
inc dx
inc dx
in al, dx
not al
retn
sub_2AD8 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_2AEA proc far
2014-07-01 18:30:39 +00:00
push bp
push si
push di
xor bp, bp
cmp word_E960, 0
jz short loc_2B03
pushf
cli
mov bl, 80h
2014-07-01 18:30:39 +00:00
call sub_2AD8
and ax, 3Fh
mov si, ax
popf
loc_2B03:
2014-07-01 18:30:39 +00:00
or word_F80A, si
pop di
pop si
pop bp
retf
sub_2AEA endp
; ---------------------------------------------------------------------------
nop
xchg dx, bx
out dx, al
xchg dx, bx
in al, dx
not al
retn
; ---------------------------------------------------------------------------
db 0
include th03/formats/pfopen.asm
include libs/master.lib/pf_str_ieq.asm
include libs/master.lib/graph_pack_put_8_noclip.asm
include libs/BorlandC/_abort.asm
2014-08-20 15:03:08 +00:00
include libs/BorlandC/stpcpy.asm
include libs/BorlandC/abort.asm
include libs/BorlandC/atexit.asm
include libs/BorlandC/del.asm
include libs/BorlandC/delarray.asm
2014-08-20 19:22:56 +00:00
include libs/BorlandC/dosenv.asm
include libs/BorlandC/dosgdriv.asm
2014-08-20 18:38:08 +00:00
include libs/BorlandC/errormsg.asm
2014-08-20 15:53:02 +00:00
include libs/BorlandC/exit.asm
2014-08-20 18:17:45 +00:00
include libs/BorlandC/f_scopy.asm
include libs/BorlandC/getvect.asm
2014-08-14 16:40:47 +00:00
include libs/BorlandC/H_LDIV.ASM
2014-08-14 15:15:04 +00:00
include libs/BorlandC/H_LLSH.ASM
2014-08-14 15:07:21 +00:00
include libs/BorlandC/H_PADD.ASM
include libs/BorlandC/ioerror.asm
2014-08-14 14:50:20 +00:00
include libs/BorlandC/_isatty.asm
include libs/BorlandC/lseek.asm
include libs/BorlandC/new.asm
2014-08-14 17:35:29 +00:00
include libs/BorlandC/N_LXMUL.ASM
include libs/BorlandC/N_PCMP.ASM
include libs/BorlandC/setupio.asm
include libs/BorlandC/tolower.asm
include libs/BorlandC/toupper.asm
include libs/BorlandC/xxas.asm
include libs/BorlandC/xxv.asm
include libs/BorlandC/cputype.asm
include libs/BorlandC/FARHEAP.ASM
include libs/BorlandC/fbrk.asm
include libs/BorlandC/signal.asm
include libs/BorlandC/_access.asm
include libs/BorlandC/pathops.asm
include libs/BorlandC/chmoda.asm
2014-08-20 17:46:47 +00:00
include libs/BorlandC/fflush.asm
2014-09-02 19:26:48 +00:00
include libs/BorlandC/flushall.asm
2014-09-02 18:41:48 +00:00
include libs/BorlandC/fseek.asm
2014-09-04 17:04:39 +00:00
include libs/BorlandC/fullpath.asm
2014-08-23 16:42:30 +00:00
include libs/BorlandC/getdcwd.asm
2014-09-03 15:08:02 +00:00
include libs/BorlandC/getenv.asm
2014-08-27 05:05:29 +00:00
include libs/BorlandC/memcmp.asm
2014-08-27 05:15:15 +00:00
include libs/BorlandC/memcpy.asm
include libs/BorlandC/memset.asm
2014-08-27 17:47:14 +00:00
include libs/BorlandC/movmem.asm
2014-09-04 18:54:06 +00:00
include libs/BorlandC/srchenv.asm
2014-09-04 18:29:49 +00:00
include libs/BorlandC/srchstr.asm
2014-09-03 12:02:14 +00:00
include libs/BorlandC/setvbuf.asm
2014-08-14 08:15:10 +00:00
include libs/BorlandC/_strcat.asm
include libs/BorlandC/_strcmp.asm
2014-08-10 04:17:56 +00:00
include libs/BorlandC/_strcpy.asm
2014-08-10 04:09:29 +00:00
include libs/BorlandC/_stricmp.asm
include libs/BorlandC/_strlen.asm
include libs/BorlandC/strrchr.asm
include libs/BorlandC/write.asm
include libs/BorlandC/writea.asm
2014-08-28 19:54:04 +00:00
include libs/BorlandC/xfflush.asm
2014-08-29 01:24:39 +00:00
include libs/BorlandC/xalloc.asm
include libs/BorlandC/xmsg.asm
include libs/BorlandC/xx.asm
include libs/BorlandC/doscmd.asm
include libs/BorlandC/exec.asm
include libs/BorlandC/execl.asm
2014-09-02 21:38:26 +00:00
include libs/BorlandC/setblock.asm
2014-08-18 12:33:24 +00:00
include libs/BorlandC/setenvp.asm
include libs/BorlandC/ctor2.asm
2014-08-30 00:37:53 +00:00
include libs/BorlandC/ctor3.asm
include libs/BorlandC/strings.asm
include libs/BorlandC/mbjmsjis.asm
2014-09-06 16:48:39 +00:00
include libs/BorlandC/loadprog.asm
2014-07-01 18:30:39 +00:00
seg000 ends
; ===========================================================================
; Segment type: Pure code
seg001 segment byte public 'CODE' use16
assume cs:seg001
;org 3
assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_95F3 proc near
2014-07-01 18:30:39 +00:00
var_8 = byte ptr -8
var_3 = word ptr -3
enter 8, 0
push si
push ds
push offset aYume_cfg ; "YUME.CFG"
2014-08-30 07:12:17 +00:00
call file_ropen
2014-07-01 18:30:39 +00:00
push ss
lea ax, [bp+var_8]
push ax
push 8
2014-08-30 07:00:31 +00:00
call file_read
call file_close
2014-07-01 18:30:39 +00:00
mov si, [bp+var_3]
mov word ptr dword_105DA+2, si
mov word ptr dword_105DA, 0
mov ax, si
pop si
leave
retn
sub_95F3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9624 proc near
2014-07-01 18:30:39 +00:00
var_2 = byte ptr -2
var_1 = byte ptr -1
enter 2, 0
push ds
push offset aLogo0_rgb ; "logo0.rgb"
2014-08-31 03:14:54 +00:00
call palette_entry_rgb
2014-08-23 14:11:16 +00:00
call far ptr palette_show
2014-07-01 18:30:39 +00:00
push 0
push ds
push offset aLogo_cd2 ; "logo.cd2"
call sub_D114
push 5
push ds
push offset aLogo5_cdg ; "logo5.cdg"
push 0
call sub_CF1E
les bx, dword_105DA
cmp byte ptr es:[bx+17h], 0
jnz short loc_965E
mov al, byte_F7E3
jmp short loc_9661
; ---------------------------------------------------------------------------
loc_965E:
2014-07-01 18:30:39 +00:00
mov al, byte_F7E4
loc_9661:
2014-07-01 18:30:39 +00:00
mov [bp+var_1], al
les bx, dword_105DA
cmp byte ptr es:[bx+17h], 0
jnz short loc_969A
cmp byte ptr es:[bx+33h], 6
jnz short loc_967C
mov [bp+var_2], 9
jmp short loc_96B7
; ---------------------------------------------------------------------------
loc_967C:
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
cmp byte ptr es:[bx+33h], 7
jnz short loc_968D
mov [bp+var_2], 0Ah
jmp short loc_96B7
; ---------------------------------------------------------------------------
loc_968D:
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
cmp byte ptr es:[bx+17h], 0
jnz short loc_96AA
jmp short loc_96A5
; ---------------------------------------------------------------------------
loc_969A:
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
cmp byte ptr es:[bx+17h], 0
jnz short loc_96AA
loc_96A5:
2014-07-01 18:30:39 +00:00
mov al, byte_F7E4
jmp short loc_96AD
; ---------------------------------------------------------------------------
loc_96AA:
2014-07-01 18:30:39 +00:00
mov al, byte_F7E3
loc_96AD:
2014-07-01 18:30:39 +00:00
mov ah, 0
cwd
sub ax, dx
sar ax, 1
mov [bp+var_2], al
loc_96B7:
2014-07-01 18:30:39 +00:00
push 6
push ds
mov al, [bp+var_1]
mov ah, 0
cwd
sub ax, dx
mov bx, ax
sar bx, 1
add bx, bx
push word ptr [bx+90h]
mov al, [bp+var_1]
mov ah, 0
and ax, 1
push ax
call sub_CFA8
mov al, [bp+var_1]
mov ah, 0
cwd
sub ax, dx
mov bx, ax
sar bx, 1
shl bx, 2
pushd dword ptr [bx+0A2h]
2014-08-30 07:12:17 +00:00
call file_ropen
2014-07-01 18:30:39 +00:00
mov al, [bp+var_2]
mov ah, 0
imul ax, 0B4h
cwde
push eax
push 0
call file_seek
2014-07-01 18:30:39 +00:00
push ds
push offset unk_F72C
push 3Ch ; '<'
2014-08-30 07:00:31 +00:00
call file_read
2014-07-01 18:30:39 +00:00
mov byte_F768, 0
push ds
push offset unk_F769
push 3Ch ; '<'
2014-08-30 07:00:31 +00:00
call file_read
2014-07-01 18:30:39 +00:00
mov byte_F7A5, 0
push ds
push offset unk_F7A6
push 3Ch ; '<'
2014-08-30 07:00:31 +00:00
call file_read
2014-07-01 18:30:39 +00:00
mov byte_F7E2, 0
call file_close
2014-07-01 18:30:39 +00:00
leave
retn
sub_9624 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_973E proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
push 500110h
2014-07-01 18:30:39 +00:00
push 2Fh ; '/'
push ds
push offset unk_F72C
call sub_D197
push 500120h
2014-07-01 18:30:39 +00:00
push 2Fh ; '/'
push ds
push offset unk_F769
call sub_D197
push 500130h
2014-07-01 18:30:39 +00:00
push 2Fh ; '/'
push ds
push offset unk_F7A6
call sub_D197
pop bp
retn
sub_973E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9776 proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
push si
xor si, si
jmp short loc_9785
; ---------------------------------------------------------------------------
loc_977E:
2014-07-01 18:30:39 +00:00
push si
call sub_D130
inc si
loc_9785:
2014-07-01 18:30:39 +00:00
cmp si, 20h ; ' '
jl short loc_977E
pop si
pop bp
retn
sub_9776 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_978D proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
push si
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
2014-08-27 04:03:08 +00:00
call graph_clear
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
2014-08-27 04:03:08 +00:00
call graph_clear
mov dx, 0A4h
2014-07-01 18:30:39 +00:00
mov al, 0
out dx, al
2014-08-23 13:47:05 +00:00
mov PaletteTone, 0
2014-08-23 14:11:16 +00:00
call far ptr palette_show
call graph_show
push 160012Ch
2014-07-01 18:30:39 +00:00
push 0
call sub_D712
kajacall KAJA_SONG_PLAY
2014-07-01 18:30:39 +00:00
push 2
2014-08-26 22:21:45 +00:00
call palette_black_in
push 60010h
2014-07-01 18:30:39 +00:00
call sub_D3FC
mov si, 1
jmp short loc_97FC
; ---------------------------------------------------------------------------
loc_97E8:
push 160012Ch
2014-07-01 18:30:39 +00:00
push si
call sub_D712
2014-07-01 18:30:39 +00:00
push 6
2014-11-23 21:25:22 +00:00
call frame_delay
2014-07-01 18:30:39 +00:00
inc si
loc_97FC:
2014-07-01 18:30:39 +00:00
cmp si, 5
jl short loc_97E8
push 0A0040h
2014-07-01 18:30:39 +00:00
call sub_D3FC
mov PaletteTone, 0C8h
2014-08-23 14:11:16 +00:00
call far ptr palette_show
push 0E00040h
2014-07-01 18:30:39 +00:00
push 6
call sub_D712
push 160012Ch
2014-07-01 18:30:39 +00:00
push 5
call sub_D712
2014-07-01 18:30:39 +00:00
push ds
push offset aLogo1_rgb ; "logo1.rgb"
2014-08-31 03:14:54 +00:00
call palette_entry_rgb
2014-08-23 14:11:16 +00:00
call far ptr palette_show
2014-07-01 18:30:39 +00:00
call sub_9776
push 0B0004h
2014-07-01 18:30:39 +00:00
call sub_D3FC
push 1
call palette_white_in
2014-07-01 18:30:39 +00:00
push 8
2014-11-23 21:25:22 +00:00
call frame_delay
2014-07-01 18:30:39 +00:00
call sub_973E
call sub_9887
or ax, ax
jnz short loc_9868
call sub_990C
loc_9868:
2014-07-01 18:30:39 +00:00
call sub_D5A2
cmp word_100FC, 0
jnz short loc_987D
push 1
2014-11-23 21:25:22 +00:00
call frame_delay
2014-07-01 18:30:39 +00:00
jmp short loc_9868
; ---------------------------------------------------------------------------
loc_987D:
2014-07-01 18:30:39 +00:00
push 1
2014-08-26 22:33:43 +00:00
call palette_black_out
2014-07-01 18:30:39 +00:00
pop si
pop bp
retn
sub_978D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9887 proc near
2014-07-01 18:30:39 +00:00
var_2 = word ptr -2
enter 2, 0
les bx, dword_105DA
cmp byte ptr es:[bx+28h], 1
jnz short loc_98A1
les bx, dword_105DA
cmp byte ptr es:[bx+17h], 0
jz short loc_98A6
loc_98A1:
2014-07-01 18:30:39 +00:00
mov ax, 1
leave
retn
; ---------------------------------------------------------------------------
loc_98A6:
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
mov al, es:[bx+33h]
mov ah, 0
add bx, ax
mov al, es:[bx+29h]
mov bx, word ptr dword_105DA
mov es:[bx+0Dh], al
cmp byte ptr es:[bx+33h], 7
jnz short loc_98CA
mov ax, 3
leave
retn
; ---------------------------------------------------------------------------
loc_98CA:
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
cmp byte ptr es:[bx+33h], 8
jnz short loc_98DA
mov ax, 4
leave
retn
; ---------------------------------------------------------------------------
loc_98DA:
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
cmp byte ptr es:[bx+33h], 9
jnz short loc_98EA
mov ax, 5
leave
retn
; ---------------------------------------------------------------------------
loc_98EA:
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
mov al, es:[bx+0Dh]
mov ah, 0
dec ax
cwd
sub ax, dx
sar ax, 1
mov [bp+var_2], ax
cmp [bp+var_2], 7
jl short loc_9908
mov byte ptr es:[bx+0Dh], 1
loc_9908:
2014-07-01 18:30:39 +00:00
xor ax, ax
leave
retn
sub_9887 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_990C proc near
2014-07-01 18:30:39 +00:00
var_1 = byte ptr -1
enter 2, 0
mov dx, 0A4h
2014-07-01 18:30:39 +00:00
mov al, 0
out dx, al
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
2014-07-01 18:30:39 +00:00
mov al, byte_F7E3
mov [bp+var_1], al
push 0
push ds
mov ah, 0
cwd
sub ax, dx
mov bx, ax
sar bx, 1
add bx, bx
push word ptr [bx+90h]
mov al, [bp+var_1]
mov ah, 0
and ax, 1
push ax
call sub_CF1E
les bx, dword_105DA
mov al, es:[bx+0Dh]
add al, 0FFh
mov [bp+var_1], al
push 1
push ds
mov ah, 0
cwd
sub ax, dx
mov bx, ax
sar bx, 1
add bx, bx
push word ptr [bx+90h]
mov al, [bp+var_1]
mov ah, 0
and ax, 1
push ax
call sub_CF1E
mov al, [bp+var_1]
mov ah, 0
cwd
sub ax, dx
sar ax, 1
mov [bp+var_1], al
mov byte_F7E5, 1
les bx, dword_105DA
cmp byte ptr es:[bx+28h], 1
jz short loc_9997
mov bx, word_E504
mov al, [bx+4]
add al, 4
jmp short loc_99CB
; ---------------------------------------------------------------------------
loc_9997:
2014-07-01 18:30:39 +00:00
cmp [bp+var_1], 7
jnz short loc_99A8
mov bx, word_E504
mov al, [bx+4]
add al, 2
jmp short loc_99CB
; ---------------------------------------------------------------------------
loc_99A8:
2014-07-01 18:30:39 +00:00
cmp [bp+var_1], 8
jnz short loc_99B7
mov bx, word_E504
inc byte ptr [bx+4]
jmp short loc_99F1
; ---------------------------------------------------------------------------
loc_99B7:
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
cmp byte ptr es:[bx+33h], 6
jnz short loc_99D4
mov bx, word_E504
mov al, [bx+4]
add al, 3
loc_99CB:
2014-07-01 18:30:39 +00:00
mov bx, word_E504
mov [bx+4], al
jmp short loc_99F1
; ---------------------------------------------------------------------------
loc_99D4:
2014-07-01 18:30:39 +00:00
push 2
push ds
push word_E502
les bx, dword_105DA
mov al, es:[bx+33h]
mov ah, 0
inc ax
push ax
call sub_CF1E
mov byte_F7E5, 0
loc_99F1:
call pi_slot_load pascal, 0, ds, offset aStnx0_pi
call pi_slot_put pascal, large 0, 0
freePISlotLarge 0
call pi_slot_load pascal, 0, ds, word_E504
call pi_slot_put pascal, large 0, 0
2014-07-01 18:30:39 +00:00
leave
retn
sub_990C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9A2C proc near
2014-07-01 18:30:39 +00:00
var_4 = word ptr -4
var_2 = word ptr -2
enter 4, 0
push si
mov si, 3A3h
mov [bp+var_2], 3AAh
2014-08-23 13:47:05 +00:00
mov PaletteTone, 0
2014-08-23 14:11:16 +00:00
call far ptr palette_show
call pi_slot_palette_apply pascal, 0
2014-07-01 18:30:39 +00:00
push 0
2014-08-27 04:13:48 +00:00
call graph_copy_page
freePISlotLarge 0
push 600060h
2014-07-01 18:30:39 +00:00
push 0
call sub_C9D4
push 1600060h
2014-07-01 18:30:39 +00:00
push 1
call sub_CA88
2014-07-01 18:30:39 +00:00
cmp byte_F7E5, 0
jnz short loc_9A8E
push 180002Eh
2014-07-01 18:30:39 +00:00
push 2
call sub_C9D4
2014-07-01 18:30:39 +00:00
loc_9A8E:
2014-07-01 18:30:39 +00:00
push 0
call sub_D130
push 1
call sub_D130
push 2
call sub_D130
les bx, dword_105DA
mov al, es:[bx+0Ch]
mov ah, 0
dec ax
cwd
sub ax, dx
sar ax, 1
add ax, ax
mov [bp+var_4], ax
push 500124h
2014-07-01 18:30:39 +00:00
push 2Fh ; '/'
mov bx, [bp+var_4]
shl bx, 2
pushd CHAR_TITLE[bx]
2014-07-01 18:30:39 +00:00
call sub_D197
push 800134h
2014-07-01 18:30:39 +00:00
push 2Fh ; '/'
mov bx, [bp+var_4]
shl bx, 2
pushd CHAR_NAME[bx]
2014-07-01 18:30:39 +00:00
call sub_D197
les bx, dword_105DA
mov al, es:[bx+0Dh]
mov ah, 0
dec ax
cwd
sub ax, dx
sar ax, 1
add ax, ax
mov [bp+var_4], ax
push 1500124h
2014-07-01 18:30:39 +00:00
push 2Fh ; '/'
mov bx, [bp+var_4]
shl bx, 2
pushd CHAR_TITLE[bx]
2014-07-01 18:30:39 +00:00
call sub_D197
push 1800134h
2014-07-01 18:30:39 +00:00
push 2Fh ; '/'
mov bx, [bp+var_4]
shl bx, 2
pushd CHAR_NAME[bx]
2014-07-01 18:30:39 +00:00
call sub_D197
push 1
2014-08-26 22:21:45 +00:00
call palette_black_in
mov vsync_Count1, 0
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
2014-08-27 04:03:08 +00:00
call graph_clear
2014-07-01 18:30:39 +00:00
push 0
call sub_9D20
push 1
call sub_9D20
call pi_slot_load pascal, 0, ds, offset aEn2_pi
call pi_slot_put_interlace pascal, large 280, 0
freePISlotLarge 0
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
mov al, es:[bx+0Dh]
mov ah, 0
dec ax
cwd
sub ax, dx
sar ax, 1
mov [bp+var_4], ax
mov bx, [bp+var_4]
cmp bx, 8
ja short loc_9BC2
add bx, bx
jmp cs:off_9C9F[bx]
loc_9B97:
2014-07-01 18:30:39 +00:00
push 0
push ds
push offset aEnemy00_pi ; "ENEMY00.pi"
jmp short loc_9BBD
; ---------------------------------------------------------------------------
loc_9B9F:
2014-07-01 18:30:39 +00:00
push 0
push ds
push offset aEnemy01_pi ; "ENEMY01.pi"
jmp short loc_9BBD
; ---------------------------------------------------------------------------
loc_9BA7:
2014-07-01 18:30:39 +00:00
push 0
push ds
push offset aEnemy02_pi ; "ENEMY02.pi"
jmp short loc_9BBD
; ---------------------------------------------------------------------------
loc_9BAF:
2014-07-01 18:30:39 +00:00
push 0
push ds
push offset aEnemy03_pi ; "ENEMY03.pi"
jmp short loc_9BBD
; ---------------------------------------------------------------------------
loc_9BB7:
2014-07-01 18:30:39 +00:00
push 0
push ds
push offset aEnemy04_pi ; "ENEMY04.pi"
loc_9BBD:
call pi_slot_load
2014-07-01 18:30:39 +00:00
loc_9BC2:
call pi_slot_put_interlace pascal, large 304, 0
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
mov al, es:[bx+0Dh]
mov ah, 0
dec ax
cwd
sub ax, dx
sar ax, 1
mov [bp+var_4], ax
cmp [bp+var_4], 0Ah
jl short loc_9BFB
mov bx, 0Ah
cwd
idiv bx
add al, [si]
mov [si], al
mov ax, [bp+var_4]
cwd
idiv bx
mov [bp+var_4], dx
loc_9BFB:
2014-07-01 18:30:39 +00:00
mov al, [si+1]
add al, byte ptr [bp+var_4]
mov [si+1], al
kajacall KAJA_SONG_STOP
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
cmp byte ptr es:[bx+33h], 6
jz short loc_9C1E
push SND_LOAD_SONG
2014-07-01 18:30:39 +00:00
push ds
push si
jmp short loc_9C25
; ---------------------------------------------------------------------------
loc_9C1E:
push SND_LOAD_SONG
2014-07-01 18:30:39 +00:00
push ds
push [bp+var_2]
loc_9C25:
call snd_load
2014-07-01 18:30:39 +00:00
add sp, 6
call snd_load c, offset aYume_efc, ds, SND_LOAD_SE
2014-07-01 18:30:39 +00:00
mov word_100FC, 0
loc_9C42:
cmp vsync_Count1, 20h ; ' '
2014-07-01 18:30:39 +00:00
jbe short loc_9C42
jmp short loc_9C50
; ---------------------------------------------------------------------------
loc_9C4B:
2014-07-01 18:30:39 +00:00
call sub_D5A2
loc_9C50:
cmp vsync_Count1, 60h
2014-07-01 18:30:39 +00:00
ja short loc_9C5E
cmp word_100FC, 0
jz short loc_9C4B
loc_9C5E:
2014-07-01 18:30:39 +00:00
push 1
2014-08-26 22:57:45 +00:00
call palette_white_out
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
2014-08-27 04:03:08 +00:00
call graph_clear
2014-07-01 18:30:39 +00:00
push 1
call palette_white_in
push 200005h
2014-08-26 20:02:09 +00:00
call text_fillca
call pi_slot_palette_apply pascal, 0
freePISlotLarge 0
2014-09-03 14:08:44 +00:00
call respal_set_palettes
2014-07-01 18:30:39 +00:00
pop si
leave
retn
sub_9A2C endp
; ---------------------------------------------------------------------------
off_9C9F dw offset loc_9B97
2014-07-01 18:30:39 +00:00
dw offset loc_9B97
dw offset loc_9B9F
dw offset loc_9BA7
dw offset loc_9B9F
dw offset loc_9BA7
dw offset loc_9B97
dw offset loc_9BAF
dw offset loc_9BB7
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9CB1 proc near
2014-07-01 18:30:39 +00:00
arg_0 = dword ptr 4
arg_4 = word ptr 8
push bp
mov bp, sp
push si
mov si, [bp+arg_4]
call pi_slot_load pascal, 0, large [bp+arg_0]
2014-07-01 18:30:39 +00:00
mov ax, si
imul ax, 320
call pi_slot_put_interlace pascal, ax, (200 shl 16)
freePISlotLarge 0
2014-07-01 18:30:39 +00:00
les bx, [bp+arg_0]
mov byte ptr es:[bx+2], 'e'
mov byte ptr es:[bx+3], 'x'
call pi_slot_load pascal, 0, word ptr [bp+arg_0+2], bx
2014-07-01 18:30:39 +00:00
mov ax, si
imul ax, 320
call pi_slot_put_interlace pascal, ax, (208 shl 16)
freePISlotLarge 0
2014-07-01 18:30:39 +00:00
pop si
pop bp
retn 6
sub_9CB1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9D20 proc near
2014-07-01 18:30:39 +00:00
var_E = byte ptr -0Eh
var_D = byte ptr -0Dh
var_2 = word ptr -2
arg_0 = word ptr 4
enter 0Eh, 0
push si
push di
mov di, [bp+arg_0]
xor si, si
jmp short loc_9D35
; ---------------------------------------------------------------------------
loc_9D2D:
2014-07-01 18:30:39 +00:00
mov al, [si+116h]
mov [bp+si+var_E], al
inc si
loc_9D35:
2014-07-01 18:30:39 +00:00
cmp si, 0Ch
jl short loc_9D2D
les bx, dword_105DA
add bx, di
mov al, es:[bx+0Ch]
mov ah, 0
dec ax
mov [bp+var_2], ax
cmp [bp+var_2], 0Ah
jl short loc_9D65
mov bx, 0Ah
cwd
idiv bx
add al, [bp+var_E]
mov [bp+var_E], al
mov ax, [bp+var_2]
cwd
idiv bx
mov [bp+var_2], dx
loc_9D65:
2014-07-01 18:30:39 +00:00
mov al, [bp+var_D]
add al, byte ptr [bp+var_2]
mov [bp+var_D], al
push di
push ss
lea ax, [bp+var_E]
push ax
call sub_9CB1
pop di
pop si
leave
retn 2
sub_9D20 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl main(int argc, const char **argv, const char **envp)
_main proc far
2014-07-01 18:30:39 +00:00
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 sub_95F3
or ax, ax
jz locret_9F8B
push ds
push offset aCOul ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1.dat"
call sub_CEE0
call respal_exist
mov snd_midi_active, 0
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
cmp byte ptr es:[bx+15h], 0
jz short loc_9DAD
call snd_determine_mode
2014-07-01 18:30:39 +00:00
loc_9DAD:
call gaiji_backup
2014-07-01 18:30:39 +00:00
push ds
push offset aMikoft_bft ; "MIKOFT.bft"
2014-08-31 08:08:09 +00:00
call gaiji_entry_bfnt
call snd_load c, offset aYume_efc, ds, SND_LOAD_SE
2014-07-01 18:30:39 +00:00
call sub_CE3E
call sub_D784
les bx, dword_105DA
cmp byte ptr es:[bx+35h], 0
jz short loc_9E04
call sub_B7D2
2014-08-20 14:45:24 +00:00
call text_clear
call gaiji_restore
2014-07-01 18:30:39 +00:00
call sub_C990
pushd 0
2014-07-01 18:30:39 +00:00
push ds
push offset path ; "op"
push ds
push offset path ; "op"
call _execl
add sp, 0Ch
loc_9E04:
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
mov al, es:[bx+0Ch]
add al, 0FFh
mov byte_F7E3, al
mov al, es:[bx+0Dh]
add al, 0FFh
mov byte_F7E4, al
cmp byte ptr es:[bx+33h], 0
jz loc_9F85
cmp byte ptr es:[bx+28h], 1
jnz short loc_9E3F
call sub_9887
mov [bp+var_1], al
cmp [bp+var_1], 4
jz short loc_9E89
cmp [bp+var_1], 5
jnz short loc_9E3F
call sub_B972
loc_9E3F:
call snd_load c, offset aWin_m, ds, SND_LOAD_SONG
2014-07-01 18:30:39 +00:00
call sub_9624
call sub_978D
kajacall KAJA_SONG_STOP
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
cmp byte ptr es:[bx+28h], 1
jnz loc_9F58
call sub_9887
mov [bp+var_1], al
cmp [bp+var_1], 0
jnz short loc_9E7B
loc_9E75:
2014-07-01 18:30:39 +00:00
call sub_9A2C
jmp loc_9F1E
; ---------------------------------------------------------------------------
loc_9E7B:
2014-07-01 18:30:39 +00:00
cmp [bp+var_1], 3
jz short loc_9E89
cmp [bp+var_1], 4
jnz loc_9F38
loc_9E89:
2014-07-01 18:30:39 +00:00
call sub_9776
freePISlotLarge 0
2014-07-01 18:30:39 +00:00
mov al, byte_F7E3
mov ah, 0
cwd
sub ax, dx
sar ax, 1
mov [bp+var_2], al
cmp [bp+var_2], 0Ah
jb short loc_9EDC
les bx, off_E4B6
mov al, es:[bx+1]
mov dl, [bp+var_2]
mov dh, 0
mov bx, 0Ah
push ax
mov ax, dx
cwd
idiv bx
pop dx
add dl, al
mov bx, word ptr off_E4B6
mov es:[bx+1], dl
mov al, [bp+var_2]
mov ah, 0
mov bx, 0Ah
cwd
idiv bx
mov [bp+var_2], dl
loc_9EDC:
2014-07-01 18:30:39 +00:00
les bx, off_E4B6
mov al, [bp+var_2]
add es:[bx+2], al
cmp [bp+var_1], 4
jnz short loc_9EF1
inc byte ptr es:[bx+5]
loc_9EF1:
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
mov dx, 0A4h
out dx, al
2014-08-27 04:03:08 +00:00
call graph_clear
call graph_show
pushd [off_E4B6]
2014-07-01 18:30:39 +00:00
call sub_A12E
call sub_AC6E
call sub_A174
call sub_990C
call sub_9A2C
call gaiji_restore
2014-07-01 18:30:39 +00:00
loc_9F1E:
2014-07-01 18:30:39 +00:00
call sub_D16F
pushd 0
2014-07-01 18:30:39 +00:00
push ds
push offset aMain ; "main"
push ds
push offset aMain ; "main"
loc_9F2E:
2014-07-01 18:30:39 +00:00
call _execl
add sp, 0Ch
leave
retf
; ---------------------------------------------------------------------------
loc_9F38:
2014-07-01 18:30:39 +00:00
call sub_9776
freePISlotLarge 0
2014-07-01 18:30:39 +00:00
call sub_B7D2
call sub_9F8D
or ax, ax
jnz short loc_9F85
call sub_B92E
jmp short loc_9F69
; ---------------------------------------------------------------------------
loc_9F58:
2014-07-01 18:30:39 +00:00
call sub_9776
freePISlotLarge 0
2014-07-01 18:30:39 +00:00
loc_9F69:
2014-08-20 14:45:24 +00:00
call text_clear
call gaiji_restore
2014-07-01 18:30:39 +00:00
call sub_C990
pushd 0
2014-07-01 18:30:39 +00:00
push ds
push offset path ; "op"
push ds
push offset path ; "op"
jmp short loc_9F2E
; ---------------------------------------------------------------------------
loc_9F85:
2014-07-01 18:30:39 +00:00
call sub_990C
jmp loc_9E75
; ---------------------------------------------------------------------------
locret_9F8B:
2014-07-01 18:30:39 +00:00
leave
retf
_main endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_9F8D proc near
2014-07-01 18:30:39 +00:00
var_6 = dword ptr -6
var_2 = word ptr -2
enter 6, 0
push si
push di
mov si, 1
mov [bp+var_2], 0
mov word ptr [bp+var_6+2], ds
mov word ptr [bp+var_6], 8D8h
xor di, di
jmp short loc_9FB3
; ---------------------------------------------------------------------------
loc_9FA7:
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
add bx, di
mov byte ptr es:[bx+18h], 0
inc di
loc_9FB3:
2014-07-01 18:30:39 +00:00
cmp di, 10h
jl short loc_9FA7
les bx, dword_105DA
cmp byte ptr es:[bx+36h], 0
jnz short loc_9FC8
xor ax, ax
jmp loc_A12A
; ---------------------------------------------------------------------------
loc_9FC8:
push 0C00110h
2014-07-01 18:30:39 +00:00
push 0
call sub_D712
push 1600110h
2014-07-01 18:30:39 +00:00
push 3
call sub_D712
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
mov al, es:[bx+36h]
les bx, [bp+var_6]
add al, es:[bx]
mov es:[bx], al
push 2400173h
2014-07-01 18:30:39 +00:00
push 2Fh ; '/'
push word ptr [bp+var_6+2]
push bx
call sub_D197
push 1
2014-08-26 22:21:45 +00:00
call palette_black_in
2014-07-01 18:30:39 +00:00
loc_A00B:
2014-07-01 18:30:39 +00:00
call sub_D5A2
test byte ptr word_100FC, 4
jnz short loc_A01E
test byte ptr word_100FC, 8
jz short loc_A056
loc_A01E:
2014-07-01 18:30:39 +00:00
cmp [bp+var_2], 0
jnz short loc_A05B
mov ax, 1
sub ax, si
mov si, ax
push 0C00110h
2014-07-01 18:30:39 +00:00
add ax, ax
mov dx, 2
sub dx, ax
push dx
call sub_D712
push 1600110h
2014-07-01 18:30:39 +00:00
mov ax, si
add ax, ax
inc ax
push ax
call sub_D712
2014-07-01 18:30:39 +00:00
mov [bp+var_2], 1
jmp short loc_A05B
; ---------------------------------------------------------------------------
loc_A056:
2014-07-01 18:30:39 +00:00
mov [bp+var_2], 0
loc_A05B:
2014-07-01 18:30:39 +00:00
test byte ptr word_100FC+1, 20h
jnz short loc_A069
test byte ptr word_100FC, 20h
jz short loc_A0B0
loc_A069:
2014-07-01 18:30:39 +00:00
cmp si, 1
jnz short loc_A0C5
push 0C00000h
call grcg_setcolor
push 2400173h
push 2500183h
2014-08-28 03:31:57 +00:00
call grcg_boxfill
call grcg_off
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
dec byte ptr es:[bx+36h]
les bx, [bp+var_6]
dec byte ptr es:[bx]
push 2400173h
2014-07-01 18:30:39 +00:00
push 2Fh ; '/'
push word ptr [bp+var_6+2]
push bx
call sub_D197
jmp short loc_A0C5
; ---------------------------------------------------------------------------
loc_A0B0:
2014-07-01 18:30:39 +00:00
test byte ptr word_100FC+1, 10h
jz short loc_A0BB
xor si, si
jmp short loc_A0C5
; ---------------------------------------------------------------------------
loc_A0BB:
2014-07-01 18:30:39 +00:00
push 1
2014-11-23 21:25:22 +00:00
call frame_delay
2014-07-01 18:30:39 +00:00
jmp loc_A00B
; ---------------------------------------------------------------------------
loc_A0C5:
kajacall KAJA_SONG_FADE, 3
2014-07-01 18:30:39 +00:00
push 1
2014-08-26 22:33:43 +00:00
call palette_black_out
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
mov dx, 0A4h
out dx, al
2014-08-23 13:47:05 +00:00
mov PaletteTone, 0
2014-08-23 14:11:16 +00:00
call far ptr palette_show
call pi_slot_load pascal, 0, ds, offset aOver_pi
call pi_slot_palette_apply pascal, 0
call pi_slot_put pascal, large 0, 0
freePISlotLarge 0
kajacall KAJA_SONG_STOP
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
dec byte ptr es:[bx+33h]
mov byte ptr es:[bx+34h], 2
mov ax, si
loc_A12A:
2014-07-01 18:30:39 +00:00
pop di
pop si
leave
retn
sub_9F8D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A12E proc near
2014-07-01 18:30:39 +00:00
arg_0 = dword ptr 4
push bp
mov bp, sp
push si
call sub_A174
pushd [bp+arg_0]
2014-08-30 07:12:17 +00:00
call file_ropen
2014-07-01 18:30:39 +00:00
or ax, ax
jnz short loc_A147
mov ax, 1
jmp short loc_A16F
; ---------------------------------------------------------------------------
loc_A147:
2014-08-30 08:06:10 +00:00
call file_size
2014-07-01 18:30:39 +00:00
mov si, ax
push ax
call hmem_allocbyte
2014-07-01 18:30:39 +00:00
mov word ptr dword_105C6+2, ax
mov word ptr dword_105C6, 0
push ax
push word ptr dword_105C6
push si
2014-08-30 07:00:31 +00:00
call file_read
call file_close
2014-07-01 18:30:39 +00:00
xor ax, ax
loc_A16F:
2014-07-01 18:30:39 +00:00
pop si
pop bp
retn 4
sub_A12E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A174 proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
cmp dword_105C6, 0
jz short loc_A191
push word ptr dword_105C6+2
call hmem_free
2014-07-01 18:30:39 +00:00
mov dword_105C6, 0
loc_A191:
2014-07-01 18:30:39 +00:00
pop bp
retn
sub_A174 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A193 proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
call egc_on
2014-07-01 18:30:39 +00:00
mov ax, 0FFF0h
mov dx, 4A0h
out dx, ax
mov ax, 0FFh
mov dx, 4A2h
out dx, ax
mov ax, 3100h
mov dx, 4A4h
out dx, ax
mov ax, 0FFFFh
mov dx, 4A8h
out dx, ax
mov ax, 0
mov dx, 4ACh
out dx, ax
mov ax, 0Fh
mov dx, 4AEh
out dx, ax
pop bp
retn
sub_A193 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A1C7 proc near
2014-07-01 18:30:39 +00:00
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 4, 0
push si
push di
mov ax, [bp+arg_2]
sar ax, 3
mov dx, [bp+arg_0]
shl dx, 6
add ax, dx
mov dx, [bp+arg_0]
shl dx, 4
add ax, dx
mov si, ax
call sub_A193
xor di, di
jmp short loc_A225
; ---------------------------------------------------------------------------
loc_A1EC:
2014-07-01 18:30:39 +00:00
mov [bp+var_2], 0
jmp short loc_A21B
; ---------------------------------------------------------------------------
loc_A1F3:
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
2014-07-01 18:30:39 +00:00
les bx, dword_10050
add bx, si
mov ax, es:[bx]
mov [bp+var_4], ax
mov al, 1
out dx, al
2014-07-01 18:30:39 +00:00
mov bx, word ptr dword_10050
add bx, si
mov ax, [bp+var_4]
mov es:[bx], ax
add [bp+var_2], 2
add si, 2
loc_A21B:
2014-07-01 18:30:39 +00:00
cmp [bp+var_2], 28h ; '('
jl short loc_A1F3
inc di
add si, 28h ; '('
loc_A225:
cmp di, 0C8h
2014-07-01 18:30:39 +00:00
jl short loc_A1EC
call egc_off
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
2014-07-01 18:30:39 +00:00
pop di
pop si
leave
retn 4
sub_A1C7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A23C proc near
2014-07-01 18:30:39 +00:00
var_8 = dword ptr -8
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
arg_6 = word ptr 0Ah
enter 8, 0
push si
push di
mov eax, pi_slot_buffers
2014-07-01 18:30:39 +00:00
mov [bp+var_8], eax
cmp [bp+arg_2], 1
jnz short loc_A257
add word ptr [bp+var_8], 0A0h
2014-07-01 18:30:39 +00:00
jmp short loc_A26F
; ---------------------------------------------------------------------------
loc_A257:
2014-07-01 18:30:39 +00:00
cmp [bp+arg_2], 2
jnz short loc_A264
add word ptr [bp+var_8], 0FA00h
jmp short loc_A26F
; ---------------------------------------------------------------------------
loc_A264:
2014-07-01 18:30:39 +00:00
cmp [bp+arg_2], 3
jnz short loc_A26F
add word ptr [bp+var_8], 0FAA0h
loc_A26F:
2014-07-01 18:30:39 +00:00
mov eax, [bp+var_8]
shr eax, 10h
mov dx, word ptr [bp+var_8]
shr dx, 4
add ax, dx
mov dx, word ptr [bp+var_8]
and dx, 0Fh
mov word ptr [bp+var_8+2], ax
mov word ptr [bp+var_8], dx
mov dx, 0A4h
2014-07-01 18:30:39 +00:00
mov al, 1
out dx, al
2014-07-01 18:30:39 +00:00
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
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
2014-07-01 18:30:39 +00:00
xor di, di
jmp loc_A34E
; ---------------------------------------------------------------------------
loc_A2B4:
call graph_pack_put_8_noclip pascal, large 400, [bp+var_8], 320
2014-07-01 18:30:39 +00:00
call sub_A193
mov ax, 0FFh
mov dx, 4A2h
out dx, ax
mov ax, 3100h
mov dx, 4A4h
out dx, ax
mov ax, 0Fh
mov dx, 4AEh
out dx, ax
mov bx, [bp+arg_0]
shl bx, 3
mov ax, di
and ax, 3
add ax, ax
add bx, ax
mov ax, [bx+8E2h]
mov dx, 4A8h
out dx, ax
mov [bp+var_4], 7D00h
mov [bp+var_2], 0
jmp short loc_A31E
; ---------------------------------------------------------------------------
loc_A301:
2014-07-01 18:30:39 +00:00
les bx, dword_10050
add bx, [bp+var_4]
mov ax, es:[bx]
mov bx, word ptr dword_10050
add bx, si
mov es:[bx], ax
inc [bp+var_2]
add si, 2
add [bp+var_4], 2
loc_A31E:
2014-07-01 18:30:39 +00:00
cmp [bp+var_2], 14h
jl short loc_A301
call egc_off
2014-07-01 18:30:39 +00:00
add si, 28h ; '('
add word ptr [bp+var_8], 140h
mov eax, [bp+var_8]
shr eax, 10h
mov dx, word ptr [bp+var_8]
shr dx, 4
add ax, dx
mov dx, word ptr [bp+var_8]
and dx, 0Fh
mov word ptr [bp+var_8+2], ax
mov word ptr [bp+var_8], dx
inc di
loc_A34E:
cmp di, 0C8h
2014-07-01 18:30:39 +00:00
jl loc_A2B4
mov dx, 0A4h
2014-07-01 18:30:39 +00:00
mov al, 0
out dx, al
2014-07-01 18:30:39 +00:00
push [bp+arg_6]
push [bp+arg_4]
call sub_A1C7
pop di
pop si
leave
retn 8
sub_A23C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A36B proc near
2014-07-01 18:30:39 +00:00
var_8 = word ptr -8
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
enter 8, 0
push si
push di
call sub_A43C
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
2014-07-01 18:30:39 +00:00
push 3C00h
call hmem_allocbyte
2014-07-01 18:30:39 +00:00
mov word ptr dword_105CA+2, ax
mov word ptr dword_105CA, 0
xor si, si
mov di, 140h
mov [bp+var_4], 0
jmp loc_A430
; ---------------------------------------------------------------------------
loc_A398:
2014-07-01 18:30:39 +00:00
mov [bp+var_2], 50h ; 'P'
mov [bp+var_6], 0
jmp loc_A424
; ---------------------------------------------------------------------------
loc_A3A5:
2014-07-01 18:30:39 +00:00
mov ax, [bp+var_2]
sar ax, 3
mov dx, di
shl dx, 6
add ax, dx
mov dx, di
shl dx, 4
add ax, dx
mov [bp+var_8], ax
les bx, dword_10050
add bx, [bp+var_8]
mov ax, es:[bx]
mov dx, si
add dx, dx
les bx, dword_105CA
add bx, dx
mov es:[bx], ax
inc si
les bx, dword_10054
add bx, [bp+var_8]
mov ax, es:[bx]
mov dx, si
add dx, dx
les bx, dword_105CA
add bx, dx
mov es:[bx], ax
inc si
les bx, dword_10058
add bx, [bp+var_8]
mov ax, es:[bx]
mov dx, si
add dx, dx
les bx, dword_105CA
add bx, dx
mov es:[bx], ax
inc si
les bx, dword_1005C
add bx, [bp+var_8]
mov ax, es:[bx]
mov dx, si
add dx, dx
les bx, dword_105CA
add bx, dx
mov es:[bx], ax
inc si
add [bp+var_6], 2
add [bp+var_2], 10h
loc_A424:
2014-07-01 18:30:39 +00:00
cmp [bp+var_6], 3Ch ; '<'
jl loc_A3A5
inc [bp+var_4]
inc di
loc_A430:
cmp [bp+var_4], 40h
2014-07-01 18:30:39 +00:00
jl loc_A398
pop di
pop si
leave
retn
sub_A36B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A43C proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
cmp dword_105CA, 0
jz short loc_A459
push word ptr dword_105CA+2
call hmem_free
2014-07-01 18:30:39 +00:00
mov dword_105CA, 0
loc_A459:
2014-07-01 18:30:39 +00:00
pop bp
retn
sub_A43C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A45B proc near
2014-07-01 18:30:39 +00:00
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
enter 6, 0
push si
push di
xor cx, cx
mov si, 140h
mov [bp+var_4], 0
jmp loc_A4FE
; ---------------------------------------------------------------------------
loc_A46E:
2014-07-01 18:30:39 +00:00
mov [bp+var_2], 50h ; 'P'
mov [bp+var_6], 0
jmp short loc_A4F4
; ---------------------------------------------------------------------------
loc_A47A:
2014-07-01 18:30:39 +00:00
mov ax, [bp+var_2]
sar ax, 3
mov dx, si
shl dx, 6
add ax, dx
mov dx, si
shl dx, 4
add ax, dx
mov di, ax
mov ax, cx
add ax, ax
les bx, dword_105CA
add bx, ax
mov ax, es:[bx]
les bx, dword_10050
add bx, di
mov es:[bx], ax
inc cx
mov ax, cx
add ax, ax
les bx, dword_105CA
add bx, ax
mov ax, es:[bx]
les bx, dword_10054
add bx, di
mov es:[bx], ax
inc cx
mov ax, cx
add ax, ax
les bx, dword_105CA
add bx, ax
mov ax, es:[bx]
les bx, dword_10058
add bx, di
mov es:[bx], ax
inc cx
mov ax, cx
add ax, ax
les bx, dword_105CA
add bx, ax
mov ax, es:[bx]
les bx, dword_1005C
add bx, di
mov es:[bx], ax
inc cx
add [bp+var_6], 2
add [bp+var_2], 10h
loc_A4F4:
2014-07-01 18:30:39 +00:00
cmp [bp+var_6], 3Ch ; '<'
jl short loc_A47A
inc [bp+var_4]
inc si
loc_A4FE:
cmp [bp+var_4], 40h
2014-07-01 18:30:39 +00:00
jl loc_A46E
pop di
pop si
leave
retn
sub_A45B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A50A proc near
2014-07-01 18:30:39 +00:00
var_2 = byte ptr -2
var_1 = byte ptr -1
arg_0 = dword ptr 4
enter 2, 0
les bx, dword_105C6
mov cl, es:[bx]
inc word ptr dword_105C6
les bx, dword_105C6
mov al, es:[bx]
mov [bp+var_1], al
inc word ptr dword_105C6
les bx, dword_105C6
mov al, es:[bx]
mov [bp+var_2], al
inc word ptr dword_105C6
mov al, cl
mov ah, 0
mov bx, ax
test byte ptr [bx+0F05h], 2
jnz short loc_A554
les bx, [bp+arg_0]
mov ax, word_105D8
mov es:[bx], ax
sub word ptr dword_105C6, 3
leave
retn 4
; ---------------------------------------------------------------------------
loc_A554:
2014-07-01 18:30:39 +00:00
mov al, [bp+var_1]
mov ah, 0
mov bx, ax
test byte ptr [bx+0F05h], 2
jnz short loc_A578
mov al, cl
mov ah, 0
add ax, 0FFD0h
les bx, [bp+arg_0]
mov es:[bx], ax
sub word ptr dword_105C6, 2
leave
retn 4
; ---------------------------------------------------------------------------
loc_A578:
2014-07-01 18:30:39 +00:00
mov al, [bp+var_2]
mov ah, 0
mov bx, ax
test byte ptr [bx+0F05h], 2
jnz short loc_A5A8
mov al, cl
mov ah, 0
add ax, 0FFD0h
imul ax, 0Ah
mov dl, [bp+var_1]
mov dh, 0
add ax, dx
add ax, 0FFD0h
les bx, [bp+arg_0]
mov es:[bx], ax
dec word ptr dword_105C6
leave
retn 4
; ---------------------------------------------------------------------------
loc_A5A8:
2014-07-01 18:30:39 +00:00
mov al, cl
mov ah, 0
add ax, 0FFD0h
imul ax, 64h
mov dl, [bp+var_1]
mov dh, 0
add dx, 0FFD0h
imul dx, 0Ah
add ax, dx
mov dl, [bp+var_2]
mov dh, 0
add ax, dx
add ax, 0FFD0h
les bx, [bp+arg_0]
mov es:[bx], ax
leave
retn 4
sub_A50A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A5D3 proc near
2014-07-01 18:30:39 +00:00
arg_0 = dword ptr 4
push bp
mov bp, sp
les bx, dword_105C6
cmp byte ptr es:[bx], 2Ch ; ','
jnz short loc_A5EF
inc word ptr dword_105C6
pushd [bp+arg_0]
2014-07-01 18:30:39 +00:00
call sub_A50A
pop bp
retn 4
; ---------------------------------------------------------------------------
loc_A5EF:
2014-07-01 18:30:39 +00:00
les bx, [bp+arg_0]
mov ax, word_105D8
mov es:[bx], ax
pop bp
retn 4
sub_A5D3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A5FC proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
add word_105D0, 10h
cmp word_105D0, 230h
jl short loc_A64B
add word_105D2, 10h
mov word_105D0, 90h
2014-07-01 18:30:39 +00:00
cmp word_105D2, 180h
jl short loc_A64B
cmp byte_105CE, 0
jnz short loc_A62D
push 0
call sub_D6C5
loc_A62D:
2014-07-01 18:30:39 +00:00
mov word_105D0, 50h ; 'P'
mov word_105D2, 140h
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
2014-07-01 18:30:39 +00:00
call sub_A45B
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
2014-07-01 18:30:39 +00:00
call sub_A45B
loc_A64B:
2014-07-01 18:30:39 +00:00
pop bp
retn
sub_A5FC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_A64D proc near
2014-07-01 18:30:39 +00:00
var_16 = byte ptr -16h
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = byte ptr 4
enter 16h, 0
push si
mov al, [bp+arg_0]
mov ah, 0
push ax ; ch
call _tolower
pop cx
mov [bp+arg_0], al
mov ah, 0
mov [bp+var_6], ax
mov cx, 10h ; switch 16 cases
mov bx, offset word_AC2E
loc_A66C:
2014-07-01 18:30:39 +00:00
mov ax, cs:[bx]
cmp ax, [bp+var_6]
jz short loc_A67C
add bx, 2
loop loc_A66C
jmp loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_A67C:
2014-07-01 18:30:39 +00:00
jmp word ptr cs:[bx+20h] ; switch jump
loc_A680:
2014-07-01 18:30:39 +00:00
add word_105D2, 10h ; jumptable 0000A67C case 110
mov word_105D0, 50h ; 'P'
cmp word_105D2, 180h
jl loc_AC1E ; default
loc_A695:
2014-07-01 18:30:39 +00:00
les bx, dword_105C6 ; jumptable 0000A67C case 115
mov al, es:[bx]
mov [bp+arg_0], al
cmp [bp+arg_0], 2Dh ; '-'
jz short loc_A6C4
mov word_105D8, 0
push ss
lea ax, [bp+var_2]
push ax
call sub_A50A
cmp byte_105CE, 0
jnz short loc_A6C8
push [bp+var_2]
call sub_D6C5
jmp short loc_A6C8
; ---------------------------------------------------------------------------
loc_A6C4:
2014-07-01 18:30:39 +00:00
inc word ptr dword_105C6
loc_A6C8:
2014-07-01 18:30:39 +00:00
mov word_105D0, 50h ; 'P'
mov word_105D2, 140h
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
2014-07-01 18:30:39 +00:00
call sub_A45B
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
2014-07-01 18:30:39 +00:00
call sub_A45B
jmp loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_A6E9:
2014-07-01 18:30:39 +00:00
mov word_105D8, 0Fh ; jumptable 0000A67C case 99
push ss
lea ax, [bp+var_2]
push ax
call sub_A50A
mov al, byte ptr [bp+var_2]
mov byte_105D6, al
jmp loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_A700:
2014-07-01 18:30:39 +00:00
mov word_105D8, 2 ; jumptable 0000A67C case 98
push ss
lea ax, [bp+var_2]
push ax
call sub_A50A
mov bx, [bp+var_2]
cmp bx, 3
ja loc_AC1E ; default
add bx, bx
jmp cs:off_AC26[bx]
loc_A71F:
2014-07-01 18:30:39 +00:00
mov byte_105D7, 0
jmp loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_A727:
2014-07-01 18:30:39 +00:00
mov byte_105D7, 10h
jmp loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_A72F:
2014-07-01 18:30:39 +00:00
mov byte_105D7, 20h ; ' '
jmp loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_A737:
2014-07-01 18:30:39 +00:00
mov byte_105D7, 30h ; '0'
jmp loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_A73F:
2014-07-01 18:30:39 +00:00
les bx, dword_105C6 ; jumptable 0000A67C case 119
mov al, es:[bx]
mov ah, 0
push ax ; ch
call _tolower
pop cx
mov [bp+arg_0], al
cmp [bp+arg_0], 6Fh ; 'o'
jz short loc_A75E
cmp [bp+arg_0], 69h ; 'i'
jnz short loc_A78C
loc_A75E:
2014-07-01 18:30:39 +00:00
inc word ptr dword_105C6
mov word_105D8, 1
push ss
lea ax, [bp+var_2]
push ax
call sub_A50A
cmp [bp+arg_0], 69h ; 'i'
jnz short loc_A781
push [bp+var_2]
call palette_white_in
2014-07-01 18:30:39 +00:00
jmp loc_AB90
; ---------------------------------------------------------------------------
loc_A781:
2014-07-01 18:30:39 +00:00
push [bp+var_2]
2014-08-26 22:57:45 +00:00
call palette_white_out
2014-07-01 18:30:39 +00:00
jmp loc_AB90
; ---------------------------------------------------------------------------
loc_A78C:
mov word_105D8, 40h
2014-07-01 18:30:39 +00:00
cmp [bp+arg_0], 6Dh ; 'm'
jz short loc_A7CF
cmp [bp+arg_0], 6Bh ; 'k'
jnz short loc_A7A2
inc word ptr dword_105C6
loc_A7A2:
2014-07-01 18:30:39 +00:00
push ss
lea ax, [bp+var_2]
push ax
call sub_A50A
cmp byte_105CE, 0
jnz loc_AC1E ; default
cmp [bp+arg_0], 6Bh ; 'k'
jz short loc_A7C4
push [bp+var_2]
2014-11-23 21:25:22 +00:00
call frame_delay
2014-07-01 18:30:39 +00:00
jmp loc_AB90
; ---------------------------------------------------------------------------
loc_A7C4:
2014-07-01 18:30:39 +00:00
push [bp+var_2]
call sub_D47A
jmp loc_AB90
; ---------------------------------------------------------------------------
loc_A7CF:
2014-07-01 18:30:39 +00:00
inc word ptr dword_105C6
les bx, dword_105C6
mov al, es:[bx]
mov [bp+arg_0], al
cmp [bp+arg_0], 6Bh ; 'k'
jnz short loc_A7E7
inc word ptr dword_105C6
loc_A7E7:
2014-07-01 18:30:39 +00:00
push ss
lea ax, [bp+var_2]
push ax
call sub_A50A
push ss
lea ax, [bp+var_4]
push ax
call sub_A5D3
cmp byte_105CE, 0
jnz loc_AC1E ; default
cmp [bp+arg_0], 6Bh ; 'k'
jz short loc_A814
push [bp+var_2]
push [bp+var_4]
call sub_D3FC
jmp loc_AB63
; ---------------------------------------------------------------------------
loc_A814:
2014-07-01 18:30:39 +00:00
push [bp+var_2]
push [bp+var_4]
call sub_D42D
jmp loc_AB63
; ---------------------------------------------------------------------------
loc_A822:
2014-07-01 18:30:39 +00:00
les bx, dword_105C6 ; jumptable 0000A67C case 118
cmp byte ptr es:[bx], 70h ; 'p'
jz short loc_A843
mov word_105D8, 1
push ss
lea ax, [bp+var_2]
push ax
call sub_A50A
mov ax, [bp+var_2]
mov word_105D4, ax
jmp loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_A843:
2014-07-01 18:30:39 +00:00
inc word ptr dword_105C6
mov word_105D8, 0
push ss
lea ax, [bp+var_2]
push ax
call sub_A50A
mov dx, 0A4h
2014-07-01 18:30:39 +00:00
mov al, byte ptr [bp+var_2]
out dx, al
2014-07-01 18:30:39 +00:00
jmp loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_A85F:
2014-07-01 18:30:39 +00:00
mov word_105D8, 64h ; 'd' ; jumptable 0000A67C case 116
push ss
lea ax, [bp+var_2]
push ax
call sub_A50A
cmp byte_105CE, 0
jnz short loc_A87B
push 1
2014-11-23 21:25:22 +00:00
call frame_delay
2014-07-01 18:30:39 +00:00
loc_A87B:
2014-07-01 18:30:39 +00:00
mov ax, [bp+var_2]
2014-08-23 13:47:05 +00:00
mov PaletteTone, ax
2014-08-23 14:11:16 +00:00
call far ptr palette_show
2014-07-01 18:30:39 +00:00
jmp loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_A889:
2014-07-01 18:30:39 +00:00
les bx, dword_105C6 ; jumptable 0000A67C case 102
mov al, es:[bx]
mov [bp+arg_0], al
cmp [bp+arg_0], 6Dh ; 'm'
jz short loc_A8D5
cmp [bp+arg_0], 69h ; 'i'
jz short loc_A8A7
cmp [bp+arg_0], 6Fh ; 'o'
jnz loc_AC1E ; default
loc_A8A7:
2014-07-01 18:30:39 +00:00
inc word ptr dword_105C6
mov word_105D8, 1
push ss
lea ax, [bp+var_2]
push ax
call sub_A50A
cmp [bp+arg_0], 69h ; 'i'
jnz short loc_A8CA
push [bp+var_2]
2014-08-26 22:21:45 +00:00
call palette_black_in
2014-07-01 18:30:39 +00:00
jmp loc_AB90
; ---------------------------------------------------------------------------
loc_A8CA:
2014-07-01 18:30:39 +00:00
push [bp+var_2]
2014-08-26 22:33:43 +00:00
call palette_black_out
2014-07-01 18:30:39 +00:00
jmp loc_AB90
; ---------------------------------------------------------------------------
loc_A8D5:
2014-07-01 18:30:39 +00:00
inc word ptr dword_105C6
mov word_105D8, 1
push ss
lea ax, [bp+var_2]
push ax
call sub_A50A
mov ax, [bp+var_2]
add ax, 200h
push ax
jmp loc_AB8B
; ---------------------------------------------------------------------------
loc_A8F1:
2014-07-01 18:30:39 +00:00
les bx, dword_105C6 ; jumptable 0000A67C case 103
cmp byte ptr es:[bx], 61h ; 'a'
jz short loc_A945
mov word_105D8, 8
push ss
lea ax, [bp+var_2]
push ax
call sub_A50A
mov [bp+var_4], 0
jmp short loc_A933
; ---------------------------------------------------------------------------
loc_A910:
2014-07-01 18:30:39 +00:00
test byte ptr [bp+var_4], 1
jz short loc_A91A
push 4
jmp short loc_A91D
; ---------------------------------------------------------------------------
loc_A91A:
2014-07-01 18:30:39 +00:00
push 18Ch
loc_A91D:
2014-08-31 04:43:32 +00:00
call graph_scrollup
2014-07-01 18:30:39 +00:00
cmp byte_105CE, 0
jnz short loc_A930
push 1
2014-11-23 21:25:22 +00:00
call frame_delay
2014-07-01 18:30:39 +00:00
loc_A930:
2014-07-01 18:30:39 +00:00
inc [bp+var_4]
loc_A933:
2014-07-01 18:30:39 +00:00
mov ax, [bp+var_4]
cmp ax, [bp+var_2]
jle short loc_A910
push 0
2014-08-31 04:43:32 +00:00
call graph_scrollup
2014-07-01 18:30:39 +00:00
jmp loc_AB90
; ---------------------------------------------------------------------------
loc_A945:
2014-07-01 18:30:39 +00:00
inc word ptr dword_105C6
mov word_105D8, 0
push ss
lea ax, [bp+var_2]
push ax
call sub_A50A
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
2014-07-01 18:30:39 +00:00
push word_105D0
push word_105D2
mov ax, [bp+var_2]
dec ax
push ax
mov al, byte_105D6
mov ah, 0
push ax
call graph_gaiji_putc
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
2014-07-01 18:30:39 +00:00
push word_105D0
push word_105D2
push [bp+var_2]
mov al, byte_105D6
mov ah, 0
push ax
call graph_gaiji_putc
2014-07-01 18:30:39 +00:00
call sub_A5FC
jmp loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_A997:
2014-07-01 18:30:39 +00:00
mov word_105D8, 0 ; jumptable 0000A67C case 107
push ss
lea ax, [bp+var_2]
push ax
call sub_A50A
cmp byte_105CE, 0
jnz loc_AC1E ; default
push 0
call sub_D6C5
jmp loc_AB90
; ---------------------------------------------------------------------------
loc_A9B8:
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>' ; jumptable 0000A67C case 64
mov al, 1
out dx, al
2014-08-27 04:03:08 +00:00
call graph_clear
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
2014-08-27 04:03:08 +00:00
call graph_clear
2014-07-01 18:30:39 +00:00
jmp loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_A9D1:
2014-07-01 18:30:39 +00:00
les bx, dword_105C6 ; jumptable 0000A67C case 112
mov al, es:[bx]
mov [bp+arg_0], al
inc word ptr dword_105C6
cmp [bp+arg_0], 3Dh ; '='
jz short loc_A9EB
cmp [bp+arg_0], 40h
2014-07-01 18:30:39 +00:00
jnz short loc_AA1B
loc_A9EB:
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
2014-07-01 18:30:39 +00:00
cmp [bp+arg_0], 3Dh ; '='
jnz short loc_A9FE
call pi_slot_palette_apply pascal, 0
2014-07-01 18:30:39 +00:00
loc_A9FE:
call pi_slot_put pascal, large 0, 0
2014-07-01 18:30:39 +00:00
push 0
2014-08-27 04:13:48 +00:00
call graph_copy_page
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
2014-07-01 18:30:39 +00:00
call sub_A36B
jmp loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_AA1B:
2014-07-01 18:30:39 +00:00
cmp [bp+arg_0], 2Dh ; '-'
jnz short loc_AA32
freePISlotLarge 0
2014-07-01 18:30:39 +00:00
jmp loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_AA32:
2014-07-01 18:30:39 +00:00
cmp [bp+arg_0], 70h ; 'p'
jnz short loc_AA42
call pi_slot_palette_apply pascal, 0
2014-07-01 18:30:39 +00:00
jmp loc_AB90
; ---------------------------------------------------------------------------
loc_AA42:
2014-07-01 18:30:39 +00:00
cmp [bp+arg_0], 2Ch ; ','
jz short loc_AA4F
dec word ptr dword_105C6
jmp loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_AA4F:
2014-07-01 18:30:39 +00:00
mov [bp+var_2], 0
jmp short loc_AA84
; ---------------------------------------------------------------------------
loc_AA56:
2014-07-01 18:30:39 +00:00
les bx, dword_105C6
mov al, es:[bx]
mov [bp+arg_0], al
inc word ptr dword_105C6
mov ah, 0
mov bx, ax
test byte ptr [bx+0F05h], 20h
jnz short loc_AA8A
cmp [bp+arg_0], 20h ; ' '
jz short loc_AA8A
lea bx, [bp+var_16]
add bx, [bp+var_2]
mov al, [bp+arg_0]
mov ss:[bx], al
inc [bp+var_2]
loc_AA84:
2014-07-01 18:30:39 +00:00
cmp [bp+var_2], 0Ch
jl short loc_AA56
loc_AA8A:
2014-07-01 18:30:39 +00:00
lea bx, [bp+var_16]
add bx, [bp+var_2]
mov byte ptr ss:[bx], 0
push 0
push ss
lea ax, [bp+var_16]
push ax
call pi_slot_load
2014-07-01 18:30:39 +00:00
jmp loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_AAA3:
2014-07-01 18:30:39 +00:00
mov word_105D8, 4 ; jumptable 0000A67C case 61
les bx, dword_105C6
mov al, es:[bx]
mov [bp+arg_0], al
cmp [bp+arg_0], 3Dh ; '='
jz short loc_AAF8
push ss
lea ax, [bp+var_2]
push ax
call sub_A50A
mov dx, 0A4h
2014-07-01 18:30:39 +00:00
mov al, 1
out dx, al
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
2014-07-01 18:30:39 +00:00
cmp [bp+var_2], 4
jge short loc_AAD5
jmp short loc_AB44
; ---------------------------------------------------------------------------
loc_AAD5:
push 0C00000h
call grcg_setcolor
push 140040h
push 3B0107h
2014-08-27 21:20:37 +00:00
call grcg_byteboxfill_x
call grcg_off
2014-07-01 18:30:39 +00:00
jmp short loc_AB54
; ---------------------------------------------------------------------------
loc_AAF8:
2014-07-01 18:30:39 +00:00
inc word ptr dword_105C6
push ss
lea ax, [bp+var_2]
push ax
call sub_A50A
mov word_105D8, 1
push ss
lea ax, [bp+var_4]
push ax
call sub_A5D3
xor si, si
jmp short loc_AB33
; ---------------------------------------------------------------------------
loc_AB16:
push 0A00040h
2014-07-01 18:30:39 +00:00
push [bp+var_2]
push si
call sub_A23C
cmp byte_105CE, 0
jnz short loc_AB32
push [bp+var_4]
2014-11-23 21:25:22 +00:00
call frame_delay
2014-07-01 18:30:39 +00:00
loc_AB32:
2014-07-01 18:30:39 +00:00
inc si
loc_AB33:
2014-07-01 18:30:39 +00:00
cmp si, 4
jl short loc_AB16
mov dx, 0A4h
2014-07-01 18:30:39 +00:00
mov al, 1
out dx, al
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
2014-07-01 18:30:39 +00:00
loc_AB44:
call pi_slot_put_quarter pascal, (160 shl 16) + 64, 0, [bp+var_2]
2014-07-01 18:30:39 +00:00
loc_AB54:
mov dx, 0A4h
2014-07-01 18:30:39 +00:00
mov al, 0
out dx, al
push 0A00040h
2014-07-01 18:30:39 +00:00
call sub_A1C7
loc_AB63:
2014-07-01 18:30:39 +00:00
jmp loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_AB66:
2014-07-01 18:30:39 +00:00
les bx, dword_105C6 ; jumptable 0000A67C case 109
mov al, es:[bx]
mov [bp+arg_0], al
cmp [bp+arg_0], 24h ; '$'
jnz short loc_AB7F
inc word ptr dword_105C6
push (KAJA_SONG_STOP shl 8)
2014-07-01 18:30:39 +00:00
jmp short loc_AB8B
; ---------------------------------------------------------------------------
loc_AB7F:
2014-07-01 18:30:39 +00:00
cmp [bp+arg_0], 2Ah ; '*'
jnz short loc_AB93
inc word ptr dword_105C6
loc_AB89:
push (KAJA_SONG_PLAY shl 8)
2014-07-01 18:30:39 +00:00
loc_AB8B:
call snd_kaja_func
2014-07-01 18:30:39 +00:00
loc_AB90:
2014-07-01 18:30:39 +00:00
jmp loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_AB93:
2014-07-01 18:30:39 +00:00
cmp [bp+arg_0], 2Ch ; ','
jnz loc_AC1E ; default
inc word ptr dword_105C6
mov [bp+var_2], 0
jmp short loc_ABD4
; ---------------------------------------------------------------------------
loc_ABA6:
2014-07-01 18:30:39 +00:00
les bx, dword_105C6
mov al, es:[bx]
mov [bp+arg_0], al
inc word ptr dword_105C6
mov ah, 0
mov bx, ax
test byte ptr [bx+0F05h], 20h
jnz short loc_ABDA
cmp [bp+arg_0], 20h ; ' '
jz short loc_ABDA
lea bx, [bp+var_16]
add bx, [bp+var_2]
mov al, [bp+arg_0]
mov ss:[bx], al
inc [bp+var_2]
loc_ABD4:
2014-07-01 18:30:39 +00:00
cmp [bp+var_2], 0Ch
jl short loc_ABA6
loc_ABDA:
2014-07-01 18:30:39 +00:00
lea bx, [bp+var_16]
add bx, [bp+var_2]
mov byte ptr ss:[bx], 0
kajacall KAJA_SONG_STOP
push SND_LOAD_SONG
2014-07-01 18:30:39 +00:00
push ss
lea ax, [bp+var_16]
push ax
call snd_load
2014-07-01 18:30:39 +00:00
add sp, 6
jmp short loc_AB89
; ---------------------------------------------------------------------------
loc_ABFE:
2014-07-01 18:30:39 +00:00
push ss ; jumptable 0000A67C case 101
lea ax, [bp+var_2]
push ax
call sub_A50A
call sub_CE3E
push [bp+var_2]
call sub_CE4A
call sub_CE86
jmp short loc_AC1E ; default
; ---------------------------------------------------------------------------
loc_AC1A:
2014-07-01 18:30:39 +00:00
mov al, 0FFh ; jumptable 0000A67C case 36
jmp short loc_AC20
; ---------------------------------------------------------------------------
loc_AC1E:
2014-07-01 18:30:39 +00:00
mov al, 0 ; default
loc_AC20:
2014-07-01 18:30:39 +00:00
pop si
leave
retn 2
sub_A64D endp
; ---------------------------------------------------------------------------
db 0
off_AC26 dw offset loc_A71F
2014-07-01 18:30:39 +00:00
dw offset loc_A727
dw offset loc_A72F
dw offset loc_A737
word_AC2E dw 24h, 3Dh, 40h, 62h
2014-07-01 18:30:39 +00:00
dw 63h, 65h, 66h, 67h ; value table for switch statement
dw 6Bh, 6Dh, 6Eh, 70h
dw 73h, 74h, 76h, 77h
dw offset loc_AC1A ; jump table for switch statement
dw offset loc_AAA3
dw offset loc_A9B8
dw offset loc_A700
dw offset loc_A6E9
dw offset loc_ABFE
dw offset loc_A889
dw offset loc_A8F1
dw offset loc_A997
dw offset loc_AB66
dw offset loc_A680
dw offset loc_A9D1
dw offset loc_A695
dw offset loc_A85F
dw offset loc_A822
dw offset loc_A73F
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_AC6E proc near
2014-07-01 18:30:39 +00:00
var_6 = dword ptr -6
var_2 = byte ptr -2
var_1 = byte ptr -1
enter 6, 0
push si
mov word ptr [bp+var_6+2], ds
mov word ptr [bp+var_6], 902h
mov word_105D0, 50h ; 'P'
mov word_105D2, 140h
mov word_105D4, 1
mov byte_105D6, 0Fh
mov byte_105D7, 20h ; ' '
mov [bp+var_2], 0
call sub_A36B
mov byte_105CE, 0
loc_ACA3:
2014-07-01 18:30:39 +00:00
call sub_D5A2
test byte ptr word_100FC+1, 10h
jz short loc_ACB6
mov byte_105CE, 1
jmp short loc_ACBB
; ---------------------------------------------------------------------------
loc_ACB6:
2014-07-01 18:30:39 +00:00
mov byte_105CE, 0
loc_ACBB:
2014-07-01 18:30:39 +00:00
les bx, dword_105C6
mov al, es:[bx]
mov [bp+var_1], al
inc word ptr dword_105C6
mov ah, 0
mov bx, ax
test byte ptr [bx+0F05h], 20h
jnz short loc_ACA3
cmp [bp+var_1], 20h ; ' '
jz short loc_ACA3
cmp [bp+var_1], 5Ch
2014-07-01 18:30:39 +00:00
jnz short loc_ACFB
les bx, dword_105C6
mov al, es:[bx]
mov [bp+var_1], al
inc word ptr dword_105C6
push word ptr [bp+var_1]
call sub_A64D
cmp al, 0FFh
jnz short loc_ACA3
jmp loc_ADA0
; ---------------------------------------------------------------------------
loc_ACFB:
2014-07-01 18:30:39 +00:00
les bx, [bp+var_6]
mov al, [bp+var_1]
mov es:[bx], al
les bx, dword_105C6
mov al, es:[bx]
mov [bp+var_1], al
les bx, [bp+var_6]
mov es:[bx+1], al
inc word ptr dword_105C6
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
2014-07-01 18:30:39 +00:00
push word_105D0
push word_105D2
mov al, byte_105D6
or al, byte_105D7
mov ah, 0
push ax
push word ptr [bp+var_6+2]
push bx
call sub_D197
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
2014-07-01 18:30:39 +00:00
push word_105D0
push word_105D2
mov al, byte_105D6
or al, byte_105D7
mov ah, 0
push ax
pushd [bp+var_6]
2014-07-01 18:30:39 +00:00
call sub_D197
call sub_A5FC
cmp byte_105CE, 0
jnz loc_ACA3
cmp word_100FC, 0
jnz short loc_AD7A
push word_105D4
2014-11-23 21:25:22 +00:00
call frame_delay
2014-07-01 18:30:39 +00:00
jmp loc_ACA3
; ---------------------------------------------------------------------------
loc_AD7A:
2014-07-01 18:30:39 +00:00
mov ax, word_105D4
mov bx, 3
cwd
idiv bx
mov si, ax
test [bp+var_2], 1
jnz short loc_AD8F
or si, si
jz short loc_AD9A
loc_AD8F:
2014-07-01 18:30:39 +00:00
or si, si
jnz short loc_AD94
inc si
loc_AD94:
2014-07-01 18:30:39 +00:00
push si
2014-11-23 21:25:22 +00:00
call frame_delay
2014-07-01 18:30:39 +00:00
loc_AD9A:
2014-07-01 18:30:39 +00:00
inc [bp+var_2]
jmp loc_ACA3
; ---------------------------------------------------------------------------
loc_ADA0:
2014-07-01 18:30:39 +00:00
call sub_A45B
call sub_A43C
pop si
leave
retn
sub_AC6E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_ADA9 proc near
2014-07-01 18:30:39 +00:00
var_1 = byte ptr -1
enter 2, 0
push si
mov si, 21EEh
xor dx, dx
jmp short loc_ADD1
; ---------------------------------------------------------------------------
loc_ADB5:
2014-07-01 18:30:39 +00:00
mov al, [si+1]
mov [bp+var_1], al
mov al, byte_106AB
ror [bp+var_1], 3
xor [bp+var_1], al
mov al, byte_106AA
add al, [bp+var_1]
add al, [si]
mov [si], al
inc dx
inc si
loc_ADD1:
cmp dx, 0CBh
2014-07-01 18:30:39 +00:00
jl short loc_ADB5
mov al, byte_106AA
add al, byte_106AB
add al, [si]
mov [si], al
pop si
leave
retn
sub_ADA9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_ADE5 proc near
2014-07-01 18:30:39 +00:00
var_1 = byte ptr -1
enter 2, 0
push si
push di
mov [bp+var_1], 29h ; ')'
xor si, si
jmp short loc_AE26
; ---------------------------------------------------------------------------
loc_ADF3:
2014-07-01 18:30:39 +00:00
xor di, di
jmp short loc_AE02
; ---------------------------------------------------------------------------
loc_ADF7:
2014-07-01 18:30:39 +00:00
mov bx, si
shl bx, 3
mov byte ptr [bx+di+21F0h], 2Ah ; '*'
inc di
loc_AE02:
2014-07-01 18:30:39 +00:00
cmp di, 8
jl short loc_ADF7
xor di, di
jmp short loc_AE16
; ---------------------------------------------------------------------------
loc_AE0B:
2014-07-01 18:30:39 +00:00
mov bx, si
imul bx, 0Ah
mov byte ptr [bx+di+2242h], 20h ; ' '
inc di
loc_AE16:
2014-07-01 18:30:39 +00:00
cmp di, 0Ah
jl short loc_AE0B
mov byte ptr [si+22A6h], 0
mov byte ptr [si+22B0h], 21h ; '!'
inc si
loc_AE26:
2014-07-01 18:30:39 +00:00
cmp si, 0Ah
jl short loc_ADF3
mov byte_10636, 21h ; '!'
mov di, 1
jmp short loc_AE45
; ---------------------------------------------------------------------------
loc_AE35:
2014-07-01 18:30:39 +00:00
mov bx, di
imul bx, 0Ah
mov al, [bp+var_1]
mov [bx+2245h], al
inc di
dec [bp+var_1]
loc_AE45:
2014-07-01 18:30:39 +00:00
cmp di, 0Ah
jl short loc_AE35
mov byte_10630, 12h
xor si, si
jmp short loc_AE5B
; ---------------------------------------------------------------------------
loc_AE53:
2014-07-01 18:30:39 +00:00
push si
call sub_AEF0
call sub_ADA9
inc si
loc_AE5B:
2014-07-01 18:30:39 +00:00
cmp si, 4
jl short loc_AE53
pop di
pop si
leave
retn
sub_ADE5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_AE64 proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
push si
xor cx, cx
mov si, 21F0h
xor dx, dx
jmp short loc_AE79
; ---------------------------------------------------------------------------
loc_AE71:
2014-07-01 18:30:39 +00:00
mov al, [si]
mov ah, 0
add cx, ax
inc dx
inc si
loc_AE79:
cmp dx, 0CCh
2014-07-01 18:30:39 +00:00
jl short loc_AE71
cmp word_105DE, cx
jz short loc_AE89
mov al, 1
jmp short loc_AE8B
; ---------------------------------------------------------------------------
loc_AE89:
2014-07-01 18:30:39 +00:00
mov al, 0
loc_AE8B:
2014-07-01 18:30:39 +00:00
pop si
pop bp
retn
sub_AE64 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_AE8E proc near
2014-07-01 18:30:39 +00:00
arg_0 = word ptr 4
push bp
mov bp, sp
push ds
push word_ED66
2014-08-30 06:46:38 +00:00
call file_exist
2014-07-01 18:30:39 +00:00
or ax, ax
jnz short loc_AEB0
push ds
push word_ED66
2014-08-30 06:32:10 +00:00
call file_create
call file_close
2014-07-01 18:30:39 +00:00
jmp short loc_AEE9
; ---------------------------------------------------------------------------
loc_AEB0:
2014-07-01 18:30:39 +00:00
push ds
push word_ED66
2014-08-30 07:12:17 +00:00
call file_ropen
2014-07-01 18:30:39 +00:00
mov ax, [bp+arg_0]
imul ax, 0CEh
movzx eax, ax
push eax
push 0
call file_seek
2014-07-01 18:30:39 +00:00
push ds
push offset word_105DE
push 0CEh
2014-08-30 07:00:31 +00:00
call file_read
call file_close
2014-07-01 18:30:39 +00:00
call sub_ADA9
call sub_AE64
or al, al
jz short loc_AEEC
loc_AEE9:
2014-07-01 18:30:39 +00:00
call sub_ADE5
loc_AEEC:
2014-07-01 18:30:39 +00:00
pop bp
retn 2
sub_AE8E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_AEF0 proc near
2014-07-01 18:30:39 +00:00
var_4 = word ptr -4
var_1 = byte ptr -1
arg_0 = word ptr 4
enter 4, 0
push si
push di
mov [bp+var_4], 0
2014-08-30 10:13:04 +00:00
call IRand
2014-07-01 18:30:39 +00:00
mov byte_106AA, al
2014-08-30 10:13:04 +00:00
call IRand
2014-07-01 18:30:39 +00:00
mov byte_106AB, al
2014-08-30 10:13:04 +00:00
call IRand
2014-07-01 18:30:39 +00:00
mov byte_10631, al
les bx, dword_105DA
cmp byte ptr es:[bx+33h], 63h ; 'c'
jnz short loc_AF2A
cmp byte ptr es:[bx+36h], 3
jnz short loc_AF2A
mov byte_10630, 63h ; 'c'
loc_AF2A:
2014-07-01 18:30:39 +00:00
mov si, 21F0h
xor di, di
jmp short loc_AF3A
; ---------------------------------------------------------------------------
loc_AF31:
2014-07-01 18:30:39 +00:00
mov al, [si]
mov ah, 0
add [bp+var_4], ax
inc di
inc si
loc_AF3A:
cmp di, 0CCh
2014-07-01 18:30:39 +00:00
jl short loc_AF31
mov ax, [bp+var_4]
mov word_105DE, ax
mov si, 22BAh
dec si
mov al, byte_106AB
mov [bp+var_1], al
mov di, 0CBh
2014-07-01 18:30:39 +00:00
jmp short loc_AF73
; ---------------------------------------------------------------------------
loc_AF55:
2014-07-01 18:30:39 +00:00
mov al, [si]
mov dl, byte_106AA
add dl, [bp+var_1]
sub al, dl
mov [si], al
mov al, [si]
mov [bp+var_1], al
mov al, byte_106AB
ror [bp+var_1], 3
xor [bp+var_1], al
dec di
dec si
loc_AF73:
2014-07-01 18:30:39 +00:00
or di, di
jge short loc_AF55
push ds
push word_ED66
2014-08-30 05:58:36 +00:00
call file_append
2014-07-01 18:30:39 +00:00
mov ax, [bp+arg_0]
imul ax, 0CEh
movzx eax, ax
push eax
push 0
call file_seek
2014-07-01 18:30:39 +00:00
push ds
push offset word_105DE
push 0CEh
2014-08-30 07:38:09 +00:00
call file_write
call file_close
2014-07-01 18:30:39 +00:00
pop di
pop si
leave
retn 2
sub_AEF0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_AFAC proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
2014-08-23 13:47:05 +00:00
mov PaletteTone, 0
2014-08-23 14:11:16 +00:00
call far ptr palette_show
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
mov dx, 0A4h
out dx, al
call pi_slot_load pascal, 0, ds, offset aRegib_pi
call pi_slot_palette_apply pascal, 0
call pi_slot_put pascal, large 0, 0
freePISlotLarge 0
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
mov al, es:[bx+0Bh]
mov bx, word_ED68
add [bx+3], al
push 0
push ds
push bx
push 0
call sub_CF1E
push 1400138h
2014-07-01 18:30:39 +00:00
push 0
call sub_C9D4
2014-07-01 18:30:39 +00:00
push 0
call sub_D130
push ds
push offset aRegi2_bft ; "regi2.bft"
call super_entry_bfnt
2014-07-01 18:30:39 +00:00
push ds
push offset aRegi1_bft ; "regi1.bft"
call super_entry_bfnt
2014-07-01 18:30:39 +00:00
push 1
2014-08-27 04:13:48 +00:00
call graph_copy_page
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
2014-07-01 18:30:39 +00:00
pop bp
retn
sub_AFAC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B03D proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
push si
push di
xor si, si
jmp short loc_B091
; ---------------------------------------------------------------------------
loc_B046:
2014-07-01 18:30:39 +00:00
mov cx, 7
jmp short loc_B08C
; ---------------------------------------------------------------------------
loc_B04B:
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
add bx, cx
mov al, es:[bx+18h]
mov ah, 0
add ax, 20h ; ' '
mov bx, si
imul bx, 0Ah
add bx, cx
mov dl, [bx+2243h]
mov dh, 0
cmp ax, dx
jg short loc_B0A1
les bx, dword_105DA
add bx, cx
mov al, es:[bx+18h]
mov ah, 0
add ax, 20h ; ' '
mov bx, si
imul bx, 0Ah
add bx, cx
mov dl, [bx+2243h]
mov dh, 0
cmp ax, dx
jl short loc_B090
dec cx
loc_B08C:
2014-07-01 18:30:39 +00:00
or cx, cx
jge short loc_B04B
loc_B090:
2014-07-01 18:30:39 +00:00
inc si
loc_B091:
2014-07-01 18:30:39 +00:00
cmp si, 0Ah
jl short loc_B046
cmp si, 0Ah
jnz short loc_B0A1
mov ax, 0FFFFh
jmp loc_B183
; ---------------------------------------------------------------------------
loc_B0A1:
2014-07-01 18:30:39 +00:00
cmp si, 9
jge short loc_B100
mov di, 8
jmp short loc_B0FC
; ---------------------------------------------------------------------------
loc_B0AB:
2014-07-01 18:30:39 +00:00
xor cx, cx
jmp short loc_B0C6
; ---------------------------------------------------------------------------
loc_B0AF:
2014-07-01 18:30:39 +00:00
mov bx, di
shl bx, 3
add bx, cx
mov al, [bx+21F0h]
mov bx, di
shl bx, 3
add bx, cx
mov [bx+21F8h], al
inc cx
loc_B0C6:
2014-07-01 18:30:39 +00:00
cmp cx, 8
jl short loc_B0AF
xor cx, cx
jmp short loc_B0E6
; ---------------------------------------------------------------------------
loc_B0CF:
2014-07-01 18:30:39 +00:00
mov bx, di
imul bx, 0Ah
add bx, cx
mov al, [bx+2242h]
mov bx, di
imul bx, 0Ah
add bx, cx
mov [bx+224Ch], al
inc cx
loc_B0E6:
2014-07-01 18:30:39 +00:00
cmp cx, 0Ah
jl short loc_B0CF
mov al, [di+22B0h]
mov [di+22B1h], al
mov al, [di+22A6h]
mov [di+22A7h], al
dec di
loc_B0FC:
2014-07-01 18:30:39 +00:00
cmp di, si
jge short loc_B0AB
loc_B100:
2014-07-01 18:30:39 +00:00
xor cx, cx
jmp short loc_B111
; ---------------------------------------------------------------------------
loc_B104:
2014-07-01 18:30:39 +00:00
mov bx, si
shl bx, 3
add bx, cx
mov byte ptr [bx+21F0h], 0Eh
inc cx
loc_B111:
2014-07-01 18:30:39 +00:00
cmp cx, 8
jl short loc_B104
mov cx, 1
jmp short loc_B133
; ---------------------------------------------------------------------------
loc_B11B:
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
add bx, cx
mov al, es:[bx+17h]
add al, 20h ; ' '
mov bx, si
imul bx, 0Ah
add bx, cx
mov [bx+2242h], al
inc cx
loc_B133:
2014-07-01 18:30:39 +00:00
cmp cx, 9
jl short loc_B11B
les bx, dword_105DA
mov al, 23h ; '#'
sub al, es:[bx+36h]
mov bx, si
imul bx, 0Ah
mov [bx+2242h], al
mov bx, word ptr dword_105DA
cmp byte ptr es:[bx+33h], 63h ; 'c'
jnz short loc_B15D
mov byte ptr [si+22B0h], 30h ; '0'
jmp short loc_B16B
; ---------------------------------------------------------------------------
loc_B15D:
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
mov al, es:[bx+33h]
add al, 20h ; ' '
mov [si+22B0h], al
loc_B16B:
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
mov al, es:[bx+0Ch]
mov ah, 0
dec ax
cwd
sub ax, dx
sar ax, 1
inc al
mov [si+22A6h], al
mov ax, si
loc_B183:
2014-07-01 18:30:39 +00:00
pop di
pop si
pop bp
retn
sub_B03D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B187 proc near
2014-07-01 18:30:39 +00:00
var_2 = word ptr -2
enter 2, 0
push si
push di
mov [bp+var_2], 0
mov di, 140h
jmp short loc_B1B5
; ---------------------------------------------------------------------------
loc_B197:
mov si, 40h
2014-07-01 18:30:39 +00:00
jmp short loc_B1AC
; ---------------------------------------------------------------------------
loc_B19C:
2014-07-01 18:30:39 +00:00
push si
push di
push [bp+var_2]
call super_put
2014-07-01 18:30:39 +00:00
add si, 20h ; ' '
inc [bp+var_2]
loc_B1AC:
2014-07-01 18:30:39 +00:00
cmp si, 240h
jl short loc_B19C
add di, 18h
loc_B1B5:
2014-07-01 18:30:39 +00:00
cmp di, 170h
jle short loc_B197
pop di
pop si
leave
retn
sub_B187 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B1BF proc near
2014-07-01 18:30:39 +00:00
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 4, 0
push si
mov si, [bp+arg_2]
mov ax, si
mov bx, 10h
cwd
idiv bx
shl dx, 5
add dx, 40h
2014-07-01 18:30:39 +00:00
mov [bp+var_2], dx
mov ax, si
cwd
idiv bx
imul ax, 18h
add ax, 140h
mov [bp+var_4], ax
push [bp+var_2]
push ax
push si
push [bp+arg_0]
call sub_B2AD
pop si
leave
retn 4
sub_B1BF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B1F6 proc near
2014-07-01 18:30:39 +00:00
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = word ptr 4
arg_2 = word ptr 6
enter 14h, 0
push si
mov si, [bp+arg_0]
mov ax, [bp+arg_2]
sar ax, 3
mov dx, si
shl dx, 6
add ax, dx
mov dx, si
shl dx, 4
add ax, dx
mov cx, ax
mov [bp+var_4], 0
jmp loc_B29F
; ---------------------------------------------------------------------------
loc_B21F:
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
2014-07-01 18:30:39 +00:00
les bx, dword_10050
add bx, cx
mov eax, es:[bx]
mov [bp+var_14], eax
les bx, dword_10054
add bx, cx
mov eax, es:[bx]
mov [bp+var_10], eax
les bx, dword_10058
add bx, cx
mov eax, es:[bx]
mov [bp+var_C], eax
les bx, dword_1005C
add bx, cx
mov eax, es:[bx]
mov [bp+var_8], eax
mov al, 0
out dx, al
2014-07-01 18:30:39 +00:00
les bx, dword_10050
add bx, cx
mov eax, [bp+var_14]
mov es:[bx], eax
les bx, dword_10054
add bx, cx
mov eax, [bp+var_10]
mov es:[bx], eax
les bx, dword_10058
add bx, cx
mov eax, [bp+var_C]
mov es:[bx], eax
les bx, dword_1005C
add bx, cx
mov eax, [bp+var_8]
mov es:[bx], eax
add cx, 50h ; 'P'
inc [bp+var_4]
loc_B29F:
2014-07-01 18:30:39 +00:00
cmp [bp+var_4], 20h ; ' '
jb loc_B21F
pop si
leave
retn 4
sub_B1F6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B2AD proc near
2014-07-01 18:30:39 +00:00
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
arg_6 = word ptr 0Ah
push bp
mov bp, sp
push si
push di
mov di, [bp+arg_6]
mov si, [bp+arg_2]
cmp [bp+arg_0], 0
jz short loc_B2C1
add si, 31h ; '1'
loc_B2C1:
2014-07-01 18:30:39 +00:00
push di
push [bp+arg_4]
push si
call super_put
2014-07-01 18:30:39 +00:00
mov ax, [bp+arg_2]
mov bx, 10h
cwd
idiv bx
cmp dx, 0Eh
jnz short loc_B2E9
lea ax, [di+20h]
push ax
push [bp+arg_4]
lea ax, [si+1]
push ax
call super_put
2014-07-01 18:30:39 +00:00
loc_B2E9:
2014-07-01 18:30:39 +00:00
pop di
pop si
pop bp
retn 8
sub_B2AD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B2EF proc near
2014-07-01 18:30:39 +00:00
var_7 = byte ptr -7
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
enter 8, 0
push si
push di
mov si, [bp+arg_4]
mov di, [bp+arg_0]
cmp word_106AC, di
jnz short loc_B306
mov ax, 1
jmp short loc_B308
; ---------------------------------------------------------------------------
loc_B306:
2014-07-01 18:30:39 +00:00
xor ax, ax
loc_B308:
2014-07-01 18:30:39 +00:00
mov [bp+var_6], ax
cmp word_106AC, di
jnz short loc_B315
mov al, 0Fh
jmp short loc_B317
; ---------------------------------------------------------------------------
loc_B315:
2014-07-01 18:30:39 +00:00
mov al, 4
loc_B317:
2014-07-01 18:30:39 +00:00
mov [bp+var_7], al
cmp word_106AC, 0FFFFh
jnz short loc_B32A
mov [bp+var_6], 1
mov [bp+var_7], 0Fh
loc_B32A:
2014-07-01 18:30:39 +00:00
cmp di, 9
jz short loc_B339
push si
push [bp+arg_2]
lea ax, [di+21h]
push ax
jmp short loc_B351
; ---------------------------------------------------------------------------
loc_B339:
2014-07-01 18:30:39 +00:00
lea ax, [si-8]
push ax
push [bp+arg_2]
push 21h ; '!'
push [bp+var_6]
call sub_B2AD
lea ax, [si+8]
push ax
push [bp+arg_2]
push 20h ; ' '
loc_B351:
2014-07-01 18:30:39 +00:00
push [bp+var_6]
call sub_B2AD
add si, 30h ; '0'
mov [bp+var_2], 7
jmp short loc_B38F
; ---------------------------------------------------------------------------
loc_B361:
2014-07-01 18:30:39 +00:00
mov bx, di
shl bx, 3
add bx, [bp+var_2]
cmp byte ptr [bx+21F0h], 0Eh
jz short loc_B389
push si
push [bp+arg_2]
mov bx, di
shl bx, 3
add bx, [bp+var_2]
mov al, [bx+21F0h]
mov ah, 0
push ax
push [bp+var_6]
call sub_B2AD
loc_B389:
2014-07-01 18:30:39 +00:00
dec [bp+var_2]
add si, 18h
loc_B38F:
2014-07-01 18:30:39 +00:00
cmp [bp+var_2], 0
jge short loc_B361
add si, 10h
mov [bp+var_4], 20h ; ' '
mov [bp+var_2], 9
jmp short loc_B3E0
; ---------------------------------------------------------------------------
loc_B3A4:
2014-07-01 18:30:39 +00:00
cmp [bp+var_4], 20h ; ' '
jnz short loc_B3BB
mov bx, di
imul bx, 0Ah
add bx, [bp+var_2]
mov al, [bx+2242h]
mov ah, 0
mov [bp+var_4], ax
loc_B3BB:
2014-07-01 18:30:39 +00:00
cmp [bp+var_4], 20h ; ' '
jz short loc_B3DA
push si
push [bp+arg_2]
mov bx, di
imul bx, 0Ah
add bx, [bp+var_2]
mov al, [bx+2242h]
mov ah, 0
push ax
push [bp+var_6]
call sub_B2AD
loc_B3DA:
2014-07-01 18:30:39 +00:00
dec [bp+var_2]
add si, 10h
loc_B3E0:
2014-07-01 18:30:39 +00:00
cmp [bp+var_2], 0
jge short loc_B3A4
add si, 10h
push si
mov ax, [bp+arg_2]
add ax, 8
push ax
mov al, [bp+var_7]
mov ah, 0
or ax, 20h
push ax
mov al, [di+22A6h]
mov ah, 0
shl ax, 2
mov bx, ax
pushd dword ptr [bx+906h]
2014-07-01 18:30:39 +00:00
call sub_D197
add si, 70h ; 'p'
push si
push [bp+arg_2]
mov al, [di+22B0h]
mov ah, 0
push ax
push [bp+var_6]
call sub_B2AD
pop di
pop si
leave
retn 6
sub_B2EF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B429 proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
push si
push di
push 0
2014-08-27 04:13:48 +00:00
call graph_copy_page
2014-07-01 18:30:39 +00:00
xor si, si
mov di, 68h ; 'h'
jmp short loc_B447
; ---------------------------------------------------------------------------
loc_B43C:
2014-07-01 18:30:39 +00:00
push 18h
push di
push si
call sub_B2EF
inc si
add di, 14h
loc_B447:
2014-07-01 18:30:39 +00:00
cmp si, 0Ah
jl short loc_B43C
pop di
pop si
pop bp
retn
sub_B429 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B450 proc near
2014-07-01 18:30:39 +00:00
arg_0 = word ptr 4
push bp
mov bp, sp
push si
mov si, [bp+arg_0]
push 18h
mov ax, si
imul ax, 14h
add ax, 68h ; 'h'
push ax
push si
call sub_B2EF
pop si
pop bp
retn 2
sub_B450 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B46B proc near
2014-07-01 18:30:39 +00:00
var_F = byte ptr -0Fh
var_E = byte ptr -0Eh
var_D = byte ptr -0Dh
var_C = byte ptr -0Ch
var_B = byte ptr -0Bh
var_A = word ptr -0Ah
var_8 = word ptr -8
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
enter 10h, 0
push si
mov [bp+var_2], 0
lea ax, [bp+var_A]
push ss
push ax
push ds
push offset unk_ED6A
mov cx, 8
call SCOPY@
mov [bp+var_B], 0
mov [bp+var_C], 1
mov [bp+var_D], 0
mov [bp+var_E], 7
mov [bp+var_F], 0
mov ax, word_106AC
imul ax, 14h
add ax, 68h ; 'h'
mov si, ax
jmp loc_B743
; ---------------------------------------------------------------------------
loc_B4A8:
2014-07-01 18:30:39 +00:00
call sub_D5A2
test byte ptr word_100FC, 1
jz short loc_B4F2
cmp [bp+var_A], 0
jz short loc_B4CD
cmp [bp+var_A], 1Eh
jl short loc_B4ED
mov ax, [bp+var_A]
mov bx, 4
cwd
idiv bx
or dx, dx
jnz short loc_B4ED
loc_B4CD:
2014-07-01 18:30:39 +00:00
cmp [bp+var_2], 2Dh ; '-'
jz short loc_B4ED
push [bp+var_2]
push 0
call sub_B1BF
sub [bp+var_2], 10h
cmp [bp+var_2], 0
jge short loc_B4E9
add [bp+var_2], 30h ; '0'
loc_B4E9:
2014-07-01 18:30:39 +00:00
mov [bp+var_C], 1
loc_B4ED:
2014-07-01 18:30:39 +00:00
inc [bp+var_A]
jmp short loc_B4F7
; ---------------------------------------------------------------------------
loc_B4F2:
2014-07-01 18:30:39 +00:00
mov [bp+var_A], 0
loc_B4F7:
2014-07-01 18:30:39 +00:00
test byte ptr word_100FC, 2
jz short loc_B53C
cmp [bp+var_8], 0
jz short loc_B517
cmp [bp+var_8], 1Eh
jl short loc_B537
mov ax, [bp+var_8]
mov bx, 4
cwd
idiv bx
or dx, dx
jnz short loc_B537
loc_B517:
2014-07-01 18:30:39 +00:00
cmp [bp+var_2], 2Dh ; '-'
jz short loc_B537
push [bp+var_2]
push 0
call sub_B1BF
add [bp+var_2], 10h
cmp [bp+var_2], 30h ; '0'
jl short loc_B533
sub [bp+var_2], 30h ; '0'
loc_B533:
2014-07-01 18:30:39 +00:00
mov [bp+var_C], 1
loc_B537:
2014-07-01 18:30:39 +00:00
inc [bp+var_8]
jmp short loc_B541
; ---------------------------------------------------------------------------
loc_B53C:
2014-07-01 18:30:39 +00:00
mov [bp+var_8], 0
loc_B541:
2014-07-01 18:30:39 +00:00
test byte ptr word_100FC, 4
jz short loc_B59A
cmp [bp+var_6], 0
jz short loc_B561
cmp [bp+var_6], 1Eh
jl short loc_B595
mov ax, [bp+var_6]
mov bx, 4
cwd
idiv bx
or dx, dx
jnz short loc_B595
loc_B561:
2014-07-01 18:30:39 +00:00
push [bp+var_2]
push 0
call sub_B1BF
mov ax, [bp+var_2]
mov bx, 10h
cwd
idiv bx
or dx, dx
jnz short loc_B57C
add [bp+var_2], 0Eh
jmp short loc_B591
; ---------------------------------------------------------------------------
loc_B57C:
2014-07-01 18:30:39 +00:00
cmp [bp+var_2], 1Eh
jz short loc_B588
cmp [bp+var_2], 0Eh
jnz short loc_B58E
loc_B588:
2014-07-01 18:30:39 +00:00
sub [bp+var_2], 2
jmp short loc_B591
; ---------------------------------------------------------------------------
loc_B58E:
2014-07-01 18:30:39 +00:00
dec [bp+var_2]
loc_B591:
2014-07-01 18:30:39 +00:00
mov [bp+var_C], 1
loc_B595:
2014-07-01 18:30:39 +00:00
inc [bp+var_6]
jmp short loc_B59F
; ---------------------------------------------------------------------------
loc_B59A:
2014-07-01 18:30:39 +00:00
mov [bp+var_6], 0
loc_B59F:
2014-07-01 18:30:39 +00:00
test byte ptr word_100FC, 8
jz short loc_B5F9
cmp [bp+var_4], 0
jz short loc_B5BF
cmp [bp+var_4], 1Eh
jl short loc_B5F4
mov ax, [bp+var_4]
mov bx, 4
cwd
idiv bx
or dx, dx
jnz short loc_B5F4
loc_B5BF:
2014-07-01 18:30:39 +00:00
push [bp+var_2]
push 0
call sub_B1BF
mov ax, [bp+var_2]
mov bx, 10h
cwd
idiv bx
cmp dx, 0Eh
jnz short loc_B5DB
sub [bp+var_2], 0Eh
jmp short loc_B5F0
; ---------------------------------------------------------------------------
loc_B5DB:
2014-07-01 18:30:39 +00:00
cmp [bp+var_2], 0Ch
jz short loc_B5E7
cmp [bp+var_2], 1Ch
jnz short loc_B5ED
loc_B5E7:
2014-07-01 18:30:39 +00:00
add [bp+var_2], 2
jmp short loc_B5F0
; ---------------------------------------------------------------------------
loc_B5ED:
2014-07-01 18:30:39 +00:00
inc [bp+var_2]
loc_B5F0:
2014-07-01 18:30:39 +00:00
mov [bp+var_C], 1
loc_B5F4:
2014-07-01 18:30:39 +00:00
inc [bp+var_4]
jmp short loc_B5FE
; ---------------------------------------------------------------------------
loc_B5F9:
2014-07-01 18:30:39 +00:00
mov [bp+var_4], 0
loc_B5FE:
2014-07-01 18:30:39 +00:00
test byte ptr word_100FC+1, 20h
jnz short loc_B60C
test byte ptr word_100FC, 20h
jz short loc_B683
loc_B60C:
2014-07-01 18:30:39 +00:00
cmp [bp+var_D], 0
jnz short loc_B67D
cmp [bp+var_2], 1Eh
jnz short loc_B64B
mov al, [bp+var_E]
mov ah, 0
mov dx, 7
sub dx, ax
imul dx, 18h
add dx, 48h ; 'H'
push dx
push si
call sub_B1F6
mov bx, word_106AC
shl bx, 3
mov al, [bp+var_E]
mov ah, 0
add bx, ax
mov byte ptr [bx+21F0h], 0Eh
cmp [bp+var_E], 7
jnb short loc_B679
inc [bp+var_E]
jmp short loc_B679
; ---------------------------------------------------------------------------
loc_B64B:
2014-07-01 18:30:39 +00:00
cmp [bp+var_2], 2Eh ; '.'
jnz short loc_B657
mov [bp+var_B], 1
jmp short loc_B679
; ---------------------------------------------------------------------------
loc_B657:
2014-07-01 18:30:39 +00:00
mov bx, word_106AC
shl bx, 3
mov al, [bp+var_E]
mov ah, 0
add bx, ax
mov al, byte ptr [bp+var_2]
mov [bx+21F0h], al
cmp [bp+var_E], 0
jnz short loc_B676
mov [bp+var_B], 1
loc_B676:
2014-07-01 18:30:39 +00:00
dec [bp+var_E]
loc_B679:
2014-07-01 18:30:39 +00:00
mov [bp+var_C], 1
loc_B67D:
2014-07-01 18:30:39 +00:00
mov [bp+var_D], 1
jmp short loc_B687
; ---------------------------------------------------------------------------
loc_B683:
2014-07-01 18:30:39 +00:00
mov [bp+var_D], 0
loc_B687:
2014-07-01 18:30:39 +00:00
test byte ptr word_100FC, 10h
jz short loc_B6CF
cmp [bp+var_F], 0
jnz short loc_B6C9
mov al, [bp+var_E]
mov ah, 0
mov dx, 7
sub dx, ax
imul dx, 18h
add dx, 48h ; 'H'
push dx
push si
call sub_B1F6
mov bx, word_106AC
shl bx, 3
mov al, [bp+var_E]
mov ah, 0
add bx, ax
mov byte ptr [bx+21F0h], 0Eh
cmp [bp+var_E], 7
jnb short loc_B6C5
inc [bp+var_E]
loc_B6C5:
2014-07-01 18:30:39 +00:00
mov [bp+var_C], 1
loc_B6C9:
2014-07-01 18:30:39 +00:00
mov [bp+var_F], 1
jmp short loc_B6D3
; ---------------------------------------------------------------------------
loc_B6CF:
2014-07-01 18:30:39 +00:00
mov [bp+var_F], 0
loc_B6D3:
2014-07-01 18:30:39 +00:00
cmp [bp+var_C], 1
jnz short loc_B73C
push [bp+var_2]
push 1
call sub_B1BF
mov al, [bp+var_E]
mov ah, 0
mov dx, 7
sub dx, ax
imul dx, 18h
add dx, 48h ; 'H'
push dx
push si
call sub_B1F6
mov bx, word_106AC
shl bx, 3
mov al, [bp+var_E]
mov ah, 0
add bx, ax
mov byte ptr [bx+21F0h], 0Eh
push word_106AC
call sub_B450
mov ax, [bp+var_2]
mov bx, 10h
cwd
idiv bx
cmp dx, 0Eh
jz short loc_B738
mov al, [bp+var_E]
mov ah, 0
mov dx, 7
sub dx, ax
imul dx, 18h
add dx, 48h ; 'H'
push dx
push si
push [bp+var_2]
push 0
call sub_B2AD
loc_B738:
2014-07-01 18:30:39 +00:00
mov [bp+var_C], 0
loc_B73C:
2014-07-01 18:30:39 +00:00
push 1
2014-11-23 21:25:22 +00:00
call frame_delay
2014-07-01 18:30:39 +00:00
loc_B743:
2014-07-01 18:30:39 +00:00
cmp [bp+var_B], 0
jz loc_B4A8
pop si
leave
retn
sub_B46B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B74E proc near
2014-07-01 18:30:39 +00:00
var_1 = byte ptr -1
enter 2, 0
push si
push di
xor cx, cx
jmp short loc_B769
; ---------------------------------------------------------------------------
loc_B758:
2014-07-01 18:30:39 +00:00
mov bx, word_106AC
shl bx, 3
add bx, cx
cmp byte ptr [bx+21F0h], 0Eh
jnz short loc_B7A2
inc cx
loc_B769:
2014-07-01 18:30:39 +00:00
cmp cx, 8
jl short loc_B758
loc_B76E:
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
mov al, es:[bx+0Ch]
mov ah, 0
dec ax
cwd
sub ax, dx
sar ax, 1
shl ax, 3
add ax, 92Eh
mov di, ax
mov cx, 7
jmp short loc_B79C
; ---------------------------------------------------------------------------
loc_B78B:
2014-07-01 18:30:39 +00:00
mov bx, word_106AC
shl bx, 3
add bx, cx
mov al, [di]
mov [bx+21F0h], al
dec cx
inc di
loc_B79C:
2014-07-01 18:30:39 +00:00
or cx, cx
jge short loc_B78B
jmp short loc_B7CE
; ---------------------------------------------------------------------------
loc_B7A2:
2014-07-01 18:30:39 +00:00
mov bx, word_106AC
shl bx, 3
mov al, [bx+21F0h]
mov [bp+var_1], al
xor cx, cx
jmp short loc_B7C7
; ---------------------------------------------------------------------------
loc_B7B4:
2014-07-01 18:30:39 +00:00
mov bx, word_106AC
shl bx, 3
add bx, cx
mov al, [bx+21F0h]
cmp al, [bp+var_1]
jnz short loc_B7CE
inc cx
loc_B7C7:
2014-07-01 18:30:39 +00:00
cmp cx, 8
jl short loc_B7B4
jmp short loc_B76E
; ---------------------------------------------------------------------------
loc_B7CE:
2014-07-01 18:30:39 +00:00
pop di
pop si
leave
retn
sub_B74E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B7D2 proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
les bx, dword_105DA
mov eax, es:[bx+10h]
2014-08-30 10:13:04 +00:00
mov random_seed, eax
call snd_load c, offset aScore_m, ds, SND_LOAD_SONG
kajacall KAJA_SONG_PLAY
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
mov al, es:[bx+0Bh]
mov ah, 0
push ax
call sub_AE8E
les bx, dword_105DA
cmp byte ptr es:[bx+33h], 0FFh
jnz short loc_B819
mov word_106AC, 0FFFFh
jmp short loc_B81F
; ---------------------------------------------------------------------------
loc_B819:
2014-07-01 18:30:39 +00:00
call sub_B03D
mov word_106AC, ax
loc_B81F:
2014-07-01 18:30:39 +00:00
call sub_AFAC
cmp word_106AC, 0FFFFh
jnz short loc_B835
call sub_B429
push 2
2014-08-26 22:21:45 +00:00
call palette_black_in
2014-07-01 18:30:39 +00:00
jmp short loc_B858
; ---------------------------------------------------------------------------
loc_B835:
2014-07-01 18:30:39 +00:00
call sub_B429
push 1
2014-08-27 04:13:48 +00:00
call graph_copy_page
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
2014-07-01 18:30:39 +00:00
call sub_B187
push 2
2014-08-26 22:21:45 +00:00
call palette_black_in
2014-07-01 18:30:39 +00:00
call sub_B46B
call sub_B74E
call sub_B429
loc_B858:
2014-07-01 18:30:39 +00:00
push 0
call sub_D6C5
les bx, dword_105DA
cmp byte ptr es:[bx+36h], 0
jz short loc_B871
cmp byte ptr es:[bx+33h], 63h ; 'c'
jnz short loc_B879
loc_B871:
kajacall KAJA_SONG_FADE, 16
2014-07-01 18:30:39 +00:00
loc_B879:
2014-07-01 18:30:39 +00:00
push 2
2014-08-26 22:33:43 +00:00
call palette_black_out
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
mov al, es:[bx+0Bh]
mov ah, 0
push ax
call sub_AEF0
call super_free
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
mov dx, 0A4h
out dx, al
2014-08-23 13:47:05 +00:00
mov PaletteTone, 0
2014-08-23 14:11:16 +00:00
call far ptr palette_show
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
cmp byte ptr es:[bx+36h], 0
jz short loc_B8F1
cmp byte ptr es:[bx+33h], 63h ; 'c'
jz short loc_B8F1
call pi_slot_load pascal, 0, ds, offset aConti_pi
call pi_slot_palette_apply pascal, 0
call pi_slot_put pascal, large 0, 0
freePISlotLarge 0
2014-07-01 18:30:39 +00:00
push 0
push ds
push offset aConti_cd2 ; "conti.cd2"
call sub_D02E
pop bp
retn
; ---------------------------------------------------------------------------
loc_B8F1:
call pi_slot_load pascal, 0, ds, offset aOver_pi_0
call pi_slot_palette_apply pascal, 0
call pi_slot_put pascal, large 0, 0
freePISlotLarge 0
call snd_delay_until_volume stdcall, 255
2014-07-01 18:30:39 +00:00
pop cx
kajacall KAJA_SONG_STOP
2014-07-01 18:30:39 +00:00
pop bp
retn
sub_B7D2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B92E proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
kajacall KAJA_SONG_STOP
call snd_load c, offset aOver_m, ds, SND_LOAD_SONG
kajacall KAJA_SONG_PLAY
2014-07-01 18:30:39 +00:00
push 1
2014-08-26 22:21:45 +00:00
call palette_black_in
push 30040h
2014-07-01 18:30:39 +00:00
call sub_D3FC
push 1
2014-08-26 22:33:43 +00:00
call palette_black_out
kajacall KAJA_SONG_STOP
2014-07-01 18:30:39 +00:00
pop bp
retn
sub_B92E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_B972 proc near
2014-07-01 18:30:39 +00:00
var_1 = byte ptr -1
enter 2, 0
push 0
call sub_D130
push 1
call sub_D130
push 2
call sub_D130
freePISlotLarge 0
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
mov al, es:[bx+0Ch]
mov ah, 0
dec ax
cwd
sub ax, dx
sar ax, 1
mov [bp+var_1], al
cmp [bp+var_1], 0Ah
jl short loc_B9DD
les bx, off_EE4E
mov al, es:[bx+1]
push ax
mov al, [bp+var_1]
cbw
mov bx, 0Ah
cwd
idiv bx
pop dx
add dl, al
mov bx, word ptr off_EE4E
mov es:[bx+1], dl
mov al, [bp+var_1]
cbw
mov bx, 0Ah
cwd
idiv bx
mov [bp+var_1], dl
loc_B9DD:
2014-07-01 18:30:39 +00:00
les bx, off_EE4E
mov al, [bp+var_1]
add es:[bx+2], al
2014-08-23 13:47:05 +00:00
mov PaletteTone, 0
2014-08-23 14:11:16 +00:00
call far ptr palette_show
push 60h
2014-11-23 21:25:22 +00:00
call frame_delay
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
mov dx, 0A4h
out dx, al
2014-08-27 04:03:08 +00:00
call graph_clear
call graph_show
pushd [off_EE4E]
2014-07-01 18:30:39 +00:00
call sub_A12E
call sub_AC6E
call sub_A174
call sub_C40D
les bx, dword_105DA
mov byte ptr es:[bx+33h], 63h ; 'c'
call sub_B7D2
les bx, dword_105DA
cmp byte ptr es:[bx+36h], 3
jnz short loc_BA66
cmp byte ptr es:[bx+0Ch], 0Fh
jnb short loc_BA66
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
2014-08-27 04:03:08 +00:00
call graph_clear
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
2014-08-27 04:03:08 +00:00
call graph_clear
mov dx, 0A4h
2014-07-01 18:30:39 +00:00
mov al, 0
out dx, al
2014-07-01 18:30:39 +00:00
push ds
push offset a@99ed_txt ; "@99ED.TXT"
call sub_A12E
call sub_AC6E
call sub_A174
loc_BA66:
2014-08-20 14:45:24 +00:00
call text_clear
call gaiji_restore
2014-07-01 18:30:39 +00:00
call sub_C990
pushd 0
2014-07-01 18:30:39 +00:00
push ds
push offset aOp_0 ; "op"
push ds
push offset aOp_0 ; "op"
call _execl
add sp, 0Ch
leave
retn
sub_B972 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BA8A proc near
2014-07-01 18:30:39 +00:00
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
push bp
mov bp, sp
push si
push di
mov ax, [bp+arg_4]
sar ax, 3
mov dx, [bp+arg_2]
shl dx, 6
add ax, dx
mov dx, [bp+arg_2]
shl dx, 4
add ax, dx
mov di, ax
mov si, [bp+arg_0]
shl si, 4
add si, 0A62h
mov ax, 0A800h
mov es, ax
assume es:nothing
mov cx, [bp+arg_4]
; Hack (and cx, 7)
db 081h
db 0e1h
db 007h
db 000h
mov bx, 8
loc_BAC0:
2014-07-01 18:30:39 +00:00
mov ax, [si]
ror ax, cl
or es:[di], ax
add di, 50h ; 'P'
add si, 2
dec bx
jnz short loc_BAC0
pop di
pop si
pop bp
retn 6
sub_BA8A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BAD6 proc near
2014-07-01 18:30:39 +00:00
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
enter 4, 0
push si
push di
mov bx, [bp+arg_0]
shl bx, 4
mov ax, [bx+1D10h]
mov [bp+var_2], ax
mov bx, [bp+arg_0]
shl bx, 4
mov ax, [bx+1D12h]
mov [bp+var_4], ax
mov ax, [bp+var_2]
cwd
sub ax, dx
sar ax, 1
sub [bp+arg_4], ax
mov ax, [bp+var_4]
cwd
sub ax, dx
sar ax, 1
add ax, 0FFFEh
add [bp+arg_2], ax
mov ax, [bp+arg_4]
sar ax, 3
mov dx, [bp+arg_2]
shl dx, 6
add ax, dx
mov dx, [bp+arg_2]
shl dx, 4
add ax, dx
mov di, ax
mov ax, 0E000h
mov es, ax
assume es:nothing
mov dx, [bp+var_2]
shr dx, 4
mov si, 50h ; 'P'
sub si, dx
sub si, dx
xor ax, ax
mov cx, dx
rep stosw
add di, si
mov cx, dx
rep stosw
add di, si
mov cx, dx
rep stosw
pop di
pop si
leave
retn 6
sub_BAD6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BB51 proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
push di
mov ax, 0A800h
mov es, ax
assume es:nothing
xor ax, ax
mov di, ax
mov cx, 3E80h
rep stosw
pop di
pop bp
retn
sub_BB51 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BB66 proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
push si
mov si, 22C2h
xor ax, ax
jmp short loc_BB78
; ---------------------------------------------------------------------------
loc_BB71:
2014-07-01 18:30:39 +00:00
mov byte ptr [si], 0
inc ax
add si, 10h
loc_BB78:
2014-07-01 18:30:39 +00:00
cmp ax, 50h ; 'P'
jl short loc_BB71
pop si
pop bp
retn
sub_BB66 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BB80 proc near
2014-07-01 18:30:39 +00:00
var_2 = byte ptr -2
var_1 = byte ptr -1
enter 2, 0
push si
push di
mov si, 22C2h
xor di, di
jmp loc_BC1A
; ---------------------------------------------------------------------------
loc_BB8E:
2014-07-01 18:30:39 +00:00
cmp byte ptr [si], 0
jnz loc_BC16
mov ax, di
shl ax, 3
cmp ax, word_10BB2
jg short loc_BC16
mov byte ptr [si], 1
test di, 3
jz short loc_BBBE
2014-08-30 10:13:04 +00:00
call IRand
2014-07-01 18:30:39 +00:00
mov bx, 2780h
cwd
idiv bx
mov [si+2], dx
mov word ptr [si+4], 0
jmp short loc_BBD1
; ---------------------------------------------------------------------------
loc_BBBE:
2014-07-01 18:30:39 +00:00
mov word ptr [si+2], 2780h
2014-08-30 10:13:04 +00:00
call IRand
2014-07-01 18:30:39 +00:00
mov bx, 1880h
cwd
idiv bx
mov [si+4], dx
loc_BBD1:
2014-08-30 10:13:04 +00:00
call IRand
2014-07-01 18:30:39 +00:00
mov bx, 20h ; ' '
cwd
idiv bx
add dl, 50h ; 'P'
mov [bp+var_1], dl
2014-08-30 10:13:04 +00:00
call IRand
mov bx, 40h
2014-07-01 18:30:39 +00:00
cwd
idiv bx
add dl, 30h ; '0'
mov [bp+var_2], dl
2014-08-30 10:13:04 +00:00
call IRand
2014-07-01 18:30:39 +00:00
and ax, 3
mov [si+0Ah], ax
push ds
lea ax, [si+6]
push ax
push ds
lea ax, [si+8]
push ax
push word ptr [bp+var_1]
mov al, [bp+var_2]
mov ah, 0
push ax
call sub_C8F0
loc_BC16:
2014-07-01 18:30:39 +00:00
inc di
add si, 10h
loc_BC1A:
2014-07-01 18:30:39 +00:00
mov al, byte_106B0
mov ah, 0
cmp ax, di
jg loc_BB8E
pop di
pop si
leave
retn
sub_BB80 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BC29 proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
push si
mov si, 22C2h
xor dx, dx
jmp short loc_BC63
; ---------------------------------------------------------------------------
loc_BC34:
2014-07-01 18:30:39 +00:00
cmp byte ptr [si], 0
jz short loc_BC5F
mov byte ptr [si], 1
mov ax, [si+6]
add [si+2], ax
mov ax, [si+8]
add [si+4], ax
cmp word ptr [si+2], 0
jg short loc_BC53
add word ptr [si+2], 2780h
loc_BC53:
2014-07-01 18:30:39 +00:00
cmp word ptr [si+4], 1880h
jl short loc_BC5F
sub word ptr [si+4], 1880h
loc_BC5F:
2014-07-01 18:30:39 +00:00
inc dx
add si, 10h
loc_BC63:
2014-07-01 18:30:39 +00:00
mov al, byte_106B0
mov ah, 0
cmp ax, dx
jg short loc_BC34
pop si
pop bp
retn
sub_BC29 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BC6F proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
push si
push di
mov si, 22C2h
xor di, di
jmp short loc_BC98
; ---------------------------------------------------------------------------
loc_BC7B:
2014-07-01 18:30:39 +00:00
cmp byte ptr [si], 0
jz short loc_BC94
mov ax, [si+2]
sar ax, 4
push ax
mov ax, [si+4]
sar ax, 4
push ax
push word ptr [si+0Ah]
call sub_BA8A
loc_BC94:
2014-07-01 18:30:39 +00:00
inc di
add si, 10h
loc_BC98:
2014-07-01 18:30:39 +00:00
mov al, byte_106B0
mov ah, 0
cmp ax, di
jg short loc_BC7B
pop di
pop si
pop bp
retn
sub_BC6F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BCA5 proc near
2014-07-01 18:30:39 +00:00
arg_0 = word ptr 4
arg_2 = word ptr 6
push bp
mov bp, sp
cmp snd_active, 0
2014-07-01 18:30:39 +00:00
jnz short loc_BCB9
mov ax, word_10BB2
cmp ax, [bp+arg_0]
jle short loc_BCCF
jmp short loc_BCCA
; ---------------------------------------------------------------------------
loc_BCB9:
mov ah, KAJA_GET_SONG_MEASURE
2014-07-01 18:30:39 +00:00
int 60h ; - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE
; BX = handle
; Return: CF set on error, DH = error code
; CF clear if successful
cmp ax, [bp+arg_2]
jb short loc_BCCF
cmp word_10BB2, 0C0h
2014-07-01 18:30:39 +00:00
jle short loc_BCCF
loc_BCCA:
2014-07-01 18:30:39 +00:00
mov ax, 1
jmp short loc_BCD1
; ---------------------------------------------------------------------------
loc_BCCF:
2014-07-01 18:30:39 +00:00
xor ax, ax
loc_BCD1:
2014-07-01 18:30:39 +00:00
pop bp
retn 4
sub_BCA5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BCD5 proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
call sub_BB80
call sub_BC29
call sub_BC6F
cmp byte_10BB6, 0
jz short loc_BCFE
cmp vsync_Count1, 1
2014-07-01 18:30:39 +00:00
jbe short loc_BCFE
mov byte_10BB5, 0
mov byte_106B0, 32h ; '2'
mov byte_10BB6, 0
loc_BCFE:
cmp vsync_Count1, 0
2014-07-01 18:30:39 +00:00
jz short loc_BCFE
mov vsync_Count1, 0
mov dx, 0A4h
2014-07-01 18:30:39 +00:00
mov al, byte_10BB4
out dx, al
2014-07-01 18:30:39 +00:00
mov al, 1
sub al, byte_10BB4
mov byte_10BB4, al
mov dx, 0A6h ; '<27>'
out dx, al
2014-07-01 18:30:39 +00:00
pop bp
retn
sub_BCD5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BD21 proc near
2014-07-01 18:30:39 +00:00
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 6, 0
push si
push di
mov bx, [bp+arg_2]
shl bx, 4
mov ax, [bx+1D10h]
mov [bp+var_4], ax
mov bx, [bp+arg_2]
shl bx, 4
mov ax, [bx+1D12h]
mov [bp+var_6], ax
mov ax, [bp+var_4]
cwd
sub ax, dx
sar ax, 1
sub [bp+arg_6], ax
mov ax, [bp+var_6]
cwd
sub ax, dx
sar ax, 1
sub [bp+arg_4], ax
cmp byte_10BC7, 0
jz short loc_BD65
cmp byte_10BB5, 0
jnz short loc_BD75
loc_BD65:
2014-07-01 18:30:39 +00:00
push [bp+arg_6]
push [bp+arg_4]
push [bp+arg_2]
call sub_D712
2014-07-01 18:30:39 +00:00
jmp short loc_BD83
; ---------------------------------------------------------------------------
loc_BD75:
2014-07-01 18:30:39 +00:00
push [bp+arg_6]
push [bp+arg_4]
push [bp+arg_2]
call sub_C9D4
2014-07-01 18:30:39 +00:00
loc_BD83:
2014-07-01 18:30:39 +00:00
and [bp+arg_0], 7
cmp [bp+arg_0], 0
jz short loc_BDEE
mov bx, 10h
mov ax, [bp+var_4]
cwd
idiv bx
mov [bp+var_4], ax
mov ax, [bp+arg_4]
add [bp+var_6], ax
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 [bp+var_2], ax
mov ax, 0E000h
mov es, ax
assume es:nothing
mov bx, [bp+arg_0]
shl bx, 3
add bx, 0AA2h
mov dx, [bp+arg_4]
loc_BDCA:
2014-07-01 18:30:39 +00:00
mov si, dx
; Hack (and si, 3)
db 081h
db 0e6h
db 003h
db 000h
shl si, 1
mov ax, [bx+si]
not ax
mov di, [bp+var_2]
mov cx, [bp+var_4]
loc_BDDC:
2014-07-01 18:30:39 +00:00
and es:[di], ax
add di, 2
loop loc_BDDC
add [bp+var_2], 50h ; 'P'
inc dx
cmp dx, [bp+var_6]
jb short loc_BDCA
loc_BDEE:
2014-07-01 18:30:39 +00:00
pop di
pop si
leave
retn 8
sub_BD21 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BDF4 proc near
2014-07-01 18:30:39 +00:00
arg_0 = word ptr 4
push bp
mov bp, sp
push si
push di
mov di, [bp+arg_0]
call sub_BB51
mov ax, word_10BB2
cmp ax, word_10BBE
jg loc_BEC1
push 140h
mov al, byte_10BB4
mov ah, 0
add ax, ax
mov bx, ax
push word ptr [bx+27D8h]
push di
call sub_BAD6
mov al, byte_10BB4
mov ah, 0
add ax, ax
mov bx, ax
mov ax, [bx+27D8h]
cmp ax, word_10BC0
jle short loc_BE66
mov al, byte_10BB4
mov ah, 0
add ax, ax
mov dx, word_10BBC
mov bx, ax
sub [bx+27D8h], dx
mov al, byte_10BB4
mov ah, 0
add ax, ax
mov bx, ax
mov ax, [bx+27D8h]
cmp ax, word_10BC0
jge short loc_BE66
mov al, byte_10BB4
mov ah, 0
add ax, ax
mov dx, word_10BC0
mov bx, ax
mov [bx+27D8h], dx
loc_BE66:
2014-07-01 18:30:39 +00:00
mov ax, word_10BBE
mov bx, 8
cwd
idiv bx
push ax
mov ax, word_10BB2
cwd
pop bx
idiv bx
mov dx, 7
sub dx, ax
mov si, dx
or si, si
jge short loc_BE84
xor si, si
loc_BE84:
2014-07-01 18:30:39 +00:00
cmp byte_10BB5, 0
jz short loc_BEA7
cmp byte_10BC6, 0
jz short loc_BEA7
push 1F800C8h
2014-07-01 18:30:39 +00:00
mov al, byte_10BC6
mov ah, 0
push ax
push si
call sub_BD21
mov byte_10BC7, 1
loc_BEA7:
2014-07-01 18:30:39 +00:00
push 140h
mov al, byte_10BB4
mov ah, 0
add ax, ax
mov bx, ax
push word ptr [bx+27D8h]
push di
push si
call sub_BD21
mov byte_10BC7, 0
loc_BEC1:
2014-07-01 18:30:39 +00:00
pop di
pop si
pop bp
retn 2
sub_BDF4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BEC7 proc near
2014-07-01 18:30:39 +00:00
arg_0 = word ptr 4
push bp
mov bp, sp
push si
push di
mov di, [bp+arg_0]
call sub_BB51
cmp word_10BB2, 0A1h
2014-07-01 18:30:39 +00:00
jg loc_BF78
cmp word_10BB2, 0A0h
2014-07-01 18:30:39 +00:00
jge short loc_BF57
push 140h
mov al, byte_10BB4
mov ah, 0
add ax, ax
mov bx, ax
push word ptr [bx+27D8h]
push di
call sub_BAD6
mov al, byte_10BB4
mov ah, 0
add ax, ax
mov bx, ax
dec word ptr [bx+27D8h]
mov ax, word_10BB2
mov bx, 14h
cwd
idiv bx
mov si, ax
cmp si, 7
jle short loc_BF18
mov si, 7
loc_BF18:
2014-07-01 18:30:39 +00:00
cmp byte_10BB5, 0
jz short loc_BF3B
cmp byte_10BC6, 0
jz short loc_BF3B
push 1F800C8h
2014-07-01 18:30:39 +00:00
mov al, byte_10BC6
mov ah, 0
push ax
push si
call sub_BD21
mov byte_10BC7, 1
loc_BF3B:
2014-07-01 18:30:39 +00:00
push 140h
mov al, byte_10BB4
mov ah, 0
add ax, ax
mov bx, ax
push word ptr [bx+27D8h]
push di
push si
call sub_BD21
mov byte_10BC7, 0
jmp short loc_BF78
; ---------------------------------------------------------------------------
loc_BF57:
push 0C00000h
call grcg_setcolor
push 10008h
push 4E0187h
2014-08-27 21:20:37 +00:00
call grcg_byteboxfill_x
call grcg_off
2014-07-01 18:30:39 +00:00
loc_BF78:
2014-07-01 18:30:39 +00:00
pop di
pop si
pop bp
retn 2
sub_BEC7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BF7E proc near
2014-07-01 18:30:39 +00:00
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
push bp
mov bp, sp
push si
cmp word_10BB2, 0A0h
2014-07-01 18:30:39 +00:00
jg short loc_BFAD
mov ax, word_10BB2
mov bx, 14h
cwd
idiv bx
mov dx, 7
sub dx, ax
mov si, dx
or si, si
jge short loc_BFA0
xor si, si
loc_BFA0:
2014-07-01 18:30:39 +00:00
push [bp+arg_4]
push [bp+arg_2]
push [bp+arg_0]
push si
call sub_BD21
loc_BFAD:
2014-07-01 18:30:39 +00:00
pop si
pop bp
retn 6
sub_BF7E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_BFB2 proc near
2014-07-01 18:30:39 +00:00
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
push bp
mov bp, sp
push si
mov si, [bp+arg_4]
cmp word_10BBC, 2
jnz short loc_BFE3
mov al, byte_10BB4
mov ah, 0
add ax, ax
mov bx, ax
mov word ptr [bx+27D8h], 108h
mov al, byte_10BB4
mov ah, 0
xor ax, 1
add ax, ax
mov bx, ax
mov word ptr [bx+27D8h], 107h
jmp short loc_C00E
; ---------------------------------------------------------------------------
loc_BFE3:
2014-07-01 18:30:39 +00:00
mov al, byte_10BB4
mov ah, 0
add ax, ax
mov dx, 118h
sub dx, word_10BC4
mov bx, ax
mov [bx+27D8h], dx
mov al, byte_10BB4
mov ah, 0
xor ax, 1
add ax, ax
mov dx, 118h
sub dx, word_10BC4
mov bx, ax
mov [bx+27D8h], dx
loc_C00E:
2014-07-01 18:30:39 +00:00
mov word_10BB2, 0
loc_C014:
2014-07-01 18:30:39 +00:00
push si
call sub_BDF4
call sub_BCD5
inc word_10BB2
push [bp+arg_2]
push 100h
call sub_BCA5
or ax, ax
jz short loc_C014
mov word_10BB2, 0
loc_C032:
2014-07-01 18:30:39 +00:00
push si
call sub_BEC7
call sub_BCD5
inc word_10BB2
push [bp+arg_0]
push 100h
call sub_BCA5
or ax, ax
jz short loc_C032
push 0C00000h
call grcg_setcolor
push 10008h
push 4E0187h
2014-08-27 21:20:37 +00:00
call grcg_byteboxfill_x
call grcg_off
2014-07-01 18:30:39 +00:00
call sub_BCD5
push 0C00000h
call grcg_setcolor
push 10008h
push 4E0187h
2014-08-27 21:20:37 +00:00
call grcg_byteboxfill_x
call grcg_off
2014-07-01 18:30:39 +00:00
call sub_BCD5
pop si
pop bp
retn 6
sub_BFB2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C097 proc near
2014-07-01 18:30:39 +00:00
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
push bp
mov bp, sp
push si
push di
mov si, [bp+arg_4]
cmp word_10BBC, 2
jnz short loc_C0C9
mov al, byte_10BB4
mov ah, 0
add ax, ax
mov bx, ax
mov word ptr [bx+27D8h], 108h
mov al, byte_10BB4
mov ah, 0
xor ax, 1
add ax, ax
mov bx, ax
mov word ptr [bx+27D8h], 107h
jmp short loc_C0D6
; ---------------------------------------------------------------------------
loc_C0C9:
2014-07-01 18:30:39 +00:00
mov ax, 118h
sub ax, word_10BC4
mov word_10BC8, ax
mov word_10BCA, ax
loc_C0D6:
2014-07-01 18:30:39 +00:00
mov word_10BB2, 0
loc_C0DC:
2014-07-01 18:30:39 +00:00
push si
call sub_BDF4
mov byte_10BC7, 1
push 140h
push word_10BC2
lea ax, [si-1]
push ax
push 0
call sub_BD21
mov byte_10BC7, 0
call sub_BCD5
inc word_10BB2
push [bp+arg_2]
push 100h
call sub_BCA5
or ax, ax
jz short loc_C0DC
mov word_10BB2, 0
loc_C114:
cmp word_10BB2, 0A1h
2014-07-01 18:30:39 +00:00
jg short loc_C12A
push 140h
push word_10BC2
lea ax, [si-1]
push ax
call sub_BAD6
loc_C12A:
2014-07-01 18:30:39 +00:00
push si
call sub_BEC7
cmp word_10BB2, 0A1h
2014-07-01 18:30:39 +00:00
jg short loc_C199
mov ax, word_10BB2
dec ax
mov bx, 14h
cwd
idiv bx
mov di, ax
cmp di, 7
jle short loc_C14A
mov di, 7
loc_C14A:
2014-07-01 18:30:39 +00:00
cmp byte_10BB4, 0
jnz short loc_C155
dec word_10BC2
loc_C155:
2014-07-01 18:30:39 +00:00
mov byte_10BC7, 1
cmp word_10BB2, 0A0h
2014-07-01 18:30:39 +00:00
jge short loc_C173
push 140h
push word_10BC2
lea ax, [si-1]
push ax
push di
call sub_BD21
jmp short loc_C194
; ---------------------------------------------------------------------------
loc_C173:
push 0C00000h
call grcg_setcolor
push 10008h
push 4E0187h
2014-08-27 21:20:37 +00:00
call grcg_byteboxfill_x
call grcg_off
2014-07-01 18:30:39 +00:00
loc_C194:
2014-07-01 18:30:39 +00:00
mov byte_10BC7, 0
loc_C199:
2014-07-01 18:30:39 +00:00
call sub_BCD5
inc word_10BB2
push [bp+arg_0]
push 100h
call sub_BCA5
or ax, ax
jz loc_C114
push 0C00000h
call grcg_setcolor
push 10008h
push 4E0187h
2014-08-27 21:20:37 +00:00
call grcg_byteboxfill_x
call grcg_off
2014-07-01 18:30:39 +00:00
call sub_BCD5
push 0C00000h
call grcg_setcolor
push 10008h
push 4E0187h
2014-08-27 21:20:37 +00:00
call grcg_byteboxfill_x
call grcg_off
2014-07-01 18:30:39 +00:00
call sub_BCD5
pop di
pop si
pop bp
retn 6
sub_C097 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C1FD proc near
2014-07-01 18:30:39 +00:00
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
push bp
mov bp, sp
cmp word_10BBC, 2
jnz short loc_C22A
mov al, byte_10BB4
mov ah, 0
add ax, ax
mov bx, ax
mov word ptr [bx+27D8h], 108h
mov al, byte_10BB4
mov ah, 0
xor ax, 1
add ax, ax
mov bx, ax
mov word ptr [bx+27D8h], 107h
jmp short loc_C237
; ---------------------------------------------------------------------------
loc_C22A:
2014-07-01 18:30:39 +00:00
mov ax, 118h
sub ax, word_10BC4
mov word_10BC8, ax
mov word_10BCA, ax
loc_C237:
2014-07-01 18:30:39 +00:00
mov word_10BB2, 0
loc_C23D:
2014-07-01 18:30:39 +00:00
push [bp+arg_4]
call sub_BDF4
call sub_BCD5
inc word_10BB2
push [bp+arg_2]
push 100h
call sub_BCA5
or ax, ax
jz short loc_C23D
mov word_10BB2, 0
loc_C25D:
2014-07-01 18:30:39 +00:00
call sub_BB51
call sub_BCD5
inc word_10BB2
push [bp+arg_0]
push 100h
call sub_BCA5
or ax, ax
jz short loc_C25D
mov al, byte_10BB4
mov ah, 0
add ax, ax
mov bx, ax
mov ax, [bx+27D8h]
mov word_10BC2, ax
pop bp
retn 6
sub_C1FD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C288 proc near
2014-07-01 18:30:39 +00:00
var_4 = word ptr -4
var_2 = word ptr -2
enter 4, 0
push si
push di
push 16000AEh
2014-07-01 18:30:39 +00:00
push 2Fh ; '/'
mov al, byte_10BD7
mov ah, 0
shl ax, 2
mov bx, ax
pushd dword ptr [bx+0AE2h]
2014-07-01 18:30:39 +00:00
call sub_D197
push 16800C7h
2014-07-01 18:30:39 +00:00
push 2Fh ; '/'
mov al, byte_10BD6
mov ah, 0
shl ax, 2
mov bx, ax
pushd dword ptr [bx+0B06h]
2014-07-01 18:30:39 +00:00
call sub_D197
mov si, 198h
mov [bp+var_4], 0
mov [bp+var_2], 8
jmp short loc_C319
; ---------------------------------------------------------------------------
loc_C2D5:
2014-07-01 18:30:39 +00:00
mov bx, [bp+var_2]
mov al, [bx+27DCh]
mov ah, 0
mov di, ax
cmp [bp+var_4], 0
jnz short loc_C2F7
or di, di
jz short loc_C2F7
mov ax, [bp+var_2]
shl ax, 3
sub si, ax
mov [bp+var_4], 1
loc_C2F7:
2014-07-01 18:30:39 +00:00
cmp [bp+var_4], 0
jz short loc_C316
push si
push 0E0002Fh
2014-07-01 18:30:39 +00:00
mov bx, di
shl bx, 2
pushd dword ptr [bx+0B16h]
2014-07-01 18:30:39 +00:00
call sub_D197
add si, 10h
loc_C316:
2014-07-01 18:30:39 +00:00
dec [bp+var_2]
loc_C319:
2014-07-01 18:30:39 +00:00
cmp [bp+var_2], 0
jg short loc_C2D5
mov al, byte_10BCC
mov ah, 0
mov di, ax
push si
push 0E0002Fh
2014-07-01 18:30:39 +00:00
mov bx, di
shl bx, 2
pushd dword ptr [bx+0B16h]
2014-07-01 18:30:39 +00:00
call sub_D197
push 19800F8h
2014-07-01 18:30:39 +00:00
push 2Fh ; '/'
mov bx, di
shl bx, 2
pushd dword ptr [bx+0B16h]
2014-07-01 18:30:39 +00:00
call sub_D197
mov al, byte_10BD8
mov ah, 0
mov bx, 64h ; 'd'
cwd
idiv bx
mov di, ax
mov si, 198h
mov [bp+var_4], 0
or di, di
jz short loc_C38D
sub si, 10h
mov [bp+var_4], 1
push si
push 123002Fh
2014-07-01 18:30:39 +00:00
mov bx, di
shl bx, 2
pushd dword ptr [bx+0B16h]
2014-07-01 18:30:39 +00:00
call sub_D197
add si, 10h
loc_C38D:
2014-07-01 18:30:39 +00:00
mov al, byte_10BD8
mov ah, 0
mov bx, 64h ; 'd'
cwd
idiv bx
mov bx, 0Ah
mov ax, dx
cwd
idiv bx
mov di, ax
or di, di
jz short loc_C3B4
cmp [bp+var_4], 0
jnz short loc_C3B4
mov [bp+var_4], 1
sub si, 8
loc_C3B4:
2014-07-01 18:30:39 +00:00
cmp [bp+var_4], 0
jz short loc_C3D3
push si
push 123002Fh
2014-07-01 18:30:39 +00:00
mov bx, di
shl bx, 2
pushd dword ptr [bx+0B16h]
2014-07-01 18:30:39 +00:00
call sub_D197
add si, 10h
loc_C3D3:
2014-07-01 18:30:39 +00:00
mov al, byte_10BD8
mov ah, 0
mov bx, 0Ah
cwd
idiv bx
mov di, dx
push si
push 123002Fh
2014-07-01 18:30:39 +00:00
mov bx, di
shl bx, 2
pushd dword ptr [bx+0B16h]
2014-07-01 18:30:39 +00:00
call sub_D197
lea ax, [si+10h]
push ax
push 123002Fh
2014-07-01 18:30:39 +00:00
push ds
push offset aU_ ; "<22>_"
call sub_D197
pop di
pop si
leave
retn
sub_C288 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C40D proc near
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
push si
push di
kajacall KAJA_SONG_FADE, 16
2014-07-01 18:30:39 +00:00
push 4
2014-08-26 22:33:43 +00:00
call palette_black_out
call snd_delay_until_volume stdcall, 255
2014-07-01 18:30:39 +00:00
pop cx
kajacall KAJA_SONG_STOP
2014-07-01 18:30:39 +00:00
mov byte_106B0, 50h ; 'P'
mov si, 1
jmp short loc_C44B
; ---------------------------------------------------------------------------
loc_C43C:
2014-07-01 18:30:39 +00:00
les bx, dword_105DA
assume es:nothing
add bx, si
mov al, es:[bx+17h]
mov [si+27DCh], al
inc si
loc_C44B:
2014-07-01 18:30:39 +00:00
cmp si, 9
jl short loc_C43C
les bx, dword_105DA
mov al, 3
sub al, es:[bx+36h]
mov byte_10BCC, al
mov al, es:[bx+0Ch]
mov ah, 0
dec ax
cwd
sub ax, dx
sar ax, 1
mov byte_10BD7, al
mov al, es:[bx+0Bh]
mov byte_10BD6, al
mov al, es:[bx+38h]
mov byte_10BD8, al
mov al, byte_10BD3
mov ah, 0
cmp ax, 3
jz short loc_C48B
cmp ax, 4
jz short loc_C49E
jmp short loc_C4B1
; ---------------------------------------------------------------------------
loc_C48B:
2014-07-01 18:30:39 +00:00
mov al, byte_10BD2
mov ah, 0
cwd
sub ax, dx
sar ax, 1
add al, byte_10BD8
add al, 2
mov byte_10BD8, al
loc_C49E:
2014-07-01 18:30:39 +00:00
mov al, byte_10BD2
mov ah, 0
cwd
sub ax, dx
sar ax, 1
add al, byte_10BD8
add al, 7
mov byte_10BD8, al
loc_C4B1:
2014-07-01 18:30:39 +00:00
cmp byte_10BD3, 5
jb short loc_C4C0
mov al, byte_10BD8
add al, 0Fh
mov byte_10BD8, al
loc_C4C0:
2014-07-01 18:30:39 +00:00
cmp byte_10BD4, 0
jz short loc_C4CC
mov byte_10BD8, 64h ; 'd'
loc_C4CC:
2014-07-01 18:30:39 +00:00
cmp byte_10BD8, 64h ; 'd'
jbe short loc_C4D8
mov byte_10BD8, 64h ; 'd'
loc_C4D8:
call snd_load c, offset aEd_m, ds, SND_LOAD_SONG
2014-08-23 13:47:05 +00:00
mov PaletteTone, 0
2014-08-23 14:11:16 +00:00
call far ptr palette_show
2014-07-01 18:30:39 +00:00
push ds
push offset aEdbk1_rgb ; "edbk1.rgb"
2014-08-31 03:14:54 +00:00
call palette_entry_rgb
2014-08-23 14:11:16 +00:00
call far ptr palette_show
push 0C00008h
call grcg_setcolor
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
pushd 0
push 4F018Fh
2014-08-27 21:20:37 +00:00
call grcg_byteboxfill_x
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
pushd 0
push 4F018Fh
2014-08-27 21:20:37 +00:00
call grcg_byteboxfill_x
push 0C00000h
call grcg_setcolor
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
push 10008h
push 4E0187h
2014-08-27 21:20:37 +00:00
call grcg_byteboxfill_x
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
push 10008h
push 4E0187h
2014-08-27 21:20:37 +00:00
call grcg_byteboxfill_x
call grcg_off
mov dx, 0A4h
2014-07-01 18:30:39 +00:00
mov al, 1
out dx, al
2014-07-01 18:30:39 +00:00
push 0
push ds
push offset aStf1_cdg ; "stf1.cdg"
push 0
call sub_CFA8
push 1
push ds
push offset aStf11_cdg ; "stf11.cdg"
push 0
call sub_CFA8
push 2
push ds
push offset aStf3_cdg ; "stf3.cdg"
push 0
call sub_CF1E
push 3
push ds
push offset aStf4_cdg ; "stf4.cdg"
push 0
call sub_CF1E
push 4
push ds
push offset aStf5_cdg ; "stf5.cdg"
push 0
call sub_CFA8
push 5
push ds
push offset aStf6_cdg ; "stf6.cdg"
push 0
call sub_CFA8
push 6
push ds
push offset aStf7_cdg ; "stf7.cdg"
push 0
call sub_CFA8
push 7
push ds
push offset aStf8_cdg ; "stf8.cdg"
push 0
call sub_CFA8
push 8
push ds
push offset aStf9_cdg ; "stf9.cdg"
push 0
call sub_CFA8
push 9
push ds
push offset aStf10_cdg ; "stf10.cdg"
push 0
call sub_CFA8
push 0Ah
push ds
push offset aStf2_cdg ; "stf2.cdg"
push 0
call sub_CFA8
push 0Bh
push ds
push offset aStf12_cdg ; "stf12.cdg"
push 0
call sub_CFA8
call sub_BB66
mov word_10BB2, 0
les bx, dword_105DA
mov eax, es:[bx+10h]
2014-08-30 10:13:04 +00:00
mov random_seed, eax
2014-07-01 18:30:39 +00:00
mov byte_10BB4, 0
2014-08-23 13:47:05 +00:00
mov PaletteTone, 64h ; 'd'
2014-08-23 14:11:16 +00:00
call far ptr palette_show
kajacall KAJA_SONG_PLAY
2014-07-01 18:30:39 +00:00
mov byte_10BB6, 1
mov byte_10BB5, 1
push 1
2014-11-23 21:25:22 +00:00
call frame_delay
mov vsync_Count1, 0
2014-07-01 18:30:39 +00:00
loc_C657:
2014-07-01 18:30:39 +00:00
call sub_BB51
call sub_BCD5
inc word_10BB2
push 40100h
2014-07-01 18:30:39 +00:00
call sub_BCA5
or ax, ax
jz short loc_C657
mov byte_10BC7, 0
mov word_10BC4, 0
mov word_10BC0, 0C8h
2014-07-01 18:30:39 +00:00
mov word_10BBC, 2
mov word_10BBE, 41h ; 'A'
mov byte_10BC6, 0
pushd 8
2014-07-01 18:30:39 +00:00
push 0Ah
call sub_BFB2
mov word_10BBC, 1
mov word_10BBE, 0A1h
2014-07-01 18:30:39 +00:00
mov byte_10BB6, 0
push 10010h
2014-07-01 18:30:39 +00:00
push 14h
call sub_BFB2
mov word_10BC4, 20h ; ' '
mov word_10BC0, 0A8h ; '<27>'
push 20016h
2014-07-01 18:30:39 +00:00
push 18h
call sub_C1FD
mov byte_10BC6, 7
mov word_10BC0, 0D8h
2014-07-01 18:30:39 +00:00
mov word_10BC4, 0FFF0h
push 30020h
2014-07-01 18:30:39 +00:00
push 22h ; '"'
call sub_C097
mov byte_10BC6, 0
mov word_10BC0, 0C8h
2014-07-01 18:30:39 +00:00
mov word_10BC4, 0
push 40024h
2014-07-01 18:30:39 +00:00
push 26h ; '&'
call sub_BFB2
push 0B002Ah
2014-07-01 18:30:39 +00:00
push 2Ch ; ','
call sub_BFB2
push 50030h
2014-07-01 18:30:39 +00:00
push 32h ; '2'
call sub_BFB2
push 60036h
2014-07-01 18:30:39 +00:00
push 38h ; '8'
call sub_BFB2
push 0A003Ch
2014-07-01 18:30:39 +00:00
push 3Eh ; '>'
call sub_BFB2
mov word_10BB2, 0
loc_C735:
2014-07-01 18:30:39 +00:00
call sub_BB51
push 1400080h
2014-07-01 18:30:39 +00:00
push 8
call sub_BF7E
push 0C000F0h
2014-07-01 18:30:39 +00:00
push 9
call sub_BF7E
call sub_BCD5
inc word_10BB2
push 420100h
2014-07-01 18:30:39 +00:00
call sub_BCA5
or ax, ax
jz short loc_C735
mov al, 1
sub al, byte_10BB4
mov dx, 0A6h ; '<27>'
out dx, al
2014-07-01 18:30:39 +00:00
call sub_C288
mov dx, 0A6h ; '<27>'
mov al, byte_10BB4
out dx, al
2014-07-01 18:30:39 +00:00
call sub_C288
mov word_10BB2, 0
xor di, di
loc_C781:
2014-07-01 18:30:39 +00:00
call sub_D5A2
call sub_BB51
call sub_BCD5
inc word_10BB2
or di, di
jz short loc_C7AB
2014-08-23 13:47:05 +00:00
mov PaletteTone, di
2014-08-23 14:11:16 +00:00
call far ptr palette_show
2014-07-01 18:30:39 +00:00
test byte ptr word_10BB2, 1
jz short loc_C781
dec di
or di, di
jnz short loc_C781
jmp short loc_C7CD
; ---------------------------------------------------------------------------
loc_C7AB:
2014-07-01 18:30:39 +00:00
cmp word_100FC, 0
jz short loc_C781
cmp word_10BB2, 100h
jle short loc_C781
kajacall KAJA_SONG_FADE, 8
2014-07-01 18:30:39 +00:00
mov di, 64h ; 'd'
mov word_10BB2, 0
jmp short loc_C781
; ---------------------------------------------------------------------------
loc_C7CD:
2014-07-01 18:30:39 +00:00
xor si, si
jmp short loc_C7D8
; ---------------------------------------------------------------------------
loc_C7D1:
2014-07-01 18:30:39 +00:00
push si
call sub_D130
inc si
loc_C7D8:
2014-07-01 18:30:39 +00:00
cmp si, 20h ; ' '
jl short loc_C7D1
pop di
pop si
pop bp
retn
sub_C40D endp
db 0
2014-07-01 18:30:39 +00:00
seg001 ends
; ===========================================================================
; Segment type: Pure code
seg002 segment word public 'CODE' use16
2014-07-01 18:30:39 +00:00
assume cs:seg002
;org 2
2014-07-01 18:30:39 +00:00
assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C7E2 proc far
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
mov dword_10050, 0A8000000h
mov dword_10054, 0B0000000h
mov dword_10058, 0B8000000h
mov dword_1005C, 0E0000000h
pop bp
retf
sub_C7E2 endp
; ---------------------------------------------------------------------------
db 0
include th02/hardware/snd_determine_mode.asm
include th02/hardware/snd_pmd_resident.asm
include th02/hardware/snd_delay_until_volume.asm
include th02/hardware/snd_load.asm
2014-07-01 18:30:39 +00:00
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C8F0 proc far
2014-07-01 18:30:39 +00:00
arg_0 = word ptr 6
arg_2 = byte ptr 8
arg_4 = dword ptr 0Ah
arg_8 = dword ptr 0Eh
push bp
mov bp, sp
push si
mov dl, [bp+arg_2]
mov si, [bp+arg_0]
movsx eax, si
mov dh, 0
add dx, dx
mov bx, dx
movsx edx, word ptr [bx+63Ah]
movsx ecx, word ptr [bx+5BAh]
imul eax, edx
sar eax, 8
les bx, [bp+arg_8]
mov es:[bx], ax
movsx eax, si
imul eax, ecx
sar eax, 8
les bx, [bp+arg_4]
mov es:[bx], ax
pop si
pop bp
retf 0Ch
sub_C8F0 endp
; ---------------------------------------------------------------------------
nop
push bp
mov bp, sp
push si
mov si, [bp+6]
mov ax, [bp+12h]
sub ax, [bp+16h]
push ax
mov ax, [bp+14h]
sub ax, [bp+18h]
push ax
2014-08-30 11:44:36 +00:00
call iatan2
2014-07-01 18:30:39 +00:00
add al, [bp+10h]
mov dl, al
movsx eax, si
mov dh, 0
add dx, dx
mov bx, dx
movsx edx, word ptr [bx+63Ah]
movsx ecx, word ptr [bx+5BAh]
imul eax, edx
sar eax, 8
les bx, [bp+0Ch]
mov es:[bx], ax
movsx eax, si
imul eax, ecx
sar eax, 8
les bx, [bp+8]
mov es:[bx], ax
pop si
pop bp
retf 14h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C990 proc far
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
call pfend
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 1
out dx, al
2014-08-27 04:03:08 +00:00
call graph_clear
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
2014-08-27 04:03:08 +00:00
call graph_clear
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
mov dx, 0A4h
out dx, al
call vsync_end
call mem_unassign
2014-08-20 14:45:24 +00:00
call text_clear
2014-08-23 11:46:31 +00:00
call js_end
call egc_start
2014-07-01 18:30:39 +00:00
pop bp
retf
sub_C990 endp
; ---------------------------------------------------------------------------
db 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_C9D4 proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
push si
push di
push 0C00000h
call grcg_setcolor
mov si, [bp+arg_0]
2014-07-01 18:30:39 +00:00
shl si, 4
add si, 1D0Eh
mov ax, [si+0Eh]
mov word ptr cs:loc_CA4B+1, ax
mov ax, [bp+arg_4]
2014-07-01 18:30:39 +00:00
sar ax, 3
add ax, [si+6]
mov di, ax
mov word ptr cs:loc_CA44+1, ax
2014-07-01 18:30:39 +00:00
mov ax, [si+8]
mov word ptr cs:loc_CA36+1, ax
mov word ptr cs:loc_CA50+1, ax
2014-07-01 18:30:39 +00:00
shl ax, 2
add ax, 50h ; 'P'
mov word ptr cs:loc_CA32+1, ax
2014-07-01 18:30:39 +00:00
jmp short $+2
mov ax, [bp+arg_2]
2014-07-01 18:30:39 +00:00
mov bx, ax
shl ax, 2
add ax, bx
add ax, 0A800h
mov es, ax
push ds
mov ax, [si+0Ch]
mov ds, ax
xor si, si
loc_CA32:
mov dx, 1234h
cld
loc_CA36:
mov cx, 1234h
rep movsd
sub di, dx
jns short loc_CA36
xor al, al
out 7Ch, al
loc_CA44:
mov bx, 1234h
mov di, bx
xor si, si
loc_CA4B:
mov ax, 1234h
mov ds, ax
assume ds:nothing
loc_CA50:
mov cx, 1234h
loc_CA53:
mov eax, [si]
or es:[di], eax
add si, 4
add di, 4
loop loc_CA53
sub di, dx
jns short loc_CA50
mov di, bx
mov ax, es
add ax, 800h
mov es, ax
assume es:nothing
cmp ax, 0C000h
jb short loc_CA50
cmp ax, 0C800h
jnb short loc_CA80
add ax, 2000h
mov es, ax
assume es:nothing
jmp short loc_CA50
loc_CA80:
pop ds
assume ds:dseg
pop di
pop si
pop bp
retf 6
sub_C9D4 endp
2014-07-01 18:30:39 +00:00
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CA88 proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
push si
push di
push 0C00000h
call grcg_setcolor
mov si, [bp+arg_0]
2014-07-01 18:30:39 +00:00
shl si, 4
add si, 1D0Eh
mov ax, [bp+arg_4]
2014-07-01 18:30:39 +00:00
sar ax, 3
add ax, [si+6]
mov bx, [si+8]
shl bx, 2
add ax, bx
dec ax
mov di, ax
mov word ptr cs:loc_CB08+1, ax
mov word ptr cs:loc_CB30+1, ax
mov word ptr cs:loc_CAF2+1, bx
mov word ptr cs:loc_CB1E+1, bx
2014-07-01 18:30:39 +00:00
mov ax, 50h ; 'P'
sub ax, bx
mov word ptr cs:loc_CAEE+1, ax
mov word ptr cs:loc_CB1A+1, ax
2014-07-01 18:30:39 +00:00
jmp short $+2
mov ax, [bp+arg_2]
2014-07-01 18:30:39 +00:00
mov bx, ax
shl ax, 2
add ax, bx
add ax, 0A800h
mov es, ax
assume es:nothing
2014-07-01 18:30:39 +00:00
mov bx, 20D6h
mov fs, word ptr [si+0Ch]
xor si, si
loc_CAEE:
mov dx, 1234h
2014-07-01 18:30:39 +00:00
nop
loc_CAF2:
mov cx, 1234h
loc_CAF5:
mov al, fs:[si]
xlat
mov es:[di], al
inc si
dec di
loop loc_CAF5
sub di, dx
jns short loc_CAF2
xor al, al
out 7Ch, al
loc_CB08:
mov di, 1234h
mov si, [bp+arg_0]
shl si, 4
add si, 1D0Eh
mov fs, word ptr [si+0Eh]
xor si, si
loc_CB1A:
mov dx, 1234h
2014-07-01 18:30:39 +00:00
nop
loc_CB1E:
mov cx, 4D2h
loc_CB21:
mov al, fs:[si]
xlat
or es:[di], al
inc si
dec di
loop loc_CB21
sub di, dx
jns short loc_CB1E
loc_CB30:
mov di, 1234h
mov ax, es
add ax, 800h
mov es, ax
assume es:nothing
cmp ax, 0C000h
jb short loc_CB1E
cmp ax, 0C800h
jnb short loc_CB4B
add ax, 2000h
mov es, ax
assume es:nothing
jmp short loc_CB1E
loc_CB4B:
pop di
pop si
pop bp
retf 6
sub_CA88 endp
2014-07-01 18:30:39 +00:00
; ---------------------------------------------------------------------------
nop
2014-07-01 18:30:39 +00:00
2014-11-23 21:25:22 +00:00
include th02/frame_delay.asm
2014-07-01 18:30:39 +00:00
db 0
; =============== S U B R O U T I N E =======================================
sub_CB68 proc far
2014-07-01 18:30:39 +00:00
xor ax, ax
mov word_100F8, ax
mov word_100FA, ax
mov word_100FC, ax
mov word_F80A, ax
jmp short $+2
mov bl, 2
xor ax, ax
mov es, ax
loc_CB7E:
2014-08-26 19:23:54 +00:00
mov ah, byte ptr es:[531h]
2014-07-01 18:30:39 +00:00
test ah, 4
jz short loc_CB8D
or word_100FC, 1
loc_CB8D:
2014-07-01 18:30:39 +00:00
test ah, 20h
jz short loc_CB97
or word_100FC, 2
loc_CB97:
2014-07-01 18:30:39 +00:00
test ah, 8
jz short loc_CBA6
or word_100FA, 20h
or word_100FC, 4
loc_CBA6:
2014-07-01 18:30:39 +00:00
test ah, 10h
jz short loc_CBB5
or word_100FA, 10h
or word_100FC, 8
loc_CBB5:
2014-08-26 19:23:54 +00:00
mov ah, byte ptr es:[533h]
2014-07-01 18:30:39 +00:00
test ah, 1
jz short loc_CBC9
or word_100FA, 8
or word_100FC, 8
loc_CBC9:
2014-07-01 18:30:39 +00:00
test ah, 4
jz short loc_CBDA
or word_100FA, 200h
or word_100FC, 200h
loc_CBDA:
2014-07-01 18:30:39 +00:00
test ah, 8
jz short loc_CBE9
or word_100FA, 2
or word_100FC, 2
loc_CBE9:
2014-07-01 18:30:39 +00:00
test ah, 10h
jz short loc_CBFA
or word_100FA, 800h
or word_100FC, 800h
loc_CBFA:
2014-08-26 19:23:54 +00:00
mov ah, byte ptr es:[532h]
2014-07-01 18:30:39 +00:00
test ah, 40h
jz short loc_CC0E
or word_100FA, 4
or word_100FC, 4
loc_CC0E:
2014-07-01 18:30:39 +00:00
test ah, 4
jz short loc_CC1F
or word_100FA, 100h
or word_100FC, 100h
loc_CC1F:
2014-07-01 18:30:39 +00:00
test ah, 8
jz short loc_CC2E
or word_100FA, 1
or word_100FC, 1
loc_CC2E:
2014-07-01 18:30:39 +00:00
test ah, 10h
jz short loc_CC3F
or word_100FA, 400h
or word_100FC, 400h
loc_CC3F:
2014-08-26 19:23:54 +00:00
mov ah, byte ptr es:[52Fh]
2014-07-01 18:30:39 +00:00
test ah, 2
jz short loc_CC53
or word_100F8, 20h
or word_100FC, 20h
loc_CC53:
2014-07-01 18:30:39 +00:00
test ah, 4
jz short loc_CC62
or word_100F8, 10h
or word_100FC, 10h
loc_CC62:
2014-07-01 18:30:39 +00:00
test ah, 10h
jz short loc_CC6D
or word_100F8, 200h
loc_CC6D:
2014-07-01 18:30:39 +00:00
test ah, 20h
jz short loc_CC77
or word_100F8, 2
loc_CC77:
2014-07-01 18:30:39 +00:00
test ah, 40h
jz short loc_CC82
or word_100F8, 800h
loc_CC82:
2014-08-26 19:23:54 +00:00
mov ah, byte ptr es:[52Eh]
2014-07-01 18:30:39 +00:00
test ah, 1
jz short loc_CC91
or word_100F8, 4
loc_CC91:
2014-07-01 18:30:39 +00:00
test ah, 4
jz short loc_CC9B
or word_100F8, 8
loc_CC9B:
2014-08-26 19:23:54 +00:00
mov ah, byte ptr es:[52Ch]
2014-07-01 18:30:39 +00:00
test ah, 8
jz short loc_CCAB
or word_100F8, 100h
loc_CCAB:
2014-07-01 18:30:39 +00:00
test ah, 10h
jz short loc_CCB5
or word_100F8, 1
loc_CCB5:
2014-07-01 18:30:39 +00:00
test ah, 20h
jz short loc_CCC0
or word_100F8, 400h
loc_CCC0:
2014-07-01 18:30:39 +00:00
test ah, 1
jz short loc_CCCB
or word_100FC, 4000h
loc_CCCB:
2014-08-26 19:23:54 +00:00
mov ah, byte ptr es:[52Ah]
2014-07-01 18:30:39 +00:00
test ah, 1
jz short loc_CCDB
or word_100FC, 1000h
loc_CCDB:
2014-08-26 19:23:54 +00:00
mov ah, byte ptr es:[52Dh]
2014-07-01 18:30:39 +00:00
test ah, 10h
jz short loc_CCEB
or word_100FC, 2000h
loc_CCEB:
2014-08-26 19:23:54 +00:00
mov ah, byte ptr es:[530h]
2014-07-01 18:30:39 +00:00
test ah, 10h
jz short loc_CCFA
or word_100FC, 20h
loc_CCFA:
2014-07-01 18:30:39 +00:00
dec bl
jz short locret_CD08
mov cx, 400h
loc_CD01:
2014-07-01 18:30:39 +00:00
out 5Fh, al
loop loc_CD01
jmp loc_CB7E
; ---------------------------------------------------------------------------
locret_CD08:
2014-07-01 18:30:39 +00:00
retf
sub_CB68 endp
include th02/formats/pi_slot_palette_apply.asm
include th02/formats/pi_slot_put.asm
include th03/formats/pi_slot_put_interlace.asm
2014-07-01 18:30:39 +00:00
; =============== S U B R O U T I N E =======================================
sub_CE3E proc far
2014-07-01 18:30:39 +00:00
mov byte_EC7D, 0
mov byte_EC7C, 0FFh
retf
sub_CE3E endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CE4A proc far
2014-07-01 18:30:39 +00:00
arg_0 = word ptr 6
push bp
mov bp, sp
mov dx, [bp+arg_0]
cmp snd_fm_possible, 0
2014-07-01 18:30:39 +00:00
jz short loc_CE82
cmp byte_EC7C, 0FFh
jnz short loc_CE66
mov byte_EC7C, dl
pop bp
retf 2
; ---------------------------------------------------------------------------
loc_CE66:
2014-07-01 18:30:39 +00:00
mov al, byte_EC7C
mov ah, 0
mov bx, ax
mov al, [bx+896h]
mov bx, dx
cmp al, [bx+896h]
ja short loc_CE82
mov byte_EC7C, dl
mov byte_EC7D, 0
loc_CE82:
2014-07-01 18:30:39 +00:00
pop bp
retf 2
sub_CE4A endp
; =============== S U B R O U T I N E =======================================
sub_CE86 proc far
cmp snd_fm_possible, 0
2014-07-01 18:30:39 +00:00
jz short locret_CEC1
cmp byte_EC7C, 0FFh
jz short locret_CEC1
cmp byte_EC7D, 0
jnz short loc_CEA2
mov ah, PMD_SE_PLAY
2014-07-01 18:30:39 +00:00
mov al, byte_EC7C
int 60h ; - Banyan VINES, 3com - GET STATION ADDRESS
; Return: AL = status, 00h successful, ES:SI -> 6-byte station address
; 02h semaphore service is unavailable
loc_CEA2:
2014-07-01 18:30:39 +00:00
inc byte_EC7D
mov al, byte_EC7C
mov ah, 0
mov bx, ax
mov al, [bx+8B7h]
cmp al, byte_EC7D
jnb short locret_CEC1
mov byte_EC7D, 0
mov byte_EC7C, 0FFh
locret_CEC1:
2014-07-01 18:30:39 +00:00
retf
sub_CE86 endp
include th02/hardware/snd_kaja_func.asm
2014-07-01 18:30:39 +00:00
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CEE0 proc far
2014-07-01 18:30:39 +00:00
arg_0 = dword ptr 6
push bp
mov bp, sp
push 4650h
call mem_assign_dos
2014-07-01 18:30:39 +00:00
or ax, ax
jz short loc_CEF6
mov ax, 1
pop bp
retf 4
; ---------------------------------------------------------------------------
loc_CEF6:
2014-10-07 04:32:20 +00:00
nopcall sub_C7E2
call vsync_start
call egc_start
2014-08-27 22:58:40 +00:00
call graph_400line
2014-07-01 18:30:39 +00:00
call sub_2AAE
pushd [bp+arg_0]
call pfstart
2014-07-01 18:30:39 +00:00
xor ax, ax
pop bp
retf 4
sub_CEE0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CF1E proc far
2014-07-01 18:30:39 +00:00
var_4 = dword ptr -4
arg_0 = word ptr 6
arg_2 = dword ptr 8
arg_6 = word ptr 0Ch
enter 4, 0
push si
push di
mov di, [bp+arg_6]
push di
2014-10-07 04:32:20 +00:00
nopcall sub_D130
2014-07-01 18:30:39 +00:00
mov ax, di
shl ax, 4
add ax, 1D0Eh
mov si, ax
pushd [bp+arg_2]
2014-08-30 07:12:17 +00:00
call file_ropen
2014-07-01 18:30:39 +00:00
push ds
push si
push 10h
2014-08-30 07:00:31 +00:00
call file_read
2014-07-01 18:30:39 +00:00
mov ax, [si]
imul ax, 5
movzx eax, ax
mov [bp+var_4], eax
movsx eax, [bp+arg_0]
imul eax, [bp+var_4]
push eax
push 1
call file_seek
2014-07-01 18:30:39 +00:00
push word ptr [si]
call hmem_allocbyte
2014-07-01 18:30:39 +00:00
mov [si+0Ch], ax
push word ptr [si+0Ch]
push 0
push word ptr [si]
2014-08-30 07:00:31 +00:00
call file_read
2014-07-01 18:30:39 +00:00
mov ax, [si]
shl ax, 2
push ax
call hmem_allocbyte
2014-07-01 18:30:39 +00:00
mov [si+0Eh], ax
push word ptr [si+0Eh]
push 0
mov ax, [si]
shl ax, 2
push ax
2014-08-30 07:00:31 +00:00
call file_read
call file_close
2014-07-01 18:30:39 +00:00
pop di
pop si
leave
retf 8
sub_CF1E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_CFA8 proc far
2014-07-01 18:30:39 +00:00
var_4 = dword ptr -4
arg_0 = word ptr 6
arg_2 = dword ptr 8
arg_6 = word ptr 0Ch
enter 4, 0
push si
push di
mov di, [bp+arg_6]
push di
2014-10-07 04:32:20 +00:00
nopcall sub_D130
2014-07-01 18:30:39 +00:00
mov ax, di
shl ax, 4
add ax, 1D0Eh
mov si, ax
pushd [bp+arg_2]
2014-08-30 07:12:17 +00:00
call file_ropen
2014-07-01 18:30:39 +00:00
push ds
push si
push 10h
2014-08-30 07:00:31 +00:00
call file_read
2014-07-01 18:30:39 +00:00
mov ax, [si]
imul ax, 5
movzx eax, ax
mov [bp+var_4], eax
movsx eax, [bp+arg_0]
imul eax, [bp+var_4]
push eax
push 1
call file_seek
2014-07-01 18:30:39 +00:00
movzx eax, word ptr [si]
push eax
push 1
call file_seek
2014-07-01 18:30:39 +00:00
mov word ptr [si+0Ch], 0
mov ax, [si]
shl ax, 2
push ax
call hmem_allocbyte
2014-07-01 18:30:39 +00:00
mov [si+0Eh], ax
push word ptr [si+0Eh]
push 0
mov ax, [si]
shl ax, 2
push ax
2014-08-30 07:00:31 +00:00
call file_read
call file_close
2014-07-01 18:30:39 +00:00
pop di
pop si
leave
retf 8
sub_CFA8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D02E proc far
2014-07-01 18:30:39 +00:00
var_2 = word ptr -2
arg_0 = dword ptr 6
arg_4 = word ptr 0Ah
enter 2, 0
push si
push di
pushd [bp+arg_0]
2014-08-30 07:12:17 +00:00
call file_ropen
2014-07-01 18:30:39 +00:00
push [bp+arg_4]
2014-10-07 04:32:20 +00:00
nopcall sub_D130
2014-07-01 18:30:39 +00:00
mov ax, [bp+arg_4]
shl ax, 4
add ax, 1D0Eh
mov si, ax
push ds
push ax
push 10h
2014-08-30 07:00:31 +00:00
call file_read
2014-07-01 18:30:39 +00:00
mov di, si
mov [bp+var_2], 1
jmp short loc_D071
; ---------------------------------------------------------------------------
loc_D062:
2014-07-01 18:30:39 +00:00
mov ax, [bp+arg_4]
add ax, [bp+var_2]
push ax
2014-10-07 04:32:20 +00:00
nopcall sub_D130
2014-07-01 18:30:39 +00:00
inc [bp+var_2]
loc_D071:
2014-07-01 18:30:39 +00:00
mov al, [di+0Ah]
mov ah, 0
cmp ax, [bp+var_2]
jg short loc_D062
mov [bp+var_2], 0
jmp short loc_D0FD
; ---------------------------------------------------------------------------
loc_D082:
2014-07-01 18:30:39 +00:00
mov ax, [di]
mov [si], ax
mov ax, [di+2]
mov [si+2], ax
mov ax, [di+4]
mov [si+4], ax
mov ax, [di+6]
mov [si+6], ax
mov ax, [di+8]
mov [si+8], ax
mov al, [di+0Ah]
mov [si+0Ah], al
mov byte ptr [si+0Bh], 0
cmp byte_EC84, 0
jnz short loc_D0C7
push word ptr [si]
call hmem_allocbyte
2014-07-01 18:30:39 +00:00
mov [si+0Ch], ax
push word ptr [si+0Ch]
push 0
push word ptr [si]
2014-08-30 07:00:31 +00:00
call file_read
2014-07-01 18:30:39 +00:00
jmp short loc_D0D9
; ---------------------------------------------------------------------------
loc_D0C7:
2014-07-01 18:30:39 +00:00
mov word ptr [si+0Ch], 0
movzx eax, word ptr [si]
push eax
push 1
call file_seek
2014-07-01 18:30:39 +00:00
loc_D0D9:
2014-07-01 18:30:39 +00:00
mov ax, [si]
shl ax, 2
push ax
call hmem_allocbyte
2014-07-01 18:30:39 +00:00
mov [si+0Eh], ax
push word ptr [si+0Eh]
push 0
mov ax, [si]
shl ax, 2
push ax
2014-08-30 07:00:31 +00:00
call file_read
2014-07-01 18:30:39 +00:00
inc [bp+var_2]
add si, 10h
loc_D0FD:
2014-07-01 18:30:39 +00:00
mov al, [di+0Ah]
mov ah, 0
cmp ax, [bp+var_2]
jg loc_D082
call file_close
2014-07-01 18:30:39 +00:00
pop di
pop si
leave
retf 6
sub_D02E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D114 proc far
2014-07-01 18:30:39 +00:00
arg_0 = dword ptr 6
arg_4 = word ptr 0Ah
push bp
mov bp, sp
mov byte_EC84, 1
push [bp+arg_4]
pushd [bp+arg_0]
2014-10-07 04:32:20 +00:00
call sub_D02E
2014-07-01 18:30:39 +00:00
mov byte_EC84, 0
pop bp
retf 6
sub_D114 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D130 proc far
2014-07-01 18:30:39 +00:00
arg_0 = word ptr 6
push bp
mov bp, sp
push si
push di
mov ax, [bp+arg_0]
shl ax, 4
add ax, 1D0Eh
mov di, ax
xor si, si
jmp short loc_D164
; ---------------------------------------------------------------------------
loc_D144:
2014-07-01 18:30:39 +00:00
mov bx, si
add bx, bx
cmp word ptr [bx+di+0Ch], 0
jz short loc_D163
mov bx, si
add bx, bx
push word ptr [bx+di+0Ch]
call hmem_free
2014-07-01 18:30:39 +00:00
mov bx, si
add bx, bx
mov word ptr [bx+di+0Ch], 0
loc_D163:
2014-07-01 18:30:39 +00:00
inc si
loc_D164:
2014-07-01 18:30:39 +00:00
cmp si, 2
jl short loc_D144
pop di
pop si
pop bp
retf 2
sub_D130 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D16F proc far
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
call pfend
2014-07-01 18:30:39 +00:00
mov dx, 0A6h ; '<27>'
mov al, 0
out dx, al
mov dx, 0A4h
out dx, al
call vsync_end
call mem_unassign
2014-08-23 11:46:31 +00:00
call js_end
call egc_start
2014-07-01 18:30:39 +00:00
pop bp
retf
sub_D16F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D197 proc far
2014-07-01 18:30:39 +00:00
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 = dword ptr 6
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
arg_8 = word ptr 0Eh
enter 32h, 0
push si
push di
mov di, [bp+arg_8]
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
push 0C0h
2014-07-01 18:30:39 +00:00
mov ax, [bp+arg_4]
and ax, 0Fh
push ax
call grcg_setcolor
2014-07-01 18:30:39 +00:00
mov dx, 68h ; 'h'
mov al, 0Bh
out dx, al
jmp loc_D3E0
; ---------------------------------------------------------------------------
loc_D1D0:
2014-07-01 18:30:39 +00:00
mov ax, [bp+arg_6]
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_0]
assume es:nothing
mov al, es:[bx]
mov ah, 0
mov bx, ax
test byte ptr [bx+11EFh], 4
jz short loc_D225
mov bx, word ptr [bp+arg_0]
mov al, es:[bx]
cbw
shl ax, 8
mov dl, es:[bx+1]
mov dh, 0
add ax, dx
push ax
call __mbcjmstojis
2014-07-01 18:30:39 +00:00
pop cx
mov [bp+var_2], ax
add word ptr [bp+arg_0], 2
jmp short loc_D26B
; ---------------------------------------------------------------------------
loc_D225:
2014-07-01 18:30:39 +00:00
les bx, [bp+arg_0]
mov al, es:[bx]
mov ah, 0
mov bx, ax
test byte ptr [bx+11EFh], 3
jz short loc_D243
mov bx, word ptr [bp+arg_0]
mov al, es:[bx]
mov ah, 0
add ax, 2980h
jmp short loc_D25E
; ---------------------------------------------------------------------------
loc_D243:
2014-07-01 18:30:39 +00:00
les bx, [bp+arg_0]
mov al, es:[bx]
cbw
mov bx, ax
test byte ptr [bx+0F05h], 5Eh
jz short loc_D263
mov bx, word ptr [bp+arg_0]
mov al, es:[bx]
mov ah, 0
add ax, 2900h
loc_D25E:
2014-07-01 18:30:39 +00:00
mov [bp+var_2], ax
jmp short loc_D268
; ---------------------------------------------------------------------------
loc_D263:
2014-07-01 18:30:39 +00:00
mov [bp+var_2], 2B21h
loc_D268:
2014-07-01 18:30:39 +00:00
inc word ptr [bp+arg_0]
loc_D26B:
2014-07-01 18:30:39 +00:00
mov al, byte ptr [bp+var_2]
and al, 0FFh
mov dx, 0A1h
out dx, al
2014-07-01 18:30:39 +00:00
mov ax, [bp+var_2]
shr ax, 8
sub al, 20h ; ' '
mov dx, 0A3h ; '<27>'
out dx, al
2014-07-01 18:30:39 +00:00
cmp [bp+var_2], 2921h
jb short loc_D2CC
cmp [bp+var_2], 2B7Eh
ja short loc_D2CC
cmp di, 278h
jg loc_D3EB
mov [bp+var_12], 0
jmp short loc_D2BF
; ---------------------------------------------------------------------------
loc_D29D:
2014-07-01 18:30:39 +00:00
mov al, byte ptr [bp+var_12]
or al, 20h
mov dx, 0A5h
out dx, al
mov dx, 0A9h
in al, dx
2014-07-01 18:30:39 +00:00
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_D2BF:
2014-07-01 18:30:39 +00:00
cmp [bp+var_12], 10h
jl short loc_D29D
mov [bp+var_A], 0
jmp short loc_D322
; ---------------------------------------------------------------------------
loc_D2CC:
2014-07-01 18:30:39 +00:00
cmp di, 270h
jg loc_D3EB
mov [bp+var_12], 0
jmp short loc_D317
; ---------------------------------------------------------------------------
loc_D2DB:
2014-07-01 18:30:39 +00:00
mov al, byte ptr [bp+var_12]
or al, 20h
mov dx, 0A5h
out dx, al
mov dx, 0A9h
in al, dx
2014-07-01 18:30:39 +00:00
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
2014-07-01 18:30:39 +00:00
mov al, byte ptr [bp+var_12]
out dx, al
mov dx, 0A9h
in al, dx
2014-07-01 18:30:39 +00:00
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_D317:
2014-07-01 18:30:39 +00:00
cmp [bp+var_12], 10h
jl short loc_D2DB
mov [bp+var_A], 1
loc_D322:
2014-07-01 18:30:39 +00:00
mov [bp+var_12], 0
jmp loc_D3C7
; ---------------------------------------------------------------------------
loc_D32A:
2014-07-01 18:30:39 +00:00
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_D34E
cmp ax, 2
jz short loc_D364
cmp ax, 3
jz short loc_D35A
jmp short loc_D37A
; ---------------------------------------------------------------------------
loc_D34E:
2014-07-01 18:30:39 +00:00
mov si, [bp+var_4]
mov ax, si
add ax, ax
or [bp+var_4], ax
jmp short loc_D37A
; ---------------------------------------------------------------------------
loc_D35A:
2014-07-01 18:30:39 +00:00
mov si, [bp+var_4]
mov ax, si
add ax, ax
or [bp+var_4], ax
loc_D364:
2014-07-01 18:30:39 +00:00
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_D37A:
2014-07-01 18:30:39 +00:00
cmp [bp+var_C], 0
jz short loc_D3AD
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_D3C0
; ---------------------------------------------------------------------------
loc_D3AD:
2014-07-01 18:30:39 +00:00
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_D3C0:
2014-07-01 18:30:39 +00:00
add word ptr [bp+var_8], 50h ; 'P'
inc [bp+var_12]
loc_D3C7:
2014-07-01 18:30:39 +00:00
cmp [bp+var_12], 10h
jl loc_D32A
cmp [bp+var_A], 0
jz short loc_D3D8
add di, 8
loc_D3D8:
2014-07-01 18:30:39 +00:00
mov ax, [bp+var_10]
add ax, 8
add di, ax
loc_D3E0:
2014-07-01 18:30:39 +00:00
les bx, [bp+arg_0]
cmp byte ptr es:[bx], 0
jnz loc_D1D0
loc_D3EB:
2014-07-01 18:30:39 +00:00
mov dx, 68h ; 'h'
mov al, 0Ah
out dx, al
call grcg_off
2014-07-01 18:30:39 +00:00
pop di
pop si
leave
retf 0Ah
sub_D197 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D3FC proc far
2014-07-01 18:30:39 +00:00
arg_0 = word ptr 6
arg_2 = word ptr 8
push bp
mov bp, sp
cmp snd_active, 0
2014-07-01 18:30:39 +00:00
jnz short loc_D412
push [bp+arg_0]
2014-11-23 21:25:22 +00:00
nopcall frame_delay
2014-07-01 18:30:39 +00:00
pop bp
retf 4
; ---------------------------------------------------------------------------
loc_D412:
mov ah, KAJA_GET_SONG_MEASURE
cmp snd_midi_active, 1
2014-07-01 18:30:39 +00:00
jz short loc_D41F
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_D424
; ---------------------------------------------------------------------------
loc_D41F:
mov dx, 0C0h
2014-07-01 18:30:39 +00:00
int 61h ; reserved for user interrupt
loc_D424:
2014-07-01 18:30:39 +00:00
cmp ax, [bp+arg_2]
jb short loc_D412
pop bp
retf 4
sub_D3FC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D42D proc far
2014-07-01 18:30:39 +00:00
arg_0 = word ptr 6
arg_2 = word ptr 8
push bp
mov bp, sp
cmp snd_active, 0
2014-07-01 18:30:39 +00:00
jnz short loc_D443
push [bp+arg_0]
2014-10-07 04:32:20 +00:00
nopcall sub_D47A
2014-07-01 18:30:39 +00:00
pop bp
retf 4
; ---------------------------------------------------------------------------
loc_D443:
mov ah, KAJA_GET_SONG_MEASURE
cmp snd_midi_active, 1
2014-07-01 18:30:39 +00:00
jz short loc_D450
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_D455
; ---------------------------------------------------------------------------
loc_D450:
mov dx, 0C0h
2014-07-01 18:30:39 +00:00
int 61h ; reserved for user interrupt
loc_D455:
2014-10-07 04:32:20 +00:00
nopcall sub_D5A2
2014-07-01 18:30:39 +00:00
test byte ptr word_100FC, 20h
jnz short loc_D468
test byte ptr word_100FC+1, 20h
jz short loc_D46F
loc_D468:
2014-07-01 18:30:39 +00:00
mov ax, 1
pop bp
retf 4
; ---------------------------------------------------------------------------
loc_D46F:
2014-07-01 18:30:39 +00:00
cmp ax, [bp+arg_2]
jb short loc_D443
xor ax, ax
pop bp
retf 4
sub_D42D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D47A proc far
2014-07-01 18:30:39 +00:00
arg_0 = word ptr 6
push bp
mov bp, sp
mov vsync_Count1, 0
2014-07-01 18:30:39 +00:00
loc_D483:
2014-10-07 04:32:20 +00:00
nopcall sub_D5A2
2014-07-01 18:30:39 +00:00
test byte ptr word_100FC, 20h
jnz short loc_D496
test byte ptr word_100FC+1, 20h
jz short loc_D49D
loc_D496:
2014-07-01 18:30:39 +00:00
mov ax, 1
pop bp
retf 2
; ---------------------------------------------------------------------------
loc_D49D:
mov ax, vsync_Count1
2014-07-01 18:30:39 +00:00
cmp ax, [bp+arg_0]
jb short loc_D483
xor ax, ax
pop bp
retf 2
sub_D47A endp
include th02/formats/pi_slot_load.asm
include th03/formats/pi_slot_put_quarter.asm
2014-07-01 18:30:39 +00:00
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D5A2 proc far
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
2014-10-07 04:32:20 +00:00
nopcall sub_CB68
2014-07-01 18:30:39 +00:00
cmp word_E960, 0
jz short loc_D5BD
call sub_2AEA
mov ax, word_F80A
or word_100FC, ax
loc_D5BD:
2014-07-01 18:30:39 +00:00
mov ax, word_100F8
or word_100FC, ax
pop bp
retf
sub_D5A2 endp
; ---------------------------------------------------------------------------
push bp
mov bp, sp
2014-10-07 04:32:20 +00:00
nopcall sub_CB68
2014-07-01 18:30:39 +00:00
pop bp
retf
; ---------------------------------------------------------------------------
push bp
mov bp, sp
2014-10-07 04:32:20 +00:00
nopcall sub_CB68
2014-07-01 18:30:39 +00:00
cmp word_E960, 0
jz short loc_D5F0
call sub_2AEA
mov ax, word_F80A
mov word_100F8, ax
mov ax, word_100FC
mov word_100FA, ax
loc_D5F0:
2014-07-01 18:30:39 +00:00
pop bp
retf
; ---------------------------------------------------------------------------
push bp
mov bp, sp
2014-10-07 04:32:20 +00:00
nopcall sub_CB68
2014-07-01 18:30:39 +00:00
cmp word_E960, 0
jz short loc_D612
call sub_2AEA
mov ax, word_F80A
mov word_100FA, ax
mov ax, word_100FC
mov word_100F8, ax
loc_D612:
2014-07-01 18:30:39 +00:00
pop bp
retf
; ---------------------------------------------------------------------------
push bp
mov bp, sp
2014-10-07 04:32:20 +00:00
nopcall sub_CB68
2014-07-01 18:30:39 +00:00
mov ax, word_100FC
or word_100F8, ax
cmp word_E960, 0
jz short loc_D636
call sub_2AEA
mov ax, word_F80A
or word_100F8, ax
loc_D636:
2014-07-01 18:30:39 +00:00
mov word_100FA, 0
pop bp
retf
; ---------------------------------------------------------------------------
push bp
mov bp, sp
2014-10-07 04:32:20 +00:00
nopcall sub_CB68
2014-07-01 18:30:39 +00:00
mov ax, word_100FC
or ax, word_100F8
mov word_100FA, ax
cmp word_E960, 0
jz short loc_D663
call sub_2AEA
mov ax, word_F80A
or word_100FA, ax
loc_D663:
2014-07-01 18:30:39 +00:00
mov word_100F8, 0
pop bp
retf
; ---------------------------------------------------------------------------
push bp
mov bp, sp
2014-10-07 04:32:20 +00:00
nopcall sub_CB68
2014-07-01 18:30:39 +00:00
test byte ptr word_100FC+1, 10h
jnz short loc_D681
test byte ptr word_100FC+1, 20h
jz short loc_D687
loc_D681:
2014-07-01 18:30:39 +00:00
mov word_100FC, 1000h
loc_D687:
2014-07-01 18:30:39 +00:00
mov word_100F8, 0
mov word_100FA, 0
pop bp
retf
; ---------------------------------------------------------------------------
push bp
mov bp, sp
2014-10-07 04:32:20 +00:00
nopcall sub_CB68
2014-07-01 18:30:39 +00:00
cmp word_E960, 0
jz short loc_D6B0
call sub_2AEA
mov ax, word_F80A
or word_100FC, ax
loc_D6B0:
2014-07-01 18:30:39 +00:00
mov ax, word_100F8
or word_100FC, ax
mov word_100F8, 0
mov word_100FA, 0
pop bp
retf
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D6C5 proc far
2014-07-01 18:30:39 +00:00
arg_0 = word ptr 6
push bp
mov bp, sp
push si
push di
mov si, [bp+arg_0]
xor di, di
loc_D6CF:
2014-10-07 04:32:20 +00:00
call sub_D5A2
2014-07-01 18:30:39 +00:00
cmp word_100FC, 0
jz short loc_D6E3
push 1
2014-11-23 21:25:22 +00:00
nopcall frame_delay
2014-07-01 18:30:39 +00:00
jmp short loc_D6CF
; ---------------------------------------------------------------------------
loc_D6E3:
2014-07-01 18:30:39 +00:00
or si, si
jnz short loc_D707
mov si, 270Fh
jmp short loc_D707
; ---------------------------------------------------------------------------
loc_D6EC:
2014-10-07 04:32:20 +00:00
call sub_D5A2
2014-07-01 18:30:39 +00:00
cmp word_100FC, 0
jnz short loc_D70B
inc di
push 1
2014-11-23 21:25:22 +00:00
nopcall frame_delay
2014-07-01 18:30:39 +00:00
cmp si, 270Fh
jnz short loc_D707
xor di, di
loc_D707:
2014-07-01 18:30:39 +00:00
cmp di, si
jl short loc_D6EC
loc_D70B:
2014-07-01 18:30:39 +00:00
pop di
pop si
pop bp
retf 2
sub_D6C5 endp
; ---------------------------------------------------------------------------
db 0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_D712 proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
2014-07-01 18:30:39 +00:00
push bp
mov bp, sp
push si
push di
mov si, [bp+6]
shl si, 4
add si, 1D0Eh
mov ax, [bp+0Ah]
sar ax, 3
add ax, [si+6]
mov di, ax
mov ax, [si+8]
mov word ptr cs:loc_D758+1, ax
2014-07-01 18:30:39 +00:00
jmp short $+2
shl ax, 2
add ax, 50h ; 'P'
mov dx, ax
mov ax, [bp+8]
mov bx, ax
shl ax, 2
add ax, bx
add ax, 0A800h
mov es, ax
push ds
mov ax, [si+0Eh]
mov ds, ax
xor si, si
mov bx, di
cld
nop
loc_D758:
mov cx, 1234h
rep movsd
sub di, dx
jns short loc_D758
mov di, bx
mov ax, es
add ax, 800h
mov es, ax
assume es:nothing
cmp ax, 0C000h
jb short loc_D758
cmp ax, 0C800h
jnb short loc_D77C
add ax, 2000h
mov es, ax
assume es:nothing
jmp short loc_D758
loc_D77C:
pop ds
pop di
pop si
pop bp
retf 6
sub_D712 endp
2014-07-01 18:30:39 +00:00
; ---------------------------------------------------------------------------
nop
2014-07-01 18:30:39 +00:00
; =============== S U B R O U T I N E =======================================
sub_D784 proc far
2014-07-01 18:30:39 +00:00
push di
xor ax, ax
mov di, 20D6h
xor dl, dl
jmp short loc_D799
; ---------------------------------------------------------------------------
loc_D78E:
2014-07-01 18:30:39 +00:00
xor dl, dl
mov cx, 8
loc_D793:
2014-07-01 18:30:39 +00:00
rol al, 1
rcr dl, 1
loop loc_D793
loc_D799:
2014-07-01 18:30:39 +00:00
mov [di], dl
inc di
inc al
jnz short loc_D78E
pop di
retf
sub_D784 endp
seg002 ends
; ===========================================================================
; Segment type: Pure code
seg003 segment byte public 'CODE' use16
assume cs:seg003
;org 2
assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing
include libs/BorlandC/ctor2[textc].asm
2014-08-30 00:37:53 +00:00
include libs/BorlandC/ctor3[textc].asm
include libs/BorlandC/strings[textc].asm
dd 0
dw 0
2014-07-01 18:30:39 +00:00
seg003 ends
; ===========================================================================
; Segment type: Pure data
dseg segment para public 'DATA' use16
assume cs:dseg
include libs/BorlandC/c0[data].asm
dw offset a00sl_cd2
dw offset a02sl_cd2
dw offset a04sl_cd2
dw offset a06sl_cd2
dw offset a08sl_cd2
dw offset a10sl_cd2
dw offset a12sl_cd2
dw offset a14sl_cd2
dw offset a16sl_cd2
2014-07-01 18:30:39 +00:00
dd a@00tx_txt ; "@00TX.TXT"
dd a@01tx_txt ; "@01TX.TXT"
dd a@02tx_txt ; "@02TX.TXT"
dd a@03tx_txt ; "@03TX.TXT"
dd a@04tx_txt ; "@04TX.TXT"
dd a@05tx_txt ; "@05TX.TXT"
dd a@06tx_txt ; "@06TX.TXT"
dd a@07tx_txt ; "@07TX.TXT"
dd a@08tx_txt ; "@08TX.TXT"
off_E4B6 dd a@00dm0_txt
2014-07-01 18:30:39 +00:00
; "@00DM0.TXT"
CHAR_TITLE dd TITLE_REIMU ; " <20><><EFBFBD>Ɠ`<60><><EFBFBD><EFBFBD><EFBFBD>ێ炷<DB8E><E782B7><EFBFBD>ޏ<EFBFBD> "
CHAR_NAME dd NAME_REIMU ; " <20><><EFBFBD><EFBFBD><EFBFBD>@<40>˖<EFBFBD>"
dd TITLE_MIMA ; " <20>v<EFBFBD><76><EFBFBD>̖<EFBFBD><CC96>ɉ^<5E><><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD><43><EFBFBD><EFBFBD>_ "
dd NAME_MIMA ; " <09><> <20><>"
dd TITLE_MARISA ; " <20><><EFBFBD>@<40>ƍg<C68D><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ鑶<C882><E991B6> "
dd NAME_MARISA ; " <20><><EFBFBD>J<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "
dd TITLE_ELLEN ; "<22>͂<EFBFBD><CD82><EFBFBD><E782AB><EFBFBD>̂ŗ<CC82><C597>𖲌<EFBFBD><F096B28C><EFBFBD><E99682>"
dd NAME_ELLEN ; "<22>@<40>@<40>G<EFBFBD><47><EFBFBD><EFBFBD>"
dd TITLE_KOTOHIME ; " <09>e<EFBFBD><65><EFBFBD>ɔ<EFBFBD><C994>𖲂݂<F096B282><DD82>P "
dd NAME_KOTOHIME ; " <20><><EFBFBD>e<EFBFBD>P"
dd TITLE_KANA ; " <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "
dd NAME_KANA ; "<22>J<EFBFBD>i<EFBFBD>E<EFBFBD>A<EFBFBD>i<EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD>"
dd TITLE_RIKAKO ; " <20>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>T<EFBFBD><54><EFBFBD>Ȋw "
dd NAME_RIKAKO ; "<22>@<40><><EFBFBD>q<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>q"
dd TITLE_CHIYURI ; "<22>@ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E996B2><EFBFBD>̏Z<CC8F>l "
dd NAME_CHIYURI ; " <20>k<EFBFBD><6B><EFBFBD>́@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
dd TITLE_YUMEMI ; "<22>@ <20>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>`<60><><EFBFBD>@<40>@<40>@ "
dd NAME_YUMEMI ; " <20>@<40><><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD><EFBFBD>"
word_E502 dw offset aSt_cd2
word_E504 dw offset aStnx1_pi
2014-07-01 18:30:39 +00:00
a0016_pi db '0016.pi',0
db 0
db 0
db 0
db 0
a00sl_cd2 db '00sl.cd2',0
a02sl_cd2 db '02sl.cd2',0
a04sl_cd2 db '04sl.cd2',0
a06sl_cd2 db '06sl.cd2',0
a08sl_cd2 db '08sl.cd2',0
a10sl_cd2 db '10sl.cd2',0
a12sl_cd2 db '12sl.cd2',0
a14sl_cd2 db '14sl.cd2',0
a16sl_cd2 db '16sl.cd2',0
a@00tx_txt db '@00TX.TXT',0
a@01tx_txt db '@01TX.TXT',0
a@02tx_txt db '@02TX.TXT',0
a@03tx_txt db '@03TX.TXT',0
a@04tx_txt db '@04TX.TXT',0
a@05tx_txt db '@05TX.TXT',0
a@06tx_txt db '@06TX.TXT',0
a@07tx_txt db '@07TX.TXT',0
a@08tx_txt db '@08TX.TXT',0
a@00dm0_txt db '@00DM0.TXT',0
TITLE_REIMU db ' <20><><EFBFBD>Ɠ`<60><><EFBFBD><EFBFBD><EFBFBD>ێ炷<DB8E><E782B7><EFBFBD>ޏ<EFBFBD> ',0
NAME_REIMU db ' <20><><EFBFBD><EFBFBD><EFBFBD>@<40>˖<EFBFBD>',0
TITLE_MIMA db ' <20>v<EFBFBD><76><EFBFBD>̖<EFBFBD><CC96>ɉ^<5E><><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD><43><EFBFBD><EFBFBD>_ ',0
NAME_MIMA db ' <20><> <20><>',0
TITLE_MARISA db ' <20><><EFBFBD>@<40>ƍg<C68D><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ鑶<C882><E991B6> ',0
NAME_MARISA db ' <20><><EFBFBD>J<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
TITLE_ELLEN db '<27>͂<EFBFBD><CD82><EFBFBD><E782AB><EFBFBD>̂ŗ<CC82><C597>𖲌<EFBFBD><F096B28C><EFBFBD><E99682>',0
NAME_ELLEN db '<27>@<40>@<40>G<EFBFBD><47><EFBFBD><EFBFBD>',0
TITLE_KOTOHIME db ' <20>e<EFBFBD><65><EFBFBD>ɔ<EFBFBD><C994>𖲂݂<F096B282><DD82>P ',0
NAME_KOTOHIME db ' <20><><EFBFBD>e<EFBFBD>P',0
TITLE_KANA db ' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
NAME_KANA db '<27>J<EFBFBD>i<EFBFBD>E<EFBFBD>A<EFBFBD>i<EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD>',0
TITLE_RIKAKO db ' <20>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>T<EFBFBD><54><EFBFBD>Ȋw ',0
NAME_RIKAKO db '<27>@<40><><EFBFBD>q<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>q',0
TITLE_CHIYURI db '<27>@ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E996B2><EFBFBD>̏Z<CC8F>l ',0
NAME_CHIYURI db ' <20>k<EFBFBD><6B><EFBFBD>́@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
TITLE_YUMEMI db '<27>@ <20>@<40>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>`<60><><EFBFBD>@<40>@<40>@ ',0
NAME_YUMEMI db ' <20>@<40><><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD><EFBFBD>',0
aYume_cfg db 'YUME.CFG',0
aLogo0_rgb db 'logo0.rgb',0
aLogo_cd2 db 'logo.cd2',0
aLogo5_cdg db 'logo5.cdg',0
aLogo1_rgb db 'logo1.rgb',0
2014-07-01 18:30:39 +00:00
aSt_cd2 db 'st.cd2',0
aStnx1_pi db 'stnx1.pi',0
aStnx0_pi db 'stnx0.pi',0
2014-07-01 18:30:39 +00:00
a00mm_m db '00mm.m',0
aDec_m db 'dec.m',0
aEn2_pi db 'EN2.pi',0
aEnemy00_pi db 'ENEMY00.pi',0
aEnemy01_pi db 'ENEMY01.pi',0
aEnemy02_pi db 'ENEMY02.pi',0
aEnemy03_pi db 'ENEMY03.pi',0
aEnemy04_pi db 'ENEMY04.pi',0
aYume_efc db 'YUME.EFC',0
aCOul db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1.dat',0
aMikoft_bft db 'MIKOFT.bft',0
2014-07-01 18:30:39 +00:00
; char path[]
path db 'op',0
aWin_m db 'win.m',0
2014-07-01 18:30:39 +00:00
; char aMain[]
aMain db 'main',0
2014-08-30 11:44:36 +00:00
include libs/master.lib/atan8[data].asm
2014-08-23 10:08:48 +00:00
include libs/master.lib/bfnt_id[data].asm
include libs/master.lib/clip[data].asm
2014-08-27 22:05:06 +00:00
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
2014-08-31 08:08:09 +00:00
include libs/master.lib/gaiji_entry_bfnt[data].asm
include libs/master.lib/grp[data].asm
word_E960 dw 0
2014-07-01 18:30:39 +00:00
db 0
db 0
db 0
db 0
db 0
db 0
2014-08-23 13:47:05 +00:00
include libs/master.lib/pal[data].asm
include libs/master.lib/pf[data].asm
2014-08-30 10:13:04 +00:00
include libs/master.lib/rand[data].asm
include libs/master.lib/sin8[data].asm
2014-08-15 12:26:44 +00:00
include libs/master.lib/tx[data].asm
include libs/master.lib/vs[data].asm
2014-08-27 23:37:48 +00:00
include libs/master.lib/wordmask[data].asm
include libs/master.lib/mem[data].asm
include libs/master.lib/super_entry_bfnt[data].asm
include libs/master.lib/superpa[data].asm
snd_active db 0
2014-07-01 18:30:39 +00:00
db 0
include libs/master.lib/respal_exist[data].asm
byte_EC7C db 0FFh
byte_EC7D db 0
include th02/formats/pfopen[data].asm
byte_EC84 db 0
2014-07-01 18:30:39 +00:00
db 0
db 0
db 0
db 20h
db 10h
db 2
db 12h
db 12h
db 12h
db 40h
2014-07-01 18:30:39 +00:00
db 10h
db 11h
db 2
db 11h
db 20h
db 12h
db 12h
db 12h
db 12h
db 20h
db 20h
db 12h
db 12h
db 0Eh
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 24h ; $
db 10h
db 4
db 10h
db 8
db 0Ah
db 30h ; 0
db 50h ; P
db 18h
db 11h
db 0Bh
db 4
db 50h ; P
db 10h
db 30h ; 0
db 4Ah ; J
db 32h ; 2
db 20h
db 18h
db 44h ; D
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 30h ; 0
db 0
aOver_pi db 'over.pi',0
2014-07-01 18:30:39 +00:00
db 0
db 0
db 11h
db 11h
db 0
db 0
db 44h ; D
db 44h ; D
db 88h
db 88h
2014-07-01 18:30:39 +00:00
db 11h
db 11h
db 22h ; "
db 22h ; "
db 44h ; D
db 44h ; D
db 0AAh ; <20>
db 0AAh ; <20>
db 55h ; U
db 55h ; U
db 0AAh ; <20>
db 0AAh ; <20>
db 55h ; U
db 55h ; U
db 0EEh
db 0EEh
2014-07-01 18:30:39 +00:00
db 77h ; w
db 77h ; w
db 0BBh
db 0BBh
db 0DDh
db 0DDh
2014-07-01 18:30:39 +00:00
db 20h
db 20h
db 0
db 0
dd aNoEntry ; " No Entry! "
dd aB@b@sCB@b@ ; "<22>@<40>@<40>˖<EFBFBD><CB96>@<40>@"
dd aB@b@cgcvb@b@ ; "<22>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>@<40>@"
dd aB@cvcanB@ ; " <20>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ "
dd aB@gggmgub@ ; " <20>@<40>G<EFBFBD><47><EFBFBD><EFBFBD><EFBFBD>@ "
dd aB@pmuexpb@ ; " <20>@<40><><EFBFBD>e<EFBFBD>P<EFBFBD>@ "
dd aB@Gjgi ; " <20>@ <20>J<EFBFBD>i "
dd aB@canboq ; " <20>@<40><><EFBFBD><EFBFBD><EFBFBD>q "
dd aB@vVfvsb@ ; " <20>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ "
dd aB@CF ; " <20>@ <20><><EFBFBD><EFBFBD><EFBFBD>@ "
db 14h
db 4
db 8
db 0Ch
db 17h
db 0Eh
db 0Eh
db 0Eh
db 0Ch
db 8
db 0Ch
db 0
db 0Eh
db 0Eh
db 0Eh
db 0Eh
db 0Ch
db 0
db 14h
db 8
db 15h
db 0
db 0Eh
db 0Eh
db 4
db 0Bh
db 4
db 10h
db 0Eh
db 0Eh
db 0Eh
db 0Eh
db 0Ah
db 11h
db 16h
db 11h
db 7
db 8
db 0Ch
db 4
db 0Ah
db 0
db 10h
db 0
db 0Eh
db 0Eh
db 0Eh
db 0Eh
db 14h
db 8
db 0Ah
db 0
db 0Ah
db 11h
db 0Eh
db 0Eh
db 2
db 7
db 8
db 1Bh
db 17h
db 14h
db 8
db 0Eh
db 1Bh
db 17h
db 0Ch
db 4
db 0Ch
db 8
db 0Eh
db 0Eh
word_ED66 dw 0A04h
word_ED68 dw 0A0Dh
unk_ED6A db 0
2014-07-01 18:30:39 +00:00
db 0
db 0
db 0
db 0
db 0
db 0
db 0
aNoEntry db ' No Entry! ',0
aB@b@sCB@b@ db '<27>@<40>@<40>˖<EFBFBD><CB96>@<40>@',0
aB@b@cgcvb@b@ db '<27>@<40>@<40><><EFBFBD><EFBFBD><EFBFBD>@<40>@',0
aB@cvcanB@ db ' <20>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ ',0
aB@gggmgub@ db ' <20>@<40>G<EFBFBD><47><EFBFBD><EFBFBD><EFBFBD>@ ',0
aB@pmuexpb@ db ' <20>@<40><><EFBFBD>e<EFBFBD>P<EFBFBD>@ ',0
aB@Gjgi db ' <20>@ <20>J<EFBFBD>i ',0
aB@canboq db ' <20>@<40><><EFBFBD><EFBFBD><EFBFBD>q ',0
aB@vVfvsb@ db ' <20>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ ',0
aB@CF db ' <20>@ <20><><EFBFBD><EFBFBD><EFBFBD>@ ',0
2014-07-01 18:30:39 +00:00
aYume_nem db 'YUME.NEM',0
aRft0_cdg db 'rft0.cdg',0
aRegib_pi db 'regib.pi',0
aRegi2_bft db 'regi2.bft',0
aRegi1_bft db 'regi1.bft',0
aScore_m db 'score.m',0
aConti_pi db 'conti.pi',0
aConti_cd2 db 'conti.cd2',0
aOver_pi_0 db 'over.pi',0
aOver_m db 'over.m',0
2014-07-01 18:30:39 +00:00
db 0
off_EE4E dd a@00ed_txt
2014-07-01 18:30:39 +00:00
; "@00ED.TXT"
db 3Ch ; <
db 0
db 7Eh ; ~
db 0
db 0FFh
db 0
db 0FFh
db 0
db 0FFh
db 0
db 0FFh
db 0
db 7Eh ; ~
db 0
db 3Ch ; <
db 0
db 0
db 0
db 18h
db 0
db 3Ch ; <
db 0
db 7Eh ; ~
db 0
db 7Eh ; ~
db 0
db 3Ch ; <
db 0
db 18h
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 18h
db 0
db 3Ch ; <
db 0
db 3Ch ; <
db 0
db 18h
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 18h
db 0
db 18h
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 22h ; "
db 22h ; "
db 55h ; U
db 55h ; U
db 88h
db 88h
2014-07-01 18:30:39 +00:00
db 55h ; U
db 55h ; U
db 0AAh ; <20>
db 0AAh ; <20>
db 55h ; U
db 55h ; U
db 0AAh ; <20>
db 0AAh ; <20>
db 55h ; U
db 55h ; U
db 0EEh
db 0EEh
2014-07-01 18:30:39 +00:00
db 55h ; U
db 55h ; U
db 0BBh
db 0BBh
2014-07-01 18:30:39 +00:00
db 55h ; U
db 55h ; U
db 0EEh
db 0EEh
2014-07-01 18:30:39 +00:00
db 77h ; w
db 77h ; w
db 0BBh
db 0BBh
db 0DDh
db 0DDh
2014-07-01 18:30:39 +00:00
db 0FFh
db 0FFh
db 55h ; U
db 55h ; U
db 0FFh
db 0FFh
db 55h ; U
db 55h ; U
db 0FFh
db 0FFh
db 0EEh
db 0EEh
2014-07-01 18:30:39 +00:00
db 0FFh
db 0FFh
db 0BBh
db 0BBh
2014-07-01 18:30:39 +00:00
db 0FFh
db 0FFh
db 77h ; w
db 77h ; w
db 0FFh
db 0FFh
db 0FFh
db 0FFh
dd aFocab@sC_0 ; " <20><><EFBFBD><EFBFBD><EFBFBD>@<40>˖<EFBFBD>"
dd aCgCv_0 ; " <09><> <20><>"
dd aCIjb@cvcan_0 ; " <20><><EFBFBD>J<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "
dd aB@b@gggmgu_0 ; "<22>@<40>@<40>G<EFBFBD><47><EFBFBD><EFBFBD>"
dd aPmuexp_0 ; " <20><><EFBFBD>e<EFBFBD>P"
dd aGjgibegagigx_0 ; "<22>J<EFBFBD>i<EFBFBD>E<EFBFBD>A<EFBFBD>i<EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD>"
dd aB@tisqb@canb_0 ; "<22>@<40><><EFBFBD>q<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>q"
dd aCkftiB@vVfvs_0 ; " <20>k<EFBFBD><6B><EFBFBD>́@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
dd aB@iknsb@cF_0 ; " <20>@<40><><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD><EFBFBD>"
dd aVdvbvuvs ; " <20>d<EFBFBD><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
dd aVmvpvtvnvbvm ; " <20>m<EFBFBD><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
dd aVgvbvtvd ; " <20>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
dd aVkvxvovbvfvivg ; "<22>k<EFBFBD><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
dd aVo ; "<22>O"
dd aVp ; "<22>P"
dd aVq ; "<22>Q"
dd aVr ; "<22>R"
dd aVs ; "<22>S"
dd aVt ; "<22>T"
dd aVu ; "<22>U"
dd aVv ; "<22>V"
dd aVw ; "<22>W"
dd aVx ; "<22>X"
a@00ed_txt db '@00ED.TXT',0
a@99ed_txt db '@99ED.TXT',0
2014-07-01 18:30:39 +00:00
; char aOp_0[]
aOp_0 db 'op',0
aFocab@sC_0 db ' <20><><EFBFBD><EFBFBD><EFBFBD>@<40>˖<EFBFBD>',0
aCgCv_0 db ' <20><> <20><>',0
aCIjb@cvcan_0 db ' <20><><EFBFBD>J<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
aB@b@gggmgu_0 db '<27>@<40>@<40>G<EFBFBD><47><EFBFBD><EFBFBD>',0
aPmuexp_0 db ' <20><><EFBFBD>e<EFBFBD>P',0
aGjgibegagigx_0 db '<27>J<EFBFBD>i<EFBFBD>E<EFBFBD>A<EFBFBD>i<EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD>',0
aB@tisqb@canb_0 db '<27>@<40><><EFBFBD>q<EFBFBD>@<40><><EFBFBD><EFBFBD><EFBFBD>q',0
aCkftiB@vVfvs_0 db ' <20>k<EFBFBD><6B><EFBFBD>́@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
aB@iknsb@cF_0 db ' <20>@<40><><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD><EFBFBD>',0
aVdvbvuvs db ' <20>d<EFBFBD><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
aVmvpvtvnvbvm db ' <20>m<EFBFBD><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
aVgvbvtvd db ' <20>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
aVkvxvovbvfvivg db '<27>k<EFBFBD><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
aVo db '<27>O',0
aVp db '<27>P',0
aVq db '<27>Q',0
aVr db '<27>R',0
aVs db '<27>S',0
aVt db '<27>T',0
aVu db '<27>U',0
aVv db '<27>V',0
aVw db '<27>W',0
aVx db '<27>X',0
aU_ db '<27>_',0
aEd_m db 'ed.m',0
aEdbk1_rgb db 'edbk1.rgb',0
aStf1_cdg db 'stf1.cdg',0
aStf11_cdg db 'stf11.cdg',0
aStf3_cdg db 'stf3.cdg',0
aStf4_cdg db 'stf4.cdg',0
aStf5_cdg db 'stf5.cdg',0
aStf6_cdg db 'stf6.cdg',0
aStf7_cdg db 'stf7.cdg',0
aStf8_cdg db 'stf8.cdg',0
aStf9_cdg db 'stf9.cdg',0
aStf10_cdg db 'stf10.cdg',0
aStf2_cdg db 'stf2.cdg',0
aStf12_cdg db 'stf12.cdg',0
include libs/BorlandC/_abort[data].asm
include libs/BorlandC/atexit[data].asm
2014-08-20 15:53:02 +00:00
include libs/BorlandC/exit[data].asm
include libs/BorlandC/files[data].asm
include libs/BorlandC/ioerror[data].asm
include libs/BorlandC/new[data].asm
include libs/BorlandC/stklen[data].asm
include libs/BorlandC/ctype[data].asm
include libs/BorlandC/xxv[data].asm
include libs/BorlandC/cputype[data].asm
include libs/BorlandC/fbrk[data].asm
include libs/BorlandC/signal[data].asm
include libs/BorlandC/pathops[data].asm
2014-09-04 18:54:06 +00:00
include libs/BorlandC/srchenv[data].asm
2014-09-04 18:29:49 +00:00
include libs/BorlandC/srchstr[data].asm
2014-09-03 12:02:14 +00:00
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/xx[data].asm
2014-08-18 12:33:24 +00:00
include libs/BorlandC/setenvp[data].asm
include libs/BorlandC/strings[data].asm
include libs/BorlandC/mbctype[data].asm
2014-09-06 16:48:39 +00:00
include libs/BorlandC/loadprog[data].asm
InitStart label byte
include libs/BorlandC/new[initdata].asm
include libs/BorlandC/setupio[initdata].asm
include libs/BorlandC/cputype[initdata].asm
include libs/BorlandC/pathops[initdata].asm
2014-08-18 12:33:24 +00:00
include libs/BorlandC/setenvp[initdata].asm
InitEnd label byte
ExitStart label byte
include libs/BorlandC/new[exitdata].asm
ExitEnd label byte
bdata@ label byte
; TODO: Missing clip[bss].asm (8 bytes) somewhere in there...
unk_F72C db ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
2014-07-01 18:30:39 +00:00
db ? ;
db ? ;
db ? ;
byte_F768 db ?
unk_F769 db ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
2014-07-01 18:30:39 +00:00
db ? ;
db ? ;
db ? ;
byte_F7A5 db ?
unk_F7A6 db ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
2014-07-01 18:30:39 +00:00
db ? ;
db ? ;
db ? ;
byte_F7E2 db ?
byte_F7E3 db ?
byte_F7E4 db ?
byte_F7E5 db ?
dd ? ;
dd ? ;
dd ? ;
dd ? ;
include libs/master.lib/fil[bss].asm
word_F80A dw ?
2014-07-01 18:30:39 +00:00
db ? ;
db ? ;
2014-08-23 13:47:05 +00:00
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
dword_10050 dd ?
dword_10054 dd ?
dword_10058 dd ?
dword_1005C dd ?
include th02/hardware/snd[bss].asm
include th02/hardware/snd_load[bss].asm
include libs/master.lib/pfint21[bss].asm
word_100F8 dw ?
word_100FA dw ?
word_100FC 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 ? ;
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 ? ;
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 ? ;
include th02/formats/pi_slots[bss].asm
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 ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dword_105C6 dd ?
dword_105CA dd ?
byte_105CE db ?
db ?
word_105D0 dw ?
word_105D2 dw ?
word_105D4 dw ?
byte_105D6 db ?
byte_105D7 db ?
word_105D8 dw ?
dword_105DA dd ?
word_105DE dw ?
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
dd ? ;
byte_10630 db ?
byte_10631 db ?
dd ? ;
byte_10636 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 ? ;
2014-07-01 18:30:39 +00:00
db ? ;
db ? ;
db ? ;
byte_106AA db ?
byte_106AB db ?
word_106AC dw ?
dw ?
byte_106B0 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 ? ;
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 ? ;
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 ? ;
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 ? ;
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 ? ;
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 ? ;
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 ? ;
2014-07-01 18:30:39 +00:00
db ? ;
word_10BB2 dw ?
byte_10BB4 db ?
byte_10BB5 db ?
byte_10BB6 db ?
dd ? ;
2014-07-01 18:30:39 +00:00
db ? ;
word_10BBC dw ?
word_10BBE dw ?
word_10BC0 dw ?
word_10BC2 dw ?
word_10BC4 dw ?
byte_10BC6 db ?
byte_10BC7 db ?
word_10BC8 dw ?
word_10BCA dw ?
byte_10BCC db ?
dd ? ;
2014-07-01 18:30:39 +00:00
db ? ;
byte_10BD2 db ?
byte_10BD3 db ?
byte_10BD4 db ?
2014-07-01 18:30:39 +00:00
db ?
byte_10BD6 db ?
byte_10BD7 db ?
byte_10BD8 db ?
2014-07-01 18:30:39 +00:00
db ? ;
include libs/BorlandC/atexit[bss].asm
include libs/BorlandC/sigdata[bss].asm
include libs/BorlandC/xxv[bss].asm
include libs/BorlandC/signal[bss].asm
include libs/BorlandC/xx[bss].asm
edata@ label byte
2014-07-01 18:30:39 +00:00
dseg ends
include libs/BorlandC/stack.asm
2014-07-01 18:30:39 +00:00
end startx