mirror of https://github.com/nmlgc/ReC98.git
[Reduction] #488-491: General key input support
This commit is contained in:
parent
3d05fb85c9
commit
9ed6e1e93f
|
@ -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
|
|
@ -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
|
|
@ -0,0 +1,2 @@
|
|||
key_backup db 786 dup (?)
|
||||
keywork db 10 dup (?)
|
|
@ -0,0 +1 @@
|
|||
key_started dw 0
|
|
@ -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 ----
|
475
th01_op.asm
475
th01_op.asm
|
@ -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 ...
|
||||
|
|
479
th01_reiiden.asm
479
th01_reiiden.asm
|
@ -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 ?
|
||||
|
|
Loading…
Reference in New Issue