File SAVBINST

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

*20
/SAVE BINARY
/TBLKS 356-360
/MBLKS 0,1,3
/ENTER WITH IF=2,DF=1
	*16
	RCG E7
	7\D7
	JMP C3	/SB
	/TAPE CONTROL
M22,	SET 2		/- NO BLKS
	F1
	SET I 5
	-41
	SET I 6
	R1
	JMP C22		/WRT HDR BLK
M22A,	JMP C2		/SET UP R1
UPSY,	LDA I 13	/SET TO MEM MAP & CONT
	APO
	JMP WRIT	/BLK USED
	JMP R2		/NOT USED
	JMP AZ		/FINI-RESTART EDITOR
	JMP M22A	/TRY NXT BLK
R2,	LDA I		/BUMP THE READ
	1
	LAM 6
	XSK I 5
	XSK I 0		/NOT THRU-BUMP XIT
	JMP 0
C2,	CLR
	ADA 6		/R1 SET TO START OF WA
	BSE I
	1000
	STA 6
	JMP 0
C22,	SET 3
	0
	JMP DTEXTW-1	/SETS XOB
	LDA 
	B2
	BCL I
	7000
	BSE I
	2000
	STC .+2
F2,	WRC		/WRITE HDR BLK
	0
	CLR
	AXO
	ADD P1		/BUMP TBLK
	ADM
	B2
	XSK I 5
	JMP .+2
	JMP AZ		/FINI ALL 8K
	XSK I 2
	JMP 3
	JMP AZ		/FINI ALL BLKS USED
WRIT,	SET 3
	0
	CLR
	AXO
	RDC U
R1,	A7		/MB C2,R2-READ WA
	JMP DTEXTW-1
	0		/MB S1-WRC
B2,	0		/MB T1,F2-HDR & ACTIVE BLKS
	CLR
	AXO
	ADD P1		/BUMP TBLK
	ADM
	B2
	XSK I 2
	JMP 3		/NOT THRU
	JMP AZ
P1,	1
F1,	0		/SET TO -(NO TBLKS USED) AT CONT+5
/DISPLAY NO & QUIT
N1,	CLR
	SET I 1
	340
	DSC I
	3077
	DSC I
	7706
	SET I 1
	352
	DSC I
	4177
	DSC I
	7741
	KST
	JMP N1+1
	JMP AZ
	/SAVE BINARY
C3,	RDC E7    /LAST BLK-SB TO 5400
	3\D7+60
	RDC U     /HDR BLK TP1
 	2\A7+57
	CLR
	STC BUFF  /IN CASE NOT LOAD AND GO
	LDA
	E6     /EQ 0 IF NOT L&G
/B0 EQ 0 IF LINC; EQ 1 IF 8MODE; 8 FLD IS IN 9-11
	AZE I
	JMP CONT  /NOT L&G
	APO
	JMP PDPMOD  /8 MODE
	ROL 2      /LINC MODE
	BCL I
	7773     /MAX OF 7
	STA
	E6
	LDA
	E6+1    /2 LEAST SIG BITS OF IF
/12 BIT 8 MODE ADDR
	ROL 2
	BCL I
	7774
	ADA  		/5BITS
	E6
	BSE I    /MAKE AN LIF
	600
	STC BUFF
	LDA
	E6+1    /STARTING ADDR
	BSE I    /MAKE A JMP
	6000
	STC BUFF+1
	JMP CONT  /ALL SET
PDPMOD, LDA I  /SET UP FOR 8MOD START
	PDP
	STC BUFF
	LDA I
	5777  /JMP I 7577
	STC BUFF+2
	LDA    /CHK FIELD
	E6
	ROL 3
	BCL I    /8K FOR THIS VERSION
	7767
	BSE I    /MAKE A CIF
	6202
	STC BUFF+1
	LDA
	E6+1    /STARTING ADDR
	STC BUFF+3
CONT,	SET I 13
	USENO-1
	LDA I 13 /NO BLKS USED
	ADD P1  /+1 FOR HDR
	COM
	STC F1
	ADA I
	3
	STC Q2
	ADA I
	1\A7
	STC R1
	JMP S1	/SET UP TAPE ORDERS USINUSING E6+6
	JMP Z1	/READ IN THE INDEX BLK
	JMP Y1	/RTN FOR N0 INDEX-MAKE ONE
	JMP X1	/SEARCH INDEX FOR NAME IN E6+2
	JMP .+4	/NOT FOUND
	JMP W1	/CHK IF SYMBOLIC ONLY
	JMP L1	/NO-DISPLAY REPLACE FOR VERIFY
	JMP .+3		/BIN ENTRY MT
/SEARCHES FOR AVAIL SLOT-REPLACE IF NONE
	JMP V1  	
/RTN FOR NO MTS-NO & QUIT
	JMP N1
	SET 4  		/SAVE XR PTR
	2
/LOCATES BEST SET OF TBLKS-RTNS WITH BEGIN TBLK IN AC
	JMP U1
	JMP T1		/UPDATE & WRT XR
	JMP M22
	/FILE SUBS
/CHK IF THIS ENTRY HAS BINARY
W1,	SET 5
	2
	LDA I 5
	APO	/BINARESENT?
	XSK I 0	/NO
	JMP 0
/ENTER TO VERIFY 1ST HALF FOR SPACE
H1,	LDA
	6
/ENTRANCE FOR 2ND HALF SPACE CHK
	ADD F1
	AZE I
	COM
	APO
	XSK I 0
	JMP 0
/ADJUSTS INDEX PTR TO START OF NXT SLOT
K1,	LDA
	2
	BSE I
	7007
	STC 2
	XSK 2
	JMP 0
	JMP 1	/END OF INDEX-XIT FROM X1
/READ AND CHECK INDEX
Z1,	SET 3
	0
	JMP DTEXTW-1
	RCG
	1\G7
	CLR
	AXO
	LDA 
	3000
	SHD I
	5700
	XSK I 3
	JMP 3
/MAKE AN INDEX-FILL WITH 5757
Y1,	SET 1
	0
	SET I 2
	2777
	LDA I
	5757
	STA I 2
	XSK 2
	JMP .-2
	JMP 1
/SEARCH INDEX FOR THE NAME IN E6
X1,	SET 1
	0
	SET I 2
	3000
	SET  I 3
	-4
	SET I 4
	E6+1
	JMP K1	/BUMP THE PTR TO THE NXT ENTRY
	LDA I 2
	SAE I 4
	JMP X1+4
	XSK I 3
	JMP .-4	/CHK THE WHOLE NAME-8CHARS
	LDA I	/FOUND IT - NB EF V1 RTN
Q2,	0  		/SET TO 3 AT CONT
	ADM 		/STEP PTR TO BIN ENTRY
	2
	XSK I 1
	JMP 1
/DISPLAY REPLACE TO VERIFY
L1,	SET 3
	0
	SET I 1
	234
	SET I 4
	H3-4000	/REPLACE TABLE
	LDH I 4
	SHD I
	4300
	JMP K2	/COMPLETE CYCLE-CHK TELETYPE
	ROL 1
	ADA I
	A6
	STC 5
	DSC 5
	DSC I 5
	LDA I
	2
	ADD 1
	STC 1
	JMP L1+6
/CHK ON OPERATOR RESPONSE
K2,	KST
	JMP L1+2
	LIF 3
	JMP KBDOPR  /CHK FOR AN R
	SAE I
	22
	JMP AZ   /NOT AN R-GET OUT
	SET 5
	2
	LDA I   /BLANK BIN ENTRY
	5757
	STA 5
	STA I 5
	JMP 3
/FIND A SLOT IN THE INDEX
V1,	SET I 4
	E6+1
	SET 1
	0
	SET I 2  	/START OF XR
	3000
	JMP K1		/INITS 2 TO NXT SLOT
	SET 5
	2
	LDA I 2
	SAE I
	5757
	JMP V1+6 	/TAKEN ALREADY
	LDA I 4
	STA I 5		/NXT 2 CHARS OF FILENAME
	SRO I
	3567		/4 PASSES TO GET ALL 8 CHARS
	JMP .-4
	SET 2
	5
	JMP Q2-1	/SETS 2-BUMPS XIT-XITS
	*1400
U1,	SET 10
	0
	SET I 6		/DYNAMICALLY RESET TO NEAREST TBLK
	-C7
	LDA I
	7777
	STC E1		/SW OFF-2ND HALF OF FILE AREA
/RTN WITH 6 SET TO -(CLOSEST TBLK)
	JMP B1
	SET 7
	6
	CLR
	STC E1		/SW ON-1ST HALF
	SET I 6
	F7
/RTN WITH 6 SET TO CLOSEST TBLK-1ST HALF
	JMP B1
	/FIND NEAREST OF TWO
G1,	LDA 
	7
	COM
	ADD 6
	ADA I
	-G7-G7
	APO		/SKP IF 2ND HALF CLOSER
	JMP .+3		/TRY 2ND HALF 1ST
	JMP H1		/GRANTED ITS CLOSER-DOES IT FIT ?
	JMP 10		/OK-XIT,AC HAS TBLK FOR BEG BLK
	LDA		/TRY 2ND HALF
	7
	ADA I
	1000		/UPPER BOUND
	JMP H1+2
	JMP .+4		/2ND HALF OK-AC HAS BEG TBLK
	JMP H1		/NG-TRY 1ST HALF
	JMP 10
	JMP N1
	LDA 
	7
	COM
	JMP 10
/SEARCH ALL ACTIVE ENTRIES TO SEE IF 6,THE BEST TBLK HAS TO
/BE RESET-IE IF THE 1ST(LAST) TBLK OF AN ENTRY IS GR(LS)
/6 BUT LS(GR) 6+(-)NO BLKS
B1,	SET 1
	0
	SET I 2
	7000
	JMP K1
	LDH I 2
	SHD I
	5700
	JMP .-4
	XSK I 2		/SKIP PAST THE NAME
	XSK I 2
	XSK I 2
/SET 11,12 TO BEGTBLK,-END TBLK
	JMP C1
/IF ACTIVE,COMPARE VS BASE IN 6,REPLACE IF NEC.
	JMP D1
/REPEAT FOR BINARY ENTRY
	JMP C1
	JMP D1
	JMP B1+4	/NEXT XR SLOT
/SET 11,12 TO BOUNDARIES-THIS ENTRY
C1,	LDA I 2		/STARTING TBLK
	BCL I
	7000
	STA
	11
	ADA I 2		/NO TBLKS
	APO
	XSK I 0		/INACTIVE ENTRY
	COM
	STA		/- ENDING TBLK
	12
	SRO I
/7777 IF 2ND HALF VIA U1+6
/0 IF 1ST HALF VIA U1+11
E1,	0
	JMP 0
/1ST HALF-SWAP THE BOUNDARIES
	SET 12
	11
	STC 11
	JMP 0
/COMPARE THIS SET VS 6-SWAP IF BETTER
D1,	LDA		/CLOSEST TBLK-THIS ENTRY
	11
	ADD 6
	AZE I
	COM
	APO
	JMP 0		/CLOSER-NO CHG
	ADD F1
	APO
	AZE I
	JMP 0		/BEYOND 6+NO TBLKS-NO CHG
	SET 6
	12
	JMP B1+2	/RESET 6 SO RECYCLE XR
/WRITE OUT THE INDEX
T1,	SET 3
	0
	STA 4		/INDEX TBLK
	BCL I
	7000
	BSE I
	1000
	STC B2
	ADD F1
	COM
	STA I 4		/NO BLKS TO XR
	KST I
	JMP AZ
	JMP DTEXTW-1	/SETS XOB
TJ,	0		/MB S1-WCG XR
	1\G7
	CLR
	AXO
	JMP 3
/REPLACE TABLE
H3,	TEXT XREPLACE?X
	4377
/SETS UP AC & LINK FOR TAPE UNITS
SETS,	CLR
	LDA
	E6+6
	ROR I 1	/INSTR UNIT BIT TO LINC
	BCL I	/EXT TAPE UNIT BITS
	7774
	JMP 0
	/WRITE UNIT
S1,	SET 3
	0
	JMP SETS
	STC DTEXTW
	ROL I 4
	BSE I
	WRC
	STA
	B2-1
	STA
	F2
	BSE I
	0001
	STA
	TJ
	BCL I
	4
	STC Z1+3
	JMP 3
	LDA I
DTEXTW,	0
	AXO
	CLR
	JMP 0
/RESTART THE EDITOR
AZ,	SET I 15	
	LDF 3
	CLR
	AXO
	JMP 15
J9=.
*J9+7
D7=300
A7=370
J7=430
B7=0
E7=0
C7=470
E6=2371
G7=346
F7=270
A6=2001
KBDOPR=1400
USENO=1337
BUFF=1000



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