LOC
OBJECT
LINE
SOURCE
(B
I OS FOR
THE
I
BM
PERSONAL
COMPUTER
XT
I 1 1
/08/82
I
NT
1A
--------------------------------------------
TIME
OF
DAY
TH
IS
ROUT I NE ALLOWS
THE
CLOCK
TO
BE
SET
/READ
INPUT
( AH ) = 0
READ
THE
CURRENT
CLOCK
SETT
I NG
RETURNS
CX =
HIGH
PORT
I
ON
OF COUNT
DX = LOW
PORT
I
ON
OF COUNT
AL
= 0
IF
TI
MER
HAS
NOT
PASSED
24
HOURS
SINCE
LAST
READ
<>0
IF
ON
ANOTHER
DAY
( AH ) = 1
SET
THE
CURRENT
CLOCK
CX =
HIGH
PORT
I
ON
OF COUNT
DX = LOW
PORT
I
ON
OF COUNT
NOTE:
COUNTS
OCCUR
AT
THE
RATE
OF
1193180/65536
COUNTS/SEC
(OR ABOUT 1
8.2
PER SECOND - -
SEE
EQUATE
S
BELOW)
GET
OVERFLOW,
AND
RESET
THE
FLAG
I
NTERRUPTS
BACK
ON
SAVE
SEGMENT
@ D
40
A
D-41
B
D-42
C
D-43
D
D-44
E
D-45
F
D-46
G
D-47
H
D-48
I
D-49
J
D-4A
K
D-4B
L
D-4C
M
D-4D
N
D-4E
o
D-4F
P
D-50
Q
D-51
R
D-52
S
D-53
T
D-54
U
D-55
V
D-56
W
D-57
X
D-58
Y
D-59
Z
D-5A
[
D-5B
BACKSLASH
D
5C
] D
5D
-
CIRCUMFLEX
D
5E
D
5F
-
..
D-60
LOWER
CASE
A D 61
L.C.
B D
62
-
L.C.
C
D-63
L.C.
D
D-64
L.C.
E
D-65
L.C.
F
D-66
L.C.
G
D-67
L.C.
H
D-68
L.C.
I
D-69
L.C.
J
D-6A
L.C.
K
D-6B
L.C.
L
D-6C
L.C.
M
D-6D
L.C.
N
D-6E
L.C.
0
D-6F
L.C.
P
D-70
L.C.
Q
D-71
L.C.
R
D-72
L.C.
S
D-73
L.C.
T
D-74
L.C.
U
D-75
L.C.
V
D-76
L.C.
W
0-77
L.C.
X
0-78
L.C.
Y
0-79
L.C.
Z
D-7A
{D_7B
-
I 0 7C
} 0::::7D
TILDE
0
7E
DEL
TA
0::::7F
SET
THE
TIME
RESET
OVERFLOW
TOO_RETURN
AH=O
READ
TIME
AH=I-
SET
TIME
TOO-RETURN
I
NTERRUPTS
BACK
ON
RECOVER SEGMENT
RETURN
TO
CALLER
READ
TIME
NO
TIMER
INTERRUPTS
WH
I
LE
READ
I NG
TOO
RETURN
SET-TIME
NO
INTERRUPTS
WH
I
LE
WR
I T I NG
o
7CH,
OC6H,
ODEH,
ODEH, ODEH,
OCOH,
07
8H,
OOOH
030H,
078H,
OCCH, OCCH,
OFCH,
OCCH, OCCH,
OOOH
OFCH,
066H, 066H,
07CH,
066H,
066H,
OFCH,
OOOH
03CH,
066H,
OCOH, OCOH, OCOH,
066H,
03CH,
OOOH
OF8H,
06CH,
066H, 066H, 066H,
06CH,
OF8H,
OOOH
OFEH,
062H,
068H, 078H, 068H,
062H,
OFEH,
OOOH
OFEH,
062H, 068H, 078H, 068H,
060H,
OFOH,
OOOH
03CH,
066H,
OCOH, OCOH,
OCEH,
066H,
03EH,
OOOH
OCCH,
OCCH, OCCH,
OFCH,
OCCH,
OCCH,
OCCH,
OOOH
078H,
030H,
030H, 030H, 030H, 030H,
078H,
OOOH
01
EH,
OOCH, OOCH, OOCH,
OCCH, OCCH,
078H,
OOOH
OE6H,
066H,
06CH,
078H,
06CH,
066H,
OE6H,
OOOH
OFOH,
060H,
060H, 060H, 062H, 066H,
OFEH,
OOOH
OC6H,
OEEH,
OFEH, OFEH,
OD6H,
OC6H,
OC6H,
OOOH
OC6H,
OE6H,
OF6H,
ODEH, OCEH,
OC6H, OC6H,
OOOH
038H,
06CH,
OC6H, OC6H,
OC6H,
06CH,
038H,
OOOH
OFCH,
066H, 066H,
0
7CH,
060H,
060H,
OFOH,
OOOH
078H,
OCCH,
OCCH,
OCCH,
ODCH,
078H,
0 1
CH,
OOOH
OFCH,
066H,
066H,
0
7CH,
06CH,
066H,
OE6H,
OOOH
078H,
OCCH,
OEOH,
070H,
01
CH,
OCCH,
078H,
OOOH
OFCH,
OB4H,
030H, 030H,
030H,
030H, 078H,
OOOH
OCCH,
OCCH,
OCCH, OCCH,
OCCH ,
OCCH,
OFCH ,
00
OH
OCCH, OCCH, OCCH, OCCH, OCCH,
078H, 030H,
OOOH
OC6H,
OC6H,
OC6H, OD6H,
OFEH,
OEEH,
OC6H,
OOOH
OC6H,
OC6H,
06CH,
038H,
038H,
06CH,
OC6H,
OOOH
OCCH,
OCCH, OCCH,
078H,
030H,
030H, 078H,
OOOH
OFEH,
OC6H,
08CH,
0
18H,
032H,
066H,
OFEH,
OOOH
078H, 060H, 060H,
060H,
060H,
060H,
078H,
OOOH
OCOH,
060H, 030H,
0
18H,
OOCH,
006H,
002H,
OOOH
078H,
0
18H,
0
18H,
0
18H,
0
18H,
0
18H,
078H,
OOOH
01
OH,
038H,
06CH,
OC6H,
OOOH, OOOH, OOOH,
OOOH
OOOH, OOOH, OOOH, OOOH, OOOH, OOOH, OOOH,
OFFH
030H,
030H,
0
18H,
OOOH, OOOH, OOOH, OOOH,
OOOH
OOOH, OOOH,
078H,
OOCH,
07CH,
OCCH,
076H,
OOOH
OEOH,
060H,
060H,
07CH,
066H,
066H,
ODCH,
OOOH
OOOH, OOOH,
078H,
OCCH,
OCOH,
OCCH,
0
78H,
OOOH
01
CH,
OOCH, OOCH,
07CH,
OCCH,
OCCH,
076H,
OOOH
OOOH, OOOH,
078H,
OCCH,
OFCH,
OCOH,
078H,
OOOH
038H,
06CH,
060H,
OFOH,
060H,
060H,
OFOH,
OOOH
OOOH, OOOH,
076H,
OCCH,
OCCH,
07CH,
OOCH,
OF8H
OEOH,
060H,
06CH,
076H,
066H,
066H,
OE6H,
OOOH
030H,
OOOH,
070H,
030H,
030H,
030H, 078H,
OOOH
OOCH, OOOH, OOCH,
OOCH,
OOCH,
OCCH,
OCCH,
07
8H
OEOH,
060H,
066H,
06CH,
078H,
06CH,
OE6H,
OOOH
07
OH,
030H,
030H, 030H,
030H,
030H,
07
8H,
OOOH
OOOH, OOOH,
OCCH,
OFEH,
OFEH,
OD6H,
OC6H,
OOOH
OOOH, OOOH,
OF8H,
OCCH,
OCCH,
OCCH, OCCH,
OOOH
OOOH, OOOH,
078H,
OCCH,
OCCH,
OCCH,
078H,
OOOH
OOOH, OOOH,
ODCH,
066H,
066H,
07CH,
060H,
OFOH
OOOH, OOOH,
076H,
OCCH,
OCCH,
07CH,
OOCH, 0 1
EH
OOOH, OOOH,
ODCH,
076H, 066H,
060H,
OFOH,
OOOH
OOOH, OOOH,
07CH,
OCOH,
078H,
OOCH,
OF8H,
OOOH
01
OH,
030H,
07CH,
030H,
030H,
034H,
0
18H,
OOOH
OOOH, OOOH,
OCCH, OCCH,
OCCH,
OCCH,
076H,
OOOH
OOOH, OOOH,
OCCH,
OCCH,
OCCH,
078H, 030H,
OOOH
OOOH, OOOH,
OC6H, OD6H,
OFEH,
OFEH,
06CH,
OOOH
OOOH, OOOH,
OC6H,
06CH,
038H,
06CH,
OC6H,
OOOH
OOOH, OOOH,
OCCH,
OCCH,
OCCH,
07CH,
OOCH,
OF8H
OOOH, OOOH,
OFCH,
098H, 030H,
064H,
OFCH,
OOOH
01
CH,
030H,
030H,
OEOH,
030H,
030H,
0 1
CH,
OOOH
o
18H,018H,0
18H,OOOH,0
18H,
0
18H,0
18H,
OOOH
OEOH,
030H, 030H,
0 1
CH,
030H,
030H,
OEOH,
OOOH
076H,
ODCH,
OOOH, OOOH, OOOH, OOOH, OOOH,
OOOH
OOOH,OI
OH,
038H,
06CH,
OC6H,
OC6H,
OFEH,
OOOH
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
ASSUME
CS:COOE,OS:OATA
ORG
OFE6EH
TIME_OF_OAY
PROC
FAR
STI
PUSH
OS
CALL
DDS
OR
AH,AH
JZ
T2
DEC
AH
JZ
T3
TI:
STI
POP
OS
IRET
T2:
CLI
MOV
AL,
TIMER
OFL
MOV
T
IMER_OF[,
0
MOV
CX , T I MER
HIGH
MOV
OX,
T I
MER::::LOW
JMP
TI
T3:
CLI
MOV
T I MER_LOW
,OX
MOV
TI
MER_H
I
GH,
CX
MOV
T I
MER_OFL
, 0
JMP
Tl
T I
ME_OF
_DAY
ENOP
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
FE6E
FE6E
FE6E
FB
FE6F
IE
FE70
E8E6FB
FE73
OAE4
FE75
7407
FE77
FECC
FE79
7416
FE7B
FE7B
FB
FE7C
IF
FE7D
CF
FE7E
FE7E
FA
FE7F
A07000
FE82
C606700000
FE87
8BOE6EOO
FE8B
8B
166COO
FE8F
EBEA
FE91
FE91
FA
FE92
89166COO
FE96
890E6EOO
FE9A
C606700000
FE9F
EBDA
FC6E
7CC6DEDEDEC07800
FC
76
307
8CCCCFCCCCC
0 0
FC7E
FC66667C6666FCOO
FC86
3C66COCOC0663COO
FC8E
F86C6666666CF800
FC96
FE6268786862FEOO
FC9E
FE6268
7
86860FOOO
FCA6
3C66COCOCE663EOO
FCAE
CCCCCCFCCCCCCCOO
FCB6
7830303030307800
FCBE
1
EOCOCOCCCCC7800
FCC6
E6666C786C66E600
FCCE
F06060606266FEOO
FCD6
C6EEFEFED6C6C600
FCDE
C6E6F6DECEC6C600
FCE6
386CC6C6C66C3800
FCEE
FC66667C6060FOOO
FCF6
78CCCCCCDC78
1
COO
FCFE
FC66667C6C66E600
FD06
78CCE070
1
CCC7800
FDOE
FCB4303030307800
FD
16
CCCCCCCCCCCCFCOO
FD
1E
CCCCCCCCCC783000
FD26
C6C6C6D6FEEEC600
FD2E
C6C66C38386CC600
FD36
CCCCCC7830307800
FD3E
FEC68C
1
83266FEOO
FD46
7860606060607800
FD4E
C06030
1
80C060200
FD567818181818187800
FD5E
10386CC600000000
FD66
OOOOOOOOOOOOOOFF
FD6E
3030180000000000
FD76
0000780C7CCC7600
FD7E
E060607C6666DCOO
FD86
000078CCCOCC7800
FD8E
1
COCOC7CCCCC7600
FD96
000078CCFCC07800
FD9E
386C60F06060FOOO
FDA6
000076CCCC7COCF8
FDAE
E0606C766666E600
FDB6
3000703030307800
FDBE
OCOOOCOCOCCCCC78
FDC6
E060666C786CE600
FDCE
7030303030307800
FDD6
0000CCFEFED6C600
FDDE
0000F8CCCCCCCCOO
FDE6
000078CCCCCC7800
FDEE
0000DC66667C60FO
FDF6
000076CCCC7COC
1E
FDFE
0000DC766660FOOO
FE06
00007CC0780CF800
FEOE
10307C3030341800
FE
16
0000CCCCCCCC7600
FE
1E
0000CCCCCC783000
FE26
0000C6D6FEFE6COO
FE2E
0000C66C386CC600
FE36
0000CCCCCC7COCF8
FE3E
0000FC983064FCOO
FE46
1
C3030E03030
1
COO
FE4E
1818180018181800
FE56
E03030
I
C3030EOOO
FE5E
76DCOOOOOOOOOOOO
FE66
001
0386CC6C6FEOO
5-172
PC-XT System BIOS
(11/08/82)