IBM 5150 Hardware Reference Manual page 262

Hide thumbs Also See for 5150:
Table of Contents

Advertisement

lOC OBJ
LINE
SOURCE
F8es
5043
tIDTOR_ON
PROC
NEAR
5044
j----------------.. ---------------­
5045
j
PURPOSE:
5046
,
TO TURN ON CASSETTE MOTOR
5047
1----­ --­ --­ -­ -­ -­ -­ -­ --­ -­ -­ --­ -_ ...
Fee5 [461
5048
IH
AL,PORT_B
jREAD CASSETTE OUTPUT
F887 t4F7
5049
AHIJ
AL.NOl OSH
; ClEAR BIT TO TURN ON MOTOR
~
F889 £661
5050
W3:
OUT
PORT.B.AL
;WRITE IT OUT
FeSB 2AE4
5051
SUB
AH,AH
;ClEAR AH
F88D C3
S05Z
RET
5053
HOTDR.ON
ENOP
5054
F...
5055
MOTOR.OfF
PROC
HEAR
5056
i ............... -­ --­ -­ -­ -­ -----.---­ ----­ ----­
5057
; PURPOSE:
5058
5059
TO TURN CASSETTE MOTOR OFF
1------------------------. . -----------. . .
'88£ E461
5060
IH
At.PORT_B
;READ CASSETTE OUTPUT
f890
oeoe
5061
OR
At,.oeH
; SET BIT TO TURN OF
f
F892 ESF5
5062
JHP
WJ
;WRITE IT, CLEAR ERROR, RETURN
5063
tIOTOR_OFF
ENDP
Fa..
5064
READ.BLOCK
PROe:
NEAR
5065
;
-----
------
--
------
--.-
--
---
­
----
----------­
5066
; PURPOSE:
5067
I
TO READ 1 OR MORE 256 BYTE BLOCKS FROI1 CAsSEnE
5068
5069
I ON ENTRY:
5070
ES IS SEGMENT FOR MEMORY BUFFER (FOR COMPACT CODE)
5071
i
ex POINTS TO START OF MEMORY BUFFER
5012
I
CX
COt~TAINS
NUMBER OF BYTES TO READ
5073
f ON EXIT:
5074
ex POINTS 1 BYTE PAST LAST BYTE PUT IN MEM
5075
CX CONTAINS DECREMENTED BYTE COUNT
5076
ox CONTAINS NUMBER OF BYTES ACTUALLY READ
5077
5078
CAR~Y
flAG IS CLEAR IF NO ERROR DETECTED
~
5079
CARRY flAG IS SET IF CRC ERROR DETECTED
5080
j - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _ .. _ - - - - - - - - - - - ­
F894 53
5081
PUSH
BX
;SAVE BX
F895 51
5082
PUSH
CX
;SAVE CX
F896 56
5083
PUSH
51
; SAVE 51
F897 BE0700
5084
HOV
51. 7
; SET UP RETRY COUNT FOR LEADER
F89A Eet201
5085
CALl.
BEGItCOP
; BEGIN By STARTING MOTOR
F89D
5086
W4:
; SEARCH FOR LEADER
F89D E462
50S7
IN
Al,PORT.C
;GET INTIAL VALUE
F89F 2410
50S8
ANO
AL.OIOH
;MASK OFF EXTRANEOUS BITS
F8Al A26BOO
50S9
HOV
LAST.VAL,AL
;SAVE IN Lot lAST.VAL
F8A4 BA7A3F
5090
MOV
DX,16250
; I OF TRANSITIONS TO LOOK FOR
5091
F8A7
5092
W5:
j
WAIT.FOR.EDGE
F8A7 F606710080
5093
TEST
BIOS.BREAK. 80H
; CHECK FOR BREAK KEY
FSAt 7403
SO"
JZ
W.
I JUMP IF NO BREAK KEY
F8AE E98AOO
5095
JHP
W17
~
JUMP IF BREAK KEY HIT
FS81 4A
SO"
5097
..
,
DEC
ox
F882 7503
5098
JHZ
W7
I JUMP IF BEGINNING OF LEADER
F8B4 E98400
5099
JHP
W17
; JUMP IF NO LHDER FOUND
5100
F887 E8C600
5101
1017:
CALL
READ.HAlF.BIT
;IGNORE FIRST EDGE
FSBA BEB
5102
JCXZ
WS
; JUMP IF NO EDGE DETECTED
F8BC BA7803
5103
I10V
OX.0378H
; CHECK FOR HALF BITS
F8BF B90002
5104
MOV
CX.ZOOH
.MUST HAVE AT LEAST THIS MANY ONE SIZE
5105
• PULSES BEFORE CHECKNG FOR SYNC BIT (0)
F8C! E421
5106
IH
AL. 021H
• INTERRUPT MASK REGISTER
Fac4 OC01
5107
OR
AL.I
; DISABLE TIMER INTERRUPTS
~
f8C6 E621
5108
OUT
021H. AL
Feea
5109
1.18:
; SEARCH-LOR
F8C8 F6Q6710080
5110
TEST
BIOS_BREAK, 80H
; CHECK FOR BREAK KEY
F8CD 756C
5111
JNZ
W17
; JlJ:1P IF BREAK KEY HIT
FeCF 51
5112
PUSH
CX
,SAVE REG CX
F800 ESAOOO
5113
CALL
PEAD.HALF_BIT
;GET PULSE WIDTH
F6D3 OBC9
5114
OR
CX. cx
; CHECK FOR TRANSITION
F8D5 59
5115
POP
CX
,RESTORE ONE BIT COUNTER
F806 74CS
5116
JZ
"4
1 JUMP IF NO TRANSITION
F8D8 3B03
5117
CHP
OX,BX
;CHECK PULSE WIDTH
A-69

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents