IBM 5150 Technical Reference page 204

Hide thumbs Also See for 5150:
Table of Contents

Advertisement

LaC OBJ
LINE
SOURCE
!"'"'""\
,...-.....
~
FE8F EBEA
FE91
FE91 FA
FE92 89166COO
FE96 890E6[00
FE9A C606700000
FE9F EBOA
FEAS
FEA5
FEA5 FB
FEA6 IE
FEA7 50
FEA6 52
FEA9 E69200
FEAC ff066COO
FEBO 7504
FEB2 ff066EOO
HB6
FEB6 833E6£0016
FEBB 7515
FEBD 613E6COOBOOO
FEC3 7500
FEes 2BCO
FEC7 A36EOO
FECA A36COO
FECD C606700001
FED2
FED2 FEOE4000
FED6 750B
FED6 60263FOOFO
FEDD BOOC
FEDF BAF203
FEE2 EE
FEf3
FEE3 CD1C
fEES B020
fEE7 E620
FEE9 SA
FEEA 56
FEEB IF
FEEC CF
FEED 31363031
FEFI 00
FEF2 OA
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5903
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5976
5979
5960
5961
5962
5983
5984
5965
5966
5967
5966
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6006
6009
6010
J"P
T1
; TOO_RETURN
T3:
; SET_TIME
Cll
; NO INTERRUPTS WHILE WRITING
t10V
TIMER_lOW.OX
I10V
TIMER_HIGH.
ex
1 SET THE TIME
"OV
TIMER_OFl,O
; RESET OVERFLOW
J"P
T1
; TOO_RETURN
lIt'E_OF_DAY
ENDP
1-----------------------------------------------------.-­
; THIS ROUTINE HANDLES THE TINER INTERRUPT FROtt
CHANNEL 0 OF THE 8253 TIMER. INPUT FREQUENCY
IS 1.19318 MHZ AND THE DIVISOR IS 65536, RESULTIHG
I
IN APPROX. 18.2 INTERRUPTS EVERY SECOND.
j
THE INTERRUPT HANDLER MAINTAINS A COUNT OF INTERRUPTS:
;
SINCE POWER ON TItlE. WHICH MAY BE USED TO ESTABLISH
;
TIME OF DAY.
I THE
INTERRUPT
HANDLER ALSO DECREMENTS THE MOTOR
CONTROL COUNT OF THE DISKETTE. AND WHEN IT EXPIRES.
;
WILL TURN Off THE DISKETTE MOTOR
f
AND RESET THE
;
MOTOR RUNNING FLAGS.
; THE INTERRUPT HANDLER WILL ALSO INVOKE A USER ROUTINE:
I
THROUGH INTERRUPT 1 CH AT EVERY TIME TICK.
THE USER
,
J
I'lJST CODE A ROUTINE AND PLACE THE CORRECT ADDRESS IN :
;
THE VECTOR TABLE.
i ---------------­ -------------­ -------­ ----------­ - -----­
ORG
OFEA5H
TIMER_INT
"OC
FAR
STI
INTERRUPTS BACK ON
PUSH
OS
PUSH
AX
PUSH
OX
J
SAVE MACHINE STATE
CAll
DDS
INC
TIMER_LOW
; INCREMENT TIME
JNZ
T4
j
TEST_DAY
INC
TIMER_HIGH
; INCREMENT HIGH WORD OF TIME
T4:
; TEST_DAY
CMP
TIMER_HIGH.016H
; TEST FOR COlINT EQUALING 24 HIXJRS
JNZ
T5
J DISKETTE_CTl
C"P
TIMER_LOW.OBOH
JNZ
T5
; DISKETTE_CTl
1------ TIMER HAS GONE 24 HOURS
SUB
AX,AX
MOV
TIMER_HIGH .AX
"OV
TIMER_LOW.. AX
"OV
TIMER_OFL .1
;------ TEST FOR DISKETTE TIME OUT
TS:
• DISKETTE_CTl
DEC
MOTOR_COUNT
JHZ
T6
J
RETURN IF COUNT NOT OUT
AND
MOTOR_STATlJS.OFOH
J
TURN OFF MOTOR RUNNING BITS
I10V
AL.OCH
MOV
OX,03F2H
; FDC CTl PORT
OUT
DX.AL
, TURN OfF THE MOTOR
T6:
; TIMER_RET:
INT
IC"
I TRANSFER CONTROL TO A USER ROUTINE
"OV
Al,EOI
OUT
020H .Al
; ENO OF INTERRUPT TO 8259
POP
OX
POP
AX
POP
OS
j
RESET MACH INE STATE
IRET
, RETI..IRN FROM INTERRUPT
TIMER_INT
ENDP
"0
OB
'1601' .13.10
6011
6012
6013
6014
6015
;
­
------------------­---------­---------------------------------­
THESE ARE THE VECTORS WHICH ARE MOVED INTO
THE 6086 INTERRUPT AREA DURING POIolER ON.
ONLY THE OFFSETS ARE DISPLAYED HERE. CODE SEGMENT
System BIOS 5-111

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents