IBM 5170 Technical Reference page 304

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

01F8
B20A
MOV
DL,OAH
TURN OFF PIE
OHA
E8 018B R
CALL
PORT INC
OlFD
E4 71
IN
AL, CMOS_PORT+l
01 FF
24 BF
AND
AL,OBFIi
0201
50
PUSH
AX
0202
B2 OA
MOV
DL,OAH
0204
E8 018B R
CALL
PORT
INC
0207
58
POP
A X ­
0208
E6 71
OUT
CMOS_PORT+l,AL
O?OA
c6 06 OOAO R 00
MOV
RTC_WAIT_FLAG,O ;
SET FUNCTION ACTIVE FLAG OFF
020F
C5 3E 0098 R
LOS
DI,DWORD PTR USER_FLAG;
SET UP DS,DI
TO POINT TO USER FLAG
0213
C6 0') 80
MOV
BYTE PTR[Dlj,80H ;
TURN ON USERS FLAG
0216
RTC_' NT_9
0216
58
POP
AX
GET I NTERRUPT SOURCE BACK
0217
A8 20
TEST
AL,20H
TEST FOR ALARM INTERRUPT
0219
74 02
JZ
RTC
I NT 10
NO -
GO AROUND
021B
CD 4A
INT
TRANSFER TO USER ROUT
I
NE
4AH-
­
0210
RTC_INT_l0·
0210
BO 20
MOV
AL, EOI
END OF I NTERRUPT TO 8259 -
2
021F
E6 AO
OUT
OAOH,AL
0221
E6 20
OUT
020H,AL
AND TO 8259 -
1
0223
5F
POP
01
RESTORE REG I STERS
0224
5A
POP
OX
0225
58
POP
AX
0226
1 F
POP
as
0227
CF
IRET
END OF
INTERRUPT
0228
RTC_'NT ENDP
PAGE
; --
I NT 8
(LEVEL 0) ---------------------------------------------:
Tii
1
S ROUT
I
NE HANDLES THE T I MER I NTERRUPT FROM
CHANNEL 0 OF THE 8253 TIMER.
INPUT FREQUENCY IS 1.19318 MHZ
:
AND THE DIVISOR IS 65536,
RESULTING IN APPROX.
18.2 INTERRUPTS:
EVERY SECOND.
THE
INTERRUPT HANDLER MAINTAINS A COUNT OF INTERRUPTS SINCE
POWER ON TIME, WHICH MAY BE USED TO ESTABLISH TIME OF DAY.
THE
INTERRUPT HANDLER ALSO DECREMENTS THE MOTOR CONTROL COUNT
OF THE DISKETTE, AND WHEN
IT EXPIRES, WILL TURN OFF THE
DISKETTE MOTOR(s), AND RESET THE MOTOR RUNNING FLAGS.
THE
INTERRUPT HANDLER WILL ALSO
INVOKE A USER ROUTINE THROUGH
INTERRUPT lCH AT EVERY TIME TICK.
THE USER MUST CODE A
ROUTINE AND PLACE THE CORRECT ADDRESS IN THE VECTOR TABLE.
;
-
--- --- -
--------------------------------------------------
-
----
:
0228
TIMER
INT 1
PROC
FAR
0228
FB
-
STI
I NTERRUPTS BACK ON
0229
1E
PUSH
as
022A
50
PUSH
AX
022B
52
PUSH
OX
SAVE MACHINE STATE
022C
E8 0000 E
CALL
005
ESTABL I SH ADDRESSAB I L I TY
022F
FF 06 006C R
INC
TIMER LOW
INCREMENT T I ME
0233
75 04
JNZ
T4
-
TEST DAY
0235
FF 06 006E R
INC
T I MER_H I GH
INCREMENT HIGH WORD OF TIME
0239
T4:
TEST DAY
0239
023E
83 3E 006E R 18
75 15
CMP
JNZ
TIMER HIGH,018H
T5
-
TEST-FOR COUNT EQUALLI NG 24 HOURS
01 SKETTE_CTL
0240
0246
81 3E 006C R OOBO
75 00
CMP
JNZ
~~
MER_LOW, OBOH
T I MER HAS GONE 24 HOURS
0248
2B CO
SUB
AX,AX
024A
A3 006E R
MOV
TIMER HIGH,AX
0240
A3 006C R
MOV
TIMER-LOW,AX
0250
c6 06 0070 R 01
MOV
TIMER=OFL,l
;------ TEST FOR DISKETTE TIME OUT
0255
T5:
;
01 SKETTE_CTL
0255
FE OE 0040 R
OEC
MOTOR_COUNT
0259
75 OB
JNZ
T6
RETURN
I
r
COUNT NOT OUT
025B
80 26 003F R Fa
ANa
MOTOR_STATUS,OFOH
;
TURN OFF MOTOR RUNNING BITS
0260
BO DC
MOV
AL,OCH
0262
BA 03F2
MOV
DX,03F2H
FDC CTL PORT
0265
EE
OUT
DX,AL
TURN OFF THE MOTOR
0266
T6:
TIMER RET:
0266
CO lC
INT
lCH
TRANSFER CONTROL TO A USER ROUT I NE
0268
BO 20
MOV
AL, EOI
026A
E6 20
OUT
0201-l,AL
END OF I NTERRUPT TO 8259
026C
5A
POP
ox
0260
58
POP
AX
026E
1F
POP
as
RESET MACH I NE STATE
026F
CF
IRET
RETURN FROM
INTERRUPT
0270
TIMER
-
I NT_l
ENDP
I NT 5 ------------------------------------------------------------- ­
THIS LOGIC WILL BE
INVOKED BY INTERRUPT 05H TO PRINT
THE SCREEN.
THE CURSOR POSITION AT THE TIME THIS ROUTINE
IS
INVOKED WILL BE SAVED AND RESTORED UPON COMPLETION.
THE
ROUTINE
IS
INTENDED TO RUN WITH
INTERRUPTS ENABLED.
I F A SUBSEQUENT' PRINT SCREEN KEY IS DEPRESSED DURING THE
TIME THIS ROUTINE
IS PRINTING IT WILL BE
IGNORED.
ADDRESS 50:0 CONTAINS THE STATUS OF THE PRINT SCREEN:
50:0
EITHER PR I NT SCREEN HAS NOT BEEN CALLED
OR UPON RETURN FROM A CALL THIS
INDICATES
A SUCCESSFUL OPERATION.
=1
PR I NT SCREEN
I SIN PROGRESS
=255
ERROR ENCOUNTERED OUR I NG PR I NT I NG
ASSUME
CS:CODE,DS:XXDATA
0270
PR I NT _SCREEN_l
PROC
FAR
0270
FB
STI
!",UST RUN WITH
INTERRUPTS ENABLED
0271
lE
PUSH
as
MUST USE 50:0 FOR DATA AREA STORAGE
0272
50
PUSH
AX
0273
53
PUSH
BX
0274
51
PUSH
CX
WILL USE THIS LATER FOR CURSOR LIMITS
0275
52
PUSH
OX
WILL HOLD CURRENT CURSOR POS I T I ON
0276
B8
---- R
MOV
AX,XXDATA
HEX 50
0279
8E 08
MOV
DS,AX
027B
80 3E 0000 R 01
CMP
STATUS_BYTE,l
SEE
I F PR I NT ALREADY I N PROGRESS
0280
74 5F
JZ
EXIT
JUMP IF PR I NT ALREADY I N PROGRESS
0282
C6 06 0000 R 01
MOV
STATUS BYTE,l
INDICATE PRINT NOW IN PROGRESS
0287
B4 OF
MOV
AH,15 -
WI LL REQUEST THE CURRENT SCREEN MODE
0289
CD 10
INT
10H
[ALj=MODE
;
[AH}=NUMBER COLUMNS/LINE
**********************~*******l~~l:~!;~!!.*f!~~************
5-162 BIOS 2

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents