File COPYFILE

Directory of image this file is from
This file as a plain text file

[LAP5 COPY FILE
[BLOCKS 314-316
[QUARTERS 0-3
$15
RCG 7E
7|7D
JMP 1B
[TAPE TRANSFERS
#1H LDA i 17
APO
JMP 1M
STC 2B
LDA i 17
STC 1R
LDA i 17
STC 2
#2M SET 3
2
JMP 2S
#2N STOP TAPE-READ DONE OR FULL
0
IBZ
JMP p-1
SET 2
3
JMP 2A [WRI
JMP p+3 [WRI DONE
JMP 2X [MOTION STOP
JMP 2M 
JMP 2X
JMP 1H
[MTB NEW
#2X SET 1
0
MOVE TAPE
1
IBZ
JMP p-1
JMP 1
[RDC, N BLOCKS
#2S SET 1
0
SET i 4
1R
JMP 1W
READ TAPE
#1R BN
JMP 1X
AZE
JMP 1R-1
JMP 1
[WRITE N BLOCKS
#2A SET 1
0
SET i 4
2B
JMP 1W
WRITE TAPE
#2B BN
JMP 1X
AZE
JMP 2B-1
XSK i 1
JMP 1
#1W CLR
ADA 4
ADA i
1000 OR 2000
STA 4
JMP 0
#1X LDA i
1001
LAM 4
BCL i
777
XSK i 2
JMP 0
JMP 1
[CHECK ALL TRANSFERS
#1M SET i 17
1B-1
LDA i 17
APO
JMP 1S
STC 1T
LDA i 17
STC 5
LDA i 17
STC 2
CHECK TAPE
#1T BN
AZE
JMP 1U [ERROR
ADD 1T
ADD 2X+3 [1
STC 1T
XSK i 2
JMP 1T-1
JMP 1M+2
[ERROR
#1U LDA
1T
STC 2B
SET 3
2
LDA 17 [-N BLKS
COM    [+N BLKS
ADD 2  [-N LEFT
ADD 5
STC 1R
SET i 2
#1V -1
JMP 2S
SET i 2
-1
JMP 2A
SET 2
3
JMP 1T-1
[FINISHED
#1S SRO i
-0 [NOT OK IF 0
JMP 15 [OK IF ONES
RDC i 7E
4|7D+4  [GRIDS
RDC 7E
3|7D+24 ["NO" FOR AM
ADDp-5 [CHANGE AM
JMP 1401
[FILE ORGANIZE
#1B SET 1
6E+6 [UNIT
RDC i 7E
1|7D+15
RDC i 7E
2|7D+16
CLR
ADD 1
BSE i
RDC
STA
3A+5 [RDC OLD-INDEX
ADD 2N+5 [3
STA
2N   [MTB OLD
ADA i
15
STA
3A
STA
1R-1 [RDC i OLD
BCO i
10
ADA i
-17
STA
3B  [RCG NEW
ADD 2M+1  [2
STA
2X+2 [MTB NEW
ADD 2M+1  [2
STA
3C+2 [WCG NEW
ADA i
21
STA
2B-1 [WRI i NEW
ADD 2X+3   [1
STC 1T-1 [CHK i
ADD 1
SAE i
7E
#1A JMP 1J
JMP 3A
JMP 3B
[CHECK OLD INDEX
SET i 1
3777
LDA i 1
SAE i
5757
JMP 15 [NO OLD INDEX
SET i 2
2777
LDA i 2
SHD i
5700
JMP 6A-2
[MAKE NEW INDEX
SET i 3
2777
LDA i
5757
STA i 3
XSK 3
JMP p-2
SET i 17
5F-1
[INDEX COMPARE AND TRANSFER TABLE MAKE-UP
#6A LDA i
APO
STC 6X
ADD 5D+1 [APO i
STC 6U+1
SET i 14
5B-1    [TABLE
JMP 6Z-3
JMP 6J [NO OLD FWD LEFT
[FIND NEAREST OLD BACKWARD
JMP 5D
JMP 6Z
JMP 6K [NO OLD BWD LEFT
[FIND NEAREST FWD GAP
JMP 6S
JMP 6L [NO FWD GAP
#5A JMP 6M [FIND BWD GAP
JMP 5E [NO BWD  GAP--TRANSFER FORWARD
[TRANSFER NEAREST
#5C LDA
5B+4 [FWD GAP
ADD 5B+5 [BWD GAP
ADA i
-7G-7G [MIDPOINT
APO i
JMP 6L+2 [ASSIGN BACKWARD
#5E LDA [ASSIGN FWD
5B+4
COM
STC 5B+5
JMP 4A
[NO OLD FWD LEFT
#6J JMP 5D
JMP 6Z
JMP 3C [NO OLD  BWD LEFT. WRITE NEW INDEX AND CONTINUE
[FIND FARTHEST BWD  ENTRY
SET i 14
5B-1
LDA i
APO i
STC 6U+1
JMP 6Z-3
GOON
[FIND NEAREST FWD GAP
JMP 5A-2
[FIX NEAREST BWD ENTRY
#5D LDA i
APO i
STC 6X
ADD 6A+1 [APO
STC 6U+1
LDA i
1000
STC 6U
SET i 14
5B+1
JMP 0
[NO BWD ENTRY--FIND FARTHEST FWD
#6K LDA i
APO
STC 6X
JMP 5A-4
[TABLE MAKE-UP SUBROUTINES
[FIND NEAREST, FARTHEST BWD OR FWD ENTRY
LDA i
-1000
STC 6U
#6Z SET 10
0
SET i 6
2000
SET i 5
-100
CLR
STC 6V+1
#6T JMP 6W [FIX ADDRESS
JMP 6V [DONE
LDA i
4
ADD 6
STC 4
JMP 6Y [MS CHECK
JMP 6Y [BIN CHK
LDA i 6
JMP 6T
#6V SRO i
TEST
XSK i 10 [FOUND p+2
JMP 10 [NO ENTRIES LEFT-p+1
[ENTRY CHECK
#6Y LDA i 4  [BN
BCL i
7000
STC p+5
LDA i 4
APO
JMP 0 [NO ENTRY
LDA i
NEW BN
ADA i
-7G [MIDPOINT
#6X APO OR APO i
JMP 0 [ENTRY WRONG DIRECTION
STA i
-DIFFERENCE
ADA i
#6U -1000 OR +1000  [POSITIVE DIFFERENCE
APO OR APO i
JMP 0 [NEW NOT CLOSER
LDA [NEW CLOSER
6U-2
COM 
STC 6U
COM 
STC 6V+1
LDA
6
STA i 14 [NAME POINTER
LDA 
4
STA i 14 [#BLKS POINTER
LDA i
-2
ADM
14
JMP 0
[ADDRESS FIX
#6W LDA
6
BSE i
7
STC 6
XSK i 5
XSK i 0 [NOT DONE, p+2
JMP 0 [DONE, p+1
[FWD GAP SEARCH CONTROL
#6S SET i 7
-7C
SET 10
0
SET 4
5B+1 [# BLKS POINTER
LDA i
7777  [IF 1, FWD
JMP 6P
LDA
7
COM
STC 5B+4 [FWD GAP BN
ADD 7  [-FWD
ADD 5F-6 [1OOO
JMP 6N+2 [CHECK BOUNDS
XSK i 10 [OK,p+2
JMP 10 [NOT OK
[BWD GAP SEARCH CONTROL
#6M SET 4
5B+3
SET i 7
7F  [UPPER BOUND
SET 10
0
CLR
JMP 6P
JMP 6N
JMP p+2
JMP 10
STC 5B+5
XSK i 10
JMP 10
[BOUNDS CHECK
#6N LDA
7
ADD 4F [-N BLKS TO MOVE
AZE i
COM
APO
XSK i 0 [NOT OK
JMP 0    [OK
[NO FWD GAP
#6L JMP 6M [FIND BWD GAP
JMP 4H [NO FIT--FREE GAP SEARCH
[TRANSFER BWD
LDA
5B+2
STC 5B
ADD 5B+3
STC 5B+1
ADD 5B+5
STC 5B+4
[NAME MATCH
#4A LDA
5B+1
BCL i
7774 [1 0R 3
STC 4B+6
SET i 6  [NEW NAME
3000
SET i 5
-100
ADD 1V [-1
ADM
5B+1
SET i 2
-4
SET 4  [OLD NAME
5B
JMP 6W [ADDRESS FIX
JMP 4E [DONE, NO MATCH
#4B LDA i 6
SAE i 4
JMP 4B-6
XSK i 2
JMP 4B
LDA i  [MATCH
1 OR 3,BIN OR MS
ADM
6
SET 5  [SAVE BN POINTER,NEW
6
LDA i 5
APO i
JMP 4G [ENTRY ALREADY ,ERASE
SET 4
5B+1
LDA 4
BCL i
777  [QN
BSE
5B+4 [NEW BN TO INDEX
STA 6
BCL i
7000
STA i 17
LDA 4
BCL i
7000 [OLD BN TO INDEX
STA i 17
LDA i 4 [# BLKS
STA i 6
COM
STA i 17
[RESET BOUNDS
LDA
5B+5
APO
JMP p+3
STC 6M+3
JMP 4G
STC 6S+1
[ERASE OLD
#4G SET 4
5B+1
LDA i
5757
STA 4
STA i 4
JMP 6A
[GAP SEARCH
#6P STC 6R [SRO FWD OR BWD
SET 1
0
LDA 4
COM
STC 4F [-N TO SAVE
SET i 6
3007
XSK 6
JMP p+2
JMP 1 [DONE
LDA i
4
ADM
6
JMP 4C
JMP 4D
JMP 4C
JMP 4D
JMP 6P+10
[GET BN
#4C LDA i 6
BCL i
7000
STA
11
ADA i 6
APO
XSK i 0 [NO ENTRY
COM
STA
12
SRO i
#6R FWD OR BWD
JMP 0 [FWD
SET 12
11
STC 11
JMP 0
[BN COMPARE
#4D LDA
11 [IF BWD THEN COMP OF BN+#BLKS
ADD 7
AZE i
COM
APO
JMP 0 [WRONG DIRECTION
ADA i
#4F -N TO MOVE
APO
AZE i
JMP 0
SET 7
12
JMP 6P+6
[FIND SLOT, INSERT NAME
#4E SET i 6
3000
SET i 5
-100
JMP 6W
JMP 4K [DONE,NO SLOT, ERASE
SET 4 [SAVE SLOT
6
LDA i 6
SAE i
5757
JMP 4E+4
SET 6 [SLOT
4
SET 4
5B
LDA i 4
STA i 6
SRO i
3567
JMP p-4 [NOT DONE
JMP 4B+5
[FREE GAP SEARCH
[ANYTHING FWD
#4H SET i 7
-7C
JMP 6S+2
JMP p+2 [NO FWD GAP
JMP 5E [TRANSFER FWD
[TRY BWD GAP FOR FWD ENTRY
SET i 7
7F
SET 4
5B+1
JMP 6M+2
JMP 4L [NO FIT ANYWHERE
LDA
5B+5
STC 5B+4
ADD 6M+3  [KEEP OLD BOUND ON BWD
STC 5B+5
JMP 4A
[ERASE ENTRY
#4L JMP 4J
ADD 1V [-1
ADD 5B+1
STC 4
JMP 4G+2
[NO INDICATOR
#4J CLR
STC 1S+1
JMP 0
[NO SLOT
#4K JMP 4J
JMP 4G
[RDC OLD UNIT
#3A READ TAPE
4|7G [INDEX
ADD p-1
ADD 1X+1 [1001
STC p+2
READ TAPE
BN
JMP 0
[RCG NEW INDEX
#3B READ TAPE
1|7G [INDEX
JMP 0
[INVERT INDEX READ
#1J JMP 3B
JMP 3A
JMP 1A+3
[GAP SEARCH STORE TABLE
#5B NAME POINTER-1  FOR NEAREST FWD ENTRY  OR FARTHEST BWD ENTRY
BLKS POINTER
NAME POINTER-1  FOR NEAREST BWD ENTRY  OR FARTHEST FWD ENTRY
BLKS POINTER
FWD GAP
BWD GAP
[WCG NEW INDEX
#3C KST i
JMP 15 [FORGET IT
WRITE TAPE
1|7G
ADD 6A-6 [TABLE TERMINATOR
STA i 17
[TABLE REORGANIZE
#1C SET i 17
1B-1 [NEW TABLE
SET i 14
5F-3 [OLD TABLE
LDA i
2
ADM
14
LDA i 14
SAE i
5757
JMP p+2
JMP 1E [TABLE END
APO
JMP 1C+4 [NO ENTRY
ADA i
-7G  [MIDPOINT
#1D APO
JMP 1C+4 [WRONG DIRECTION
STA i
NEW DIFF+OLD DIFF
ADA i
-1000 [OLD DIFF
APO i
JMP 1C+4 [KEEP  OLD DIFF
LDA  [KEEP NEW
p-6
COM
STC p-6
SET 13
14
JMP 1C+4
[TABLE END
#1E LDA i
-1000
SAE
1D+5
JMP 1F [TRANSFER ENTRY
[NONE FOUND TO MOVE
SRO i
5252
JMP 1G [FINISHED
LDA i  [DO BWD
APO i
STC 1D
JMP 1C+2
[TRANSFER ENTRY
#1F STC 1D+5
LDA 13  [NEW BN
STA i 17
CLR
COM
STA 13 [ERASE OLD
LDA i 13 [OLD BN
STA i 17
LDA i 13 [-N BLKS
STA i 17
JMP 1C+2
[FINISHED
#1G COM   [1000
STC 1W+3 [BSE FOR TAPES
LDA 14 [5757
STA i 17 [SAVE  TERMINATOR
LDA
17
ADA i
-377
APO
JMP p+5 [Q0
LDA i
1000  [Q1
ADM
1W+3
SET i 17 
1B-1 [TAPE TRANSFER
JMP 1H
#5F FIRST TABLE
7D=300
7C=430
7E=0
6E=2371
7F=270
7G=426
[CFJAN20



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search