From 54ceaad556925e66308a0c67514c77b5303c8769 Mon Sep 17 00:00:00 2001 From: nmlgc Date: Tue, 26 Aug 2014 07:25:43 +0200 Subject: [PATCH] [Reduction] #184-186: RTC interrupt manager --- libs/master.lib/atrtcmod.asm | 223 +++++++++++++++++++++++++++++ libs/master.lib/atrtcmod[data].asm | 4 + th04_main.asm | 124 ++-------------- th04_maine.asm | 124 ++-------------- th04_op.asm | 131 +++-------------- th05_main.asm | 123 ++-------------- th05_maine.asm | 131 ++--------------- th05_op.asm | 128 ++--------------- 8 files changed, 317 insertions(+), 671 deletions(-) create mode 100644 libs/master.lib/atrtcmod.asm create mode 100644 libs/master.lib/atrtcmod[data].asm diff --git a/libs/master.lib/atrtcmod.asm b/libs/master.lib/atrtcmod.asm new file mode 100644 index 00000000..2e8008f9 --- /dev/null +++ b/libs/master.lib/atrtcmod.asm @@ -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 diff --git a/libs/master.lib/atrtcmod[data].asm b/libs/master.lib/atrtcmod[data].asm new file mode 100644 index 00000000..7a204704 --- /dev/null +++ b/libs/master.lib/atrtcmod[data].asm @@ -0,0 +1,4 @@ +InSLot dw 0 +Slot dw MAX_SLOT dup (0) +org_rtc_mask db 0 +org_rtc_b db 0 diff --git a/th04_main.asm b/th04_main.asm index 9bf8f6fc..0a1de0c7 100644 --- a/th04_main.asm +++ b/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 diff --git a/th04_maine.asm b/th04_maine.asm index cd5983e2..9d447c26 100644 --- a/th04_maine.asm +++ b/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 diff --git a/th04_op.asm b/th04_op.asm index 0d69325c..8417c425 100644 --- a/th04_op.asm +++ b/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 '󂫃słB󂫂𑝂₵ĂsĂ',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 ... diff --git a/th05_main.asm b/th05_main.asm index 69d5c730..5ff3550e 100644 --- a/th05_main.asm +++ b/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 diff --git a/th05_maine.asm b/th05_maine.asm index 08114226..e7e271d8 100644 --- a/th05_maine.asm +++ b/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 ... diff --git a/th05_op.asm b/th05_op.asm index 242474b0..ffde519e 100644 --- a/th05_op.asm +++ b/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 '󂫃słB󂫂𑝂₵ĂsĂ',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