Download Print this page

IMS IMSAI 8080 User Manual page 395

Advertisement

2990
MV I
3000 RESET:
PUSH
3010
XRA
3020
MOV
3030 TRAPL:
IN
3040
RAR
3050
JC
MV I
3060 GBIT0:
3070 LEDGE:
IN
3080
RAR
3090
JNC
3100 TIMPL:
INR
3110
JMP
3120
IN
3130
RAR
3140
JC
3150 TIMPN:
DCR
3160
JZ
3170
IN
3180
RAR
3190
JNC
3200 BITSD:
MCV
RAR
3210
3220
MOV
3230
SUI
ORA
3240
3250
JZ
3260
DCR
3270
JNZ
3237 STOPL:
IN
3290
RAR
3300
JNC
3310
MCV
POP
3320
3330
POP
3340
RET
3350
7
3360 ? WRITE HIT STANDARD BLOCK
3370 ?
3380 WRITT:
MVI
3390
CALL
3400
MOV
3410
CALL
3420
MOV
3430
CALL
3440
RET
3450 ;
3460
READ HIT STANDARD BLOCK
7
3470 ;
3480 READT:
• CALL
3490
CPI
3500
JZ
3510
MVI
3520
3TC
3530
RET
3540 READX:
CALL
3550
CMP
3560
JZ
3570
ORA
3580
JZ
11
34
E, 1
?NOT LOOKING FOR A SYNC FLAG
3
;SAVE REGISTER
A
7RESET A & CARRY
B, A
;INITIALIZE BYTE HOLDER
UCRIP
;WAIT FOR TRAILING PULSE...
TRAPL
C,0
;INITIALIZE PULSE LENGTH COUNT
UCRIP
yWAIT FOR LEADING EDGE OF SIGNAL
LEDGE
?BUMP PULSE LENGTH COUNT
C
;(SYMMETRICAL WITH NEXT LOO?)
$
UCRIP
, ' SIGNAL STILL PRESENT?...
TIMPL
;LOOP UNTIL SIGNAL OFF
C
COUNT BACK DOWN
7
BITSD
yBIT STATE DETERMINED IF 0
UCRIP
ySIGNAL STILL OFF?...
TIMPN
;LOOP UNTIL NEXT SIGNAL
A, B
;3IT STATE DETERMINED, GET BYTE
;INSERT NEW BIT
3, A
SAVE BYTE AGAIN
7
SYNCH
IS IT A SYNC?
7
E
LOOKING FOR A SYNC?
7
STOPL
? WAIT FOR STOP BIT IF YES
D
COUNT DOWN 3ITS
7
GBIT0
?LOOP UNTIL ALL 3ITS READ
UCRIP
WAIT FOR STOP BIT PULSE...
7
STOPL
A, B
?PUT BYTE IN A
B
PESTORE SAVED REGISTERS...
7
D
TRAILER.
A,ETXCH
GET END-OF-TEXT CHAR
7
WRITS
? WRITS IT TO TAPE
A,D
;GST HIGH BYTE OF CHECKSUM
WRITS
;WRITE IT
A, E
;GET LOW BYTE OF CHECKSUM
WRITB
»•WRITE IT
TRAILER.
RCAD3
READ A BYTE FROM TAPE
7
STXCH
;IS IT AN 5TX?
READX
?CONTINUE IF IT IS
A , E RR 4
NO ETX FOUND
7
;NCTE ERROR
;A30RT
READS
?READ NEXT BYTE
D
; IS IT HIGH CHECKSUM BYTE?
READY
CCNTINÜE IF IT IS
7
A
IS IT ZERO?
7
READY
;CONTIMUS IF IT IS

Advertisement

loading