2014-06-29 16:45:48 +00:00
|
|
|
|
;
|
|
|
|
|
; +-------------------------------------------------------------------------+
|
|
|
|
|
; | This file has been generated by The Interactive Disassembler (IDA) |
|
|
|
|
|
; | Copyright (c) 2009 by Hex-Rays, <support@hex-rays.com> |
|
|
|
|
|
; +-------------------------------------------------------------------------+
|
|
|
|
|
;
|
|
|
|
|
; Input MD5 : 50C37C4BDDEC04B753524F5D3B030A96
|
|
|
|
|
|
|
|
|
|
; File Name : th04/MAINE.EXE
|
|
|
|
|
; Format : MS-DOS executable (EXE)
|
|
|
|
|
; Base Address: 0h Range: 0h-126D0h Loaded length: 10062h
|
|
|
|
|
; Entry Point : 0:0
|
|
|
|
|
; OS type : MS DOS
|
|
|
|
|
; Application type: Executable 16bit
|
|
|
|
|
|
2014-10-31 06:17:05 +00:00
|
|
|
|
.286 ; Force the .model directive to create 16-bit default segments...
|
2014-06-29 16:45:48 +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-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-22 15:06:33 +00:00
|
|
|
|
include ReC98.inc
|
2014-11-15 01:03:41 +00:00
|
|
|
|
include th04/th04.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
|
|
|
|
|
2015-02-19 06:46:36 +00:00
|
|
|
|
extern _execl:proc
|
|
|
|
|
extern _memcpy:proc
|
|
|
|
|
extern _tolower:proc
|
|
|
|
|
|
2014-06-29 16:45:48 +00:00
|
|
|
|
; ===========================================================================
|
|
|
|
|
|
|
|
|
|
; Segment type: Pure code
|
2015-02-18 11:07:37 +00:00
|
|
|
|
_TEXT segment word public 'CODE' use16
|
|
|
|
|
assume cs:_TEXT
|
2015-02-19 06:46:36 +00:00
|
|
|
|
assume es:nothing, ds:_DATA, fs:nothing, gs:nothing
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-23 09:51:14 +00:00
|
|
|
|
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 05:25:43 +00:00
|
|
|
|
include libs/master.lib/atrtcmod.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:07:04 +00:00
|
|
|
|
include libs/master.lib/dos_read.asm
|
2014-08-22 22:59:10 +00:00
|
|
|
|
include libs/master.lib/dos_seek.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-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-08-14 12:30:48 +00:00
|
|
|
|
include libs/master.lib/get_machine_98.asm
|
2014-08-14 11:57:40 +00:00
|
|
|
|
include libs/master.lib/get_machine_at.asm
|
2014-08-14 10:20:01 +00:00
|
|
|
|
include libs/master.lib/get_machine_dosbox.asm
|
2014-08-14 09:48:52 +00:00
|
|
|
|
include libs/master.lib/check_machine_fmr.asm
|
2014-08-14 12:48:55 +00:00
|
|
|
|
include libs/master.lib/get_machine.asm
|
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 02:56:17 +00:00
|
|
|
|
include libs/master.lib/gaiji_putca.asm
|
2014-08-31 03:05:48 +00:00
|
|
|
|
include libs/master.lib/gaiji_putsa.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-08-27 23:05:11 +00:00
|
|
|
|
include libs/master.lib/graph_hide.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-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-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 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-11-16 03:00:41 +00:00
|
|
|
|
include libs/master.lib/pfint21.asm
|
|
|
|
|
db 0
|
2018-04-15 12:51:57 +00:00
|
|
|
|
include libs/master.lib/js_start.asm
|
2014-11-17 03:54:40 +00:00
|
|
|
|
include th03/formats/pfopen.asm
|
|
|
|
|
include libs/master.lib/pf_str_ieq.asm
|
2018-04-15 21:31:38 +00:00
|
|
|
|
include libs/master.lib/js_sense.asm
|
2014-08-25 02:49:19 +00:00
|
|
|
|
include libs/master.lib/bgm_bell_org.asm
|
2014-08-25 21:08:17 +00:00
|
|
|
|
include libs/master.lib/bgm_mget.asm
|
2014-08-26 04:07:19 +00:00
|
|
|
|
include libs/master.lib/bgm_read_sdata.asm
|
2014-08-26 05:39:57 +00:00
|
|
|
|
include libs/master.lib/bgm_timer.asm
|
2014-08-25 22:01:58 +00:00
|
|
|
|
include libs/master.lib/bgm_pinit.asm
|
2014-08-26 04:18:06 +00:00
|
|
|
|
include libs/master.lib/bgm_timerhook.asm
|
2014-08-25 22:25:48 +00:00
|
|
|
|
include libs/master.lib/bgm_play.asm
|
2014-08-25 23:51:57 +00:00
|
|
|
|
include libs/master.lib/bgm_sound.asm
|
2014-08-25 22:34:16 +00:00
|
|
|
|
include libs/master.lib/bgm_effect_sound.asm
|
2014-08-25 22:40:14 +00:00
|
|
|
|
include libs/master.lib/bgm_stop_play.asm
|
2014-08-25 20:57:49 +00:00
|
|
|
|
include libs/master.lib/bgm_set_tempo.asm
|
2014-08-26 05:58:33 +00:00
|
|
|
|
include libs/master.lib/bgm_init_finish.asm
|
2014-08-25 23:41:08 +00:00
|
|
|
|
include libs/master.lib/bgm_stop_sound.asm
|
2014-12-17 11:58:35 +00:00
|
|
|
|
include libs/master.lib/graph_pack_put_8_noclip.asm
|
2014-09-15 01:03:52 +00:00
|
|
|
|
include libs/master.lib/graph_gaiji_puts.asm
|
2014-09-14 15:39:30 +00:00
|
|
|
|
include libs/master.lib/graph_gaiji_putc.asm
|
2015-02-18 11:07:37 +00:00
|
|
|
|
_TEXT ends
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
; ===========================================================================
|
|
|
|
|
|
|
|
|
|
; Segment type: Pure code
|
2015-02-21 11:47:24 +00:00
|
|
|
|
maine_01_TEXT segment byte public 'CODE' use16
|
|
|
|
|
assume cs:maine_01_TEXT
|
2014-06-29 16:45:48 +00:00
|
|
|
|
;org 9
|
2015-02-18 11:07:37 +00:00
|
|
|
|
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
2014-06-29 16:45:48 +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_A059 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_A = byte ptr -0Ah
|
|
|
|
|
var_4 = word ptr -4
|
|
|
|
|
|
|
|
|
|
enter 0Ah, 0
|
|
|
|
|
push si
|
|
|
|
|
push ds
|
|
|
|
|
push offset aMiko_cfg ; "MIKO.CFG"
|
2014-08-30 07:12:17 +00:00
|
|
|
|
call file_ropen
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_A]
|
|
|
|
|
push ax
|
|
|
|
|
push 0Ah
|
2014-08-30 07:00:31 +00:00
|
|
|
|
call file_read
|
2014-08-30 06:15:42 +00:00
|
|
|
|
call file_close
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov si, [bp+var_4]
|
2018-12-25 21:59:19 +00:00
|
|
|
|
mov word ptr _humaconfig+2, si
|
|
|
|
|
mov word ptr _humaconfig, 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, si
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn
|
|
|
|
|
sub_A059 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
|
|
|
|
; int __stdcall sub_A08A(char *arg0)
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_A08A proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
_arg0 = dword ptr 4
|
|
|
|
|
|
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2017-01-19 20:14:22 +00:00
|
|
|
|
call _cdg_freeall
|
2014-08-27 23:05:11 +00:00
|
|
|
|
call graph_hide
|
2014-08-20 14:45:24 +00:00
|
|
|
|
call text_clear
|
2014-08-31 08:23:41 +00:00
|
|
|
|
call gaiji_restore
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_D3F4
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd 0
|
|
|
|
|
pushd [bp+_arg0] ; arg0
|
|
|
|
|
pushd [bp+_arg0] ; path
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call _execl
|
|
|
|
|
add sp, 0Ch
|
|
|
|
|
pop bp
|
|
|
|
|
retn 4
|
|
|
|
|
sub_A08A endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_A0BD proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, es:[bx+12h]
|
|
|
|
|
les bx, off_E5C0
|
|
|
|
|
mov es:[bx+3], al
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, es:[bx+19h]
|
|
|
|
|
add al, 30h ; '0'
|
|
|
|
|
les bx, off_E5C0
|
|
|
|
|
mov es:[bx+4], al
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, es:[bx+25h]
|
|
|
|
|
les bx, off_E5C0
|
|
|
|
|
mov es:[bx+5], al
|
|
|
|
|
push word ptr off_E5C0+2
|
|
|
|
|
push bx
|
|
|
|
|
call sub_A292
|
|
|
|
|
call sub_ADFC
|
|
|
|
|
call sub_A2D1
|
|
|
|
|
pop bp
|
|
|
|
|
retn
|
|
|
|
|
sub_A0BD 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)
|
2015-02-19 06:46:36 +00:00
|
|
|
|
public _main
|
2014-08-10 01:44:54 +00:00
|
|
|
|
_main proc far
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_4 = dword ptr -4
|
|
|
|
|
_argc = word ptr 6
|
|
|
|
|
_argv = dword ptr 8
|
|
|
|
|
_envp = dword ptr 0Ch
|
|
|
|
|
|
|
|
|
|
enter 4, 0
|
|
|
|
|
mov word ptr [bp+var_4+2], ds
|
|
|
|
|
mov word ptr [bp+var_4], 0A8h ; '<27>'
|
|
|
|
|
call sub_A059
|
|
|
|
|
or ax, ax
|
|
|
|
|
jz locret_A290
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, es:[bx+12h]
|
|
|
|
|
les bx, [bp+var_4]
|
|
|
|
|
mov es:[bx+4], al
|
|
|
|
|
mov word_10070, 5208h
|
|
|
|
|
push ds
|
|
|
|
|
push offset aMSzlEd_dat ; "<22><><EFBFBD>z<EFBFBD><7A>ed.dat"
|
|
|
|
|
call sub_D43C
|
2014-08-31 08:23:41 +00:00
|
|
|
|
call gaiji_backup
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset aGameft_bft ; "GAMEFT.bft"
|
2014-08-31 08:08:09 +00:00
|
|
|
|
call gaiji_entry_bfnt
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, es:[bx+10h]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
|
|
|
|
mov al, es:[bx+18h]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2014-11-28 23:56:26 +00:00
|
|
|
|
call snd_determine_modes
|
2014-08-27 03:18:17 +00:00
|
|
|
|
call graph_show
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp byte ptr es:[bx+30h], 0FEh
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jb loc_A1FE
|
|
|
|
|
call sub_A0BD
|
|
|
|
|
call sub_B44D
|
|
|
|
|
call sub_C0F8
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte ptr es:[bx+30h], 0FFh
|
|
|
|
|
jz short loc_A187
|
|
|
|
|
cmp byte ptr es:[bx+0Fh], 0
|
|
|
|
|
jnz short loc_A1E9
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A187:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
les bx, [bp+var_4]
|
|
|
|
|
mov al, es:[bx+5]
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add al, es:[bx+0Fh]
|
|
|
|
|
les bx, [bp+var_4]
|
|
|
|
|
mov es:[bx+5], al
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_load pascal, 0, word ptr [bp+var_4+2], bx
|
|
|
|
|
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-06-29 16:45:48 +00:00
|
|
|
|
push 0
|
2014-08-27 04:13:48 +00:00
|
|
|
|
call graph_copy_page
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 1
|
2014-08-26 22:21:45 +00:00
|
|
|
|
call palette_black_in
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0
|
2018-09-17 20:10:42 +00:00
|
|
|
|
call _input_wait_for_change
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 4
|
2014-08-26 22:33:43 +00:00
|
|
|
|
call palette_black_out
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A1E9:
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_FADE, 4
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 64h ; 'd'
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_C814
|
|
|
|
|
jmp loc_A281
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A1FE:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp byte ptr es:[bx+30h], 0FDh
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jnz short loc_A274
|
|
|
|
|
push 64h ; 'd'
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_C814
|
|
|
|
|
les bx, [bp+var_4]
|
|
|
|
|
mov byte ptr es:[bx+5], 34h ; '4'
|
2014-08-23 13:47:05 +00:00
|
|
|
|
mov PaletteTone, 0
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_load pascal, 0, large [bp+var_4]
|
|
|
|
|
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-06-29 16:45:48 +00:00
|
|
|
|
push 0
|
2014-08-27 04:13:48 +00:00
|
|
|
|
call graph_copy_page
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 1
|
2014-08-26 22:21:45 +00:00
|
|
|
|
call palette_black_in
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0
|
2018-09-17 20:10:42 +00:00
|
|
|
|
call _input_wait_for_change
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 4
|
2014-08-26 22:33:43 +00:00
|
|
|
|
call palette_black_out
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp short loc_A27E
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A274:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 64h ; 'd'
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_C814
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A27E:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_C0F8
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A281:
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_FADE, 4
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset arg0 ; "op"
|
|
|
|
|
call sub_A08A
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
locret_A290:
|
2014-06-29 16:45:48 +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_A292 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
arg_0 = dword ptr 4
|
|
|
|
|
|
|
|
|
|
enter 2, 0
|
|
|
|
|
call sub_A2D1
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd [bp+arg_0]
|
2014-08-30 07:12:17 +00:00
|
|
|
|
call file_ropen
|
2014-06-29 16:45:48 +00:00
|
|
|
|
or ax, ax
|
|
|
|
|
jnz short loc_A2AD
|
|
|
|
|
mov ax, 1
|
|
|
|
|
leave
|
|
|
|
|
retn 4
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A2AD:
|
2014-08-30 08:06:10 +00:00
|
|
|
|
call file_size
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_2], ax
|
|
|
|
|
mov word_12478, 1F48h
|
|
|
|
|
push ds
|
|
|
|
|
push word_12478
|
|
|
|
|
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-06-29 16:45:48 +00:00
|
|
|
|
xor ax, ax
|
|
|
|
|
leave
|
|
|
|
|
retn 4
|
|
|
|
|
sub_A292 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_A2D1 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
pop bp
|
|
|
|
|
retn
|
|
|
|
|
sub_A2D1 endp
|
|
|
|
|
|
2018-12-27 20:42:27 +00:00
|
|
|
|
EGC_START_COPY_DEF 1, near
|
2014-06-29 16:45:48 +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_A30A proc near
|
2014-06-29 16:45:48 +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
|
2018-12-27 20:42:27 +00:00
|
|
|
|
call egc_start_copy_1
|
2014-06-29 16:45:48 +00:00
|
|
|
|
xor di, di
|
|
|
|
|
jmp short loc_A368
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A32F:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_2], 0
|
|
|
|
|
jmp short loc_A35E
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A336:
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 0
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_B
|
2014-06-29 16:45:48 +00:00
|
|
|
|
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
|
2015-02-24 15:17:50 +00:00
|
|
|
|
mov bx, word ptr _VRAM_PLANE_B
|
2014-06-29 16:45:48 +00:00
|
|
|
|
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_A35E:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+var_2], 28h ; '('
|
|
|
|
|
jl short loc_A336
|
|
|
|
|
inc di
|
|
|
|
|
add si, 28h ; '('
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A368:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp di, 0C8h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jl short loc_A32F
|
2014-08-20 20:24:05 +00:00
|
|
|
|
call egc_off
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 4
|
|
|
|
|
sub_A30A endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_A37F proc near
|
2014-06-29 16:45:48 +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
|
2015-02-21 13:12:22 +00:00
|
|
|
|
mov eax, _pi_slot_buffers
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_8], eax
|
|
|
|
|
cmp [bp+arg_2], 1
|
|
|
|
|
jnz short loc_A39A
|
2014-09-18 15:20:12 +00:00
|
|
|
|
add word ptr [bp+var_8], 0A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp short loc_A3B2
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A39A:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+arg_2], 2
|
|
|
|
|
jnz short loc_A3A7
|
|
|
|
|
add word ptr [bp+var_8], 0FA00h
|
|
|
|
|
jmp short loc_A3B2
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A3A7:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+arg_2], 3
|
|
|
|
|
jnz short loc_A3B2
|
|
|
|
|
add word ptr [bp+var_8], 0FAA0h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A3B2:
|
2014-06-29 16:45:48 +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
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_showpage 1
|
2014-06-29 16:45:48 +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
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
xor di, di
|
|
|
|
|
jmp loc_A491
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A3F7:
|
2014-12-17 11:58:35 +00:00
|
|
|
|
call graph_pack_put_8_noclip pascal, large 400, [bp+var_8], 320
|
2018-12-27 20:42:27 +00:00
|
|
|
|
call egc_start_copy_1
|
2018-12-20 17:09:29 +00:00
|
|
|
|
egc_selectpat
|
|
|
|
|
egc_setrop EGC_COMPAREREAD or EGC_WS_PATREG or EGC_RL_MEMREAD
|
|
|
|
|
outw2 EGC_BITLENGTHREG, 0Fh
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, [bp+arg_0]
|
|
|
|
|
shl bx, 3
|
|
|
|
|
mov ax, di
|
|
|
|
|
and ax, 3
|
|
|
|
|
add ax, ax
|
|
|
|
|
add bx, ax
|
2018-12-20 17:09:29 +00:00
|
|
|
|
outw2 EGC_MASKREG, [bx+60Ch]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_4], 7D00h
|
|
|
|
|
mov [bp+var_2], 0
|
|
|
|
|
jmp short loc_A461
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A444:
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_B
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add bx, [bp+var_4]
|
|
|
|
|
mov ax, es:[bx]
|
2015-02-24 15:17:50 +00:00
|
|
|
|
mov bx, word ptr _VRAM_PLANE_B
|
2014-06-29 16:45:48 +00:00
|
|
|
|
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_A461:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+var_2], 14h
|
|
|
|
|
jl short loc_A444
|
2014-08-20 20:24:05 +00:00
|
|
|
|
call egc_off
|
2014-06-29 16:45:48 +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_A491:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp di, 0C8h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jl loc_A3F7
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_showpage 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push [bp+arg_6]
|
|
|
|
|
push [bp+arg_4]
|
|
|
|
|
call sub_A30A
|
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 8
|
|
|
|
|
sub_A37F endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_A4AE proc near
|
2014-06-29 16:45:48 +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_A57F
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 3C00h
|
2014-08-21 22:17:53 +00:00
|
|
|
|
call hmem_allocbyte
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov word ptr dword_1247A+2, ax
|
|
|
|
|
mov word ptr dword_1247A, 0
|
|
|
|
|
xor si, si
|
|
|
|
|
mov di, 140h
|
|
|
|
|
mov [bp+var_4], 0
|
|
|
|
|
jmp loc_A573
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A4DB:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_2], 50h ; 'P'
|
|
|
|
|
mov [bp+var_6], 0
|
|
|
|
|
jmp loc_A567
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A4E8:
|
2014-06-29 16:45:48 +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
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_B
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add bx, [bp+var_8]
|
|
|
|
|
mov ax, es:[bx]
|
|
|
|
|
mov dx, si
|
|
|
|
|
add dx, dx
|
|
|
|
|
les bx, dword_1247A
|
|
|
|
|
add bx, dx
|
|
|
|
|
mov es:[bx], ax
|
|
|
|
|
inc si
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_R
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add bx, [bp+var_8]
|
|
|
|
|
mov ax, es:[bx]
|
|
|
|
|
mov dx, si
|
|
|
|
|
add dx, dx
|
|
|
|
|
les bx, dword_1247A
|
|
|
|
|
add bx, dx
|
|
|
|
|
mov es:[bx], ax
|
|
|
|
|
inc si
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_G
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add bx, [bp+var_8]
|
|
|
|
|
mov ax, es:[bx]
|
|
|
|
|
mov dx, si
|
|
|
|
|
add dx, dx
|
|
|
|
|
les bx, dword_1247A
|
|
|
|
|
add bx, dx
|
|
|
|
|
mov es:[bx], ax
|
|
|
|
|
inc si
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_E
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add bx, [bp+var_8]
|
|
|
|
|
mov ax, es:[bx]
|
|
|
|
|
mov dx, si
|
|
|
|
|
add dx, dx
|
|
|
|
|
les bx, dword_1247A
|
|
|
|
|
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_A567:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+var_6], 3Ch ; '<'
|
|
|
|
|
jl loc_A4E8
|
|
|
|
|
inc [bp+var_4]
|
|
|
|
|
inc di
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A573:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp [bp+var_4], 40h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jl loc_A4DB
|
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn
|
|
|
|
|
sub_A4AE endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_A57F proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
cmp dword_1247A, 0
|
|
|
|
|
jz short loc_A59C
|
|
|
|
|
push word ptr dword_1247A+2
|
2014-08-21 22:17:53 +00:00
|
|
|
|
call hmem_free
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov dword_1247A, 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A59C:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retn
|
|
|
|
|
sub_A57F endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_A59E proc near
|
2014-06-29 16:45:48 +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_A641
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A5B1:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_2], 50h ; 'P'
|
|
|
|
|
mov [bp+var_6], 0
|
|
|
|
|
jmp short loc_A637
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A5BD:
|
2014-06-29 16:45:48 +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_1247A
|
|
|
|
|
add bx, ax
|
|
|
|
|
mov ax, es:[bx]
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_B
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add bx, di
|
|
|
|
|
mov es:[bx], ax
|
|
|
|
|
inc cx
|
|
|
|
|
mov ax, cx
|
|
|
|
|
add ax, ax
|
|
|
|
|
les bx, dword_1247A
|
|
|
|
|
add bx, ax
|
|
|
|
|
mov ax, es:[bx]
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_R
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add bx, di
|
|
|
|
|
mov es:[bx], ax
|
|
|
|
|
inc cx
|
|
|
|
|
mov ax, cx
|
|
|
|
|
add ax, ax
|
|
|
|
|
les bx, dword_1247A
|
|
|
|
|
add bx, ax
|
|
|
|
|
mov ax, es:[bx]
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_G
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add bx, di
|
|
|
|
|
mov es:[bx], ax
|
|
|
|
|
inc cx
|
|
|
|
|
mov ax, cx
|
|
|
|
|
add ax, ax
|
|
|
|
|
les bx, dword_1247A
|
|
|
|
|
add bx, ax
|
|
|
|
|
mov ax, es:[bx]
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_E
|
2014-06-29 16:45:48 +00:00
|
|
|
|
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_A637:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+var_6], 3Ch ; '<'
|
|
|
|
|
jl short loc_A5BD
|
|
|
|
|
inc [bp+var_4]
|
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A641:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp [bp+var_4], 40h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jl loc_A5B1
|
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn
|
|
|
|
|
sub_A59E 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-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_2 = byte ptr -2
|
|
|
|
|
var_1 = byte ptr -1
|
|
|
|
|
arg_0 = dword ptr 4
|
|
|
|
|
|
|
|
|
|
enter 2, 0
|
|
|
|
|
mov bx, word_12478
|
|
|
|
|
mov cl, [bx]
|
|
|
|
|
inc word_12478
|
|
|
|
|
mov bx, word_12478
|
|
|
|
|
mov al, [bx]
|
|
|
|
|
mov [bp+var_1], al
|
|
|
|
|
inc word_12478
|
|
|
|
|
mov bx, word_12478
|
|
|
|
|
mov al, [bx]
|
|
|
|
|
mov [bp+var_2], al
|
|
|
|
|
inc word_12478
|
|
|
|
|
mov al, cl
|
|
|
|
|
mov ah, 0
|
|
|
|
|
mov bx, ax
|
|
|
|
|
test byte ptr [bx+0B69h], 2
|
|
|
|
|
jnz short loc_A694
|
|
|
|
|
les bx, [bp+arg_0]
|
|
|
|
|
mov ax, word_124C4
|
|
|
|
|
mov es:[bx], ax
|
|
|
|
|
sub word_12478, 3
|
|
|
|
|
leave
|
|
|
|
|
retn 4
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A694:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, [bp+var_1]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
mov bx, ax
|
|
|
|
|
test byte ptr [bx+0B69h], 2
|
|
|
|
|
jnz short loc_A6B8
|
|
|
|
|
mov al, cl
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, 0FFD0h
|
|
|
|
|
les bx, [bp+arg_0]
|
|
|
|
|
mov es:[bx], ax
|
|
|
|
|
sub word_12478, 2
|
|
|
|
|
leave
|
|
|
|
|
retn 4
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A6B8:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, [bp+var_2]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
mov bx, ax
|
|
|
|
|
test byte ptr [bx+0B69h], 2
|
|
|
|
|
jnz short loc_A6E8
|
|
|
|
|
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_12478
|
|
|
|
|
leave
|
|
|
|
|
retn 4
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A6E8:
|
2014-06-29 16:45:48 +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_A64D endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_A713 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
arg_0 = dword ptr 4
|
|
|
|
|
|
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
mov bx, word_12478
|
|
|
|
|
cmp byte ptr [bx], 2Ch ; ','
|
|
|
|
|
jnz short loc_A72E
|
|
|
|
|
inc word_12478
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd [bp+arg_0]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_A64D
|
|
|
|
|
pop bp
|
|
|
|
|
retn 4
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A72E:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
les bx, [bp+arg_0]
|
|
|
|
|
mov ax, word_124C4
|
|
|
|
|
mov es:[bx], ax
|
|
|
|
|
pop bp
|
|
|
|
|
retn 4
|
|
|
|
|
sub_A713 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_A73B proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
add word_124BC, 10h
|
|
|
|
|
cmp word_124BC, 230h
|
|
|
|
|
jl short loc_A78D
|
|
|
|
|
add word_124BE, 10h
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov word_124BC, 90h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp word_124BE, 180h
|
|
|
|
|
jl short loc_A78D
|
|
|
|
|
call sub_A815
|
|
|
|
|
cmp byte_1247E, 0
|
|
|
|
|
jnz short loc_A76F
|
|
|
|
|
push 0
|
2018-09-17 20:10:42 +00:00
|
|
|
|
call _input_wait_for_change
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A76F:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov word_124BC, 50h ; 'P'
|
|
|
|
|
mov word_124BE, 140h
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_A59E
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_A59E
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A78D:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retn
|
|
|
|
|
sub_A73B endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_A78F proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
|
|
|
|
|
enter 2, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
mov cx, 140h
|
|
|
|
|
jmp short loc_A809
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A79A:
|
2018-12-20 17:09:29 +00:00
|
|
|
|
egc_selectpat
|
|
|
|
|
egc_setrop EGC_COMPAREREAD or EGC_WS_PATREG or EGC_RL_MEMREAD
|
|
|
|
|
outw2 EGC_BITLENGTHREG, 0Fh
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, [bp+arg_0]
|
|
|
|
|
shl bx, 3
|
|
|
|
|
mov ax, cx
|
|
|
|
|
and ax, 3
|
|
|
|
|
add ax, ax
|
|
|
|
|
add bx, ax
|
2018-12-20 17:09:29 +00:00
|
|
|
|
outw2 EGC_MASKREG, [bx+62Ch]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, cx
|
|
|
|
|
shl ax, 6
|
|
|
|
|
mov dx, cx
|
|
|
|
|
shl dx, 4
|
|
|
|
|
add ax, dx
|
|
|
|
|
add ax, 0Ah
|
|
|
|
|
mov si, ax
|
|
|
|
|
xor di, di
|
|
|
|
|
jmp short loc_A802
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A7DB:
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_B
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add bx, si
|
|
|
|
|
mov ax, es:[bx]
|
|
|
|
|
mov [bp+var_2], ax
|
|
|
|
|
mov al, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2015-02-24 15:17:50 +00:00
|
|
|
|
mov bx, word ptr _VRAM_PLANE_B
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add bx, si
|
|
|
|
|
mov ax, [bp+var_2]
|
|
|
|
|
mov es:[bx], ax
|
|
|
|
|
add di, 10h
|
|
|
|
|
add si, 2
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A802:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp di, 1E0h
|
|
|
|
|
jl short loc_A7DB
|
|
|
|
|
inc cx
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A809:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp cx, 180h
|
|
|
|
|
jl short loc_A79A
|
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 2
|
|
|
|
|
sub_A78F endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_A815 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push si
|
2018-12-27 20:42:27 +00:00
|
|
|
|
call egc_start_copy_1
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte_1247E, 0
|
|
|
|
|
jnz short loc_A83A
|
|
|
|
|
xor si, si
|
|
|
|
|
jmp short loc_A835
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A827:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
|
|
|
|
call sub_A78F
|
|
|
|
|
push word_124C0
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2014-06-29 16:45:48 +00:00
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A835:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp si, 4
|
|
|
|
|
jl short loc_A827
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A83A:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 4
|
|
|
|
|
call sub_A78F
|
2014-08-20 20:24:05 +00:00
|
|
|
|
call egc_off
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop si
|
|
|
|
|
pop bp
|
|
|
|
|
retn
|
|
|
|
|
sub_A815 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_A847 proc near
|
2014-06-29 16:45:48 +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_ADBC
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A866:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, cs:[bx]
|
|
|
|
|
cmp ax, [bp+var_6]
|
|
|
|
|
jz short loc_A876
|
|
|
|
|
add bx, 2
|
|
|
|
|
loop loc_A866
|
|
|
|
|
jmp loc_ADB5 ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A876:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp word ptr cs:[bx+20h] ; switch jump
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A87A:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add word_124BE, 10h ; jumptable 0000A876 case 110
|
|
|
|
|
mov word_124BC, 50h ; 'P'
|
|
|
|
|
cmp word_124BE, 180h
|
|
|
|
|
jl loc_ADB5 ; default
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A88F:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, word_12478 ; jumptable 0000A876 case 115
|
|
|
|
|
mov al, [bx]
|
|
|
|
|
mov [bp+arg_0], al
|
|
|
|
|
call sub_A815
|
|
|
|
|
cmp [bp+arg_0], 2Dh ; '-'
|
|
|
|
|
jz short loc_A8C0
|
|
|
|
|
mov word_124C4, 0
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_2]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A64D
|
|
|
|
|
cmp byte_1247E, 0
|
|
|
|
|
jnz short loc_A8C4
|
|
|
|
|
push [bp+var_2]
|
2018-09-17 20:10:42 +00:00
|
|
|
|
call _input_wait_for_change
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp short loc_A8C4
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A8C0:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
inc word_12478
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A8C4:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov word_124BC, 50h ; 'P'
|
|
|
|
|
mov word_124BE, 140h
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_A59E
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_A59E
|
|
|
|
|
jmp loc_ADB5 ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A8E5:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov word_124C4, 0Fh ; jumptable 0000A876 case 99
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_2]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A64D
|
|
|
|
|
mov al, byte ptr [bp+var_2]
|
|
|
|
|
mov byte_124C2, al
|
|
|
|
|
jmp loc_ADB5 ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A8FC:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov word_124C4, 2 ; jumptable 0000A876 case 98
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_2]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A64D
|
|
|
|
|
mov ax, [bp+var_2]
|
|
|
|
|
mov word_EB2C, ax
|
|
|
|
|
jmp loc_ADB5 ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A913:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, word_12478 ; jumptable 0000A876 case 119
|
|
|
|
|
mov al, [bx]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax ; ch
|
|
|
|
|
call _tolower
|
|
|
|
|
pop cx
|
|
|
|
|
mov [bp+arg_0], al
|
|
|
|
|
cmp [bp+arg_0], 6Fh ; 'o'
|
|
|
|
|
jz short loc_A931
|
|
|
|
|
cmp [bp+arg_0], 69h ; 'i'
|
|
|
|
|
jnz short loc_A95F
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A931:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
inc word_12478
|
|
|
|
|
mov word_124C4, 1
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_2]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A64D
|
|
|
|
|
cmp [bp+arg_0], 69h ; 'i'
|
|
|
|
|
jnz short loc_A954
|
|
|
|
|
push [bp+var_2]
|
2014-08-26 22:52:29 +00:00
|
|
|
|
call palette_white_in
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp loc_AD2B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A954:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push [bp+var_2]
|
2014-08-26 22:57:45 +00:00
|
|
|
|
call palette_white_out
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp loc_AD2B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A95F:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_A815
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov word_124C4, 40h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+arg_0], 6Dh ; 'm'
|
|
|
|
|
jz short loc_A994
|
|
|
|
|
cmp [bp+arg_0], 6Bh ; 'k'
|
|
|
|
|
jnz short loc_A978
|
|
|
|
|
inc word_12478
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A978:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_2]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A64D
|
|
|
|
|
cmp byte_1247E, 0
|
|
|
|
|
jnz loc_ADB5 ; default
|
|
|
|
|
push [bp+var_2]
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp loc_AD2B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A994:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
inc word_12478
|
|
|
|
|
mov bx, word_12478
|
|
|
|
|
mov al, [bx]
|
|
|
|
|
mov [bp+arg_0], al
|
|
|
|
|
cmp [bp+arg_0], 6Bh ; 'k'
|
|
|
|
|
jnz short loc_A9AB
|
|
|
|
|
inc word_12478
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A9AB:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_2]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A64D
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_4]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A713
|
|
|
|
|
cmp byte_1247E, 0
|
|
|
|
|
jnz loc_ADB5 ; default
|
|
|
|
|
push [bp+var_2]
|
|
|
|
|
push [bp+var_4]
|
|
|
|
|
call sub_D046
|
|
|
|
|
jmp loc_ACFF
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A9D2:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, word_12478 ; jumptable 0000A876 case 118
|
|
|
|
|
cmp byte ptr [bx], 70h ; 'p'
|
|
|
|
|
jz short loc_A9F2
|
|
|
|
|
mov word_124C4, 1
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_2]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A64D
|
|
|
|
|
mov ax, [bp+var_2]
|
|
|
|
|
mov word_124C0, ax
|
|
|
|
|
jmp loc_ADB5 ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_A9F2:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
inc word_12478
|
|
|
|
|
mov word_124C4, 0
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_2]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A64D
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_showpage byte ptr [bp+var_2]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp loc_ADB5 ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AA0E:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov word_124C4, 64h ; 'd' ; jumptable 0000A876 case 116
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_2]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A64D
|
|
|
|
|
cmp byte_1247E, 0
|
|
|
|
|
jnz short loc_AA2A
|
|
|
|
|
push 1
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AA2A:
|
2014-06-29 16:45:48 +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-06-29 16:45:48 +00:00
|
|
|
|
jmp loc_ADB5 ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AA38:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, word_12478 ; jumptable 0000A876 case 102
|
|
|
|
|
mov al, [bx]
|
|
|
|
|
mov [bp+arg_0], al
|
|
|
|
|
cmp [bp+arg_0], 6Dh ; 'm'
|
|
|
|
|
jz short loc_AA83
|
|
|
|
|
cmp [bp+arg_0], 69h ; 'i'
|
|
|
|
|
jz short loc_AA55
|
|
|
|
|
cmp [bp+arg_0], 6Fh ; 'o'
|
|
|
|
|
jnz loc_ADB5 ; default
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AA55:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
inc word_12478
|
|
|
|
|
mov word_124C4, 1
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_2]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A64D
|
|
|
|
|
cmp [bp+arg_0], 69h ; 'i'
|
|
|
|
|
jnz short loc_AA78
|
|
|
|
|
push [bp+var_2]
|
2014-08-26 22:21:45 +00:00
|
|
|
|
call palette_black_in
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp loc_AD2B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AA78:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push [bp+var_2]
|
2014-08-26 22:33:43 +00:00
|
|
|
|
call palette_black_out
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp loc_AD2B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AA83:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
inc word_12478
|
|
|
|
|
mov word_124C4, 1
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_2]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A64D
|
|
|
|
|
mov ax, [bp+var_2]
|
|
|
|
|
add ax, 200h
|
|
|
|
|
push ax
|
|
|
|
|
jmp loc_AD26
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AA9F:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, word_12478 ; jumptable 0000A876 case 103
|
|
|
|
|
cmp byte ptr [bx], 61h ; 'a'
|
|
|
|
|
jz short loc_AAF2
|
|
|
|
|
mov word_124C4, 8
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_2]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A64D
|
|
|
|
|
mov [bp+var_4], 0
|
|
|
|
|
jmp short loc_AAE0
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AABD:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
test byte ptr [bp+var_4], 1
|
|
|
|
|
jz short loc_AAC7
|
|
|
|
|
push 4
|
|
|
|
|
jmp short loc_AACA
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AAC7:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 18Ch
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AACA:
|
2014-08-31 04:43:32 +00:00
|
|
|
|
call graph_scrollup
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte_1247E, 0
|
|
|
|
|
jnz short loc_AADD
|
|
|
|
|
push 1
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AADD:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
inc [bp+var_4]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AAE0:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, [bp+var_4]
|
|
|
|
|
cmp ax, [bp+var_2]
|
|
|
|
|
jle short loc_AABD
|
2018-12-28 20:18:08 +00:00
|
|
|
|
call graph_scrollup pascal, 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp loc_AD2B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AAF2:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
inc word_12478
|
|
|
|
|
mov word_124C4, 0
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_2]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A64D
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push word_124BC
|
|
|
|
|
push word_124BE
|
|
|
|
|
push [bp+var_2]
|
|
|
|
|
mov al, byte_124C2
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2014-09-14 15:39:30 +00:00
|
|
|
|
call graph_gaiji_putc
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_A73B
|
|
|
|
|
jmp loc_ADB5 ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB26:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov word_124C4, 0 ; jumptable 0000A876 case 107
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_2]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A64D
|
|
|
|
|
cmp byte_1247E, 0
|
|
|
|
|
jnz loc_ADB5 ; default
|
|
|
|
|
push [bp+var_2]
|
2018-09-17 20:10:42 +00:00
|
|
|
|
call _input_wait_for_change
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp loc_AD2B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB48:
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1 ; jumptable 0000A876 case 64
|
2014-08-27 04:03:08 +00:00
|
|
|
|
call graph_clear
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 0
|
2014-08-27 04:03:08 +00:00
|
|
|
|
call graph_clear
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp loc_ADB5 ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB61:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, word_12478 ; jumptable 0000A876 case 112
|
|
|
|
|
mov al, [bx]
|
|
|
|
|
mov [bp+arg_0], al
|
|
|
|
|
inc word_12478
|
|
|
|
|
cmp [bp+arg_0], 3Dh ; '='
|
|
|
|
|
jz short loc_AB7A
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp [bp+arg_0], 40h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jnz short loc_ABAA
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB7A:
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+arg_0], 3Dh ; '='
|
|
|
|
|
jnz short loc_AB8D
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_palette_apply pascal, 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AB8D:
|
2014-12-18 13:36:43 +00:00
|
|
|
|
call pi_slot_put pascal, large 0, 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0
|
2014-08-27 04:13:48 +00:00
|
|
|
|
call graph_copy_page
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_A4AE
|
|
|
|
|
jmp loc_ADB5 ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ABAA:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+arg_0], 2Dh ; '-'
|
|
|
|
|
jnz short loc_ABC1
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp loc_ADB5 ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ABC1:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+arg_0], 70h ; 'p'
|
|
|
|
|
jnz short loc_ABD1
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_palette_apply pascal, 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp loc_AD2B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ABD1:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+arg_0], 2Ch ; ','
|
|
|
|
|
jz short loc_ABDE
|
|
|
|
|
dec word_12478
|
|
|
|
|
jmp loc_ADB5 ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ABDE:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_2], 0
|
|
|
|
|
jmp short loc_AC12
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ABE5:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, word_12478
|
|
|
|
|
mov al, [bx]
|
|
|
|
|
mov [bp+arg_0], al
|
|
|
|
|
inc word_12478
|
|
|
|
|
mov ah, 0
|
|
|
|
|
mov bx, ax
|
|
|
|
|
test byte ptr [bx+0B69h], 20h
|
|
|
|
|
jnz short loc_AC18
|
|
|
|
|
cmp [bp+arg_0], 20h ; ' '
|
|
|
|
|
jz short loc_AC18
|
|
|
|
|
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_AC12:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+var_2], 0Ch
|
|
|
|
|
jl short loc_ABE5
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AC18:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
lea bx, [bp+var_16]
|
|
|
|
|
add bx, [bp+var_2]
|
|
|
|
|
mov byte ptr ss:[bx], 0
|
2014-11-18 16:56:13 +00:00
|
|
|
|
freePISlotLarge 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_16]
|
|
|
|
|
push ax
|
2014-11-18 16:56:13 +00:00
|
|
|
|
call pi_slot_load
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp loc_ADB5 ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AC3F:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov word_124C4, 4 ; jumptable 0000A876 case 61
|
|
|
|
|
mov bx, word_12478
|
|
|
|
|
mov al, [bx]
|
|
|
|
|
mov [bp+arg_0], al
|
|
|
|
|
cmp [bp+arg_0], 3Dh ; '='
|
|
|
|
|
jz short loc_AC94
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_2]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A64D
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_showpage 1
|
|
|
|
|
graph_accesspage 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+var_2], 4
|
|
|
|
|
jge short loc_AC70
|
|
|
|
|
jmp short loc_ACE0
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AC70:
|
2015-01-12 21:48:13 +00:00
|
|
|
|
call grcg_setcolor pascal, (GC_RMW shl 16) + 0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 140040h
|
|
|
|
|
push 3B0107h
|
2014-08-27 21:20:37 +00:00
|
|
|
|
call grcg_byteboxfill_x
|
2018-12-04 22:08:57 +00:00
|
|
|
|
GRCG_OFF_CLOBBERING dx
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp short loc_ACF0
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AC94:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
inc word_12478
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_2]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A64D
|
|
|
|
|
mov word_124C4, 1
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_4]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A713
|
|
|
|
|
xor si, si
|
|
|
|
|
jmp short loc_ACCF
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ACB2:
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0A00040h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push [bp+var_2]
|
|
|
|
|
push si
|
|
|
|
|
call sub_A37F
|
|
|
|
|
cmp byte_1247E, 0
|
|
|
|
|
jnz short loc_ACCE
|
|
|
|
|
push [bp+var_4]
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ACCE:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ACCF:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp si, 4
|
|
|
|
|
jl short loc_ACB2
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_showpage 1
|
|
|
|
|
graph_accesspage 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ACE0:
|
2014-12-18 13:36:43 +00:00
|
|
|
|
call pi_slot_put_quarter pascal, (160 shl 16) + 64, 0, [bp+var_2]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ACF0:
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_showpage 0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0A00040h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_A30A
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ACFF:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp loc_ADB5 ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AD02:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, word_12478 ; jumptable 0000A876 case 109
|
|
|
|
|
mov al, [bx]
|
|
|
|
|
mov [bp+arg_0], al
|
|
|
|
|
cmp [bp+arg_0], 24h ; '$'
|
|
|
|
|
jnz short loc_AD1A
|
|
|
|
|
inc word_12478
|
2014-11-27 18:35:54 +00:00
|
|
|
|
push (KAJA_SONG_STOP shl 8)
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp short loc_AD26
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AD1A:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+arg_0], 2Ah ; '*'
|
|
|
|
|
jnz short loc_AD2E
|
|
|
|
|
inc word_12478
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AD24:
|
2014-11-27 18:35:54 +00:00
|
|
|
|
push (KAJA_SONG_PLAY shl 8)
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AD26:
|
2015-03-15 22:26:44 +00:00
|
|
|
|
call snd_kaja_interrupt
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AD2B:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
; Hack
|
|
|
|
|
db 0e9h
|
|
|
|
|
db 087h
|
|
|
|
|
db 000h
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AD2E:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+arg_0], 2Ch ; ','
|
|
|
|
|
; Hack
|
|
|
|
|
db 00fh
|
|
|
|
|
db 085h
|
|
|
|
|
db 07fh
|
|
|
|
|
db 000h
|
|
|
|
|
inc word_12478
|
|
|
|
|
mov [bp+var_2], 0
|
|
|
|
|
jmp short loc_AD6E
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AD41:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, word_12478
|
|
|
|
|
mov al, [bx]
|
|
|
|
|
mov [bp+arg_0], al
|
|
|
|
|
inc word_12478
|
|
|
|
|
mov ah, 0
|
|
|
|
|
mov bx, ax
|
|
|
|
|
test byte ptr [bx+0B69h], 20h
|
|
|
|
|
jnz short loc_AD74
|
|
|
|
|
cmp [bp+arg_0], 20h ; ' '
|
|
|
|
|
jz short loc_AD74
|
|
|
|
|
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_AD6E:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+var_2], 0Ch
|
|
|
|
|
jl short loc_AD41
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AD74:
|
2014-06-29 16:45:48 +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-06-29 16:45:48 +00:00
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_16]
|
|
|
|
|
push ax
|
2014-11-29 23:18:40 +00:00
|
|
|
|
push SND_LOAD_SONG
|
|
|
|
|
call snd_load
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp short loc_AD24
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AD95:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push ss ; jumptable 0000A876 case 101
|
|
|
|
|
lea ax, [bp+var_2]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_A64D
|
2015-02-13 11:56:51 +00:00
|
|
|
|
call snd_se_reset
|
|
|
|
|
call snd_se_play pascal, [bp+var_2]
|
|
|
|
|
call snd_se_update
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp short loc_ADB5 ; default
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ADB1:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, 0FFh ; jumptable 0000A876 case 36
|
|
|
|
|
jmp short loc_ADB7
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ADB5:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, 0 ; default
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_ADB7:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 2
|
|
|
|
|
sub_A847 endp
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
2014-08-10 01:44:54 +00:00
|
|
|
|
word_ADBC dw 24h, 3Dh, 40h, 62h
|
2014-06-29 16:45:48 +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_ADB1 ; jump table for switch statement
|
|
|
|
|
dw offset loc_AC3F
|
|
|
|
|
dw offset loc_AB48
|
|
|
|
|
dw offset loc_A8FC
|
|
|
|
|
dw offset loc_A8E5
|
|
|
|
|
dw offset loc_AD95
|
|
|
|
|
dw offset loc_AA38
|
|
|
|
|
dw offset loc_AA9F
|
|
|
|
|
dw offset loc_AB26
|
|
|
|
|
dw offset loc_AD02
|
|
|
|
|
dw offset loc_A87A
|
|
|
|
|
dw offset loc_AB61
|
|
|
|
|
dw offset loc_A88F
|
|
|
|
|
dw offset loc_AA0E
|
|
|
|
|
dw offset loc_A9D2
|
|
|
|
|
dw offset loc_A913
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_ADFC proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_6 = dword ptr -6
|
|
|
|
|
var_1 = byte ptr -1
|
|
|
|
|
|
|
|
|
|
enter 6, 0
|
|
|
|
|
mov word ptr [bp+var_6+2], ds
|
|
|
|
|
mov word ptr [bp+var_6], 654h
|
|
|
|
|
mov word_124BC, 50h ; 'P'
|
|
|
|
|
mov word_124BE, 140h
|
|
|
|
|
mov word_124C0, 1
|
|
|
|
|
mov byte_124C2, 0Fh
|
|
|
|
|
mov word_EB2C, 2
|
|
|
|
|
call sub_A4AE
|
|
|
|
|
mov byte_1247E, 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AE2D:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
call far ptr _input_reset_sense
|
|
|
|
|
test _input.hi, high INPUT_CANCEL
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jz short loc_AE40
|
|
|
|
|
mov byte_1247E, 1
|
|
|
|
|
jmp short loc_AE45
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AE40:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov byte_1247E, 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AE45:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, word_12478
|
|
|
|
|
mov al, [bx]
|
|
|
|
|
mov [bp+var_1], al
|
|
|
|
|
inc word_12478
|
|
|
|
|
mov ah, 0
|
|
|
|
|
mov bx, ax
|
|
|
|
|
test byte ptr [bx+0B69h], 20h
|
|
|
|
|
jnz short loc_AE2D
|
|
|
|
|
cmp [bp+var_1], 20h ; ' '
|
|
|
|
|
jz short loc_AE2D
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp [bp+var_1], 5Ch
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jnz short loc_AE82
|
|
|
|
|
mov bx, word_12478
|
|
|
|
|
mov al, [bx]
|
|
|
|
|
mov [bp+var_1], al
|
|
|
|
|
inc word_12478
|
|
|
|
|
push word ptr [bp+var_1]
|
|
|
|
|
call sub_A847
|
|
|
|
|
cmp al, 0FFh
|
|
|
|
|
jnz short loc_AE2D
|
|
|
|
|
jmp short loc_AEC8
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AE82:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
les bx, [bp+var_6]
|
|
|
|
|
mov al, [bp+var_1]
|
|
|
|
|
mov es:[bx], al
|
|
|
|
|
mov bx, word_12478
|
|
|
|
|
mov al, [bx]
|
|
|
|
|
mov [bp+var_1], al
|
|
|
|
|
mov bx, word ptr [bp+var_6]
|
|
|
|
|
mov es:[bx+1], al
|
|
|
|
|
inc word_12478
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_showpage 0
|
|
|
|
|
graph_accesspage 1
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push word_124BC
|
|
|
|
|
push word_124BE
|
|
|
|
|
mov al, byte_124C2
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
|
|
|
|
push word ptr [bp+var_6+2]
|
|
|
|
|
push bx
|
|
|
|
|
call far ptr loc_D1FC
|
|
|
|
|
call sub_A73B
|
|
|
|
|
jmp loc_AE2D
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AEC8:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_A59E
|
|
|
|
|
call sub_A57F
|
|
|
|
|
leave
|
|
|
|
|
retn
|
|
|
|
|
sub_ADFC endp
|
|
|
|
|
|
2014-11-13 23:55:00 +00:00
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
|
|
|
|
sub_AED0 proc near
|
|
|
|
|
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
arg_2 = word ptr 6
|
|
|
|
|
arg_4 = word ptr 8
|
|
|
|
|
|
2014-06-29 16:45:48 +00:00
|
|
|
|
enter 2, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov si, [bp+arg_0]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
or si, si
|
|
|
|
|
jnz short loc_AEF1
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_4]
|
|
|
|
|
push [bp+arg_2]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2017-01-21 17:10:53 +00:00
|
|
|
|
call _cdg_put
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp loc_B027
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_AEF1:
|
2015-01-12 21:48:13 +00:00
|
|
|
|
call grcg_setcolor pascal, (GC_RMW shl 16) + 15
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, 4
|
|
|
|
|
mov ax, si
|
|
|
|
|
cwd
|
|
|
|
|
idiv bx
|
|
|
|
|
mov si, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_4]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push ax
|
|
|
|
|
mov al, byte_124C7
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, ax
|
|
|
|
|
mov bx, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push _CosTable8[bx]
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov di, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_2]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
|
|
|
|
mov al, byte_124C7
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, ax
|
|
|
|
|
mov bx, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push _SinTable8[bx]
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov [bp+var_2], ax
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push di
|
|
|
|
|
push ax
|
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
inc ax
|
|
|
|
|
push ax
|
|
|
|
|
push 0
|
2017-01-29 22:05:40 +00:00
|
|
|
|
call _cdg_put_plane
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte_124C7
|
2014-09-18 15:20:12 +00:00
|
|
|
|
add al, 40h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov byte_124C7, al
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_4]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, ax
|
|
|
|
|
mov bx, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push _CosTable8[bx]
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov di, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_2]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
|
|
|
|
mov al, byte_124C7
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, ax
|
|
|
|
|
mov bx, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push _SinTable8[bx]
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov [bp+var_2], ax
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push di
|
|
|
|
|
push ax
|
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
inc ax
|
|
|
|
|
push ax
|
|
|
|
|
push 1
|
2017-01-29 22:05:40 +00:00
|
|
|
|
call _cdg_put_plane
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte_124C7
|
2014-09-18 15:20:12 +00:00
|
|
|
|
add al, 40h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov byte_124C7, al
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_4]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, ax
|
|
|
|
|
mov bx, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push _CosTable8[bx]
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov di, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_2]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
|
|
|
|
mov al, byte_124C7
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, ax
|
|
|
|
|
mov bx, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push _SinTable8[bx]
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov [bp+var_2], ax
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push di
|
|
|
|
|
push ax
|
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
inc ax
|
|
|
|
|
push ax
|
|
|
|
|
push 2
|
2017-01-29 22:05:40 +00:00
|
|
|
|
call _cdg_put_plane
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte_124C7
|
2014-09-18 15:20:12 +00:00
|
|
|
|
add al, 40h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov byte_124C7, al
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_4]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, ax
|
|
|
|
|
mov bx, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push _CosTable8[bx]
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov di, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_2]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
|
|
|
|
mov al, byte_124C7
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, ax
|
|
|
|
|
mov bx, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push _SinTable8[bx]
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov [bp+var_2], ax
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push di
|
|
|
|
|
push ax
|
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
inc ax
|
|
|
|
|
push ax
|
|
|
|
|
push 3
|
2017-01-29 22:05:40 +00:00
|
|
|
|
call _cdg_put_plane
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte_124C7
|
2014-09-18 15:20:12 +00:00
|
|
|
|
add al, 40h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov byte_124C7, al
|
2018-12-04 22:08:57 +00:00
|
|
|
|
GRCG_OFF_CLOBBERING dx
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B027:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 6
|
2014-11-13 23:55:00 +00:00
|
|
|
|
sub_AED0 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
|
|
|
|
sub_B02D proc near
|
|
|
|
|
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
arg_2 = word ptr 6
|
|
|
|
|
arg_4 = word ptr 8
|
|
|
|
|
|
2014-06-29 16:45:48 +00:00
|
|
|
|
enter 2, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov si, [bp+arg_0]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
or si, si
|
|
|
|
|
jnz short loc_B04E
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_4]
|
|
|
|
|
push [bp+arg_2]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2017-01-21 17:10:53 +00:00
|
|
|
|
call _cdg_put
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp loc_B13E
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B04E:
|
2015-01-12 21:48:13 +00:00
|
|
|
|
call grcg_setcolor pascal, (GC_RMW shl 16) + 15
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, si
|
|
|
|
|
cwd
|
|
|
|
|
sub ax, dx
|
|
|
|
|
sar ax, 1
|
|
|
|
|
mov si, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_4]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cwd
|
|
|
|
|
sub ax, dx
|
|
|
|
|
sar ax, 1
|
|
|
|
|
push ax
|
2014-08-28 05:54:38 +00:00
|
|
|
|
push _CosTable8+192
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov di, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_2]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, si
|
|
|
|
|
cwd
|
|
|
|
|
sub ax, dx
|
|
|
|
|
sar ax, 1
|
|
|
|
|
push ax
|
2014-08-28 05:54:38 +00:00
|
|
|
|
push _CosTable8+64
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov [bp+var_2], ax
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push di
|
|
|
|
|
push ax
|
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
inc ax
|
|
|
|
|
push ax
|
|
|
|
|
push 0
|
2017-01-29 22:05:40 +00:00
|
|
|
|
call _cdg_put_plane
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_4]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
2014-08-28 05:54:38 +00:00
|
|
|
|
push _CosTable8+128
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov di, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_2]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
2014-08-28 05:54:38 +00:00
|
|
|
|
push _CosTable8
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov [bp+var_2], ax
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push di
|
|
|
|
|
push ax
|
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
inc ax
|
|
|
|
|
push ax
|
|
|
|
|
push 1
|
2017-01-29 22:05:40 +00:00
|
|
|
|
call _cdg_put_plane
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_4]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, si
|
|
|
|
|
cwd
|
|
|
|
|
sub ax, dx
|
|
|
|
|
sar ax, 1
|
|
|
|
|
push ax
|
2014-08-28 05:54:38 +00:00
|
|
|
|
push _CosTable8+448
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov di, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_2]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, si
|
|
|
|
|
cwd
|
|
|
|
|
sub ax, dx
|
|
|
|
|
sar ax, 1
|
|
|
|
|
push ax
|
2014-08-28 05:54:38 +00:00
|
|
|
|
push _CosTable8+320
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov [bp+var_2], ax
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push di
|
|
|
|
|
push ax
|
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
inc ax
|
|
|
|
|
push ax
|
|
|
|
|
push 2
|
2017-01-29 22:05:40 +00:00
|
|
|
|
call _cdg_put_plane
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_4]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
2014-08-28 05:54:38 +00:00
|
|
|
|
push _CosTable8+384
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov di, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_2]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
2014-08-28 05:54:38 +00:00
|
|
|
|
push _CosTable8+256
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov [bp+var_2], ax
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push di
|
|
|
|
|
push ax
|
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
inc ax
|
|
|
|
|
push ax
|
|
|
|
|
push 3
|
2017-01-29 22:05:40 +00:00
|
|
|
|
call _cdg_put_plane
|
2018-12-04 22:08:57 +00:00
|
|
|
|
GRCG_OFF_CLOBBERING dx
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B13E:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 6
|
2014-11-13 23:55:00 +00:00
|
|
|
|
sub_B02D endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
|
|
|
|
sub_B144 proc near
|
|
|
|
|
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
arg_2 = word ptr 6
|
|
|
|
|
arg_4 = word ptr 8
|
|
|
|
|
|
2014-06-29 16:45:48 +00:00
|
|
|
|
enter 2, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov si, [bp+arg_0]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
or si, si
|
|
|
|
|
jnz short loc_B165
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_4]
|
|
|
|
|
push [bp+arg_2]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2017-01-21 17:10:53 +00:00
|
|
|
|
call _cdg_put
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp loc_B255
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B165:
|
2015-01-12 21:48:13 +00:00
|
|
|
|
call grcg_setcolor pascal, (GC_RMW shl 16) + 15
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, si
|
|
|
|
|
cwd
|
|
|
|
|
sub ax, dx
|
|
|
|
|
sar ax, 1
|
|
|
|
|
mov si, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_4]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cwd
|
|
|
|
|
sub ax, dx
|
|
|
|
|
sar ax, 1
|
|
|
|
|
push ax
|
2014-08-28 05:54:38 +00:00
|
|
|
|
push _CosTable8
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov di, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_2]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, si
|
|
|
|
|
cwd
|
|
|
|
|
sub ax, dx
|
|
|
|
|
sar ax, 1
|
|
|
|
|
push ax
|
2014-08-28 05:54:38 +00:00
|
|
|
|
push _SinTable8
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov [bp+var_2], ax
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push di
|
|
|
|
|
push ax
|
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
inc ax
|
|
|
|
|
push ax
|
|
|
|
|
push 0
|
2017-01-29 22:05:40 +00:00
|
|
|
|
call _cdg_put_plane
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_4]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
2014-08-28 05:54:38 +00:00
|
|
|
|
push _CosTable8
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov di, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_2]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
2014-08-28 05:54:38 +00:00
|
|
|
|
push _SinTable8
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov [bp+var_2], ax
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push di
|
|
|
|
|
push ax
|
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
inc ax
|
|
|
|
|
push ax
|
|
|
|
|
push 1
|
2017-01-29 22:05:40 +00:00
|
|
|
|
call _cdg_put_plane
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_4]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, si
|
|
|
|
|
cwd
|
|
|
|
|
sub ax, dx
|
|
|
|
|
sar ax, 1
|
|
|
|
|
push ax
|
2014-08-28 05:54:38 +00:00
|
|
|
|
push _CosTable8+256
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov di, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_2]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, si
|
|
|
|
|
cwd
|
|
|
|
|
sub ax, dx
|
|
|
|
|
sar ax, 1
|
|
|
|
|
push ax
|
2014-08-28 05:54:38 +00:00
|
|
|
|
push _CosTable8+128
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov [bp+var_2], ax
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push di
|
|
|
|
|
push ax
|
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
inc ax
|
|
|
|
|
push ax
|
|
|
|
|
push 2
|
2017-01-29 22:05:40 +00:00
|
|
|
|
call _cdg_put_plane
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_4]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
2014-08-28 05:54:38 +00:00
|
|
|
|
push _CosTable8+256
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov di, ax
|
2014-11-13 23:55:00 +00:00
|
|
|
|
push [bp+arg_2]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
2014-08-28 05:54:38 +00:00
|
|
|
|
push _CosTable8+128
|
2017-01-08 20:01:13 +00:00
|
|
|
|
call vector1_at
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov [bp+var_2], ax
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push di
|
|
|
|
|
push ax
|
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
inc ax
|
|
|
|
|
push ax
|
|
|
|
|
push 3
|
2017-01-29 22:05:40 +00:00
|
|
|
|
call _cdg_put_plane
|
2018-12-04 22:08:57 +00:00
|
|
|
|
GRCG_OFF_CLOBBERING dx
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B255:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 6
|
2014-11-13 23:55:00 +00:00
|
|
|
|
sub_B144 endp
|
|
|
|
|
|
2014-06-29 16:45:48 +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_B25B proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
arg_2 = word ptr 6
|
|
|
|
|
arg_4 = word ptr 8
|
|
|
|
|
arg_6 = word ptr 0Ah
|
|
|
|
|
arg_8 = word ptr 0Ch
|
|
|
|
|
|
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push si
|
|
|
|
|
mov si, [bp+arg_0]
|
|
|
|
|
mov ax, si
|
|
|
|
|
cwd
|
|
|
|
|
sub ax, dx
|
|
|
|
|
sar ax, 1
|
|
|
|
|
mov si, ax
|
|
|
|
|
mov ax, [bp+arg_8]
|
|
|
|
|
sub ax, si
|
|
|
|
|
push ax
|
|
|
|
|
mov ax, [bp+arg_6]
|
|
|
|
|
sub ax, si
|
|
|
|
|
push ax
|
|
|
|
|
mov ax, si
|
|
|
|
|
add ax, ax
|
|
|
|
|
add ax, [bp+arg_4]
|
|
|
|
|
push ax
|
|
|
|
|
mov ax, si
|
|
|
|
|
add ax, ax
|
|
|
|
|
add ax, [bp+arg_2]
|
|
|
|
|
push ax
|
2014-11-12 22:11:16 +00:00
|
|
|
|
call sub_D6F6
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop si
|
|
|
|
|
pop bp
|
|
|
|
|
retn 0Ah
|
|
|
|
|
sub_B25B endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_B291 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2018-12-29 19:08:52 +00:00
|
|
|
|
@@page = word ptr -2
|
2014-06-29 16:45:48 +00:00
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
arg_2 = word ptr 6
|
|
|
|
|
|
|
|
|
|
enter 2, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
mov di, [bp+arg_2]
|
|
|
|
|
mov si, 3Fh ; '?'
|
2018-12-29 19:08:52 +00:00
|
|
|
|
mov [bp+@@page], 0
|
|
|
|
|
graph_accesspage 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov dx, 0A4h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, 1
|
|
|
|
|
jmp short loc_B30B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B2AF:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push di
|
|
|
|
|
push [bp+arg_0]
|
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
shl ax, 4
|
|
|
|
|
mov bx, ax
|
2017-01-19 20:14:22 +00:00
|
|
|
|
push _cdg_slots.pixel_width[bx]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
shl ax, 4
|
|
|
|
|
mov bx, ax
|
2017-01-19 20:14:22 +00:00
|
|
|
|
push _cdg_slots.pixel_height[bx]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
lea ax, [si+1]
|
|
|
|
|
push ax
|
|
|
|
|
call sub_B25B
|
|
|
|
|
dec si
|
|
|
|
|
mov al, byte_124C7
|
|
|
|
|
add al, 8
|
|
|
|
|
mov byte_124C7, al
|
|
|
|
|
push di
|
|
|
|
|
push [bp+arg_0]
|
|
|
|
|
push si
|
2014-11-13 23:55:00 +00:00
|
|
|
|
call fp_124C8
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B2E8:
|
2014-08-26 20:52:26 +00:00
|
|
|
|
cmp vsync_Count1, 2
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jb short loc_B2E8
|
2014-08-26 20:52:26 +00:00
|
|
|
|
mov vsync_Count1, 0
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_showpage byte ptr [bp+@@page]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, 1
|
2018-12-29 19:08:52 +00:00
|
|
|
|
sub ax, [bp+@@page]
|
|
|
|
|
mov [bp+@@page], ax
|
|
|
|
|
mov dx, 0A6h
|
|
|
|
|
mov al, byte ptr [bp+@@page]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B30B:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-06-29 16:45:48 +00:00
|
|
|
|
or si, si
|
|
|
|
|
jg short loc_B2AF
|
2018-12-29 19:08:52 +00:00
|
|
|
|
push [bp+@@page]
|
2014-08-27 04:13:48 +00:00
|
|
|
|
call graph_copy_page
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 4
|
|
|
|
|
sub_B291 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_B31E proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2018-12-29 19:08:52 +00:00
|
|
|
|
@@page = word ptr -2
|
2014-06-29 16:45:48 +00:00
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
arg_2 = word ptr 6
|
|
|
|
|
|
|
|
|
|
enter 2, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
mov di, [bp+arg_2]
|
|
|
|
|
xor si, si
|
2018-12-29 19:08:52 +00:00
|
|
|
|
mov [bp+@@page], 0
|
|
|
|
|
graph_accesspage 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov dx, 0A4h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, 1
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B339:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push di
|
|
|
|
|
push [bp+arg_0]
|
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
shl ax, 4
|
|
|
|
|
mov bx, ax
|
2017-01-19 20:14:22 +00:00
|
|
|
|
push _cdg_slots.pixel_width[bx]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte_124C6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
shl ax, 4
|
|
|
|
|
mov bx, ax
|
2017-01-19 20:14:22 +00:00
|
|
|
|
push _cdg_slots.pixel_height[bx]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
|
|
|
|
call sub_B25B
|
|
|
|
|
inc si
|
|
|
|
|
mov al, byte_124C7
|
|
|
|
|
add al, 8
|
|
|
|
|
mov byte_124C7, al
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp si, 40h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jge short loc_B39A
|
|
|
|
|
push di
|
|
|
|
|
push [bp+arg_0]
|
|
|
|
|
push si
|
2014-11-13 23:55:00 +00:00
|
|
|
|
call fp_124C8
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B375:
|
2014-08-26 20:52:26 +00:00
|
|
|
|
cmp vsync_Count1, 2
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jb short loc_B375
|
2014-08-26 20:52:26 +00:00
|
|
|
|
mov vsync_Count1, 0
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_showpage byte ptr [bp+@@page]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, 1
|
2018-12-29 19:08:52 +00:00
|
|
|
|
sub ax, [bp+@@page]
|
|
|
|
|
mov [bp+@@page], ax
|
|
|
|
|
mov dx, 0A6h
|
|
|
|
|
mov al, byte ptr [bp+@@page]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp short loc_B339
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B39A:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, 1
|
2018-12-29 19:08:52 +00:00
|
|
|
|
sub ax, [bp+@@page]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push ax
|
2014-08-27 04:13:48 +00:00
|
|
|
|
call graph_copy_page
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 4
|
|
|
|
|
sub_B31E endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_B3AC proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2018-12-29 19:08:52 +00:00
|
|
|
|
@@page = word ptr -2
|
2014-06-29 16:45:48 +00:00
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
arg_2 = word ptr 6
|
|
|
|
|
arg_4 = word ptr 8
|
|
|
|
|
arg_6 = word ptr 0Ah
|
|
|
|
|
|
|
|
|
|
enter 2, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
mov di, [bp+arg_6]
|
|
|
|
|
xor si, si
|
2018-12-29 19:08:52 +00:00
|
|
|
|
mov [bp+@@page], 0
|
|
|
|
|
graph_accesspage 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov dx, 0A4h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, 1
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B3C7:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push di
|
|
|
|
|
push [bp+arg_4]
|
2017-01-19 20:14:22 +00:00
|
|
|
|
push _cdg_slots.pixel_width + (size CDGSlot * 2)
|
|
|
|
|
push _cdg_slots.pixel_height + (size CDGSlot * 2)
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
|
|
|
|
call sub_B25B
|
|
|
|
|
push [bp+arg_2]
|
|
|
|
|
push [bp+arg_0]
|
2017-01-19 20:14:22 +00:00
|
|
|
|
push _cdg_slots.pixel_width + (size CDGSlot * 0)
|
|
|
|
|
push _cdg_slots.pixel_height + (size CDGSlot * 0)
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
|
|
|
|
call sub_B25B
|
|
|
|
|
inc si
|
|
|
|
|
mov al, byte_124C7
|
2014-09-18 15:20:12 +00:00
|
|
|
|
add al, 0F8h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov byte_124C7, al
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp si, 40h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jge short loc_B43B
|
|
|
|
|
mov byte_124C6, 2
|
|
|
|
|
push di
|
|
|
|
|
push [bp+arg_4]
|
|
|
|
|
push si
|
2014-11-13 23:55:00 +00:00
|
|
|
|
call fp_124C8
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov byte_124C6, 0
|
|
|
|
|
push [bp+arg_2]
|
|
|
|
|
push [bp+arg_0]
|
|
|
|
|
push si
|
2014-11-13 23:55:00 +00:00
|
|
|
|
call fp_124C8
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B416:
|
2014-08-26 20:52:26 +00:00
|
|
|
|
cmp vsync_Count1, 2
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jb short loc_B416
|
2014-08-26 20:52:26 +00:00
|
|
|
|
mov vsync_Count1, 0
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_showpage byte ptr [bp+@@page]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, 1
|
2018-12-29 19:08:52 +00:00
|
|
|
|
sub ax, [bp+@@page]
|
|
|
|
|
mov [bp+@@page], ax
|
|
|
|
|
mov dx, 0A6h
|
|
|
|
|
mov al, byte ptr [bp+@@page]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp short loc_B3C7
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B43B:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, 1
|
2018-12-29 19:08:52 +00:00
|
|
|
|
sub ax, [bp+@@page]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push ax
|
2014-08-27 04:13:48 +00:00
|
|
|
|
call graph_copy_page
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 8
|
|
|
|
|
sub_B3AC endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_B44D proc near
|
2014-06-29 16:45:48 +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
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_load pascal, 0, ds, offset aSff1_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-06-29 16:45:48 +00:00
|
|
|
|
push 0
|
2014-08-27 04:13:48 +00:00
|
|
|
|
call graph_copy_page
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_D626
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_STOP
|
2014-11-29 23:18:40 +00:00
|
|
|
|
call snd_load pascal, ds, offset aStaff, SND_LOAD_SONG
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_PLAY
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Ch
|
2014-08-26 22:21:45 +00:00
|
|
|
|
call palette_black_in
|
2017-01-19 20:14:22 +00:00
|
|
|
|
call _cdg_load_single pascal, 0, ds, offset aSff1_cdg, 0
|
|
|
|
|
call _cdg_load_single_noalpha pascal, 1, ds, offset aSff1b_cdg, 0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 30040h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_D046
|
|
|
|
|
mov byte_124C6, 0
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov fp_124C8, offset sub_AED0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 16000A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_B291
|
2017-01-19 20:14:22 +00:00
|
|
|
|
call _cdg_load_single pascal, 2, ds, offset aSff2_cdg, 0
|
|
|
|
|
call _cdg_load_single_noalpha pascal, 3, ds, offset aSff2b_cdg, 0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 700A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_D046
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov fp_124C8, offset sub_B02D
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 16000A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_B31E
|
|
|
|
|
mov byte_124C6, 2
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov fp_124C8, offset sub_B144
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00080h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_B291
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov byte_124C6, 0
|
2017-01-19 20:14:22 +00:00
|
|
|
|
call _cdg_load_single pascal, 0, ds, offset aSff3_cdg, 0
|
|
|
|
|
call _cdg_load_single_noalpha pascal, 1, ds, offset aSff3b_cdg, 0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0B00A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_D046
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 12000C8h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_B291
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1300A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_D046
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov fp_124C8, offset sub_B02D
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00080h
|
|
|
|
|
push 12000C8h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_B3AC
|
|
|
|
|
push 4
|
2014-08-26 22:33:43 +00:00
|
|
|
|
call palette_black_out
|
2017-01-19 20:14:22 +00:00
|
|
|
|
call _cdg_freeall
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_load pascal, 0, ds, offset aSff2_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-06-29 16:45:48 +00:00
|
|
|
|
push 0
|
2014-08-27 04:13:48 +00:00
|
|
|
|
call graph_copy_page
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_D626
|
|
|
|
|
push 4
|
2014-08-26 22:21:45 +00:00
|
|
|
|
call palette_black_in
|
2017-01-19 20:14:22 +00:00
|
|
|
|
call _cdg_load_single pascal, 2, ds, offset aSff4_cdg, 0
|
|
|
|
|
call _cdg_load_single_noalpha pascal, 3, ds, offset aSff4b_cdg, 0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1700A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_D046
|
|
|
|
|
mov byte_124C6, 2
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov fp_124C8, offset sub_B144
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 200070h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_B291
|
2017-01-19 20:14:22 +00:00
|
|
|
|
call _cdg_free pascal, 2
|
|
|
|
|
call _cdg_load_single pascal, 4, ds, offset aSff5_cdg, 0
|
|
|
|
|
call _cdg_load_single_noalpha pascal, 5, ds, offset aSff5b_cdg, 0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1B00A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_D046
|
|
|
|
|
mov byte_124C6, 4
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov fp_124C8, offset sub_B02D
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 2000B8h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_B291
|
2017-01-19 20:14:22 +00:00
|
|
|
|
call _cdg_load_single pascal, 0, ds, offset aSff8_cdg, 0
|
|
|
|
|
call _cdg_load_single_noalpha pascal, 1, ds, offset aSff8b_cdg, 0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1F00A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_D046
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov fp_124C8, offset sub_B144
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 2000B8h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_B31E
|
|
|
|
|
mov byte_124C6, 0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 4000B8h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_B291
|
2017-01-19 20:14:22 +00:00
|
|
|
|
call _cdg_load_single pascal, 4, ds, offset aSff9_cdg, 0
|
|
|
|
|
call _cdg_load_single_noalpha pascal, 5, ds, offset aSff9b_cdg, 0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 2300A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_D046
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov fp_124C8, offset sub_AED0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 4000B8h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_B31E
|
|
|
|
|
mov byte_124C6, 4
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 4000B8h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_B291
|
2017-01-19 20:14:22 +00:00
|
|
|
|
call _cdg_load_single pascal, 0, ds, offset aSff6_cdg, 0
|
|
|
|
|
call _cdg_load_single_noalpha pascal, 1, ds, offset aSff6b_cdg, 0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 2700A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_D046
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov fp_124C8, offset sub_B02D
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 4000B8h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_B31E
|
|
|
|
|
mov byte_124C6, 0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 2000B8h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_B291
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 2B00A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_D046
|
2014-11-13 23:55:00 +00:00
|
|
|
|
mov fp_124C8, offset sub_B144
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 200070h
|
|
|
|
|
push 2000B8h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_B3AC
|
2017-01-19 20:14:22 +00:00
|
|
|
|
call _cdg_load_single pascal, 0, ds, offset aSff7_cdg, 0
|
|
|
|
|
call _cdg_load_single_noalpha pascal, 1, ds, offset aSff7b_cdg, 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov byte_124C6, 0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 200150h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_B291
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 3000A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_D046
|
|
|
|
|
call sub_D6C4
|
2017-01-19 20:14:22 +00:00
|
|
|
|
call _cdg_freeall
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 4
|
2014-08-26 22:33:43 +00:00
|
|
|
|
call palette_black_out
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retn
|
|
|
|
|
sub_B44D endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_B787 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_6 = word ptr -6
|
|
|
|
|
var_4 = byte ptr -4
|
|
|
|
|
var_3 = byte ptr -3
|
|
|
|
|
var_2 = byte ptr -2
|
|
|
|
|
var_1 = byte ptr -1
|
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
arg_2 = word ptr 6
|
|
|
|
|
arg_4 = word ptr 8
|
|
|
|
|
|
|
|
|
|
enter 6, 0
|
|
|
|
|
push si
|
|
|
|
|
xor si, si
|
|
|
|
|
mov [bp+var_4], 2
|
|
|
|
|
mov ax, [bp+arg_0]
|
|
|
|
|
mov bx, 64h ; 'd'
|
|
|
|
|
xor dx, dx
|
|
|
|
|
div bx
|
|
|
|
|
mov [bp+var_6], ax
|
|
|
|
|
mov ax, [bp+arg_0]
|
|
|
|
|
xor dx, dx
|
|
|
|
|
div bx
|
|
|
|
|
mov [bp+arg_0], dx
|
|
|
|
|
cmp byte_EC73, 0
|
|
|
|
|
jnz short loc_B7C5
|
|
|
|
|
or si, [bp+var_6]
|
|
|
|
|
or si, si
|
|
|
|
|
jz short loc_B7C1
|
|
|
|
|
mov al, byte ptr [bp+var_6]
|
2014-09-18 15:20:12 +00:00
|
|
|
|
add al, 0A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_4], al
|
|
|
|
|
jmp short loc_B7C5
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B7C1:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_4], 2
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B7C5:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, [bp+arg_0]
|
|
|
|
|
mov bx, 0Ah
|
|
|
|
|
xor dx, dx
|
|
|
|
|
div bx
|
|
|
|
|
mov [bp+var_6], ax
|
|
|
|
|
mov ax, [bp+arg_0]
|
|
|
|
|
xor dx, dx
|
|
|
|
|
div bx
|
|
|
|
|
mov [bp+arg_0], dx
|
|
|
|
|
or si, [bp+var_6]
|
|
|
|
|
mov al, byte_EC73
|
|
|
|
|
mov ah, 0
|
|
|
|
|
or si, ax
|
|
|
|
|
or si, si
|
|
|
|
|
jz short loc_B7F4
|
|
|
|
|
mov al, byte ptr [bp+var_6]
|
2014-09-18 15:20:12 +00:00
|
|
|
|
add al, 0A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_3], al
|
|
|
|
|
jmp short loc_B7F8
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B7F4:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_3], 2
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B7F8:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte ptr [bp+arg_0]
|
2014-09-18 15:20:12 +00:00
|
|
|
|
add al, 0A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_2], al
|
|
|
|
|
mov [bp+var_1], 0
|
|
|
|
|
push [bp+arg_4]
|
|
|
|
|
push [bp+arg_2]
|
|
|
|
|
push 10h
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_4]
|
|
|
|
|
push ax
|
|
|
|
|
push 0Eh
|
2014-09-15 01:03:52 +00:00
|
|
|
|
call graph_gaiji_puts
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 6
|
|
|
|
|
sub_B787 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_B81D proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_C = byte ptr -0Ch
|
|
|
|
|
var_4 = byte ptr -4
|
|
|
|
|
var_2 = byte ptr -2
|
|
|
|
|
var_1 = byte ptr -1
|
|
|
|
|
|
|
|
|
|
enter 0Ch, 0
|
|
|
|
|
push si
|
|
|
|
|
mov [bp+var_2], 0
|
|
|
|
|
xor si, si
|
|
|
|
|
jmp short loc_B851
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B82A:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, 7
|
|
|
|
|
sub ax, si
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add bx, ax
|
|
|
|
|
mov al, es:[bx+1Dh]
|
|
|
|
|
mov [bp+var_1], al
|
|
|
|
|
or [bp+var_2], al
|
|
|
|
|
cmp [bp+var_2], 0
|
|
|
|
|
jz short loc_B84C
|
2014-09-18 15:20:12 +00:00
|
|
|
|
add al, 0A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+si+var_C], al
|
|
|
|
|
jmp short loc_B850
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B84C:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+si+var_C], 2
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B850:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B851:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp si, 8
|
|
|
|
|
jl short loc_B82A
|
|
|
|
|
mov [bp+var_4], 0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0A00060h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 10h
|
|
|
|
|
push ss
|
|
|
|
|
lea ax, [bp+var_C]
|
|
|
|
|
push ax
|
|
|
|
|
push 0Eh
|
2014-09-15 01:03:52 +00:00
|
|
|
|
call graph_gaiji_puts
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_2], 1
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1200060h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Eh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aU_ ; "<22>_"
|
|
|
|
|
call far ptr loc_D1FC
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn
|
|
|
|
|
sub_B81D endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_B886 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_6 = dword ptr -6
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
arg_2 = word ptr 6
|
|
|
|
|
arg_4 = word ptr 8
|
|
|
|
|
arg_6 = word ptr 0Ah
|
|
|
|
|
|
|
|
|
|
enter 6, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
mov si, [bp+arg_6]
|
|
|
|
|
mov di, [bp+arg_4]
|
|
|
|
|
cmp [bp+arg_2], 0
|
|
|
|
|
jz short loc_B8A2
|
|
|
|
|
mov [bp+var_6], 0F4240h
|
|
|
|
|
jmp short loc_B8AA
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B8A2:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_6], 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B8AA:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, [bp+arg_2]
|
|
|
|
|
cmp ax, [bp+arg_0]
|
|
|
|
|
jz short loc_B8E3
|
|
|
|
|
cmp [bp+arg_2], 0
|
|
|
|
|
jz short loc_B8CD
|
|
|
|
|
movzx ebx, [bp+arg_2]
|
|
|
|
|
mov eax, [bp+var_6]
|
|
|
|
|
xor edx, edx
|
|
|
|
|
div ebx
|
|
|
|
|
mov [bp+var_6], eax
|
|
|
|
|
jmp short loc_B8D5
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B8CD:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_6], 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B8D5:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
movzx eax, [bp+arg_0]
|
|
|
|
|
imul eax, [bp+var_6]
|
|
|
|
|
mov [bp+var_6], eax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B8E3:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte_EC4A, 0
|
|
|
|
|
jnz short loc_B8F4
|
|
|
|
|
mov eax, dword_124CE
|
|
|
|
|
add eax, [bp+var_6]
|
|
|
|
|
jmp short loc_B8FC
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B8F4:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov eax, dword_124CE
|
|
|
|
|
sub eax, [bp+var_6]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_B8FC:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov dword_124CE, eax
|
|
|
|
|
mov eax, [bp+var_6]
|
|
|
|
|
mov ebx, 2710h
|
|
|
|
|
xor edx, edx
|
|
|
|
|
div ebx
|
|
|
|
|
mov [bp+var_2], ax
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
push ax
|
|
|
|
|
call sub_B787
|
|
|
|
|
mov ebx, 2710h
|
|
|
|
|
mov eax, [bp+var_6]
|
|
|
|
|
xor edx, edx
|
|
|
|
|
div ebx
|
|
|
|
|
mov [bp+var_6], edx
|
|
|
|
|
mov eax, [bp+var_6]
|
|
|
|
|
mov ebx, 64h ; 'd'
|
|
|
|
|
xor edx, edx
|
|
|
|
|
div ebx
|
|
|
|
|
mov [bp+var_2], ax
|
|
|
|
|
mov byte_EC73, 1
|
|
|
|
|
lea ax, [si+30h]
|
|
|
|
|
push ax
|
|
|
|
|
push di
|
|
|
|
|
push [bp+var_2]
|
|
|
|
|
call sub_B787
|
|
|
|
|
mov byte_EC73, 0
|
|
|
|
|
lea ax, [si+30h]
|
|
|
|
|
push ax
|
|
|
|
|
push di
|
|
|
|
|
push 0Eh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aBd ; "<22>D"
|
|
|
|
|
call far ptr loc_D1FC
|
|
|
|
|
lea ax, [si+60h]
|
|
|
|
|
push ax
|
|
|
|
|
push di
|
|
|
|
|
push 0Eh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aBu ; "<22><>"
|
|
|
|
|
call far ptr loc_D1FC
|
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 8
|
|
|
|
|
sub_B886 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_B97B proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
arg_0 = dword ptr 4
|
|
|
|
|
arg_4 = word ptr 8
|
|
|
|
|
arg_6 = word ptr 0Ah
|
|
|
|
|
|
|
|
|
|
enter 2, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
mov si, [bp+arg_6]
|
|
|
|
|
mov di, [bp+arg_4]
|
|
|
|
|
mov eax, [bp+arg_0]
|
|
|
|
|
mov ebx, 2710h
|
|
|
|
|
xor edx, edx
|
|
|
|
|
div ebx
|
|
|
|
|
mov [bp+var_2], ax
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
push ax
|
|
|
|
|
call sub_B787
|
|
|
|
|
mov ebx, 2710h
|
|
|
|
|
mov eax, [bp+arg_0]
|
|
|
|
|
xor edx, edx
|
|
|
|
|
div ebx
|
|
|
|
|
mov [bp+arg_0], edx
|
|
|
|
|
mov eax, [bp+arg_0]
|
|
|
|
|
mov ebx, 64h ; 'd'
|
|
|
|
|
xor edx, edx
|
|
|
|
|
div ebx
|
|
|
|
|
mov [bp+var_2], ax
|
|
|
|
|
mov byte_EC73, 1
|
|
|
|
|
lea ax, [si+30h]
|
|
|
|
|
push ax
|
|
|
|
|
push di
|
|
|
|
|
push [bp+var_2]
|
|
|
|
|
call sub_B787
|
|
|
|
|
mov byte_EC73, 0
|
|
|
|
|
lea ax, [si+30h]
|
|
|
|
|
push ax
|
|
|
|
|
push di
|
|
|
|
|
push 0Eh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aBd_0 ; "<22>D"
|
|
|
|
|
call far ptr loc_D1FC
|
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 8
|
|
|
|
|
sub_B97B endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_B9F2 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_8 = dword ptr -8
|
|
|
|
|
var_4 = dword ptr -4
|
|
|
|
|
|
|
|
|
|
enter 8, 0
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov eax, es:[bx+14h]
|
2014-08-30 10:13:04 +00:00
|
|
|
|
mov random_seed, eax
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, es:[bx+0Ch]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
dec ax
|
|
|
|
|
mov bx, ax
|
|
|
|
|
cmp bx, 5
|
|
|
|
|
ja short loc_BA52
|
|
|
|
|
add bx, bx
|
|
|
|
|
jmp cs:off_BB75[bx]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BA18:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_4], 9C4h
|
|
|
|
|
jmp short loc_BA52
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BA22:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_4], 7D0h
|
|
|
|
|
jmp short loc_BA52
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BA2C:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_4], 5DCh
|
|
|
|
|
jmp short loc_BA52
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BA36:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_4], 3E8h
|
|
|
|
|
jmp short loc_BA52
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BA40:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_4], 1F4h
|
|
|
|
|
jmp short loc_BA52
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BA4A:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_4], 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BA52:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, es:[bx+0Eh]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
or ax, ax
|
|
|
|
|
jz short loc_BA67
|
|
|
|
|
cmp ax, 1
|
|
|
|
|
jz short loc_BA71
|
|
|
|
|
jmp short loc_BA79
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BA67:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add [bp+var_4], 9C4h
|
|
|
|
|
jmp short loc_BA79
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BA71:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add [bp+var_4], 5DCh
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BA79:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte ptr es:[bx+49h], 0
|
|
|
|
|
jz short loc_BA8C
|
|
|
|
|
add [bp+var_4], 7D0h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BA8C:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp word ptr es:[bx+38h], 0
|
|
|
|
|
jz short loc_BAA5
|
|
|
|
|
mov ax, es:[bx+38h]
|
|
|
|
|
add ax, ax
|
|
|
|
|
movzx eax, ax
|
|
|
|
|
add [bp+var_4], eax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BAA5:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_8], 0F4240h
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, es:[bx+28h]
|
|
|
|
|
cmp ax, es:[bx+2Ah]
|
|
|
|
|
jz short loc_BAF3
|
|
|
|
|
cmp word ptr es:[bx+28h], 0
|
|
|
|
|
jz short loc_BAD8
|
|
|
|
|
movzx ebx, word ptr es:[bx+28h]
|
|
|
|
|
mov eax, [bp+var_8]
|
|
|
|
|
xor edx, edx
|
|
|
|
|
div ebx
|
|
|
|
|
mov [bp+var_8], eax
|
|
|
|
|
jmp short loc_BAE0
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BAD8:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_8], 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BAE0:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
movzx eax, word ptr es:[bx+2Ah]
|
|
|
|
|
imul eax, [bp+var_8]
|
|
|
|
|
mov [bp+var_8], eax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BAF3:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov eax, 0F4240h
|
|
|
|
|
sub eax, [bp+var_8]
|
|
|
|
|
mov [bp+var_8], eax
|
|
|
|
|
mov ebx, 64h ; 'd'
|
|
|
|
|
xor edx, edx
|
|
|
|
|
div ebx
|
|
|
|
|
mov [bp+var_8], eax
|
|
|
|
|
cmp [bp+var_8], 0
|
|
|
|
|
jz short loc_BB2A
|
2014-08-30 10:13:04 +00:00
|
|
|
|
call IRand
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cwde
|
|
|
|
|
xor edx, edx
|
|
|
|
|
div [bp+var_8]
|
|
|
|
|
add [bp+var_4], edx
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BB2A:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov eax, [bp+var_4]
|
|
|
|
|
imul eax, 64h
|
|
|
|
|
mov [bp+var_4], eax
|
|
|
|
|
cmp [bp+var_4], 0F4240h
|
|
|
|
|
jbe short loc_BB48
|
|
|
|
|
mov [bp+var_4], 0F4240h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BB48:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov eax, dword_124CE
|
|
|
|
|
add eax, [bp+var_4]
|
|
|
|
|
mov dword_124CE, eax
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00108h
|
|
|
|
|
pushd [bp+var_4]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_B97B
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1200108h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Eh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aBu_0 ; "<22><>"
|
|
|
|
|
call far ptr loc_D1FC
|
|
|
|
|
leave
|
|
|
|
|
retn
|
|
|
|
|
sub_B9F2 endp
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
db 0
|
2014-08-10 01:44:54 +00:00
|
|
|
|
off_BB75 dw offset loc_BA18
|
2014-06-29 16:45:48 +00:00
|
|
|
|
dw offset loc_BA22
|
|
|
|
|
dw offset loc_BA2C
|
|
|
|
|
dw offset loc_BA36
|
|
|
|
|
dw offset loc_BA40
|
|
|
|
|
dw offset loc_BA4A
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_BB81 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_4 = dword ptr -4
|
|
|
|
|
|
|
|
|
|
enter 4, 0
|
|
|
|
|
push si
|
|
|
|
|
mov word_EB2C, 2
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 0
|
|
|
|
|
graph_showpage al
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 100030h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Fh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aB@b@b@b@b@b@b@ ; "<22>@<40>@<40>@<40>@<40>@<40>@<40>@ <20>r<EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD>"
|
|
|
|
|
call far ptr loc_D1FC
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 100048h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Fh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aUqiUx ; "<22><><EFBFBD>Փx"
|
|
|
|
|
call far ptr loc_D1FC
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 100060h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Fh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aNPiuU_ ; "<22>ŏI<C58F><49><EFBFBD>_"
|
|
|
|
|
call far ptr loc_D1FC
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 100078h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Fh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aGGxi ; "<22>~<7E>X<EFBFBD><58><EFBFBD><EFBFBD>"
|
|
|
|
|
call far ptr loc_D1FC
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 100090h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Fh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aGGaogcpi ; "<22>{<7B><><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD>"
|
|
|
|
|
call far ptr loc_D1FC
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1000A8h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Fh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aGqbGatbrmcj ; "<22>Q<EFBFBD>[<5B><><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD>"
|
|
|
|
|
call far ptr loc_D1FC
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1000C0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Fh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aIlcSObcj ; "<22><><EFBFBD><EFBFBD><EFBFBD>ގ<EFBFBD><DE8E><EFBFBD>"
|
|
|
|
|
call far ptr loc_D1FC
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1000D8h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Fh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aGagcgegai ; "<22>A<EFBFBD>C<EFBFBD>e<EFBFBD><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
|
|
|
|
call far ptr loc_D1FC
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1000F0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Fh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aUU_gagcgeganNv ; "<22><><EFBFBD>_<EFBFBD>A<EFBFBD>C<EFBFBD>e<EFBFBD><65><EFBFBD>ō<EFBFBD><C58D>_<EFBFBD><5F>"
|
|
|
|
|
call far ptr loc_D1FC
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 100108h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Fh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aLcnzvv ; "<22>C<EFBFBD><43><EFBFBD><EFBFBD>"
|
|
|
|
|
call far ptr loc_D1FC
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 100120h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Fh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aPicacovCj ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
|
|
|
|
call far ptr loc_D1FC
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 100150h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Fh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aVavVVSrso ; "<22><><EFBFBD>Ȃ<EFBFBD><C882>̘r<CC98>O"
|
|
|
|
|
call far ptr loc_D1FC
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte ptr es:[bx+11h], 6
|
|
|
|
|
jnz short loc_BC71
|
|
|
|
|
mov al, 4
|
|
|
|
|
jmp short loc_BC79
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BC71:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, es:[bx+0Fh]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BC79:
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov _verdict_rank, al
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0B00048h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 10h
|
|
|
|
|
push ds
|
|
|
|
|
mov ah, 0
|
|
|
|
|
shl ax, 3
|
2014-09-13 10:24:35 +00:00
|
|
|
|
add ax, offset grEASY
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push ax
|
|
|
|
|
push 0Eh
|
2014-09-15 01:03:52 +00:00
|
|
|
|
call graph_gaiji_puts
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_B81D
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0F00078h
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, es:[bx+31h]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
|
|
|
|
call sub_B787
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0F00090h
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, es:[bx+32h]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
|
|
|
|
call sub_B787
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1200078h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Eh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aTimes ; "<22><>"
|
|
|
|
|
call far ptr loc_D1FC
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1200090h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Eh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aTimes_0 ; "<22><>"
|
|
|
|
|
call far ptr loc_D1FC
|
|
|
|
|
mov byte_124CC, 1
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte ptr es:[bx+11h], 6
|
|
|
|
|
jz short loc_BD0A
|
|
|
|
|
cmp byte ptr es:[bx+30h], 0FFh
|
|
|
|
|
jnz short loc_BCFF
|
|
|
|
|
mov word ptr es:[bx+26h], 0ABE0h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BCFF:
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C000A8h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0ABE0h
|
|
|
|
|
jmp short loc_BD24
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BD0A:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp byte ptr es:[bx+30h], 0FDh
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jnz short loc_BD1B
|
|
|
|
|
mov word ptr es:[bx+26h], 2EE0h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BD1B:
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C000A8h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 2EE0h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BD24:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push word ptr es:[bx+26h]
|
|
|
|
|
call sub_B886
|
|
|
|
|
mov byte_124CC, 0
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C000C0h
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push word ptr es:[bx+34h]
|
|
|
|
|
push word ptr es:[bx+36h]
|
|
|
|
|
call sub_B886
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C000D8h
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push word ptr es:[bx+28h]
|
|
|
|
|
push word ptr es:[bx+2Ah]
|
|
|
|
|
call sub_B886
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C000F0h
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push word ptr es:[bx+2Ch]
|
|
|
|
|
push word ptr es:[bx+2Eh]
|
|
|
|
|
call sub_B886
|
|
|
|
|
call sub_B9F2
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00120h
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov eax, es:[bx+44h]
|
|
|
|
|
mov ebx, 0Ah
|
|
|
|
|
xor edx, edx
|
|
|
|
|
div ebx
|
|
|
|
|
push ax
|
2018-12-25 21:59:19 +00:00
|
|
|
|
mov bx, word ptr _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov eax, es:[bx+40h]
|
|
|
|
|
mov ebx, 0Ah
|
|
|
|
|
xor edx, edx
|
|
|
|
|
div ebx
|
|
|
|
|
push ax
|
|
|
|
|
call sub_B886
|
|
|
|
|
mov ebx, 5
|
|
|
|
|
mov eax, dword_124CE
|
|
|
|
|
cdq
|
|
|
|
|
idiv ebx
|
|
|
|
|
mov dword_124CE, eax
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte ptr es:[bx+24h], 9
|
|
|
|
|
jb short loc_BDD4
|
|
|
|
|
add dword_124CE, 927C0h
|
|
|
|
|
jmp short loc_BE08
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BDD4:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
movzx eax, byte ptr es:[bx+23h]
|
|
|
|
|
imul eax, 2710h
|
|
|
|
|
add dword_124CE, eax
|
|
|
|
|
cmp byte ptr es:[bx+24h], 3
|
|
|
|
|
jbe short loc_BE08
|
|
|
|
|
mov al, es:[bx+24h]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, 0FFFDh
|
|
|
|
|
cwde
|
|
|
|
|
imul eax, 186A0h
|
|
|
|
|
add dword_124CE, eax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BE08:
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov al, _verdict_rank
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
mov bx, ax
|
2019-03-01 15:16:54 +00:00
|
|
|
|
cmp bx, RANK_EXTRA
|
2014-06-29 16:45:48 +00:00
|
|
|
|
ja short loc_BE6F
|
|
|
|
|
add bx, bx
|
|
|
|
|
jmp cs:off_C0EE[bx]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BE1B:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
sub dword_124CE, 0C350h
|
|
|
|
|
mov [bp+var_4], 0C3500h
|
|
|
|
|
jmp short loc_BE6F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BE2E:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_4], 0F4240h
|
|
|
|
|
jmp short loc_BE6F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BE38:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add dword_124CE, 249F0h
|
|
|
|
|
mov [bp+var_4], 124F80h
|
|
|
|
|
jmp short loc_BE6F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BE4B:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add dword_124CE, 493E0h
|
|
|
|
|
mov [bp+var_4], 155CC0h
|
|
|
|
|
jmp short loc_BE6F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BE5E:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add dword_124CE, 6DDD0h
|
|
|
|
|
mov [bp+var_4], 16E360h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BE6F:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, es:[bx+0Ch]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
dec ax
|
|
|
|
|
mov bx, ax
|
|
|
|
|
cmp bx, 5
|
|
|
|
|
ja short loc_BECA
|
|
|
|
|
add bx, bx
|
|
|
|
|
jmp cs:off_C0E2[bx]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BE88:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add dword_124CE, 0C350h
|
|
|
|
|
add [bp+var_4], 186A0h
|
|
|
|
|
jmp short loc_BECA
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BE9B:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add dword_124CE, 61A8h
|
|
|
|
|
add [bp+var_4], 0C350h
|
|
|
|
|
jmp short loc_BECA
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BEAE:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
sub [bp+var_4], 61A8h
|
|
|
|
|
jmp short loc_BECA
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BEB8:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
sub [bp+var_4], 0C350h
|
|
|
|
|
jmp short loc_BECA
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BEC2:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
sub [bp+var_4], 124F8h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BECA:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, es:[bx+0Eh]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
or ax, ax
|
|
|
|
|
jz short loc_BEDF
|
|
|
|
|
cmp ax, 1
|
|
|
|
|
jz short loc_BEF2
|
|
|
|
|
jmp short loc_BF03
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BEDF:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add dword_124CE, 0C350h
|
|
|
|
|
add [bp+var_4], 186A0h
|
|
|
|
|
jmp short loc_BF03
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BEF2:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add dword_124CE, 4E20h
|
|
|
|
|
add [bp+var_4], 0C350h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BF03:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte ptr es:[bx+49h], 0
|
|
|
|
|
jnz short loc_BF17
|
|
|
|
|
sub dword_124CE, 186A0h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BF17:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte ptr es:[bx+31h], 0Fh
|
|
|
|
|
jb short loc_BF2D
|
|
|
|
|
sub dword_124CE, 493E0h
|
|
|
|
|
jmp short loc_BF43
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BF2D:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
movzx eax, byte ptr es:[bx+31h]
|
|
|
|
|
imul eax, 4E20h
|
|
|
|
|
sub dword_124CE, eax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BF43:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte ptr es:[bx+32h], 1Eh
|
|
|
|
|
jb short loc_BF59
|
|
|
|
|
sub dword_124CE, 15F90h
|
|
|
|
|
jmp short loc_BF6F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BF59:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
movzx eax, byte ptr es:[bx+32h]
|
|
|
|
|
imul eax, 0BB8h
|
|
|
|
|
sub dword_124CE, eax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BF6F:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp byte ptr es:[bx+30h], 0FDh
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jnb short loc_BFA1
|
2019-03-01 15:16:54 +00:00
|
|
|
|
cmp _verdict_rank, RANK_EXTRA
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jz short loc_BF96
|
|
|
|
|
mov ebx, 2
|
|
|
|
|
mov eax, dword_124CE
|
|
|
|
|
cdq
|
|
|
|
|
idiv ebx
|
|
|
|
|
mov dword_124CE, eax
|
|
|
|
|
jmp short loc_BFB4
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BF96:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
sub dword_124CE, 30D40h
|
|
|
|
|
jmp short loc_BFB4
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BFA1:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp byte ptr es:[bx+30h], 0FEh
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jnz short loc_BFB4
|
|
|
|
|
sub [bp+var_4], 186A0h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BFB4:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp dword_124CE, 0
|
|
|
|
|
jge short loc_BFC7
|
|
|
|
|
mov dword_124CE, 0
|
|
|
|
|
jmp short loc_BFD9
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BFC7:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov eax, dword_124CE
|
|
|
|
|
cmp eax, [bp+var_4]
|
|
|
|
|
jbe short loc_BFD9
|
|
|
|
|
mov eax, [bp+var_4]
|
|
|
|
|
mov dword_124CE, eax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_BFD9:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov eax, es:[bx+44h]
|
|
|
|
|
shr eax, 1
|
|
|
|
|
cmp eax, es:[bx+40h]
|
|
|
|
|
jbe loc_C0AE
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00150h
|
|
|
|
|
pushd [dword_124CE]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_B97B
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 1200150h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Eh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aPoint ; "<22>_"
|
|
|
|
|
call far ptr loc_D1FC
|
|
|
|
|
push ds
|
|
|
|
|
push offset a_ude_txt ; "_ude.txt"
|
2014-08-30 07:12:17 +00:00
|
|
|
|
call file_ropen
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp dword_124CE, 16E360h
|
|
|
|
|
jge short loc_C084
|
|
|
|
|
cmp dword_124CE, 0
|
|
|
|
|
jnz short loc_C02E
|
|
|
|
|
mov si, 19h
|
|
|
|
|
jmp short loc_C074
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C02E:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp dword_124CE, 100590h
|
|
|
|
|
jge short loc_C051
|
|
|
|
|
mov eax, dword_124CE
|
|
|
|
|
mov ebx, 0C350h
|
|
|
|
|
cdq
|
|
|
|
|
idiv ebx
|
|
|
|
|
mov dx, 18h
|
|
|
|
|
sub dx, ax
|
|
|
|
|
mov si, dx
|
|
|
|
|
jmp short loc_C074
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C051:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp dword_124CE, 124F80h
|
|
|
|
|
jge short loc_C061
|
|
|
|
|
mov si, 3
|
|
|
|
|
jmp short loc_C074
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C061:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp dword_124CE, 149970h
|
|
|
|
|
jge short loc_C071
|
|
|
|
|
mov si, 2
|
|
|
|
|
jmp short loc_C074
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C071:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov si, 1
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C074:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, si
|
|
|
|
|
imul ax, 1Eh
|
|
|
|
|
cwde
|
|
|
|
|
push eax
|
|
|
|
|
push 0
|
2014-08-30 07:21:44 +00:00
|
|
|
|
call file_seek
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C084:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset unk_124D3
|
|
|
|
|
push 1Eh
|
2014-08-30 07:00:31 +00:00
|
|
|
|
call file_read
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov byte_124EF, 0
|
2014-08-30 06:15:42 +00:00
|
|
|
|
call file_close
|
2014-09-18 15:20:12 +00:00
|
|
|
|
push 40h
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 400168h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Fh
|
|
|
|
|
push ds
|
|
|
|
|
push offset unk_124D3
|
|
|
|
|
jmp short loc_C0CB
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C0AE:
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 0C00150h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Eh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aBhbhbhbhbhbhu_ ; "<22>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD>_"
|
|
|
|
|
call far ptr loc_D1FC
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 400168h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 0Fh
|
|
|
|
|
push ds
|
|
|
|
|
push offset aPicacovVVcvsfT ; "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><C982>锻<EFBFBD><E994BB><EFBFBD>s<EFBFBD><73>"
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C0CB:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call far ptr loc_D1FC
|
|
|
|
|
push 0
|
2018-09-17 20:10:42 +00:00
|
|
|
|
call _input_wait_for_change
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 2
|
2014-08-26 22:33:43 +00:00
|
|
|
|
call palette_black_out
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn
|
|
|
|
|
sub_BB81 endp
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
db 0
|
2014-08-10 01:44:54 +00:00
|
|
|
|
off_C0E2 dw offset loc_BE88
|
2014-06-29 16:45:48 +00:00
|
|
|
|
dw offset loc_BE9B
|
|
|
|
|
dw offset loc_BECA
|
|
|
|
|
dw offset loc_BEAE
|
|
|
|
|
dw offset loc_BEB8
|
|
|
|
|
dw offset loc_BEC2
|
2014-08-10 01:44:54 +00:00
|
|
|
|
off_C0EE dw offset loc_BE1B
|
2014-06-29 16:45:48 +00:00
|
|
|
|
dw offset loc_BE2E
|
|
|
|
|
dw offset loc_BE38
|
|
|
|
|
dw offset loc_BE4B
|
|
|
|
|
dw offset loc_BE5E
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C0F8 proc near
|
2014-06-29 16:45:48 +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
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_load pascal, 0, ds, offset aUde_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-06-29 16:45:48 +00:00
|
|
|
|
push 0
|
2014-08-27 04:13:48 +00:00
|
|
|
|
call graph_copy_page
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 4
|
2014-08-26 22:21:45 +00:00
|
|
|
|
call palette_black_in
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_BB81
|
|
|
|
|
pop bp
|
|
|
|
|
retn
|
|
|
|
|
sub_C0F8 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C149 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_1 = byte ptr -1
|
|
|
|
|
|
|
|
|
|
enter 2, 0
|
|
|
|
|
push si
|
|
|
|
|
mov si, 4
|
|
|
|
|
jmp short loc_C176
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C153:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, [si+3FC3h]
|
|
|
|
|
mov [bp+var_1], al
|
|
|
|
|
mov al, byte_124F3
|
|
|
|
|
ror [bp+var_1], 3
|
|
|
|
|
xor [bp+var_1], al
|
|
|
|
|
mov al, [si+3FC2h]
|
|
|
|
|
mov dl, byte_124F2
|
|
|
|
|
add dl, [bp+var_1]
|
|
|
|
|
add al, dl
|
|
|
|
|
mov [si+3FC2h], al
|
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C176:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp si, 0C3h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jl short loc_C153
|
|
|
|
|
mov al, byte_124F2
|
|
|
|
|
add [si+3FC2h], al
|
|
|
|
|
xor cx, cx
|
|
|
|
|
mov si, 4
|
|
|
|
|
jmp short loc_C193
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C18A:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, [si+3FC2h]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add cx, ax
|
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C193:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp si, 0C4h ; '<27>'
|
|
|
|
|
jl short loc_C18A
|
|
|
|
|
mov al, byte ptr word_124F4
|
|
|
|
|
sub al, cl
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn
|
|
|
|
|
sub_C149 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C1A1 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_1 = byte ptr -1
|
|
|
|
|
|
|
|
|
|
enter 2, 0
|
|
|
|
|
push si
|
|
|
|
|
mov word_124F4, 0
|
|
|
|
|
mov si, 4
|
|
|
|
|
jmp short loc_C1BC
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C1B1:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, [si+3FC2h]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add word_124F4, ax
|
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C1BC:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp si, 0C4h ; '<27>'
|
|
|
|
|
jl short loc_C1B1
|
2014-08-30 10:13:04 +00:00
|
|
|
|
call IRand
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov byte_124F2, al
|
2014-08-30 10:13:04 +00:00
|
|
|
|
call IRand
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov byte_124F3, al
|
|
|
|
|
mov [bp+var_1], 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov si, 0C3h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp short loc_C1FE
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C1DB:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, [si+3FC2h]
|
|
|
|
|
mov dl, byte_124F2
|
|
|
|
|
add dl, [bp+var_1]
|
|
|
|
|
sub al, dl
|
|
|
|
|
mov [si+3FC2h], al
|
|
|
|
|
mov al, [si+3FC2h]
|
|
|
|
|
mov [bp+var_1], al
|
|
|
|
|
mov al, byte_124F3
|
|
|
|
|
ror [bp+var_1], 3
|
|
|
|
|
xor [bp+var_1], al
|
|
|
|
|
dec si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C1FE:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp si, 4
|
|
|
|
|
jge short loc_C1DB
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn
|
|
|
|
|
sub_C1A1 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C206 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_1 = byte ptr -1
|
|
|
|
|
|
|
|
|
|
enter 2, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
mov [bp+var_1], 0A9h ; '<27>'
|
|
|
|
|
xor si, si
|
|
|
|
|
jmp short loc_C27A
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C214:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov byte_125A0, 19h
|
|
|
|
|
xor di, di
|
|
|
|
|
jmp short loc_C228
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C21D:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov byte ptr [bx+di+4020h], 0A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
inc di
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C228:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp di, 8
|
|
|
|
|
jl short loc_C21D
|
|
|
|
|
or si, si
|
|
|
|
|
jnz short loc_C23D
|
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
|
|
|
|
mov byte ptr [bx+4025h], 0A1h ; '<27>'
|
|
|
|
|
jmp short loc_C24C
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C23D:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
|
|
|
|
mov al, [bp+var_1]
|
|
|
|
|
mov [bx+4024h], al
|
|
|
|
|
dec [bp+var_1]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C24C:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, si
|
|
|
|
|
cwd
|
|
|
|
|
sub ax, dx
|
|
|
|
|
sar ax, 1
|
|
|
|
|
mov dl, 0A5h ; '<27>'
|
|
|
|
|
sub dl, al
|
|
|
|
|
mov [si+4072h], dl
|
|
|
|
|
xor di, di
|
|
|
|
|
jmp short loc_C26A
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C25F:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, si
|
|
|
|
|
imul bx, 9
|
|
|
|
|
mov byte ptr [bx+di+3FC6h], 0C4h ; '<27>'
|
|
|
|
|
inc di
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C26A:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp di, 8
|
|
|
|
|
jl short loc_C25F
|
|
|
|
|
mov bx, si
|
|
|
|
|
imul bx, 9
|
|
|
|
|
mov byte ptr [bx+3FCEh], 0
|
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C27A:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp si, 0Ah
|
|
|
|
|
jl short loc_C214
|
|
|
|
|
push ds
|
|
|
|
|
push offset aGensou_scr ; "GENSOU.SCR"
|
2014-08-30 06:32:10 +00:00
|
|
|
|
call file_create
|
2014-06-29 16:45:48 +00:00
|
|
|
|
xor si, si
|
|
|
|
|
jmp short loc_C29F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C28C:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_C1A1
|
|
|
|
|
push ds
|
|
|
|
|
push offset byte_124F2
|
|
|
|
|
push 0C4h ; '<27>'
|
2014-08-30 07:38:09 +00:00
|
|
|
|
call file_write
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_C149
|
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C29F:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp si, 0Ah
|
|
|
|
|
jl short loc_C28C
|
2014-08-30 06:15:42 +00:00
|
|
|
|
call file_close
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn
|
|
|
|
|
sub_C206 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C2AD proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
arg_0 = byte ptr 4
|
|
|
|
|
|
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push ds
|
|
|
|
|
push offset aGensou_scr_0 ; "GENSOU.SCR"
|
2014-08-30 06:46:38 +00:00
|
|
|
|
call file_exist
|
2014-06-29 16:45:48 +00:00
|
|
|
|
or ax, ax
|
|
|
|
|
jz short loc_C307
|
|
|
|
|
push ds
|
|
|
|
|
push offset aGensou_scr_1 ; "GENSOU.SCR"
|
2014-08-30 07:12:17 +00:00
|
|
|
|
call file_ropen
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov al, _hiscore_rank
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
imul ax, 0C4h
|
|
|
|
|
movzx eax, ax
|
|
|
|
|
push eax
|
|
|
|
|
push 0
|
2014-08-30 07:21:44 +00:00
|
|
|
|
call file_seek
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+arg_0], 0
|
|
|
|
|
jz short loc_C2EF
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd 3D4h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 1
|
2014-08-30 07:21:44 +00:00
|
|
|
|
call file_seek
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C2EF:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset byte_124F2
|
|
|
|
|
push 0C4h ; '<27>'
|
2014-08-30 07:00:31 +00:00
|
|
|
|
call file_read
|
2014-08-30 06:15:42 +00:00
|
|
|
|
call file_close
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_C149
|
|
|
|
|
or al, al
|
|
|
|
|
jz short loc_C310
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C307:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_C206
|
|
|
|
|
mov al, 1
|
|
|
|
|
pop bp
|
|
|
|
|
retn 2
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C310:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, 0
|
|
|
|
|
pop bp
|
|
|
|
|
retn 2
|
|
|
|
|
sub_C2AD endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C316 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push si
|
|
|
|
|
call sub_C1A1
|
|
|
|
|
push ds
|
|
|
|
|
push offset aGensou_scr_2 ; "GENSOU.SCR"
|
2014-08-30 05:58:36 +00:00
|
|
|
|
call file_append
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov al, _hiscore_rank
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
imul ax, 0C4h
|
|
|
|
|
movzx eax, ax
|
|
|
|
|
push eax
|
|
|
|
|
push 0
|
2014-08-30 07:21:44 +00:00
|
|
|
|
call file_seek
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte ptr word_125B8, 0
|
|
|
|
|
jz short loc_C350
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd 3D4h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 1
|
2014-08-30 07:21:44 +00:00
|
|
|
|
call file_seek
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C350:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset byte_124F2
|
|
|
|
|
push 0C4h ; '<27>'
|
2014-08-30 07:38:09 +00:00
|
|
|
|
call file_write
|
2014-06-29 16:45:48 +00:00
|
|
|
|
xor si, si
|
|
|
|
|
jmp short loc_C3A5
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C360:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, si
|
|
|
|
|
imul ax, 0C4h
|
|
|
|
|
movzx eax, ax
|
|
|
|
|
push eax
|
|
|
|
|
push 0
|
2014-08-30 07:21:44 +00:00
|
|
|
|
call file_seek
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset byte_124F2
|
|
|
|
|
push 0C4h ; '<27>'
|
2014-08-30 07:00:31 +00:00
|
|
|
|
call file_read
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_C149
|
|
|
|
|
call sub_C1A1
|
|
|
|
|
mov ax, si
|
|
|
|
|
imul ax, 0C4h
|
|
|
|
|
movzx eax, ax
|
|
|
|
|
push eax
|
|
|
|
|
push 0
|
2014-08-30 07:21:44 +00:00
|
|
|
|
call file_seek
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset byte_124F2
|
|
|
|
|
push 0C4h ; '<27>'
|
2014-08-30 07:38:09 +00:00
|
|
|
|
call file_write
|
2014-06-29 16:45:48 +00:00
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C3A5:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp si, 0Ah
|
|
|
|
|
jl short loc_C360
|
2014-08-30 06:15:42 +00:00
|
|
|
|
call file_close
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop si
|
|
|
|
|
pop bp
|
|
|
|
|
retn
|
|
|
|
|
sub_C316 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C3B2 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
|
|
|
|
|
enter 2, 0
|
|
|
|
|
mov [bp+var_2], 9
|
|
|
|
|
jmp short loc_C40E
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C3BD:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov cx, 7
|
|
|
|
|
jmp short loc_C407
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C3C2:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add bx, cx
|
|
|
|
|
mov al, es:[bx+1Dh]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
mov bx, [bp+var_2]
|
|
|
|
|
shl bx, 3
|
|
|
|
|
add bx, cx
|
|
|
|
|
mov dl, [bx+4020h]
|
|
|
|
|
mov dh, 0
|
|
|
|
|
add dx, 0FF60h
|
|
|
|
|
cmp ax, dx
|
|
|
|
|
jg short loc_C40B
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add bx, cx
|
|
|
|
|
mov al, es:[bx+1Dh]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
mov bx, [bp+var_2]
|
|
|
|
|
shl bx, 3
|
|
|
|
|
add bx, cx
|
|
|
|
|
mov dl, [bx+4020h]
|
|
|
|
|
mov dh, 0
|
|
|
|
|
add dx, 0FF60h
|
|
|
|
|
cmp ax, dx
|
|
|
|
|
jl short loc_C41B
|
|
|
|
|
dec cx
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C407:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
or cx, cx
|
|
|
|
|
jge short loc_C3C2
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C40B:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
dec [bp+var_2]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C40E:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+var_2], 0
|
|
|
|
|
jge short loc_C3BD
|
|
|
|
|
mov byte_125B6, 0
|
|
|
|
|
jmp short loc_C430
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C41B:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+var_2], 9
|
|
|
|
|
jnz short loc_C428
|
|
|
|
|
mov byte_125B6, 0FFh
|
|
|
|
|
leave
|
|
|
|
|
retn
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C428:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte ptr [bp+var_2]
|
|
|
|
|
inc al
|
|
|
|
|
mov byte_125B6, al
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C430:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_2], 8
|
|
|
|
|
jmp short loc_C489
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C437:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov cx, 7
|
|
|
|
|
jmp short loc_C455
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C43C:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, [bp+var_2]
|
|
|
|
|
imul bx, 9
|
|
|
|
|
add bx, cx
|
|
|
|
|
mov al, [bx+3FC6h]
|
|
|
|
|
mov bx, [bp+var_2]
|
|
|
|
|
imul bx, 9
|
|
|
|
|
add bx, cx
|
|
|
|
|
mov [bx+3FCFh], al
|
|
|
|
|
dec cx
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C455:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
or cx, cx
|
|
|
|
|
jge short loc_C43C
|
|
|
|
|
mov cx, 7
|
|
|
|
|
jmp short loc_C477
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C45E:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, [bp+var_2]
|
|
|
|
|
shl bx, 3
|
|
|
|
|
add bx, cx
|
|
|
|
|
mov al, [bx+4020h]
|
|
|
|
|
mov bx, [bp+var_2]
|
|
|
|
|
shl bx, 3
|
|
|
|
|
add bx, cx
|
|
|
|
|
mov [bx+4028h], al
|
|
|
|
|
dec cx
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C477:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
or cx, cx
|
|
|
|
|
jge short loc_C45E
|
|
|
|
|
mov bx, [bp+var_2]
|
|
|
|
|
mov al, [bx+4072h]
|
|
|
|
|
mov [bx+4073h], al
|
|
|
|
|
dec [bp+var_2]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C489:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte_125B6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
cmp ax, [bp+var_2]
|
|
|
|
|
jle short loc_C437
|
|
|
|
|
mov cx, 7
|
|
|
|
|
jmp short loc_C4AA
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C498:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte_125B6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
imul ax, 9
|
|
|
|
|
add ax, cx
|
|
|
|
|
mov bx, ax
|
|
|
|
|
mov byte ptr [bx+3FC6h], 0C4h ; '<27>'
|
|
|
|
|
dec cx
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C4AA:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
or cx, cx
|
|
|
|
|
jge short loc_C498
|
|
|
|
|
mov cx, 7
|
|
|
|
|
jmp short loc_C4D1
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C4B3:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add bx, cx
|
|
|
|
|
mov al, es:[bx+1Dh]
|
2014-09-18 15:20:12 +00:00
|
|
|
|
add al, 0A0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov dl, byte_125B6
|
|
|
|
|
mov dh, 0
|
|
|
|
|
shl dx, 3
|
|
|
|
|
add dx, cx
|
|
|
|
|
mov bx, dx
|
|
|
|
|
mov [bx+4020h], al
|
|
|
|
|
dec cx
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C4D1:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
or cx, cx
|
|
|
|
|
jge short loc_C4B3
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp byte ptr es:[bx+30h], 0FDh
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jb short loc_C4EE
|
|
|
|
|
mov al, byte_125B6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
mov bx, ax
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov byte ptr [bx+4072h], 0E9h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
leave
|
|
|
|
|
retn
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C4EE:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, es:[bx+11h]
|
|
|
|
|
add al, 0A1h ; '<27>'
|
|
|
|
|
mov dl, byte_125B6
|
|
|
|
|
mov dh, 0
|
|
|
|
|
mov bx, dx
|
|
|
|
|
mov [bx+4072h], al
|
|
|
|
|
leave
|
|
|
|
|
retn
|
|
|
|
|
sub_C3B2 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C506 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_4 = word ptr -4
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
arg_0 = byte ptr 4
|
|
|
|
|
arg_2 = word ptr 6
|
|
|
|
|
|
|
|
|
|
enter 4, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
mov si, [bp+arg_2]
|
|
|
|
|
or si, si
|
|
|
|
|
jnz short loc_C518
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov ax, 60h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp short loc_C520
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C518:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, si
|
|
|
|
|
shl ax, 4
|
|
|
|
|
add ax, 70h ; 'p'
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C520:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_4], ax
|
|
|
|
|
cmp [bp+arg_0], 0
|
|
|
|
|
jnz short loc_C52E
|
|
|
|
|
mov ax, 0ACh ; '<27>'
|
|
|
|
|
jmp short loc_C531
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C52E:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, 1E0h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C531:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov di, ax
|
|
|
|
|
mov al, byte_125B6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
cmp ax, si
|
|
|
|
|
jnz short loc_C549
|
|
|
|
|
mov al, [bp+arg_0]
|
|
|
|
|
cmp al, byte ptr word_125B8
|
|
|
|
|
jnz short loc_C549
|
|
|
|
|
mov al, 0Ah
|
|
|
|
|
jmp short loc_C54B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C549:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C54B:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+arg_0], al
|
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
|
|
|
|
mov al, [bx+4027h]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, 0FF60h
|
|
|
|
|
cmp ax, 0Ah
|
|
|
|
|
jl short loc_C589
|
|
|
|
|
lea ax, [di-20h]
|
|
|
|
|
push ax
|
|
|
|
|
push [bp+var_4]
|
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
|
|
|
|
mov al, [bx+4027h]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, 0FF60h
|
|
|
|
|
mov bx, 0Ah
|
|
|
|
|
cwd
|
|
|
|
|
idiv bx
|
|
|
|
|
mov dl, [bp+arg_0]
|
|
|
|
|
mov dh, 0
|
|
|
|
|
add ax, dx
|
|
|
|
|
push ax
|
2014-08-28 00:13:13 +00:00
|
|
|
|
call super_put
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C589:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
lea ax, [di-10h]
|
|
|
|
|
push ax
|
|
|
|
|
push [bp+var_4]
|
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
|
|
|
|
mov al, [bx+4027h]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, 0FF60h
|
|
|
|
|
mov bx, 0Ah
|
|
|
|
|
cwd
|
|
|
|
|
idiv bx
|
|
|
|
|
mov al, [bp+arg_0]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add dx, ax
|
|
|
|
|
push dx
|
2014-08-28 00:13:13 +00:00
|
|
|
|
call super_put
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_2], 6
|
|
|
|
|
jmp short loc_C5E0
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C5B8:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push di
|
|
|
|
|
push [bp+var_4]
|
|
|
|
|
mov bx, si
|
|
|
|
|
shl bx, 3
|
|
|
|
|
add bx, [bp+var_2]
|
|
|
|
|
mov al, [bx+4020h]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
mov dl, [bp+arg_0]
|
|
|
|
|
mov dh, 0
|
|
|
|
|
add ax, dx
|
|
|
|
|
add ax, 0FF60h
|
|
|
|
|
push ax
|
2014-08-28 00:13:13 +00:00
|
|
|
|
call super_put
|
2014-06-29 16:45:48 +00:00
|
|
|
|
dec [bp+var_2]
|
|
|
|
|
add di, 10h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C5E0:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+var_2], 0
|
|
|
|
|
jge short loc_C5B8
|
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 4
|
|
|
|
|
sub_C506 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C5EC proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_5 = byte ptr -5
|
|
|
|
|
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 6, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
mov si, [bp+arg_4]
|
|
|
|
|
mov di, [bp+arg_2]
|
|
|
|
|
mov al, byte_125B6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
cmp ax, si
|
|
|
|
|
jnz short loc_C60E
|
|
|
|
|
mov al, byte ptr word_125B8
|
|
|
|
|
mov ah, 0
|
|
|
|
|
cmp ax, di
|
|
|
|
|
jnz short loc_C60E
|
|
|
|
|
mov al, 7
|
|
|
|
|
jmp short loc_C610
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C60E:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, 0Ch
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C610:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_5], al
|
|
|
|
|
or si, si
|
|
|
|
|
jnz short loc_C61C
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov ax, 60h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp short loc_C624
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C61C:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, si
|
|
|
|
|
shl ax, 4
|
|
|
|
|
add ax, 70h ; 'p'
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C624:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_4], ax
|
|
|
|
|
or di, di
|
|
|
|
|
jnz short loc_C630
|
|
|
|
|
mov ax, 124h
|
|
|
|
|
jmp short loc_C633
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C630:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, 258h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C633:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_2], ax
|
|
|
|
|
add ax, 2
|
|
|
|
|
push ax
|
|
|
|
|
mov ax, [bp+var_4]
|
|
|
|
|
add ax, 2
|
|
|
|
|
push ax
|
|
|
|
|
push [bp+arg_0]
|
|
|
|
|
push 0Eh
|
2014-09-14 15:39:30 +00:00
|
|
|
|
call graph_gaiji_putc
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push [bp+var_2]
|
|
|
|
|
push [bp+var_4]
|
|
|
|
|
push [bp+arg_0]
|
|
|
|
|
mov al, [bp+var_5]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2014-09-14 15:39:30 +00:00
|
|
|
|
call graph_gaiji_putc
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 6
|
|
|
|
|
sub_C5EC endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C665 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
arg_0 = byte ptr 4
|
|
|
|
|
arg_2 = byte ptr 6
|
|
|
|
|
arg_4 = word ptr 8
|
|
|
|
|
|
|
|
|
|
enter 2, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
mov si, [bp+arg_4]
|
|
|
|
|
cmp [bp+arg_2], 0
|
|
|
|
|
jnz short loc_C679
|
|
|
|
|
mov ax, 2
|
|
|
|
|
jmp short loc_C67C
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C679:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, 28h ; '('
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C67C:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov di, ax
|
|
|
|
|
or si, si
|
|
|
|
|
jnz short loc_C687
|
|
|
|
|
mov ax, 6
|
|
|
|
|
jmp short loc_C68A
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C687:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
lea ax, [si+7]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C68A:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_2], ax
|
|
|
|
|
mov ax, di
|
|
|
|
|
shl ax, 3
|
|
|
|
|
add ax, 2
|
|
|
|
|
push ax
|
|
|
|
|
mov ax, [bp+var_2]
|
|
|
|
|
shl ax, 4
|
|
|
|
|
add ax, 2
|
|
|
|
|
push ax
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 800010h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_CBF3
|
|
|
|
|
mov ax, di
|
|
|
|
|
shl ax, 3
|
|
|
|
|
add ax, 2
|
|
|
|
|
push ax
|
|
|
|
|
mov ax, [bp+var_2]
|
|
|
|
|
shl ax, 4
|
|
|
|
|
add ax, 2
|
|
|
|
|
push ax
|
|
|
|
|
push 10h
|
|
|
|
|
mov ax, si
|
|
|
|
|
imul ax, 9
|
|
|
|
|
add ax, 3FC6h
|
|
|
|
|
push ds
|
|
|
|
|
push ax
|
|
|
|
|
push 0Eh
|
2014-09-15 01:03:52 +00:00
|
|
|
|
call graph_gaiji_puts
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push di
|
|
|
|
|
push [bp+var_2]
|
|
|
|
|
mov ax, si
|
|
|
|
|
imul ax, 9
|
|
|
|
|
add ax, 3FC6h
|
|
|
|
|
push ds
|
|
|
|
|
push ax
|
2014-12-20 21:14:58 +00:00
|
|
|
|
push TX_RED
|
2014-08-31 03:05:48 +00:00
|
|
|
|
call gaiji_putsa
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, [bp+arg_0]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add ax, ax
|
|
|
|
|
add ax, di
|
|
|
|
|
push ax
|
|
|
|
|
push [bp+var_2]
|
|
|
|
|
mov bx, si
|
|
|
|
|
imul bx, 9
|
|
|
|
|
mov al, [bp+arg_0]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
add bx, ax
|
|
|
|
|
mov al, [bx+3FC6h]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2014-12-20 21:14:58 +00:00
|
|
|
|
push TX_RED + TX_REVERSE
|
2014-08-31 02:56:17 +00:00
|
|
|
|
call gaiji_putca
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 6
|
|
|
|
|
sub_C665 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C711 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
arg_2 = word ptr 6
|
|
|
|
|
|
|
|
|
|
enter 2, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
mov si, [bp+arg_2]
|
|
|
|
|
cmp byte ptr [bp+arg_0], 0
|
|
|
|
|
jnz short loc_C725
|
|
|
|
|
mov ax, 10h
|
|
|
|
|
jmp short loc_C728
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C725:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, 140h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C728:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_2], ax
|
|
|
|
|
or si, si
|
|
|
|
|
jnz short loc_C734
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov ax, 60h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp short loc_C73C
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C734:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, si
|
|
|
|
|
shl ax, 4
|
|
|
|
|
add ax, 70h ; 'p'
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C73C:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov di, ax
|
|
|
|
|
mov ax, [bp+var_2]
|
|
|
|
|
add ax, 2
|
|
|
|
|
push ax
|
|
|
|
|
lea ax, [di+2]
|
|
|
|
|
push ax
|
|
|
|
|
push 10h
|
|
|
|
|
mov ax, si
|
|
|
|
|
imul ax, 9
|
|
|
|
|
add ax, 3FC6h
|
|
|
|
|
push ds
|
|
|
|
|
push ax
|
|
|
|
|
push 0Eh
|
2014-09-15 01:03:52 +00:00
|
|
|
|
call graph_gaiji_puts
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte_125B6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
cmp ax, si
|
|
|
|
|
jnz short loc_C76E
|
|
|
|
|
mov al, byte ptr [bp+arg_0]
|
|
|
|
|
cmp al, byte ptr word_125B8
|
|
|
|
|
jz short loc_C787
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C76E:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push [bp+var_2]
|
|
|
|
|
push di
|
|
|
|
|
push 10h
|
|
|
|
|
mov ax, si
|
|
|
|
|
imul ax, 9
|
|
|
|
|
add ax, 3FC6h
|
|
|
|
|
push ds
|
|
|
|
|
push ax
|
|
|
|
|
push 0Ch
|
2014-09-15 01:03:52 +00:00
|
|
|
|
call graph_gaiji_puts
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp short loc_C7AB
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C787:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, [bp+var_2]
|
|
|
|
|
mov bx, 8
|
|
|
|
|
cwd
|
|
|
|
|
idiv bx
|
|
|
|
|
push ax
|
|
|
|
|
mov ax, di
|
|
|
|
|
mov bx, 10h
|
|
|
|
|
cwd
|
|
|
|
|
idiv bx
|
|
|
|
|
push ax
|
|
|
|
|
mov ax, si
|
|
|
|
|
imul ax, 9
|
|
|
|
|
add ax, 3FC6h
|
|
|
|
|
push ds
|
|
|
|
|
push ax
|
2014-12-20 21:14:58 +00:00
|
|
|
|
push TX_RED
|
2014-08-31 03:05:48 +00:00
|
|
|
|
call gaiji_putsa
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C7AB:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
|
|
|
|
push [bp+arg_0]
|
|
|
|
|
call sub_C506
|
|
|
|
|
push si
|
|
|
|
|
mov al, byte ptr [bp+arg_0]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
|
|
|
|
mov al, [si+4072h]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
|
|
|
|
call sub_C5EC
|
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 4
|
|
|
|
|
sub_C711 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C7C9 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
|
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push si
|
|
|
|
|
xor si, si
|
|
|
|
|
jmp short loc_C7D9
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C7D1:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
|
|
|
|
push [bp+arg_0]
|
|
|
|
|
call sub_C711
|
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C7D9:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp si, 0Ah
|
|
|
|
|
jl short loc_C7D1
|
|
|
|
|
pop si
|
|
|
|
|
pop bp
|
|
|
|
|
retn 2
|
|
|
|
|
sub_C7C9 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C7E3 proc near
|
2014-06-29 16:45:48 +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]
|
|
|
|
|
mov di, [bp+arg_2]
|
|
|
|
|
mov ax, si
|
|
|
|
|
add ax, ax
|
|
|
|
|
add ax, 17h
|
|
|
|
|
push ax
|
|
|
|
|
lea ax, [di+12h]
|
|
|
|
|
push ax
|
|
|
|
|
mov bx, di
|
|
|
|
|
imul bx, 11h
|
|
|
|
|
mov al, [bx+si+82Ch]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
|
|
|
|
push [bp+arg_0]
|
2014-08-31 02:56:17 +00:00
|
|
|
|
call gaiji_putca
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
pop bp
|
|
|
|
|
retn 6
|
|
|
|
|
sub_C7E3 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_C814 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_A = byte ptr -0Ah
|
|
|
|
|
var_9 = byte ptr -9
|
|
|
|
|
var_8 = word ptr -8
|
|
|
|
|
var_6 = word ptr -6
|
|
|
|
|
var_4 = word ptr -4
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
|
|
|
|
|
enter 0Ah, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
xor si, si
|
|
|
|
|
mov [bp+var_9], 0
|
2014-08-23 13:47:05 +00:00
|
|
|
|
mov PaletteTone, 0
|
2014-08-23 14:11:16 +00:00
|
|
|
|
call far ptr palette_show
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2014-12-16 04:53:56 +00:00
|
|
|
|
call pi_slot_load pascal, 0, ds, offset aHi01_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-06-29 16:45:48 +00:00
|
|
|
|
push 0
|
2014-08-27 04:13:48 +00:00
|
|
|
|
call graph_copy_page
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push ds
|
|
|
|
|
push offset aScnum2_bft ; "scnum2.bft"
|
2014-08-23 16:07:02 +00:00
|
|
|
|
call super_entry_bfnt
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte ptr es:[bx+11h], 6
|
|
|
|
|
jnz short loc_C87A
|
|
|
|
|
mov al, 4
|
|
|
|
|
jmp short loc_C882
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C87A:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, es:[bx+0Fh]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C882:
|
2019-03-01 15:16:54 +00:00
|
|
|
|
mov _hiscore_rank, al
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte ptr es:[bx+12h], 31h ; '1'
|
|
|
|
|
jnz short loc_C895
|
|
|
|
|
mov ax, 1
|
|
|
|
|
jmp short loc_C897
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C895:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
xor ax, ax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C897:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov byte ptr word_125B8, al
|
|
|
|
|
mov al, 1
|
|
|
|
|
sub al, byte ptr word_125B8
|
|
|
|
|
push ax
|
|
|
|
|
call sub_C2AD
|
|
|
|
|
mov al, byte ptr word_125B8
|
|
|
|
|
mov ah, 0
|
|
|
|
|
mov dx, 1
|
|
|
|
|
sub dx, ax
|
|
|
|
|
push dx
|
|
|
|
|
call sub_C7C9
|
|
|
|
|
push word_125B8
|
|
|
|
|
call sub_C2AD
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte ptr es:[bx+49h], 0
|
|
|
|
|
jnz short loc_C8CB
|
2019-03-01 15:16:54 +00:00
|
|
|
|
cmp _hiscore_rank, RANK_EXTRA
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jnz short loc_C8D9
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C8CB:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_C3B2
|
|
|
|
|
mov al, byte ptr word_125B8
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
|
|
|
|
call sub_C7C9
|
|
|
|
|
jmp short loc_C909
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C8D9:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov byte_125B6, 0FFh
|
|
|
|
|
mov al, byte ptr word_125B8
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
|
|
|
|
call sub_C7C9
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 7C00C4h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 9
|
|
|
|
|
push ds
|
2014-09-18 15:20:12 +00:00
|
|
|
|
push offset aGxgnbGvbGhvVGv ; "<22>X<EFBFBD><58><EFBFBD>[<5B><><EFBFBD>[<5B>h<EFBFBD>ł̃v<CC83><76><EFBFBD>C<EFBFBD>ł́A<CD81>X<EFBFBD>R<EFBFBD>A<EFBFBD>͋L<CD8B>E...
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call far ptr loc_D1FC
|
2014-11-19 11:09:22 +00:00
|
|
|
|
push 7800C0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 2
|
|
|
|
|
push ds
|
2014-09-18 15:20:12 +00:00
|
|
|
|
push offset aGxgnbGvbGhvV_1 ; "<22>X<EFBFBD><58><EFBFBD>[<5B><><EFBFBD>[<5B>h<EFBFBD>ł̃v<CC83><76><EFBFBD>C<EFBFBD>ł́A<CD81>X<EFBFBD>R<EFBFBD>A<EFBFBD>͋L<CD8B>E...
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call far ptr loc_D1FC
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C909:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte ptr es:[bx+30h], 0FFh
|
|
|
|
|
jz short loc_C922
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp byte ptr es:[bx+30h], 0FDh
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jz short loc_C922
|
2019-03-01 15:16:54 +00:00
|
|
|
|
cmp _hiscore_rank, RANK_EASY
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jnz short loc_C95E
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C922:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte_125A0
|
|
|
|
|
mov [bp+var_A], al
|
|
|
|
|
cmp [bp+var_A], 4
|
|
|
|
|
jb short loc_C944
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte ptr es:[bx+19h], 0
|
|
|
|
|
jnz short loc_C93D
|
|
|
|
|
mov al, 1
|
|
|
|
|
jmp short loc_C93F
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C93D:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, 2
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C93F:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_A], al
|
|
|
|
|
jmp short loc_C958
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C944:
|
2018-12-25 21:59:19 +00:00
|
|
|
|
les bx, _humaconfig
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte ptr es:[bx+19h], 0
|
|
|
|
|
jnz short loc_C953
|
|
|
|
|
mov al, 1
|
|
|
|
|
jmp short loc_C955
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C953:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, 2
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C955:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
or [bp+var_A], al
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C958:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, [bp+var_A]
|
|
|
|
|
mov byte_125A0, al
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C95E:
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_STOP
|
2014-11-29 23:18:40 +00:00
|
|
|
|
call snd_load pascal, ds, offset aName, SND_LOAD_SONG
|
2014-11-27 18:35:54 +00:00
|
|
|
|
kajacall KAJA_SONG_PLAY
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 2
|
2014-08-26 22:21:45 +00:00
|
|
|
|
call palette_black_in
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp byte_125B6, 0FFh
|
|
|
|
|
jz loc_CB7F
|
|
|
|
|
mov [bp+var_6], 0
|
|
|
|
|
jmp short loc_C9CB
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C990:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_8], 0
|
|
|
|
|
jmp short loc_C9C2
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C997:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, [bp+var_8]
|
|
|
|
|
add ax, ax
|
2014-12-20 21:14:58 +00:00
|
|
|
|
add ax, 23
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push ax
|
|
|
|
|
mov ax, [bp+var_6]
|
2014-12-20 21:14:58 +00:00
|
|
|
|
add ax, 18
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push ax
|
|
|
|
|
mov bx, [bp+var_6]
|
|
|
|
|
imul bx, 11h
|
|
|
|
|
add bx, [bp+var_8]
|
|
|
|
|
mov al, [bx+82Ch]
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2014-12-20 21:14:58 +00:00
|
|
|
|
push TX_WHITE
|
2014-08-31 02:56:17 +00:00
|
|
|
|
call gaiji_putca
|
2014-06-29 16:45:48 +00:00
|
|
|
|
inc [bp+var_8]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C9C2:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+var_8], 11h
|
|
|
|
|
jl short loc_C997
|
|
|
|
|
inc [bp+var_6]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C9CB:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+var_6], 3
|
|
|
|
|
jl short loc_C990
|
2014-12-20 21:14:58 +00:00
|
|
|
|
push (23 shl 16) + 18
|
2014-09-13 10:24:35 +00:00
|
|
|
|
mov al, gALPHABET
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
2014-12-20 21:14:58 +00:00
|
|
|
|
push TX_GREEN + TX_REVERSE
|
2014-08-31 02:56:17 +00:00
|
|
|
|
call gaiji_putca
|
2014-06-29 16:45:48 +00:00
|
|
|
|
xor di, di
|
|
|
|
|
mov [bp+var_2], 0
|
2018-09-11 17:34:19 +00:00
|
|
|
|
call far ptr _input_reset_sense
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_4], 1
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_C9F6:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
call _input_sense
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+var_4], 0
|
|
|
|
|
jnz loc_CB3B
|
2018-09-11 17:34:19 +00:00
|
|
|
|
test _input.lo, low INPUT_MOVEMENT
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jz short loc_CA6A
|
|
|
|
|
push di
|
|
|
|
|
push [bp+var_2]
|
2014-12-20 21:14:58 +00:00
|
|
|
|
push TX_WHITE
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_C7E3
|
2018-09-11 17:34:19 +00:00
|
|
|
|
test _input.lo, low INPUT_UP
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jz short loc_CA1E
|
|
|
|
|
dec [bp+var_2]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CA1E:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
test _input.lo, low INPUT_DOWN
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jz short loc_CA28
|
|
|
|
|
inc [bp+var_2]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CA28:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
test _input.lo, low INPUT_LEFT
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jz short loc_CA30
|
|
|
|
|
dec di
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CA30:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
test _input.lo, low INPUT_RIGHT
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jz short loc_CA38
|
|
|
|
|
inc di
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CA38:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+var_2], 0
|
|
|
|
|
jge short loc_CA45
|
|
|
|
|
mov [bp+var_2], 2
|
|
|
|
|
jmp short loc_CA50
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CA45:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+var_2], 2
|
|
|
|
|
jle short loc_CA50
|
|
|
|
|
mov [bp+var_2], 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CA50:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
or di, di
|
|
|
|
|
jge short loc_CA59
|
|
|
|
|
mov di, 10h
|
|
|
|
|
jmp short loc_CA60
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CA59:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp di, 10h
|
|
|
|
|
jle short loc_CA60
|
|
|
|
|
xor di, di
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CA60:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push di
|
|
|
|
|
push [bp+var_2]
|
2014-12-20 21:14:58 +00:00
|
|
|
|
push TX_GREEN + TX_REVERSE
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_C7E3
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CA6A:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
test _input.lo, low INPUT_SHOT
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jnz short loc_CA7A
|
2018-09-11 17:34:19 +00:00
|
|
|
|
test _input.hi, high INPUT_OK
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jz loc_CB03
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CA7A:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, [bp+var_2]
|
|
|
|
|
imul bx, 11h
|
|
|
|
|
mov al, [bx+di+82Ch]
|
|
|
|
|
mov [bp+var_A], al
|
|
|
|
|
mov ah, 0
|
|
|
|
|
sub ax, 0CDh ; '<27>'
|
|
|
|
|
mov bx, ax
|
|
|
|
|
cmp bx, 8
|
|
|
|
|
ja short loc_CABD
|
|
|
|
|
add bx, bx
|
|
|
|
|
jmp cs:off_CB9E[bx]
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CA9A:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_A], 2
|
|
|
|
|
jmp short loc_CABD
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CAA0:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte_125B6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
imul ax, 9
|
|
|
|
|
mov bx, ax
|
|
|
|
|
mov byte ptr [bx+si+3FC6h], 2
|
|
|
|
|
or si, si
|
|
|
|
|
jle short loc_CAF5
|
|
|
|
|
dec si
|
|
|
|
|
jmp short loc_CAF5
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CAB6:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp si, 7
|
|
|
|
|
jge short loc_CAF5
|
|
|
|
|
jmp short loc_CAF4
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CABD:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte_125B6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
imul ax, 9
|
|
|
|
|
mov dl, [bp+var_A]
|
|
|
|
|
mov bx, ax
|
|
|
|
|
mov [bx+si+3FC6h], dl
|
|
|
|
|
cmp si, 7
|
|
|
|
|
jnz short loc_CAEF
|
|
|
|
|
push di
|
|
|
|
|
push [bp+var_2]
|
2014-12-20 21:14:58 +00:00
|
|
|
|
push TX_WHITE
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_C7E3
|
|
|
|
|
mov di, 10h
|
|
|
|
|
mov [bp+var_2], 2
|
|
|
|
|
push di
|
|
|
|
|
push [bp+var_2]
|
2014-12-20 21:14:58 +00:00
|
|
|
|
push TX_GREEN + TX_REVERSE
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_C7E3
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CAEF:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp si, 7
|
|
|
|
|
jge short loc_CAF5
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CAF4:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
inc si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CAF5:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte_125B6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
|
|
|
|
push word_125B8
|
|
|
|
|
push si
|
|
|
|
|
call sub_C665
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CB03:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
test _input.lo, low INPUT_BOMB
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jz short loc_CB2C
|
|
|
|
|
mov al, byte_125B6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
imul ax, 9
|
|
|
|
|
mov bx, ax
|
|
|
|
|
mov byte ptr [bx+si+3FC6h], 2
|
|
|
|
|
or si, si
|
|
|
|
|
jle short loc_CB1E
|
|
|
|
|
dec si
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CB1E:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, byte_125B6
|
|
|
|
|
mov ah, 0
|
|
|
|
|
push ax
|
|
|
|
|
push word_125B8
|
|
|
|
|
push si
|
|
|
|
|
call sub_C665
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CB2C:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
test _input.hi, high INPUT_CANCEL
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jnz short loc_CB7A
|
2018-09-11 17:34:19 +00:00
|
|
|
|
mov ax, _input
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_4], ax
|
|
|
|
|
jmp short loc_CB6B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CB3B:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
mov ax, _input
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp ax, [bp+var_4]
|
|
|
|
|
jnz short loc_CB59
|
|
|
|
|
inc [bp+var_9]
|
|
|
|
|
cmp [bp+var_9], 1Eh
|
|
|
|
|
jbe short loc_CB6B
|
|
|
|
|
test [bp+var_9], 1
|
|
|
|
|
jnz short loc_CB6B
|
|
|
|
|
mov [bp+var_4], 0
|
|
|
|
|
jmp short loc_CB6B
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CB59:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
cmp _input, INPUT_NONE
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jz short loc_CB62
|
|
|
|
|
jmp short loc_CB67
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CB62:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_4], 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CB67:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_9], 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CB6B:
|
2018-09-11 17:34:19 +00:00
|
|
|
|
call far ptr _input_reset_sense
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 1
|
2014-11-23 21:25:22 +00:00
|
|
|
|
call frame_delay
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp loc_C9F6
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CB7A:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_C316
|
|
|
|
|
jmp short loc_CB89
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CB7F:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_C316
|
|
|
|
|
push 0
|
2018-09-17 20:10:42 +00:00
|
|
|
|
call _input_wait_for_change
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CB89:
|
2014-08-22 21:45:21 +00:00
|
|
|
|
call super_free
|
2014-08-20 14:45:24 +00:00
|
|
|
|
call text_clear
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 1
|
2014-08-26 22:33:43 +00:00
|
|
|
|
call palette_black_out
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn
|
|
|
|
|
sub_C814 endp
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
2014-08-10 01:44:54 +00:00
|
|
|
|
off_CB9E dw offset loc_CA9A
|
2014-06-29 16:45:48 +00:00
|
|
|
|
dw offset loc_CAA0
|
|
|
|
|
dw offset loc_CAB6
|
|
|
|
|
dw offset loc_CABD
|
|
|
|
|
dw offset loc_CABD
|
|
|
|
|
dw offset loc_CABD
|
|
|
|
|
dw offset loc_CABD
|
|
|
|
|
dw offset loc_CABD
|
|
|
|
|
dw offset loc_CB7A
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2018-12-27 20:42:27 +00:00
|
|
|
|
_egc_start_copy_inlined proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2018-12-27 20:42:27 +00:00
|
|
|
|
EGC_START_COPY_INLINED
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retn
|
2018-12-27 20:42:27 +00:00
|
|
|
|
_egc_start_copy_inlined endp
|
2014-06-29 16:45:48 +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_CBF3 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
var_8 = word ptr -8
|
|
|
|
|
var_6 = word ptr -6
|
|
|
|
|
var_4 = word ptr -4
|
|
|
|
|
var_2 = word ptr -2
|
|
|
|
|
arg_0 = word ptr 4
|
|
|
|
|
arg_2 = word ptr 6
|
|
|
|
|
arg_4 = word ptr 8
|
|
|
|
|
arg_6 = word ptr 0Ah
|
|
|
|
|
|
|
|
|
|
enter 8, 0
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
mov di, [bp+arg_2]
|
2018-12-27 20:42:27 +00:00
|
|
|
|
call _egc_start_copy_inlined
|
2014-06-29 16:45:48 +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 [bp+var_6], ax
|
|
|
|
|
mov bx, 10h
|
|
|
|
|
mov ax, di
|
|
|
|
|
cwd
|
|
|
|
|
idiv bx
|
|
|
|
|
mov di, ax
|
|
|
|
|
mov [bp+var_4], 0
|
|
|
|
|
jmp short loc_CC66
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CC29:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov [bp+var_2], 0
|
|
|
|
|
mov si, [bp+var_6]
|
|
|
|
|
jmp short loc_CC5A
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CC33:
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2015-02-24 15:17:50 +00:00
|
|
|
|
les bx, _VRAM_PLANE_B
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add bx, si
|
|
|
|
|
mov ax, es:[bx]
|
|
|
|
|
mov [bp+var_8], ax
|
|
|
|
|
mov al, 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out dx, al
|
2015-02-24 15:17:50 +00:00
|
|
|
|
mov bx, word ptr _VRAM_PLANE_B
|
2014-06-29 16:45:48 +00:00
|
|
|
|
add bx, si
|
|
|
|
|
mov ax, [bp+var_8]
|
|
|
|
|
mov es:[bx], ax
|
|
|
|
|
inc [bp+var_2]
|
|
|
|
|
add si, 2
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CC5A:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp [bp+var_2], di
|
|
|
|
|
jl short loc_CC33
|
|
|
|
|
inc [bp+var_4]
|
|
|
|
|
add [bp+var_6], 50h ; 'P'
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_CC66:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, [bp+var_4]
|
|
|
|
|
cmp ax, [bp+arg_0]
|
|
|
|
|
jl short loc_CC29
|
2014-08-20 20:24:05 +00:00
|
|
|
|
call egc_off
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
leave
|
|
|
|
|
retn 8
|
|
|
|
|
sub_CBF3 endp
|
2014-11-22 08:29:09 +00:00
|
|
|
|
db 0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2015-02-21 11:47:24 +00:00
|
|
|
|
maine_01_TEXT ends
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
; ===========================================================================
|
|
|
|
|
|
|
|
|
|
; Segment type: Pure code
|
2015-02-21 11:47:24 +00:00
|
|
|
|
maine_02_TEXT segment word public 'CODE' use16
|
|
|
|
|
assume cs:maine_02_TEXT
|
2014-11-22 08:29:09 +00:00
|
|
|
|
;org 0Ah
|
2015-02-18 11:07:37 +00:00
|
|
|
|
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
[Reverse-engineering] 32-bit VRAM plane pointers
I've looked at every openly available piece of PC-98 documentation, and there
don't seem to be any official names for the individual planes. The closest
thing I could find was the description at
http://island.geocities.jp/cklouch/column/pc98bas/pc98disphw2.htm
explaining that they represent the blue, red, green, and brightness component
when using the default PC-98 palette. However, these planes correspond to
nothing else but the 4 individual bits of the final index into the color
palette, and you can assign any color to every single palette slot. Therefore,
it's merely a convention that your own palettes don't have to follow (and in
Touhou, they don't).
Nevertheless, there doesn't seem to be an alternative, and the Neko Project II
source code uses the same B/R/G/E convention, so I'll go with that as well.
2015-02-10 22:43:34 +00:00
|
|
|
|
include th01/hardware/vram_planes_set.asm
|
2015-02-23 09:29:12 +00:00
|
|
|
|
include th02/hardware/frame_delay.asm
|
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
|
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
|
2017-01-07 21:30:46 +00:00
|
|
|
|
include th03/formats/hfliplut.asm
|
2018-09-17 20:10:42 +00:00
|
|
|
|
include th04/hardware/input_wait.asm
|
2017-01-08 20:01:13 +00:00
|
|
|
|
include th04/math/vector1_at.asm
|
|
|
|
|
include th04/math/vector2_at.asm
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th04/snd/pmd_res.asm
|
|
|
|
|
include th02/snd/mmd_res.asm
|
2015-03-15 22:26:44 +00:00
|
|
|
|
include th04/snd/kajaint.asm
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th04/snd/detmodes.asm
|
2014-06-29 16:45:48 +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_D046 proc far
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
arg_0 = word ptr 6
|
|
|
|
|
arg_2 = word ptr 8
|
|
|
|
|
|
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2015-02-23 10:47:22 +00:00
|
|
|
|
cmp _snd_bgm_mode, SND_BGM_OFF
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jnz short loc_D05C
|
|
|
|
|
push [bp+arg_0]
|
2014-11-23 21:25:22 +00:00
|
|
|
|
nopcall frame_delay
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retf 4
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D05C:
|
2014-11-27 18:35:54 +00:00
|
|
|
|
mov ah, KAJA_GET_SONG_MEASURE
|
2015-02-23 10:47:22 +00:00
|
|
|
|
cmp _snd_bgm_mode, SND_BGM_MIDI
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jz short loc_D069
|
|
|
|
|
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_D06E
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D069:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
mov dx, 0C0h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
int 61h ; reserved for user interrupt
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D06E:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp ax, [bp+arg_2]
|
|
|
|
|
jb short loc_D05C
|
|
|
|
|
pop bp
|
|
|
|
|
retf 4
|
|
|
|
|
sub_D046 endp
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
db 0
|
2017-01-29 22:05:40 +00:00
|
|
|
|
include th04/formats/cdg_put_plane.asm
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th04/snd/load.asm
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D1FC:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
push ds
|
|
|
|
|
mov dx, [bp+0Ah]
|
2018-12-04 22:08:57 +00:00
|
|
|
|
GRCG_NOINT_SETMODE_VIA_MOV al, GC_RMW
|
2018-12-06 16:00:31 +00:00
|
|
|
|
GRCG_SETCOLOR_DIRECT dx
|
2018-12-21 21:27:05 +00:00
|
|
|
|
mov ax, GRAM_400
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov es, ax
|
|
|
|
|
assume es:nothing
|
|
|
|
|
mov dx, [bp+0Ch]
|
|
|
|
|
shl dx, 6
|
|
|
|
|
mov di, dx
|
|
|
|
|
shr dx, 2
|
|
|
|
|
add di, dx
|
|
|
|
|
mov cx, [bp+0Eh]
|
|
|
|
|
mov al, 0Bh
|
|
|
|
|
out 68h, al
|
|
|
|
|
mov bx, word_EB2C
|
|
|
|
|
add bx, bx
|
|
|
|
|
cmp bx, 8
|
|
|
|
|
jb short loc_D258
|
|
|
|
|
cmp bx, 10h
|
|
|
|
|
jnb short loc_D258
|
|
|
|
|
mov ax, [bx+5CCh]
|
|
|
|
|
mov word ptr cs:loc_D350+3, ax
|
|
|
|
|
mov bx, 8
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D258:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, [bx+5C0h]
|
2014-11-12 22:11:16 +00:00
|
|
|
|
mov word ptr cs:loc_D2BA+1, ax
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ax, [bx+5CAh]
|
|
|
|
|
mov word ptr cs:loc_D30C+1, ax
|
|
|
|
|
mov ax, word_EB2E
|
2014-11-12 22:11:16 +00:00
|
|
|
|
mov word ptr cs:loc_D2D9+1, ax
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov word ptr cs:loc_D320+1, ax
|
|
|
|
|
push ds
|
|
|
|
|
pop fs
|
2015-02-18 11:07:37 +00:00
|
|
|
|
assume fs:_DATA
|
2014-06-29 16:45:48 +00:00
|
|
|
|
lds si, [bp+6]
|
|
|
|
|
lodsb
|
|
|
|
|
or al, al
|
|
|
|
|
jz short loc_D2E5
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D27E:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov dx, cx
|
|
|
|
|
shr dx, 3
|
|
|
|
|
add di, dx
|
|
|
|
|
and cx, 7
|
|
|
|
|
mov ah, 9
|
|
|
|
|
test al, 0E0h
|
|
|
|
|
jns short loc_D2F7
|
|
|
|
|
jp short loc_D2F4
|
|
|
|
|
mov ah, al
|
|
|
|
|
lodsb
|
|
|
|
|
shl ah, 1
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp al, 9Fh
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jnb short loc_D29E
|
2014-09-18 15:20:12 +00:00
|
|
|
|
cmp al, 80h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
adc ax, 0FEDFh
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D29E:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
sbb al, 0FEh
|
2014-06-29 16:45:48 +00:00
|
|
|
|
and ax, 7F7Fh
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out 0A1h, al
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, ah
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out 0A3h, al
|
2014-06-29 16:45:48 +00:00
|
|
|
|
nop
|
2014-11-12 22:11:16 +00:00
|
|
|
|
|
|
|
|
|
loc_D2AA:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, ch
|
|
|
|
|
or al, 20h
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out 0A5h, al
|
|
|
|
|
in al, 0A9h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov ah, al
|
|
|
|
|
mov al, ch
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out 0A5h, al
|
|
|
|
|
in al, 0A9h
|
2014-11-12 22:11:16 +00:00
|
|
|
|
|
|
|
|
|
loc_D2BA:
|
|
|
|
|
call sub_D335
|
|
|
|
|
mov bh, al
|
|
|
|
|
mov bl, 0
|
|
|
|
|
shr ax, cl
|
|
|
|
|
shr bx, cl
|
|
|
|
|
xchg ah, al
|
|
|
|
|
stosw
|
|
|
|
|
mov es:[di], bl
|
2018-12-21 21:27:05 +00:00
|
|
|
|
add di, ROW_SIZE - 2
|
2014-11-12 22:11:16 +00:00
|
|
|
|
inc ch
|
|
|
|
|
cmp ch, 10h
|
|
|
|
|
jb short loc_D2AA
|
|
|
|
|
sub di, 500h
|
|
|
|
|
|
|
|
|
|
loc_D2D9:
|
|
|
|
|
mov dx, 1234h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D2DC:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
xor ch, ch
|
|
|
|
|
add cx, dx
|
|
|
|
|
lodsb
|
|
|
|
|
or al, al
|
|
|
|
|
jnz short loc_D27E
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D2E5:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, 0Ah
|
|
|
|
|
out 68h, al
|
2018-12-04 22:08:57 +00:00
|
|
|
|
GRCG_OFF_VIA_XOR al
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop ds
|
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
pop bp
|
|
|
|
|
retf 0Ah
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D2F4:
|
2014-09-18 15:20:12 +00:00
|
|
|
|
add ax, 80h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D2F7:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp al, 20h ; ' '
|
|
|
|
|
jz short loc_D320
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out 0A1h, al
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, ah
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out 0A3h, al
|
2014-06-29 16:45:48 +00:00
|
|
|
|
nop
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D302:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov al, ch
|
|
|
|
|
or al, 20h
|
2014-09-18 15:20:12 +00:00
|
|
|
|
out 0A5h, al
|
|
|
|
|
in al, 0A9h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
xor ah, ah
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D30C:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
call sub_D335
|
|
|
|
|
ror ax, cl
|
|
|
|
|
stosw
|
|
|
|
|
add di, 4Eh ; 'N'
|
|
|
|
|
inc ch
|
|
|
|
|
cmp ch, 10h
|
|
|
|
|
jb short loc_D302
|
|
|
|
|
sub di, 500h
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D320:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov dx, 1234h
|
|
|
|
|
shr dx, 1
|
|
|
|
|
jmp short loc_D2DC
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
nop
|
|
|
|
|
mov dx, ax
|
|
|
|
|
add dx, dx
|
|
|
|
|
or ax, dx
|
|
|
|
|
retn
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
mov dx, ax
|
|
|
|
|
shl dx, 1
|
|
|
|
|
or ax, dx
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_D335 proc near
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov dx, ax
|
|
|
|
|
mov bp, ax
|
|
|
|
|
add bp, bp
|
|
|
|
|
or ax, bp
|
|
|
|
|
xor dx, ax
|
|
|
|
|
add dx, dx
|
|
|
|
|
not dx
|
|
|
|
|
and ax, dx
|
|
|
|
|
retn
|
|
|
|
|
sub_D335 endp
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
call sub_D335
|
|
|
|
|
mov bl, ch
|
|
|
|
|
and bx, 3
|
|
|
|
|
add bx, bx
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D350:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
and ax, fs:[bx+1234h]
|
|
|
|
|
retn
|
|
|
|
|
|
2017-01-21 17:10:53 +00:00
|
|
|
|
include th04/formats/cdg_put.asm
|
2014-06-29 16:45:48 +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_D3F4 proc far
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
2014-11-16 03:00:41 +00:00
|
|
|
|
call pfend
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 1
|
2014-08-27 04:03:08 +00:00
|
|
|
|
call graph_clear
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 0
|
2014-08-27 04:03:08 +00:00
|
|
|
|
call graph_clear
|
2018-12-29 19:08:52 +00:00
|
|
|
|
graph_accesspage 0
|
|
|
|
|
graph_showpage al
|
2014-09-08 18:30:15 +00:00
|
|
|
|
call mem_unassign
|
2014-08-26 21:58:08 +00:00
|
|
|
|
call vsync_end
|
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-08-26 05:58:33 +00:00
|
|
|
|
call bgm_finish
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop bp
|
|
|
|
|
retf
|
|
|
|
|
sub_D3F4 endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_D43C proc far
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
arg_0 = dword ptr 6
|
|
|
|
|
|
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push word_10070
|
2014-08-21 21:30:20 +00:00
|
|
|
|
call mem_assign_dos
|
2014-06-29 16:45:48 +00:00
|
|
|
|
or ax, ax
|
|
|
|
|
jz short loc_D453
|
|
|
|
|
mov ax, 1
|
|
|
|
|
pop bp
|
|
|
|
|
retf 4
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D453:
|
2014-08-27 00:40:09 +00:00
|
|
|
|
mov bbufsiz, 1000h
|
[Reverse-engineering] 32-bit VRAM plane pointers
I've looked at every openly available piece of PC-98 documentation, and there
don't seem to be any official names for the individual planes. The closest
thing I could find was the description at
http://island.geocities.jp/cklouch/column/pc98bas/pc98disphw2.htm
explaining that they represent the blue, red, green, and brightness component
when using the default PC-98 palette. However, these planes correspond to
nothing else but the 4 individual bits of the final index into the color
palette, and you can assign any color to every single palette slot. Therefore,
it's merely a convention that your own palettes don't have to follow (and in
Touhou, they don't).
Nevertheless, there doesn't seem to be an alternative, and the Neko Project II
source code uses the same B/R/G/E convention, so I'll go with that as well.
2015-02-10 22:43:34 +00:00
|
|
|
|
nopcall vram_planes_set
|
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
|
2018-04-15 12:51:57 +00:00
|
|
|
|
call js_start
|
2014-11-19 11:09:22 +00:00
|
|
|
|
pushd [bp+arg_0]
|
2014-11-16 03:00:41 +00:00
|
|
|
|
call pfstart
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push 800h
|
2014-08-26 05:58:33 +00:00
|
|
|
|
call bgm_init
|
2014-06-29 16:45:48 +00:00
|
|
|
|
xor ax, ax
|
|
|
|
|
pop bp
|
|
|
|
|
retf 4
|
|
|
|
|
sub_D43C endp
|
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
db 0
|
2018-09-11 17:34:19 +00:00
|
|
|
|
include th04/hardware/input_sense.asm
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th04/snd/se.asm
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_D626 proc far
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
cmp word_EB32, 0
|
|
|
|
|
jnz short loc_D65B
|
|
|
|
|
push 7D00h
|
2014-08-21 22:17:53 +00:00
|
|
|
|
call hmem_allocbyte
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov word_EB32, ax
|
|
|
|
|
push 7D00h
|
2014-08-21 22:17:53 +00:00
|
|
|
|
call hmem_allocbyte
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov word_EB34, ax
|
|
|
|
|
push 7D00h
|
2014-08-21 22:17:53 +00:00
|
|
|
|
call hmem_allocbyte
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov word_EB36, ax
|
|
|
|
|
push 7D00h
|
2014-08-21 22:17:53 +00:00
|
|
|
|
call hmem_allocbyte
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov word_EB38, ax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D65B:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov dl, 4
|
|
|
|
|
push ds
|
|
|
|
|
push 0E000h
|
|
|
|
|
push word_EB38
|
|
|
|
|
push 0B800h
|
|
|
|
|
push word_EB36
|
|
|
|
|
push 0B000h
|
|
|
|
|
push word_EB34
|
|
|
|
|
push 0A800h
|
|
|
|
|
push word_EB32
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D67A:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop es
|
|
|
|
|
assume es:nothing
|
|
|
|
|
pop ds
|
|
|
|
|
xor si, si
|
|
|
|
|
xor di, di
|
2018-12-21 21:27:05 +00:00
|
|
|
|
mov cx, (ROW_SIZE * RES_Y) / 4
|
2014-06-29 16:45:48 +00:00
|
|
|
|
rep movsd
|
|
|
|
|
dec dl
|
|
|
|
|
jnz short loc_D67A
|
|
|
|
|
pop ds
|
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
retf
|
2015-02-20 21:29:25 +00:00
|
|
|
|
sub_D626 endp
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
push si
|
|
|
|
|
push di
|
|
|
|
|
mov dl, 4
|
|
|
|
|
push ds
|
|
|
|
|
push 0E000h
|
|
|
|
|
push word_EB38
|
|
|
|
|
push 0B800h
|
|
|
|
|
push word_EB36
|
|
|
|
|
push 0B000h
|
|
|
|
|
push word_EB34
|
|
|
|
|
push 0A800h
|
|
|
|
|
push word_EB32
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D6AF:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
pop ds
|
|
|
|
|
pop es
|
|
|
|
|
xor si, si
|
|
|
|
|
xor di, di
|
2018-12-21 21:27:05 +00:00
|
|
|
|
mov cx, (ROW_SIZE * RES_Y) / 4
|
2014-06-29 16:45:48 +00:00
|
|
|
|
rep movsd
|
|
|
|
|
dec dl
|
|
|
|
|
jnz short loc_D6AF
|
|
|
|
|
pop ds
|
|
|
|
|
pop di
|
|
|
|
|
pop si
|
|
|
|
|
retf
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
|
|
|
nop
|
|
|
|
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
sub_D6C4 proc far
|
2014-06-29 16:45:48 +00:00
|
|
|
|
cmp word_EB32, 0
|
|
|
|
|
jz short locret_D6F5
|
|
|
|
|
push word_EB32
|
2014-08-21 22:17:53 +00:00
|
|
|
|
call hmem_free
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push word_EB34
|
2014-08-21 22:17:53 +00:00
|
|
|
|
call hmem_free
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push word_EB36
|
2014-08-21 22:17:53 +00:00
|
|
|
|
call hmem_free
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push word_EB38
|
2014-08-21 22:17:53 +00:00
|
|
|
|
call hmem_free
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov word_EB32, 0
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
locret_D6F5:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
retf
|
|
|
|
|
sub_D6C4 endp
|
|
|
|
|
|
|
|
|
|
|
2014-11-12 22:11:16 +00:00
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
|
|
|
|
; Attributes: bp-based frame
|
|
|
|
|
|
|
|
|
|
sub_D6F6 proc far
|
|
|
|
|
|
|
|
|
|
arg_0 = word ptr 6
|
|
|
|
|
arg_2 = word ptr 8
|
|
|
|
|
arg_4 = word ptr 0Ah
|
|
|
|
|
arg_6 = word ptr 0Ch
|
|
|
|
|
|
2014-06-29 16:45:48 +00:00
|
|
|
|
push bp
|
|
|
|
|
mov bp, sp
|
|
|
|
|
push di
|
|
|
|
|
push si
|
|
|
|
|
push ds
|
|
|
|
|
cld
|
2014-11-12 22:11:16 +00:00
|
|
|
|
mov ax, [bp+arg_6]
|
|
|
|
|
mov dx, [bp+arg_4]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, ax
|
|
|
|
|
sar bx, 4
|
|
|
|
|
shl bx, 1
|
|
|
|
|
shl dx, 6
|
|
|
|
|
add bx, dx
|
|
|
|
|
shr dx, 2
|
|
|
|
|
add bx, dx
|
2014-11-12 22:11:16 +00:00
|
|
|
|
mov word ptr cs:loc_D75B+1, bx
|
2014-06-29 16:45:48 +00:00
|
|
|
|
and ax, 0Fh
|
|
|
|
|
mov cx, ax
|
2014-11-12 22:11:16 +00:00
|
|
|
|
add ax, [bp+arg_2]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
shr ax, 4
|
|
|
|
|
or cx, cx
|
|
|
|
|
jz short loc_D729
|
|
|
|
|
inc ax
|
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
loc_D729:
|
2014-11-12 22:11:16 +00:00
|
|
|
|
mov word ptr cs:loc_D760+1, ax
|
2014-06-29 16:45:48 +00:00
|
|
|
|
jmp short $+2
|
|
|
|
|
mov cx, 28h ; '('
|
|
|
|
|
sub cx, ax
|
|
|
|
|
shl cx, 1
|
2014-11-12 22:11:16 +00:00
|
|
|
|
mov ax, [bp+arg_0]
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bp, cx
|
|
|
|
|
push 0E000h
|
|
|
|
|
push word_EB38
|
|
|
|
|
push 0B800h
|
|
|
|
|
push word_EB36
|
|
|
|
|
push 0B000h
|
|
|
|
|
push word_EB34
|
|
|
|
|
push 0A800h
|
|
|
|
|
push word_EB32
|
|
|
|
|
mov dl, 4
|
2014-11-12 22:11:16 +00:00
|
|
|
|
|
|
|
|
|
loc_D759:
|
2014-06-29 16:45:48 +00:00
|
|
|
|
mov bx, ax
|
2014-11-12 22:11:16 +00:00
|
|
|
|
|
|
|
|
|
loc_D75B:
|
|
|
|
|
mov di, 1234h
|
|
|
|
|
pop ds
|
|
|
|
|
pop es
|
|
|
|
|
|
|
|
|
|
loc_D760:
|
|
|
|
|
mov cx, 1234h
|
|
|
|
|
mov si, di
|
|
|
|
|
rep movsw
|
|
|
|
|
add di, bp
|
|
|
|
|
dec bx
|
|
|
|
|
jns short loc_D760
|
|
|
|
|
dec dl
|
|
|
|
|
jnz short loc_D759
|
|
|
|
|
pop ds
|
|
|
|
|
pop si
|
|
|
|
|
pop di
|
|
|
|
|
pop bp
|
|
|
|
|
retf 8
|
|
|
|
|
sub_D6F6 endp
|
|
|
|
|
|
2014-06-29 16:45:48 +00:00
|
|
|
|
; ---------------------------------------------------------------------------
|
2014-11-12 22:11:16 +00:00
|
|
|
|
nop
|
2017-01-19 20:14:22 +00:00
|
|
|
|
include th04/formats/cdg_load.asm
|
2015-02-21 11:47:24 +00:00
|
|
|
|
maine_02_TEXT ends
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2015-02-18 11:07:37 +00:00
|
|
|
|
.data
|
2014-08-19 20:33:43 +00:00
|
|
|
|
|
2014-08-10 01:44:54 +00:00
|
|
|
|
off_E5C0 dd a_ed000_txt
|
2014-06-29 16:45:48 +00:00
|
|
|
|
; "_ED000.TXT"
|
2014-08-10 01:44:54 +00:00
|
|
|
|
aMiko_cfg db 'MIKO.CFG',0
|
|
|
|
|
a_ed000_txt db '_ED000.TXT',0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
aCong00_pi db 'CONG00.pi',0
|
2014-08-10 01:44:54 +00:00
|
|
|
|
aMSzlEd_dat db '<27><><EFBFBD>z<EFBFBD><7A>ed.dat',0
|
|
|
|
|
aGameft_bft db 'GAMEFT.bft',0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
; char arg0[]
|
2014-08-10 01:44:54 +00:00
|
|
|
|
arg0 db 'op',0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db 0
|
2014-08-26 05:25:43 +00:00
|
|
|
|
include libs/master.lib/atrtcmod[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-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-14 12:30:48 +00:00
|
|
|
|
include libs/master.lib/get_machine_98[data].asm
|
2014-08-14 11:57:40 +00:00
|
|
|
|
include libs/master.lib/get_machine_at[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
|
2018-04-15 14:05:57 +00:00
|
|
|
|
include libs/master.lib/js[data].asm
|
2014-08-14 10:09:09 +00:00
|
|
|
|
include libs/master.lib/machine[data].asm
|
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-17 03:54:40 +00:00
|
|
|
|
include th02/formats/pfopen[data].asm
|
2014-08-26 04:18:06 +00:00
|
|
|
|
include libs/master.lib/bgm_timerhook[data].asm
|
2014-08-25 20:32:21 +00:00
|
|
|
|
include libs/master.lib/bgm[data].asm
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th04/snd/se_priority[data].asm
|
2017-01-29 22:05:40 +00:00
|
|
|
|
include th04/formats/cdg_put_plane[data].asm
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th04/snd/snd[data].asm
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db 0
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th04/snd/load[data].asm
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db 71h ; q
|
|
|
|
|
db 0
|
|
|
|
|
db 6Bh ; k
|
|
|
|
|
db 0
|
|
|
|
|
db 78h ; x
|
|
|
|
|
db 0
|
|
|
|
|
db 72h ; r
|
|
|
|
|
db 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
db 89h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db 0
|
|
|
|
|
db 1Fh
|
|
|
|
|
db 0
|
|
|
|
|
db 19h
|
|
|
|
|
db 0
|
|
|
|
|
db 26h ; &
|
|
|
|
|
db 0
|
|
|
|
|
db 20h
|
|
|
|
|
db 0
|
|
|
|
|
db 37h ; 7
|
|
|
|
|
db 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
db 0DCh
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db 5
|
2014-09-18 15:20:12 +00:00
|
|
|
|
db 0E4h ; <20>E
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db 5
|
2014-09-18 15:20:12 +00:00
|
|
|
|
db 0ECh
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db 5
|
2014-09-18 15:20:12 +00:00
|
|
|
|
db 0F4h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db 5
|
2014-09-18 15:20:12 +00:00
|
|
|
|
db 88h
|
|
|
|
|
db 88h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db 0
|
|
|
|
|
db 0
|
|
|
|
|
db 22h ; "
|
|
|
|
|
db 22h ; "
|
|
|
|
|
db 0
|
|
|
|
|
db 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
db 88h
|
|
|
|
|
db 88h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db 44h ; D
|
|
|
|
|
db 44h ; D
|
|
|
|
|
db 22h ; "
|
|
|
|
|
db 22h ; "
|
|
|
|
|
db 11h
|
|
|
|
|
db 11h
|
|
|
|
|
db 0AAh ; <20>
|
|
|
|
|
db 0AAh ; <20>
|
|
|
|
|
db 44h ; D
|
|
|
|
|
db 44h ; D
|
|
|
|
|
db 0AAh ; <20>
|
|
|
|
|
db 0AAh ; <20>
|
|
|
|
|
db 11h
|
|
|
|
|
db 11h
|
|
|
|
|
db 0AAh ; <20>
|
|
|
|
|
db 0AAh ; <20>
|
|
|
|
|
db 55h ; U
|
|
|
|
|
db 55h ; U
|
|
|
|
|
db 0AAh ; <20>
|
|
|
|
|
db 0AAh ; <20>
|
|
|
|
|
db 55h ; U
|
|
|
|
|
db 55h ; U
|
2014-08-10 01:44:54 +00:00
|
|
|
|
word_EB2C dw 2
|
|
|
|
|
word_EB2E dw 10h
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th03/snd/se_state[data].asm
|
2014-08-10 01:44:54 +00:00
|
|
|
|
word_EB32 dw 0
|
|
|
|
|
word_EB34 dw 0
|
|
|
|
|
word_EB36 dw 0
|
|
|
|
|
word_EB38 dw 0
|
2017-01-19 20:14:22 +00:00
|
|
|
|
include th03/formats/cdg[data].asm
|
2014-06-29 16:45:48 +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-06-29 16:45:48 +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-06-29 16:45:48 +00:00
|
|
|
|
db 77h ; w
|
|
|
|
|
db 77h ; w
|
|
|
|
|
db 0BBh ; <20>
|
|
|
|
|
db 0BBh ; <20>
|
2014-09-18 15:20:12 +00:00
|
|
|
|
db 0DDh
|
|
|
|
|
db 0DDh
|
|
|
|
|
db 88h
|
|
|
|
|
db 88h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db 0
|
|
|
|
|
db 0
|
|
|
|
|
db 22h ; "
|
|
|
|
|
db 22h ; "
|
|
|
|
|
db 0
|
|
|
|
|
db 0
|
2014-09-18 15:20:12 +00:00
|
|
|
|
db 88h
|
|
|
|
|
db 88h
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db 44h ; D
|
|
|
|
|
db 44h ; D
|
|
|
|
|
db 22h ; "
|
|
|
|
|
db 22h ; "
|
|
|
|
|
db 11h
|
|
|
|
|
db 11h
|
|
|
|
|
db 0AAh ; <20>
|
|
|
|
|
db 0AAh ; <20>
|
|
|
|
|
db 44h ; D
|
|
|
|
|
db 44h ; D
|
|
|
|
|
db 0AAh ; <20>
|
|
|
|
|
db 0AAh ; <20>
|
|
|
|
|
db 11h
|
|
|
|
|
db 11h
|
|
|
|
|
db 0AAh ; <20>
|
|
|
|
|
db 0AAh ; <20>
|
|
|
|
|
db 44h ; D
|
|
|
|
|
db 44h ; D
|
|
|
|
|
db 0AAh ; <20>
|
|
|
|
|
db 0AAh ; <20>
|
|
|
|
|
db 55h ; U
|
|
|
|
|
db 55h ; U
|
|
|
|
|
db 0FFh
|
|
|
|
|
db 0FFh
|
|
|
|
|
db 0FFh
|
|
|
|
|
db 0FFh
|
|
|
|
|
db 0FFh
|
|
|
|
|
db 0FFh
|
|
|
|
|
db 0FFh
|
|
|
|
|
db 0FFh
|
|
|
|
|
db 20h
|
|
|
|
|
db 20h
|
|
|
|
|
db 0
|
|
|
|
|
db 0
|
2014-08-10 01:44:54 +00:00
|
|
|
|
aSff1_pi db 'sff1.pi',0
|
|
|
|
|
aStaff db 'staff',0
|
|
|
|
|
aSff1_cdg db 'sff1.cdg',0
|
|
|
|
|
aSff1b_cdg db 'sff1b.cdg',0
|
|
|
|
|
aSff2_cdg db 'sff2.cdg',0
|
|
|
|
|
aSff2b_cdg db 'sff2b.cdg',0
|
|
|
|
|
aSff3_cdg db 'sff3.cdg',0
|
|
|
|
|
aSff3b_cdg db 'sff3b.cdg',0
|
|
|
|
|
aSff2_pi db 'sff2.pi',0
|
|
|
|
|
aSff4_cdg db 'sff4.cdg',0
|
|
|
|
|
aSff4b_cdg db 'sff4b.cdg',0
|
|
|
|
|
aSff5_cdg db 'sff5.cdg',0
|
|
|
|
|
aSff5b_cdg db 'sff5b.cdg',0
|
|
|
|
|
aSff8_cdg db 'sff8.cdg',0
|
|
|
|
|
aSff8b_cdg db 'sff8b.cdg',0
|
|
|
|
|
aSff9_cdg db 'sff9.cdg',0
|
|
|
|
|
aSff9b_cdg db 'sff9b.cdg',0
|
|
|
|
|
aSff6_cdg db 'sff6.cdg',0
|
|
|
|
|
aSff6b_cdg db 'sff6b.cdg',0
|
|
|
|
|
aSff7_cdg db 'sff7.cdg',0
|
|
|
|
|
aSff7b_cdg db 'sff7b.cdg',0
|
|
|
|
|
db 0
|
|
|
|
|
byte_EC4A db 0
|
2014-09-13 10:24:35 +00:00
|
|
|
|
include th04/strings/verdict[data].asm
|
2014-08-10 01:44:54 +00:00
|
|
|
|
byte_EC73 db 0
|
|
|
|
|
aU_ db '<27>_',0
|
|
|
|
|
aBd db '<27>D',0
|
|
|
|
|
aBu db '<27><>',0
|
|
|
|
|
aBd_0 db '<27>D',0
|
|
|
|
|
aBu_0 db '<27><>',0
|
|
|
|
|
aB@b@b@b@b@b@b@ db '<27>@<40>@<40>@<40>@<40>@<40>@<40>@ <20>r<EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD>',0
|
|
|
|
|
aUqiUx db '<27><><EFBFBD>Փx',0
|
|
|
|
|
aNPiuU_ db '<27>ŏI<C58F><49><EFBFBD>_',0
|
|
|
|
|
aGGxi db '<27>~<7E>X<EFBFBD><58><EFBFBD><EFBFBD>',0
|
|
|
|
|
aGGaogcpi db '<27>{<7B><><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD>',0
|
|
|
|
|
aGqbGatbrmcj db '<27>Q<EFBFBD>[<5B><><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD>',0
|
|
|
|
|
aIlcSObcj db '<27><><EFBFBD><EFBFBD><EFBFBD>ގ<EFBFBD><DE8E><EFBFBD>',0
|
|
|
|
|
aGagcgegai db '<27>A<EFBFBD>C<EFBFBD>e<EFBFBD><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
|
|
|
|
aUU_gagcgeganNv db '<27><><EFBFBD>_<EFBFBD>A<EFBFBD>C<EFBFBD>e<EFBFBD><65><EFBFBD>ō<EFBFBD><C58D>_<EFBFBD><5F>',0
|
|
|
|
|
aLcnzvv db '<27>C<EFBFBD><43><EFBFBD><EFBFBD>',0
|
|
|
|
|
aPicacovCj db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
|
|
|
|
aVavVVSrso db '<27><><EFBFBD>Ȃ<EFBFBD><C882>̘r<CC98>O',0
|
|
|
|
|
aTimes db '<27><>',0
|
|
|
|
|
aTimes_0 db '<27><>',0
|
|
|
|
|
aPoint db '<27>_',0
|
|
|
|
|
a_ude_txt db '_ude.txt',0
|
|
|
|
|
aBhbhbhbhbhbhu_ db '<27>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD>H<EFBFBD>_',0
|
|
|
|
|
aPicacovVVcvsfT db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><C982>锻<EFBFBD><E994BB><EFBFBD>s<EFBFBD><73>',0
|
|
|
|
|
aUde_pi db 'ude.pi',0
|
|
|
|
|
db 0
|
2014-09-13 10:24:35 +00:00
|
|
|
|
gALPHABET db 0AAh, 0ABh, 0ACh, 0ADh, 0AEh, 0AFh, 0B0h, 0B1h, 0B2h
|
|
|
|
|
db 0B3h, 0B4h, 0B5h, 0B6h, 0B7h, 0B8h, 0B9h, 0BAh, 0BBh
|
|
|
|
|
db 0BCh, 0BDh, 0BEh, 0BFh, 0C0h, 0C1h, 0C2h, 0C3h, 0C4h
|
|
|
|
|
db 0C5h, 3, 6, 7, 8, 0Ch, 0Fh, 0A0h, 0A1h, 0A2h, 0A3h
|
|
|
|
|
db 0A4h, 0A5h, 0A6h, 0A7h, 0A8h, 0A9h, 0E6h, 0E7h, 0E8h
|
|
|
|
|
db 0CEh, 0CFh, 0CDh, 0D5h
|
2014-08-10 01:44:54 +00:00
|
|
|
|
aGensou_scr db 'GENSOU.SCR',0
|
|
|
|
|
aGensou_scr_0 db 'GENSOU.SCR',0
|
|
|
|
|
aGensou_scr_1 db 'GENSOU.SCR',0
|
|
|
|
|
aGensou_scr_2 db 'GENSOU.SCR',0
|
|
|
|
|
aHi01_pi db 'hi01.pi',0
|
|
|
|
|
aScnum2_bft db 'scnum2.bft',0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
aGxgnbGvbGhvVGv db '<27>X<EFBFBD><58><EFBFBD>[<5B><><EFBFBD>[<5B>h<EFBFBD>ł̃v<CC83><76><EFBFBD>C<EFBFBD>ł́A<CD81>X<EFBFBD>R<EFBFBD>A<EFBFBD>͋L<CD8B>^<5E><><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>',0
|
|
|
|
|
aGxgnbGvbGhvV_1 db '<27>X<EFBFBD><58><EFBFBD>[<5B><><EFBFBD>[<5B>h<EFBFBD>ł̃v<CC83><76><EFBFBD>C<EFBFBD>ł́A<CD81>X<EFBFBD>R<EFBFBD>A<EFBFBD>͋L<CD8B>^<5E><><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>',0
|
2014-08-10 01:44:54 +00:00
|
|
|
|
aName db 'name',0
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db 0
|
2014-08-17 21:55:59 +00:00
|
|
|
|
|
2015-02-18 11:07:37 +00:00
|
|
|
|
.data?
|
|
|
|
|
|
2017-01-03 20:42:14 +00:00
|
|
|
|
; TODO: Missing clip[bss].asm (16 bytes) somewhere in there...
|
2018-12-25 21:59:19 +00:00
|
|
|
|
public _humaconfig
|
|
|
|
|
_humaconfig dd ?
|
2015-02-18 11:07:37 +00:00
|
|
|
|
dd ?
|
|
|
|
|
dd ?
|
|
|
|
|
dd ?
|
|
|
|
|
dd ?
|
2014-08-30 05:49:51 +00:00
|
|
|
|
include libs/master.lib/fil[bss].asm
|
2018-04-15 14:05:57 +00:00
|
|
|
|
include libs/master.lib/js[bss].asm
|
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
|
[Reverse-engineering] 32-bit VRAM plane pointers
I've looked at every openly available piece of PC-98 documentation, and there
don't seem to be any official names for the individual planes. The closest
thing I could find was the description at
http://island.geocities.jp/cklouch/column/pc98bas/pc98disphw2.htm
explaining that they represent the blue, red, green, and brightness component
when using the default PC-98 palette. However, these planes correspond to
nothing else but the 4 individual bits of the final index into the color
palette, and you can assign any color to every single palette slot. Therefore,
it's merely a convention that your own palettes don't have to follow (and in
Touhou, they don't).
Nevertheless, there doesn't seem to be an alternative, and the Neko Project II
source code uses the same B/R/G/E convention, so I'll go with that as well.
2015-02-10 22:43:34 +00:00
|
|
|
|
include th01/hardware/vram_planes[bss].asm
|
2014-11-16 03:00:41 +00:00
|
|
|
|
include libs/master.lib/pfint21[bss].asm
|
2014-11-18 16:56:13 +00:00
|
|
|
|
include th02/formats/pi_slots[bss].asm
|
2017-01-07 21:30:46 +00:00
|
|
|
|
include th03/formats/hfliplut[bss].asm
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th04/snd/interrupt[bss].asm
|
2014-08-25 20:32:21 +00:00
|
|
|
|
include libs/master.lib/bgm[bss].asm
|
2015-03-15 21:54:15 +00:00
|
|
|
|
include th02/snd/load[bss].asm
|
2014-08-10 01:44:54 +00:00
|
|
|
|
word_10070 dw ?
|
2018-09-11 17:34:19 +00:00
|
|
|
|
include th04/hardware/input[bss].asm
|
2017-01-19 20:14:22 +00:00
|
|
|
|
include th04/formats/cdg[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 ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
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-06-29 16:45:48 +00:00
|
|
|
|
db ? ;
|
2014-07-05 21:03:42 +00:00
|
|
|
|
db ?
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db ? ;
|
|
|
|
|
db ? ;
|
2014-08-10 01:44:54 +00:00
|
|
|
|
word_12478 dw ?
|
|
|
|
|
dword_1247A dd ?
|
|
|
|
|
byte_1247E db ?
|
2014-07-05 21:03:42 +00:00
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db ? ;
|
2014-08-10 01:44:54 +00:00
|
|
|
|
word_124BC dw ?
|
|
|
|
|
word_124BE dw ?
|
|
|
|
|
word_124C0 dw ?
|
|
|
|
|
byte_124C2 db ?
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db ? ;
|
2014-08-10 01:44:54 +00:00
|
|
|
|
word_124C4 dw ?
|
|
|
|
|
byte_124C6 db ?
|
|
|
|
|
byte_124C7 db ?
|
2014-11-13 23:55:00 +00:00
|
|
|
|
fp_124C8 dw ?
|
2014-07-05 21:03:42 +00:00
|
|
|
|
dw ?
|
2014-08-10 01:44:54 +00:00
|
|
|
|
byte_124CC db ?
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db ? ;
|
2014-08-10 01:44:54 +00:00
|
|
|
|
dword_124CE dd ?
|
2019-03-01 15:16:54 +00:00
|
|
|
|
_verdict_rank db ?
|
2014-08-10 01:44:54 +00:00
|
|
|
|
unk_124D3 db ? ;
|
2014-07-05 21:03:42 +00:00
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db ? ;
|
|
|
|
|
db ? ;
|
|
|
|
|
db ? ;
|
2014-08-10 01:44:54 +00:00
|
|
|
|
byte_124EF db ?
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db ? ;
|
|
|
|
|
db ? ;
|
2014-08-10 01:44:54 +00:00
|
|
|
|
byte_124F2 db ?
|
|
|
|
|
byte_124F3 db ?
|
|
|
|
|
word_124F4 dw ?
|
2014-07-05 21:03:42 +00:00
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db ? ;
|
|
|
|
|
db ? ;
|
2014-08-10 01:44:54 +00:00
|
|
|
|
word_12530 dw ?
|
|
|
|
|
word_12532 dw ?
|
|
|
|
|
dword_12534 dd ?
|
|
|
|
|
word_12538 dw ?
|
|
|
|
|
word_1253A 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 ? ;
|
2014-08-10 01:44:54 +00:00
|
|
|
|
byte_125A0 db ?
|
2014-07-05 21:03:42 +00:00
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
|
|
|
|
dd ? ;
|
2014-06-29 16:45:48 +00:00
|
|
|
|
db ? ;
|
2014-08-10 01:44:54 +00:00
|
|
|
|
byte_125B6 db ?
|
2019-03-01 15:16:54 +00:00
|
|
|
|
_hiscore_rank db ?
|
2014-08-10 01:44:54 +00:00
|
|
|
|
word_125B8 dw ?
|
2014-06-29 16:45:48 +00:00
|
|
|
|
|
2015-02-19 06:46:36 +00:00
|
|
|
|
end
|