mirror of https://github.com/nmlgc/ReC98.git
5797 lines
99 KiB
NASM
5797 lines
99 KiB
NASM
;
|
||
; +-------------------------------------------------------------------------+
|
||
; | This file has been generated by The Interactive Disassembler (IDA) |
|
||
; | Copyright (c) 2009 by Hex-Rays, <support@hex-rays.com> |
|
||
; +-------------------------------------------------------------------------+
|
||
;
|
||
; Input MD5 : AD4E53E1F1A042FBDA82F86B9BD6728C
|
||
|
||
; File Name : th01/OP.EXE
|
||
; Format : MS-DOS executable (EXE)
|
||
; Base Address: 0h Range: 0h-14040h Loaded length: 13418h
|
||
; Entry Point : 0:0
|
||
; OS type : MS DOS
|
||
; Application type: Executable 16bit
|
||
|
||
.286 ; Force the .model directive to create 16-bit default segments...
|
||
.model large
|
||
.386 ; ... then switch to what we actually need.
|
||
; And yes, we can't move this to an include file for some reason.
|
||
|
||
include ReC98.inc
|
||
include th01/th01.inc
|
||
|
||
option emulator
|
||
|
||
extern @$bdla$qnv:proc
|
||
extern @$bnwa$qui:proc
|
||
extern FTOL@:proc
|
||
extern SCOPY@:proc
|
||
extern __fgetc:proc
|
||
extern __mbcjmstojis:proc
|
||
extern __mbctype:byte
|
||
extern __mscjmstojis:proc
|
||
extern __setargv__:proc ; main() needs both to be set
|
||
extern __setenvp__:proc
|
||
extern _atol:proc
|
||
extern _close:proc
|
||
extern _delay:proc
|
||
extern _execl:proc
|
||
extern _exit:proc
|
||
extern _farfree:proc
|
||
extern _farmalloc:proc
|
||
extern _fclose:proc
|
||
extern _filelength:proc
|
||
extern _fopen:proc
|
||
extern _fputc:proc
|
||
extern _fputs:proc
|
||
extern _fread:proc
|
||
extern _getvect:proc
|
||
extern _int86:proc
|
||
extern _intdosx:proc
|
||
extern _memcmp:proc
|
||
extern _memcpy:proc
|
||
extern _memset:proc
|
||
extern _open:proc
|
||
extern _printf:proc
|
||
extern _segread:proc
|
||
extern _setvect:proc
|
||
extern _strcmp:proc
|
||
extern _toupper:proc
|
||
extern _vsprintf:proc
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
_TEXT segment word public 'CODE' use16
|
||
assume cs:_TEXT
|
||
assume es:nothing, ds:DGROUP, fs:nothing, gs:nothing
|
||
|
||
include libs/piloadc/piloadc.asm
|
||
include libs/master.lib/graph_400line.asm
|
||
include libs/master.lib/graph_clear.asm
|
||
include libs/master.lib/graph_show.asm
|
||
include libs/master.lib/graph_start.asm
|
||
include libs/master.lib/palette_show.asm
|
||
include libs/master.lib/palette_init.asm
|
||
include libs/master.lib/respal_exist.asm
|
||
include libs/master.lib/respal_free.asm
|
||
include libs/master.lib/resdata.asm
|
||
include libs/master.lib/file_read.asm
|
||
include libs/master.lib/file_close.asm
|
||
include libs/master.lib/file_ropen.asm
|
||
include libs/master.lib/file_seek.asm
|
||
include libs/master.lib/dos_free.asm
|
||
include libs/master.lib/keystart.asm
|
||
include libs/master.lib/keybios.asm
|
||
include libs/master.lib/dos_ropen.asm
|
||
include libs/master.lib/egc.asm
|
||
include libs/master.lib/random.asm
|
||
_TEXT ends
|
||
|
||
; ---------------------------------------------------------------------------
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
op_01_TEXT segment byte public 'CODE' use16
|
||
assume cs:op_01_TEXT
|
||
;org 4
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
enter 2, 0
|
||
push si
|
||
push di
|
||
xor si, si
|
||
jmp short loc_A1E5
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A1CE:
|
||
push 190h
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov [bx+118Eh], dx
|
||
mov [bx+118Ch], ax
|
||
inc si
|
||
|
||
loc_A1E5:
|
||
cmp si, 50h ; 'P'
|
||
jl short loc_A1CE
|
||
push 4
|
||
call _grcg_setcolor_tdw
|
||
push 1
|
||
call _graph_accesspage_func
|
||
add sp, 4
|
||
xor si, si
|
||
jmp short loc_A22A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A1FF:
|
||
xor di, di
|
||
mov [bp-2], si
|
||
jmp short loc_A223
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A206:
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, [bp-2]
|
||
mov al, es:[bx]
|
||
mov bx, si
|
||
shl bx, 2
|
||
les bx, [bx+118Ch]
|
||
add bx, di
|
||
mov es:[bx], al
|
||
inc di
|
||
add word ptr [bp-2], 50h ; 'P'
|
||
|
||
loc_A223:
|
||
cmp di, 190h
|
||
jl short loc_A206
|
||
inc si
|
||
|
||
loc_A22A:
|
||
cmp si, 50h ; 'P'
|
||
jl short loc_A1FF
|
||
call _grcg_off_func
|
||
push 0
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A240 proc far
|
||
|
||
_ptr = byte ptr -12h
|
||
var_B = byte ptr -0Bh
|
||
var_A = byte ptr -0Ah
|
||
var_9 = byte ptr -9
|
||
var_8 = byte ptr -8
|
||
stream = dword ptr -6
|
||
var_1 = byte ptr -1
|
||
|
||
enter 12h, 0
|
||
mov [bp+var_1], 0
|
||
push ds
|
||
push offset aRB ; "rb"
|
||
push ds
|
||
push offset path ; "reiiden.cfg"
|
||
call _fopen
|
||
add sp, 8
|
||
mov word ptr [bp+stream+2], dx
|
||
mov word ptr [bp+stream], ax
|
||
or ax, dx
|
||
jnz short loc_A266
|
||
|
||
loc_A262:
|
||
mov [bp+var_1], 1
|
||
|
||
loc_A266:
|
||
cmp [bp+var_1], 0
|
||
jnz short loc_A2CE
|
||
pushd [bp+stream] ; stream
|
||
push 0B0001h ; size
|
||
push ss
|
||
lea ax, [bp+_ptr]
|
||
push ax ; ptr
|
||
call _fread
|
||
add sp, 0Ch
|
||
push 7 ; n
|
||
push ds
|
||
push offset s ; "REIIDEN"
|
||
push ss
|
||
lea ax, [bp+_ptr]
|
||
push ax ; s1
|
||
call _memcmp
|
||
add sp, 0Ah
|
||
or ax, ax
|
||
jz short loc_A2A8
|
||
pushd [bp+stream] ; stream
|
||
call _fclose
|
||
add sp, 4
|
||
jmp short loc_A262
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A2A8:
|
||
mov al, [bp+var_B]
|
||
mov byte ptr word_12320, al
|
||
mov al, [bp+var_A]
|
||
mov byte ptr word_12320+1, al
|
||
mov al, [bp+var_9]
|
||
mov byte ptr word_12322, al
|
||
mov al, [bp+var_8]
|
||
mov byte ptr word_12322+1, al
|
||
pushd [bp+stream] ; stream
|
||
call _fclose
|
||
add sp, 4
|
||
leave
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A2CE:
|
||
mov byte ptr word_12320, 1
|
||
mov byte ptr word_12320+1, 1
|
||
mov byte ptr word_12322, 1
|
||
mov byte ptr word_12322+1, 2
|
||
leave
|
||
retf
|
||
sub_A240 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A2E4 proc far
|
||
|
||
stream = dword ptr -6
|
||
var_1 = byte ptr -1
|
||
|
||
enter 6, 0
|
||
mov [bp+var_1], 0
|
||
push ds
|
||
push offset aWb ; "wb"
|
||
push ds
|
||
push offset path ; "reiiden.cfg"
|
||
call _fopen
|
||
add sp, 8
|
||
mov word ptr [bp+stream+2], dx
|
||
mov word ptr [bp+stream], ax
|
||
or ax, dx
|
||
jnz short loc_A30A
|
||
mov [bp+var_1], 1
|
||
|
||
loc_A30A:
|
||
cmp [bp+var_1], 0
|
||
jnz short locret_A361
|
||
pushd [bp+stream] ; stream
|
||
push ds
|
||
push offset s ; "REIIDEN"
|
||
call _fputs
|
||
pushd [bp+stream] ; stream
|
||
mov al, byte ptr word_12320
|
||
cbw
|
||
push ax ; c
|
||
call _fputc
|
||
pushd [bp+stream] ; stream
|
||
mov al, byte ptr word_12320+1
|
||
cbw
|
||
push ax ; c
|
||
call _fputc
|
||
pushd [bp+stream] ; stream
|
||
mov al, byte ptr word_12322
|
||
cbw
|
||
push ax ; c
|
||
call _fputc
|
||
pushd [bp+stream] ; stream
|
||
mov al, byte ptr word_12322+1
|
||
cbw
|
||
push ax ; c
|
||
call _fputc
|
||
pushd [bp+stream] ; stream
|
||
call _fclose
|
||
add sp, 24h
|
||
|
||
locret_A361:
|
||
leave
|
||
retf
|
||
sub_A2E4 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A363 proc far
|
||
|
||
var_30 = byte ptr -30h
|
||
var_2F = byte ptr -2Fh
|
||
outregs = REGS ptr -20h
|
||
inregs = REGS ptr -10h
|
||
|
||
enter 30h, 0
|
||
mov byte ptr [bp+inregs+1], 4
|
||
mov byte ptr [bp+inregs], 7
|
||
push ss
|
||
lea ax, [bp+outregs]
|
||
push ax ; outregs
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
mov byte ptr [bp+inregs+1], 4
|
||
mov byte ptr [bp+inregs], 8
|
||
push ss
|
||
lea ax, [bp+var_30]
|
||
push ax ; outregs
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
add sp, 14h
|
||
test byte ptr [bp+outregs+1], 4
|
||
jnz short loc_A3A8
|
||
test [bp+var_2F], 8
|
||
jz short loc_A3C9
|
||
|
||
loc_A3A8:
|
||
cmp word_12334, 0
|
||
jnz short loc_A3CF
|
||
mov al, byte_12325
|
||
dec al
|
||
mov byte_12325, al
|
||
cbw
|
||
or ax, ax
|
||
jge short loc_A3C1
|
||
mov byte_12325, 3
|
||
|
||
loc_A3C1:
|
||
mov word_12334, 1
|
||
jmp short loc_A3CF
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A3C9:
|
||
mov word_12334, 0
|
||
|
||
loc_A3CF:
|
||
mov byte ptr [bp+inregs+1], 4
|
||
mov byte ptr [bp+inregs], 9
|
||
push ss
|
||
lea ax, [bp+var_30]
|
||
push ax ; outregs
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
add sp, 0Ah
|
||
test byte ptr [bp+outregs+1], 20h
|
||
jnz short loc_A3F7
|
||
test [bp+var_2F], 8
|
||
jz short loc_A419
|
||
|
||
loc_A3F7:
|
||
cmp word_12336, 0
|
||
jnz short loc_A41F
|
||
mov al, byte_12325
|
||
inc al
|
||
mov byte_12325, al
|
||
cbw
|
||
cmp ax, 3
|
||
jle short loc_A411
|
||
mov byte_12325, 0
|
||
|
||
loc_A411:
|
||
mov word_12336, 1
|
||
jmp short loc_A41F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A419:
|
||
mov word_12336, 0
|
||
|
||
loc_A41F:
|
||
mov byte ptr [bp+inregs+1], 4
|
||
mov byte ptr [bp+inregs], 3
|
||
push ss
|
||
lea ax, [bp+outregs]
|
||
push ax ; outregs
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
add sp, 0Ah
|
||
test byte ptr [bp+outregs+1], 10h
|
||
jz short loc_A448
|
||
mov byte_12327, 1
|
||
jmp short loc_A44D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A448:
|
||
mov byte_12327, 0
|
||
|
||
loc_A44D:
|
||
mov byte ptr [bp+inregs+1], 4
|
||
mov byte ptr [bp+inregs], 5
|
||
push ss
|
||
lea ax, [bp+outregs]
|
||
push ax ; outregs
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
add sp, 0Ah
|
||
test byte ptr [bp+outregs+1], 2
|
||
jz short loc_A476
|
||
mov byte_12328, 1
|
||
jmp short loc_A47B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A476:
|
||
mov byte_12328, 0
|
||
|
||
loc_A47B:
|
||
mov byte ptr [bp+inregs+1], 4
|
||
mov byte ptr [bp+inregs], 0
|
||
push ss
|
||
lea ax, [bp+outregs]
|
||
push ax ; outregs
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
add sp, 0Ah
|
||
test byte ptr [bp+outregs+1], 1
|
||
jz short loc_A4A4
|
||
mov byte_12329, 1
|
||
leave
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A4A4:
|
||
mov byte_12329, 0
|
||
leave
|
||
retf
|
||
sub_A363 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A4AB proc far
|
||
|
||
var_30 = byte ptr -30h
|
||
var_2F = byte ptr -2Fh
|
||
outregs = REGS ptr -20h
|
||
inregs = REGS ptr -10h
|
||
|
||
enter 30h, 0
|
||
mov byte ptr [bp+inregs+1], 4
|
||
mov byte ptr [bp+inregs], 7
|
||
push ss
|
||
lea ax, [bp+outregs]
|
||
push ax ; outregs
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
mov byte ptr [bp+inregs+1], 4
|
||
mov byte ptr [bp+inregs], 8
|
||
push ss
|
||
lea ax, [bp+var_30]
|
||
push ax ; outregs
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
add sp, 14h
|
||
test byte ptr [bp+outregs+1], 4
|
||
jnz short loc_A4F0
|
||
test [bp+var_2F], 8
|
||
jz short loc_A512
|
||
|
||
loc_A4F0:
|
||
cmp word_12339, 0
|
||
jnz short loc_A518
|
||
mov al, byte_12325
|
||
dec al
|
||
mov byte_12325, al
|
||
cbw
|
||
or ax, ax
|
||
jge short loc_A50A
|
||
mov al, byte_12338
|
||
mov byte_12325, al
|
||
|
||
loc_A50A:
|
||
mov word_12339, 1
|
||
jmp short loc_A518
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A512:
|
||
mov word_12339, 0
|
||
|
||
loc_A518:
|
||
test byte ptr [bp+outregs+1], 8
|
||
jnz short loc_A524
|
||
test [bp+var_2F], 40h
|
||
jz short loc_A52B
|
||
|
||
loc_A524:
|
||
mov byte_12326, 1
|
||
jmp short loc_A530
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A52B:
|
||
mov byte_12326, 0
|
||
|
||
loc_A530:
|
||
mov byte ptr [bp+inregs+1], 4
|
||
mov byte ptr [bp+inregs], 9
|
||
push ss
|
||
lea ax, [bp+var_30]
|
||
push ax ; outregs
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
add sp, 0Ah
|
||
test byte ptr [bp+outregs+1], 20h
|
||
jnz short loc_A558
|
||
test [bp+var_2F], 8
|
||
jz short loc_A57F
|
||
|
||
loc_A558:
|
||
cmp word_1233B, 0
|
||
jnz short loc_A585
|
||
mov al, byte_12325
|
||
inc al
|
||
mov byte_12325, al
|
||
cbw
|
||
mov dl, byte_12338
|
||
mov dh, 0
|
||
cmp ax, dx
|
||
jle short loc_A577
|
||
mov byte_12325, 0
|
||
|
||
loc_A577:
|
||
mov word_1233B, 1
|
||
jmp short loc_A585
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A57F:
|
||
mov word_1233B, 0
|
||
|
||
loc_A585:
|
||
test byte ptr [bp+outregs+1], 10h
|
||
jnz short loc_A591
|
||
test [bp+var_2F], 1
|
||
jz short loc_A598
|
||
|
||
loc_A591:
|
||
mov byte_1232B, 1
|
||
jmp short loc_A59D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A598:
|
||
mov byte_1232B, 0
|
||
|
||
loc_A59D:
|
||
mov byte ptr [bp+inregs+1], 4
|
||
mov byte ptr [bp+inregs], 3
|
||
push ss
|
||
lea ax, [bp+outregs]
|
||
push ax ; outregs
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
add sp, 0Ah
|
||
test byte ptr [bp+outregs+1], 10h
|
||
jz short loc_A5C6
|
||
mov byte_12327, 1
|
||
jmp short loc_A5CB
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A5C6:
|
||
mov byte_12327, 0
|
||
|
||
loc_A5CB:
|
||
mov byte ptr [bp+inregs+1], 4
|
||
mov byte ptr [bp+inregs], 5
|
||
push ss
|
||
lea ax, [bp+outregs]
|
||
push ax ; outregs
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
add sp, 0Ah
|
||
test byte ptr [bp+outregs+1], 2
|
||
jz short loc_A5F4
|
||
mov byte_12328, 1
|
||
jmp short loc_A5F9
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A5F4:
|
||
mov byte_12328, 0
|
||
|
||
loc_A5F9:
|
||
mov byte ptr [bp+inregs+1], 4
|
||
mov byte ptr [bp+inregs], 0
|
||
push ss
|
||
lea ax, [bp+outregs]
|
||
push ax ; outregs
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
add sp, 0Ah
|
||
test byte ptr [bp+outregs+1], 1
|
||
jz short loc_A622
|
||
mov byte_12329, 1
|
||
leave
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A622:
|
||
mov byte_12329, 0
|
||
leave
|
||
retf
|
||
sub_A4AB endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A629 proc far
|
||
|
||
arg_0 = word ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
mov ax, [bp+arg_0]
|
||
shl ax, 6
|
||
mov dx, [bp+arg_0]
|
||
shl dx, 4
|
||
add ax, dx
|
||
mov si, ax
|
||
push 0Fh
|
||
call _grcg_setcolor_rmw
|
||
pop cx
|
||
xor di, di
|
||
jmp short loc_A65C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A64A:
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, si
|
||
mov dword ptr es:[bx], 0FFFFFFFFh
|
||
inc di
|
||
add si, 4
|
||
|
||
loc_A65C:
|
||
cmp di, 14h
|
||
jl short loc_A64A
|
||
call _grcg_off_func
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_A629 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A66A proc far
|
||
|
||
var_192 = byte ptr -192h
|
||
var_2 = word ptr -2
|
||
|
||
enter 192h, 0
|
||
push si
|
||
push di
|
||
mov [bp+var_2], 0
|
||
xor si, si
|
||
xor di, di
|
||
lea ax, [bp+var_192]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset unk_1233D
|
||
mov cx, 190h
|
||
call SCOPY@
|
||
jmp short loc_A6F5
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A68D:
|
||
push 10280h
|
||
push si
|
||
push 0
|
||
call _egc_copy_rect_1_to_0
|
||
add sp, 8
|
||
push 10280h
|
||
push di
|
||
push 0
|
||
call _egc_copy_rect_1_to_0
|
||
add sp, 8
|
||
|
||
loc_A6AF:
|
||
call IRand
|
||
mov bx, 190h
|
||
cwd
|
||
idiv bx
|
||
mov si, dx
|
||
cmp [bp+si+var_192], 0
|
||
jnz short loc_A6AF
|
||
mov [bp+si+var_192], 1
|
||
|
||
loc_A6C8:
|
||
call IRand
|
||
mov bx, 190h
|
||
cwd
|
||
idiv bx
|
||
mov di, dx
|
||
cmp [bp+di+var_192], 0
|
||
jnz short loc_A6C8
|
||
mov [bp+di+var_192], 1
|
||
push si
|
||
call sub_A629
|
||
pop cx
|
||
push di
|
||
call sub_A629
|
||
pop cx
|
||
push 1
|
||
call _frame_delay
|
||
pop cx
|
||
|
||
loc_A6F5:
|
||
mov ax, [bp+var_2]
|
||
inc [bp+var_2]
|
||
cmp ax, 64h ; 'd'
|
||
jb short loc_A68D
|
||
push 1
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
call sub_BB85
|
||
push 0
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_A66A endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A719 proc far
|
||
push bp
|
||
mov bp, sp
|
||
push ds
|
||
push offset aReimu_mdt ; "reimu.mdt"
|
||
call _mdrv2_bgm_load
|
||
add sp, 4
|
||
call _mdrv2_bgm_play
|
||
push 1
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
push ds
|
||
push offset aReiiden2_grp ; "REIIDEN2.grp"
|
||
call sub_DAEC
|
||
add sp, 4
|
||
call _z_palette_black
|
||
call sub_BB85
|
||
push ds
|
||
push offset aReiiden3_grp ; "REIIDEN3.grp"
|
||
call sub_DB6F
|
||
add sp, 4
|
||
push 0
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
call sub_BC8B
|
||
push 64h ; 'd'
|
||
call _frame_delay
|
||
pop cx
|
||
call sub_A66A
|
||
pop bp
|
||
retf
|
||
sub_A719 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A772 proc far
|
||
push bp
|
||
mov bp, sp
|
||
push 1
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
call sub_BB85
|
||
push 0
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
push ds
|
||
push offset aOp_win_grp ; "op_win.grp"
|
||
call sub_DBAF
|
||
add sp, 4
|
||
call sub_BB85
|
||
pop bp
|
||
retf
|
||
sub_A772 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A79D proc far
|
||
push bp
|
||
mov bp, sp
|
||
mov al, byte_1232F
|
||
cbw
|
||
cmp ax, 1
|
||
jnz short loc_A7AE
|
||
call _resident_free
|
||
|
||
loc_A7AE:
|
||
call key_end
|
||
pop bp
|
||
retf
|
||
sub_A79D endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A7B5 proc far
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
call sub_A2E4
|
||
pushd [dword_13418]
|
||
push word_12322+1
|
||
push word_12322
|
||
push word_12320+1
|
||
push word_12320
|
||
call _resident_stuff_set
|
||
add sp, 0Ch
|
||
call sub_A79D
|
||
call _mdrv2_bgm_fade_out_nonblock
|
||
call game_switch_binary
|
||
mov al, _mode
|
||
cbw
|
||
cmp ax, 2
|
||
jnz short loc_A7FC
|
||
les bx, _resident
|
||
mov es:[bx+reiidenconfig_t.mode], 1
|
||
jmp short loc_A820
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A7FC:
|
||
mov al, _mode
|
||
cbw
|
||
cmp ax, 3
|
||
jnz short loc_A810
|
||
les bx, _resident
|
||
mov es:[bx+reiidenconfig_t.mode], 3
|
||
jmp short loc_A820
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A810:
|
||
cmp _mode, 0
|
||
jnz short loc_A820
|
||
les bx, _resident
|
||
mov es:[bx+reiidenconfig_t.mode], 0
|
||
|
||
loc_A820:
|
||
les bx, _resident
|
||
mov es:[bx+reiidenconfig_t.route], 0
|
||
mov es:[bx+reiidenconfig_t.stage], 0
|
||
mov al, byte ptr word_12322+1
|
||
add al, 2
|
||
mov es:[bx+reiidenconfig_t.rem_lives], al
|
||
mov es:[bx+reiidenconfig_t.p_value], 0
|
||
xor si, si
|
||
jmp short loc_A867
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A842:
|
||
mov ax, si
|
||
add ax, ax
|
||
les bx, _resident
|
||
add bx, ax
|
||
mov es:[bx+reiidenconfig_t.continues_per_scene], 0
|
||
mov ax, si
|
||
shl ax, 2
|
||
mov bx, word ptr _resident
|
||
add bx, ax
|
||
mov es:[bx+reiidenconfig_t.bonus_per_stage], 0
|
||
inc si
|
||
|
||
loc_A867:
|
||
cmp si, 4
|
||
jl short loc_A842
|
||
les bx, _resident
|
||
mov es:[bx+reiidenconfig_t.score_highest], 0
|
||
mov es:[bx+reiidenconfig_t.continues_total], 0
|
||
mov es:[bx+reiidenconfig_t.end_flag], 0
|
||
mov es:[bx+reiidenconfig_t.unused_1], 0
|
||
mov es:[bx+reiidenconfig_t.snd_need_init], 1
|
||
mov es:[bx+reiidenconfig_t.bullet_speed], -4
|
||
pushd 0
|
||
push ds
|
||
push offset aReiiden_0 ; "reiiden"
|
||
push ds
|
||
push offset aReiiden_0 ; "reiiden"
|
||
call _execl
|
||
add sp, 0Ch
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_A7B5 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A8AD proc far
|
||
push bp
|
||
mov bp, sp
|
||
call sub_A2E4
|
||
pushd [dword_13418]
|
||
push word_12322+1
|
||
push word_12322
|
||
push word_12320+1
|
||
push word_12320
|
||
call _resident_stuff_set
|
||
add sp, 0Ch
|
||
les bx, _resident
|
||
cmp es:[bx+reiidenconfig_t.stage], 0
|
||
jnz short loc_A8E1
|
||
mov ax, seg op_01_TEXT
|
||
mov es, ax
|
||
assume es:op_01_TEXT
|
||
|
||
loc_A8E1:
|
||
call sub_A79D
|
||
call _mdrv2_bgm_fade_out_nonblock
|
||
call game_switch_binary
|
||
les bx, _resident
|
||
assume es:nothing
|
||
mov es:[bx+reiidenconfig_t.mode], 0
|
||
mov es:[bx+reiidenconfig_t.snd_need_init], 1
|
||
mov al, byte ptr word_12322+1
|
||
add al, 2
|
||
mov es:[bx+reiidenconfig_t.rem_lives], al
|
||
mov es:[bx+reiidenconfig_t.unused_1], 0
|
||
mov es:[bx+reiidenconfig_t.bullet_speed], -4
|
||
mov es:[bx+reiidenconfig_t.p_value], 0
|
||
pushd 0
|
||
push ds
|
||
push offset s ; "REIIDEN"
|
||
push ds
|
||
push offset s ; "REIIDEN"
|
||
call _execl
|
||
add sp, 0Ch
|
||
pop bp
|
||
retf
|
||
sub_A8AD endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A92C proc far
|
||
|
||
arg_0 = word ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
mov ax, [bp+arg_0]
|
||
mov bx, 70
|
||
cwd
|
||
idiv bx
|
||
cmp dx, 50
|
||
jge short loc_A954
|
||
call _graph_putsa_fx c, 244, (2Fh shl 16) or 306, offset aVgvhvsb@vjvdvx, ds ; " <20>g<EFBFBD>h<EFBFBD>s<EFBFBD>@<40>j<EFBFBD>d<EFBFBD>x"
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_A954:
|
||
push 100080h
|
||
push 13200F4h
|
||
call _egc_copy_rect_1_to_0
|
||
add sp, 8
|
||
pop bp
|
||
retf
|
||
sub_A92C endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A96A proc far
|
||
|
||
var_14 = byte ptr -14h
|
||
@@y = word ptr -4
|
||
@@x = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
|
||
enter 14h, 0
|
||
push si
|
||
mov si, [bp+arg_0]
|
||
lea ax, [bp+var_14]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset off_124CD
|
||
mov cx, 10h
|
||
call SCOPY@
|
||
mov [bp+@@x], 244
|
||
mov ax, si
|
||
imul ax, 14h
|
||
add ax, 276
|
||
mov [bp+@@y], ax
|
||
mov bx, si
|
||
shl bx, 2
|
||
lea ax, [bp+var_14]
|
||
add bx, ax
|
||
pushd dword ptr ss:[bx]
|
||
mov ax, [bp+arg_2]
|
||
or ax, 30h
|
||
push ax
|
||
push [bp+@@y]
|
||
push [bp+@@x]
|
||
call _graph_putsa_fx
|
||
add sp, 0Ah
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_A96A endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_A9B9 proc far
|
||
|
||
var_42 = byte ptr -42h
|
||
var_2E = byte ptr -2Eh
|
||
var_1E = byte ptr -1Eh
|
||
var_A = word ptr -0Ah
|
||
var_8 = byte ptr -8
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
|
||
enter 42h, 0
|
||
push si
|
||
push di
|
||
mov si, [bp+arg_0]
|
||
lea ax, [bp+var_1E]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset off_124DD
|
||
mov cx, 14h
|
||
call SCOPY@
|
||
lea ax, [bp+var_2E]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset off_124F1
|
||
mov cx, 10h
|
||
call SCOPY@
|
||
lea ax, [bp+var_8]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset off_12501
|
||
mov cx, 8
|
||
call SCOPY@
|
||
lea ax, [bp+var_42]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset off_12509
|
||
mov cx, 14h
|
||
call SCOPY@
|
||
mov di, 0E4h
|
||
mov ax, si
|
||
imul ax, 14h
|
||
add ax, 10Ah
|
||
mov [bp+var_A], ax
|
||
push 1000B0h
|
||
push ax
|
||
push di
|
||
call _egc_copy_rect_1_to_0
|
||
add sp, 8
|
||
or si, si
|
||
jnz short loc_AA34
|
||
mov al, byte ptr word_12320
|
||
cbw
|
||
shl ax, 2
|
||
lea dx, [bp+var_2E]
|
||
jmp short loc_AA54
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AA34:
|
||
cmp si, 1
|
||
jnz short loc_AA45
|
||
mov al, byte ptr word_12320+1
|
||
cbw
|
||
shl ax, 2
|
||
lea dx, [bp+var_8]
|
||
jmp short loc_AA54
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AA45:
|
||
cmp si, 2
|
||
jnz short loc_AA83
|
||
mov al, byte ptr word_12322+1
|
||
cbw
|
||
shl ax, 2
|
||
lea dx, [bp+var_42]
|
||
|
||
loc_AA54:
|
||
add ax, dx
|
||
mov bx, ax
|
||
pushd dword ptr ss:[bx]
|
||
mov bx, si
|
||
shl bx, 2
|
||
lea ax, [bp+var_1E]
|
||
add bx, ax
|
||
pushd dword ptr ss:[bx] ; arglist
|
||
push ds
|
||
push offset aSS ; "%s%s"
|
||
mov ax, [bp+arg_2]
|
||
or ax, 30h
|
||
push ax ; int
|
||
push [bp+var_A] ; int
|
||
push di ; int
|
||
call _graph_printf_fx
|
||
add sp, 12h
|
||
jmp short loc_AAB2
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AA83:
|
||
cmp si, 3
|
||
jz short loc_AA8D
|
||
cmp si, 4
|
||
jnz short loc_AAB2
|
||
|
||
loc_AA8D:
|
||
mov bx, si
|
||
shl bx, 2
|
||
lea ax, [bp+var_1E]
|
||
add bx, ax
|
||
pushd dword ptr ss:[bx] ; arglist
|
||
push ds
|
||
push (offset aSS+2) ; format
|
||
mov ax, [bp+arg_2]
|
||
or ax, 30h
|
||
push ax ; int
|
||
push [bp+var_A] ; int
|
||
push di ; int
|
||
call _graph_printf_fx
|
||
add sp, 0Eh
|
||
|
||
loc_AAB2:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_A9B9 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_AAB6 proc far
|
||
|
||
var_46 = byte ptr -46h
|
||
var_A = word ptr -0Ah
|
||
var_8 = byte ptr -8
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
|
||
enter 46h, 0
|
||
push si
|
||
push di
|
||
mov si, [bp+arg_0]
|
||
lea ax, [bp+var_8]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset off_1251E
|
||
mov cx, 8
|
||
call SCOPY@
|
||
lea ax, [bp+var_46]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset off_12526
|
||
mov cx, 3Ch ; '<'
|
||
call SCOPY@
|
||
mov di, 0E4h
|
||
mov ax, si
|
||
imul ax, 28h
|
||
add ax, 11Eh
|
||
mov [bp+var_A], ax
|
||
push 1000B0h
|
||
push ax
|
||
push di
|
||
call _egc_copy_rect_1_to_0
|
||
add sp, 8
|
||
or si, si
|
||
jnz short loc_AB69
|
||
push 1000C0h
|
||
mov ax, [bp+var_A]
|
||
add ax, 14h
|
||
push ax
|
||
push di
|
||
call _egc_copy_rect_1_to_0
|
||
add sp, 8
|
||
mov al, byte_1251D
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
shl bx, 2
|
||
lea ax, [bp+var_8]
|
||
add bx, ax
|
||
pushd dword ptr ss:[bx] ; arglist
|
||
push ds
|
||
push offset aS_2d ; "%s%.2d"
|
||
mov ax, [bp+arg_2]
|
||
or ax, 30h
|
||
push ax ; int
|
||
push [bp+var_A] ; int
|
||
push di ; int
|
||
call _graph_printf_fx
|
||
add sp, 10h
|
||
mov al, byte_1251D
|
||
cbw
|
||
shl ax, 2
|
||
lea dx, [bp+var_46]
|
||
add ax, dx
|
||
mov bx, ax
|
||
pushd dword ptr ss:[bx]
|
||
push ds
|
||
push (offset aSS+2)
|
||
mov ax, [bp+arg_2]
|
||
or ax, 30h
|
||
push ax
|
||
mov ax, [bp+var_A]
|
||
add ax, 14h
|
||
push ax
|
||
jmp short loc_AB8A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AB69:
|
||
cmp si, 1
|
||
jnz short loc_AB93
|
||
mov bx, si
|
||
shl bx, 2
|
||
lea ax, [bp+var_8]
|
||
add bx, ax
|
||
pushd dword ptr ss:[bx] ; arglist
|
||
push ds
|
||
push (offset aSS+2) ; format
|
||
mov ax, [bp+arg_2]
|
||
or ax, 30h
|
||
push ax ; int
|
||
push [bp+var_A] ; int
|
||
|
||
loc_AB8A:
|
||
push di ; int
|
||
call _graph_printf_fx
|
||
add sp, 0Eh
|
||
|
||
loc_AB93:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_AAB6 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_AB97 proc far
|
||
push bp
|
||
mov bp, sp
|
||
cmp word_12564, 0
|
||
jnz short loc_AC04
|
||
push 6400B0h
|
||
push 10A00DCh
|
||
call _egc_copy_rect_1_to_0
|
||
add sp, 8
|
||
push 50000h
|
||
call sub_A96A
|
||
add sp, 4
|
||
push 50001h
|
||
call sub_A96A
|
||
add sp, 4
|
||
push 50002h
|
||
call sub_A96A
|
||
add sp, 4
|
||
push 50003h
|
||
call sub_A96A
|
||
add sp, 4
|
||
push 0Fh
|
||
mov al, byte_12325
|
||
cbw
|
||
push ax
|
||
call sub_A96A
|
||
add sp, 4
|
||
mov word_12564, 1
|
||
mov al, byte_12325
|
||
cbw
|
||
mov word_12562, ax
|
||
|
||
loc_AC04:
|
||
mov al, byte_12325
|
||
cbw
|
||
cmp ax, word_12562
|
||
jz short loc_AC30
|
||
push 5
|
||
push word_12562
|
||
call sub_A96A
|
||
add sp, 4
|
||
push 0Fh
|
||
mov al, byte_12325
|
||
cbw
|
||
push ax
|
||
call sub_A96A
|
||
add sp, 4
|
||
mov al, byte_12325
|
||
cbw
|
||
mov word_12562, ax
|
||
|
||
loc_AC30:
|
||
cmp byte_12327, 0
|
||
jnz short loc_AC3E
|
||
cmp byte_12328, 0
|
||
jz short loc_AC6E
|
||
|
||
loc_AC3E:
|
||
mov al, byte_12325
|
||
cbw
|
||
mov bx, ax
|
||
cmp bx, 3
|
||
ja short loc_AC6E
|
||
add bx, bx
|
||
jmp cs:off_AC7C[bx]
|
||
|
||
loc_AC50:
|
||
call sub_A7B5
|
||
jmp short loc_AC6E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AC56:
|
||
call sub_A8AD
|
||
jmp short loc_AC6E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AC5C:
|
||
mov byte_1232A, 1
|
||
mov word_12564, 0
|
||
jmp short loc_AC6E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AC69:
|
||
mov byte_1232C, 1
|
||
|
||
loc_AC6E:
|
||
cmp byte_12329, 0
|
||
jz short loc_AC7A
|
||
mov byte_1232C, 1
|
||
|
||
loc_AC7A:
|
||
pop bp
|
||
retf
|
||
sub_AB97 endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
off_AC7C dw offset loc_AC50
|
||
dw offset loc_AC56
|
||
dw offset loc_AC5C
|
||
dw offset loc_AC69
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_AC84 proc far
|
||
push bp
|
||
mov bp, sp
|
||
cmp word_12566, 0
|
||
jnz short loc_ACF9
|
||
mov byte_12325, 0
|
||
mov word_12568, 0
|
||
mov word_12566, 1
|
||
mov byte_12338, 4
|
||
push 5000B0h
|
||
push 11400DCh
|
||
call _egc_copy_rect_1_to_0
|
||
add sp, 8
|
||
push 0F0000h
|
||
call sub_A9B9
|
||
add sp, 4
|
||
push 50001h
|
||
call sub_A9B9
|
||
add sp, 4
|
||
push 50002h
|
||
call sub_A9B9
|
||
add sp, 4
|
||
push 50003h
|
||
call sub_A9B9
|
||
add sp, 4
|
||
push 50004h
|
||
call sub_A9B9
|
||
add sp, 4
|
||
|
||
loc_ACF9:
|
||
mov al, byte_12325
|
||
cbw
|
||
cmp ax, word_12568
|
||
jz short loc_AD25
|
||
push 5
|
||
push word_12568
|
||
call sub_A9B9
|
||
add sp, 4
|
||
push 0Fh
|
||
mov al, byte_12325
|
||
cbw
|
||
push ax
|
||
call sub_A9B9
|
||
add sp, 4
|
||
mov al, byte_12325
|
||
cbw
|
||
mov word_12568, ax
|
||
|
||
loc_AD25:
|
||
mov al, byte_12326
|
||
cbw
|
||
cmp ax, 1
|
||
jnz short loc_AD96
|
||
cmp word_1256A, 0
|
||
jnz short loc_AD9C
|
||
mov al, byte_12325
|
||
cbw
|
||
or ax, ax
|
||
jz short loc_AD49
|
||
cmp ax, 1
|
||
jz short loc_AD5C
|
||
cmp ax, 2
|
||
jz short loc_AD6F
|
||
jmp short loc_AD80
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AD49:
|
||
dec byte ptr word_12320
|
||
mov al, byte ptr word_12320
|
||
cbw
|
||
or ax, ax
|
||
jge short loc_AD80
|
||
mov byte ptr word_12320, 3
|
||
jmp short loc_AD80
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AD5C:
|
||
dec byte ptr word_12320+1
|
||
mov al, byte ptr word_12320+1
|
||
cbw
|
||
or ax, ax
|
||
jge short loc_AD80
|
||
mov byte ptr word_12320+1, 1
|
||
jmp short loc_AD80
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AD6F:
|
||
dec byte ptr word_12322+1
|
||
mov al, byte ptr word_12322+1
|
||
cbw
|
||
or ax, ax
|
||
jge short loc_AD80
|
||
mov byte ptr word_12322+1, 4
|
||
|
||
loc_AD80:
|
||
push 0Fh
|
||
mov al, byte_12325
|
||
cbw
|
||
push ax
|
||
call sub_A9B9
|
||
add sp, 4
|
||
mov word_1256A, 1
|
||
jmp short loc_AD9C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AD96:
|
||
mov word_1256A, 0
|
||
|
||
loc_AD9C:
|
||
mov al, byte_1232B
|
||
cbw
|
||
cmp ax, 1
|
||
jnz short loc_AE10
|
||
cmp word_1256C, 0
|
||
jnz short loc_AE16
|
||
mov al, byte_12325
|
||
cbw
|
||
or ax, ax
|
||
jz short loc_ADC0
|
||
cmp ax, 1
|
||
jz short loc_ADD4
|
||
cmp ax, 2
|
||
jz short loc_ADE8
|
||
jmp short loc_ADFA
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ADC0:
|
||
inc byte ptr word_12320
|
||
mov al, byte ptr word_12320
|
||
cbw
|
||
cmp ax, 3
|
||
jle short loc_ADFA
|
||
mov byte ptr word_12320, 0
|
||
jmp short loc_ADFA
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ADD4:
|
||
inc byte ptr word_12320+1
|
||
mov al, byte ptr word_12320+1
|
||
cbw
|
||
cmp ax, 1
|
||
jle short loc_ADFA
|
||
mov byte ptr word_12320+1, 0
|
||
jmp short loc_ADFA
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_ADE8:
|
||
inc byte ptr word_12322+1
|
||
mov al, byte ptr word_12322+1
|
||
cbw
|
||
cmp ax, 4
|
||
jle short loc_ADFA
|
||
mov byte ptr word_12322+1, 0
|
||
|
||
loc_ADFA:
|
||
push 0Fh
|
||
mov al, byte_12325
|
||
cbw
|
||
push ax
|
||
call sub_A9B9
|
||
add sp, 4
|
||
mov word_1256C, 1
|
||
jmp short loc_AE16
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AE10:
|
||
mov word_1256C, 0
|
||
|
||
loc_AE16:
|
||
cmp byte_12327, 0
|
||
jnz short loc_AE24
|
||
cmp byte_12328, 0
|
||
jz short loc_AE2D
|
||
|
||
loc_AE24:
|
||
mov al, byte_12325
|
||
cbw
|
||
cmp ax, 4
|
||
jz short loc_AE34
|
||
|
||
loc_AE2D:
|
||
cmp byte_12329, 0
|
||
jz short loc_AE44
|
||
|
||
loc_AE34:
|
||
mov byte_1232A, 3
|
||
mov word_12566, 0
|
||
mov byte_12325, 2
|
||
|
||
loc_AE44:
|
||
cmp byte_12327, 0
|
||
jnz short loc_AE52
|
||
cmp byte_12328, 0
|
||
jz short loc_AE6B
|
||
|
||
loc_AE52:
|
||
mov al, byte_12325
|
||
cbw
|
||
cmp ax, 3
|
||
jnz short loc_AE6B
|
||
mov byte_1232A, 2
|
||
mov word_12566, 0
|
||
mov byte_12325, 0
|
||
|
||
loc_AE6B:
|
||
pop bp
|
||
retf
|
||
sub_AC84 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_AE6D proc far
|
||
|
||
var_3C = byte ptr -3Ch
|
||
|
||
enter 3Ch, 0
|
||
lea ax, [bp+var_3C]
|
||
push ss
|
||
push ax
|
||
push ds
|
||
push offset off_1256E
|
||
mov cx, 3Ch ; '<'
|
||
call SCOPY@
|
||
call _mdrv2_bgm_stop
|
||
mov al, byte_1251D
|
||
cbw
|
||
shl ax, 2
|
||
lea dx, [bp+var_3C]
|
||
add ax, dx
|
||
mov bx, ax
|
||
pushd dword ptr ss:[bx] ; path
|
||
call _mdrv2_bgm_load
|
||
add sp, 4
|
||
call _mdrv2_bgm_play
|
||
leave
|
||
retf
|
||
sub_AE6D endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_AEA8 proc far
|
||
push bp
|
||
mov bp, sp
|
||
cmp word_125AA, 0
|
||
jnz short loc_AF00
|
||
mov byte_12325, 0
|
||
mov word_125AC, 0
|
||
mov word_125AA, 1
|
||
mov byte_12327, 0
|
||
mov byte_12328, 0
|
||
mov byte_12338, 1
|
||
push 6400B0h
|
||
push 10A00DCh
|
||
call _egc_copy_rect_1_to_0
|
||
add sp, 8
|
||
push 0F0000h
|
||
call sub_AAB6
|
||
add sp, 4
|
||
push 50001h
|
||
call sub_AAB6
|
||
add sp, 4
|
||
|
||
loc_AF00:
|
||
mov al, byte_12325
|
||
cbw
|
||
cmp ax, word_125AC
|
||
jz short loc_AF2C
|
||
push 5
|
||
push word_125AC
|
||
call sub_AAB6
|
||
add sp, 4
|
||
push 0Fh
|
||
mov al, byte_12325
|
||
cbw
|
||
push ax
|
||
call sub_AAB6
|
||
add sp, 4
|
||
mov al, byte_12325
|
||
cbw
|
||
mov word_125AC, ax
|
||
|
||
loc_AF2C:
|
||
mov al, byte_12326
|
||
cbw
|
||
cmp ax, 1
|
||
jnz short loc_AF69
|
||
cmp word_125AE, 0
|
||
jnz short loc_AF6F
|
||
cmp byte_12325, 0
|
||
jnz short loc_AF53
|
||
dec byte_1251D
|
||
cmp byte_1251D, 0
|
||
jge short loc_AF53
|
||
mov byte_1251D, 0Eh
|
||
|
||
loc_AF53:
|
||
push 0Fh
|
||
mov al, byte_12325
|
||
cbw
|
||
push ax
|
||
call sub_AAB6
|
||
add sp, 4
|
||
mov word_125AE, 1
|
||
jmp short loc_AF6F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AF69:
|
||
mov word_125AE, 0
|
||
|
||
loc_AF6F:
|
||
mov al, byte_1232B
|
||
cbw
|
||
cmp ax, 1
|
||
jnz short loc_AFAC
|
||
cmp word_125B0, 0
|
||
jnz short loc_AFB2
|
||
cmp byte_12325, 0
|
||
jnz short loc_AF96
|
||
inc byte_1251D
|
||
cmp byte_1251D, 0Fh
|
||
jl short loc_AF96
|
||
mov byte_1251D, 0
|
||
|
||
loc_AF96:
|
||
push 0Fh
|
||
mov al, byte_12325
|
||
cbw
|
||
push ax
|
||
call sub_AAB6
|
||
add sp, 4
|
||
mov word_125B0, 1
|
||
jmp short loc_AFB2
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_AFAC:
|
||
mov word_125B0, 0
|
||
|
||
loc_AFB2:
|
||
cmp byte_12327, 0
|
||
jnz short loc_AFC0
|
||
cmp byte_12328, 0
|
||
jz short loc_AFC9
|
||
|
||
loc_AFC0:
|
||
mov al, byte_12325
|
||
cbw
|
||
cmp ax, 1
|
||
jz short loc_AFD0
|
||
|
||
loc_AFC9:
|
||
cmp byte_12329, 0
|
||
jz short loc_AFE0
|
||
|
||
loc_AFD0:
|
||
mov byte_1232A, 4
|
||
mov word_125AA, 0
|
||
mov byte_12325, 3
|
||
|
||
loc_AFE0:
|
||
cmp byte_12327, 0
|
||
jnz short loc_AFEE
|
||
cmp byte_12328, 0
|
||
jz short loc_AFF9
|
||
|
||
loc_AFEE:
|
||
cmp byte_12325, 0
|
||
jnz short loc_AFF9
|
||
call sub_AE6D
|
||
|
||
loc_AFF9:
|
||
pop bp
|
||
retf
|
||
sub_AEA8 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
; int __cdecl main(int argc, const char **argv, const char **envp)
|
||
public _main
|
||
_main proc far
|
||
|
||
outregs = REGS ptr -2Ch
|
||
inregs = REGS ptr -1Ch
|
||
var_C = word ptr -0Ch
|
||
var_9 = byte ptr -9
|
||
var_8 = dword ptr -8
|
||
var_4 = dword ptr -4
|
||
_argc = word ptr 4
|
||
_argv = dword ptr 6
|
||
_envp = dword ptr 0Ah
|
||
|
||
enter 2Ch, 0
|
||
push si
|
||
push di
|
||
xor si, si
|
||
xor di, di
|
||
call _mdrv2_resident
|
||
or ax, ax
|
||
jnz short loc_B015
|
||
push ds
|
||
push offset aGogbgGtg@gcglv ; "<22>o<EFBFBD>b<EFBFBD>`<60>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD>"
|
||
jmp loc_B25D
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B015:
|
||
mov byte_1232D, 0
|
||
mov dword_12330, 0
|
||
mov byte_1232E, 0
|
||
cmp word ptr [bp+_argv], 1
|
||
jle loc_B0D6
|
||
les bx, [bp+_argv+2]
|
||
les bx, es:[bx+4]
|
||
mov al, es:[bx]
|
||
cbw
|
||
cmp ax, 73h ; 's'
|
||
jnz short loc_B045
|
||
mov _mode, 1
|
||
|
||
loc_B045:
|
||
les bx, [bp+_argv+2]
|
||
les bx, es:[bx+4]
|
||
mov al, es:[bx]
|
||
cbw
|
||
cmp ax, 74h ; 't'
|
||
jnz short loc_B05A
|
||
mov _mode, 2
|
||
|
||
loc_B05A:
|
||
les bx, [bp+_argv+2]
|
||
les bx, es:[bx+4]
|
||
mov al, es:[bx]
|
||
cbw
|
||
cmp ax, 64h ; 'd'
|
||
jnz short loc_B06F
|
||
mov _mode, 3
|
||
|
||
loc_B06F:
|
||
push 3 ; n
|
||
push ds
|
||
push offset aCon ; "CON"
|
||
les bx, [bp+_argv+2]
|
||
pushd dword ptr es:[bx+4] ; s1
|
||
call _memcmp
|
||
add sp, 0Ah
|
||
or ax, ax
|
||
jnz short loc_B0D6
|
||
les bx, [bp+_argv+2]
|
||
mov eax, es:[bx+8]
|
||
mov [bp+var_4], eax
|
||
pushd [bp+var_4]
|
||
call _atol
|
||
add sp, 4
|
||
mov byte_1232D, al
|
||
les bx, [bp+_argv+2]
|
||
pushd dword ptr es:[bx+0Ch]
|
||
call _atol
|
||
add sp, 4
|
||
mov word ptr dword_12330+2, dx
|
||
mov word ptr dword_12330, ax
|
||
les bx, [bp+_argv+2]
|
||
mov eax, es:[bx+10h]
|
||
mov [bp+var_8], eax
|
||
pushd [bp+var_8]
|
||
call _atol
|
||
add sp, 4
|
||
mov byte_1232E, al
|
||
|
||
loc_B0D6:
|
||
call _mdrv2_check_board
|
||
call game_init
|
||
call sub_A240
|
||
mov al, byte ptr word_12320+1
|
||
cbw
|
||
mov si, ax
|
||
mov byte ptr [bp+inregs+1], 3
|
||
push ss
|
||
lea ax, [bp+outregs]
|
||
push ax ; outregs
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
add sp, 0Ah
|
||
call key_start
|
||
call sub_A719
|
||
xor ax, ax
|
||
mov es, ax
|
||
mov al, es:0500h
|
||
or al, 20h
|
||
mov [bp+var_9], al
|
||
xor ax, ax
|
||
mov dl, [bp+var_9]
|
||
mov es, ax
|
||
mov es:0500h, dl
|
||
jmp short loc_B135
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B126:
|
||
push 1
|
||
call _frame_delay
|
||
pop cx
|
||
push di
|
||
call sub_A92C
|
||
pop cx
|
||
inc di
|
||
|
||
loc_B135:
|
||
call key_sense_bios
|
||
or ax, ax
|
||
jz short loc_B126
|
||
call sub_A772
|
||
mov eax, dword_13418
|
||
mov random_seed, eax
|
||
jmp loc_B21A
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B14D:
|
||
cmp byte_1232A, 0
|
||
jnz short loc_B15F
|
||
call sub_A363
|
||
call sub_AB97
|
||
jmp loc_B1EE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B15F:
|
||
mov al, byte_1232A
|
||
cbw
|
||
cmp ax, 1
|
||
jnz short loc_B172
|
||
call sub_A4AB
|
||
call sub_AC84
|
||
jmp short loc_B1EE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B172:
|
||
mov al, byte_1232A
|
||
cbw
|
||
cmp ax, 2
|
||
jnz short loc_B185
|
||
call sub_A4AB
|
||
call sub_AEA8
|
||
jmp short loc_B1EE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B185:
|
||
mov al, byte_1232A
|
||
cbw
|
||
cmp ax, 3
|
||
jnz short loc_B1D8
|
||
mov al, byte ptr word_12320+1
|
||
cbw
|
||
cmp ax, si
|
||
jz short loc_B1C9
|
||
cmp byte ptr word_12320+1, 0
|
||
jnz short loc_B1A4
|
||
call _mdrv2_bgm_stop
|
||
jmp short loc_B1C3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B1A4:
|
||
mov al, byte ptr word_12320+1
|
||
cbw
|
||
cmp ax, 1
|
||
jnz short loc_B1C3
|
||
call _mdrv2_bgm_stop
|
||
push ds
|
||
push offset aReimu_mdt ; "reimu.mdt"
|
||
call _mdrv2_bgm_load
|
||
add sp, 4
|
||
call _mdrv2_bgm_play
|
||
|
||
loc_B1C3:
|
||
mov al, byte ptr word_12320+1
|
||
cbw
|
||
mov si, ax
|
||
|
||
loc_B1C9:
|
||
push 0Fh
|
||
call _frame_delay
|
||
pop cx
|
||
mov byte_1232A, 0
|
||
jmp short loc_B1EE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_B1D8:
|
||
mov al, byte_1232A
|
||
cbw
|
||
cmp ax, 4
|
||
jnz short loc_B1EE
|
||
push 0Fh
|
||
call _frame_delay
|
||
pop cx
|
||
mov byte_1232A, 1
|
||
|
||
loc_B1EE:
|
||
xor ax, ax
|
||
mov es, ax
|
||
mov ax, word ptr es:[0524h]
|
||
mov [bp+var_C], ax
|
||
xor ax, ax
|
||
mov dx, [bp+var_C]
|
||
mov es, ax
|
||
mov word ptr es:[0526h], dx
|
||
mov es, ax
|
||
mov byte ptr es:[0528h], 0
|
||
inc dword_13418
|
||
push 1
|
||
call _frame_delay
|
||
pop cx
|
||
|
||
loc_B21A:
|
||
cmp byte_1232C, 0
|
||
jz loc_B14D
|
||
call sub_A2E4
|
||
mov byte_1232F, 1
|
||
call _mdrv2_bgm_stop
|
||
call sub_A79D
|
||
push 1
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
call sub_BB12
|
||
push 0
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
call sub_BB12
|
||
call game_exit
|
||
call _mdrv2_bgm_stop
|
||
push ds
|
||
push offset format ; "<22><><EFBFBD><EFBFBD><C282>ꂳ<EFBFBD>܂ł<DC82><C582><EFBFBD><EFBFBD>I<EFBFBD>I\n"
|
||
|
||
loc_B25D:
|
||
call _printf
|
||
add sp, 4
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
_main endp
|
||
op_01_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
op_02_TEXT segment byte public 'CODE' use16
|
||
extern _frame_delay:proc
|
||
op_02_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
op_03_TEXT segment byte public 'CODE' use16
|
||
extern _vsync_init:proc
|
||
extern _vsync_exit:proc
|
||
extern _z_vsync_wait:proc
|
||
op_03_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
op_04_TEXT segment byte public 'CODE' use16
|
||
extern _z_text_init:proc
|
||
extern _z_text_25line:proc
|
||
extern _z_text_setcursor:proc
|
||
extern _z_text_clear:proc
|
||
extern _z_text_show:proc
|
||
extern _z_text_print:proc
|
||
op_04_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
op_05_TEXT segment byte public 'CODE' use16
|
||
assume cs:op_05_TEXT
|
||
;org 3
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
; void __interrupt _int06_nop()
|
||
_int06_nop proc far
|
||
push eax
|
||
push ebx
|
||
push ecx
|
||
push edx
|
||
push es
|
||
push ds
|
||
push esi
|
||
push edi
|
||
push bp
|
||
mov bp, seg _DATA
|
||
mov ds, bp
|
||
mov bp, sp
|
||
pop bp
|
||
pop edi
|
||
pop esi
|
||
pop ds
|
||
pop es
|
||
pop edx
|
||
pop ecx
|
||
pop ebx
|
||
pop eax
|
||
iret
|
||
_int06_nop endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
public GAME_INIT
|
||
game_init proc far
|
||
push bp
|
||
mov bp, sp
|
||
cmp _game_initialized, 0
|
||
jnz short @@ret
|
||
mov _game_initialized, 1
|
||
push 6 ; interruptno
|
||
call _getvect
|
||
pop cx
|
||
mov word ptr _int06_old+2, dx
|
||
mov word ptr _int06_old+0, ax
|
||
push seg _int06_game_exit
|
||
push offset _int06_game_exit ; isr
|
||
push 6 ; interruptno
|
||
call _setvect
|
||
add sp, 6
|
||
call _vsync_init
|
||
call _z_text_init
|
||
call egc_start
|
||
call graph_start
|
||
call respal_create
|
||
call _z_respal_set
|
||
call vram_planes_set
|
||
|
||
@@ret:
|
||
pop bp
|
||
retf
|
||
game_init endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
public GAME_EXIT
|
||
game_exit proc far
|
||
push bp
|
||
mov bp, sp
|
||
cmp _game_initialized, 1
|
||
jnz short @@ret
|
||
mov _game_initialized, 0
|
||
nopcall game_exit_inner
|
||
call respal_free
|
||
|
||
@@ret:
|
||
pop bp
|
||
retf
|
||
game_exit endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
public GAME_SWITCH_BINARY
|
||
game_switch_binary proc far
|
||
push bp
|
||
mov bp, sp
|
||
cmp _game_initialized, 1
|
||
jnz short @@ret
|
||
nopcall game_exit_inner
|
||
call _z_text_25line
|
||
push 0
|
||
call _z_text_setcursor
|
||
pop cx
|
||
call _z_text_clear
|
||
call _z_text_show
|
||
mov _game_initialized, 0
|
||
|
||
@@ret:
|
||
pop bp
|
||
retf
|
||
game_switch_binary endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
game_exit_inner proc far
|
||
push bp
|
||
mov bp, sp
|
||
mov _game_initialized, 0
|
||
push seg _int06_nop
|
||
push offset _int06_nop ; isr
|
||
push 6 ; interruptno
|
||
call _setvect
|
||
call _vsync_exit
|
||
call _z_text_clear
|
||
call sub_BD3A
|
||
call sub_B8D0
|
||
call egc_start
|
||
pushd [dword ptr _int06_old] ; isr
|
||
push 6 ; interruptno
|
||
call _setvect
|
||
add sp, 0Ch
|
||
pop bp
|
||
retf
|
||
game_exit_inner endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: noreturn bp-based frame
|
||
|
||
; void __interrupt _int06_game_exit()
|
||
_int06_game_exit proc near
|
||
push eax
|
||
push ebx
|
||
push ecx
|
||
push edx
|
||
push es
|
||
push ds
|
||
push esi
|
||
push edi
|
||
push bp
|
||
mov bp, seg _DATA
|
||
mov ds, bp
|
||
mov bp, sp
|
||
call game_exit
|
||
push 0 ; status
|
||
call _exit
|
||
; ---------------------------------------------------------------------------
|
||
pop cx
|
||
pop bp
|
||
pop edi
|
||
pop esi
|
||
pop ds
|
||
pop es
|
||
pop edx
|
||
pop ecx
|
||
pop ebx
|
||
pop eax
|
||
iret
|
||
_int06_game_exit endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: noreturn bp-based frame
|
||
|
||
game_exit_print_error proc near
|
||
|
||
@@buffer = byte ptr -104h
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
_format = dword ptr 6
|
||
arglist = byte ptr 0Ah
|
||
|
||
enter 104h, 0
|
||
lea ax, [bp+arglist]
|
||
mov [bp+var_2], ss
|
||
mov [bp+var_4], ax
|
||
push [bp+var_2]
|
||
push ax ; arglist
|
||
pushd [bp+_format] ; format
|
||
push ss
|
||
lea ax, [bp+@@buffer]
|
||
push ax ; buffer
|
||
call _vsprintf
|
||
call game_exit
|
||
push ss
|
||
lea ax, [bp+@@buffer]
|
||
push ax
|
||
call _z_text_print
|
||
push 1 ; status
|
||
call _exit
|
||
; ---------------------------------------------------------------------------
|
||
add sp, 12h
|
||
leave
|
||
retf
|
||
game_exit_print_error endp
|
||
|
||
op_05_TEXT ends
|
||
|
||
; ---------------------------------------------------------------------------
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
op_06_TEXT segment byte public 'CODE' use16
|
||
assume cs:op_06_TEXT
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
enter 10h, 0
|
||
nopcall sub_B91C
|
||
mov byte ptr [bp-0Fh], 42h ; 'B'
|
||
mov byte ptr [bp-0Bh], 0C0h
|
||
push ss
|
||
lea ax, [bp-10h]
|
||
push ax
|
||
push ss
|
||
push ax
|
||
push 18h
|
||
call _int86
|
||
mov dx, 6Ah ; 'j'
|
||
mov al, 1
|
||
out dx, al ; PC-98 GDC (6a):
|
||
;
|
||
push ds
|
||
push offset _z_Palettes
|
||
nopcall sub_BA15
|
||
push 0
|
||
nopcall _graph_accesspage_func
|
||
push 0
|
||
nopcall _graph_showpage_func
|
||
add sp, 12h
|
||
nopcall sub_BB3C
|
||
mov dx, 68h ; 'h'
|
||
mov al, 0Ah
|
||
out dx, al
|
||
GRCG_OFF_CLOBBERING dx
|
||
nopcall sub_B901
|
||
leave
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
enter 10h, 0
|
||
nopcall sub_B91C
|
||
mov byte ptr [bp-0Fh], 42h ; 'B'
|
||
mov byte ptr [bp-0Bh], 0C0h
|
||
push ss
|
||
lea ax, [bp-10h]
|
||
push ax
|
||
push ss
|
||
push ax
|
||
push 18h
|
||
call _int86
|
||
mov dx, 6Ah ; 'j'
|
||
mov al, 1
|
||
out dx, al ; PC-98 GDC (6a):
|
||
;
|
||
push 0
|
||
nopcall _graph_accesspage_func
|
||
push 0
|
||
nopcall _graph_showpage_func
|
||
add sp, 0Eh
|
||
mov dx, 68h ; 'h'
|
||
mov al, 0Ah
|
||
out dx, al
|
||
GRCG_OFF_CLOBBERING dx
|
||
nopcall sub_B901
|
||
leave
|
||
retf
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B8D0 proc far
|
||
push bp
|
||
mov bp, sp
|
||
nopcall _z_palette_black
|
||
nopcall sub_BB3C
|
||
push 0
|
||
nopcall _graph_accesspage_func
|
||
push 0
|
||
nopcall _graph_showpage_func
|
||
add sp, 4
|
||
nopcall sub_B901
|
||
mov dx, 68h ; 'h'
|
||
mov al, 0Ah
|
||
out dx, al
|
||
GRCG_OFF_CLOBBERING dx
|
||
pop bp
|
||
retf
|
||
sub_B8D0 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B901 proc far
|
||
|
||
inregs = REGS ptr -10h
|
||
|
||
enter 10h, 0
|
||
mov byte ptr [bp+inregs+1], 40h
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; outregs
|
||
push ss
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
add sp, 0Ah
|
||
leave
|
||
retf
|
||
sub_B901 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_B91C proc far
|
||
|
||
inregs = REGS ptr -10h
|
||
|
||
enter 10h, 0
|
||
mov byte ptr [bp+inregs+1], 41h ; 'A'
|
||
push ss
|
||
lea ax, [bp+inregs]
|
||
push ax ; outregs
|
||
push ss
|
||
push ax ; inregs
|
||
push 18h ; intno
|
||
call _int86
|
||
add sp, 0Ah
|
||
leave
|
||
retf
|
||
sub_B91C endp
|
||
|
||
include th01/hardware/graph_page.asm
|
||
include th01/hardware/color.asm
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BA15 proc far
|
||
|
||
arg_0 = dword ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
xor si, si
|
||
jmp short loc_BA56
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BA1D:
|
||
mov ax, si
|
||
imul ax, 3
|
||
les bx, [bp+arg_0]
|
||
add bx, ax
|
||
mov al, es:[bx+2]
|
||
cbw
|
||
push ax
|
||
mov ax, si
|
||
imul ax, 3
|
||
mov bx, word ptr [bp+arg_0]
|
||
add bx, ax
|
||
mov al, es:[bx+1]
|
||
cbw
|
||
push ax
|
||
mov ax, si
|
||
imul ax, 3
|
||
mov bx, word ptr [bp+arg_0]
|
||
add bx, ax
|
||
mov al, es:[bx]
|
||
cbw
|
||
push ax
|
||
push si
|
||
nopcall _z_palette_set_show
|
||
add sp, 8
|
||
inc si
|
||
|
||
loc_BA56:
|
||
cmp si, COLOR_COUNT
|
||
jl short loc_BA1D
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_BA15 endp
|
||
|
||
include th01/hardware/palette_set_show.asm
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BB12 proc far
|
||
|
||
_s = dword ptr -4
|
||
|
||
enter 4, 0
|
||
mov [bp+_s], 0A8000000h
|
||
push 0
|
||
call _grcg_setcolor_rmw
|
||
push 7D0000FFh ; c
|
||
pushd [bp+_s] ; s
|
||
call _memset
|
||
add sp, 0Ah
|
||
call _grcg_off_func
|
||
leave
|
||
retf
|
||
sub_BB12 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BB3C proc far
|
||
push bp
|
||
mov bp, sp
|
||
push 2
|
||
call _graph_accesspage_func
|
||
call sub_BB12
|
||
push 2
|
||
call _graph_accesspage_func
|
||
add sp, 4
|
||
call sub_BB12
|
||
pop bp
|
||
retf
|
||
sub_BB3C endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
enter 4, 0
|
||
mov dword ptr [bp-4], 0A8000000h
|
||
mov al, [bp+6]
|
||
cbw
|
||
push ax
|
||
call _grcg_setcolor_rmw
|
||
push 7D0000FFh
|
||
pushd dword ptr [bp-4]
|
||
call _memset
|
||
add sp, 0Ah
|
||
call _grcg_off_func
|
||
leave
|
||
retf
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BB85 proc far
|
||
|
||
var_152 = byte ptr -152h
|
||
var_102 = byte ptr -102h
|
||
var_B2 = byte ptr -0B2h
|
||
dest = byte ptr -62h
|
||
@@page_other = byte ptr -11h
|
||
var_10 = dword ptr -10h
|
||
var_C = dword ptr -0Ch
|
||
var_8 = dword ptr -8
|
||
src = dword ptr -4
|
||
|
||
enter 152h, 0
|
||
push si
|
||
mov [bp+src], 0A8000000h
|
||
mov [bp+var_8], 0B0000000h
|
||
mov [bp+var_C], 0B8000000h
|
||
mov [bp+var_10], 0E0000000h
|
||
mov al, _page_back
|
||
xor al, 1
|
||
mov [bp+@@page_other], al
|
||
xor si, si
|
||
jmp loc_BC62
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BBB7:
|
||
push 50h ; 'P' ; n
|
||
pushd [bp+src] ; src
|
||
push ss
|
||
lea ax, [bp+dest]
|
||
push ax ; dest
|
||
call _memcpy
|
||
push 50h ; 'P' ; n
|
||
pushd [bp+var_8] ; src
|
||
push ss
|
||
lea ax, [bp+var_B2]
|
||
push ax ; dest
|
||
call _memcpy
|
||
push 50h ; 'P' ; n
|
||
pushd [bp+var_C] ; src
|
||
push ss
|
||
lea ax, [bp+var_102]
|
||
push ax ; dest
|
||
call _memcpy
|
||
push 50h ; 'P' ; n
|
||
pushd [bp+var_10] ; src
|
||
push ss
|
||
lea ax, [bp+var_152]
|
||
push ax ; dest
|
||
call _memcpy
|
||
graph_accesspage [bp+@@page_other]
|
||
push 50h ; 'P' ; n
|
||
push ss
|
||
lea ax, [bp+dest]
|
||
push ax ; src
|
||
pushd [bp+src] ; dest
|
||
call _memcpy
|
||
add sp, 32h
|
||
push 50h ; 'P' ; n
|
||
push ss
|
||
lea ax, [bp+var_B2]
|
||
push ax ; src
|
||
pushd [bp+var_8] ; dest
|
||
call _memcpy
|
||
push 50h ; 'P' ; n
|
||
push ss
|
||
lea ax, [bp+var_102]
|
||
push ax ; src
|
||
pushd [bp+var_C] ; dest
|
||
call _memcpy
|
||
push 50h ; 'P' ; n
|
||
push ss
|
||
lea ax, [bp+var_152]
|
||
push ax ; src
|
||
pushd [bp+var_10] ; dest
|
||
call _memcpy
|
||
add sp, 1Eh
|
||
graph_accesspage _page_back
|
||
add word ptr [bp+src], 50h ; 'P'
|
||
add word ptr [bp+var_8], 50h ; 'P'
|
||
add word ptr [bp+var_C], 50h ; 'P'
|
||
add word ptr [bp+var_10], 50h ; 'P'
|
||
inc si
|
||
|
||
loc_BC62:
|
||
cmp si, 190h
|
||
jl loc_BBB7
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_BB85 endp
|
||
|
||
include th01/hardware/palette_black.asm
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BC8B proc far
|
||
|
||
_s = byte ptr -32h
|
||
var_31 = byte ptr -31h
|
||
var_30 = byte ptr -30h
|
||
var_2 = word ptr -2
|
||
|
||
enter 32h, 0
|
||
push si
|
||
push di
|
||
push 300000h ; c
|
||
push ss
|
||
lea ax, [bp+_s]
|
||
push ax ; s
|
||
call _memset
|
||
add sp, 8
|
||
mov [bp+var_2], 0
|
||
jmp loc_BD2E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BCAC:
|
||
call _z_vsync_wait
|
||
xor si, si
|
||
jmp short loc_BD1E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BCB5:
|
||
xor di, di
|
||
jmp short loc_BCE3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BCB9:
|
||
mov bx, si
|
||
imul bx, 3
|
||
add bx, di
|
||
lea ax, [bp+_s]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
mov bx, si
|
||
imul bx, 3
|
||
cmp al, _z_Palettes[bx+di]
|
||
jge short loc_BCE2
|
||
mov bx, si
|
||
imul bx, 3
|
||
add bx, di
|
||
lea ax, [bp+_s]
|
||
add bx, ax
|
||
inc byte ptr ss:[bx]
|
||
|
||
loc_BCE2:
|
||
inc di
|
||
|
||
loc_BCE3:
|
||
cmp di, 3
|
||
jl short loc_BCB9
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp+var_30]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp+var_31]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp+_s]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
push si
|
||
call _z_palette_show_single
|
||
add sp, 8
|
||
inc si
|
||
|
||
loc_BD1E:
|
||
cmp si, 10h
|
||
jl short loc_BCB5
|
||
push 0Ah
|
||
call _delay
|
||
pop cx
|
||
inc [bp+var_2]
|
||
|
||
loc_BD2E:
|
||
cmp [bp+var_2], 10h
|
||
jl loc_BCAC
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_BC8B endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_BD3A proc far
|
||
|
||
dest = byte ptr -32h
|
||
var_31 = byte ptr -31h
|
||
var_30 = byte ptr -30h
|
||
var_2 = word ptr -2
|
||
|
||
enter 32h, 0
|
||
push si
|
||
push di
|
||
push 30h ; '0' ; n
|
||
push ds
|
||
push offset _z_Palettes ; src
|
||
push ss
|
||
lea ax, [bp+dest]
|
||
push ax ; dest
|
||
call _memcpy
|
||
add sp, 0Ah
|
||
mov [bp+var_2], 0
|
||
jmp short loc_BDD1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BD5A:
|
||
call _z_vsync_wait
|
||
xor si, si
|
||
jmp short loc_BDC1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BD63:
|
||
xor di, di
|
||
jmp short loc_BD86
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BD67:
|
||
mov bx, si
|
||
imul bx, 3
|
||
add bx, di
|
||
lea ax, [bp+dest]
|
||
add bx, ax
|
||
cmp byte ptr ss:[bx], 0
|
||
jle short loc_BD85
|
||
mov bx, si
|
||
imul bx, 3
|
||
add bx, di
|
||
add bx, ax
|
||
dec byte ptr ss:[bx]
|
||
|
||
loc_BD85:
|
||
inc di
|
||
|
||
loc_BD86:
|
||
cmp di, 3
|
||
jl short loc_BD67
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp+var_30]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp+var_31]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp+dest]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
push si
|
||
call _z_palette_show_single
|
||
add sp, 8
|
||
inc si
|
||
|
||
loc_BDC1:
|
||
cmp si, 10h
|
||
jl short loc_BD63
|
||
push 0Ah
|
||
call _delay
|
||
pop cx
|
||
inc [bp+var_2]
|
||
|
||
loc_BDD1:
|
||
cmp [bp+var_2], 10h
|
||
jl short loc_BD5A
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_BD3A endp
|
||
|
||
include th01/hardware/palette_white.asm
|
||
|
||
; ---------------------------------------------------------------------------
|
||
enter 32h, 0
|
||
push si
|
||
push di
|
||
push 30000Fh
|
||
push ss
|
||
lea ax, [bp-32h]
|
||
push ax
|
||
call _memset
|
||
add sp, 8
|
||
mov word ptr [bp-2], 0
|
||
jmp loc_BE9F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BE1D:
|
||
call _z_vsync_wait
|
||
xor si, si
|
||
jmp short loc_BE8F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BE26:
|
||
xor di, di
|
||
jmp short loc_BE54
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BE2A:
|
||
mov bx, si
|
||
imul bx, 3
|
||
add bx, di
|
||
lea ax, [bp-32h]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
mov bx, si
|
||
imul bx, 3
|
||
cmp al, _z_Palettes[bx+di]
|
||
jle short loc_BE53
|
||
mov bx, si
|
||
imul bx, 3
|
||
add bx, di
|
||
lea ax, [bp-32h]
|
||
add bx, ax
|
||
dec byte ptr ss:[bx]
|
||
|
||
loc_BE53:
|
||
inc di
|
||
|
||
loc_BE54:
|
||
cmp di, 3
|
||
jl short loc_BE2A
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp-30h]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp-31h]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp-32h]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
push si
|
||
call _z_palette_show_single
|
||
add sp, 8
|
||
inc si
|
||
|
||
loc_BE8F:
|
||
cmp si, 10h
|
||
jl short loc_BE26
|
||
push 0Ah
|
||
call _delay
|
||
pop cx
|
||
inc word ptr [bp-2]
|
||
|
||
loc_BE9F:
|
||
cmp word ptr [bp-2], 10h
|
||
jl loc_BE1D
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
enter 32h, 0
|
||
push si
|
||
push di
|
||
push 30h ; '0'
|
||
push ds
|
||
push offset _z_Palettes
|
||
push ss
|
||
lea ax, [bp-32h]
|
||
push ax
|
||
call _memcpy
|
||
add sp, 0Ah
|
||
mov word ptr [bp-2], 0
|
||
jmp short loc_BF42
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BECB:
|
||
call _z_vsync_wait
|
||
xor si, si
|
||
jmp short loc_BF32
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BED4:
|
||
xor di, di
|
||
jmp short loc_BEF7
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BED8:
|
||
mov bx, si
|
||
imul bx, 3
|
||
add bx, di
|
||
lea ax, [bp-32h]
|
||
add bx, ax
|
||
cmp byte ptr ss:[bx], 0Fh
|
||
jge short loc_BEF6
|
||
mov bx, si
|
||
imul bx, 3
|
||
add bx, di
|
||
add bx, ax
|
||
inc byte ptr ss:[bx]
|
||
|
||
loc_BEF6:
|
||
inc di
|
||
|
||
loc_BEF7:
|
||
cmp di, 3
|
||
jl short loc_BED8
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp-30h]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp-31h]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
lea ax, [bp-32h]
|
||
add bx, ax
|
||
mov al, ss:[bx]
|
||
cbw
|
||
push ax
|
||
push si
|
||
call _z_palette_show_single
|
||
add sp, 8
|
||
inc si
|
||
|
||
loc_BF32:
|
||
cmp si, 10h
|
||
jl short loc_BED4
|
||
push 0Ah
|
||
call _delay
|
||
pop cx
|
||
inc word ptr [bp-2]
|
||
|
||
loc_BF42:
|
||
cmp word ptr [bp-2], 10h
|
||
jl short loc_BECB
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
xor si, si
|
||
jmp short loc_BF7E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_BF54:
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, _z_Palettes[bx].b
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, _z_Palettes[bx].g
|
||
cbw
|
||
push ax
|
||
mov bx, si
|
||
imul bx, 3
|
||
mov al, _z_Palettes[bx].r
|
||
cbw
|
||
push ax
|
||
push si
|
||
call _z_palette_show_single
|
||
add sp, 8
|
||
inc si
|
||
|
||
loc_BF7E:
|
||
cmp si, 10h
|
||
jl short loc_BF54
|
||
pop si
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
extern _graph_putsa_fx:proc
|
||
extern _z_respal_set:proc
|
||
op_06_TEXT ends
|
||
|
||
; ---------------------------------------------------------------------------
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
op_07_TEXT segment byte public 'CODE' use16
|
||
assume cs:op_07_TEXT
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
enter 10h, 0
|
||
push si
|
||
push di
|
||
mov ax, [bp+6]
|
||
sar ax, 3
|
||
mov dx, [bp+8]
|
||
shl dx, 6
|
||
add ax, dx
|
||
mov dx, [bp+8]
|
||
shl dx, 4
|
||
add ax, dx
|
||
mov si, ax
|
||
xor di, di
|
||
jmp loc_D2C8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D243:
|
||
push 0
|
||
call _graph_accesspage_func
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov [bp-10h], eax
|
||
les bx, _VRAM_PLANE_R
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov [bp-0Ch], eax
|
||
les bx, _VRAM_PLANE_G
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov [bp-8], eax
|
||
les bx, _VRAM_PLANE_E
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov [bp-4], eax
|
||
push 1
|
||
call _graph_accesspage_func
|
||
add sp, 4
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, si
|
||
mov eax, [bp-10h]
|
||
mov es:[bx], eax
|
||
les bx, _VRAM_PLANE_R
|
||
add bx, si
|
||
mov eax, [bp-0Ch]
|
||
mov es:[bx], eax
|
||
les bx, _VRAM_PLANE_G
|
||
add bx, si
|
||
mov eax, [bp-8]
|
||
mov es:[bx], eax
|
||
les bx, _VRAM_PLANE_E
|
||
add bx, si
|
||
mov eax, [bp-4]
|
||
mov es:[bx], eax
|
||
add si, 50h ; 'P'
|
||
inc di
|
||
|
||
loc_D2C8:
|
||
cmp di, 20h ; ' '
|
||
jl loc_D243
|
||
push 0
|
||
call _graph_accesspage_func
|
||
pop cx
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
|
||
include th01/hardware/vram_planes_set.asm
|
||
EGC_START_COPY_DEF 1, far
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
public _egc_copy_rect_1_to_0
|
||
_egc_copy_rect_1_to_0 proc far
|
||
|
||
var_A = word ptr -0Ah
|
||
var_8 = word ptr -8
|
||
var_6 = word ptr -6
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = word ptr 8
|
||
arg_4 = word ptr 0Ah
|
||
arg_6 = word ptr 0Ch
|
||
|
||
enter 0Ah, 0
|
||
push si
|
||
push di
|
||
mov si, [bp+arg_0]
|
||
mov di, si
|
||
add si, [bp+arg_4]
|
||
and di, 0FFF0h
|
||
mov ax, di
|
||
sar ax, 3
|
||
mov dx, [bp+arg_2]
|
||
shl dx, 6
|
||
add ax, dx
|
||
mov dx, [bp+arg_2]
|
||
shl dx, 4
|
||
add ax, dx
|
||
mov [bp+var_6], ax
|
||
call egc_start_copy_1
|
||
mov [bp+var_2], 0
|
||
jmp short loc_D3B6
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D36C:
|
||
mov [bp+var_4], di
|
||
mov ax, [bp+var_6]
|
||
mov [bp+var_A], ax
|
||
jmp short loc_D3AA
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D377:
|
||
push 1
|
||
call _graph_accesspage_func
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, [bp+var_A]
|
||
mov ax, es:[bx]
|
||
mov [bp+var_8], ax
|
||
push 0
|
||
call _graph_accesspage_func
|
||
add sp, 4
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, [bp+var_A]
|
||
mov ax, [bp+var_8]
|
||
mov es:[bx], ax
|
||
add [bp+var_A], 2
|
||
add [bp+var_4], 10h
|
||
|
||
loc_D3AA:
|
||
cmp [bp+var_4], si
|
||
jl short loc_D377
|
||
add [bp+var_6], 50h ; 'P'
|
||
inc [bp+var_2]
|
||
|
||
loc_D3B6:
|
||
mov ax, [bp+var_2]
|
||
cmp ax, [bp+arg_6]
|
||
jl short loc_D36C
|
||
call egc_off
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
_egc_copy_rect_1_to_0 endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
enter 4, 0
|
||
push si
|
||
push di
|
||
mov di, [bp+0Ah]
|
||
mov ax, [bp+8]
|
||
imul ax, 50h
|
||
push ax
|
||
mov ax, [bp+6]
|
||
mov bx, 8
|
||
cwd
|
||
idiv bx
|
||
pop dx
|
||
add dx, ax
|
||
mov si, dx
|
||
mov ax, di
|
||
mov bx, 40h
|
||
cwd
|
||
idiv bx
|
||
shl ax, 2
|
||
mov bx, ax
|
||
mov ax, [bx+1474h]
|
||
mov dx, [bx+1472h]
|
||
push ax
|
||
mov ax, di
|
||
mov bx, 40h
|
||
push dx
|
||
cwd
|
||
idiv bx
|
||
imul dx, 281h
|
||
pop ax
|
||
add ax, dx
|
||
pop dx
|
||
mov [bp-2], dx
|
||
mov [bp-4], ax
|
||
xor cx, cx
|
||
jmp short loc_D481
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D416:
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov dx, cx
|
||
shl dx, 2
|
||
les bx, [bp-4]
|
||
add bx, dx
|
||
mov es:[bx+1], eax
|
||
les bx, _VRAM_PLANE_R
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov dx, cx
|
||
shl dx, 2
|
||
les bx, [bp-4]
|
||
add bx, dx
|
||
mov es:[bx+81h], eax
|
||
les bx, _VRAM_PLANE_G
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov dx, cx
|
||
shl dx, 2
|
||
les bx, [bp-4]
|
||
add bx, dx
|
||
mov es:[bx+101h], eax
|
||
les bx, _VRAM_PLANE_E
|
||
add bx, si
|
||
mov eax, es:[bx]
|
||
mov dx, cx
|
||
shl dx, 2
|
||
les bx, [bp-4]
|
||
add bx, dx
|
||
mov es:[bx+181h], eax
|
||
add si, 50h ; 'P'
|
||
inc cx
|
||
|
||
loc_D481:
|
||
cmp cx, 20h ; ' '
|
||
jl short loc_D416
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
enter 0Eh, 0
|
||
push si
|
||
push di
|
||
mov ax, [bp+8]
|
||
imul ax, 50h
|
||
push ax
|
||
mov ax, [bp+6]
|
||
mov bx, 8
|
||
cwd
|
||
idiv bx
|
||
pop dx
|
||
add dx, ax
|
||
mov di, dx
|
||
mov ax, [bp+0Ah]
|
||
mov bx, 40h
|
||
cwd
|
||
idiv bx
|
||
shl ax, 2
|
||
mov bx, ax
|
||
mov ax, [bx+1474h]
|
||
mov dx, [bx+1472h]
|
||
push ax
|
||
mov ax, [bp+0Ah]
|
||
mov bx, 40h
|
||
push dx
|
||
cwd
|
||
idiv bx
|
||
imul dx, 281h
|
||
pop ax
|
||
add ax, dx
|
||
pop dx
|
||
mov [bp-0Ch], dx
|
||
mov [bp-0Eh], ax
|
||
test byte ptr [bp+0Ch], 2
|
||
jz short loc_D4DF
|
||
mov ax, 10h
|
||
jmp short loc_D4E1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D4DF:
|
||
xor ax, ax
|
||
|
||
loc_D4E1:
|
||
mov [bp-2], ax
|
||
test byte ptr [bp+0Ch], 1
|
||
jz short loc_D4F2
|
||
mov eax, 0FFFFh
|
||
jmp short loc_D4F8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D4F2:
|
||
mov eax, 0FFFF0000h
|
||
|
||
loc_D4F8:
|
||
mov [bp-6], eax
|
||
test byte ptr [bp+0Ch], 1
|
||
jz short loc_D507
|
||
mov ax, 10h
|
||
jmp short loc_D509
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D507:
|
||
xor ax, ax
|
||
|
||
loc_D509:
|
||
cwde
|
||
mov [bp-0Ah], eax
|
||
mov si, [bp-2]
|
||
jmp loc_D5E8
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D515:
|
||
mov ax, si
|
||
shl ax, 2
|
||
les bx, [bp-0Eh]
|
||
add bx, ax
|
||
mov eax, [bp-6]
|
||
and es:[bx+1], eax
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, di
|
||
mov eax, es:[bx]
|
||
mov cl, [bp-0Ah]
|
||
shl eax, cl
|
||
mov edx, [bp-6]
|
||
not edx
|
||
and eax, edx
|
||
mov dx, si
|
||
shl dx, 2
|
||
les bx, [bp-0Eh]
|
||
add bx, dx
|
||
or es:[bx+1], eax
|
||
mov eax, [bp-6]
|
||
and es:[bx+81h], eax
|
||
les bx, _VRAM_PLANE_R
|
||
add bx, di
|
||
mov eax, es:[bx]
|
||
shl eax, cl
|
||
mov edx, [bp-6]
|
||
not edx
|
||
and eax, edx
|
||
mov dx, si
|
||
shl dx, 2
|
||
les bx, [bp-0Eh]
|
||
add bx, dx
|
||
or es:[bx+81h], eax
|
||
mov eax, [bp-6]
|
||
and es:[bx+101h], eax
|
||
les bx, _VRAM_PLANE_G
|
||
add bx, di
|
||
mov eax, es:[bx]
|
||
shl eax, cl
|
||
mov edx, [bp-6]
|
||
not edx
|
||
and eax, edx
|
||
mov dx, si
|
||
shl dx, 2
|
||
les bx, [bp-0Eh]
|
||
add bx, dx
|
||
or es:[bx+101h], eax
|
||
mov eax, [bp-6]
|
||
and es:[bx+181h], eax
|
||
les bx, _VRAM_PLANE_E
|
||
add bx, di
|
||
mov eax, es:[bx]
|
||
shl eax, cl
|
||
mov edx, [bp-6]
|
||
not edx
|
||
and eax, edx
|
||
mov dx, si
|
||
shl dx, 2
|
||
les bx, [bp-0Eh]
|
||
add bx, dx
|
||
or es:[bx+181h], eax
|
||
add di, 50h ; 'P'
|
||
inc si
|
||
|
||
loc_D5E8:
|
||
mov ax, [bp-2]
|
||
add ax, 10h
|
||
cmp ax, si
|
||
jg loc_D515
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
op_07_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
op_08_TEXT segment byte public 'CODE' use16
|
||
extern _graph_printf_fx:proc
|
||
op_08_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
op_09_TEXT segment byte public 'CODE' use16
|
||
assume cs:op_09_TEXT
|
||
;org 1
|
||
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D631 proc far
|
||
|
||
var_38 = byte ptr -38h
|
||
var_33 = byte ptr -33h
|
||
var_8 = dword ptr -8
|
||
var_4 = word ptr -4
|
||
var_2 = word ptr -2
|
||
arg_0 = word ptr 6
|
||
arg_2 = dword ptr 8
|
||
|
||
enter 38h, 0
|
||
push si
|
||
push di
|
||
mov di, [bp+arg_0]
|
||
pushd [bp+arg_2]
|
||
call @arc_file_load$qnxc
|
||
push ss
|
||
lea ax, [bp+var_38]
|
||
push ax
|
||
push 6
|
||
call @arc_file_get$qncui
|
||
mov al, [bp+var_33]
|
||
cbw
|
||
mov [bp+var_4], ax
|
||
mov bx, di
|
||
shl bx, 2
|
||
mov ax, [bx+1472h]
|
||
or ax, [bx+1474h]
|
||
jz short loc_D677
|
||
mov bx, di
|
||
shl bx, 2
|
||
pushd dword ptr [bx+1472h] ; font
|
||
call @$bdla$qnv
|
||
add sp, 4
|
||
|
||
loc_D677:
|
||
mov ax, [bp+var_4]
|
||
imul ax, 281h
|
||
push ax
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov bx, di
|
||
shl bx, 2
|
||
mov [bx+1474h], dx
|
||
mov [bx+1472h], ax
|
||
mov bx, di
|
||
shl bx, 2
|
||
mov ax, [bx+1472h]
|
||
or ax, [bx+1474h]
|
||
jnz short loc_D6A7
|
||
mov ax, 0FFFDh
|
||
jmp loc_D74E
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D6A7:
|
||
push ss
|
||
lea ax, [bp+var_38]
|
||
push ax
|
||
push 30h ; '0'
|
||
call @arc_file_get$qncui
|
||
cmp word_129B8, 0
|
||
jz short loc_D6C7
|
||
push ss
|
||
lea ax, [bp+var_38]
|
||
push ax
|
||
call sub_BA15
|
||
add sp, 4
|
||
|
||
loc_D6C7:
|
||
mov al, byte ptr [bp+var_4]
|
||
mov [di+72Fh], al
|
||
mov bx, di
|
||
shl bx, 2
|
||
mov ax, [bx+1474h]
|
||
mov dx, [bx+1472h]
|
||
mov word ptr [bp+var_8+2], ax
|
||
mov word ptr [bp+var_8], dx
|
||
mov [bp+var_2], 0
|
||
jmp short loc_D73F
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D6E8:
|
||
pushd [bp+var_8]
|
||
push 1
|
||
call @arc_file_get$qncui
|
||
mov ax, word ptr [bp+var_8]
|
||
inc ax
|
||
push word ptr [bp+var_8+2]
|
||
push ax
|
||
push 200h
|
||
call @arc_file_get$qncui
|
||
xor si, si
|
||
jmp short loc_D732
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D707:
|
||
mov ax, si
|
||
shl ax, 2
|
||
les bx, [bp+var_8]
|
||
add bx, ax
|
||
mov eax, es:[bx+1]
|
||
and eax, es:[bx+81h]
|
||
and eax, es:[bx+101h]
|
||
and eax, es:[bx+181h]
|
||
not eax
|
||
mov es:[bx+201h], eax
|
||
inc si
|
||
|
||
loc_D732:
|
||
cmp si, 20h ; ' '
|
||
jl short loc_D707
|
||
inc [bp+var_2]
|
||
add word ptr [bp+var_8], 281h
|
||
|
||
loc_D73F:
|
||
mov ax, [bp+var_2]
|
||
cmp ax, [bp+var_4]
|
||
jl short loc_D6E8
|
||
call @arc_file_free$qv
|
||
xor ax, ax
|
||
|
||
loc_D74E:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_D631 endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
mov si, [bp+6]
|
||
cmp word ptr [bp+8], 0
|
||
jle short loc_D765
|
||
cmp word ptr [bp+8], 40h
|
||
jle short loc_D76A
|
||
|
||
loc_D765:
|
||
mov ax, 0FFF7h
|
||
jmp short loc_D7C3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D76A:
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov ax, [bx+1472h]
|
||
or ax, [bx+1474h]
|
||
jz short loc_D78B
|
||
mov bx, si
|
||
shl bx, 2
|
||
pushd dword ptr [bx+1472h]
|
||
call @$bdla$qnv
|
||
add sp, 4
|
||
|
||
loc_D78B:
|
||
mov al, [bp+8]
|
||
mov [si+72Fh], al
|
||
mov ax, [bp+8]
|
||
imul ax, 281h
|
||
push ax
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov [bx+1474h], dx
|
||
mov [bx+1472h], ax
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov ax, [bx+1472h]
|
||
or ax, [bx+1474h]
|
||
jnz short loc_D7C1
|
||
mov ax, 0FFFDh
|
||
jmp short loc_D7C3
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D7C1:
|
||
xor ax, ax
|
||
|
||
loc_D7C3:
|
||
pop si
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
enter 2, 0
|
||
mov word_129B8, 0
|
||
pushd dword ptr [bp+8]
|
||
push word ptr [bp+6]
|
||
call sub_D631
|
||
add sp, 6
|
||
mov [bp-2], ax
|
||
mov word_129B8, 1
|
||
leave
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
mov si, [bp+6]
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov ax, [bx+1472h]
|
||
or ax, [bx+1474h]
|
||
jz short loc_D827
|
||
mov bx, si
|
||
shl bx, 2
|
||
pushd dword ptr [bx+1472h]
|
||
call @$bdla$qnv
|
||
add sp, 4
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov word ptr [bx+1474h], 0
|
||
mov word ptr [bx+1472h], 0
|
||
mov byte ptr [si+72Fh], 0
|
||
|
||
loc_D827:
|
||
pop si
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
enter 4, 0
|
||
push si
|
||
push di
|
||
mov di, [bp+8]
|
||
mov ax, [bp+6]
|
||
sar ax, 3
|
||
mov dx, di
|
||
shl dx, 6
|
||
add ax, dx
|
||
mov dx, di
|
||
shl dx, 4
|
||
add ax, dx
|
||
mov si, ax
|
||
mov ax, [bp+0Ah]
|
||
mov bx, 40h
|
||
cwd
|
||
idiv bx
|
||
shl ax, 2
|
||
mov bx, ax
|
||
mov ax, [bx+1474h]
|
||
mov dx, [bx+1472h]
|
||
push ax
|
||
mov ax, [bp+0Ah]
|
||
mov bx, 40h
|
||
push dx
|
||
cwd
|
||
idiv bx
|
||
imul dx, 281h
|
||
pop ax
|
||
add ax, dx
|
||
pop dx
|
||
mov [bp-2], dx
|
||
mov [bp-4], ax
|
||
xor cx, cx
|
||
jmp short loc_D8E7
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D87C:
|
||
mov ax, cx
|
||
shl ax, 2
|
||
les bx, [bp-4]
|
||
add bx, ax
|
||
mov eax, es:[bx+1]
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, si
|
||
mov es:[bx], eax
|
||
mov ax, cx
|
||
shl ax, 2
|
||
les bx, [bp-4]
|
||
add bx, ax
|
||
mov eax, es:[bx+81h]
|
||
les bx, _VRAM_PLANE_R
|
||
add bx, si
|
||
mov es:[bx], eax
|
||
mov ax, cx
|
||
shl ax, 2
|
||
les bx, [bp-4]
|
||
add bx, ax
|
||
mov eax, es:[bx+101h]
|
||
les bx, _VRAM_PLANE_G
|
||
add bx, si
|
||
mov es:[bx], eax
|
||
mov ax, cx
|
||
shl ax, 2
|
||
les bx, [bp-4]
|
||
add bx, ax
|
||
mov eax, es:[bx+181h]
|
||
les bx, _VRAM_PLANE_E
|
||
add bx, si
|
||
mov es:[bx], eax
|
||
add si, 50h ; 'P'
|
||
inc cx
|
||
|
||
loc_D8E7:
|
||
cmp cx, 20h ; ' '
|
||
jl short loc_D87C
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
enter 8, 0
|
||
push si
|
||
push di
|
||
mov ax, [bp+8]
|
||
imul ax, 50h
|
||
push ax
|
||
mov ax, [bp+6]
|
||
mov bx, 8
|
||
cwd
|
||
idiv bx
|
||
pop dx
|
||
add dx, ax
|
||
mov di, dx
|
||
mov ax, [bp+0Ah]
|
||
mov bx, 40h
|
||
cwd
|
||
idiv bx
|
||
shl ax, 2
|
||
mov bx, ax
|
||
mov ax, [bx+1474h]
|
||
mov dx, [bx+1472h]
|
||
push ax
|
||
mov ax, [bp+0Ah]
|
||
mov bx, 40h
|
||
push dx
|
||
cwd
|
||
idiv bx
|
||
imul dx, 281h
|
||
pop ax
|
||
add ax, dx
|
||
pop dx
|
||
mov [bp-6], dx
|
||
mov [bp-8], ax
|
||
test byte ptr [bp+0Ch], 2
|
||
jz short loc_D945
|
||
mov ax, 10h
|
||
jmp short loc_D947
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D945:
|
||
xor ax, ax
|
||
|
||
loc_D947:
|
||
mov [bp-2], ax
|
||
test byte ptr [bp+0Ch], 1
|
||
jz short loc_D955
|
||
mov ax, 10h
|
||
jmp short loc_D957
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D955:
|
||
xor ax, ax
|
||
|
||
loc_D957:
|
||
mov [bp-4], ax
|
||
mov si, [bp-2]
|
||
jmp short loc_D9D5
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D95F:
|
||
mov ax, si
|
||
shl ax, 2
|
||
les bx, [bp-8]
|
||
add bx, ax
|
||
mov eax, es:[bx+1]
|
||
mov cl, [bp-4]
|
||
shr eax, cl
|
||
les bx, _VRAM_PLANE_B
|
||
add bx, di
|
||
mov es:[bx], ax
|
||
mov ax, si
|
||
shl ax, 2
|
||
les bx, [bp-8]
|
||
add bx, ax
|
||
mov eax, es:[bx+81h]
|
||
shr eax, cl
|
||
les bx, _VRAM_PLANE_R
|
||
add bx, di
|
||
mov es:[bx], ax
|
||
mov ax, si
|
||
shl ax, 2
|
||
les bx, [bp-8]
|
||
add bx, ax
|
||
mov eax, es:[bx+101h]
|
||
shr eax, cl
|
||
les bx, _VRAM_PLANE_G
|
||
add bx, di
|
||
mov es:[bx], ax
|
||
mov ax, si
|
||
shl ax, 2
|
||
les bx, [bp-8]
|
||
add bx, ax
|
||
mov eax, es:[bx+181h]
|
||
shr eax, cl
|
||
les bx, _VRAM_PLANE_E
|
||
add bx, di
|
||
mov es:[bx], ax
|
||
add di, 50h ; 'P'
|
||
inc si
|
||
|
||
loc_D9D5:
|
||
mov ax, [bp-2]
|
||
add ax, 10h
|
||
cmp ax, si
|
||
jg short loc_D95F
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_D9E3 proc far
|
||
|
||
arg_0 = dword ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
pushd [bp+arg_0]
|
||
call file_ropen
|
||
or ax, ax
|
||
jnz short loc_D9F8
|
||
mov ax, 1
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_D9F8:
|
||
pushd 12h
|
||
push 0
|
||
call file_seek
|
||
push ds
|
||
push offset unk_136D2
|
||
push 30h ; '0'
|
||
call file_read
|
||
push ds
|
||
push offset unk_136D2
|
||
call sub_BA15
|
||
add sp, 4
|
||
call file_close
|
||
xor ax, ax
|
||
pop bp
|
||
retf
|
||
sub_D9E3 endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_DA22 proc far
|
||
|
||
arg_0 = dword ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
pushd [bp+arg_0]
|
||
call file_ropen
|
||
or ax, ax
|
||
jnz short loc_DA37
|
||
mov ax, 1
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DA37:
|
||
pushd 12h
|
||
push 0
|
||
call file_seek
|
||
push ds
|
||
push offset unk_136D2
|
||
push 30h ; '0'
|
||
call file_read
|
||
call file_close
|
||
xor ax, ax
|
||
pop bp
|
||
retf
|
||
sub_DA22 endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
les bx, [bp+6]
|
||
dec word ptr es:[bx]
|
||
jl short loc_DA77
|
||
mov ax, es:[bx+0Eh]
|
||
mov si, es:[bx+0Ch]
|
||
inc word ptr es:[bx+0Ch]
|
||
mov es, ax
|
||
mov al, es:[si]
|
||
mov ah, 0
|
||
jmp short loc_DA83
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DA77:
|
||
pushd dword ptr [bp+6]
|
||
call __fgetc
|
||
add sp, 4
|
||
|
||
loc_DA83:
|
||
mov di, ax
|
||
les bx, [bp+6]
|
||
dec word ptr es:[bx]
|
||
jl short loc_DAA2
|
||
mov ax, es:[bx+0Eh]
|
||
mov si, es:[bx+0Ch]
|
||
inc word ptr es:[bx+0Ch]
|
||
mov es, ax
|
||
mov al, es:[si]
|
||
mov ah, 0
|
||
jmp short loc_DAAE
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DAA2:
|
||
pushd dword ptr [bp+6]
|
||
call __fgetc
|
||
add sp, 4
|
||
|
||
loc_DAAE:
|
||
shl ax, 8
|
||
add di, ax
|
||
mov ax, di
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
push bp
|
||
mov bp, sp
|
||
xor dx, dx
|
||
jmp short loc_DAE5
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DAC0:
|
||
xor cx, cx
|
||
jmp short loc_DADF
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DAC4:
|
||
mov ax, dx
|
||
imul ax, 3
|
||
les bx, [bp+6]
|
||
add bx, ax
|
||
add bx, cx
|
||
mov al, es:[bx]
|
||
mov bx, dx
|
||
imul bx, 3
|
||
add bx, cx
|
||
mov [bx+1442h], al
|
||
inc cx
|
||
|
||
loc_DADF:
|
||
cmp cx, 3
|
||
jl short loc_DAC4
|
||
inc dx
|
||
|
||
loc_DAE5:
|
||
cmp dx, 10h
|
||
jl short loc_DAC0
|
||
pop bp
|
||
retf
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_DAEC proc far
|
||
|
||
var_1 = byte ptr -1
|
||
arg_0 = dword ptr 6
|
||
|
||
enter 2, 0
|
||
push si
|
||
xor si, si
|
||
push 4000h
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov word ptr font+2, dx
|
||
mov word ptr font, ax
|
||
cmp word_129B8, 1
|
||
jnz short loc_DB0D
|
||
or si, 2
|
||
|
||
loc_DB0D:
|
||
cmp byte_129C7, 1
|
||
jnz short loc_DB17
|
||
mov si, 0F40h
|
||
|
||
loc_DB17:
|
||
cmp word_129BA, 1
|
||
jnz short loc_DB3F
|
||
push si
|
||
push 640000h
|
||
pushd 4000h
|
||
pushd [font]
|
||
pushd [bp+arg_0]
|
||
call _PiLoadL
|
||
add sp, 12h
|
||
mov [bp+var_1], al
|
||
|
||
loc_DB3F:
|
||
cmp word_129B8, 1
|
||
jnz short loc_DB50
|
||
pushd [bp+arg_0]
|
||
call sub_D9E3
|
||
jmp short loc_DB58
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DB50:
|
||
pushd [bp+arg_0]
|
||
call sub_DA22
|
||
|
||
loc_DB58:
|
||
add sp, 4
|
||
pushd [font] ; font
|
||
call @$bdla$qnv
|
||
add sp, 4
|
||
mov al, [bp+var_1]
|
||
cbw
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_DAEC endp
|
||
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_DB6F proc far
|
||
|
||
var_2 = word ptr -2
|
||
arg_0 = dword ptr 6
|
||
|
||
enter 2, 0
|
||
mov word_129B8, 0
|
||
pushd [bp+arg_0]
|
||
call sub_DAEC
|
||
add sp, 4
|
||
mov [bp+var_2], ax
|
||
mov word_129B8, 1
|
||
leave
|
||
retf
|
||
sub_DB6F endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
enter 2, 0
|
||
mov word_129BA, 0
|
||
pushd dword ptr [bp+6]
|
||
call sub_DAEC
|
||
add sp, 4
|
||
mov [bp-2], ax
|
||
mov word_129BA, 1
|
||
leave
|
||
retf
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_DBAF proc far
|
||
|
||
var_2 = word ptr -2
|
||
arg_0 = dword ptr 6
|
||
|
||
enter 2, 0
|
||
mov byte_129C7, 1
|
||
mov word_129B8, 0
|
||
pushd [bp+arg_0]
|
||
call sub_DAEC
|
||
add sp, 4
|
||
mov [bp+var_2], ax
|
||
mov word_129B8, 1
|
||
mov byte_129C7, 0
|
||
leave
|
||
retf
|
||
sub_DBAF endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
mov si, [bp+6]
|
||
mov al, [si+18D2h]
|
||
mov ah, 0
|
||
cmp ax, [bp+8]
|
||
jle short loc_DBFD
|
||
mov al, [bp+8]
|
||
mov byte_129C8, al
|
||
push si
|
||
nopcall sub_DC1B
|
||
pop cx
|
||
mov byte_129C8, 0
|
||
|
||
loc_DBFD:
|
||
pop si
|
||
pop bp
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
push bp
|
||
mov bp, sp
|
||
mov al, [bp+8]
|
||
inc al
|
||
mov byte_129C9, al
|
||
push word ptr [bp+6]
|
||
nopcall sub_DC1B
|
||
pop cx
|
||
mov byte_129C9, 0
|
||
pop bp
|
||
retf
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_DC1B proc far
|
||
|
||
var_2E = word ptr -2Eh
|
||
var_2C = word ptr -2Ch
|
||
var_29 = byte ptr -29h
|
||
var_28 = word ptr -28h
|
||
var_25 = byte ptr -25h
|
||
var_24 = word ptr -24h
|
||
var_21 = byte ptr -21h
|
||
var_20 = word ptr -20h
|
||
var_1D = byte ptr -1Dh
|
||
var_1C = word ptr -1Ch
|
||
var_1A = word ptr -1Ah
|
||
var_17 = byte ptr -17h
|
||
var_16 = word ptr -16h
|
||
var_13 = byte ptr -13h
|
||
var_12 = word ptr -12h
|
||
var_F = byte ptr -0Fh
|
||
var_E = word ptr -0Eh
|
||
var_B = byte ptr -0Bh
|
||
var_A = dword ptr -0Ah
|
||
var_6 = dword ptr -6
|
||
var_2 = byte ptr -2
|
||
var_1 = byte ptr -1
|
||
arg_0 = word ptr 6
|
||
|
||
enter 2Eh, 0
|
||
push si
|
||
push di
|
||
mov di, [bp+arg_0]
|
||
mov bx, di
|
||
shl bx, 2
|
||
mov ax, [bx+1494h]
|
||
mov dx, [bx+1492h]
|
||
mov word ptr [bp+var_6+2], ax
|
||
mov word ptr [bp+var_6], dx
|
||
mov bx, di
|
||
shl bx, 6
|
||
mov al, byte_129C8
|
||
cbw
|
||
shl ax, 2
|
||
add bx, ax
|
||
mov ax, [bx+14D4h]
|
||
mov dx, [bx+14D2h]
|
||
mov word ptr [bp+var_A+2], ax
|
||
mov word ptr [bp+var_A], dx
|
||
cmp byte_129C9, 0
|
||
jz short loc_DC66
|
||
mov al, byte_129C9
|
||
cbw
|
||
dec ax
|
||
push ax
|
||
call _grcg_setcolor_rmw
|
||
pop cx
|
||
|
||
loc_DC66:
|
||
xor si, si
|
||
jmp loc_DDDC
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DC6B:
|
||
les bx, [bp+var_6]
|
||
mov al, es:[bx]
|
||
mov [bp+var_1], al
|
||
inc word ptr [bp+var_6]
|
||
cmp [bp+var_1], 1
|
||
jnz loc_DD47
|
||
les bx, [bp+var_6]
|
||
mov al, es:[bx]
|
||
mov [bp+var_2], al
|
||
inc word ptr [bp+var_6]
|
||
cmp [bp+var_2], 0
|
||
jz loc_DD47
|
||
les bx, [bp+var_6]
|
||
mov al, es:[bx]
|
||
mov [bp+var_1], al
|
||
inc word ptr [bp+var_6]
|
||
jmp loc_DD3B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DCA2:
|
||
cmp [bp+var_1], 0
|
||
jnz loc_DD3A
|
||
cmp byte_129C9, 0
|
||
jnz short loc_DD28
|
||
les bx, [bp+var_A]
|
||
mov al, es:[bx]
|
||
mov [bp+var_B], al
|
||
inc word ptr [bp+var_A]
|
||
mov [bp+var_E], si
|
||
mov ax, 0A800h
|
||
mov bx, [bp+var_E]
|
||
mov dl, [bp+var_B]
|
||
mov es, ax
|
||
assume es:nothing
|
||
mov es:[bx], dl
|
||
les bx, [bp+var_A]
|
||
assume es:nothing
|
||
mov al, es:[bx]
|
||
mov [bp+var_F], al
|
||
inc word ptr [bp+var_A]
|
||
mov [bp+var_12], si
|
||
mov ax, 0B000h
|
||
mov bx, [bp+var_12]
|
||
mov dl, [bp+var_F]
|
||
mov es, ax
|
||
assume es:nothing
|
||
mov es:[bx], dl
|
||
les bx, [bp+var_A]
|
||
assume es:nothing
|
||
mov al, es:[bx]
|
||
mov [bp+var_13], al
|
||
inc word ptr [bp+var_A]
|
||
mov [bp+var_16], si
|
||
mov ax, 0B800h
|
||
mov bx, [bp+var_16]
|
||
mov dl, [bp+var_13]
|
||
mov es, ax
|
||
assume es:nothing
|
||
mov es:[bx], dl
|
||
les bx, [bp+var_A]
|
||
assume es:nothing
|
||
mov al, es:[bx]
|
||
mov [bp+var_17], al
|
||
inc word ptr [bp+var_A]
|
||
mov [bp+var_1A], si
|
||
inc si
|
||
mov ax, 0E000h
|
||
mov bx, [bp+var_1A]
|
||
mov dl, [bp+var_17]
|
||
mov es, ax
|
||
assume es:nothing
|
||
mov es:[bx], dl
|
||
jmp short loc_DD3B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DD28:
|
||
mov [bp+var_1C], si
|
||
inc si
|
||
mov ax, 0A800h
|
||
mov bx, [bp+var_1C]
|
||
mov es, ax
|
||
assume es:nothing
|
||
mov byte ptr es:[bx], 0FFh
|
||
jmp short loc_DD3B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DD3A:
|
||
inc si
|
||
|
||
loc_DD3B:
|
||
mov al, [bp+var_2]
|
||
dec [bp+var_2]
|
||
or al, al
|
||
jnz loc_DCA2
|
||
|
||
loc_DD47:
|
||
cmp [bp+var_1], 0
|
||
jnz loc_DDDB
|
||
cmp byte_129C9, 0
|
||
jnz short loc_DDCC
|
||
les bx, [bp+var_A]
|
||
assume es:nothing
|
||
mov al, es:[bx]
|
||
mov [bp+var_1D], al
|
||
inc word ptr [bp+var_A]
|
||
mov [bp+var_20], si
|
||
mov ax, 0A800h
|
||
mov bx, [bp+var_20]
|
||
mov dl, [bp+var_1D]
|
||
mov es, ax
|
||
assume es:nothing
|
||
mov es:[bx], dl
|
||
les bx, [bp+var_A]
|
||
assume es:nothing
|
||
mov al, es:[bx]
|
||
mov [bp+var_21], al
|
||
inc word ptr [bp+var_A]
|
||
mov [bp+var_24], si
|
||
mov ax, 0B000h
|
||
mov bx, [bp+var_24]
|
||
mov dl, [bp+var_21]
|
||
mov es, ax
|
||
assume es:nothing
|
||
mov es:[bx], dl
|
||
les bx, [bp+var_A]
|
||
assume es:nothing
|
||
mov al, es:[bx]
|
||
mov [bp+var_25], al
|
||
inc word ptr [bp+var_A]
|
||
mov [bp+var_28], si
|
||
mov ax, 0B800h
|
||
mov bx, [bp+var_28]
|
||
mov dl, [bp+var_25]
|
||
mov es, ax
|
||
assume es:nothing
|
||
mov es:[bx], dl
|
||
les bx, [bp+var_A]
|
||
assume es:nothing
|
||
mov al, es:[bx]
|
||
mov [bp+var_29], al
|
||
inc word ptr [bp+var_A]
|
||
mov [bp+var_2C], si
|
||
mov ax, 0E000h
|
||
mov bx, [bp+var_2C]
|
||
mov dl, [bp+var_29]
|
||
mov es, ax
|
||
assume es:nothing
|
||
mov es:[bx], dl
|
||
jmp short loc_DDDB
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DDCC:
|
||
mov [bp+var_2E], si
|
||
mov ax, 0A800h
|
||
mov bx, [bp+var_2E]
|
||
mov es, ax
|
||
assume es:nothing
|
||
mov byte ptr es:[bx], 0FFh
|
||
|
||
loc_DDDB:
|
||
inc si
|
||
|
||
loc_DDDC:
|
||
cmp si, 7D00h
|
||
jb loc_DC6B
|
||
cmp byte_129C9, 0
|
||
jz short loc_DDF0
|
||
call _grcg_off_func
|
||
|
||
loc_DDF0:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
sub_DC1B endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
enter 0Ah, 0
|
||
push si
|
||
push di
|
||
mov di, [bp+6]
|
||
pushd dword ptr [bp+8]
|
||
call file_ropen
|
||
or ax, ax
|
||
jz loc_DEEF
|
||
push 64h ; 'd'
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov [bp-6], dx
|
||
mov [bp-8], ax
|
||
push dx
|
||
push ax
|
||
push 40h
|
||
call file_read
|
||
push 4
|
||
push ds
|
||
push offset aHgrx ; "HGRX"
|
||
pushd dword ptr [bp-8]
|
||
call _memcmp
|
||
add sp, 0Ah
|
||
or ax, ax
|
||
jz short loc_DE41
|
||
call file_close
|
||
jmp loc_DEEF
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DE41:
|
||
les bx, [bp-8]
|
||
assume es:nothing
|
||
cmp byte ptr es:[bx+4], 1
|
||
jnb short loc_DE53
|
||
call file_close
|
||
jmp loc_DEEF
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DE53:
|
||
les bx, [bp-8]
|
||
mov al, es:[bx+4]
|
||
mov [di+18D2h], al
|
||
mov ax, es:[bx+8]
|
||
mov [bp-2], ax
|
||
mov ax, es:[bx+0Ah]
|
||
mov [bp-4], ax
|
||
mov bx, di
|
||
shl bx, 2
|
||
mov ax, [bx+1492h]
|
||
or ax, [bx+1494h]
|
||
jz short loc_DE82
|
||
push di
|
||
nopcall sub_E02B
|
||
pop cx
|
||
|
||
loc_DE82:
|
||
push word ptr [bp-2]
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov bx, di
|
||
shl bx, 2
|
||
mov [bx+1494h], dx
|
||
mov [bx+1492h], ax
|
||
or ax, dx
|
||
jnz short loc_DEA3
|
||
call file_close
|
||
jmp short loc_DEEF
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DEA3:
|
||
mov word ptr [bp-0Ah], 0
|
||
jmp short loc_DEF7
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DEAA:
|
||
mov bx, di
|
||
shl bx, 6
|
||
mov ax, [bp-0Ah]
|
||
shl ax, 2
|
||
add bx, ax
|
||
mov ax, [bx+14D2h]
|
||
or ax, [bx+14D4h]
|
||
jz short loc_DEC8
|
||
push di
|
||
nopcall sub_E02B
|
||
pop cx
|
||
|
||
loc_DEC8:
|
||
push word ptr [bp-4]
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov bx, di
|
||
shl bx, 6
|
||
mov si, [bp-0Ah]
|
||
shl si, 2
|
||
add bx, si
|
||
mov [bx+14D4h], dx
|
||
mov [bx+14D2h], ax
|
||
or ax, dx
|
||
jnz short loc_DEF4
|
||
call file_close
|
||
|
||
loc_DEEF:
|
||
mov ax, 1
|
||
jmp short loc_DF5C
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DEF4:
|
||
inc word ptr [bp-0Ah]
|
||
|
||
loc_DEF7:
|
||
les bx, [bp-8]
|
||
mov al, es:[bx+4]
|
||
mov ah, 0
|
||
cmp ax, [bp-0Ah]
|
||
jg short loc_DEAA
|
||
mov bx, di
|
||
shl bx, 2
|
||
pushd dword ptr [bx+1492h]
|
||
push word ptr [bp-2]
|
||
call file_read
|
||
mov word ptr [bp-0Ah], 0
|
||
jmp short loc_DF3B
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DF1E:
|
||
mov bx, di
|
||
shl bx, 6
|
||
mov ax, [bp-0Ah]
|
||
shl ax, 2
|
||
add bx, ax
|
||
pushd dword ptr [bx+14D2h]
|
||
push word ptr [bp-4]
|
||
call file_read
|
||
inc word ptr [bp-0Ah]
|
||
|
||
loc_DF3B:
|
||
les bx, [bp-8]
|
||
mov al, es:[bx+4]
|
||
mov ah, 0
|
||
cmp ax, [bp-0Ah]
|
||
jg short loc_DF1E
|
||
push word ptr [bp-6]
|
||
push bx
|
||
call @$bdla$qnv
|
||
add sp, 4
|
||
call file_close
|
||
xor ax, ax
|
||
|
||
loc_DF5C:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
; ---------------------------------------------------------------------------
|
||
enter 4, 0
|
||
push si
|
||
push di
|
||
mov si, [bp+6]
|
||
pushd dword ptr [bp+8]
|
||
call file_ropen
|
||
or ax, ax
|
||
jz loc_DFFF
|
||
push 64h ; 'd'
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov [bp-2], dx
|
||
mov [bp-4], ax
|
||
push dx
|
||
push ax
|
||
push 40h
|
||
call file_read
|
||
push 4
|
||
push ds
|
||
push offset aHgrx ; "HGRX"
|
||
pushd dword ptr [bp-4]
|
||
call _memcmp
|
||
add sp, 0Ah
|
||
or ax, ax
|
||
jz short loc_DFAC
|
||
call file_close
|
||
jmp short loc_DFFF
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DFAC:
|
||
les bx, [bp-4]
|
||
cmp byte ptr es:[bx+4], 1
|
||
jnb short loc_DFBD
|
||
call file_close
|
||
jmp short loc_DFFF
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_DFBD:
|
||
les bx, [bp-4]
|
||
mov al, es:[bx+4]
|
||
mov [si+18D2h], al
|
||
mov di, es:[bx+8]
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov ax, [bx+1492h]
|
||
or ax, [bx+1494h]
|
||
jz short loc_DFE2
|
||
push si
|
||
nopcall sub_E02B
|
||
pop cx
|
||
|
||
loc_DFE2:
|
||
push di
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov [bx+1494h], dx
|
||
mov [bx+1492h], ax
|
||
or ax, dx
|
||
jnz short loc_E004
|
||
call file_close
|
||
|
||
loc_DFFF:
|
||
mov ax, 1
|
||
jmp short loc_E027
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E004:
|
||
mov bx, si
|
||
shl bx, 2
|
||
pushd dword ptr [bx+1492h]
|
||
push di
|
||
call file_read
|
||
pushd dword ptr [bp-4]
|
||
call @$bdla$qnv
|
||
add sp, 4
|
||
call file_close
|
||
xor ax, ax
|
||
|
||
loc_E027:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
|
||
; =============== S U B R O U T I N E =======================================
|
||
|
||
; Attributes: bp-based frame
|
||
|
||
sub_E02B proc far
|
||
|
||
arg_0 = word ptr 6
|
||
|
||
push bp
|
||
mov bp, sp
|
||
push si
|
||
push di
|
||
mov si, [bp+arg_0]
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov ax, [bx+1492h]
|
||
or ax, [bx+1494h]
|
||
jz short loc_E065
|
||
mov bx, si
|
||
shl bx, 2
|
||
pushd dword ptr [bx+1492h] ; font
|
||
call @$bdla$qnv
|
||
add sp, 4
|
||
mov bx, si
|
||
shl bx, 2
|
||
mov word ptr [bx+1494h], 0
|
||
mov word ptr [bx+1492h], 0
|
||
|
||
loc_E065:
|
||
xor di, di
|
||
jmp short loc_E0B1
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E069:
|
||
mov bx, si
|
||
shl bx, 6
|
||
mov ax, di
|
||
shl ax, 2
|
||
add bx, ax
|
||
mov ax, [bx+14D2h]
|
||
or ax, [bx+14D4h]
|
||
jz short loc_E0B0
|
||
mov bx, si
|
||
shl bx, 6
|
||
mov ax, di
|
||
shl ax, 2
|
||
add bx, ax
|
||
pushd dword ptr [bx+14D2h] ; font
|
||
call @$bdla$qnv
|
||
add sp, 4
|
||
mov bx, si
|
||
shl bx, 6
|
||
mov ax, di
|
||
shl ax, 2
|
||
add bx, ax
|
||
mov word ptr [bx+14D4h], 0
|
||
mov word ptr [bx+14D2h], 0
|
||
|
||
loc_E0B0:
|
||
inc di
|
||
|
||
loc_E0B1:
|
||
cmp di, 10h
|
||
jl short loc_E069
|
||
pop di
|
||
pop si
|
||
pop bp
|
||
retf
|
||
sub_E02B endp
|
||
|
||
; ---------------------------------------------------------------------------
|
||
enter 0Eh, 0
|
||
push si
|
||
push di
|
||
pushd dword ptr [bp+8]
|
||
call file_ropen
|
||
or ax, ax
|
||
jz loc_E213
|
||
push 64h ; 'd'
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov [bp-6], dx
|
||
mov [bp-8], ax
|
||
push dx
|
||
push ax
|
||
push 60h
|
||
call file_read
|
||
push 4
|
||
push ds
|
||
push offset aHgrz ; "HGRZ"
|
||
pushd dword ptr [bp-8]
|
||
call _memcmp
|
||
add sp, 0Ah
|
||
or ax, ax
|
||
jz short loc_E104
|
||
call file_close
|
||
jmp loc_E213
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E104:
|
||
les bx, [bp-8]
|
||
mov al, es:[bx+4]
|
||
mov [bp-9], al
|
||
mov ah, 0
|
||
cmp ax, [bp+0Ch]
|
||
jle loc_E265
|
||
mov ax, [bp+0Ch]
|
||
shl ax, 2
|
||
add ax, 8
|
||
mov di, ax
|
||
add bx, di
|
||
mov eax, es:[bx]
|
||
mov [bp-0Eh], eax
|
||
push eax
|
||
push 0
|
||
call file_seek
|
||
pushd dword ptr [bp-8]
|
||
push 40h
|
||
call file_read
|
||
push 4
|
||
push ds
|
||
push offset aHgrx ; "HGRX"
|
||
pushd dword ptr [bp-8]
|
||
call _memcmp
|
||
add sp, 0Ah
|
||
or ax, ax
|
||
jz short loc_E15E
|
||
call file_close
|
||
jmp loc_E213
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E15E:
|
||
les bx, [bp-8]
|
||
cmp byte ptr es:[bx+4], 1
|
||
jnb short loc_E170
|
||
call file_close
|
||
jmp loc_E213
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E170:
|
||
les bx, [bp-8]
|
||
mov al, es:[bx+4]
|
||
mov bx, [bp+6]
|
||
mov [bx+18D2h], al
|
||
mov bx, [bp-8]
|
||
mov ax, es:[bx+8]
|
||
mov [bp-2], ax
|
||
mov ax, es:[bx+0Ah]
|
||
mov [bp-4], ax
|
||
mov bx, [bp+6]
|
||
shl bx, 2
|
||
mov ax, [bx+1492h]
|
||
or ax, [bx+1494h]
|
||
jz short loc_E1A7
|
||
push word ptr [bp+6]
|
||
call sub_E02B
|
||
pop cx
|
||
|
||
loc_E1A7:
|
||
push word ptr [bp-2]
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov bx, [bp+6]
|
||
shl bx, 2
|
||
mov [bx+1494h], dx
|
||
mov [bx+1492h], ax
|
||
or ax, dx
|
||
jnz short loc_E1C9
|
||
call file_close
|
||
jmp short loc_E213
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E1C9:
|
||
xor di, di
|
||
jmp short loc_E219
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E1CD:
|
||
mov bx, [bp+6]
|
||
shl bx, 6
|
||
mov ax, di
|
||
shl ax, 2
|
||
add bx, ax
|
||
mov ax, [bx+14D2h]
|
||
or ax, [bx+14D4h]
|
||
jz short loc_E1EC
|
||
push word ptr [bp+6]
|
||
call sub_E02B
|
||
pop cx
|
||
|
||
loc_E1EC:
|
||
push word ptr [bp-4]
|
||
call @$bnwa$qui
|
||
pop cx
|
||
mov bx, [bp+6]
|
||
shl bx, 6
|
||
mov si, di
|
||
shl si, 2
|
||
add bx, si
|
||
mov [bx+14D4h], dx
|
||
mov [bx+14D2h], ax
|
||
or ax, dx
|
||
jnz short loc_E218
|
||
call file_close
|
||
|
||
loc_E213:
|
||
mov ax, 1
|
||
jmp short loc_E278
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E218:
|
||
inc di
|
||
|
||
loc_E219:
|
||
les bx, [bp-8]
|
||
mov al, es:[bx+4]
|
||
mov ah, 0
|
||
cmp ax, di
|
||
jg short loc_E1CD
|
||
mov bx, [bp+6]
|
||
shl bx, 2
|
||
pushd dword ptr [bx+1492h]
|
||
push word ptr [bp-2]
|
||
call file_read
|
||
xor di, di
|
||
jmp short loc_E258
|
||
; ---------------------------------------------------------------------------
|
||
|
||
loc_E23D:
|
||
mov bx, [bp+6]
|
||
shl bx, 6
|
||
mov ax, di
|
||
shl ax, 2
|
||
add bx, ax
|
||
pushd dword ptr [bx+14D2h]
|
||
push word ptr [bp-4]
|
||
call file_read
|
||
inc di
|
||
|
||
loc_E258:
|
||
les bx, [bp-8]
|
||
mov al, es:[bx+4]
|
||
mov ah, 0
|
||
cmp ax, di
|
||
jg short loc_E23D
|
||
|
||
loc_E265:
|
||
pushd dword ptr [bp-8]
|
||
call @$bdla$qnv
|
||
add sp, 4
|
||
call file_close
|
||
xor ax, ax
|
||
|
||
loc_E278:
|
||
pop di
|
||
pop si
|
||
leave
|
||
retf
|
||
op_09_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
op_10_TEXT segment byte public 'CODE' use16
|
||
extern _resident_stuff_set:proc
|
||
extern _resident_free:proc
|
||
op_10_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
; Segment type: Pure code
|
||
op_11_TEXT segment byte public 'CODE' use16
|
||
extern _mdrv2_resident:proc
|
||
extern _mdrv2_bgm_load:proc
|
||
extern _mdrv2_bgm_play:proc
|
||
extern _mdrv2_bgm_stop:proc
|
||
extern _mdrv2_bgm_fade_out_nonblock:proc
|
||
extern _mdrv2_check_board:proc
|
||
op_11_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
op_12_TEXT segment byte public 'CODE' use16
|
||
extern @ARC_FILE_LOAD$QNXC:proc
|
||
extern @ARC_FILE_GET$QNCUI:proc
|
||
extern @ARC_FILE_FREE$QV:proc
|
||
op_12_TEXT ends
|
||
|
||
; ===========================================================================
|
||
|
||
.data
|
||
|
||
word_12320 dw 101h
|
||
word_12322 dw 201h
|
||
_mode db 0
|
||
byte_12325 db 0
|
||
byte_12326 db 0
|
||
byte_12327 db 0
|
||
byte_12328 db 0
|
||
byte_12329 db 0
|
||
byte_1232A db 0
|
||
byte_1232B db 0
|
||
byte_1232C db 0
|
||
byte_1232D db 0
|
||
byte_1232E db 0
|
||
byte_1232F db 0
|
||
dword_12330 dd 0
|
||
word_12334 dw 0
|
||
word_12336 dw 0
|
||
byte_12338 db 3
|
||
word_12339 dw 0
|
||
word_1233B dw 0
|
||
unk_1233D db 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
db 0
|
||
db 0
|
||
word_123C0 dw 0
|
||
word_123C2 dw 0
|
||
word_123C4 dw 0
|
||
word_123C6 dw 0
|
||
byte_123C8 db 0
|
||
word_123C9 dw 0
|
||
byte_123CB db 0
|
||
word_123CC dw 0
|
||
word_123CE dw 0
|
||
word_123D0 dw 0
|
||
word_123D2 dw 0
|
||
word_123D4 dw 0
|
||
word_123D6 dw 0
|
||
db 0
|
||
db 0
|
||
word_123DA dw 0
|
||
word_123DC dw 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
off_124CD dd aVrvsvVqvs
|
||
; " <20>r<EFBFBD>s<EFBFBD>`<60>q<EFBFBD>s "
|
||
dd aVbvnvmvsvhvmvt ; "<22>b<EFBFBD>n<EFBFBD>m<EFBFBD>s<EFBFBD>h<EFBFBD>m<EFBFBD>t<EFBFBD>d"
|
||
dd aB@vnvovsvhvnvm ; "<22>@<40>n<EFBFBD>o<EFBFBD>s<EFBFBD>h<EFBFBD>n<EFBFBD>m<EFBFBD>@"
|
||
dd aB@b@vpvtvhvsb@ ; "<22>@<40>@<40>p<EFBFBD>t<EFBFBD>h<EFBFBD>s<EFBFBD>@<40>@"
|
||
off_124DD dd aB@vqvVmvjb@
|
||
; "<22>@<40>q<EFBFBD>`<60>m<EFBFBD>j<EFBFBD>@ "
|
||
dd aVlvtvrvhvb ; " <20>l<EFBFBD>t<EFBFBD>r<EFBFBD>h<EFBFBD>b "
|
||
dd aVovkvVxvdvq ; "<22>o<EFBFBD>k<EFBFBD>`<60>x<EFBFBD>d<EFBFBD>q "
|
||
dd aVlbdvsvdvrvs ; "<22>l<EFBFBD>D<EFBFBD>s<EFBFBD>d<EFBFBD>r<EFBFBD>s "
|
||
dd aB@vpvtvhvsb@ ; "<22>@<40>p<EFBFBD>t<EFBFBD>h<EFBFBD>s<EFBFBD>@ "
|
||
off_124F1 dd aEasy
|
||
; " EASY "
|
||
dd aNormal ; "NORMAL"
|
||
dd aHard ; " HARD "
|
||
dd aLunatic ; "LUNATIC"
|
||
off_12501 dd aOff
|
||
; " OFF "
|
||
dd aFm ; " FM "
|
||
off_12509 dd a3
|
||
; " 3 "
|
||
dd a4 ; " 4 "
|
||
dd a5 ; " 5 "
|
||
dd a6 ; " 6 "
|
||
dd a7 ; " 7 "
|
||
byte_1251D db 0
|
||
off_1251E dd aVlvtvrvhvbb@vm
|
||
; "<22>l<EFBFBD>t<EFBFBD>r<EFBFBD>h<EFBFBD>b<EFBFBD>@<40>m<EFBFBD><6D><EFBFBD>D"
|
||
dd aB@b@vpvxvivf ; "<22>@<40>@<40>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "
|
||
off_12526 dd aASacretLot
|
||
; " A Sacret Lot"
|
||
dd aXcvR_o ; " <20><><EFBFBD>̐_<CC90><5F> "
|
||
dd aIiiuvIPc ; " <09>i<EFBFBD><69><EFBFBD>̛ޏ<CC9B> "
|
||
dd aHighlyResponsi ; " Highly Responsive"
|
||
dd aUmx
|
||
dd aOrientalMagici ; " Oriental Magician"
|
||
dd aB@FjoVPmsUbb@ ; "<22>@ <20>j<EFBFBD>ׂ̏<D782><CC8F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ "
|
||
dd aTheLegendOfKag ; " The Legend of KAGE"
|
||
dd aPositiveAndNeg ; "Positive and Negative"
|
||
dd aB@b@UvoguRrb@b ; "<22>@<40>@ <20>V<EFBFBD>g<EFBFBD>`<60><><EFBFBD>@<40>@ "
|
||
dd aB@b@b@CvlB@b@b ; "<22>@<40>@<40>@ <20><><EFBFBD><EFBFBD><EFBFBD>@<40>@<40>@ "
|
||
dd aVvvUVRVnvVOuvV ; "<22><><EFBFBD><EFBFBD><EFBFBD>|<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̎<EFBFBD><CC8E>܂<EFBFBD>"
|
||
dd aB@b@oavVVrvivV ; "<22>@<40>@<40><><EFBFBD>Ȃ<C882><CE82><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682>@<40>@"
|
||
dd aB@b@Rpchmxom ; "<22>@<40>@ <20><><EFBFBD>H<EFBFBD><48><EFBFBD>m"
|
||
dd aB@b@b@gagcgkgx ; "<22>@<40>@<40>@<40>A<EFBFBD>C<EFBFBD><43><EFBFBD>X"
|
||
word_12562 dw 63h
|
||
word_12564 dw 0
|
||
word_12566 dw 0
|
||
word_12568 dw 0
|
||
word_1256A dw 0
|
||
word_1256C dw 0
|
||
off_1256E dd aReimu_mdt
|
||
; "reimu.mdt"
|
||
dd aZipangu_mdt ; "ZIPANGU.mdt"
|
||
dd aSt0_mdt ; "st0.mdt"
|
||
dd aSt1_mdt ; "st1.mdt"
|
||
dd aSt2_mdt ; "st2.mdt"
|
||
dd aSt3_mdt ; "st3.mdt"
|
||
dd aSt4_mdt ; "st4.mdt"
|
||
dd aSt5_mdt ; "st5.mdt"
|
||
dd aPositive_mdt ; "positive.mdt"
|
||
dd aLegend_mdt ; "legend.mdt"
|
||
dd aKami_mdt ; "kami.mdt"
|
||
dd aTensi_mdt ; "tensi.mdt"
|
||
dd aSyugen_mdt ; "syugen.mdt"
|
||
dd aAlice_mdt ; "alice.mdt"
|
||
dd aIris_mdt ; "iris.mdt"
|
||
word_125AA dw 0
|
||
word_125AC dw 0
|
||
word_125AE dw 0
|
||
word_125B0 dw 0
|
||
; char path[]
|
||
path db 'reiiden.cfg',0
|
||
aRB db 'rb',0
|
||
; char s[]
|
||
s db 'REIIDEN',0
|
||
; char aWb[]
|
||
aWb db 'wb',0
|
||
; char aReimu_mdt[]
|
||
aReimu_mdt db 'reimu.mdt',0
|
||
aReiiden2_grp db 'REIIDEN2.grp',0
|
||
aReiiden3_grp db 'REIIDEN3.grp',0
|
||
aOp_win_grp db 'op_win.grp',0
|
||
; char aReiiden_0[]
|
||
aReiiden_0 db 'reiiden',0
|
||
aVgvhvsb@vjvdvx db ' <20>g<EFBFBD>h<EFBFBD>s<EFBFBD>@<40>j<EFBFBD>d<EFBFBD>x',0
|
||
aVrvsvVqvs db ' <20>r<EFBFBD>s<EFBFBD>`<60>q<EFBFBD>s ',0
|
||
aVbvnvmvsvhvmvt db '<27>b<EFBFBD>n<EFBFBD>m<EFBFBD>s<EFBFBD>h<EFBFBD>m<EFBFBD>t<EFBFBD>d',0
|
||
aB@vnvovsvhvnvm db '<27>@<40>n<EFBFBD>o<EFBFBD>s<EFBFBD>h<EFBFBD>n<EFBFBD>m<EFBFBD>@',0
|
||
aB@b@vpvtvhvsb@ db '<27>@<40>@<40>p<EFBFBD>t<EFBFBD>h<EFBFBD>s<EFBFBD>@<40>@',0
|
||
aB@vqvVmvjb@ db '<27>@<40>q<EFBFBD>`<60>m<EFBFBD>j<EFBFBD>@ ',0
|
||
aVlvtvrvhvb db ' <20>l<EFBFBD>t<EFBFBD>r<EFBFBD>h<EFBFBD>b ',0
|
||
aVovkvVxvdvq db '<27>o<EFBFBD>k<EFBFBD>`<60>x<EFBFBD>d<EFBFBD>q ',0
|
||
aVlbdvsvdvrvs db '<27>l<EFBFBD>D<EFBFBD>s<EFBFBD>d<EFBFBD>r<EFBFBD>s ',0
|
||
aB@vpvtvhvsb@ db '<27>@<40>p<EFBFBD>t<EFBFBD>h<EFBFBD>s<EFBFBD>@ ',0
|
||
aEasy db ' EASY ',0
|
||
aNormal db 'NORMAL',0
|
||
aHard db ' HARD ',0
|
||
aLunatic db 'LUNATIC',0
|
||
aOff db ' OFF ',0
|
||
aFm db ' FM ',0
|
||
a3 db ' 3 ',0
|
||
a4 db ' 4 ',0
|
||
a5 db ' 5 ',0
|
||
a6 db ' 6 ',0
|
||
a7 db ' 7 ',0
|
||
; char aSS[]
|
||
aSS db '%s%s',0
|
||
aVlvtvrvhvbb@vm db '<27>l<EFBFBD>t<EFBFBD>r<EFBFBD>h<EFBFBD>b<EFBFBD>@<40>m<EFBFBD><6D><EFBFBD>D',0
|
||
aB@b@vpvxvivf db '<27>@<40>@<40>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',0
|
||
aASacretLot db ' A Sacret Lot',0
|
||
aXcvR_o db ' <20><><EFBFBD>̐_<CC90><5F> ',0
|
||
aIiiuvIPc db ' <20>i<EFBFBD><69><EFBFBD>̛ޏ<CC9B> ',0
|
||
aHighlyResponsi db ' Highly Responsive',0
|
||
aUmx db ' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>k ',0
|
||
aOrientalMagici db ' Oriental Magician',0
|
||
aB@FjoVPmsUbb@ db '<27>@ <20>j<EFBFBD>ׂ̏<D782><CC8F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@ ',0
|
||
aTheLegendOfKag db ' The Legend of KAGE',0
|
||
aPositiveAndNeg db 'Positive and Negative',0
|
||
aB@b@UvoguRrb@b db '<27>@<40>@ <20>V<EFBFBD>g<EFBFBD>`<60><><EFBFBD>@<40>@ ',0
|
||
aB@b@b@CvlB@b@b db '<27>@<40>@<40>@ <20><><EFBFBD><EFBFBD><EFBFBD>@<40>@<40>@ ',0
|
||
aVvvUVRVnvVOuvV db '<27><><EFBFBD><EFBFBD><EFBFBD>|<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̎<EFBFBD><CC8E>܂<EFBFBD>',0
|
||
aB@b@oavVVrvivV db '<27>@<40>@<40><><EFBFBD>Ȃ<C882><CE82><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682>@<40>@',0
|
||
aB@b@Rpchmxom db '<27>@<40>@ <20><><EFBFBD>H<EFBFBD><48><EFBFBD>m',0
|
||
aB@b@b@gagcgkgx db '<27>@<40>@<40>@<40>A<EFBFBD>C<EFBFBD><43><EFBFBD>X',0
|
||
; char aS_2d[]
|
||
aS_2d db '%s%.2d',0
|
||
aZipangu_mdt db 'ZIPANGU.mdt',0
|
||
aSt0_mdt db 'st0.mdt',0
|
||
aSt1_mdt db 'st1.mdt',0
|
||
aSt2_mdt db 'st2.mdt',0
|
||
aSt3_mdt db 'st3.mdt',0
|
||
aSt4_mdt db 'st4.mdt',0
|
||
aSt5_mdt db 'st5.mdt',0
|
||
aPositive_mdt db 'positive.mdt',0
|
||
aLegend_mdt db 'legend.mdt',0
|
||
aKami_mdt db 'kami.mdt',0
|
||
aTensi_mdt db 'tensi.mdt',0
|
||
aSyugen_mdt db 'syugen.mdt',0
|
||
aAlice_mdt db 'alice.mdt',0
|
||
aIris_mdt db 'iris.mdt',0
|
||
aGogbgGtg@gcglv db '<27>o<EFBFBD>b<EFBFBD>`<60>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD>',0
|
||
aCon db 'CON',0
|
||
; char format[]
|
||
format db '<27><><EFBFBD><EFBFBD><C282>ꂳ<EFBFBD>܂ł<DC82><C582><EFBFBD><EFBFBD>I<EFBFBD>I',0Ah,0
|
||
include th01/hardware/vsync[data].asm
|
||
include th01/ztext[data].asm
|
||
public _game_initialized
|
||
_game_initialized db 0
|
||
db 0
|
||
include th01/hardware/palette[data].asm
|
||
include th01/hardware/graph_r[data].asm
|
||
include th01/hardware/respal[data].asm
|
||
word_129B8 dw 1
|
||
word_129BA dw 1
|
||
dd 0
|
||
dd 0
|
||
db 0
|
||
db 0
|
||
db 0
|
||
byte_129C7 db 0
|
||
byte_129C8 db 0
|
||
byte_129C9 db 0
|
||
aHgrx db 'HGRX',0
|
||
aHgrz db 'HGRZ',0
|
||
include libs/master.lib/version[data].asm
|
||
include libs/master.lib/grp[data].asm
|
||
include libs/master.lib/pal[data].asm
|
||
include libs/master.lib/respal_exist[data].asm
|
||
include libs/master.lib/resdata[data].asm
|
||
include libs/master.lib/fil[data].asm
|
||
include libs/master.lib/keytable[data].asm
|
||
include libs/master.lib/keystart[data].asm
|
||
include libs/master.lib/keyback[data].asm
|
||
include libs/master.lib/dos_ropen[data].asm
|
||
include libs/master.lib/clip[data].asm
|
||
include libs/master.lib/rand[data].asm
|
||
public _res_id
|
||
_res_id db 'ReiidenConfig',0
|
||
include th01/mdrv2[data].asm
|
||
.data?
|
||
|
||
; TODO: Missing clip[bss].asm (16 bytes) somewhere in there...
|
||
dword_13418 dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
include th01/hardware/vsync[bss].asm
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
db ? ;
|
||
db ? ;
|
||
db ? ;
|
||
word_13627 dw ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
word_13665 dw ?
|
||
db ?
|
||
_int06_old dd ?
|
||
include th01/hardware/graph[bss].asm
|
||
include th01/hardware/vram_planes[bss].asm
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
unk_136D2 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 ?
|
||
db ? ;
|
||
db ? ;
|
||
db ? ;
|
||
; void (*font)(void)
|
||
font dd ?
|
||
include libs/master.lib/pal[bss].asm
|
||
include libs/master.lib/fil[bss].asm
|
||
include libs/master.lib/keystart[bss].asm
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
dd ?
|
||
public _resident
|
||
_resident dd ?
|
||
|
||
end
|