Download Print this page

IMS IMSAI 8080 User Manual page 570

Advertisement

09D 7 CDA205
09DA D2F A0A
i
GET HERE
0 ADD 23
09 DE C D 9 2 0 5
09 E1
2 1 3 0 1 0
O'tE't C D9A 05
0 4 E 7
1 1 C 6 1 0
Q9EA 2 A 2 8 1 0
OLED 0 EO1
0 9 E F C D 8 0 0 5
0 9 F 2
3 6 0 1
SEO F:
0 9 F 4
2 2 2 5 1 0
C 3 6 7 0 0
0 9 F 7
;
GET HERE I F
;
E X I S T I N G F I L E
DLFA C D 5 2 0 5
:
i n s r
09 FD
OE02
0 9 F F
C A 0 3 0 5
0 5 0 2
OD
0 5 0 3 A6
:
e q u l
0 5 0 9
23
0 5 0 5
3 6 0 2
2 2 7 2 1 0
0 5 0 7
0 5 OA 3A C 5 1 0
0 5 0 D
OD
0 5 0 E
C A 1 8 0 5
0 5 1 1
9 0
0 5 1 2
C A 3 3 0 5
0 5 1 5
DA 2 3 0 5
;
GET HERE
NEW L I N E OR NEW L I N E
;
L I N E
It
0 5 1 8
2A 2B 1 0
L T :
0 5 1 3
5A
0 51C
5D
05 I D
CD 73 0 5
0 5 2 0
2 2 2 3 1 0
0 5 2 3
0E 02
0 5 2 5
C D 8 9 0 5
0 5 2 8
C 3 3 B 0 5
;
GET HERE I F
;
NEW L I N E .
0 5 2 8
2F
G T :
05 2C
3C
5 A
0 5 2 0
0 5 2 E
5D
0 5 2 F
CD 78 0 5
0 5 3 2
E3
0 5 3 3
C D 8 0 0 5
0 5 5 6
5 6 0 1
0 5 3 8
2 2 2 8 1 0
GET HERE TO IN S E R T CURRENT L I N E
;
0 5 3B
2 A 7 2 1 0
ZERO:
05 3 E 3 5 0 0
0 5 AO 23
0 5 9 1
1 1 C 6 1 0 -
0 5 9 9
0E01
0 5 9 6
C D 8 0 0 5
C 3 6 70 0
0 5 9 9
T H IS
ROUTINE
; WHICH
0 5 AC 2 1 8 1 1 0
F I N D :
05 AF 22 7 A10
CALL
COMO
JNC
INSR
IF
NEW L I N E
I S GREATER THAN MAXIMUM L I N E
H
I NX
CALL
LOOM
; GET NEW L I N E
LX I
H ,M A X L + 3
CALL
STOM
;MAKE I T MAXIMUM L I N E
D , I B U F - 1
LX I
LHLD
EOFP
; END OF F I L E
MV I
C , 1
CALL
LMOV
) PLACE L I N E
» ,
I
; END OF F I L E
m v i
EOF P
SHLD
; END OF F I L E
JMP
EOR
NEW L I N E MUST BE IN S E R T E D
AREA
F I N 1
CALL
j F I N O
M V I
C , 2
J Z
EQUL
C
;NEW LN NOT EQUAL TO SOME OLD
OCR
8 , M
m o v
OCX
H
MVI
M , 2
;MOVE L I N E
SHLD
IN S P
; IN S ER T L I N E
LDA
I B U F - 1
; NEW LN COUNT
c -
OCR
LT
J Z
;NEW LN NOT = OLD LN
S U B
3
; COUNT D IF F E R E N C E
J Z
ZERO
; L I N E LENGTHS EQUAL
d C
GT
IF
J OF CHARS
I N OLD L I N E
# WAS NOT EQUAL TO SOME OLD
LHLD
EOFP
; END OF F I L E
D , H
MOV
E,L
MOV
CALL
ADR
; MOVE TO ADDRESS
SHLD
EOF P
; NEW END OF F I L E ADDRESS
MVI
C , 2
RMOV
; OPEN UP F I L E
CALL
JMP
ZERO
# OF CHARS
I N OLD L I N E
c m a
IN R
A
; COUNT D IF F E R E N C E
MOV
D , H
MOV
CALL
ADR
XCHG
CALL
LMOV
; DELETE EXCESS CHAR I N F I L E
}
M, 1
M V I
E - Q - F
EOFP
SHLD
; E - 0 - F
LHLD
I NSP
; IN S E R T ADDRESS
M V I
M,ASCR
IN X
H
0 ,
LX I
IB U F --1
M V I
C , 1
; CHECK VALUE
LMOV
CALL
; PLACE L I N E
JMP
EOR
I S USED TO F I N D A LN
IS GREATER
THAN OR EQUAL TO THE CURRENT L I N E
LX I
H . A 8 U F + 3
SHLD
ADDS
; SAVE ADDRESS
NUM8ER
NUMBER
P O S I T I O N
IN F I L E
IN D IC A TOR
ADDRESS
INTO ALREAOY
L I N E
I N F I L E
IN D IC A TO R
P O S I T I O N
> S OF CHARS IN
ADDRESS
AREA
< # OF CHARS
IN
IN D IC A T O R
ADDRESS
IN T O F I L E
AREA
;NEW L I N E ADDRESS
IN F I L E
I N
THE F I L E
AREA
; 3UF FE R ADDRESS
It

Advertisement

loading