Download Print this page

IMS IMSAI 8080 User Manual page 603

Advertisement

LOOP 1:
MV I
0 0 6 9
1EB0
MV I
0 0 6 3
OEOO
00 6D DBQ 3
L 0 0 P 2 :
0 0 6 F
AN I
E 6 0 2
0 0 7 1
CA6D00
JZ
MOV
0 0 7 9
7B
ORA
B 7
0 0 7 5
0 0 7 6 C 2 8 7 0 0
0 0 7 9
DBO 2
007B
E 67 F
00 7D FE3A
0 0 7 F C 26D 0 0
0 0 8 2
MV I
1E81
0 0 8 9 C 36D 0 0
;
WE'RE PU TTIN G TOGETHER A B Y T E . FLAG B I T 7 = 1 => HIGH
;
D I G I T OF BYTE., B I T
}
0 0 8 7 F 2 A 2 0 0
X I :
00 8A E67F
00 8C
5F
0 0 8D D802
0 0 8 F
E67F
0 0 9 1
FE3A
0 0 9 3
F A 9 8 0 0
0 0 9 6
C 6 0 9
E6 OF
X 2 :
0 0 9 8
009A
87
009B
87
00 9C
87
8 7
0 0 9 D
00 9E
57
0 0 9F
C36 D00
;
PROCESS LOW D I G I T OF BY TE ,
0 0A2 DB02
Y 1 :
O0A9 E67F
0 0A6 FE3A
00A8 FAADOO
OOAB C 6 0 9
00AD E6 OF
Y 2 :
OOAF B2
0 0 3 0
D3FE
F F 2 :
0 0 8 2
57
81
0 0B3
00 B 9
9F
0 0 3 5
7A
0 0 3 6
FEFD
0 0 3 8 C2BD00
0 0 3 8
D8FE
:
f f i
OOBO 57
T 3 :
OOBE 7B
OOBF 3D
OOCO C A 09 01
00C3
3D
00 C9 CAFEOO
00C7
3D
00C8 C AF8 00
OOCB 3D
CAF300
o o c c
OOCF 3D
OODO CAE700
00D3
79
E , 0
;CL EA R FLAG
C , 0
; CLEAR CHECKSUM
I N
; GET S IO STATUS
3
2
; CHECK FOR CHARACTER
LOOP2 .
; KEEP W AITING
; GET 'FLAG
A , E
A
; I S
I T
JNZ
X I
; NO,
GO PROCESS A HEX CHAR
IN
2
; Y E S ,
WE'RE LOOKING FOR A COLON
AN I
127
; STR I P OFF P A R IT Y B I T
1 • 1
C P I
; I S
I T A COLON?
JNZ
LOOP2
; N O ,
KEEP W A IT IN G
E , 81H
; YES ,
SET FLAG FOR COUNT BYTE
JMP
LOOP2
; AND GET ANOTHER CHAR.
7= 0 => LOW D I G I T
JP
Y 1
; JUMP I F LOW D I G I T
AN I
; ELSE S T R IP OFF HIGH B I T
127
; PUT FLAG BACK IN E-REG
MOV
E ,A
I N
;G E T THE CHAR
2
AN I
'
; S T R I P OFF THE PARITY B I T
127
; I S
I T
C P I
' 9 1 +1
X2
; SK I P
J M
A D I
; I F
NOT, ADJUST IT
9
AN I
OFH
; GET HEX D I G I T
ADD
A
; SH I FT LEFT ONE 8 I T
ADD
A
;
TWO B IT S
ADD
A
;
THREE B I T S
ADD
A
; AND FOUR B I T S .
MOV
D ,A
; SAVE N IBBLE
JMP
LOOP2
THEN D E C ID E WHAT TO DO WITH
I N
2
; GET THE CHAR
;G E T R ID OF P A RIT Y B I T
AN I
127
; HEX
IS SUCH A P A IN .
C P I
' 9 1 +1
Y2
J M
A D I
9
A N !
OFH
ORA -
D
;MAKE THE BYTE
OUT
OFEH
; PUT I T
MOV
D, A
; SAVE
ADD
; ADD I T
C
MOV
C , A
; SAVE RUNNING CHECKSUM
MOV
A , D
; GET BYTE BACK
C P I
OFDH
; I S
I T
JNZ
; BRANCH I F NOT
Y3
I N
OFEH
; ELSE SUBS TITUE SWITCHS
MOV
D, A
} PUT BYTE BACK I N D
MOV
A , E
; GET FLAG I N A
A
; THEN DISPATCH
OCR
JZ
COUNT
DC R
A
JZ
HADD
DC R
A
JZ
LADD
OCR
A
JZ
TYPE
DCR
A
JZ
P U T
MOV
A ,C
;MUST BE TIM E
ZERO?
. L E .
' 9 '
I T YES
I N D REG
1
IN LIG H TS
I T
I N D REG
INTO CHECKSUM
FELOCATABLE BYTE?
0,N I T
TO CHECK THE
PGM-4 A
1 2 - 6 5

Advertisement

loading