EasyManua.ls Logo

IBM 5150 - Page 270

IBM 5150
393 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
lOC
OBJ
LINE
SOURCE
5641
;---
INT lA
-------------------------------
5642
TIME_OF _DAY
5643
THIS
ROUTINE
ALLOWS
THE CLOCK
TO
BE
SET/READ
5644
5645
INPUT
5646
IAH)
=0
READ
THE CURRENT CLOCK
SETTING
5647
RETURNS
ex
=
HIGH
PORTION
Of
COUNT
5648
OX
=
lOW
PORTIOt~
Of
COUNT
5649
AL
= 0
IF
TIHER
HAS
NOT
PASSED
24
HOURS
SINCE LAST
READ
5650
<>0
IF
ON
ANOTHER
DAY
5651
IAH)
=1
SET
THE
CURRENT
ClOCK
5652
CX
= HIGH PORTION
OF
COUUT
5653
OX
=
LOW
PORTION
OF
COUNT
5654
NOTE: COut-ITS
OCCUR
AT
THE
RATE
OF
1193180/65536
COUIITS/SEC
5655
lOR
ABOUT
18.2
PER
SECOND
--
SEE
EQUATES
BELOW)
5656
;
--------
-----------
------------------
-------
5657
ASSUME
CS:CODE.DS:DATA
FE6E
5658
TIME_OF
_DAY
PROC
FAR
FE6E
Fe
5659
STI
INTERRUPTS BACK
ON
FE6f
IE
5660
PUSH
DS
SAVE
SEGMENT
FE70
50
5661
PUSH
AX
SAVE
PARN
FE7l
884000
5662
MOV
AX.DATA
FE74 8E08
5663
MOV
DS.AX
I ESTABLISH ADDRESSING
TO
VALUES
FE76
56
5664
POP
AX
i GET BACK
INPUT
PARM
FEn
OAE4
5665
OR
AH.AH
;
AH=O
FE79
7407
5666
JZ
T2
; READ_TIME
FE7B
FEee
5667
DEC
AH
I AH=1
FE7D
7416
5668
JZ
n
;
SET_TINE
FE7F
5669
Tl:
; TOO_RETURN
FE7F FB
5670
STI
; INTERRUPTS BACK
ON
FEeD
IF
5671
POP
os
;
RECOVER
SEGMENT
FEel
CF
567Z
IRET
; RETURN
TO
CAllER
5673
FEel
5674
12:
I READ_TIME
FEez
FA
5675
CLI
;
NO
TIMER INTERRUPTS WHILE READING
FEB3
A07000
5676
MOV
AL.TINER_OFl
~
FE86
C606700000
5677
MOV
TIMER_OFL.O
; GET OVERFLOW.
AND
RESET
THE
FLAG
FEes
860E6EOO
5678
MDV
CX.
TIMER_HIGH
FE8F 88166COO
5679
MOV
OX.
TIMER_LOW
FE93
EBEA
5680
JMP
Tl
5681
FE
95
5682
T3:
SET_TIME
FE95
FA
5683
CLI
NO
INTERRUPTS WHILE
WRITING
FE96
69166COO
5684
MOV
TINER_LOW.
OX
FE9A 890E6EOO
5685
MOV
TIMER_HIGH
.CX
SET
THE
TIME
FE9E
C606700000
5686
MOV
TIMER_OFl.O
RESET OVERflOW
FEU
EBDA
5667
JMP
Tl
TOO_RETURN
TIME_OF _DAY
568~
;
--------
-----------
--
-----------------------
5690
;
THIS
ROUTINE HANDLES
THE
TINER
INTERRUPT fROM
56~1
; CHANNEL 0
OF
THE
8253
TIMER.
INPUT
FREQUENCY
IS
1.19318
HHZ
5692
;
AHD
THE
DIVISOR
IS
65536
, RESULTING
IN
APPROX.
18.
Z INTERRUPTS
5693
; EVERY SECOND.
5694
5695
THE
INTERRUPT HANDLER
MAINTAINS
A
COUNT
OF
INTERRUPTS SINCE
POWER
5696
ON
TIME.
WHICH
MAY
BE
USED
TO
ESTABLISH
TINE
OF
DAY.
5697
THE
INTERRUPT HANDLER ALSO
DECREMENTS
THE
MOTOR
COtHROl
COUNT
5698
OF
THE
DISKETTE,
AND
WHEU
IT
EXPIRES,
WILL
TURN
OFF
THE
DISKETTE
5699
NOTOR.
AND
RESET
THE
MOTOR
RU~INING
FLAGS
5700
THE
INTERRUPT
HAf'..'OLER
WILL
ALSO INVOKE A USER ROUTINE
THROUGH
INTERRUPT
5701
lCH
AT
EVERY'
TIME
TICK.
THE
USER
MUST
CODE
A ROUTINE
AND
PLACE
THE
5702
CORRECT
ADDRESS
IN
THE
VECTOR
TABLE.
5703
HAS
5704
TIMER_INT
PROC
FAR
FEAS
Fe
5705
STI
; INTERRUPTS BACK
ON
~FEA61E
5706
PUSH
DS
FEA7
50
5707
PUSH
AX
FEAB
52
5708
PUSH
DX
; SAVE MACHINE STATE
FEA9
884000
5709
MDV
AX.DATA
FEAC BED8
5710
MOV
DS,AX
ESTABLISH
ADDRESSABIlITY
FEAE FF066COO
5711
INC
TIMER_lOW
INCREMENT TIt1E
FEBZ
7504
5712
JIIZ
T4
TEST_DAY
FEB4 FF066EOD
5713
INC
TIMER_HIGH
UICREMENT HIGH
WORD
OF
TIME
FEBS
5714
T4:
TE!"T_DAY
A-77

Table of Contents

Other manuals for IBM 5150

Related product manuals