IBM AT 5170 Technical Reference page 258

Table of Contents

Advertisement

IBN Pe,.sonal Compute,. NACRO Assemble,.
Version 2.00
1-6
TE5T4 ----
06/10/85
POST AND BIOS UTILITY ROUTINES
Ob-10-85
527
PAGE
528
I - - ­ - - - - - ­ - ­ - - - ­ - - - - ­ - - - - - ­ - ­
- - - - - - ---­ -­ - - ­ - - - - - - - - - - ­ - - ---­ - - - - - - - - -­ -­ - - - - - ­
529
;
THIS ROUTINE
INITIALIZES THE TIMER DATA AREA IN THE ROM BIOS
530
531
;
;
DATA AREA.
HRIMIN:SEC
IT IS CALLED BY THE POWER ON ROUTINES.
IT CONVERTS
FROM CMOS TO TIMER TICS.
IF CMOS
IS INVALID, TIMER
532
53'
53<
;
I S SET TO ZERO.
INPUT
NONE PASSED TO ROUTINE BY CALLER
535
CMOS LOCATIONS USED FOR TIME
536
537
OUTPUT
CIT I MER LOW
538
539
:i:~~=:~~~H
~
540
541
ALL REG I STERS UNCHANGED
I
;------------------------------------------------------------------------------­
542
54,
=
0012
0444
COUNTS SEC
COUNTS-MIN
EQU
EQU
18
1092
; TIMER DATA CONVERSION EQUATES
544
0007
COUNTS-HOUR
EQU
7
;
65543 -
65536
545
=
ooeo
UPDATE:TlMER
EQU
100000008
; RTC UPDATE IN PROCESS BIT MASK
546
547
01E7
SET TOO PROC
NEAR
548
01 E7 60
-
PUSHA
5.9
01E8
IE
PUSH
OS
550
0lE9 E8 0034
R
CALL
DDS
I ESTABLI SH SEGMENT
551
552
55,
554
OIEC 28
o
lEE A2
01FI
A3
0lF4 A3
CO
0070
R
006C R
006E R
SUB
MOV
MOV
MOV
AX,AX
ClTltotER OFL,AL
.TIMER-LOW,AX
ClTIMER-HIGH,AX
RESET TIMER ROLL OVER INDICATOR
AND TIMER COUNT
555
01F7 BO 8E
MOV
AL,CMOS DIAG+NMI
CHECK CMOS VALIDITY
556
0lF9 E8 0000 R
CALL
CMOS READ
, READ DIAGNOSTIC LOCATION IN CMOS
557
558
OIFC 24
01FE 28
C4
C9
AND
SUB
~;
:
~~o
_SAHeAD_ CK
SUM+CMO~-~~~-~~ ~~ERY,
CHKSUM ERROR, CLOCK ERROR
559
0200 75 64
"HZ
POD_DONE
I CMOS NOT VALID -­ TIMER SET TO ZERO
560
0202
UIP:
561
562
0202 80
0204 E8
8A
0000 R
MOV
CALL
~~Q~M~~A~EG
_A +NM I
ACCESS REG I STER A
READ CMOS CLOCK REGISTER A
56'
564
0207 A6
0209 El
80
F7
TEST
LDOPZ
AL,UPDATE
T
I MER
UIP
-
I WAIT TILL UPDATE 81T IS ON
565
566
567
020B E3
0200
59
UIPOFF:
JCXZ
POD_DONE
CMOS CLOCK STUCK IF TI MEOUT
566
0200 80 8A
"OV
AL. CMOS REG A+NM I
ACCESS REGI STER A
569
020F E8 0000
R
CALL
CMOS READ
-
READ CMOS CLOCK REG I STER A
570
0212 A8 80
TEST
AL,UPDATE TI MER
571
0214 EO F7
LOOPNZ
UIPOFF
-
NEXT WAIT TILL ENO OF UPDATE
572
573
0216 E3 4E
JCXZ
POD_DONE
CMOS CLOCK STUCK 1FT I MEOUT
57.
575
0218 80 80
MOV
AL. CMOS SECONDS+NM I
TIME JUST UPDATED
576
021A E8 0000 R
CALL
CMOS READ
ACCESS
SECON~S
VALUE IN CMOS
571
576
579
0210 3C
021F 71
59
48
eMP
"A
AL,59H
TOO_ERROR
ARE THE SECONDS WITHIN LIMITS?
GO IF NOT
560
0221 E5 021F
R
CALL
CYT BINARY
CONVERT IT TO BINARY
581
0224 68 C8
MOV
cX,AX
MOVE COUNT TO ACCUMULAT 1 ON REGI STER
582
5.,
58.
0226 C 1
0229 B3
0228 F6
E9 02
12
E3
SHR
MOV
MUL
CX,2
BL,COUNTS SEC
BL
-
ADJUST FOR SYSTEMATIC SECONDS ERROR
I COUNT FOR SECONDS
585
0220 03 C8
ADD
CX,AX
586
022F 80 82
MOV
AL,CMOS MINUTES+NMI
567
0231
E8 0000 R
CALL
CMOS READ
ACCESS MINUTES VALUE IN CMOS
566
56'
590
591
0234 3C
0236 71
0238 E6
0238 50
59
31
027F R
eMP
"A
CALL
PUSH
AL,59H
TOO ERROR
CVT-BINARY
AX­
ARE THE MINUTES WITHIN LIMITS?
GO IF NOT
CONVERT I T TO B I NARY
SAVE MINUTES COUNT
592
023C 01
E8
SHR
AX,I
ADJUST FOR SYSTEMATIC MINUTES ERROR
5.'
023E 03
ce
ADD
CX,AX
ADD ADJUSTMENT TO COUNT
59.
0240 56
POP
AX
RECOVER 8CO MINUTES VALUE
595
0241 88 0444
MOv
BX,COUNTS MIN
596
0244 Fl E3
MUL
BX
-
COUNT FOR MINUTES
597
596
599
0246 03
0248 80
024A E8
C8
64
0000 R
ADD
MOV
CALL
CX,AX
AL,CMOS HOURS+NMI
CMOS READ
ADD TO ACCUMULATED VALUE
ACCESS HOURS VALUE
IN CMOS
600
601
602
0240 3C
024F 71
23
16
eMP
"A
AL,23H
TOO_ERROR
ARE THE HOURS WITHIN LIMITS?
GO
IF NOT
603
0251 E8 027F R
CALL
CVT BINARY
CONVERT IT TO BINARY
604
0254 68 DO
MOV
DX,AX
605
0256 83 07
MOV
BL,COUNTS HOUR
606
0258 F6 E3
MUL
BL
-
I
COUNT FOR HOURS
607
025A 03 Cl
ADO
AX,CX
608
609
025C 83
025F 59
02 00
16 006E R
ADC
MOV
DX,OOOOH
ClTlMER HIGH,DX
610
6"
0263 A3
0266
006C R
MOV
POD DONE:
(ilTI MER:LOW • AX
612
0266 IF
-
POP
OS
613
0261 61
POPA
614
0268 C3
RE7
61'
616
0269
TOO ERROR
I
617
0269
IF
-
POP
OS
RESTORE SEGMENT
.,8
."
620
026A 61
026B 8E
026E E8
0000 E
003C R
paPA
MOV
CALL
SI,OFFSET E163
E MSG
RESTORE REG I STERS
D I SPLA Y CLOCK ERROR
621
622
0211 85
0274 E8
8E8E
0000 R
MOV
CALL
AX,X· (CMOS DIAG+NMI)
CMOS READ -
SET CLOCK ERROR 1 N STATUS
READ D I AGNOST I C CMOS LOCAT I ON
623
0271 OC 04
OR
AL,CMOS CLK FAIL
SET NEW STATUS WITH CMOS CLOCK ERROR
62.
0219 86 C4
XCHG
AL,AH
-
-
MOVE NEW STATUS TO WORK REGI STER
625
027B E6 001 A R
CALL
CMOS_WR I TE
UPDATE STATUS LOCATION
626
021E C3
RET
627
628
021F
SET_TOO ENDP
.29
630
027F
CVT BINARY
PROC
NEAR
631
027F 8A EO
-
MOV
AH,AL
UNPACK 2 BCD DIGITS
IN AL
.32
0261 CO EC 04
SHR
AH.4
633
0284 24 OF
AND
AL,OFH
RESULT
IS IN AX
63'
0286 05 OA
AAD
CONVERT UNPACKED BCD TO BINARY
635
0288 C3
RET
636
637
0289
5-86
TEST4

Advertisement

Table of Contents
loading

Table of Contents