IBM 5170 Technical Reference page 301

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

TITLE 08-08-83 BIOS2
BIOS INTERRUPT
, LIST
I NCLUDE SEGMENT, SRe
0000
CODE SEGMENT BYTE PUBLIC
EXTRN
DDS: NEAR
PUBLIC
T I
M[_OF_OAY_1, TIMER_I NT_"
PR I NT_SCREEN_ 1
PUBLIC
RTC INT
I
NT , A­ ----------------------------------------------------­
T I ME_OF _DAY
:
THIS ROUTINE ALLOWS THE CLOCK TO BE SET/READ
:
READ THE CURRENT CLOCK SETT I NG
RETURNS CX = HIGH PORT I ON OF COUNT
OX = LOW PORT I ON OF COUNT
AL
0 1FT I MER HAS NOT PASSED 24 HOURS
51 NCE LAST READ, <> 0 I F ON ANOTHER DAY
(AH
1
=
1
SET THE CURRENT CLOCK
CX
HIGH PORTION OF COUNT
ox
=
LOW PORTION OF COUNT
NOTE: COUNTS OCCUR AT THE RATE OF 1193180/65536 COUNTS/SEC
(OR ABOUT 18,2 PER SECOND -­ SEE EQUATES)
(AH) = 2
READ THE REAL TIME CLOCK
RETURNS CI-I
=
HOURS I N BCD
CL = MINUTES IN BCD
DH
=
SECONDS I N BCD
(AH)
=
3
SET THE REAL T I ME CLOCK
CH :: HOURS I N BCD
CL:: MINUTES IN BCD
Dii :: SECONDS I N BCD
DL:: 1 IF DAYLIGHT SAVINGS TIME OPTION,
ELSE 0
(AH) ::
4
READ THE DATE FROM THE REAL T I ME CLOCK
RETURNS Cli
=
CENTURY I N BCD (19 OR 20)
CL = YEAR I N BCD
DH '" MONTH
J
N BCD
DL
=
DAY IN BCD
(AH) '" 5
SET THE DATE INTO THE REAL T/ME CLOCK
CH
CENTURY IN BCD (19 OR 20)
CL '" YEAR IN BCD
DH
0.­
MONTH
J
N BCD
OL'" DAY IN BCD
(AH) :: 6
SET THE ALARM
THE ALARM CAN BE SET TO
t
NTERRUPT UP TO
23:59:59 FROM PRESENT TIME.
ONE ALARM FUNCTION MAY BE ACTIVE AT ANY TIME
CH = HOURS
1
N BCD
CL
=
MINUTES IN BCD
DH :: SECONDS I N BCD
(AH)
= ­
7
RESET THE ALARM
FOR AH :: 2,
4, 6 -
CY FLAG SET I
F
CLOCK NOT OPERAT I NG
FOR AH = 6 - CY FLAG SET
J
F ALARM ALREADY ENABLED
NOTE:
FOR THE ALARM FUNCTION (AH "" 6) THE USER MUST CODE A
ROUT I NE AND PLACE THE CORRECT ADDRESS I N THE VECTOR
~
TABLE FOR I NT 4AH
;
------
------­
-
-- --
­ -
---
­
-
--
-----
--
-
­
--­
--­ -­ ----­ -­ -
­ ----- ­
---- ­
ASSUME
CS; CODE. OS: DATA
0000
0000
0001
F.
,E
TIME OF DAY 1
-
-ST
1 ­
PUSH
PROC
OS
FAR
INTERRUPTS BACK ON
SAVE SEGMENT
0002
E8 0000 E
CALL
DDS
SET DATA SEGMENT
0005
0007
OA £4
74 14
OR
JZ
AH,AH
T2
AH=O
READ TIME
0009
FE CC
DEC
AM
AH::'­
0008
0000
/4 23
80 FC 07
JZ
CMP
n
AH,7
SET TIME
CHECK IF VALID
0010
70 03
JGE
T1
RETURN I F NOT VAll 0
0012
fB
2C 90
JMP
RTC_D
GO CHECK OTHER FUNCTIONS
0015
11:
TOO RETURN
0015
F.
STI
I NT£RRU PTS BACK ON
0016
1F
PDP
OS
RECOVER SEGMENT
0017
CF
IRET
RETURN TO CALLER
0018
0018
F9
STC
SET ERROR RETURN
0019
1F
POP
OS
001A
CA 0002
RET
2
DOlO
T2:
READ TIME
0010
FA
CLI
NO
TIMER INTERRUPTS WHILE READING
DOlE
AO 0010 R
HOV
AL, T I MER_OFL
0021
C6 06 0070 R 00
HOV
TI MER OFL.O
GET OVERFLOW, AND RESET THE FLAG
0026
8B DE 006E R
MOV
CX, T IMER_H IGH
002A
002E
8B 16 006C R
EB E5
MOV
JMP
OX, TIMER LOW
T1
-
TOO_RETURN
0030
T3:
SET TIME
0030
FA
CLI
NO INTERRUPTS WHILE WRITING
0031
R9 16 006C R
MOV
T I MER_LOW, OX
0035
0039
003E
89
DE 006[ R
C6 06 0070 R 00
EB 05
MOV
MOV
JMP
TIMER_HIGH,CX
TIMER OFL,O
T1
-
SET THE TIME
RESET OVERFLOW
TOO_RETURN
0040
0040
FE CC
DEC
AM
AH :: 2
0042
0044
74 07
FE CC
JZ
DEC
RTC 2
AM -
READ RTC
T
I
ME
AH :: 3
0046
74 26
JZ
RTC 3
SET RTC TIME
0048
E9 0007 R
JHP
RTC-'
GO CHECK REMA
1
N I NG FUNCT IONS
/""""\
004B
004B
RTC_GET_ T I ME
PROC
NEAR
0048
E8 01B7 R
CALL
UPD IN PR
CHECK FOR UPDATE I N PROCESS
004E
0050
73 02
EB
c6
JNC
JMP
RTC-2A­
T1_A
GO AROUND I F OK
RETURN I F ERROR
0052
0052
0053
0055
FA
B2 FE
E8 0192 R
CLI
MOV
CALL
Dl,-2
PORT INC 2
INTERRUPTS OFF DURING READ
SET ADDRESS OF SECONDS
0058
E4 71
IN
AL, CMOS_PORT+l
005A
8A FO
MOV
DH,AL
SAVE
D05C
E8 0192 R
CALL
PORT INC 2
SET ADDRESS OF MI NUTES
005F
0061
0063
E4 71
8A (;8
E8 0192 R
IN
MOV
CALL
AL, CMOS PORT+l
CL,AL­
PORT INC 2
SAVE
SET ADDRESS OF HOURS
0066
E4 71
IN
AL, CMOS_PDRT+l
BIOS 2 5-159

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents