[Reduction] #488-491: General key input support

This commit is contained in:
nmlgc 2014-09-07 17:01:58 +02:00
parent 3d05fb85c9
commit 9ed6e1e93f
7 changed files with 289 additions and 940 deletions

View File

@ -0,0 +1,18 @@
; master library
;
; Description:
; キーの戻し領域
;
; Global Variables:
; key_back_buffer
;
; Author:
; 恋塚昭彦
;
; Revision History:
; 94/ 4/ 5 Initial: keyback.asm/master.lib 0.23
;
public _key_back_buffer,key_back_buffer
key_back_buffer label word
_key_back_buffer dw 0

View File

@ -0,0 +1,188 @@
; master library
; Description:
; 一般的なキー入力サポート
; (NEC DOS拡張ファンクション使用)
;
; Functions:
; void key_start( void ) ;
; void key_end( void ) ;
;
; unsigned key_scan( void ) ;
; unsigned key_wait( void ) ;
; 0〜0ffh: normal keys
; 100h: help key
; 101h〜10ah: F1〜F10
; 10bh〜114h: SHIFT+F1〜F10
; 120h〜124h: VF1〜VF5
; 125h〜129h: SHIFT+VF1〜VF5
; 12ah〜138h: CTRL+F1〜VF5
;
; Running Target:
; PC-9801 series (Normal and Hires.)
;
; Revision History:
; 93/ 3/16 Initial
; 93/ 5/11 [M0.16] F・11〜F・15対応
; 93/ 9/11 [M0.21] CTRL+F・?対応
; 94/ 6/23 [M0.23] 多重起動防止にフラグ設置
doskey_top equ 21
doskey_end equ 32
fkey_end equ 38h
HELPKEY equ 100h
;
func KEY_START ; {
push SI
; CTRL+ファンクションキーをソフトキー化
mov CL,0fh
mov AX,0
int 0dch
test key_started,1
jne short @@KEY_RESTART
mov key_started,3
; ファンクションキーの内容を保存する
mov CX,0ch
mov AX,00ffh
mov DX,offset key_backup
int 0dch
@@KEY_RESTART:
; ファンクションキー定義
mov keywork,0feh
mov word ptr keywork+1,2020h ; 全部空白
mov word ptr keywork+3,2020h
mov word ptr keywork+5,7f20h
mov BX,1
@@FKEY_LOOP:
mov WORD PTR keywork+7,BX
mov CX,0dh
mov AX,BX
mov DX,offset keywork
int 0dch
inc BX
cmp BX,20
jle short @@FKEY_LOOP
; 特殊キー定義
mov keywork,07fh
mov BX,doskey_top
@@DKEY_LOOP:
mov WORD PTR keywork+1,BX
mov CX,0dh
mov AX,BX
mov DX,offset keywork
int 0dch
inc BX
cmp BX,fkey_end
jle short @@DKEY_LOOP
pop SI
ret
endfunc ; }
func KEY_END ; {
test key_started,2
jnz short @@KEY_END_START ; foolproof
ret
@@KEY_END_START:
and key_started,not 1
mov CX,0dh
mov AX,00ffh
mov DX,offset key_backup
int 0dch
; CTRL+ファンクションキーのソフトキー化を解除
mov CL,0fh
mov AX,1
int 0dch
ret
endfunc ; }
func KEY_SCAN ; {
xor AX,AX
xchg AX,key_back_buffer
test AX,AX
jnz short @@SCAN_RET
mov AH,6
mov DL,0FFh
int 21h
mov AH,0
jz short @@SCAN_NOKEY
cmp AL,07fh
jne short @@SCAN_RET
key_convert label CALLMODEL
mov AH,7
int 21h
mov AH,1
cmp AL,doskey_top
jb short @@SCAN_RET ; function keys: 101h〜114h
cmp AL,doskey_end
jae short @@SCAN_RET ; shift + function keys: 120h‾129h
sub AL,doskey_top
mov DX,0
mov ES,DX
mov AH,DL
mov BX,AX
shl BX,1
mov AL,ES:53ah
and AL,19h ; 10h:CTRL 08h:GRPH 01h:SHIFT
jnz short @@L00
mov AX,key_table_normal[BX]
ret
@@L00: cmp AL,01h
jne short @@L01
mov AX,key_table_shift[BX]
ret
@@L01: cmp AL,08h
jne short @@L02
mov AX,key_table_alt[BX]
ret
@@L02: cmp AL,10h
jne short @@L03
mov AX,key_table_ctrl[BX]
ret
@@L03: mov AX,HELPKEY ; 無効入力はすべて HELPKEY
@@SCAN_RET:
ret
@@SCAN_NOKEY:
mov AX,-1
ret
endfunc ; }
func KEY_WAIT
xor AX,AX
xchg AX,key_back_buffer
test AX,AX
jnz short @@KEY_READ
mov AH,7
int 21h
mov AH,0
cmp AL,07fh
je short @@KW_CONV
ret
@@KW_CONV:
call key_convert
cmp AX,-1
je short KEY_WAIT
@@KEY_READ:
ret
endfunc

View File

@ -0,0 +1,2 @@
key_backup db 786 dup (?)
keywork db 10 dup (?)

View File

@ -0,0 +1 @@
key_started dw 0

View File

@ -0,0 +1,66 @@
; master library
; Descriptin:
; 制御キーの初期定義情報
;
; Revision History:
; 93/ 3/16 Initial
; 93/12/ 9 [M0.22] assignment変更
PUBLIC key_table_normal,_key_table_normal
PUBLIC key_table_shift,_key_table_shift
PUBLIC key_table_ctrl,_key_table_ctrl
PUBLIC key_table_alt,_key_table_alt
HELPKEY equ 100h
_key_table_normal label word
key_table_normal dw 'C'-'@' ; ROLLUP
dw 'R'-'@' ; ROLLDOWN
dw 'V'-'@' ; INS
dw 'G'-'@' ; DEL
dw 'E'-'@' ; UP
dw 'S'-'@' ; LEFT
dw 'D'-'@' ; RIGHT
dw 'X'-'@' ; DOWN
dw 'Y'-'@' ; HOME/CLR
dw HELPKEY ; HELP
dw 0 ; ----- no means ----
_key_table_shift label word
key_table_shift dw 'Z'-'@' ; ROLLUP
dw 'W'-'@' ; ROLLDOWN
dw '@'-'@' ; INS
dw 'T'-'@' ; DEL
dw 'R'-'@' ; UP
dw 'A'-'@' ; LEFT
dw 'F'-'@' ; RIGHT
dw 'C'-'@' ; DOWN
dw 0 ; ----- no means ----
dw HELPKEY ; HELP
dw '@'-'@' ; SHIFT HOME/CLR
_key_table_ctrl label word
key_table_ctrl dw 'C'-'@'+200h ; ROLLUP
dw 'R'-'@'+200h ; ROLLDOWN
dw 'V'-'@'+200h ; INS
dw 'G'-'@'+200h ; DEL
dw 'E'-'@'+200h ; UP
dw 'S'-'@'+200h ; LEFT
dw 'D'-'@'+200h ; RIGHT
dw 'X'-'@'+200h ; DOWN
dw HELPKEY ; HOME/CLR
dw HELPKEY ; HELP
dw 0 ; ----- no means ----
_key_table_alt label word
key_table_alt dw 'C'-'@'+300h ; ROLLUP
dw 'R'-'@'+300h ; ROLLDOWN
dw 'V'-'@'+300h ; INS
dw 'G'-'@'+300h ; DEL
dw 'E'-'@'+300h ; UP
dw 'S'-'@'+300h ; LEFT
dw 'D'-'@'+300h ; RIGHT
dw 'X'-'@'+300h ; DOWN
dw HELPKEY ; HOME/CLR
dw HELPKEY ; HELP
dw 0 ; ----- no means ----

View File

@ -1734,179 +1734,7 @@ 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
; =============== S U B R O U T I N E =======================================
sub_1196 proc far
push si
mov cl, 0Fh
mov ax, 0
int 0DCh ; used by BASIC while in interpreter
test word_12AE6, 1
jnz short loc_11B7
mov word_12AE6, 3
mov cx, 0Ch
mov ax, 0FFh
mov dx, 192Ah
int 0DCh ; used by BASIC while in interpreter
loc_11B7:
mov byte_13ECC, 0FEh ; 'þ'
mov word_13ECD, 2020h
mov word_13ECF, 2020h
mov word_13ED1, 7F20h
mov bx, 1
loc_11D1:
mov word_13ED3, bx
mov cx, 0Dh
mov ax, bx
mov dx, 1C3Ch
int 0DCh ; used by BASIC while in interpreter
inc bx
cmp bx, 14h
jle short loc_11D1
mov byte_13ECC, 7Fh ; ''
mov bx, 15h
loc_11ED:
mov word_13ECD, bx
mov cx, 0Dh
mov ax, bx
mov dx, 1C3Ch
int 0DCh ; used by BASIC while in interpreter
inc bx
cmp bx, 38h ; '8'
jle short loc_11ED
pop si
retf
sub_1196 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_1204 proc far
test word_12AE6, 2
jnz short loc_120D
retf
; ---------------------------------------------------------------------------
loc_120D:
and word_12AE6, 0FFFEh
mov cx, 0Dh
mov ax, 0FFh
mov dx, 192Ah
int 0DCh ; used by BASIC while in interpreter
mov cl, 0Fh
mov ax, 1
int 0DCh ; used by BASIC while in interpreter
retf
sub_1204 endp
; ---------------------------------------------------------------------------
nop
xor ax, ax
xchg ax, word_12AE8
test ax, ax
jnz short locret_1284
mov ah, 6
mov dl, 0FFh
int 21h ; DOS - DIRECT CONSOLE I/O CHARACTER OUTPUT
; DL = character <> FFh
; Return: ZF set = no character
; ZF clear = character recieved, AL = character
mov ah, 0
jz short loc_1285
cmp al, 7Fh ; ''
jnz short locret_1284
; =============== S U B R O U T I N E =======================================
sub_123E proc far
mov ah, 7
int 21h ; DOS - DIRECT STDIN INPUT, NO ECHO
mov ah, 1
cmp al, 15h
jb short locret_1284
cmp al, 20h ; ' '
jnb short locret_1284
sub al, 15h
mov dx, 0
mov es, dx
assume es:seg000
mov ah, dl
mov bx, ax
shl bx, 1
mov al, byte ptr es:loc_538+2
and al, 19h
jnz short loc_1266
mov ax, [bx+7FEh]
retf
; ---------------------------------------------------------------------------
loc_1266:
cmp al, 1
jnz short loc_126F
mov ax, [bx+814h]
retf
; ---------------------------------------------------------------------------
loc_126F:
cmp al, 8
jnz short loc_1278
mov ax, [bx+840h]
retf
; ---------------------------------------------------------------------------
loc_1278:
cmp al, 10h
jnz short loc_1281
mov ax, [bx+82Ah]
retf
; ---------------------------------------------------------------------------
loc_1281:
mov ax, 100h
locret_1284:
retf
sub_123E endp
; ---------------------------------------------------------------------------
loc_1285:
mov ax, 0FFFFh
retf
; ---------------------------------------------------------------------------
nop
loc_128A:
xor ax, ax
xchg ax, word_12AE8
test ax, ax
jnz short locret_12A8
mov ah, 7
int 21h ; DOS - DIRECT STDIN INPUT, NO ECHO
mov ah, 0
cmp al, 7Fh ; ''
jz short loc_129F
retf
; ---------------------------------------------------------------------------
loc_129F:
push cs
call near ptr sub_123E
cmp ax, 0FFFFh
jz short loc_128A
locret_12A8:
retf
; ---------------------------------------------------------------------------
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
@ -7917,7 +7745,7 @@ sub_A79D proc far
call sub_E3C5
loc_A7AE:
call sub_1204
call key_end
pop bp
retf
sub_A79D endp
@ -9026,7 +8854,7 @@ loc_B0D6:
push 18h ; intno
call _int86
add sp, 0Ah
call sub_1196
call key_start
push cs
call near ptr sub_A719
xor ax, ax
@ -23894,93 +23722,9 @@ 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
db 3
db 0
db 12h
db 0
db 16h
db 0
db 7
db 0
db 5
db 0
db 13h
db 0
db 4
db 0
db 18h
db 0
db 19h
db 0
db 0
db 1
db 0
db 0
db 1Ah
db 0
db 17h
db 0
db 0
db 0
db 14h
db 0
db 12h
db 0
db 1
db 0
db 6
db 0
db 3
dd 0
db 1
db 0
db 0
db 3
db 2
db 12h
db 2
db 16h
db 2
db 7
db 2
db 5
db 2
db 13h
db 2
db 4
db 2
db 18h
db 2
db 0
db 1
db 0
db 1
db 0
db 0
db 3
db 3
db 12h
db 3
db 16h
db 3
db 7
db 3
db 5
db 3
db 13h
db 3
db 4
db 3
db 18h
db 3
db 0
db 1
db 0
db 1
db 0
db 0
word_12AE6 dw 0
word_12AE8 dw 0
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
@ -24972,216 +24716,11 @@ unk_136D2 db ? ;
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 ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
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 ? ;
byte_13ECC db ?
; sub_1196+4Fw
word_13ECD dw ?
; sub_1196:loc_11EDw
word_13ECF dw ?
word_13ED1 dw ?
word_13ED3 dw ?
dd ?
dd ?
dd ?
dd ?
db ? ;
dword_13EE6 dd ?
dword_13EEA dd ?
; seg012:loc_E5B4r ...

View File

@ -1859,185 +1859,7 @@ include libs/master.lib/file_create.asm
include libs/master.lib/file_seek.asm
include libs/master.lib/dos_free.asm
include libs/master.lib/dos_axdx.asm
; =============== S U B R O U T I N E =======================================
sub_12FA proc far
push si
mov cl, 0Fh
mov ax, 0
int 0DCh ; used by BASIC while in interpreter
test word_35204, 1
jnz short loc_131B
mov word_35204, 3
mov cx, 0Ch
mov ax, 0FFh
mov dx, 44D0h
int 0DCh ; used by BASIC while in interpreter
loc_131B:
mov byte_39182, 0FEh ; 'þ'
mov word_39183, 2020h
mov word_39185, 2020h
mov word_39187, 7F20h
mov bx, 1
loc_1335:
mov word_39189, bx
mov cx, 0Dh
mov ax, bx
mov dx, 47E2h
int 0DCh ; used by BASIC while in interpreter
inc bx
cmp bx, 14h
jle short loc_1335
mov byte_39182, 7Fh ; ''
mov bx, 15h
loc_1351:
mov word_39183, bx
mov cx, 0Dh
mov ax, bx
mov dx, 47E2h
int 0DCh ; used by BASIC while in interpreter
inc bx
cmp bx, 38h ; '8'
jle short loc_1351
pop si
retf
sub_12FA endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_1368 proc far
test word_35204, 2
jnz short loc_1371
retf
; ---------------------------------------------------------------------------
loc_1371:
and word_35204, 0FFFEh
mov cx, 0Dh
mov ax, 0FFh
mov dx, 44D0h
int 0DCh ; used by BASIC while in interpreter
mov cl, 0Fh
mov ax, 1
int 0DCh ; used by BASIC while in interpreter
retf
sub_1368 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_138A proc far
xor ax, ax
xchg ax, word_35206
test ax, ax
jnz short locret_13E8
mov ah, 6
mov dl, 0FFh
int 21h ; DOS - DIRECT CONSOLE I/O CHARACTER OUTPUT
; DL = character <> FFh
; Return: ZF set = no character
; ZF clear = character recieved, AL = character
mov ah, 0
jz short loc_13E9
cmp al, 7Fh ; ''
jnz short locret_13E8
loc_13A2:
mov ah, 7
int 21h ; DOS - DIRECT STDIN INPUT, NO ECHO
mov ah, 1
cmp al, 15h
jb short locret_13E8
cmp al, 20h ; ' '
jnb short locret_13E8
sub al, 15h
mov dx, 0
mov es, dx
assume es:seg000
mov ah, dl
mov bx, ax
shl bx, 1
mov al, byte ptr es:loc_538+2
and al, 19h
jnz short loc_13CA
mov ax, [bx+80Ch]
retf
; ---------------------------------------------------------------------------
loc_13CA:
cmp al, 1
jnz short loc_13D3
mov ax, [bx+822h]
retf
; ---------------------------------------------------------------------------
loc_13D3:
cmp al, 8
jnz short loc_13DC
mov ax, [bx+84Eh]
retf
; ---------------------------------------------------------------------------
loc_13DC:
cmp al, 10h
jnz short loc_13E5
mov ax, [bx+838h]
retf
; ---------------------------------------------------------------------------
loc_13E5:
mov ax, 100h
locret_13E8:
retf
; ---------------------------------------------------------------------------
loc_13E9:
mov ax, 0FFFFh
retf
sub_138A endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
sub_13EE proc far
xor ax, ax
xchg ax, word_35206
test ax, ax
jnz short locret_140C
mov ah, 7
int 21h ; DOS - DIRECT STDIN INPUT, NO ECHO
mov ah, 0
cmp al, 7Fh ; ''
jz short loc_1403
retf
; ---------------------------------------------------------------------------
loc_1403:
push cs
call loc_13A2
cmp ax, 0FFFFh
jz short near ptr sub_13EE
locret_140C:
retf
sub_13EE endp
include libs/master.lib/keystart.asm
include libs/master.lib/key_sense.asm
include libs/master.lib/dos_ropen.asm
include libs/master.lib/grcg_setcolor.asm
@ -14567,7 +14389,7 @@ loc_D583:
mov eax, dword_36C16
mov random_seed, eax
call sub_E7E4
call sub_12FA
call key_start
push large 3F003Fh
call sub_198C
add sp, 4
@ -15836,7 +15658,7 @@ loc_E2CB:
push cs
call near ptr sub_D4DD
call sub_E852
call sub_1368
call key_end
call sub_1716F
push large 0
push ds
@ -42973,93 +42795,9 @@ 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
db 3
db 0
db 12h
db 0
db 16h
db 0
db 7
db 0
db 5
db 0
db 13h
db 0
db 4
db 0
db 18h
db 0
db 19h
db 0
db 0
db 1
db 0
db 0
db 1Ah
db 0
db 17h
db 0
db 0
db 0
db 14h
db 0
db 12h
db 0
db 1
db 0
db 6
db 0
db 3
dd 0
db 1
db 0
db 0
db 3
db 2
db 12h
db 2
db 16h
db 2
db 7
db 2
db 5
db 2
db 13h
db 2
db 4
db 2
db 18h
db 2
db 0
db 1
db 0
db 1
db 0
db 0
db 3
db 3
db 12h
db 3
db 16h
db 3
db 7
db 3
db 5
db 3
db 13h
db 3
db 4
db 3
db 18h
db 3
db 0
db 1
db 0
db 1
db 0
db 0
word_35204 dw 0
word_35206 dw 0
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/sin8[data].asm
@ -47230,214 +46968,11 @@ unk_38988 db ? ;
off_38E28 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 ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
dd ?
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 ? ;
byte_39182 db ?
word_39183 dw ?
word_39185 dw ?
word_39187 dw ?
word_39189 dw ?
dd ?
dd ?
dd ?
dd ?
db ? ;
dword_3919C dd ?
unk_391A0 db ? ;
dd ?