IBM AT 5170 Technical Reference page 351

Table of Contents

Advertisement

IBM Peraonal Computer MACRO Assembler
Veralon 2.00
1-4
BIOS2 ----
ObllO/65
BIOS
INTERRUPT ROUTINES
Ob-l0-85
298
PACiE
299
;--- HARDWARE
INT
10 H --
(
IRQ LEVEL
8
J ------------------------- ­
300
ALARM
I NTERRUPT HANDLER
(RTC)
301
THIS ROUTINE HANDLES THE PERIODIC AND ALARM INTERRUPTS FROM THE CMOS
302
TIMER.
INPUT FREQUENCY
IS
1.024 KHZ OR APPROXIMATELY
1024 INTERRUPTS
303
EVERY SECOND FOR THE PER I 00 I C INTERRUPT.
FOR THE ALARM FUNCT I ON,
304
THE INTERRUPT WILL OCCUR AT THE DESIGNATED TIME.
305
30.
INTERRUPTS ARE ENABLED WHEN THE EVENT OR ALARM FUNCTION
IS ACTIVATED.
301
FOR THE EVENT
INTERRUPT, THE HANDLER WILL DECREMENT THE WAIT COUNTER
308
AND WHEN IT EXPIRES WILL SET THE DESIGNATED LOCATION TO 80H.
FOR
309
THE ALARM INTERRUPT, THE USER MUST PROV I DE A ROUT! NE TO INTERCEPT
310
THE CORRECT ADDRESS FROM THE VECTOR TABLE INVOKED BY
INTERRUPT 4AH
311
PR I OR TO SETT I NG THE REAL T I ME CLOCK ALARM I I NT
I AH, AH= 06HJ.
312
313
314
0162
RTC
I NT PROC
FAR
ALARM
JNTERRUPT
315
0162
IE
PUSH
OS
LEAVE
INTERRUPTS 01 SA8LED
316
0163 50
PUSH
AX
SAVE REG 1 STERS
317
0164 57
PUSH
01
318
319
0165
RTC
I
11
;
CHECK FOR SECOND INTERRUPT
320
0165 B8 8B8C
MOV
AX, (CMOS RECi B-+NMI J ·H-+CMOS REG C-+NMI
• ALARM AND STATUS
321
0166 E6 10
OUT
CMOS PORT, AL -
; WR [TE ALARM FLAG MASK ADDRESS
322
016A 90
Nap
-
;
I!ODELAY
323
0 I 6B E4 11
IN
AL,CMOS DATA
• READ AND RESET
INTERRUPT REQUEST FLAGS
324
0180 A8 60
TEST
AL, 0 I 1000009
;
CHECK FOR E [THER
J NTERRUPT PEND I NG
325
0
I
8F
14
40
JZ
RTC_I_9
; EXIT
IF NOT A VALID RTC
INTERRUPT
32.
327
0191
86 EO
XCHG
AH,AL
SAVE FLAGS AND GET ENABLE ADDRESS
328
0193 E6 70
OUT
CMOS _PORT, AL
WR I TE ALARM ENABLE MASK ADDRESS
329
0195 90
NOP
I/O DELAY
330
0196 E4 71
IN
AL ,CMOS DATA
READ CURRENT ALARM ENABLE MASK
331
0198 22 C4
AND
AL,AH
-
ALLOW ONLY SOURCES THAT ARE ENABLED
332
019A A6 40
TEST
AL,OIOOOOOOB
CHECK FOR PERIODIC INTERRUPT
333
019C 7430
JZ
RTC
I 5
SKIP
IF NOT A PERIODIC
INTERRUPT
334
335
;-----
DECREMENT WAIT COUNT BY
INTERRUPT INTERVAL
33.
331
019E E8 0000 E
CALL
DOS
I
ESTABLISH DATA SEGMENT ADDRESSABILITY
338
OIAI
81
2E 009C R 0300
SUB
ORTC LOW, 0976
I DECREMENT COUNT LOW BY
, /1024
339
01A7 83
IE 009E R 00
sBB
ORTC-HIGH,O
I
ADJUST HI CiH WORD FOR LOW WORD BORROW
340
OIAC 73 20
JNC
RTC
T
5
;
SKIP TILL 32 91T WORD LESS THAN ZERO
341
342
1-----
TURN OFF PERIODIC
INTERRUPT ENABLE
343
344
01 AE 50
PUSH
AX
SAVE INTERRUPT FLAG MASK
345
0
I
AF 86 6B8B
MOV
AX,X· (CMOS REG B-+NMI
J
I NTERRUPT ENABLE REG I S TER
346
0182 Eb 10
OUT
CMOS_PORT
,AL
-
WR ITE ADDRESS TO CMOS CLOCK
341
0184 90
NDP
I/O DELAY
348
0185 E4 11
IN
AL,CMOS DATA
READ CURRENT ENABLES
349
0181 24 BF
AND
AL,OBFH-
TURN OFF PIE
350
0189 86 C4
XCHG
AL,AH
GET CMOS ADDRESS AND SAVE VALUE
351
01BB E6 10
OUT
CMOS PORT, AL
ADDRESS REG I STER B
352
01BO 86 C4
XCHG
AL,AH
GET NEW I NTERRUPT ENABLE MASK
353
OIBF E6
71
OUT
CMOS DATA.AL
SET MASK
IN
INTERRUPT ENABLE REGISTER
354
OICI
C6 06 OOAO R 00
MOV
ORTC-WAIT FLAG,O
SET FUNCT [ON ACT I VE FLAG OFF
355
0
rC6 C5 3E 0098 R
LOS
Dl,oiORD PTR ilUSER FLAG
SET UP
(05:011
TO POINT TO USER FLAG
356
OICA C6 05 80
MOV
8YTE PTR
(01]
,80H -
TURN ON USERS FLAG
357
OICD 58
PDP
AX
GET
I NTERRUPT SOURCE BACK
358
0
I
CE
RTC
I
51
359
0 I CE A8 20
TEST
AL,OOIOOOOOB
TEST FOR ALARM
INTERRUPT
360
0100 74 OA
JZ
RTC_I_7
SK
I
P USER
I NTERRUPT CALL I F NOT ALARM
3.,
362
0102 BO 00
.OV
AL,CMOS REG 0
POINT TO DEFAULT REAO ONLY REGISTER
363
0104 E6 10
OUT
CMOS_PORT ,AC
ENABLE NMI
AND CMOS ADDRESS TO OEFAUL T
364
0106 FB
sTi
I NTERRUPTS BACK ON NOW
365
0107 52
PUSH
OX
366
0 I 06 CD 4A
INT
4AH
TRANSFER TO USER ROUT I NE
367
OIDA 5A
POP
OX
368
OIDB FA
CLI
8LOCK
INTERRUPT FOR RETRY
369
0 I DC
RTC_I_1:
RESTART ROUTINE TO HANDLE DELAYED
370
OIDC EB A7
JMP
ENTRY ANO SECOND EVENT BEFORE DONE
311
312
373
OIDE
RTC I
9:
EX I T -
NO PEND I NG INTERRUPTS
374
OIDE BO 00
AL, CMOS REG 0
POINT TO DEFAULT READ ONLY REGISTER
-
-
MOV
375
DIED E6 10
OUT
CMOS PORT, AL
ENABLE NMI AND CMOS ADDRESS TO DEFAULT
316
0lE2 90 20
MOV
AL,EQI
END OF I NTERRUPT MASK TO 8259 -
2
317
0lE4 E6 AD
OUT
INTBoo,AL
TO 8259 -
2
318
0lE6 E6 20
OUT
lNTAOO,AL
TO 8259 -
1
379
0lE8 5F
POP
01
RESTORE REG
J
STERS
380
0 I E9 58
POP
AX
381
OlEA
IF
POP
OS
382
OIEB CF
IRET
I
ENO OF
INTERRUPT
383
384
OIEC
RTC_INT ENOP
BIOS2
5-179

Advertisement

Table of Contents
loading

Table of Contents