IBM PC CONVERTIBLE Technical Reference page 187

Table of Contents

Advertisement

0212
0212
IE
0213
28 CO
0215
A2 0070 R
0218
A3 006C R
021B
A3 006E R
021E
B4 OE
0220
E8 0000
0223
24 84
0225
75 56
0227
F8
0228
B4 02
022A
CD lA
022C
72 3F
022E
80 FE 59
0231
77 3E
0233
80 F9 59
0236
77 39
0238
80 FD 23
023B
77 34
0230
8A C6
023F
E8 0286 R
0242
B3 12
0244
F6 E3
0246
8B DO
0248
8A Cl
024A
E8 0286
0240
BB 0444
0250
52
0251
F7 E3
0253
5A
0254
03 DO
******'It*********************************************** ***************
ROUTINE-NAME:
SELTOD
FUNCTION:
SET TIMER DATA AREA FROM RTC TIME OR INITIAL TO ZERO
(FOR
COLD~DE)
ENTRY CONDITIONS:
PURPOSE OF ENTRY: SET TIMER DATA AREA
INPUT CONDITIONS: NONE
RESTRI CTI ONS:
NONE
EXIT CONDITIONS:
NORMAL EXIT CONDITIONS: TIMER DATA AREA SET FROM RTC TIME
ERROR EXIT CONDITIONS:
TIMER DATA AREA SET TO ZERO
REGISTERS MODIFIED:
AX RETURNS STATUS CODE FOR DISPATCHER
AX = 4000
NON-FATAL ERROR
AX = 0
GOOD
INTERRUPTS:
LEFT AS ARE
INTERNALLY REFERENCED ROUTINES: CVLBINARY
EXTERNALLY REFERENCED ROUTINES: DDS, GELRTCNMI, PULRTCNMI,
INLIA
*********************************************************************
SELTOO PROC
NEAR
PUSH
OS
;-------RESET TIMER DATA AREA
SUB
AX,AX
MaY
TIMER_OFL,AL
MOV
TIMER_LOW,AX
MaV
TIMEILHIGH,AX
MOY
AH,RTCOIAG_STAT
CALL
GELRTCNMI
SAVE SEGMENT
RESET
TIMER
DATA
AREA
ADDRESS AND
; GET RTCDIAI'--STAT (RegE)
AND
AL, RTCTIMLBAD+RTCFAILED
TIME BAD OR CLOCK ERROR?
JNZ
TOD_NOTSET
YES.
TIMER SET TO ZERO
; -------GET RTC TIME
CLC
SET CF=O "NO ERROR" STATE
MOV
AH,GELRTCTIME
FOR INLIA, AH=2=GET RTC
INT
lAH
GET RTC TIME: CH=H CL=M DH=S
JC
SELRET
IF CF=I, NML RETURN.
CF=1
CLK NOT OPERATING (UIP=I)
;-------CHECK VALIDITY OF RTC TIME
CMP
DH,SECMALLIMIT
IF RTCTSEC NOT IN LIMITS
JA
BAD_TIME
THEN RETURN
CMP
CL, MIN_MALL I MIT
IF RTCTMIN NOT IN LIMITS
JA
BAD_TIME
THEN RETURN
CMP
CH,HRS~ALLIMIT
IF RTCTHRS NOT IN LIMITS
JA
BAD_TIME
THEN RETURN
;-------SET TIMER FROM RTC TIME
MOV
AL,DH
BCD TSEC INTO AL
CALL
CVT_BINARY
BINARY TSEC RETURNED IN AL
MOV
BL, COUNTS_SEC
BL
<--
#
OF COUNTS PER SEC
MUL
BL
AX
<--
#
OF CNTS IN RTCTSEC
MOV
DX,AX
OX IS TOTAL-CNTS ACCUMULATOR
MOV
AL,CL
BCD TMIN INTO AL
CALL
CVLBINARY
BINARY TMIN RETURNED IN AL
MOV
BX,
COUNTS~I
N
BX
<--
#
OF COUNTS PER MIN
PUSH
OX
SAVE TOTAL
MUL
BX
AX
<--
#
OF CNTS IN RTCTMIN
POP
OX
RETRI EVE TOTAL
ADD
DX,AX
ADD TMIN-CNTS TO TOTAL-CNTS
2-162 ROM BIOS

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents