mirror of https://github.com/nmlgc/ReC98.git
[Reduction] #184-186: RTC interrupt manager
This commit is contained in:
parent
0bb3f897e0
commit
54ceaad556
|
@ -0,0 +1,223 @@
|
|||
; master library - PC/AT - RTC
|
||||
;
|
||||
; Description:
|
||||
; RTC割り込み(1/4096秒周期)マネージャ
|
||||
;
|
||||
; Subroutines:
|
||||
; rtc_int_set:NEAR
|
||||
;
|
||||
; Parameters:
|
||||
; BX = slot number
|
||||
; 0: BGM
|
||||
; 1: joystick
|
||||
;
|
||||
; AX = offset of interrupt function(near)
|
||||
; 0以外ならセット, 0なら解除
|
||||
;
|
||||
; interrupt function仕様:
|
||||
; すでにCLD, push AX DS, DS=DGROUP にされている
|
||||
; near callされる
|
||||
;
|
||||
; Returns:
|
||||
; レジスタはAX,BX,CX,DX,ESが破壊される
|
||||
;
|
||||
; Binding Target:
|
||||
; assembler
|
||||
;
|
||||
; Running Target:
|
||||
; PC/AT(RTC割り込みが使える環境)
|
||||
;
|
||||
; Requiring Resources:
|
||||
; CPU: 186
|
||||
;
|
||||
; Notes:
|
||||
; セットしたらプログラム終了までにすべて解除すること
|
||||
; 解除の順番はどうでもいい
|
||||
;
|
||||
; Assembly Language Note:
|
||||
;
|
||||
;
|
||||
; Compiler/Assembler:
|
||||
; TASM 3.0
|
||||
; OPTASM 1.6
|
||||
;
|
||||
; Author:
|
||||
; 恋塚昭彦
|
||||
;
|
||||
; Revision History:
|
||||
; 94/ 7/ 3 Initial: atrtcmod.asm / master.lib 0.23
|
||||
; 95/ 2/23 [M0.22k] RTC割り込みマネージャrtc_int_set追加, RTC_MOD削除
|
||||
|
||||
RTC_IMR equ 0a1h ; slave IMR port
|
||||
RTC_MASK equ 1 ; RTC's interrupt mask bit
|
||||
RTC_VECT equ 70h ; RTC periodic interrupt vector
|
||||
RTC_INDEX equ 70h ; RTC index port
|
||||
RTC_DATA equ 71h ; RTC data port
|
||||
|
||||
MAX_SLOT equ 2 ; RTC割り込みの登録できる数
|
||||
; #0 BGM
|
||||
; #1 joystick
|
||||
|
||||
rtc_timerorg dd 0
|
||||
|
||||
public rtc_int_set
|
||||
rtc_int_set proc near
|
||||
cmp BX,MAX_SLOT
|
||||
jae short @@INT_SET_RET ; foolproof
|
||||
shl BX,1
|
||||
mov Slot[BX],AX
|
||||
|
||||
; スロット数2個に決め打ちしてる
|
||||
mov AX,Slot[0]
|
||||
or AX,Slot[2]
|
||||
add AX,-1 ; cy=1 if nonzero
|
||||
sbb AX,AX ; AX=cy
|
||||
|
||||
cmp AX,InSLot
|
||||
je short @@INT_SET_RET
|
||||
mov InSLot,AX
|
||||
ja short @@INT_SET
|
||||
|
||||
; free interrupt -----------------------------------
|
||||
@@INT_FREE:
|
||||
CLI
|
||||
mov AL,0bh ; register B
|
||||
out RTC_INDEX,AL
|
||||
mov AL,org_rtc_b
|
||||
out RTC_DATA,AL ; restore periodic interrupt mask
|
||||
|
||||
if 0
|
||||
mov AL,0ch ; register C
|
||||
out RTC_INDEX,AL
|
||||
in AL,RTC_DATA ; clear interrupt request
|
||||
endif
|
||||
|
||||
;割り込みベクタを元に戻す
|
||||
push RTC_VECT
|
||||
push word ptr CS:rtc_timerorg+2
|
||||
push word ptr CS:rtc_timerorg
|
||||
nopcall DOS_SETVECT
|
||||
|
||||
;マスクレジスタを元に戻す
|
||||
in AL,RTC_IMR
|
||||
or AL,org_rtc_mask
|
||||
out RTC_IMR,AL
|
||||
STI
|
||||
;jmp short WAKEUP_DONE
|
||||
|
||||
@@INT_SET_RET:
|
||||
ret ; retは下にもあるよ
|
||||
EVEN
|
||||
|
||||
; initialize interrupt -----------------------------
|
||||
@@INT_SET:
|
||||
CLI
|
||||
|
||||
;割り込みベクタの保存&書き換え
|
||||
push RTC_VECT
|
||||
push CS
|
||||
push offset RTC_INT
|
||||
nopcall DOS_SETVECT
|
||||
mov word ptr CS:rtc_timerorg+2,DX
|
||||
mov word ptr CS:rtc_timerorg,AX
|
||||
;タイマインタラプト初期設定
|
||||
mov AH,0ah ; register A
|
||||
mov BX,0f004h ; 4096 times per sec
|
||||
call rtc_mod
|
||||
|
||||
mov AL,0bh ; register B
|
||||
out RTC_INDEX,AL
|
||||
in AL,RTC_DATA
|
||||
mov org_rtc_b,AL
|
||||
or AL,40h ; enable periodic interrupt
|
||||
mov AH,AL
|
||||
mov AL,0bh ; register B
|
||||
out RTC_INDEX,AL
|
||||
mov AL,AH
|
||||
out RTC_DATA,AL
|
||||
|
||||
;マスク解除
|
||||
in AL,RTC_IMR
|
||||
mov AH,AL
|
||||
and AL,not RTC_MASK
|
||||
out RTC_IMR,AL
|
||||
xor AL,AH
|
||||
mov org_rtc_mask,AL
|
||||
STI
|
||||
|
||||
@@WAKEUP_DONE:
|
||||
CLI
|
||||
mov AL,0ch ; register C
|
||||
out RTC_INDEX,AL
|
||||
in AL,RTC_DATA ; clear interrupt request
|
||||
STI
|
||||
ret ; retは上にもあるよ
|
||||
rtc_int_set endp
|
||||
|
||||
; RTCレジスタの変更
|
||||
rtc_mod proc near ; in: AH=index, BH=and mask, BL=or mask
|
||||
mov AL,AH
|
||||
out RTC_INDEX,AL
|
||||
in AL,RTC_DATA
|
||||
and AL,BH
|
||||
or AL,BL
|
||||
xchg AH,AL
|
||||
out RTC_INDEX,AL
|
||||
xchg AH,AL
|
||||
out RTC_DATA,AL
|
||||
ret
|
||||
rtc_mod endp
|
||||
|
||||
; --------------------------------------------------
|
||||
; RTC割り込みハンドラ
|
||||
RTC_INT proc far
|
||||
push AX
|
||||
push DS
|
||||
mov AX,seg DGROUP
|
||||
mov DS,AX
|
||||
CLD
|
||||
|
||||
push offset SlotEnd
|
||||
|
||||
; スロット数2個に決め打ちしてる
|
||||
|
||||
; あとにpushしたルーチンから呼び出されるよ
|
||||
; bgm slot
|
||||
cmp Slot[0],0
|
||||
je short @@SkipSlot0
|
||||
push Slot[0]
|
||||
@@SkipSlot0:
|
||||
; joystick slot
|
||||
cmp Slot[2],0
|
||||
je short @@SkipSlot11
|
||||
push Slot[2]
|
||||
@@SkipSlot11:
|
||||
retn ; これでcallすると、最後にはSlotEndに戻ってくる
|
||||
EVEN
|
||||
|
||||
SlotEnd:
|
||||
; 割り込み終了処理
|
||||
cmp org_rtc_mask,0 ; 以前の割り込みがあったなら0
|
||||
pop DS
|
||||
jne short @@SELF_EOI
|
||||
|
||||
; 以前の割り込みへchain
|
||||
pop AX
|
||||
jmp dword ptr CS:rtc_timerorg
|
||||
EVEN
|
||||
|
||||
@@SELF_EOI:
|
||||
mov AL,20h
|
||||
out 0a0h,AL ; EOI to slave PIC
|
||||
out 020h,AL ; EOI to master PIC
|
||||
|
||||
mov AL,0ch
|
||||
out RTC_INDEX,AL
|
||||
in AL,RTC_DATA ; clear interrupt request
|
||||
mov AL,0ch
|
||||
out RTC_INDEX,AL
|
||||
in AL,RTC_DATA ; clear interrupt request
|
||||
|
||||
pop AX
|
||||
iret
|
||||
RTC_INT endp
|
|
@ -0,0 +1,4 @@
|
|||
InSLot dw 0
|
||||
Slot dw MAX_SLOT dup (0)
|
||||
org_rtc_mask db 0
|
||||
org_rtc_b db 0
|
124
th04_main.asm
124
th04_main.asm
|
@ -31,93 +31,7 @@ include libs/master.lib/bfnt_entry_pat.asm
|
|||
include libs/master.lib/bfnt_extend_header_skip.asm
|
||||
include libs/master.lib/bfnt_header_read.asm
|
||||
include libs/master.lib/bfnt_header_analysis.asm
|
||||
; ---------------------------------------------------------------------------
|
||||
word_472 dw 0
|
||||
word_474 dw 0
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_476:
|
||||
cmp bx, 2
|
||||
jnb short locret_4BC
|
||||
shl bx, 1
|
||||
mov [bx+320h], ax
|
||||
mov ax, word_21660
|
||||
or ax, word_21662
|
||||
add ax, 0FFFFh
|
||||
sbb ax, ax
|
||||
cmp ax, word_2165E
|
||||
jz short locret_4BC
|
||||
mov word_2165E, ax
|
||||
ja short loc_4BE
|
||||
cli
|
||||
mov al, 0Bh
|
||||
out 70h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
mov al, byte_21665
|
||||
out 71h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
push 70h ; 'p'
|
||||
push cs:word_474
|
||||
push cs:word_472
|
||||
nopcall dos_setvect
|
||||
in al, 0A1h ; Interrupt Controller #2, 8259A
|
||||
or al, byte_21664
|
||||
out 0A1h, al ; Interrupt Controller #2, 8259A
|
||||
sti
|
||||
|
||||
locret_4BC:
|
||||
retn
|
||||
; ---------------------------------------------------------------------------
|
||||
nop
|
||||
|
||||
loc_4BE:
|
||||
cli
|
||||
push 70h ; 'p'
|
||||
push cs
|
||||
push offset byte_51A
|
||||
nopcall dos_setvect
|
||||
mov cs:word_474, dx
|
||||
; ---------------------------------------------------------------------------
|
||||
db 2Eh
|
||||
byte_4D0 db 0A3h
|
||||
db 72h, 4, 0B4h, 0Ah, 0BBh, 4, 0F0h, 0E8h, 2Ch, 0, 0B0h
|
||||
db 0Bh, 0E6h, 70h, 0E4h, 71h, 0A2h, 25h, 3, 0Ch, 40h, 8Ah
|
||||
db 0E0h, 0B0h, 0Bh, 0E6h, 70h, 8Ah, 0C4h, 0E6h, 71h, 0E4h
|
||||
db 0A1h, 8Ah, 0E0h, 24h, 0FEh, 0E6h, 0A1h, 32h, 0C4h, 0A2h
|
||||
db 24h, 3, 0FBh, 0FAh, 0B0h, 0Ch
|
||||
byte_501 db 0E6h
|
||||
db 70h, 0E4h, 71h, 0FBh, 0C3h, 8Ah, 0C4h, 0E6h, 70h, 0E4h
|
||||
db 71h, 22h, 0C7h, 0Ah, 0C3h, 86h, 0E0h, 0E6h, 70h, 86h
|
||||
db 0E0h, 0E6h, 71h, 0C3h
|
||||
byte_51A db 50h, 1Eh, 0B8h
|
||||
dw seg dseg
|
||||
db 8Eh, 0D8h, 0FCh, 68h, 3Ch, 5, 83h, 3Eh, 20h, 3, 0
|
||||
byte_52A db 74h
|
||||
db 4
|
||||
byte_52C db 0FFh
|
||||
byte_52D db 36h
|
||||
db 20h
|
||||
byte_52F db 3
|
||||
byte_530 db 83h
|
||||
byte_531 db 3Eh
|
||||
byte_532 db 22h
|
||||
byte_533 db 3
|
||||
db 0, 74h, 4, 0FFh, 36h, 22h, 3, 0C3h, 80h, 3Eh, 24h, 3
|
||||
db 0, 1Fh, 75h, 6, 58h, 2Eh, 0FFh, 2Eh, 72h, 4, 0B0h, 20h
|
||||
db 0E6h
|
||||
byte_54D db 0A0h
|
||||
; ---------------------------------------------------------------------------
|
||||
out 20h, al ; Interrupt controller, 8259A.
|
||||
mov al, 0Ch
|
||||
out 70h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
in al, 71h ; CMOS Memory
|
||||
mov al, 0Ch
|
||||
out 70h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
in al, 71h ; CMOS Memory
|
||||
pop ax
|
||||
iret
|
||||
include libs/master.lib/atrtcmod.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
@ -3046,8 +2960,7 @@ sub_1C82 proc far
|
|||
mov word_2166C, ax
|
||||
mov word_21672, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
mov ah, es:byte_54D
|
||||
mov ah, byte ptr es:[54Dh]
|
||||
and ah, 4
|
||||
add ah, 3Fh ; '?'
|
||||
and ah, 40h
|
||||
|
@ -5959,7 +5872,7 @@ sub_39B8 proc far
|
|||
loc_39F2:
|
||||
mov ax, 3A64h
|
||||
mov bx, 0
|
||||
call loc_476
|
||||
call rtc_int_set
|
||||
retf
|
||||
sub_39B8 endp
|
||||
|
||||
|
@ -5986,7 +5899,7 @@ sub_39FC proc far
|
|||
loc_3A1B:
|
||||
mov ax, 0
|
||||
mov bx, 0
|
||||
call loc_476
|
||||
call rtc_int_set
|
||||
retf
|
||||
sub_39FC endp
|
||||
|
||||
|
@ -6112,8 +6025,7 @@ loc_3E44:
|
|||
loc_3EBC:
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
test es:byte_501, 80h
|
||||
test byte ptr es:[501h], 80h
|
||||
mov ax, 7CDh
|
||||
jnz short loc_3ECE
|
||||
mov ax, 99Ah
|
||||
|
@ -6162,8 +6074,7 @@ loc_3EEB:
|
|||
loc_3F22:
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
test es:byte_501, 80h
|
||||
test byte ptr es:[501h], 80h
|
||||
mov ax, 3E6h
|
||||
jnz short loc_3F34
|
||||
mov ax, 4CDh
|
||||
|
@ -36794,8 +36705,7 @@ sub_137A4 proc far
|
|||
; sub_E67A:loc_E703P ...
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
mov ah, es:byte_531
|
||||
mov ah, byte ptr es:[531h]
|
||||
test ah, 4
|
||||
jz short loc_137B7
|
||||
or word_24CB4, 1
|
||||
|
@ -36816,7 +36726,7 @@ loc_137CB:
|
|||
or word_24CB4, 8
|
||||
|
||||
loc_137D5:
|
||||
mov ah, es:byte_533
|
||||
mov ah, byte ptr es:[533h]
|
||||
test ah, 1
|
||||
jz short loc_137E4
|
||||
or word_24CB4, 8
|
||||
|
@ -36837,7 +36747,7 @@ loc_137F9:
|
|||
or word_24CB4, 800h
|
||||
|
||||
loc_13804:
|
||||
mov ah, es:byte_532
|
||||
mov ah, byte ptr es:[532h]
|
||||
test ah, 40h
|
||||
jz short loc_13813
|
||||
or word_24CB4, 4
|
||||
|
@ -36858,7 +36768,7 @@ loc_13828:
|
|||
or word_24CB4, 200h
|
||||
|
||||
loc_13833:
|
||||
mov ah, es:byte_52F
|
||||
mov ah, byte ptr es:[52Fh]
|
||||
test ah, 2
|
||||
jz short loc_13842
|
||||
or word_24CB4, 20h
|
||||
|
@ -36869,19 +36779,19 @@ loc_13842:
|
|||
or word_24CB4, 10h
|
||||
|
||||
loc_1384C:
|
||||
mov ah, es:byte_52C
|
||||
mov ah, byte ptr es:[52Ch]
|
||||
test ah, 1
|
||||
jz short loc_1385C
|
||||
or word_24CB4, 4000h
|
||||
|
||||
loc_1385C:
|
||||
mov ah, es:byte_52A
|
||||
mov ah, byte ptr es:[52Ah]
|
||||
test ah, 1
|
||||
jz short loc_1386C
|
||||
or word_24CB4, 1000h
|
||||
|
||||
loc_1386C:
|
||||
mov ah, es:byte_52D
|
||||
mov ah, byte ptr es:[52Dh]
|
||||
test ah, 10h
|
||||
jz short loc_1387C
|
||||
|
||||
|
@ -36889,7 +36799,7 @@ loc_13876:
|
|||
or word_24CB4, 2000h
|
||||
|
||||
loc_1387C:
|
||||
mov ah, es:byte_530
|
||||
mov ah, byte ptr es:[530h]
|
||||
test ah, 10h
|
||||
jz short loc_1388B
|
||||
or word_24CB4, 20h
|
||||
|
@ -37550,11 +37460,7 @@ aKao1_cd2 db 'KAO1.cd2',0
|
|||
db 20h
|
||||
db 20h
|
||||
db 20h
|
||||
word_2165E dw 0
|
||||
word_21660 dw 0
|
||||
word_21662 dw 0
|
||||
byte_21664 db 0
|
||||
byte_21665 db 0
|
||||
include libs/master.lib/atrtcmod[data].asm
|
||||
include libs/master.lib/bfnt_id[data].asm
|
||||
word_2166C dw 0
|
||||
word_2166E dw 27Fh
|
||||
|
|
124
th04_maine.asm
124
th04_maine.asm
|
@ -31,93 +31,7 @@ include libs/master.lib/bfnt_entry_pat.asm
|
|||
include libs/master.lib/bfnt_extend_header_skip.asm
|
||||
include libs/master.lib/bfnt_header_read.asm
|
||||
include libs/master.lib/bfnt_header_analysis.asm
|
||||
; ---------------------------------------------------------------------------
|
||||
word_472 dw 0
|
||||
word_474 dw 0
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_476:
|
||||
cmp bx, 2
|
||||
jnb short locret_4BC
|
||||
shl bx, 1
|
||||
mov [bx+0D0h], ax
|
||||
mov ax, word_E600
|
||||
or ax, word_E602
|
||||
add ax, 0FFFFh
|
||||
sbb ax, ax
|
||||
cmp ax, word_E5FE
|
||||
jz short locret_4BC
|
||||
mov word_E5FE, ax
|
||||
ja short loc_4BE
|
||||
cli
|
||||
mov al, 0Bh
|
||||
out 70h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
mov al, byte_E605
|
||||
out 71h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
push 70h ; 'p'
|
||||
push cs:word_474
|
||||
push cs:word_472
|
||||
nopcall dos_setvect
|
||||
in al, 0A1h ; Interrupt Controller #2, 8259A
|
||||
or al, byte_E604
|
||||
out 0A1h, al ; Interrupt Controller #2, 8259A
|
||||
sti
|
||||
|
||||
locret_4BC:
|
||||
retn
|
||||
; ---------------------------------------------------------------------------
|
||||
nop
|
||||
|
||||
loc_4BE:
|
||||
cli
|
||||
push 70h ; 'p'
|
||||
push cs
|
||||
push offset byte_51A
|
||||
nopcall dos_setvect
|
||||
mov cs:word_474, dx
|
||||
; ---------------------------------------------------------------------------
|
||||
db 2Eh
|
||||
byte_4D0 db 0A3h
|
||||
db 72h, 4, 0B4h, 0Ah, 0BBh, 4, 0F0h, 0E8h, 2Ch, 0, 0B0h
|
||||
db 0Bh, 0E6h, 70h, 0E4h, 71h, 0A2h, 0D5h, 0, 0Ch, 40h
|
||||
db 8Ah, 0E0h, 0B0h, 0Bh, 0E6h, 70h, 8Ah, 0C4h, 0E6h, 71h
|
||||
db 0E4h, 0A1h, 8Ah, 0E0h, 24h, 0FEh, 0E6h, 0A1h, 32h, 0C4h
|
||||
db 0A2h, 0D4h, 0, 0FBh, 0FAh, 0B0h, 0Ch
|
||||
byte_501 db 0E6h
|
||||
db 70h, 0E4h, 71h, 0FBh, 0C3h, 8Ah, 0C4h, 0E6h, 70h, 0E4h
|
||||
db 71h, 22h, 0C7h, 0Ah, 0C3h, 86h, 0E0h, 0E6h, 70h, 86h
|
||||
db 0E0h, 0E6h, 71h, 0C3h
|
||||
byte_51A db 50h, 1Eh, 0B8h
|
||||
dw seg dseg
|
||||
db 8Eh, 0D8h, 0FCh, 68h, 3Ch, 5, 83h, 3Eh, 0D0h, 2 dup(0)
|
||||
byte_52A db 74h
|
||||
db 4
|
||||
byte_52C db 0FFh
|
||||
byte_52D db 36h
|
||||
db 0D0h
|
||||
byte_52F db 0
|
||||
byte_530 db 83h
|
||||
byte_531 db 3Eh
|
||||
byte_532 db 0D2h
|
||||
byte_533 db 0
|
||||
db 0, 74h, 4, 0FFh, 36h, 0D2h, 0, 0C3h, 80h, 3Eh, 0D4h
|
||||
db 2 dup(0), 1Fh, 75h, 6, 58h, 2Eh, 0FFh, 2Eh, 72h, 4
|
||||
db 0B0h, 20h, 0E6h
|
||||
byte_54D db 0A0h
|
||||
; ---------------------------------------------------------------------------
|
||||
out 20h, al ; Interrupt controller, 8259A.
|
||||
mov al, 0Ch
|
||||
out 70h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
in al, 71h ; CMOS Memory
|
||||
mov al, 0Ch
|
||||
out 70h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
in al, 71h ; CMOS Memory
|
||||
pop ax
|
||||
iret
|
||||
include libs/master.lib/atrtcmod.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
@ -1499,8 +1413,7 @@ sub_113A proc far
|
|||
mov word_E60C, ax
|
||||
mov word_E612, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
mov ah, es:byte_54D
|
||||
mov ah, byte ptr es:[54Dh]
|
||||
and ah, 4
|
||||
add ah, 3Fh ; '?'
|
||||
and ah, 40h
|
||||
|
@ -3016,7 +2929,7 @@ sub_2FD4 proc far
|
|||
loc_300E:
|
||||
mov ax, 3080h
|
||||
mov bx, 0
|
||||
call loc_476
|
||||
call rtc_int_set
|
||||
retf
|
||||
sub_2FD4 endp
|
||||
|
||||
|
@ -3043,7 +2956,7 @@ sub_3018 proc far
|
|||
loc_3037:
|
||||
mov ax, 0
|
||||
mov bx, 0
|
||||
call loc_476
|
||||
call rtc_int_set
|
||||
retf
|
||||
sub_3018 endp
|
||||
|
||||
|
@ -3169,8 +3082,7 @@ loc_3460:
|
|||
loc_34D8:
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
test es:byte_501, 80h
|
||||
test byte ptr es:[501h], 80h
|
||||
mov ax, 7CDh
|
||||
jnz short loc_34EA
|
||||
mov ax, 99Ah
|
||||
|
@ -3219,8 +3131,7 @@ loc_3507:
|
|||
loc_353E:
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
test es:byte_501, 80h
|
||||
test byte ptr es:[501h], 80h
|
||||
mov ax, 3E6h
|
||||
jnz short loc_3550
|
||||
mov ax, 4CDh
|
||||
|
@ -21436,8 +21347,7 @@ sub_D492 proc far
|
|||
; sub_CE7A+18p ...
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
mov ah, es:byte_531
|
||||
mov ah, byte ptr es:[531h]
|
||||
test ah, 4
|
||||
jz short loc_D4A5
|
||||
or word_10072, 1
|
||||
|
@ -21458,7 +21368,7 @@ loc_D4B9:
|
|||
or word_10072, 8
|
||||
|
||||
loc_D4C3:
|
||||
mov ah, es:byte_533
|
||||
mov ah, byte ptr es:[533h]
|
||||
test ah, 1
|
||||
jz short loc_D4D2
|
||||
or word_10072, 8
|
||||
|
@ -21479,7 +21389,7 @@ loc_D4E7:
|
|||
or word_10072, 800h
|
||||
|
||||
loc_D4F2:
|
||||
mov ah, es:byte_532
|
||||
mov ah, byte ptr es:[532h]
|
||||
test ah, 40h
|
||||
jz short loc_D501
|
||||
or word_10072, 4
|
||||
|
@ -21500,7 +21410,7 @@ loc_D516:
|
|||
or word_10072, 200h
|
||||
|
||||
loc_D521:
|
||||
mov ah, es:byte_52F
|
||||
mov ah, byte ptr es:[52Fh]
|
||||
test ah, 2
|
||||
jz short loc_D530
|
||||
or word_10072, 20h
|
||||
|
@ -21511,25 +21421,25 @@ loc_D530:
|
|||
or word_10072, 10h
|
||||
|
||||
loc_D53A:
|
||||
mov ah, es:byte_52C
|
||||
mov ah, byte ptr es:[52Ch]
|
||||
test ah, 1
|
||||
jz short loc_D54A
|
||||
or word_10072, 4000h
|
||||
|
||||
loc_D54A:
|
||||
mov ah, es:byte_52A
|
||||
mov ah, byte ptr es:[52Ah]
|
||||
test ah, 1
|
||||
jz short loc_D55A
|
||||
or word_10072, 1000h
|
||||
|
||||
loc_D55A:
|
||||
mov ah, es:byte_52D
|
||||
mov ah, byte ptr es:[52Dh]
|
||||
test ah, 10h
|
||||
jz short loc_D56A
|
||||
or word_10072, 2000h
|
||||
|
||||
loc_D56A:
|
||||
mov ah, es:byte_530
|
||||
mov ah, byte ptr es:[530h]
|
||||
test ah, 10h
|
||||
jz short loc_D579
|
||||
or word_10072, 20h
|
||||
|
@ -23315,11 +23225,7 @@ aGameft_bft db 'GAMEFT.bft',0
|
|||
; char arg0[]
|
||||
arg0 db 'op',0
|
||||
db 0
|
||||
word_E5FE dw 0
|
||||
word_E600 dw 0
|
||||
word_E602 dw 0
|
||||
byte_E604 db 0
|
||||
byte_E605 db 0
|
||||
include libs/master.lib/atrtcmod[data].asm
|
||||
include libs/master.lib/bfnt_id[data].asm
|
||||
word_E60C dw 0
|
||||
word_E60E dw 27Fh
|
||||
|
|
131
th04_op.asm
131
th04_op.asm
|
@ -31,96 +31,7 @@ include libs/master.lib/bfnt_entry_pat.asm
|
|||
include libs/master.lib/bfnt_extend_header_skip.asm
|
||||
include libs/master.lib/bfnt_header_read.asm
|
||||
include libs/master.lib/bfnt_header_analysis.asm
|
||||
; ---------------------------------------------------------------------------
|
||||
word_472 dw 0
|
||||
word_474 dw 0
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_476:
|
||||
cmp bx, 2
|
||||
jnb short locret_4BC
|
||||
shl bx, 1
|
||||
mov [bx+502h], ax
|
||||
mov ax, word_F842
|
||||
or ax, word_F844
|
||||
add ax, 0FFFFh
|
||||
sbb ax, ax
|
||||
cmp ax, word_F840
|
||||
jz short locret_4BC
|
||||
|
||||
loc_493:
|
||||
mov word_F840, ax
|
||||
ja short loc_4BE
|
||||
cli
|
||||
mov al, 0Bh
|
||||
out 70h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
mov al, byte_F847
|
||||
out 71h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
push 70h ; 'p'
|
||||
push cs:word_474
|
||||
push cs:word_472
|
||||
nopcall dos_setvect
|
||||
in al, 0A1h ; Interrupt Controller #2, 8259A
|
||||
or al, byte_F846
|
||||
out 0A1h, al ; Interrupt Controller #2, 8259A
|
||||
sti
|
||||
|
||||
locret_4BC:
|
||||
retn
|
||||
; ---------------------------------------------------------------------------
|
||||
nop
|
||||
|
||||
loc_4BE:
|
||||
cli
|
||||
push 70h ; 'p'
|
||||
push cs
|
||||
push offset byte_51A
|
||||
nopcall dos_setvect
|
||||
mov cs:word_474, dx
|
||||
; ---------------------------------------------------------------------------
|
||||
db 2Eh
|
||||
byte_4D0 db 0A3h
|
||||
db 72h, 4, 0B4h, 0Ah, 0BBh, 4, 0F0h, 0E8h, 2Ch, 0, 0B0h
|
||||
db 0Bh, 0E6h, 70h, 0E4h, 71h, 0A2h, 7, 5, 0Ch, 40h, 8Ah
|
||||
db 0E0h, 0B0h, 0Bh, 0E6h, 70h, 8Ah, 0C4h, 0E6h, 71h, 0E4h
|
||||
db 0A1h, 8Ah, 0E0h, 24h, 0FEh, 0E6h, 0A1h, 32h, 0C4h, 0A2h
|
||||
db 6, 5, 0FBh, 0FAh, 0B0h
|
||||
byte_500 db 0Ch
|
||||
byte_501 db 0E6h
|
||||
db 70h, 0E4h, 71h, 0FBh, 0C3h, 8Ah, 0C4h, 0E6h, 70h, 0E4h
|
||||
db 71h, 22h, 0C7h, 0Ah, 0C3h, 86h, 0E0h, 0E6h, 70h, 86h
|
||||
db 0E0h, 0E6h, 71h, 0C3h
|
||||
byte_51A db 50h, 1Eh, 0B8h
|
||||
dw seg dseg
|
||||
db 8Eh, 0D8h, 0FCh, 68h, 3Ch, 5, 83h, 3Eh, 2, 5, 0
|
||||
byte_52A db 74h
|
||||
db 4
|
||||
byte_52C db 0FFh
|
||||
byte_52D db 36h
|
||||
db 2
|
||||
byte_52F db 5
|
||||
byte_530 db 83h
|
||||
byte_531 db 3Eh
|
||||
byte_532 db 4
|
||||
byte_533 db 5
|
||||
db 0, 74h, 4, 0FFh, 36h, 4, 5, 0C3h, 80h, 3Eh, 6, 5, 0
|
||||
db 1Fh, 75h, 6, 58h, 2Eh, 0FFh, 2Eh, 72h, 4, 0B0h, 20h
|
||||
db 0E6h
|
||||
byte_54D db 0A0h
|
||||
; ---------------------------------------------------------------------------
|
||||
out 20h, al ; Interrupt controller, 8259A.
|
||||
mov al, 0Ch
|
||||
out 70h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
in al, 71h ; CMOS Memory
|
||||
mov al, 0Ch
|
||||
out 70h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
in al, 71h ; CMOS Memory
|
||||
pop ax
|
||||
iret
|
||||
include libs/master.lib/atrtcmod.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
@ -1946,8 +1857,7 @@ sub_14E4 proc far
|
|||
mov word_F84E, ax
|
||||
mov word_F854, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
mov ah, es:byte_54D
|
||||
mov ah, byte ptr es:[54Dh]
|
||||
and ah, 4
|
||||
add ah, 3Fh ; '?'
|
||||
and ah, 40h
|
||||
|
@ -3762,7 +3672,7 @@ sub_3772 proc far
|
|||
loc_37AC:
|
||||
mov ax, 381Eh
|
||||
mov bx, 0
|
||||
call loc_476
|
||||
call rtc_int_set
|
||||
retf
|
||||
sub_3772 endp
|
||||
|
||||
|
@ -3789,7 +3699,7 @@ sub_37B6 proc far
|
|||
loc_37D5:
|
||||
mov ax, 0
|
||||
mov bx, 0
|
||||
call loc_476
|
||||
call rtc_int_set
|
||||
retf
|
||||
sub_37B6 endp
|
||||
|
||||
|
@ -3915,8 +3825,7 @@ loc_3BFE:
|
|||
loc_3C76:
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
test es:byte_501, 80h
|
||||
test byte ptr es:[501h], 80h
|
||||
mov ax, 7CDh
|
||||
jnz short loc_3C88
|
||||
mov ax, 99Ah
|
||||
|
@ -3965,8 +3874,7 @@ loc_3CA5:
|
|||
loc_3CDC:
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
test es:byte_501, 80h
|
||||
test byte ptr es:[501h], 80h
|
||||
mov ax, 3E6h
|
||||
jnz short loc_3CEE
|
||||
mov ax, 4CDh
|
||||
|
@ -23015,8 +22923,7 @@ sub_E1E4 proc far
|
|||
; sub_DB62+18p ...
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
mov ah, es:byte_531
|
||||
mov ah, byte ptr es:[531h]
|
||||
test ah, 4
|
||||
jz short loc_E1F7
|
||||
or word_11A50, 1
|
||||
|
@ -23037,7 +22944,7 @@ loc_E20B:
|
|||
or word_11A50, 8
|
||||
|
||||
loc_E215:
|
||||
mov ah, es:byte_533
|
||||
mov ah, byte ptr es:[533h]
|
||||
test ah, 1
|
||||
jz short loc_E224
|
||||
or word_11A50, 8
|
||||
|
@ -23058,7 +22965,7 @@ loc_E239:
|
|||
or word_11A50, 800h
|
||||
|
||||
loc_E244:
|
||||
mov ah, es:byte_532
|
||||
mov ah, byte ptr es:[532h]
|
||||
test ah, 40h
|
||||
jz short loc_E253
|
||||
or word_11A50, 4
|
||||
|
@ -23079,7 +22986,7 @@ loc_E268:
|
|||
or word_11A50, 200h
|
||||
|
||||
loc_E273:
|
||||
mov ah, es:byte_52F
|
||||
mov ah, byte ptr es:[52Fh]
|
||||
test ah, 2
|
||||
jz short loc_E282
|
||||
or word_11A50, 20h
|
||||
|
@ -23090,25 +22997,25 @@ loc_E282:
|
|||
or word_11A50, 10h
|
||||
|
||||
loc_E28C:
|
||||
mov ah, es:byte_52C
|
||||
mov ah, byte ptr es:[52Ch]
|
||||
test ah, 1
|
||||
jz short loc_E29C
|
||||
or word_11A50, 4000h
|
||||
|
||||
loc_E29C:
|
||||
mov ah, es:byte_52A
|
||||
mov ah, byte ptr es:[52Ah]
|
||||
test ah, 1
|
||||
jz short loc_E2AC
|
||||
or word_11A50, 1000h
|
||||
|
||||
loc_E2AC:
|
||||
mov ah, es:byte_52D
|
||||
mov ah, byte ptr es:[52Dh]
|
||||
test ah, 10h
|
||||
jz short loc_E2BC
|
||||
or word_11A50, 2000h
|
||||
|
||||
loc_E2BC:
|
||||
mov ah, es:byte_530
|
||||
mov ah, byte ptr es:[530h]
|
||||
test ah, 10h
|
||||
jz short loc_E2CB
|
||||
or word_11A50, 20h
|
||||
|
@ -23295,12 +23202,11 @@ sub_E3E8 proc near
|
|||
push es
|
||||
push 0
|
||||
pop es
|
||||
assume es:seg000
|
||||
pushf
|
||||
cli
|
||||
mov al, 80h ; ''
|
||||
out 7Ch, al
|
||||
mov byte ptr es:loc_493+2, al
|
||||
mov byte ptr es:[495h], al
|
||||
popf
|
||||
pop es
|
||||
assume es:nothing
|
||||
|
@ -25111,12 +25017,7 @@ asc_F7F7 db 0Ah
|
|||
db '空きメモリ不足です。メモリ空きを増やしてから実行してね',0Ah,0
|
||||
aGameft_bft db 'GAMEFT.bft',0
|
||||
aMiko db 'miko',0
|
||||
word_F840 dw 0
|
||||
; seg000:loc_493w
|
||||
word_F842 dw 0
|
||||
word_F844 dw 0
|
||||
byte_F846 db 0
|
||||
byte_F847 db 0
|
||||
include libs/master.lib/atrtcmod[data].asm
|
||||
include libs/master.lib/bfnt_id[data].asm
|
||||
word_F84E dw 0
|
||||
; sub_D3C+21r ...
|
||||
|
|
123
th05_main.asm
123
th05_main.asm
|
@ -30,94 +30,7 @@ include libs/BorlandC/c0.asm
|
|||
include libs/master.lib/bfnt_entry_pat.asm
|
||||
include libs/master.lib/bfnt_header_read.asm
|
||||
include libs/master.lib/bfnt_header_analysis.asm
|
||||
db 4 dup(0)
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_454:
|
||||
cmp bx, 2
|
||||
jnb short locret_49A
|
||||
shl bx, 1
|
||||
; ---------------------------------------------------------------------------
|
||||
db 89h
|
||||
byte_45C db 87h
|
||||
db 72h, 3, 0A1h, 72h, 3, 0Bh, 6, 74h, 3, 5, 2 dup(0FFh)
|
||||
db 1Bh, 0C0h, 3Bh, 6, 70h, 3, 74h, 29h, 0A3h, 70h, 3, 77h
|
||||
db 26h, 0FAh, 0B0h, 0Bh, 0E6h, 70h, 0A0h, 77h, 3, 0E6h
|
||||
db 71h, 6Ah, 70h, 2Eh, 0FFh, 36h, 52h, 4, 2Eh, 0FFh, 36h
|
||||
db 50h, 4, 90h, 0Eh, 0E8h, 97h, 3, 0E4h, 0A1h, 0Ah, 6
|
||||
db 76h, 3, 0E6h, 0A1h, 0FBh
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
locret_49A:
|
||||
retn
|
||||
; ---------------------------------------------------------------------------
|
||||
nop
|
||||
db 0FAh, 6Ah, 70h, 0Eh, 68h, 0F8h, 4, 90h, 0Eh, 0E8h, 80h
|
||||
db 3, 2Eh, 89h, 16h, 52h, 4, 2Eh, 0A3h, 50h, 4, 0B4h, 0Ah
|
||||
db 0BBh, 4, 0F0h, 0E8h, 2Ch, 0, 0B0h, 0Bh, 0E6h, 70h, 0E4h
|
||||
db 71h, 0A2h, 77h, 3, 0Ch, 40h, 8Ah, 0E0h, 0B0h, 0Bh, 0E6h
|
||||
db 70h, 8Ah, 0C4h, 0E6h, 71h, 0E4h, 0A1h
|
||||
byte_4D0 db 8Ah
|
||||
db 0E0h, 24h, 0FEh, 0E6h, 0A1h, 32h, 0C4h, 0A2h, 76h, 3
|
||||
db 0FBh, 0FAh, 0B0h, 0Ch, 0E6h, 70h, 0E4h, 71h, 0FBh, 0C3h
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
||||
sub_4E5 proc near
|
||||
mov al, ah
|
||||
out 70h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
in al, 71h ; CMOS Memory
|
||||
and al, bh
|
||||
or al, bl
|
||||
xchg ah, al
|
||||
out 70h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
xchg ah, al
|
||||
out 71h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
retn
|
||||
sub_4E5 endp
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
db 50h, 1Eh, 0B8h
|
||||
dw seg dseg
|
||||
db 8Eh, 0D8h, 0FCh, 68h
|
||||
byte_501 db 1Ah
|
||||
; ---------------------------------------------------------------------------
|
||||
add ax, 3E83h
|
||||
jb short loc_50A
|
||||
add [si+4], dh
|
||||
|
||||
loc_50A:
|
||||
push word_20D52
|
||||
cmp word_20D54, 0
|
||||
jz short locret_519
|
||||
push word_20D54
|
||||
|
||||
locret_519:
|
||||
retn
|
||||
; ---------------------------------------------------------------------------
|
||||
db 80h, 3Eh, 76h, 3, 0, 1Fh, 75h, 6, 58h, 2Eh, 0FFh, 2Eh
|
||||
db 50h, 4, 0B0h, 20h
|
||||
byte_52A db 0E6h
|
||||
db 0A0h
|
||||
byte_52C db 0E6h
|
||||
byte_52D db 20h
|
||||
db 0B0h
|
||||
byte_52F db 0Ch
|
||||
byte_530 db 0E6h
|
||||
byte_531 db 70h
|
||||
byte_532 db 0E4h
|
||||
byte_533 db 71h
|
||||
; ---------------------------------------------------------------------------
|
||||
mov al, 0Ch
|
||||
out 70h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
in al, 71h ; CMOS Memory
|
||||
pop ax
|
||||
iret
|
||||
include libs/master.lib/atrtcmod.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
@ -3200,7 +3113,6 @@ sub_1E14 proc far
|
|||
mov word_20D5E, ax
|
||||
mov word_20D64, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
mov ah, byte ptr es:[54Dh]
|
||||
and ah, 4
|
||||
add ah, 3Fh ; '?'
|
||||
|
@ -5868,7 +5780,7 @@ sub_3952 proc far
|
|||
loc_398C:
|
||||
mov ax, 39FEh
|
||||
mov bx, 0
|
||||
call loc_454
|
||||
call rtc_int_set
|
||||
retf
|
||||
sub_3952 endp
|
||||
|
||||
|
@ -5895,7 +5807,7 @@ sub_3996 proc far
|
|||
loc_39B5:
|
||||
mov ax, 0
|
||||
mov bx, 0
|
||||
call loc_454
|
||||
call rtc_int_set
|
||||
retf
|
||||
sub_3996 endp
|
||||
|
||||
|
@ -6022,8 +5934,7 @@ loc_3DDE:
|
|||
loc_3E56:
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
test es:byte_501, 80h
|
||||
test byte ptr es:[501h], 80h
|
||||
mov ax, 7CDh
|
||||
jnz short loc_3E68
|
||||
mov ax, 99Ah
|
||||
|
@ -6072,8 +5983,7 @@ loc_3E85:
|
|||
loc_3EBC:
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
test es:byte_501, 80h
|
||||
test byte ptr es:[501h], 80h
|
||||
mov ax, 3E6h
|
||||
jnz short loc_3ECE
|
||||
mov ax, 4CDh
|
||||
|
@ -37677,8 +37587,7 @@ sub_14FD6 proc far
|
|||
; sub_F1A6+E0P ...
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
mov ah, es:byte_531
|
||||
mov ah, byte ptr es:[531h]
|
||||
test ah, 4
|
||||
jz short loc_14FE9
|
||||
or byte ptr word_23A56, 1
|
||||
|
@ -37699,7 +37608,7 @@ loc_14FFD:
|
|||
or byte ptr word_23A56, 8
|
||||
|
||||
loc_15007:
|
||||
mov ah, es:byte_533
|
||||
mov ah, byte ptr es:[533h]
|
||||
test ah, 1
|
||||
jz short loc_15016
|
||||
or byte ptr word_23A56, 8
|
||||
|
@ -37720,7 +37629,7 @@ loc_1502A:
|
|||
or byte ptr word_23A56+1, 8
|
||||
|
||||
loc_15034:
|
||||
mov ah, es:byte_532
|
||||
mov ah, byte ptr es:[532h]
|
||||
test ah, 40h
|
||||
jz short loc_15043
|
||||
or byte ptr word_23A56, 4
|
||||
|
@ -37741,7 +37650,7 @@ loc_15057:
|
|||
or byte ptr word_23A56+1, 2
|
||||
|
||||
loc_15061:
|
||||
mov ah, es:byte_52F
|
||||
mov ah, byte ptr es:[52Fh]
|
||||
test ah, 2
|
||||
jz short loc_15070
|
||||
or byte ptr word_23A56, 20h
|
||||
|
@ -37752,25 +37661,25 @@ loc_15070:
|
|||
or byte ptr word_23A56, 10h
|
||||
|
||||
loc_1507A:
|
||||
mov ah, es:byte_52C
|
||||
mov ah, byte ptr es:[52Ch]
|
||||
test ah, 1
|
||||
jz short loc_15089
|
||||
or byte ptr word_23A56+1, 40h
|
||||
|
||||
loc_15089:
|
||||
mov ah, es:byte_52A
|
||||
mov ah, byte ptr es:[52Ah]
|
||||
test ah, 1
|
||||
jz short loc_15098
|
||||
or byte ptr word_23A56+1, 10h
|
||||
|
||||
loc_15098:
|
||||
mov ah, es:byte_52D
|
||||
mov ah, byte ptr es:[52Dh]
|
||||
test ah, 10h
|
||||
jz short loc_150A7
|
||||
or byte ptr word_23A56+1, 20h
|
||||
|
||||
loc_150A7:
|
||||
mov ah, es:byte_530
|
||||
mov ah, byte ptr es:[530h]
|
||||
test ah, 10h
|
||||
jz short loc_150B6
|
||||
or byte ptr word_23A56, 20h
|
||||
|
@ -38451,11 +38360,7 @@ aKao3_cd2 db 'KAO3.cd2',0
|
|||
db 20h
|
||||
db 20h
|
||||
db 20h
|
||||
dw 0
|
||||
word_20D52 dw 0
|
||||
word_20D54 dw 0
|
||||
db 0
|
||||
db 0
|
||||
include libs/master.lib/atrtcmod[data].asm
|
||||
include libs/master.lib/bfnt_id[data].asm
|
||||
word_20D5E dw 0
|
||||
word_20D60 dw 27Fh
|
||||
|
|
131
th05_maine.asm
131
th05_maine.asm
|
@ -30,97 +30,7 @@ include libs/BorlandC/c0.asm
|
|||
include libs/master.lib/bfnt_entry_pat.asm
|
||||
include libs/master.lib/bfnt_header_read.asm
|
||||
include libs/master.lib/bfnt_header_analysis.asm
|
||||
db 4 dup(0)
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_454:
|
||||
cmp bx, 2
|
||||
jnb short locret_49A
|
||||
shl bx, 1
|
||||
; ---------------------------------------------------------------------------
|
||||
db 89h
|
||||
byte_45C db 87h
|
||||
db 0BEh, 1, 0A1h, 0BEh, 1, 0Bh, 6, 0C0h, 1, 5, 2 dup(0FFh)
|
||||
db 1Bh, 0C0h, 3Bh, 6, 0BCh, 1, 74h, 29h, 0A3h, 0BCh, 1
|
||||
db 77h, 26h, 0FAh, 0B0h, 0Bh, 0E6h, 70h, 0A0h, 0C3h, 1
|
||||
db 0E6h, 71h, 6Ah, 70h, 2Eh, 0FFh, 36h, 52h, 4, 2Eh, 0FFh
|
||||
db 36h, 50h, 4, 90h, 0Eh, 0E8h, 73h, 3, 0E4h, 0A1h, 0Ah
|
||||
db 6
|
||||
byte_495 db 0C2h
|
||||
db 1, 0E6h, 0A1h, 0FBh
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
locret_49A:
|
||||
retn
|
||||
; ---------------------------------------------------------------------------
|
||||
nop
|
||||
db 0FAh, 6Ah, 70h, 0Eh, 68h, 0F8h, 4, 90h, 0Eh, 0E8h, 5Ch
|
||||
db 3, 2Eh, 89h, 16h, 52h, 4, 2Eh, 0A3h, 50h, 4, 0B4h, 0Ah
|
||||
db 0BBh, 4, 0F0h, 0E8h, 2Ch, 0, 0B0h, 0Bh, 0E6h, 70h, 0E4h
|
||||
db 71h, 0A2h, 0C3h, 1, 0Ch, 40h, 8Ah, 0E0h, 0B0h, 0Bh
|
||||
db 0E6h, 70h, 8Ah, 0C4h, 0E6h, 71h, 0E4h, 0A1h
|
||||
byte_4D0 db 8Ah
|
||||
db 0E0h, 24h, 0FEh, 0E6h, 0A1h, 32h, 0C4h, 0A2h, 0C2h
|
||||
db 1, 0FBh, 0FAh, 0B0h, 0Ch, 0E6h, 70h, 0E4h, 71h, 0FBh
|
||||
db 0C3h
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
||||
sub_4E5 proc near
|
||||
mov al, ah
|
||||
out 70h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
in al, 71h ; CMOS Memory
|
||||
and al, bh
|
||||
or al, bl
|
||||
xchg ah, al
|
||||
out 70h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
xchg ah, al
|
||||
out 71h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
retn
|
||||
sub_4E5 endp
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
db 50h, 1Eh, 0B8h
|
||||
dw seg dseg
|
||||
db 8Eh, 0D8h, 0FCh, 68h
|
||||
byte_501 db 1Ah
|
||||
; ---------------------------------------------------------------------------
|
||||
add ax, 3E83h
|
||||
mov si, 1
|
||||
jz short loc_50E
|
||||
push word_102BE
|
||||
|
||||
loc_50E:
|
||||
cmp word_102C0, 0
|
||||
jz short locret_519
|
||||
push word_102C0
|
||||
|
||||
locret_519:
|
||||
retn
|
||||
; ---------------------------------------------------------------------------
|
||||
db 80h, 3Eh, 0C2h, 1, 0, 1Fh, 75h, 6, 58h, 2Eh, 0FFh, 2Eh
|
||||
db 50h, 4, 0B0h, 20h
|
||||
byte_52A db 0E6h
|
||||
db 0A0h
|
||||
byte_52C db 0E6h
|
||||
byte_52D db 20h
|
||||
db 0B0h
|
||||
byte_52F db 0Ch
|
||||
byte_530 db 0E6h
|
||||
byte_531 db 70h
|
||||
byte_532 db 0E4h
|
||||
byte_533 db 71h
|
||||
; ---------------------------------------------------------------------------
|
||||
mov al, 0Ch
|
||||
out 70h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
in al, 71h ; CMOS Memory
|
||||
pop ax
|
||||
iret
|
||||
include libs/master.lib/atrtcmod.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
@ -1724,7 +1634,6 @@ sub_12B4 proc far
|
|||
mov word_102CA, ax
|
||||
mov word_102D0, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
mov ah, byte ptr es:[54Dh]
|
||||
and ah, 4
|
||||
add ah, 3Fh ; '?'
|
||||
|
@ -3462,7 +3371,7 @@ sub_315A proc far
|
|||
loc_3194:
|
||||
mov ax, 3206h
|
||||
mov bx, 0
|
||||
call loc_454
|
||||
call rtc_int_set
|
||||
retf
|
||||
sub_315A endp
|
||||
|
||||
|
@ -3489,7 +3398,7 @@ sub_319E proc far
|
|||
loc_31BD:
|
||||
mov ax, 0
|
||||
mov bx, 0
|
||||
call loc_454
|
||||
call rtc_int_set
|
||||
retf
|
||||
sub_319E endp
|
||||
|
||||
|
@ -3615,8 +3524,7 @@ loc_35E6:
|
|||
loc_365E:
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
test es:byte_501, 80h
|
||||
test byte ptr es:[501h], 80h
|
||||
mov ax, 7CDh
|
||||
jnz short loc_3670
|
||||
mov ax, 99Ah
|
||||
|
@ -3665,8 +3573,7 @@ loc_368D:
|
|||
loc_36C4:
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
test es:byte_501, 80h
|
||||
test byte ptr es:[501h], 80h
|
||||
mov ax, 3E6h
|
||||
jnz short loc_36D6
|
||||
mov ax, 4CDh
|
||||
|
@ -25315,8 +25222,7 @@ sub_F0FC endp ; sp-analysis failed
|
|||
sub_F104 proc far
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
mov ah, es:byte_531
|
||||
mov ah, byte ptr es:[531h]
|
||||
test ah, 4
|
||||
jz short loc_F117
|
||||
or byte ptr word_12AFA, 1
|
||||
|
@ -25337,7 +25243,7 @@ loc_F12B:
|
|||
or byte ptr word_12AFA, 8
|
||||
|
||||
loc_F135:
|
||||
mov ah, es:byte_533
|
||||
mov ah, byte ptr es:[533h]
|
||||
test ah, 1
|
||||
jz short loc_F144
|
||||
or byte ptr word_12AFA, 8
|
||||
|
@ -25358,7 +25264,7 @@ loc_F158:
|
|||
or byte ptr word_12AFA+1, 8
|
||||
|
||||
loc_F162:
|
||||
mov ah, es:byte_532
|
||||
mov ah, byte ptr es:[532h]
|
||||
test ah, 40h
|
||||
jz short loc_F171
|
||||
or byte ptr word_12AFA, 4
|
||||
|
@ -25379,7 +25285,7 @@ loc_F185:
|
|||
or byte ptr word_12AFA+1, 2
|
||||
|
||||
loc_F18F:
|
||||
mov ah, es:byte_52F
|
||||
mov ah, byte ptr es:[52Fh]
|
||||
test ah, 2
|
||||
jz short loc_F19E
|
||||
or byte ptr word_12AFA, 20h
|
||||
|
@ -25390,25 +25296,25 @@ loc_F19E:
|
|||
or byte ptr word_12AFA, 10h
|
||||
|
||||
loc_F1A8:
|
||||
mov ah, es:byte_52C
|
||||
mov ah, byte ptr es:[52Ch]
|
||||
test ah, 1
|
||||
jz short loc_F1B7
|
||||
or byte ptr word_12AFA+1, 40h
|
||||
|
||||
loc_F1B7:
|
||||
mov ah, es:byte_52A
|
||||
mov ah, byte ptr es:[52Ah]
|
||||
test ah, 1
|
||||
jz short loc_F1C6
|
||||
or byte ptr word_12AFA+1, 10h
|
||||
|
||||
loc_F1C6:
|
||||
mov ah, es:byte_52D
|
||||
mov ah, byte ptr es:[52Dh]
|
||||
test ah, 10h
|
||||
jz short loc_F1D5
|
||||
or byte ptr word_12AFA+1, 20h
|
||||
|
||||
loc_F1D5:
|
||||
mov ah, es:byte_530
|
||||
mov ah, byte ptr es:[530h]
|
||||
test ah, 10h
|
||||
jz short loc_F1E4
|
||||
or byte ptr word_12AFA, 20h
|
||||
|
@ -25862,12 +25768,11 @@ sub_F478 proc near
|
|||
push es
|
||||
push 0
|
||||
pop es
|
||||
assume es:seg000
|
||||
pushf
|
||||
cli
|
||||
mov al, 80h ; '€'
|
||||
out 7Ch, al
|
||||
mov es:byte_495, al
|
||||
mov es:[495h], al
|
||||
popf
|
||||
pop es
|
||||
assume es:nothing
|
||||
|
@ -27393,13 +27298,7 @@ arg0 db 'op',0
|
|||
db 20h
|
||||
db 20h
|
||||
db 20h
|
||||
db 0
|
||||
db 0
|
||||
word_102BE dw 0
|
||||
word_102C0 dw 0
|
||||
; seg000:0515r
|
||||
db 0
|
||||
db 0
|
||||
include libs/master.lib/atrtcmod[data].asm
|
||||
include libs/master.lib/bfnt_id[data].asm
|
||||
word_102CA dw 0
|
||||
; sub_DCC+2Dw ...
|
||||
|
|
128
th05_op.asm
128
th05_op.asm
|
@ -30,96 +30,7 @@ include libs/BorlandC/c0.asm
|
|||
include libs/master.lib/bfnt_entry_pat.asm
|
||||
include libs/master.lib/bfnt_header_read.asm
|
||||
include libs/master.lib/bfnt_header_analysis.asm
|
||||
db 4 dup(0)
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_454:
|
||||
cmp bx, 2
|
||||
jnb short locret_49A
|
||||
shl bx, 1
|
||||
; ---------------------------------------------------------------------------
|
||||
db 89h
|
||||
byte_45C db 87h
|
||||
db 0D4h, 4, 0A1h, 0D4h, 4, 0Bh, 6, 0D6h, 4, 5, 2 dup(0FFh)
|
||||
db 1Bh, 0C0h, 3Bh, 6, 0D2h, 4, 74h, 29h, 0A3h, 0D2h, 4
|
||||
db 77h, 26h, 0FAh, 0B0h, 0Bh, 0E6h, 70h, 0A0h, 0D9h, 4
|
||||
db 0E6h, 71h, 6Ah, 70h, 2Eh, 0FFh, 36h, 52h, 4, 2Eh, 0FFh
|
||||
db 36h, 50h, 4, 90h, 0Eh, 0E8h, 65h, 3, 0E4h, 0A1h, 0Ah
|
||||
db 6
|
||||
byte_495 db 0D8h
|
||||
db 4, 0E6h, 0A1h, 0FBh
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
locret_49A:
|
||||
retn
|
||||
; ---------------------------------------------------------------------------
|
||||
nop
|
||||
db 0FAh, 6Ah, 70h, 0Eh, 68h, 0F8h, 4, 90h, 0Eh, 0E8h, 4Eh
|
||||
db 3, 2Eh, 89h, 16h, 52h, 4, 2Eh, 0A3h, 50h, 4, 0B4h, 0Ah
|
||||
db 0BBh, 4, 0F0h, 0E8h, 2Ch, 0, 0B0h, 0Bh, 0E6h, 70h, 0E4h
|
||||
db 71h, 0A2h, 0D9h, 4, 0Ch, 40h, 8Ah, 0E0h, 0B0h, 0Bh
|
||||
db 0E6h, 70h, 8Ah, 0C4h, 0E6h, 71h, 0E4h, 0A1h
|
||||
byte_4D0 db 8Ah
|
||||
db 0E0h, 24h, 0FEh, 0E6h, 0A1h, 32h, 0C4h, 0A2h, 0D8h
|
||||
db 4, 0FBh, 0FAh, 0B0h, 0Ch, 0E6h, 70h, 0E4h, 71h, 0FBh
|
||||
db 0C3h
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
||||
sub_4E5 proc near
|
||||
mov al, ah
|
||||
out 70h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
in al, 71h ; CMOS Memory
|
||||
and al, bh
|
||||
or al, bl
|
||||
xchg ah, al
|
||||
out 70h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
xchg ah, al
|
||||
out 71h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
retn
|
||||
sub_4E5 endp
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
db 50h, 1Eh, 0B8h
|
||||
dw seg dseg
|
||||
db 8Eh, 0D8h, 0FCh
|
||||
byte_500 db 68h
|
||||
byte_501 db 1Ah
|
||||
; ---------------------------------------------------------------------------
|
||||
add ax, 3E83h
|
||||
aam 4
|
||||
add [si+4], dh
|
||||
push word_F4B4
|
||||
cmp word_F4B6, 0
|
||||
jz short locret_519
|
||||
push word_F4B6
|
||||
|
||||
locret_519:
|
||||
retn
|
||||
; ---------------------------------------------------------------------------
|
||||
db 80h, 3Eh, 0D8h, 4, 0, 1Fh, 75h, 6, 58h, 2Eh, 0FFh, 2Eh
|
||||
db 50h, 4, 0B0h, 20h
|
||||
byte_52A db 0E6h
|
||||
db 0A0h
|
||||
byte_52C db 0E6h
|
||||
byte_52D db 20h
|
||||
db 0B0h
|
||||
byte_52F db 0Ch
|
||||
byte_530 db 0E6h
|
||||
byte_531 db 70h
|
||||
byte_532 db 0E4h
|
||||
byte_533 db 71h
|
||||
; ---------------------------------------------------------------------------
|
||||
mov al, 0Ch
|
||||
out 70h, al ; CMOS Memory:
|
||||
; used by real-time clock
|
||||
in al, 71h ; CMOS Memory
|
||||
pop ax
|
||||
iret
|
||||
include libs/master.lib/atrtcmod.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
@ -1455,7 +1366,6 @@ sub_11C8 proc far
|
|||
mov word_F4C0, ax
|
||||
mov word_F4C6, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
mov ah, byte ptr es:[54Dh]
|
||||
and ah, 4
|
||||
add ah, 3Fh ; '?'
|
||||
|
@ -2882,7 +2792,7 @@ sub_2F92 proc far
|
|||
loc_2FCC:
|
||||
mov ax, 303Eh
|
||||
mov bx, 0
|
||||
call loc_454
|
||||
call rtc_int_set
|
||||
retf
|
||||
sub_2F92 endp
|
||||
|
||||
|
@ -2909,7 +2819,7 @@ sub_2FD6 proc far
|
|||
loc_2FF5:
|
||||
mov ax, 0
|
||||
mov bx, 0
|
||||
call loc_454
|
||||
call rtc_int_set
|
||||
retf
|
||||
sub_2FD6 endp
|
||||
|
||||
|
@ -3035,8 +2945,7 @@ loc_341E:
|
|||
loc_3496:
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
test es:byte_501, 80h
|
||||
test byte ptr es:[501h], 80h
|
||||
mov ax, 7CDh
|
||||
jnz short loc_34A8
|
||||
mov ax, 99Ah
|
||||
|
@ -3085,8 +2994,7 @@ loc_34C5:
|
|||
loc_34FC:
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
test es:byte_501, 80h
|
||||
test byte ptr es:[501h], 80h
|
||||
mov ax, 3E6h
|
||||
jnz short loc_350E
|
||||
mov ax, 4CDh
|
||||
|
@ -22914,8 +22822,7 @@ sub_DF8E endp ; sp-analysis failed
|
|||
sub_DF96 proc far
|
||||
xor ax, ax
|
||||
mov es, ax
|
||||
assume es:seg000
|
||||
mov ah, es:byte_531
|
||||
mov ah, byte ptr es:[531h]
|
||||
test ah, 4
|
||||
jz short loc_DFA9
|
||||
or byte ptr word_12A72, 1
|
||||
|
@ -22936,7 +22843,7 @@ loc_DFBD:
|
|||
or byte ptr word_12A72, 8
|
||||
|
||||
loc_DFC7:
|
||||
mov ah, es:byte_533
|
||||
mov ah, byte ptr es:[533h]
|
||||
test ah, 1
|
||||
jz short loc_DFD6
|
||||
or byte ptr word_12A72, 8
|
||||
|
@ -22957,7 +22864,7 @@ loc_DFEA:
|
|||
or byte ptr word_12A72+1, 8
|
||||
|
||||
loc_DFF4:
|
||||
mov ah, es:byte_532
|
||||
mov ah, byte ptr es:[532h]
|
||||
test ah, 40h
|
||||
jz short loc_E003
|
||||
or byte ptr word_12A72, 4
|
||||
|
@ -22978,7 +22885,7 @@ loc_E017:
|
|||
or byte ptr word_12A72+1, 2
|
||||
|
||||
loc_E021:
|
||||
mov ah, es:byte_52F
|
||||
mov ah, byte ptr es:[52Fh]
|
||||
test ah, 2
|
||||
jz short loc_E030
|
||||
or byte ptr word_12A72, 20h
|
||||
|
@ -22989,25 +22896,25 @@ loc_E030:
|
|||
or byte ptr word_12A72, 10h
|
||||
|
||||
loc_E03A:
|
||||
mov ah, es:byte_52C
|
||||
mov ah, byte ptr es:[52Ch]
|
||||
test ah, 1
|
||||
jz short loc_E049
|
||||
or byte ptr word_12A72+1, 40h
|
||||
|
||||
loc_E049:
|
||||
mov ah, es:byte_52A
|
||||
mov ah, byte ptr es:[52Ah]
|
||||
test ah, 1
|
||||
jz short loc_E058
|
||||
or byte ptr word_12A72+1, 10h
|
||||
|
||||
loc_E058:
|
||||
mov ah, es:byte_52D
|
||||
mov ah, byte ptr es:[52Dh]
|
||||
test ah, 10h
|
||||
jz short loc_E067
|
||||
or byte ptr word_12A72+1, 20h
|
||||
|
||||
loc_E067:
|
||||
mov ah, es:byte_530
|
||||
mov ah, byte ptr es:[530h]
|
||||
test ah, 10h
|
||||
jz short loc_E076
|
||||
or byte ptr word_12A72, 20h
|
||||
|
@ -23530,12 +23437,11 @@ sub_E354 proc near
|
|||
push es
|
||||
push 0
|
||||
pop es
|
||||
assume es:seg000
|
||||
pushf
|
||||
cli
|
||||
mov al, 80h ; ''
|
||||
out 7Ch, al
|
||||
mov es:byte_495, al
|
||||
mov es:[495h], al
|
||||
popf
|
||||
pop es
|
||||
assume es:nothing
|
||||
|
@ -24953,11 +24859,7 @@ aKaikidan1_dat0 db '
|
|||
aNotEnoughMem db 0Ah
|
||||
db '空きメモリ不足です。メモリ空きを増やしてから実行してね',0Ah,0
|
||||
db 0
|
||||
dw 0
|
||||
word_F4B4 dw 0
|
||||
word_F4B6 dw 0
|
||||
db 0
|
||||
db 0
|
||||
include libs/master.lib/atrtcmod[data].asm
|
||||
include libs/master.lib/bfnt_id[data].asm
|
||||
word_F4C0 dw 0
|
||||
word_F4C2 dw 27Fh
|
||||
|
|
Loading…
Reference in New Issue