IBM 5150 Hardware Reference Manual page 265

Hide thumbs Also See for 5150:
Table of Contents

Advertisement

LOC OBJ
LINE
SOURCE
F97E EBF9
5268
"20
5269
ENDP
5270
; ---------­ ---------------------------------­
f9BO
5271
NEAR
5272
PURPOSE:
5273
TO COMPUTE TIME TIll
~EXT
DATA
5274
TRANSITION (EDGE)
5275
5276
; ON ENTRY:
5Z77
;
EDGE_CNT CONTAINS LAST EDGE COUNT
5278
5279
; ON EXIT:
52&0
;
AX CONTAINS OLD LAST EDGE COUNT
5281
I
BX CONTAlNS PULSE
WIDTH
{HALF Bn I
5282
; -------------­ ---------.--------------. ­
F'eo
696400
5283
MOV
ex.
100
j
SET TIME TO WAn FOR BIT
F983 BA266BOO
5284
MOV
AH.LAST_VAl
JGET PRESENT INPUT VALUE
F987
5285
Nee:
~
Fm-H-BIT
F987 E462
5286
IN
AL.POIH_C
; INPUT DATA
BIT
f989 2410
5237
AND
AL,OlOH
;MASK OFF EXTRANEOUS
BITS
F988 3AC4­
5288
CMP
AL,AH
;SAME AS BEFORE?
FgeD ElFS
5269
LOOPE
"22
; LOOP TILL
IT
CHANGES
F9SF A26BOO
5290
MOV
LAST_VAL,AL
JUPDATE LAST_VAL WITH NEW VALUE
F992 BOOD
5291
MOV
Al;O
jREAD TIMER'S COUNTER eONHA.ND
F9'94 E643
5292
OUT
TIM_CTL,AL
; LATCH COUNTER
F996 E440
5293
HI
AL,
TIMERO
;GET LS
eYTe
F998 8AEO
52'4
I10Y
AH,Al
,SAVE
IN
Aft
fY.,,,, 1:'"0
SUS
IN
Al, TIMERO
,GET
HS
BYTE
F99C 8bC"
5296
XCHG
Al,AH
,XCHG Al,AH
F99E 8Bl£6700
5n7
MOV
BX,EDGE_CNT
; BX GETS LAST EDGE
COUNT
F942 2B08
5298
SUB
BX,AX
; SET BX EQUAL TO HALF BIT PERIOD
F9"4 1\36700
5299
MOV
EDGE_CNT ,AX
; UPDATE EDGE CO""'T;
F9A7 Cl
5300
RET
5301
!fEAD_HALF
_BIT
ENDP
5302
;--------------------_
...
_--_
. .
_------------­
F9A8
5303
PROC
NEAR
5304
5305
; WRITE
1 OR
MORE
256
BYTE BLOCKS TO CASSETTE.
5306
THE OATA IS PADDED TO FILL OUT THE LAST 256 BYTE BLOCK.
5307
530S
;
ON ENTRY:
5309
BX POINTS TO MEMORY BUFFER ADDRESS
5310
ex
CONTAINS
HUMBER OF BYTES TO WRITE
5311
;:512
;
ott
EXIT:
5313
BX POINTS
1
BYTE PAST LAST BYTE WRITT-EN TO CASSETTE
5314
ex IS ZERO
5315
;-------------------------------------------­
F9AS 53
5316
PUSH
ax
F9.9 51
5317
PUSIt
cx
F9,u, E461
5318
IN
AL,PORT_B
;DISABLE SPEAKER
f9AC 24FO
53n
AND
AL,NOT 02H
F9AE DeOI
5320
OR
AL. 01H
ENABLE TInER
F980 E661
5321
OUT
PORT_B.AL
F962 BOB6
5322
MOV
AL,OB6H
SET UP TIMER .. - MODE 3 SQUARE WAVE
F964 E643
$3,3
OUT
TIM_CTLtAl
F9B6 E8A600
5324
CALL
BEGIN.OP
; START MOTOR AND DELAY
F9B9 BeA004
5325
NOV
AX,llS4
; SET NORMAL BIT SIZE
F98C E88500
5326
CALL
""
J
SET_TIMER
F9BF MOOOS
5327
MOV
CX.0800H
;SH CX FOR lEADER BYTE COUNT
F9C2
5328
W23:
; WRITE LEADER
F9C2 F9
53,9
STC
; WR
ITE ONE BITS
F9Cl E86800
5330
CALL
Wl?ITE_BIT
F9C6 EZFA
5331
LOOP
"e>
; LOOP • TIL LEADER IS WRITTEN
F9C8 F8
5332
CLC
;tRITE SYNC BIT
to J
F9C9 £86200
5333
CALL
WRITE...8IT
F9CC S9
5334
pop
ex
;RESTORE REGS CX,BX
FqCD 58
5335
POP
BX
F9CE B016
5336
MoV
AL.
16M
I WRITE
SYH CHARACTER
F900 E84400
5337
CALL
WRITE_BYTE
A-72

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents