0363
80
OE
OOAO
R
01
0368 26:
80
27
7F
036C
E8
0000 E
036F
OC
40
0371
E8
0000
0374
E4
61
0376
24
F7
0378
E6
61
037A
037A
E8
0000
0370
90
037E
F8
037F
OR
AND
CALL
OR
CALL
IN
AND
OUT
POSTL3:
CALL
POPF
CLC
POSTLEXIT:
RTCWAILFLAG,INTERVALWAIT ;
SET
INTVL
POST
ACT
BYTE
PTR
ES:
[BX-,NOT POSTED;
RST
POST
FLAG
GELRTCREG
GET
MODE
AL,PILENABLE
ENABLE
RTC
PERIODIC
IRPT
PULRTCREG
SET
MODE
AL,NMLCNTL
ENABLE
ALARM
INTERRUPT
AL,NOT
DIS-.ALARM
NMLCNTL,AL
ENBL
RTC
ALARM
AND
SUSP
NMIS
RESTORE
INTERRUPT
STATUS
SET
GOOD
RETURN
037
F
C3
0380
RET
POSLINTV
ENDP
Wait Interval Services (WAIT _INTV)
; ----------------------------- ------ ------- ---
--
- - - - - - - - - --
--
- - - - - --
--
INT
15H
ROUTINE-NAME:
WAILINTV
(AH
=
86H)
FUNCTION:
WAIT
FOR
ELAPSED
TIME
TO
EXPIRE
BEFORE
PASSING
CONTROL
THE
USER.
THIS
FUNCTION
USES
THE
RTC
PERIODI
C
IRPT
AND
WAIT
ON
EXTERNAL
EVENT
TO
CONSERVE
BATTERY
POWER.
INPUT:
CX,DX
NUMBER
OF
MICROSECONDS
TO
ELAPSE
BEFORE
RETURNING.
OUTPUT:
RETURN
WITH
CARRY
CLEAR
DONE
AFTER
ELAPSED
TIME
REACHED.
REGISTERS
MODIFIED:
AX
0380
0380
F6
06
OOAO
R
01
0385
74
04
0387
F9
0388
EB
50
90
038B
038B
9C
038C
E8
0000 E
038F
8C
IE
009A
R
0393
C7
06
0098 R
OOAO
R
0399
89
OE
009E
R
039D
89
16
00ge R
03Al
80
OE
OOAO
R
01
03A6
80
26
OOAO
R 7 F
03AB
B4
OB
03AD
E8
0000
03BO
OC
40
03B2
E8
0000
03B5
E4
61
03B7
24
F7
03B9
E6
61
03BB
E8
0000
03BE
9D
WAILINTV
TEST
JZ
STC
JMP
WAILl:
PUSHF
CALL
MOV
MOV
MOV
MOV
OR
AND
MOV
CALL
OR
CALL
IN
AND
OUT
CALL
POPF
PROC
NEAR
RTCWAILFLAG, INTERVAL_WAIT;
TEST
INTERVAL
ACTIVE
WAILI
WINTLEXIT
DISABLE_NMI
;
SET
ERROR
;
RETURN
USEILFLAG...SEG,DS
;
SET
UP
TRANSFER
TABLE
US
ER_FLAG,
0
FFS
ET
RTCWA
I LFLAG
RTCHIGH,CX
RTCLOW,DX
RTCWAILFLAG, INTERVAL_WAIT;
SET
FUNCTION
ACTIVE
RTCWAILFLAG,NOT POSTED;
RESET
POST
FLAG
AH,
RTCMODE
GET
MODE
REGISTER
GELRTCREG
AL, PI
E_ENABLE
PULRTCREG
AL,NMLCNTL
AL,NOT
DIS-.ALARM
NMLCNTL,AL
ENABLE_NMI
ENABLE
RTC
PERIODIC
IRPT
SET
MODE
ENABLE
ALARM
INTERRUPT
RE-ENABLE
NMI'S
RESTORE
FLAGS
WAIT
ON
EXTERNAL
EVENT
TO
CONSERVE
BATTERY
PWR
FOR
THE
ALLOTTED
TIME
2-186
ROM
BIOS