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
|
|
|
|
|
|
2014-09-22 20:19:29 +00:00
|
|
|
|
CGROUP00 group seg000
|
|
|
|
|
CGROUP01 group seg001
|
|
|
|
|
CGROUP02 group seg002
|
|
|
|
|
CGROUP03 group seg003
|
2014-10-31 06:17:05 +00:00
|
|
|
|
|
|
|
|
|
.286 ; Force the .model directive to create 16-bit default segments...
|
2014-07-01 18:30:39 +00:00
|
|
|
|
.model large
|
2014-10-31 06:17:05 +00:00
|
|
|
|
__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
|
|
|
|
|
2014-08-22 15:06:33 +00:00
|
|
|
|
include ReC98.inc
|
2014-11-15 01:03:41 +00:00
|
|
|
|
include th03/th03.asm
|
Include RULES.ASI from every executable's dump file.
Having thought this over for a while, I've decided to stay with the "include
slice" model for now, due to various bugs and other reasons.
We need to compile for the 386 CPU, but this causes TASM to automatically
default every segment to 32-bit mode, which of course is not what we want (and
no, .MODEL USE16 sadly does not help either). Appending USE16 to every segment
declaration in all included files seems to work, but for some reason, this
messes up certain jump instructions. WTF? And even if it did work, we would
still have to do this for every single file we include.
The alternative would be to build proper libraries and let the linker merge
all the code. This would add a lot of unwarranted complexity to the build
process. Not to mention all the EXTERN statements we'd have to maintain.
Ultimately, all of the C runtime ASM code is going to vanish anyway once we've
completed the reduction step. Once we're there, we can simply link to the
original version of the library. These initial dumps are not pretty, and I see
no point in wasting time on making intermediary stages of development look
pretty.
Since including RULES.ASI from every slice seems a bit inefficient (and even
potentiall harmful, considering the age of the development tools we have to
work with), we'll only include it once at the top of every main dump file.
[Binary change] Relocations in TH01's REIIDEN.EXE, again.
2014-08-14 06:01:36 +00:00
|
|
|
|
|
2014-07-01 18:30:39 +00:00
|
|
|
|
; ===========================================================================
|
|
|
|
|
|
|
|
|
|
; Segment type: Pure code
|
2014-08-20 13:25:40 +00:00
|
|
|
|
seg000 segment word public 'CODE' use16
|
2014-07-01 18:30:39 +00:00
|
|
|
|
assume cs:seg000
|
2014-11-02 18:37:37 +00:00
|
|
|
|
assume es:nothing, ss:_STACK, ds:dseg, fs:nothing, gs:nothing
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-19 20:33:43 +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
|
2014-08-23 10:23:03 +00:00
|
|
|
|
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
|
2014-08-23 11:18:32 +00:00
|
|
|
|
include libs/master.lib/bfnt_header_analysis.asm
|
2014-08-26 18:54:57 +00:00
|
|
|
|
include libs/master.lib/bcloser.asm
|
2014-08-10 09:47:36 +00:00
|
|
|
|
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
|
2014-08-27 00:54:57 +00:00
|
|
|
|
include libs/master.lib/bopenr.asm
|
2014-08-26 19:34:06 +00:00
|
|
|
|
include libs/master.lib/bread.asm
|
2014-08-26 20:04:11 +00:00
|
|
|
|
include libs/master.lib/bseek.asm
|
2014-08-26 20:15:00 +00:00
|
|
|
|
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
|
2014-08-20 20:24:05 +00:00
|
|
|
|
include libs/master.lib/egc.asm
|
2014-08-30 05:58:36 +00:00
|
|
|
|
include libs/master.lib/file_append.asm
|
2014-08-30 06:15:42 +00:00
|
|
|
|
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
|
2014-08-30 07:21:44 +00:00
|
|
|
|
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
|
2014-08-21 20:07:58 +00:00
|
|
|
|
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
|
2014-08-27 04:52:58 +00:00
|
|
|
|
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
|
2014-08-31 08:23:41 +00:00
|
|
|
|
include libs/master.lib/gaiji_backup.asm
|
2014-08-31 08:08:09 +00:00
|
|
|
|
include libs/master.lib/gaiji_entry_bfnt.asm
|
2014-08-31 07:40:28 +00:00
|
|
|
|
include libs/master.lib/gaiji_read.asm
|
2014-08-31 07:50:38 +00:00
|
|
|
|
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
|
2014-09-14 15:39:30 +00:00
|
|
|
|
include libs/master.lib/graph_gaiji_putc.asm
|
2014-08-21 23:39:42 +00:00
|
|
|
|
include libs/master.lib/graph_pi_free.asm
|
2014-08-22 19:15:44 +00:00
|
|
|
|
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
|
2014-08-27 03:18:17 +00:00
|
|
|
|
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
|
2014-08-30 10:33:48 +00:00
|
|
|
|
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
|
2014-08-23 01:15:17 +00:00
|
|
|
|
include libs/master.lib/rottbl.asm
|
2014-08-21 22:59:18 +00:00
|
|
|
|
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
|
2014-10-20 15:20:04 +00:00
|
|
|
|
include libs/master.lib/text_clear.asm
|
2014-08-26 20:02:09 +00:00
|
|
|
|
include libs/master.lib/text_fillca.asm
|
2014-08-26 21:58:08 +00:00
|
|
|
|
include libs/master.lib/vsync.asm
|
2014-08-26 22:11:29 +00:00
|
|
|
|
include libs/master.lib/vsync_wait.asm
|
2014-08-26 22:52:29 +00:00
|
|
|
|
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
|
2014-08-21 21:30:20 +00:00
|
|
|
|
include libs/master.lib/mem_assign_dos.asm
|
2014-08-21 21:05:54 +00:00
|
|
|
|
include libs/master.lib/mem_assign.asm
|
2014-08-21 22:17:53 +00:00
|
|
|
|
include libs/master.lib/memheap.asm
|
2014-09-08 18:30:15 +00:00
|
|
|
|
include libs/master.lib/mem_unassign.asm
|
2014-08-22 21:45:21 +00:00
|
|
|
|
include libs/master.lib/super_free.asm
|
2014-08-22 22:17:59 +00:00
|
|
|
|
include libs/master.lib/super_entry_pat.asm
|
2014-08-22 21:56:33 +00:00
|
|
|
|
include libs/master.lib/super_entry_at.asm
|
2014-08-23 16:07:02 +00:00
|
|
|
|
include libs/master.lib/super_entry_bfnt.asm
|
2014-08-22 21:33:18 +00:00
|
|
|
|
include libs/master.lib/super_cancel_pat.asm
|
2014-08-28 00:13:13 +00:00
|
|
|
|
include libs/master.lib/super_put.asm
|
2014-09-03 13:23:51 +00:00
|
|
|
|
include libs/master.lib/respal_exist.asm
|
2014-09-03 14:08:44 +00:00
|
|
|
|
include libs/master.lib/respal_set_palettes.asm
|
2014-11-16 03:00:41 +00:00
|
|
|
|
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 =======================================
|
|
|
|
|
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_2AAE proc far
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov cx, 100h
|
|
|
|
|
mov dx, 188h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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 =======================================
|
|
|
|
|
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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 =======================================
|
|
|
|
|
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov bl, 80h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_2AD8
|
|
|
|
|
and ax, 3Fh
|
|
|
|
|
mov si, ax
|
|
|
|
|
popf
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-17 03:54:40 +00:00
|
|
|
|
include th03/formats/pfopen.asm
|
|
|
|
|
include libs/master.lib/pf_str_ieq.asm
|
2014-12-17 11:58:35 +00:00
|
|
|
|
include libs/master.lib/graph_pack_put_8_noclip.asm
|
2014-10-12 16:36:15 +00:00
|
|
|
|
include libs/BorlandC/_abort.asm
|
2014-08-20 15:03:08 +00:00
|
|
|
|
include libs/BorlandC/stpcpy.asm
|
2014-09-02 19:45:19 +00:00
|
|
|
|
include libs/BorlandC/abort.asm
|
2014-08-19 22:36:43 +00:00
|
|
|
|
include libs/BorlandC/atexit.asm
|
2014-08-28 23:26:20 +00:00
|
|
|
|
include libs/BorlandC/del.asm
|
2014-08-28 23:35:20 +00:00
|
|
|
|
include libs/BorlandC/delarray.asm
|
2014-08-20 19:22:56 +00:00
|
|
|
|
include libs/BorlandC/dosenv.asm
|
2014-08-20 19:38:31 +00:00
|
|
|
|
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
|
2014-08-20 16:09:26 +00:00
|
|
|
|
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
|
2014-10-20 15:20:04 +00:00
|
|
|
|
include libs/BorlandC/ioerror.asm
|
2014-08-14 14:50:20 +00:00
|
|
|
|
include libs/BorlandC/_isatty.asm
|
2014-08-21 23:55:05 +00:00
|
|
|
|
include libs/BorlandC/lseek.asm
|
2014-08-29 08:50:30 +00:00
|
|
|
|
include libs/BorlandC/new.asm
|
2014-08-14 17:35:29 +00:00
|
|
|
|
include libs/BorlandC/N_LXMUL.ASM
|
2014-08-14 17:41:19 +00:00
|
|
|
|
include libs/BorlandC/N_PCMP.ASM
|
2014-08-18 17:50:20 +00:00
|
|
|
|
include libs/BorlandC/setupio.asm
|
2014-09-01 07:28:45 +00:00
|
|
|
|
include libs/BorlandC/tolower.asm
|
2014-09-01 08:10:31 +00:00
|
|
|
|
include libs/BorlandC/toupper.asm
|
2014-08-29 01:08:23 +00:00
|
|
|
|
include libs/BorlandC/xxas.asm
|
2014-09-01 11:51:23 +00:00
|
|
|
|
include libs/BorlandC/xxv.asm
|
2014-08-29 03:58:32 +00:00
|
|
|
|
include libs/BorlandC/cputype.asm
|
2014-08-13 12:28:44 +00:00
|
|
|
|
include libs/BorlandC/FARHEAP.ASM
|
2014-08-15 19:48:43 +00:00
|
|
|
|
include libs/BorlandC/fbrk.asm
|
2014-08-21 18:50:15 +00:00
|
|
|
|
include libs/BorlandC/signal.asm
|
2014-11-09 10:58:33 +00:00
|
|
|
|
include libs/BorlandC/_access.asm
|
2014-09-03 21:23:25 +00:00
|
|
|
|
include libs/BorlandC/pathops.asm
|
2014-08-19 22:48:05 +00:00
|
|
|
|
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
|
2014-08-27 05:50:37 +00:00
|
|
|
|
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
|
2014-08-14 08:07:12 +00:00
|
|
|
|
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
|
2014-08-10 03:57:11 +00:00
|
|
|
|
include libs/BorlandC/_strlen.asm
|
2014-08-14 08:34:14 +00:00
|
|
|
|
include libs/BorlandC/strrchr.asm
|
2014-08-22 17:28:05 +00:00
|
|
|
|
include libs/BorlandC/write.asm
|
2014-08-22 00:40:56 +00:00
|
|
|
|
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
|
2014-08-29 01:59:26 +00:00
|
|
|
|
include libs/BorlandC/xmsg.asm
|
2014-08-29 05:47:55 +00:00
|
|
|
|
include libs/BorlandC/xx.asm
|
2014-09-03 17:13:47 +00:00
|
|
|
|
include libs/BorlandC/doscmd.asm
|
2014-08-16 06:48:26 +00:00
|
|
|
|
include libs/BorlandC/exec.asm
|
2014-09-06 17:08:18 +00:00
|
|
|
|
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
|
2014-08-30 01:50:38 +00:00
|
|
|
|
include libs/BorlandC/ctor2.asm
|
2014-08-30 00:37:53 +00:00
|
|
|
|
include libs/BorlandC/ctor3.asm
|
2014-08-29 10:47:43 +00:00
|
|
|
|
include libs/BorlandC/strings.asm
|
2014-09-04 17:24:14 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-30 06:15:42 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_965E:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, byte_F7E4
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_96A5:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, byte_F7E4
|
|
|
|
|
jmp short loc_96AD
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_96AA:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, byte_F7E3
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
2014-08-30 07:21:44 +00:00
|
|
|
|
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
|
2014-08-30 06:15:42 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_973E proc near
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 500110h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 2Fh ; '/'
|
|
|
|
|
push ds
|
|
|
|
|
push offset unk_F72C
|
|
|
|
|
call sub_D197
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 500120h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 2Fh ; '/'
|
|
|
|
|
push ds
|
|
|
|
|
push offset unk_F769
|
|
|
|
|
call sub_D197
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_977E:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push si
|
|
|
|
|
call sub_D130
|
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-08-27 04:03:08 +00:00
|
|
|
|
call graph_clear
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov dx, 0A4h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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-08-27 03:18:17 +00:00
|
|
|
|
call graph_show
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 160012Ch
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 0
|
2014-11-12 22:11:16 +00:00
|
|
|
|
call sub_D712
|
2014-11-27 18:35:54 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 60010h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_D3FC
|
|
|
|
|
mov si, 1
|
|
|
|
|
jmp short loc_97FC
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_97E8:
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 160012Ch
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push si
|
2014-11-12 22:11:16 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_97FC:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp si, 5
|
|
|
|
|
jl short loc_97E8
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0A0040h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_D3FC
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov PaletteTone, 0C8h
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0E00040h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 6
|
2014-11-12 22:11:16 +00:00
|
|
|
|
call sub_D712
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 160012Ch
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 5
|
2014-11-12 22:11:16 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0B0004h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_D3FC
|
|
|
|
|
push 1
|
2014-08-26 22:52:29 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_98A1:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov ax, 1
|
|
|
|
|
leave
|
|
|
|
|
retn
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_990C proc near
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
|
|
|
|
var_1 = byte ptr -1
|
|
|
|
|
|
|
|
|
|
enter 2, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov dx, 0A4h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dx, 0A6h ; '<27>'
|
|
|
|
|
mov al, 1
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_99CB:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov bx, word_E504
|
|
|
|
|
mov [bx+4], al
|
|
|
|
|
jmp short loc_99F1
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_99F1:
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_load pascal, 0, ds, offset aStnx0_pi
|
2014-12-18 13:36:43 +00:00
|
|
|
|
call pi_slot_put pascal, large 0, 0
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_load pascal, 0, ds, word_E504
|
2014-12-18 13:36:43 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-12-16 04:53:56 +00:00
|
|
|
|
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
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 600060h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 0
|
2014-11-12 22:11:16 +00:00
|
|
|
|
call sub_C9D4
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1600060h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 1
|
2014-11-12 22:11:16 +00:00
|
|
|
|
call sub_CA88
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp byte_F7E5, 0
|
|
|
|
|
jnz short loc_9A8E
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 180002Eh
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 2
|
2014-11-12 22:11:16 +00:00
|
|
|
|
call sub_C9D4
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 500124h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 2Fh ; '/'
|
|
|
|
|
mov bx, [bp+var_4]
|
|
|
|
|
shl bx, 2
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd CHAR_TITLE[bx]
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_D197
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 800134h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 2Fh ; '/'
|
|
|
|
|
mov bx, [bp+var_4]
|
|
|
|
|
shl bx, 2
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1500124h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 2Fh ; '/'
|
|
|
|
|
mov bx, [bp+var_4]
|
|
|
|
|
shl bx, 2
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd CHAR_TITLE[bx]
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_D197
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1800134h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 2Fh ; '/'
|
|
|
|
|
mov bx, [bp+var_4]
|
|
|
|
|
shl bx, 2
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
2014-08-26 20:52:26 +00:00
|
|
|
|
mov vsync_Count1, 0
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dx, 0A6h ; '<27>'
|
|
|
|
|
mov al, 1
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_load pascal, 0, ds, offset aEn2_pi
|
2014-12-18 13:36:43 +00:00
|
|
|
|
call pi_slot_put_interlace pascal, large 280, 0
|
2014-11-18 16:56:13 +00:00
|
|
|
|
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]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9B97:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 0
|
|
|
|
|
push ds
|
|
|
|
|
push offset aEnemy00_pi ; "ENEMY00.pi"
|
|
|
|
|
jmp short loc_9BBD
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9B9F:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 0
|
|
|
|
|
push ds
|
|
|
|
|
push offset aEnemy01_pi ; "ENEMY01.pi"
|
|
|
|
|
jmp short loc_9BBD
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9BA7:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 0
|
|
|
|
|
push ds
|
|
|
|
|
push offset aEnemy02_pi ; "ENEMY02.pi"
|
|
|
|
|
jmp short loc_9BBD
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9BAF:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 0
|
|
|
|
|
push ds
|
|
|
|
|
push offset aEnemy03_pi ; "ENEMY03.pi"
|
|
|
|
|
jmp short loc_9BBD
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9BB7:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 0
|
|
|
|
|
push ds
|
|
|
|
|
push offset aEnemy04_pi ; "ENEMY04.pi"
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9BBD:
|
2014-11-18 16:56:13 +00:00
|
|
|
|
call pi_slot_load
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9BC2:
|
2014-12-18 13:36:43 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-27 18:35:54 +00:00
|
|
|
|
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
|
2014-11-29 23:18:40 +00:00
|
|
|
|
push SND_LOAD_SONG
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push ds
|
|
|
|
|
push si
|
|
|
|
|
jmp short loc_9C25
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9C1E:
|
2014-11-29 23:18:40 +00:00
|
|
|
|
push SND_LOAD_SONG
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push ds
|
|
|
|
|
push [bp+var_2]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9C25:
|
2014-11-29 23:18:40 +00:00
|
|
|
|
call snd_load
|
2014-07-01 18:30:39 +00:00
|
|
|
|
add sp, 6
|
2014-11-29 23:18:40 +00:00
|
|
|
|
call snd_load c, offset aYume_efc, ds, SND_LOAD_SE
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov word_100FC, 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9C42:
|
2014-08-26 20:52:26 +00:00
|
|
|
|
cmp vsync_Count1, 20h ; ' '
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jbe short loc_9C42
|
|
|
|
|
jmp short loc_9C50
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9C4B:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_D5A2
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9C50:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp vsync_Count1, 60h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
ja short loc_9C5E
|
|
|
|
|
cmp word_100FC, 0
|
|
|
|
|
jz short loc_9C4B
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-08-27 04:03:08 +00:00
|
|
|
|
call graph_clear
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 1
|
2014-08-26 22:52:29 +00:00
|
|
|
|
call palette_white_in
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 200005h
|
2014-08-26 20:02:09 +00:00
|
|
|
|
call text_fillca
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_palette_apply pascal, 0
|
2014-11-18 16:56:13 +00:00
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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]
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_load pascal, 0, large [bp+arg_0]
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov ax, si
|
2014-12-18 13:36:43 +00:00
|
|
|
|
imul ax, 320
|
|
|
|
|
call pi_slot_put_interlace pascal, ax, (200 shl 16)
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2014-07-01 18:30:39 +00:00
|
|
|
|
les bx, [bp+arg_0]
|
2014-12-18 13:36:43 +00:00
|
|
|
|
mov byte ptr es:[bx+2], 'e'
|
|
|
|
|
mov byte ptr es:[bx+3], 'x'
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_load pascal, 0, word ptr [bp+arg_0+2], bx
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov ax, si
|
2014-12-18 13:36:43 +00:00
|
|
|
|
imul ax, 320
|
|
|
|
|
call pi_slot_put_interlace pascal, ax, (208 shl 16)
|
2014-11-18 16:56:13 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9D2D:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, [si+116h]
|
|
|
|
|
mov [bp+si+var_E], al
|
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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)
|
2014-08-10 01:44:54 +00:00
|
|
|
|
_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
|
2014-09-03 13:23:51 +00:00
|
|
|
|
call respal_exist
|
2014-11-24 21:36:57 +00:00
|
|
|
|
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
|
2014-11-28 23:56:26 +00:00
|
|
|
|
call snd_determine_mode
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9DAD:
|
2014-08-31 08:23:41 +00:00
|
|
|
|
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
|
2014-11-29 23:18:40 +00:00
|
|
|
|
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
|
2014-08-31 08:23:41 +00:00
|
|
|
|
call gaiji_restore
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_C990
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9E3F:
|
2014-11-29 23:18:40 +00:00
|
|
|
|
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
|
2014-11-27 18:35:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9E75:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_9A2C
|
|
|
|
|
jmp loc_9F1E
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9E89:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_9776
|
2014-11-18 16:56:13 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9EF1:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dx, 0A6h ; '<27>'
|
|
|
|
|
mov al, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
|
|
|
|
mov dx, 0A4h
|
|
|
|
|
out dx, al
|
2014-08-27 04:03:08 +00:00
|
|
|
|
call graph_clear
|
2014-08-27 03:18:17 +00:00
|
|
|
|
call graph_show
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
2014-08-31 08:23:41 +00:00
|
|
|
|
call gaiji_restore
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9F1E:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_D16F
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd 0
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset aMain ; "main"
|
|
|
|
|
push ds
|
|
|
|
|
push offset aMain ; "main"
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9F2E:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call _execl
|
|
|
|
|
add sp, 0Ch
|
|
|
|
|
leave
|
|
|
|
|
retf
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9F38:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_9776
|
2014-11-18 16:56:13 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9F58:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_9776
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9F69:
|
2014-08-20 14:45:24 +00:00
|
|
|
|
call text_clear
|
2014-08-31 08:23:41 +00:00
|
|
|
|
call gaiji_restore
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_C990
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9F85:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_990C
|
|
|
|
|
jmp loc_9E75
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_9FC8:
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00110h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 0
|
2014-11-12 22:11:16 +00:00
|
|
|
|
call sub_D712
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1600110h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 3
|
2014-11-12 22:11:16 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
|
|
|
|
2014-08-10 01:44:54 +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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00110h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
add ax, ax
|
|
|
|
|
mov dx, 2
|
|
|
|
|
sub dx, ax
|
|
|
|
|
push dx
|
2014-11-12 22:11:16 +00:00
|
|
|
|
call sub_D712
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1600110h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov ax, si
|
|
|
|
|
add ax, ax
|
|
|
|
|
inc ax
|
|
|
|
|
push ax
|
2014-11-12 22:11:16 +00:00
|
|
|
|
call sub_D712
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_2], 1
|
|
|
|
|
jmp short loc_A05B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A056:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_2], 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A069:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp si, 1
|
|
|
|
|
jnz short loc_A0C5
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00000h
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_setcolor
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 2400173h
|
|
|
|
|
push 2500183h
|
2014-08-28 03:31:57 +00:00
|
|
|
|
call grcg_boxfill
|
2014-08-27 04:52:58 +00:00
|
|
|
|
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]
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A0C5:
|
2014-11-27 18:35:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_load pascal, 0, ds, offset aOver_pi
|
|
|
|
|
call pi_slot_palette_apply pascal, 0
|
2014-12-18 13:36:43 +00:00
|
|
|
|
call pi_slot_put pascal, large 0, 0
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2014-11-27 18:35:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-21 22:17:53 +00:00
|
|
|
|
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
|
2014-08-30 06:15:42 +00:00
|
|
|
|
call file_close
|
2014-07-01 18:30:39 +00:00
|
|
|
|
xor ax, ax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-21 22:17:53 +00:00
|
|
|
|
call hmem_free
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dword_105C6, 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_A193 proc near
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2014-08-20 20:24:05 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A1EC:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_2], 0
|
|
|
|
|
jmp short loc_A21B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A1F3:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dx, 0A6h ; '<27>'
|
|
|
|
|
mov al, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A21B:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp [bp+var_2], 28h ; '('
|
|
|
|
|
jl short loc_A1F3
|
|
|
|
|
inc di
|
|
|
|
|
add si, 28h ; '('
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A225:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp di, 0C8h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jl short loc_A1EC
|
2014-08-20 20:24:05 +00:00
|
|
|
|
call egc_off
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dx, 0A6h ; '<27>'
|
|
|
|
|
mov al, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-18 16:56:13 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
add word ptr [bp+var_8], 0A0h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jmp short loc_A26F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov dx, 0A4h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, 1
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-07-01 18:30:39 +00:00
|
|
|
|
xor di, di
|
|
|
|
|
jmp loc_A34E
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A2B4:
|
2014-12-17 11:58:35 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A31E:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp [bp+var_2], 14h
|
|
|
|
|
jl short loc_A301
|
2014-08-20 20:24:05 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A34E:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp di, 0C8h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jl loc_A2B4
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov dx, 0A4h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 3C00h
|
2014-08-21 22:17:53 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A398:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_2], 50h ; 'P'
|
|
|
|
|
mov [bp+var_6], 0
|
|
|
|
|
jmp loc_A424
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A424:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp [bp+var_6], 3Ch ; '<'
|
|
|
|
|
jl loc_A3A5
|
|
|
|
|
inc [bp+var_4]
|
|
|
|
|
inc di
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A430:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-21 22:17:53 +00:00
|
|
|
|
call hmem_free
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dword_105CA, 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A4FE:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd [bp+arg_0]
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_A50A
|
|
|
|
|
pop bp
|
|
|
|
|
retn 4
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_A45B
|
|
|
|
|
mov dx, 0A6h ; '<27>'
|
|
|
|
|
mov al, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_A45B
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A67C:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jmp word ptr cs:[bx+20h] ; switch jump
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A6C4:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
inc word ptr dword_105C6
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_A45B
|
|
|
|
|
mov dx, 0A6h ; '<27>'
|
|
|
|
|
mov al, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_A45B
|
|
|
|
|
jmp loc_AC1E ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A71F:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov byte_105D7, 0
|
|
|
|
|
jmp loc_AC1E ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A727:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov byte_105D7, 10h
|
|
|
|
|
jmp loc_AC1E ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A72F:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov byte_105D7, 20h ; ' '
|
|
|
|
|
jmp loc_AC1E ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A737:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov byte_105D7, 30h ; '0'
|
|
|
|
|
jmp loc_AC1E ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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]
|
2014-08-26 22:52:29 +00:00
|
|
|
|
call palette_white_in
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jmp loc_AB90
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A78C:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A7C4:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push [bp+var_2]
|
|
|
|
|
call sub_D47A
|
|
|
|
|
jmp loc_AB90
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A814:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push [bp+var_2]
|
|
|
|
|
push [bp+var_4]
|
|
|
|
|
call sub_D42D
|
|
|
|
|
jmp loc_AB63
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov dx, 0A4h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, byte ptr [bp+var_2]
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jmp loc_AC1E ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
2014-08-10 01:44:54 +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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A91A:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 18Ch
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A930:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
inc [bp+var_4]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-09-14 15:39:30 +00:00
|
|
|
|
call graph_gaiji_putc
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dx, 0A6h ; '<27>'
|
|
|
|
|
mov al, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-09-14 15:39:30 +00:00
|
|
|
|
call graph_gaiji_putc
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_A5FC
|
|
|
|
|
jmp loc_AC1E ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A9B8:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dx, 0A6h ; '<27>' ; jumptable 0000A67C case 64
|
|
|
|
|
mov al, 1
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp [bp+arg_0], 40h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jnz short loc_AA1B
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A9EB:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dx, 0A6h ; '<27>'
|
|
|
|
|
mov al, 1
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp [bp+arg_0], 3Dh ; '='
|
|
|
|
|
jnz short loc_A9FE
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_palette_apply pascal, 0
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A9FE:
|
2014-12-18 13:36:43 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_A36B
|
|
|
|
|
jmp loc_AC1E ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AA1B:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp [bp+arg_0], 2Dh ; '-'
|
|
|
|
|
jnz short loc_AA32
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jmp loc_AC1E ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AA32:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp [bp+arg_0], 70h ; 'p'
|
|
|
|
|
jnz short loc_AA42
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_palette_apply pascal, 0
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jmp loc_AB90
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AA4F:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_2], 0
|
|
|
|
|
jmp short loc_AA84
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AA84:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp [bp+var_2], 0Ch
|
|
|
|
|
jl short loc_AA56
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-18 16:56:13 +00:00
|
|
|
|
call pi_slot_load
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jmp loc_AC1E ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov dx, 0A4h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, 1
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dx, 0A6h ; '<27>'
|
|
|
|
|
mov al, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp [bp+var_2], 4
|
|
|
|
|
jge short loc_AAD5
|
|
|
|
|
jmp short loc_AB44
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AAD5:
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00000h
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_setcolor
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 140040h
|
|
|
|
|
push 3B0107h
|
2014-08-27 21:20:37 +00:00
|
|
|
|
call grcg_byteboxfill_x
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_off
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jmp short loc_AB54
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB16:
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB32:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB33:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp si, 4
|
|
|
|
|
jl short loc_AB16
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov dx, 0A4h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, 1
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dx, 0A6h ; '<27>'
|
|
|
|
|
mov al, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB44:
|
2014-12-18 13:36:43 +00:00
|
|
|
|
call pi_slot_put_quarter pascal, (160 shl 16) + 64, 0, [bp+var_2]
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB54:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov dx, 0A4h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0A00040h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_A1C7
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB63:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jmp loc_AC1E ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-27 18:35:54 +00:00
|
|
|
|
push (KAJA_SONG_STOP shl 8)
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jmp short loc_AB8B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB7F:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp [bp+arg_0], 2Ah ; '*'
|
|
|
|
|
jnz short loc_AB93
|
|
|
|
|
inc word ptr dword_105C6
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB89:
|
2014-11-27 18:35:54 +00:00
|
|
|
|
push (KAJA_SONG_PLAY shl 8)
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB8B:
|
[Reverse-engineering] PMD and MMD function call wrapper
Well, the naming.
Even though only TH02 actually uses MIDI (and thus, the MMD driver), every
game since then contains interrupt instructions for both functions. We could
just name it "pmd", since it seems like that's what came first - the AH
numbers of the 6 functions that make up MMD's interrupt API are identical to
those of the equivalent functions in PMD, even including gaps in the numbering
for PMD functions that don't have an equivalent in MIDI. However, except for
the FM sound effect handling and the key display in TH05's Music Room, these 6
functions are all the games actually use. Also, we already distinguish between
PMD and MMD in the driver check functions, and it might be confusing to only
imply PMD from now on?
So, "kaja" it is, collectively referring to the shared aspects of both
drivers.
2014-11-26 19:03:58 +00:00
|
|
|
|
call snd_kaja_func
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB90:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jmp loc_AC1E ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ABD4:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp [bp+var_2], 0Ch
|
|
|
|
|
jl short loc_ABA6
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_STOP
|
2014-11-29 23:18:40 +00:00
|
|
|
|
push SND_LOAD_SONG
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_16]
|
|
|
|
|
push ax
|
2014-11-29 23:18:40 +00:00
|
|
|
|
call snd_load
|
2014-07-01 18:30:39 +00:00
|
|
|
|
add sp, 6
|
|
|
|
|
jmp short loc_AB89
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AC1A:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, 0FFh ; jumptable 0000A67C case 36
|
|
|
|
|
jmp short loc_AC20
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AC1E:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, 0 ; default
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AC20:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 2
|
|
|
|
|
sub_A64D endp
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
db 0
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ACB6:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov byte_105CE, 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AD8F:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
or si, si
|
|
|
|
|
jnz short loc_AD94
|
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AD9A:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
inc [bp+var_2]
|
|
|
|
|
jmp loc_ACA3
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ADD1:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ADF3:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
xor di, di
|
|
|
|
|
jmp short loc_AE02
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AE02:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp di, 8
|
|
|
|
|
jl short loc_ADF7
|
|
|
|
|
xor di, di
|
|
|
|
|
jmp short loc_AE16
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AE53:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push si
|
|
|
|
|
call sub_AEF0
|
|
|
|
|
call sub_ADA9
|
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AE71:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, [si]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add cx, ax
|
|
|
|
|
inc dx
|
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AE79:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AE89:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-30 06:15:42 +00:00
|
|
|
|
call file_close
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jmp short loc_AEE9
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-30 07:21:44 +00:00
|
|
|
|
call file_seek
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset word_105DE
|
2014-09-18 15:20:12 +00:00
|
|
|
|
push 0CEh
|
2014-08-30 07:00:31 +00:00
|
|
|
|
call file_read
|
2014-08-30 06:15:42 +00:00
|
|
|
|
call file_close
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_ADA9
|
|
|
|
|
call sub_AE64
|
|
|
|
|
or al, al
|
|
|
|
|
jz short loc_AEEC
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AEE9:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_ADE5
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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'
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AF2A:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov si, 21F0h
|
|
|
|
|
xor di, di
|
|
|
|
|
jmp short loc_AF3A
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AF3A:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov di, 0CBh
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jmp short loc_AF73
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-30 07:21:44 +00:00
|
|
|
|
call file_seek
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset word_105DE
|
2014-09-18 15:20:12 +00:00
|
|
|
|
push 0CEh
|
2014-08-30 07:38:09 +00:00
|
|
|
|
call file_write
|
2014-08-30 06:15:42 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
|
|
|
|
mov dx, 0A4h
|
|
|
|
|
out dx, al
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_load pascal, 0, ds, offset aRegib_pi
|
|
|
|
|
call pi_slot_palette_apply pascal, 0
|
2014-12-18 13:36:43 +00:00
|
|
|
|
call pi_slot_put pascal, large 0, 0
|
2014-11-18 16:56:13 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1400138h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 0
|
2014-11-12 22:11:16 +00:00
|
|
|
|
call sub_C9D4
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 0
|
|
|
|
|
call sub_D130
|
|
|
|
|
push ds
|
|
|
|
|
push offset aRegi2_bft ; "regi2.bft"
|
2014-08-23 16:07:02 +00:00
|
|
|
|
call super_entry_bfnt
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset aRegi1_bft ; "regi1.bft"
|
2014-08-23 16:07:02 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B046:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov cx, 7
|
|
|
|
|
jmp short loc_B08C
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B08C:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
or cx, cx
|
|
|
|
|
jge short loc_B04B
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B090:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B0A1:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp si, 9
|
|
|
|
|
jge short loc_B100
|
|
|
|
|
mov di, 8
|
|
|
|
|
jmp short loc_B0FC
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B0AB:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
xor cx, cx
|
|
|
|
|
jmp short loc_B0C6
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B0C6:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp cx, 8
|
|
|
|
|
jl short loc_B0AF
|
|
|
|
|
xor cx, cx
|
|
|
|
|
jmp short loc_B0E6
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B0FC:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp di, si
|
|
|
|
|
jge short loc_B0AB
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B100:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
xor cx, cx
|
|
|
|
|
jmp short loc_B111
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B111:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp cx, 8
|
|
|
|
|
jl short loc_B104
|
|
|
|
|
mov cx, 1
|
|
|
|
|
jmp short loc_B133
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B197:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov si, 40h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jmp short loc_B1AC
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B19C:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
push [bp+var_2]
|
2014-08-28 00:13:13 +00:00
|
|
|
|
call super_put
|
2014-07-01 18:30:39 +00:00
|
|
|
|
add si, 20h ; ' '
|
|
|
|
|
inc [bp+var_2]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B1AC:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp si, 240h
|
|
|
|
|
jl short loc_B19C
|
|
|
|
|
add di, 18h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B21F:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dx, 0A6h ; '<27>'
|
|
|
|
|
mov al, 1
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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'
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B2C1:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push di
|
|
|
|
|
push [bp+arg_4]
|
|
|
|
|
push si
|
2014-08-28 00:13:13 +00:00
|
|
|
|
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
|
2014-08-28 00:13:13 +00:00
|
|
|
|
call super_put
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B306:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
xor ax, ax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B315:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, 4
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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 ; ' '
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B389:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
dec [bp+var_2]
|
|
|
|
|
add si, 18h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B3DA:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
dec [bp+var_2]
|
|
|
|
|
add si, 10h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B43C:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 18h
|
|
|
|
|
push di
|
|
|
|
|
push si
|
|
|
|
|
call sub_B2EF
|
|
|
|
|
inc si
|
|
|
|
|
add di, 14h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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'
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B4E9:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_C], 1
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B4ED:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
inc [bp+var_A]
|
|
|
|
|
jmp short loc_B4F7
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B4F2:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_A], 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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'
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B533:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_C], 1
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B537:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
inc [bp+var_8]
|
|
|
|
|
jmp short loc_B541
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B53C:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_8], 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B588:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
sub [bp+var_2], 2
|
|
|
|
|
jmp short loc_B591
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B58E:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
dec [bp+var_2]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B591:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_C], 1
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B595:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
inc [bp+var_6]
|
|
|
|
|
jmp short loc_B59F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B59A:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_6], 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B5E7:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
add [bp+var_2], 2
|
|
|
|
|
jmp short loc_B5F0
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B5ED:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
inc [bp+var_2]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B5F0:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_C], 1
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B5F4:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
inc [bp+var_4]
|
|
|
|
|
jmp short loc_B5FE
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B5F9:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_4], 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B676:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
dec [bp+var_E]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B679:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_C], 1
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B67D:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_D], 1
|
|
|
|
|
jmp short loc_B687
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B683:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_D], 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B6C5:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_C], 1
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B6C9:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_F], 1
|
|
|
|
|
jmp short loc_B6D3
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B6CF:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_F], 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B738:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_C], 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
2014-08-10 01:44:54 +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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B769:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp cx, 8
|
|
|
|
|
jl short loc_B758
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B79C:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
or cx, cx
|
|
|
|
|
jge short loc_B78B
|
|
|
|
|
jmp short loc_B7CE
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B7C7:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp cx, 8
|
|
|
|
|
jl short loc_B7B4
|
|
|
|
|
jmp short loc_B76E
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-29 23:18:40 +00:00
|
|
|
|
call snd_load c, offset aScore_m, ds, SND_LOAD_SONG
|
2014-11-27 18:35:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B819:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_B03D
|
|
|
|
|
mov word_106AC, ax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B871:
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_FADE, 16
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +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
|
2014-08-22 21:45:21 +00:00
|
|
|
|
call super_free
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dx, 0A6h ; '<27>'
|
|
|
|
|
mov al, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_load pascal, 0, ds, offset aConti_pi
|
|
|
|
|
call pi_slot_palette_apply pascal, 0
|
2014-12-18 13:36:43 +00:00
|
|
|
|
call pi_slot_put pascal, large 0, 0
|
2014-11-18 16:56:13 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B8F1:
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_load pascal, 0, ds, offset aOver_pi_0
|
|
|
|
|
call pi_slot_palette_apply pascal, 0
|
2014-12-18 13:36:43 +00:00
|
|
|
|
call pi_slot_put pascal, large 0, 0
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call snd_delay_until_volume stdcall, 255
|
2014-07-01 18:30:39 +00:00
|
|
|
|
pop cx
|
2014-11-27 18:35:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_B92E proc near
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_STOP
|
2014-11-29 23:18:40 +00:00
|
|
|
|
call snd_load c, offset aOver_m, ds, SND_LOAD_SONG
|
2014-11-27 18:35:54 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
2014-11-27 18:35:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-18 16:56:13 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
|
|
|
|
mov dx, 0A4h
|
|
|
|
|
out dx, al
|
2014-08-27 04:03:08 +00:00
|
|
|
|
call graph_clear
|
2014-08-27 03:18:17 +00:00
|
|
|
|
call graph_show
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-08-27 04:03:08 +00:00
|
|
|
|
call graph_clear
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov dx, 0A4h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BA66:
|
2014-08-20 14:45:24 +00:00
|
|
|
|
call text_clear
|
2014-08-31 08:23:41 +00:00
|
|
|
|
call gaiji_restore
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_C990
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BB71:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov byte ptr [si], 0
|
|
|
|
|
inc ax
|
|
|
|
|
add si, 10h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BC16:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
inc di
|
|
|
|
|
add si, 10h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BC5F:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
inc dx
|
|
|
|
|
add si, 10h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BC94:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
inc di
|
|
|
|
|
add si, 10h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-28 23:56:26 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BCB9:
|
2014-11-27 18:35:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp word_10BB2, 0C0h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jle short loc_BCCF
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BCCA:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov ax, 1
|
|
|
|
|
jmp short loc_BCD1
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BCCF:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
xor ax, ax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-26 20:52:26 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BCFE:
|
2014-08-26 20:52:26 +00:00
|
|
|
|
cmp vsync_Count1, 0
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jz short loc_BCFE
|
2014-08-26 20:52:26 +00:00
|
|
|
|
mov vsync_Count1, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov dx, 0A4h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, byte_10BB4
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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>'
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BD65:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push [bp+arg_6]
|
|
|
|
|
push [bp+arg_4]
|
|
|
|
|
push [bp+arg_2]
|
2014-11-12 22:11:16 +00:00
|
|
|
|
call sub_D712
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jmp short loc_BD83
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BD75:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push [bp+arg_6]
|
|
|
|
|
push [bp+arg_4]
|
|
|
|
|
push [bp+arg_2]
|
2014-11-12 22:11:16 +00:00
|
|
|
|
call sub_C9D4
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +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]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp word_10BB2, 0A1h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jg loc_BF78
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BF57:
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00000h
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_setcolor
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 10008h
|
|
|
|
|
push 4E0187h
|
2014-08-27 21:20:37 +00:00
|
|
|
|
call grcg_byteboxfill_x
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_off
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C00E:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov word_10BB2, 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00000h
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_setcolor
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 10008h
|
|
|
|
|
push 4E0187h
|
2014-08-27 21:20:37 +00:00
|
|
|
|
call grcg_byteboxfill_x
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_off
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_BCD5
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00000h
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_setcolor
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 10008h
|
|
|
|
|
push 4E0187h
|
2014-08-27 21:20:37 +00:00
|
|
|
|
call grcg_byteboxfill_x
|
2014-08-27 04:52:58 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C0D6:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov word_10BB2, 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C114:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C12A:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push si
|
|
|
|
|
call sub_BEC7
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C14A:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp byte_10BB4, 0
|
|
|
|
|
jnz short loc_C155
|
|
|
|
|
dec word_10BC2
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C155:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov byte_10BC7, 1
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C173:
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00000h
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_setcolor
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 10008h
|
|
|
|
|
push 4E0187h
|
2014-08-27 21:20:37 +00:00
|
|
|
|
call grcg_byteboxfill_x
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_off
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C194:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov byte_10BC7, 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00000h
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_setcolor
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 10008h
|
|
|
|
|
push 4E0187h
|
2014-08-27 21:20:37 +00:00
|
|
|
|
call grcg_byteboxfill_x
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_off
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_BCD5
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00000h
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_setcolor
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 10008h
|
|
|
|
|
push 4E0187h
|
2014-08-27 21:20:37 +00:00
|
|
|
|
call grcg_byteboxfill_x
|
2014-08-27 04:52:58 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C237:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov word_10BB2, 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd dword ptr [bx+0AE2h]
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_D197
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C2F7:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp [bp+var_4], 0
|
|
|
|
|
jz short loc_C316
|
|
|
|
|
push si
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0E0002Fh
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov bx, di
|
|
|
|
|
shl bx, 2
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd dword ptr [bx+0B16h]
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_D197
|
|
|
|
|
add si, 10h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C316:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
dec [bp+var_2]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0E0002Fh
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov bx, di
|
|
|
|
|
shl bx, 2
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd dword ptr [bx+0B16h]
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_D197
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 19800F8h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 2Fh ; '/'
|
|
|
|
|
mov bx, di
|
|
|
|
|
shl bx, 2
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 123002Fh
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov bx, di
|
|
|
|
|
shl bx, 2
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd dword ptr [bx+0B16h]
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_D197
|
|
|
|
|
add si, 10h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C3B4:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp [bp+var_4], 0
|
|
|
|
|
jz short loc_C3D3
|
|
|
|
|
push si
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 123002Fh
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov bx, di
|
|
|
|
|
shl bx, 2
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd dword ptr [bx+0B16h]
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_D197
|
|
|
|
|
add si, 10h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 123002Fh
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov bx, di
|
|
|
|
|
shl bx, 2
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd dword ptr [bx+0B16h]
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_D197
|
|
|
|
|
lea ax, [si+10h]
|
|
|
|
|
push ax
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C40D proc near
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push si
|
|
|
|
|
push di
|
2014-11-27 18:35:54 +00:00
|
|
|
|
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
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call snd_delay_until_volume stdcall, 255
|
2014-07-01 18:30:39 +00:00
|
|
|
|
pop cx
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_STOP
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov byte_106B0, 50h ; 'P'
|
|
|
|
|
mov si, 1
|
|
|
|
|
jmp short loc_C44B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C4C0:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp byte_10BD4, 0
|
|
|
|
|
jz short loc_C4CC
|
|
|
|
|
mov byte_10BD8, 64h ; 'd'
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C4CC:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp byte_10BD8, 64h ; 'd'
|
|
|
|
|
jbe short loc_C4D8
|
|
|
|
|
mov byte_10BD8, 64h ; 'd'
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C4D8:
|
2014-11-29 23:18:40 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00008h
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_setcolor
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dx, 0A6h ; '<27>'
|
|
|
|
|
mov al, 1
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd 0
|
|
|
|
|
push 4F018Fh
|
2014-08-27 21:20:37 +00:00
|
|
|
|
call grcg_byteboxfill_x
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00000h
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_setcolor
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dx, 0A6h ; '<27>'
|
|
|
|
|
mov al, 1
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 10008h
|
|
|
|
|
push 4E0187h
|
2014-08-27 21:20:37 +00:00
|
|
|
|
call grcg_byteboxfill_x
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_off
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov dx, 0A4h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, 1
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-11-27 18:35:54 +00:00
|
|
|
|
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
|
2014-08-26 20:52:26 +00:00
|
|
|
|
mov vsync_Count1, 0
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C657:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_BB51
|
|
|
|
|
call sub_BCD5
|
|
|
|
|
inc word_10BB2
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd 8
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 0Ah
|
|
|
|
|
call sub_BFB2
|
|
|
|
|
mov word_10BBC, 1
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov word_10BBE, 0A1h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov byte_10BB6, 0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 10010h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 14h
|
|
|
|
|
call sub_BFB2
|
|
|
|
|
mov word_10BC4, 20h ; ' '
|
|
|
|
|
mov word_10BC0, 0A8h ; '<27>'
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 20016h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 18h
|
|
|
|
|
call sub_C1FD
|
|
|
|
|
mov byte_10BC6, 7
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov word_10BC0, 0D8h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov word_10BC4, 0FFF0h
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 30020h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 22h ; '"'
|
|
|
|
|
call sub_C097
|
|
|
|
|
mov byte_10BC6, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov word_10BC0, 0C8h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov word_10BC4, 0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 40024h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 26h ; '&'
|
|
|
|
|
call sub_BFB2
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0B002Ah
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 2Ch ; ','
|
|
|
|
|
call sub_BFB2
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 50030h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 32h ; '2'
|
|
|
|
|
call sub_BFB2
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 60036h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 38h ; '8'
|
|
|
|
|
call sub_BFB2
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0A003Ch
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 3Eh ; '>'
|
|
|
|
|
call sub_BFB2
|
|
|
|
|
mov word_10BB2, 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C735:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_BB51
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1400080h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 8
|
|
|
|
|
call sub_BF7E
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C000F0h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push 9
|
|
|
|
|
call sub_BF7E
|
|
|
|
|
call sub_BCD5
|
|
|
|
|
inc word_10BB2
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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>'
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_C288
|
|
|
|
|
mov dx, 0A6h ; '<27>'
|
|
|
|
|
mov al, byte_10BB4
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-07-01 18:30:39 +00:00
|
|
|
|
call sub_C288
|
|
|
|
|
mov word_10BB2, 0
|
|
|
|
|
xor di, di
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-27 18:35:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C7CD:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
xor si, si
|
|
|
|
|
jmp short loc_C7D8
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C7D1:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push si
|
|
|
|
|
call sub_D130
|
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-22 08:29:09 +00:00
|
|
|
|
db 0
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
|
|
|
|
seg001 ends
|
|
|
|
|
|
|
|
|
|
; ===========================================================================
|
|
|
|
|
|
|
|
|
|
; Segment type: Pure code
|
2014-11-22 08:29:09 +00:00
|
|
|
|
seg002 segment word public 'CODE' use16
|
2014-07-01 18:30:39 +00:00
|
|
|
|
assume cs:seg002
|
2014-11-22 08:29:09 +00:00
|
|
|
|
;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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-11-28 23:56:26 +00:00
|
|
|
|
include th02/hardware/snd_determine_mode.asm
|
2014-11-24 21:36:57 +00:00
|
|
|
|
include th02/hardware/snd_pmd_resident.asm
|
2014-11-25 20:21:17 +00:00
|
|
|
|
include th02/hardware/snd_delay_until_volume.asm
|
2014-11-29 23:18:40 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C990 proc far
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2014-11-16 03:00:41 +00:00
|
|
|
|
call pfend
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dx, 0A6h ; '<27>'
|
|
|
|
|
mov al, 1
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
|
|
|
|
mov dx, 0A4h
|
|
|
|
|
out dx, al
|
2014-08-26 21:58:08 +00:00
|
|
|
|
call vsync_end
|
2014-09-08 18:30:15 +00:00
|
|
|
|
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
|
2014-08-20 20:24:05 +00:00
|
|
|
|
call egc_start
|
2014-07-01 18:30:39 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retf
|
|
|
|
|
sub_C990 endp
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
db 0
|
|
|
|
|
|
2014-11-12 22:11:16 +00:00
|
|
|
|
; =============== 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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00000h
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_setcolor
|
2014-11-12 22:11:16 +00:00
|
|
|
|
mov si, [bp+arg_0]
|
2014-07-01 18:30:39 +00:00
|
|
|
|
shl si, 4
|
|
|
|
|
add si, 1D0Eh
|
|
|
|
|
mov ax, [si+0Eh]
|
2014-11-12 22:11:16 +00:00
|
|
|
|
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
|
2014-11-12 22:11:16 +00:00
|
|
|
|
mov word ptr cs:loc_CA44+1, ax
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov ax, [si+8]
|
2014-11-12 22:11:16 +00:00
|
|
|
|
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'
|
2014-11-12 22:11:16 +00:00
|
|
|
|
mov word ptr cs:loc_CA32+1, ax
|
2014-07-01 18:30:39 +00:00
|
|
|
|
jmp short $+2
|
2014-11-12 22:11:16 +00:00
|
|
|
|
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
|
2014-11-12 22:11:16 +00:00
|
|
|
|
|
|
|
|
|
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
|
|
|
|
; ---------------------------------------------------------------------------
|
2014-11-12 22:11:16 +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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00000h
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_setcolor
|
2014-11-12 22:11:16 +00:00
|
|
|
|
mov si, [bp+arg_0]
|
2014-07-01 18:30:39 +00:00
|
|
|
|
shl si, 4
|
|
|
|
|
add si, 1D0Eh
|
2014-11-12 22:11:16 +00:00
|
|
|
|
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
|
2014-11-12 22:11:16 +00:00
|
|
|
|
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
|
2014-11-12 22:11:16 +00:00
|
|
|
|
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
|
2014-11-12 22:11:16 +00:00
|
|
|
|
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
|
2014-11-12 22:11:16 +00:00
|
|
|
|
assume es:nothing
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov bx, 20D6h
|
|
|
|
|
mov fs, word ptr [si+0Ch]
|
|
|
|
|
xor si, si
|
2014-11-12 22:11:16 +00:00
|
|
|
|
|
|
|
|
|
loc_CAEE:
|
|
|
|
|
mov dx, 1234h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
nop
|
2014-11-12 22:11:16 +00:00
|
|
|
|
|
|
|
|
|
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
|
2014-11-12 22:11:16 +00:00
|
|
|
|
|
|
|
|
|
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
|
|
|
|
; ---------------------------------------------------------------------------
|
2014-11-12 22:11:16 +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 =======================================
|
|
|
|
|
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CB8D:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
test ah, 20h
|
|
|
|
|
jz short loc_CB97
|
|
|
|
|
or word_100FC, 2
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CC62:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
test ah, 10h
|
|
|
|
|
jz short loc_CC6D
|
|
|
|
|
or word_100F8, 200h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CC6D:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
test ah, 20h
|
|
|
|
|
jz short loc_CC77
|
|
|
|
|
or word_100F8, 2
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CC77:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
test ah, 40h
|
|
|
|
|
jz short loc_CC82
|
|
|
|
|
or word_100F8, 800h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CC91:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
test ah, 4
|
|
|
|
|
jz short loc_CC9B
|
|
|
|
|
or word_100F8, 8
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CCAB:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
test ah, 10h
|
|
|
|
|
jz short loc_CCB5
|
|
|
|
|
or word_100F8, 1
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CCB5:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
test ah, 20h
|
|
|
|
|
jz short loc_CCC0
|
|
|
|
|
or word_100F8, 400h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CCC0:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
test ah, 1
|
|
|
|
|
jz short loc_CCCB
|
|
|
|
|
or word_100FC, 4000h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CCFA:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
dec bl
|
|
|
|
|
jz short locret_CD08
|
|
|
|
|
mov cx, 400h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CD01:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
out 5Fh, al
|
|
|
|
|
loop loc_CD01
|
|
|
|
|
jmp loc_CB7E
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
locret_CD08:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
retf
|
|
|
|
|
sub_CB68 endp
|
|
|
|
|
|
2014-11-22 08:29:09 +00:00
|
|
|
|
include th02/formats/pi_slot_palette_apply.asm
|
2014-12-18 13:36:43 +00:00
|
|
|
|
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 =======================================
|
|
|
|
|
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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]
|
2014-11-24 21:36:57 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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 =======================================
|
|
|
|
|
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_CE86 proc far
|
2014-11-24 21:36:57 +00:00
|
|
|
|
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
|
2014-11-27 18:35:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
locret_CEC1:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
retf
|
|
|
|
|
sub_CE86 endp
|
|
|
|
|
|
[Reverse-engineering] PMD and MMD function call wrapper
Well, the naming.
Even though only TH02 actually uses MIDI (and thus, the MMD driver), every
game since then contains interrupt instructions for both functions. We could
just name it "pmd", since it seems like that's what came first - the AH
numbers of the 6 functions that make up MMD's interrupt API are identical to
those of the equivalent functions in PMD, even including gaps in the numbering
for PMD functions that don't have an equivalent in MIDI. However, except for
the FM sound effect handling and the key display in TH05's Music Room, these 6
functions are all the games actually use. Also, we already distinguish between
PMD and MMD in the driver check functions, and it might be confusing to only
imply PMD from now on?
So, "kaja" it is, collectively referring to the shared aspects of both
drivers.
2014-11-26 19:03:58 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_CEE0 proc far
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
|
|
|
|
arg_0 = dword ptr 6
|
|
|
|
|
|
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push 4650h
|
2014-08-21 21:30:20 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CEF6:
|
2014-10-07 04:32:20 +00:00
|
|
|
|
nopcall sub_C7E2
|
2014-08-26 21:58:08 +00:00
|
|
|
|
call vsync_start
|
2014-08-20 20:24:05 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd [bp+arg_0]
|
2014-11-16 03:00:41 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
2014-08-30 07:21:44 +00:00
|
|
|
|
call file_seek
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push word ptr [si]
|
2014-08-21 22:17:53 +00:00
|
|
|
|
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
|
2014-08-21 22:17:53 +00:00
|
|
|
|
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-08-30 06:15:42 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
2014-08-30 07:21:44 +00:00
|
|
|
|
call file_seek
|
2014-07-01 18:30:39 +00:00
|
|
|
|
movzx eax, word ptr [si]
|
|
|
|
|
push eax
|
|
|
|
|
push 1
|
2014-08-30 07:21:44 +00:00
|
|
|
|
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
|
2014-08-21 22:17:53 +00:00
|
|
|
|
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-08-30 06:15:42 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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]
|
2014-08-21 22:17:53 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-30 07:21:44 +00:00
|
|
|
|
call file_seek
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D0D9:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov ax, [si]
|
|
|
|
|
shl ax, 2
|
|
|
|
|
push ax
|
2014-08-21 22:17:53 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-30 06:15:42 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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]
|
2014-11-19 11:09:22 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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]
|
2014-08-21 22:17:53 +00:00
|
|
|
|
call hmem_free
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov bx, si
|
|
|
|
|
add bx, bx
|
|
|
|
|
mov word ptr [bx+di+0Ch], 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D163:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_D16F proc far
|
2014-07-01 18:30:39 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2014-11-16 03:00:41 +00:00
|
|
|
|
call pfend
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dx, 0A6h ; '<27>'
|
|
|
|
|
mov al, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
|
|
|
|
mov dx, 0A4h
|
|
|
|
|
out dx, al
|
2014-08-26 21:58:08 +00:00
|
|
|
|
call vsync_end
|
2014-09-08 18:30:15 +00:00
|
|
|
|
call mem_unassign
|
2014-08-23 11:46:31 +00:00
|
|
|
|
call js_end
|
2014-08-20 20:24:05 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
push 0C0h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov ax, [bp+arg_4]
|
|
|
|
|
and ax, 0Fh
|
|
|
|
|
push ax
|
2014-08-27 04:52:58 +00:00
|
|
|
|
call grcg_setcolor
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dx, 68h ; 'h'
|
|
|
|
|
mov al, 0Bh
|
|
|
|
|
out dx, al
|
|
|
|
|
jmp loc_D3E0
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-04 17:24:14 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D25E:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_2], ax
|
|
|
|
|
jmp short loc_D268
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D263:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_2], 2B21h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D268:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
inc word ptr [bp+arg_0]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D26B:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, byte ptr [bp+var_2]
|
|
|
|
|
and al, 0FFh
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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>'
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D29D:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, byte ptr [bp+var_12]
|
|
|
|
|
or al, 20h
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D2DB:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, byte ptr [bp+var_12]
|
|
|
|
|
or al, 20h
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov dx, 0A5h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov al, byte ptr [bp+var_12]
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D317:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp [bp+var_12], 10h
|
|
|
|
|
jl short loc_D2DB
|
|
|
|
|
mov [bp+var_A], 1
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D322:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov [bp+var_12], 0
|
|
|
|
|
jmp loc_D3C7
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D3C0:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
add word ptr [bp+var_8], 50h ; 'P'
|
|
|
|
|
inc [bp+var_12]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D3D8:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov ax, [bp+var_10]
|
|
|
|
|
add ax, 8
|
|
|
|
|
add di, ax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D3E0:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
les bx, [bp+arg_0]
|
|
|
|
|
cmp byte ptr es:[bx], 0
|
|
|
|
|
jnz loc_D1D0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D3EB:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov dx, 68h ; 'h'
|
|
|
|
|
mov al, 0Ah
|
|
|
|
|
out dx, al
|
2014-08-27 04:52:58 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-28 23:56:26 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D412:
|
2014-11-27 18:35:54 +00:00
|
|
|
|
mov ah, KAJA_GET_SONG_MEASURE
|
2014-11-24 21:36:57 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D41F:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov dx, 0C0h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
int 61h ; reserved for user interrupt
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-11-28 23:56:26 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D443:
|
2014-11-27 18:35:54 +00:00
|
|
|
|
mov ah, KAJA_GET_SONG_MEASURE
|
2014-11-24 21:36:57 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D450:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov dx, 0C0h
|
2014-07-01 18:30:39 +00:00
|
|
|
|
int 61h ; reserved for user interrupt
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D468:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov ax, 1
|
|
|
|
|
pop bp
|
|
|
|
|
retf 4
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_D47A proc far
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
|
|
|
|
arg_0 = word ptr 6
|
|
|
|
|
|
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2014-08-26 20:52:26 +00:00
|
|
|
|
mov vsync_Count1, 0
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D496:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov ax, 1
|
|
|
|
|
pop bp
|
|
|
|
|
retf 2
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D49D:
|
2014-08-26 20:52:26 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-11-18 16:56:13 +00:00
|
|
|
|
include th02/formats/pi_slot_load.asm
|
2014-12-18 13:36:43 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D681:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
mov word_100FC, 1000h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D6E3:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
or si, si
|
|
|
|
|
jnz short loc_D707
|
|
|
|
|
mov si, 270Fh
|
|
|
|
|
jmp short loc_D707
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D707:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
cmp di, si
|
|
|
|
|
jl short loc_D6EC
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D70B:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
pop bp
|
|
|
|
|
retf 2
|
|
|
|
|
sub_D6C5 endp
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
db 0
|
|
|
|
|
|
2014-11-12 22:11:16 +00:00
|
|
|
|
; =============== 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]
|
2014-11-12 22:11:16 +00:00
|
|
|
|
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
|
2014-11-12 22:11:16 +00:00
|
|
|
|
|
|
|
|
|
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
|
|
|
|
; ---------------------------------------------------------------------------
|
2014-11-12 22:11:16 +00:00
|
|
|
|
nop
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D78E:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
xor dl, dl
|
|
|
|
|
mov cx, 8
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D793:
|
2014-07-01 18:30:39 +00:00
|
|
|
|
rol al, 1
|
|
|
|
|
rcr dl, 1
|
|
|
|
|
loop loc_D793
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
|
|
|
|
|
2014-08-30 01:50:38 +00:00
|
|
|
|
include libs/BorlandC/ctor2[textc].asm
|
2014-08-30 00:37:53 +00:00
|
|
|
|
include libs/BorlandC/ctor3[textc].asm
|
2014-08-29 10:47:43 +00:00
|
|
|
|
include libs/BorlandC/strings[textc].asm
|
|
|
|
|
dd 0
|
2014-11-01 08:54:57 +00:00
|
|
|
|
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
|
2014-08-19 20:33:43 +00:00
|
|
|
|
|
|
|
|
|
include libs/BorlandC/c0[data].asm
|
|
|
|
|
|
2014-11-12 22:11:16 +00:00
|
|
|
|
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"
|
2014-08-10 01:44:54 +00:00
|
|
|
|
off_E4B6 dd a@00dm0_txt
|
2014-07-01 18:30:39 +00:00
|
|
|
|
; "@00DM0.TXT"
|
2014-07-02 21:49:15 +00:00
|
|
|
|
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>"
|
2014-11-12 22:11:16 +00:00
|
|
|
|
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
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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[]
|
2014-08-10 01:44:54 +00:00
|
|
|
|
path db 'op',0
|
|
|
|
|
aWin_m db 'win.m',0
|
2014-07-01 18:30:39 +00:00
|
|
|
|
; char aMain[]
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-27 20:57:18 +00:00
|
|
|
|
include libs/master.lib/clip[data].asm
|
2014-08-27 22:05:06 +00:00
|
|
|
|
include libs/master.lib/edges[data].asm
|
2014-08-30 05:49:51 +00:00
|
|
|
|
include libs/master.lib/fil[data].asm
|
2014-08-21 20:07:58 +00:00
|
|
|
|
include libs/master.lib/dos_ropen[data].asm
|
2014-08-31 08:23:41 +00:00
|
|
|
|
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
|
2014-08-27 03:42:48 +00:00
|
|
|
|
include libs/master.lib/grp[data].asm
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-27 00:40:09 +00:00
|
|
|
|
include libs/master.lib/pf[data].asm
|
2014-08-30 10:13:04 +00:00
|
|
|
|
include libs/master.lib/rand[data].asm
|
2014-08-28 05:54:38 +00:00
|
|
|
|
include libs/master.lib/sin8[data].asm
|
2014-08-15 12:26:44 +00:00
|
|
|
|
include libs/master.lib/tx[data].asm
|
2014-08-26 20:52:26 +00:00
|
|
|
|
include libs/master.lib/vs[data].asm
|
2014-08-27 23:37:48 +00:00
|
|
|
|
include libs/master.lib/wordmask[data].asm
|
2014-08-21 20:53:12 +00:00
|
|
|
|
include libs/master.lib/mem[data].asm
|
2014-08-23 16:07:02 +00:00
|
|
|
|
include libs/master.lib/super_entry_bfnt[data].asm
|
2014-08-22 20:31:44 +00:00
|
|
|
|
include libs/master.lib/superpa[data].asm
|
2014-11-28 23:56:26 +00:00
|
|
|
|
snd_active db 0
|
2014-07-01 18:30:39 +00:00
|
|
|
|
db 0
|
2014-09-03 13:23:51 +00:00
|
|
|
|
include libs/master.lib/respal_exist[data].asm
|
2014-08-10 01:44:54 +00:00
|
|
|
|
byte_EC7C db 0FFh
|
|
|
|
|
byte_EC7D db 0
|
2014-11-17 03:54:40 +00:00
|
|
|
|
include th02/formats/pfopen[data].asm
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
db 0EEh
|
|
|
|
|
db 0EEh
|
2014-07-01 18:30:39 +00:00
|
|
|
|
db 77h ; w
|
|
|
|
|
db 77h ; w
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
db 0EEh
|
|
|
|
|
db 0EEh
|
2014-07-01 18:30:39 +00:00
|
|
|
|
db 55h ; U
|
|
|
|
|
db 55h ; U
|
2014-09-18 15:20:12 +00:00
|
|
|
|
db 0BBh
|
|
|
|
|
db 0BBh
|
2014-07-01 18:30:39 +00:00
|
|
|
|
db 55h ; U
|
|
|
|
|
db 55h ; U
|
2014-09-18 15:20:12 +00:00
|
|
|
|
db 0EEh
|
|
|
|
|
db 0EEh
|
2014-07-01 18:30:39 +00:00
|
|
|
|
db 77h ; w
|
|
|
|
|
db 77h ; w
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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
|
2014-09-18 15:20:12 +00:00
|
|
|
|
db 0EEh
|
|
|
|
|
db 0EEh
|
2014-07-01 18:30:39 +00:00
|
|
|
|
db 0FFh
|
|
|
|
|
db 0FFh
|
2014-09-18 15:20:12 +00:00
|
|
|
|
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"
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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[]
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-10-12 16:36:15 +00:00
|
|
|
|
include libs/BorlandC/_abort[data].asm
|
2014-08-19 22:36:43 +00:00
|
|
|
|
include libs/BorlandC/atexit[data].asm
|
2014-08-20 15:53:02 +00:00
|
|
|
|
include libs/BorlandC/exit[data].asm
|
2014-08-18 14:57:30 +00:00
|
|
|
|
include libs/BorlandC/files[data].asm
|
2014-10-20 15:20:04 +00:00
|
|
|
|
include libs/BorlandC/ioerror[data].asm
|
2014-08-29 08:50:30 +00:00
|
|
|
|
include libs/BorlandC/new[data].asm
|
2014-10-19 21:21:01 +00:00
|
|
|
|
include libs/BorlandC/stklen[data].asm
|
2014-10-20 15:20:04 +00:00
|
|
|
|
include libs/BorlandC/ctype[data].asm
|
2014-09-01 11:51:23 +00:00
|
|
|
|
include libs/BorlandC/xxv[data].asm
|
2014-08-29 03:58:32 +00:00
|
|
|
|
include libs/BorlandC/cputype[data].asm
|
2014-08-15 19:48:43 +00:00
|
|
|
|
include libs/BorlandC/fbrk[data].asm
|
2014-08-21 18:50:15 +00:00
|
|
|
|
include libs/BorlandC/signal[data].asm
|
2014-09-03 21:23:25 +00:00
|
|
|
|
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
|
2014-08-14 13:49:41 +00:00
|
|
|
|
include libs/BorlandC/sysnerr[data].asm
|
2014-08-29 05:47:55 +00:00
|
|
|
|
include libs/BorlandC/xx[data].asm
|
2014-08-18 12:33:24 +00:00
|
|
|
|
include libs/BorlandC/setenvp[data].asm
|
2014-08-29 10:47:43 +00:00
|
|
|
|
include libs/BorlandC/strings[data].asm
|
2014-09-12 06:05:39 +00:00
|
|
|
|
include libs/BorlandC/mbctype[data].asm
|
2014-09-06 16:48:39 +00:00
|
|
|
|
include libs/BorlandC/loadprog[data].asm
|
2014-08-17 21:55:59 +00:00
|
|
|
|
|
|
|
|
|
InitStart label byte
|
2014-08-29 08:50:30 +00:00
|
|
|
|
include libs/BorlandC/new[initdata].asm
|
2014-08-18 17:50:20 +00:00
|
|
|
|
include libs/BorlandC/setupio[initdata].asm
|
2014-08-29 03:58:32 +00:00
|
|
|
|
include libs/BorlandC/cputype[initdata].asm
|
2014-09-03 21:23:25 +00:00
|
|
|
|
include libs/BorlandC/pathops[initdata].asm
|
2014-08-18 12:33:24 +00:00
|
|
|
|
include libs/BorlandC/setenvp[initdata].asm
|
2014-08-17 21:55:59 +00:00
|
|
|
|
InitEnd label byte
|
|
|
|
|
|
|
|
|
|
ExitStart label byte
|
2014-08-29 08:50:30 +00:00
|
|
|
|
include libs/BorlandC/new[exitdata].asm
|
2014-08-17 21:55:59 +00:00
|
|
|
|
ExitEnd label byte
|
|
|
|
|
|
|
|
|
|
bdata@ label byte
|
2014-08-27 20:57:18 +00:00
|
|
|
|
; TODO: Missing clip[bss].asm (8 bytes) somewhere in there...
|
2014-08-10 01:44:54 +00:00
|
|
|
|
unk_F72C db ? ;
|
2014-07-05 21:03:42 +00:00
|
|
|
|
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 ? ;
|
2014-08-10 01:44:54 +00:00
|
|
|
|
byte_F768 db ?
|
|
|
|
|
unk_F769 db ? ;
|
2014-07-05 21:03:42 +00:00
|
|
|
|
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 ? ;
|
2014-08-10 01:44:54 +00:00
|
|
|
|
byte_F7A5 db ?
|
|
|
|
|
unk_F7A6 db ? ;
|
2014-07-05 21:03:42 +00:00
|
|
|
|
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 ? ;
|
2014-08-10 01:44:54 +00:00
|
|
|
|
byte_F7E2 db ?
|
|
|
|
|
byte_F7E3 db ?
|
|
|
|
|
byte_F7E4 db ?
|
|
|
|
|
byte_F7E5 db ?
|
2014-07-05 21:03:42 +00:00
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
2014-08-30 05:49:51 +00:00
|
|
|
|
include libs/master.lib/fil[bss].asm
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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
|
2014-08-26 20:52:26 +00:00
|
|
|
|
include libs/master.lib/vs[bss].asm
|
2014-08-26 21:58:08 +00:00
|
|
|
|
include libs/master.lib/vsync[bss].asm
|
2014-08-21 20:53:12 +00:00
|
|
|
|
include libs/master.lib/mem[bss].asm
|
2014-08-22 20:31:44 +00:00
|
|
|
|
include libs/master.lib/superpa[bss].asm
|
2014-08-10 01:44:54 +00:00
|
|
|
|
dword_10050 dd ?
|
|
|
|
|
dword_10054 dd ?
|
|
|
|
|
dword_10058 dd ?
|
|
|
|
|
dword_1005C dd ?
|
2014-11-24 21:36:57 +00:00
|
|
|
|
include th02/hardware/snd[bss].asm
|
2014-11-29 23:18:40 +00:00
|
|
|
|
include th02/hardware/snd_load[bss].asm
|
2014-11-16 03:00:41 +00:00
|
|
|
|
include libs/master.lib/pfint21[bss].asm
|
2014-08-10 01:44:54 +00:00
|
|
|
|
word_100F8 dw ?
|
|
|
|
|
word_100FA dw ?
|
|
|
|
|
word_100FC dw ?
|
2014-07-05 21:03:42 +00:00
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
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-11-18 16:56:13 +00:00
|
|
|
|
include th02/formats/pi_slots[bss].asm
|
2014-07-05 21:03:42 +00:00
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
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-08-10 01:44:54 +00:00
|
|
|
|
dword_105C6 dd ?
|
|
|
|
|
dword_105CA dd ?
|
|
|
|
|
byte_105CE db ?
|
2014-07-05 21:03:42 +00:00
|
|
|
|
db ?
|
2014-08-10 01:44:54 +00:00
|
|
|
|
word_105D0 dw ?
|
|
|
|
|
word_105D2 dw ?
|
|
|
|
|
word_105D4 dw ?
|
|
|
|
|
byte_105D6 db ?
|
|
|
|
|
byte_105D7 db ?
|
|
|
|
|
word_105D8 dw ?
|
|
|
|
|
dword_105DA dd ?
|
|
|
|
|
word_105DE dw ?
|
2014-07-05 21:03:42 +00:00
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
2014-08-10 01:44:54 +00:00
|
|
|
|
byte_10630 db ?
|
|
|
|
|
byte_10631 db ?
|
2014-07-05 21:03:42 +00:00
|
|
|
|
dd ? ;
|
2014-08-10 01:44:54 +00:00
|
|
|
|
byte_10636 db ?
|
2014-07-05 21:03:42 +00:00
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
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 ? ;
|
2014-08-10 01:44:54 +00:00
|
|
|
|
byte_106AA db ?
|
|
|
|
|
byte_106AB db ?
|
|
|
|
|
word_106AC dw ?
|
2014-07-05 21:03:42 +00:00
|
|
|
|
dw ?
|
2014-08-10 01:44:54 +00:00
|
|
|
|
byte_106B0 db ?
|
2014-07-05 21:03:42 +00:00
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
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 ? ;
|
2014-08-10 01:44:54 +00:00
|
|
|
|
word_10BB2 dw ?
|
|
|
|
|
byte_10BB4 db ?
|
|
|
|
|
byte_10BB5 db ?
|
|
|
|
|
byte_10BB6 db ?
|
2014-07-05 21:03:42 +00:00
|
|
|
|
dd ? ;
|
2014-07-01 18:30:39 +00:00
|
|
|
|
db ? ;
|
2014-08-10 01:44:54 +00:00
|
|
|
|
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 ?
|
2014-07-05 21:03:42 +00:00
|
|
|
|
dd ? ;
|
2014-07-01 18:30:39 +00:00
|
|
|
|
db ? ;
|
2014-08-10 01:44:54 +00:00
|
|
|
|
byte_10BD2 db ?
|
|
|
|
|
byte_10BD3 db ?
|
|
|
|
|
byte_10BD4 db ?
|
2014-07-01 18:30:39 +00:00
|
|
|
|
db ?
|
2014-08-10 01:44:54 +00:00
|
|
|
|
byte_10BD6 db ?
|
|
|
|
|
byte_10BD7 db ?
|
|
|
|
|
byte_10BD8 db ?
|
2014-07-01 18:30:39 +00:00
|
|
|
|
db ? ;
|
2014-08-19 22:36:43 +00:00
|
|
|
|
include libs/BorlandC/atexit[bss].asm
|
2014-08-21 18:50:15 +00:00
|
|
|
|
include libs/BorlandC/sigdata[bss].asm
|
2014-10-29 04:41:43 +00:00
|
|
|
|
include libs/BorlandC/xxv[bss].asm
|
2014-08-21 18:50:15 +00:00
|
|
|
|
include libs/BorlandC/signal[bss].asm
|
2014-08-29 05:47:55 +00:00
|
|
|
|
include libs/BorlandC/xx[bss].asm
|
2014-08-17 21:55:59 +00:00
|
|
|
|
edata@ label byte
|
|
|
|
|
|
2014-07-01 18:30:39 +00:00
|
|
|
|
dseg ends
|
|
|
|
|
|
2014-11-02 18:37:37 +00:00
|
|
|
|
include libs/BorlandC/stack.asm
|
2014-07-01 18:30:39 +00:00
|
|
|
|
|
2014-08-21 20:05:17 +00:00
|
|
|
|
end startx
|