NOTES:
FOR
ALL
RETURNS
CY=
0 FOR
SUCCESSFUL
OPERATION.
INTERRUPTS
ARE
DISABLED
DURING
DATA
MODIFICATION.
AH
&
AL
ARE RETURNED
MOD
I F I ED AND NOT
DEF
I NED
EXCEPT
WHERE I
NO
I
CATED.
I
NT
I A H
--
SYSTEM AND
REAL
TI
ME
CLOCK SERV
ICES
-------------------------
TH
IS
BIOS
ROUT I NE ALLOWS THE CLOCKS TO
BE
SET
OR
READ
5-95
I
NTERRUPTS
BACK
ON
CHECK I F COMMAND I N
VAL
I 0 RANGE
COMPLEMENT CARRY FOR ERROR
EX
I T
EXIT
WITH
CARRY = I
IF
NOT
VALID
SAVE
USERS
(OS)
SEGMENT
GET
DATA
SEGMENT
SELECTOR
SAVE
WORK
REG I S
TER
MOVE
FUNCT
I
ON
TO
(AL
) REG I STER
CONVERT
FUNCT
I
ON
TO
BYTE
OFFSET
CONVERT
FUNCT
I
ON
TO
WORD
OFFSET
(CY=
0 )
PLACE
INTO
ADDRESSING
REGISTER
NO
I
NTERRUPTS
OUR
I
NG
T I
ME
FUNCT
IONS
VECTOR TO
FUNCT
I
ON
REQUESTED
WITH
CY=O
RETURN
WITH
CARRY
FLAG
SET
FOR
RESULT
I
NTERRUPTS
BACK
ON
CLEAR
(AH)
TO ZERO
RECOVER USERS REG I STER
RECOVER USERS SEGMENT
SELECTOR
RETURN
WITH
CY=
0 I F
NO
ERROR
ROUT I NE VECTOR
TABLE
(AH)
=
OOH
= READ CURRENT CLOCK COUNT
o1H =
SET
CLOCK COUNT
02H
INVALID
03H
INVALID
04H
INVALID
05H
INVALID
06H
INVALID
01H
INVALID
08H
INVALID
09H
INVALID
OAH
= READ SYSTEM DAY COUNTER
OBH
=
WR
I
TE
SYSTEM DAY COUNTER
GET ADDRESS
PO
INTER
<><><><><><>
<><>
<><><><>
<>
<>
<>
<><><>CHECKPO
I
NTS
CO->F4<><><>
CRT CARD I N ERROR?
GIVE
CRT CARD
FAIL
BEEP
PR I
NT
SEGEMENT I N ERROR
01
SPLA
Y ERROR
MSG
;
BEEP
I
LONG,
2 SHORT
POST
(01/10/86)
1-12
01-10-86
READ
THE
CURRENT CLOCK
SETT
I
NG
AND RETURN
WITH,
(CX)
=
HIGH
PORTION
OF COUNT
(OX)
=
LOW
PORT I
ON
OF COUNT
(AL)
= 0 T I
MER
HAS NOT
PASSED
24
HOURS
SINCE
LAST
READ,
1 I F
ON
ANOTHER
DAY.
(RESET
TO ZERO
AFTER
READ)
SET
THE
CURRENT CLOCK US I
NG,
(CX)
=
HIGH
PORTION
OF COUNT
(OX)
=
LOW
PORT I
ON
OF
COUNT.
NOTE:
COUNTS OCCUR AT
THE
RATE
OF
1193180/65536
COUNTS/SECOND
(OR ABOUT I 8 • 2 PER SECOND - - SEE
EQUATE
S)
DX,Ol02H
ERR
BEEP
SHORT ROM_ERR_END
DX,OC800H
ROM
ERR
BEEP
PRT-SEG-
S I
,OFFSET
F3A
E_MSG
AX
OX
OAH
READ
THE
CURRENT COUNT OF DAYS AND RETURN
WITH,
(CX)
= COUNT OF
ELAPSED
DAYS
(
AH)
=
OBH
SET
THE
CURRENT COUNT OF DA YS US I
NG,
(CX)
= COUNT OF
ELAPSED
DAYS
(AH)
(AH)
=
OIH
PARAMETERS:
(AH)
=
OOH
ASSUME
CS:CODE,DS:DATA
TIME
OF DAY
-
1 PROC
FAR
T I
ME:OF:DA
Y
II:
STI
-
CMP
AH,
(RTC_TBE-RTC_TB)
/2
CMC
JC
TlME_9
PUSH
OS
CALL
DDS
PUSH
SI
MOV
AL,AH
CBW
ADD
AX,AX
MOV
SI,AX
CLI
CALL
CS:
[S
I]
+OFFSET
RTC_
TB
STI
MOV
AH,O
POP
SI
POP
OS
TlME_9
:
RET
RTC_TB
OW
RTC_OO
OW
RTC
10
OW
RTC-NS
OW
RTC-NS
OW
RTC-NS
OW
RTC-NS
OW
RTC-NS
OW
RTC-NS
OW
RTC-NS
OW
RTC-NS
OW
RTC-AO
OW
RTC:BO
RTC_TBE
EQU
S
TIME_OF
_DAY
-
I ENDP
F3D
DB
'ERROR.
(RESUME =
"FI"
KEY)'
,CR,LF
; ERROR PROMPT
ORG
OE82EH
ORG
0082EH
KEYBOARD
10:
JMP
KEYBOARD
-
10
-
I
ORG
OE981H
ORG
00981H
KB
-
INT:
JMP
KB
-
INT
-
I
FI
DB
301'
,CR,LF
; KEYBOARD ERROR
F3
DB
'
60
I '
,CR,
LF
;
DISKETTE
ERROR
CMP
JL
CALL
MOV
CALL
ROM
ERR
END:
-
-POP
POP
RET
ROM
ERR
BEEP:
-
-MOV
CALL
JMP
ROM_ERR ENDP
:
--~~~~~-~~~~~~~-~~~-~~~~~-~~~~~~~-;~~-~~~-~~~~~~~~-~~~~~~---------------~
~~~
-
~~~
-
~~~~
----
~~~~
------------------------------------------------------
- PUSH
OX
SAVE
PO
INTER
PUSH AX
MOV
DX,DS
MOV
ES:
CIIMFG_ERR_FLAG, DH
1250
1251
1252
1253
1254
0146
1255
0146
52
1256
0141
50
1251
0148
8C
DA
1258
014A
26:
88
36
0015
R
1259
1260
014F
81
FA
C800
1261
0153
1C
OC
1262
0155
E8
OCBA R
1263
0158
BE
1801
R
1264
015B
E8
1916
R
1265
015E
1266
015E
58
1261
015F
5A
1268
0160
C3
1269
0161
1210
0161
BA
0102
1211
0164
E8
19A5
R
1212
0161
EB
F5
1213
0169
1214
1215
0169
45
52
52
4F
52
2E
1216
20 28
52
45
53 55
1211
40
45
20
3D
20
22
1218
46
31
22
20
4B
45
1219
59 29
00
OA
1280
1281
1282
082E
1283
082E
1284
082E
E9
0000
E
1285
1286
1281
0981
1288
0981
1289
0981
E9
0000
E
1290
1291
098A
20
33 30
31
00
OA
1292
0990
36 30
31
00
OA
1293
1294
1295
1296
1291
1298
1299
1300
1301
1302
1303
1304
1305
1306
1301
1308
1309
1310
1311
1312
1313
1314
1315
1316
1311
1318
1319
1320
1321
1322
1323
1324
0995
1325
0995
1326
0995
FB
1321
0996
80
FC
OC
1328
0999
F5
1329
099A
12
11
1330
1331
099C
IE
1332
0990
E8
I A 12 R
1333
09AO
56
1334
09A
1
8A
C4
1335
09A3
98
1336
09A4
03
CO
1331
09A6
8B
FO
1338
09A8
FA
1339
09A9
2E:
FF
94
09B6
R
1340
1341
09AE
FB
1342
09AF
B4
00
1343
09BI
5E
1344
09B2
IF
1345
09B3
1346
09B3
CA
0002
1341
1348
09B6
09CE
R
1349
09B8
09DF
R
1350
09BA
09ED
R
1351
09BC
09ED
R
1352
09BE
09ED
R
1353
09CO
09ED
R
1354
09C2
09ED
R
1355
09C4
09ED
R
1356
09C6
09ED
R
1351
09C8
09ED
R
1358
09CA
09EF
R
1359
09CC
09F4
R
1360
=
09CE
1361
1362
09CE
1363
IBM
Persona
I
Computer
MACRO
Assemb
I
er
Vers
i
on
2.00
POST
-----
01/10/86
SYSTEM
POST
AND
BIOS
PROCEDURES