File MOD4-8E

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

*20
//MOD4-8E
	 
/DECODE MODULE 4
/BLOCK 26
	 
/CONTENTS
/   COMFL2 (COMFIL STARTER)
/   ENDCOM (COMFIL ENDER)
/   MAKDIL
/   DISK
	 
	LODSYM
/RK8E CODE.
	DSKP=6741
	DCLR=6742
	DLAG=6743
	DLCA=6744
	DRST=6745
	DLDC=6746
	DMAN=6747
	 
/DF32 CODE.
	DCMA=6601
	DMAR=6603
	DMAW=6605
	DCEA=6611
	DEAL=6615
	DFSE=6621
	DFSC=6622
	 
	 
	SEGMNT 4
	*1400
	4
	 
	ADD COMAND
	ADA I
	JMP .+4
	STC .+2
	STC COMAND
	JMP
/
	JMP DODSK
	JMP MAKDL
	JMP GONORM
	JMP GOCOM
/
GOCOM,	IOB 2
	0
/
	IOB
	6002
	CLR
	AXO
	LDF 0
	RDC
	4050
	RDC
	5051
	RDC
	6052
	RDC
	7053
	LDF 3
	WRC
	6056
	RCG
	3054
/
/
	SET I 14
	CURNUM
	SET I 17
	FILE0-1
	CLR
	LDF 3
/
	LDH
	4\DILUN
	STA I 14
	STA I 17
	LDA
	DILBLK
	STA I 14
	STA I 14
	STA I 17
	STA I 17
	LDA I
	4\3400+1
	STA I 14
	STA I 17
	JMP GOUSER
	EJECT
GONORM,	IOB 2
	0
	IOB
	6002
	CLR
	AXO
	LDF 0
	RDC
	4000
	RDC
	5001
	RDC
	6002
	RDC
	7003
	LIF 0
	JMP 20
	EJECT
	 
/ROUTINE TO MAKE A DIAL INDEX ENTRY
/GET ARGUMENTS FROM USER CALL SEQUENCE
/
/GET DIAL NAME
MAKDL,	FETCH
	STC FDV+1
	FETCH
	STC FDV+2
	FETCH
	STC FDV+3
	FETCH
	STC FDV+4
/GET TAPE UNIT AND FILE TYPE
	FETCH
	STC FDV
	ADD FDV
	BCL I
	0777		/FILE TYPE
	AZE
	JMP .+4		/SOURCE
	LDA I		/BINARY
	2		/BINARY CODE
	JMP .+3
	LDA I
	23		/SOURCE CODE
	STC FDV+5	/FILE TYPE CODE
	ADD FDV
	BCL I
	7770
	STC FDV		/TAPE UNIT
/GET FILE LENGTH
	FETCH
	STC FDV+7
/
/GET FRED; PUT IN DF 6
/FIRST SAVE DF 6 & 7
	JMP SAV67
	LDF 6
	IOB 12
	4036
	IOB 12
	5037
/JUMP TO FRED TO ENTER DIAL NAME
/FIRST TURN OFF INTERRUPT
	IOB
	6002		/IOF
	LDA I
	FDV
	LIF 6
	JMP 22		/ENTER IN INDEX
	 JMP EXISTS	/FILE ALREADY EXISTS
	 SKP		/NO ROOM FOR FILE
LV10,	XSK I RETURN	/NORMAL RETURN
LV7,	LDA
	FDV+6		/FILE BN
	STC COMNO	/RETURN AC
/TURN BACK ON INTERRUPT
	IOB
	6001		/ION
/RESTORE DF 6 & 7 AND RETURN TO USER
	JMP GET67
/
/FILE ALREADY PRESENT
/ASK IF WANT TO REPLACE
EXISTS,	TYPEC
	RMES		/REPLACE?
	JMP DECOD	/OPEN INPUT BUFFER
/
	LDH
	INBUF
	SAE I
	22		/R
	JMP LV7		/NO REPLACE, LEAVE
/REPLACE FILE USING FRED
/FIRST TURN OFF INTERRUPT
	IOB
	6002		/IOF
	LIF 6
	JMP 24		/REPLACE
	 JMP LV7	/NO ROOM
	JMP LV10	/NORMAL RETURN
/
/PARAMETER LIST FOR FRED
/
FDV,	0		/TAPE UNIT NUMBER
	0		/DIAL NAME
	0
	0
	0
	0		/FILE TYPE
/                        2 = BINARY
/                       23 = SOURCE
	0		/STARTING BN
/                       (FILLED BY FRED)
	0		/NO. OF BLOCKS
/
/DISK HANDLER
/CALL
/READ=3, WRITE=5
/XCORE
/CORE
/XDISK
/DISK
/-N. WORDS 2S COMP
/
DODSK,	FETCH		/3 READ, 5 WRITE
	BSE I
	6600
	STC D32COM	/DMAR, DMAW
	ADD D32COM
	ROL 11
	BCL I
	3777
	STC RK8COM	/DLAG
	 
	FETCH		/X CORE
	BCL I
	7770
	ROL 3
	STA I
CEXT,	0		/EX MEM BITS
	 
	FETCH		/CORE ADR
	STA I
CORLOC,	0
	PDP
	PMODE
	CLA CMA		/AC=-1
	TAD CORLOC
	LINC
	LMODE
	LDF 3
	STA
	3751		/WC
	 
	FETCH		/X DISK
	ADD RK8COM
	STC RK8COM
	 
	FETCH		/DISK ADR
	STC DADR
	CLR
	ADD DADR
	BCL I
	7000
	SCR 4
	ROL 6
	ADD CEXT
	STC DDEAL
	QAC
	ROL 1
	STC D32ADR
	 
	FETCH		/-WC, 2S COMP
	LDF 3
	STA
	3750		/WC
	SCR 10		/DIV BY 256
	STC DBLKS
	 
/CHECK TO SEE WHICH DISK IS UP. DF32 IS
/DEFAULT.
	PDP
	PMODE
	CLA CMA		/AC=7777
	DRST		/8E STATUS
	RTL		/BIT 2 TO 0
	 JMP DF32	/NO 8E, ASSUME 32
	 
/8E EXISTS, BUT IS IT ON.
	RTL		/BIT 4 TO 0
	SMA
	 JMP RK8E	/8E IS ON
	 
/DF32 RUNNER.
DF32,	CLA
	TAD DDEAL
	DEAL
	CLA
	TAD D32ADR
D32COM,	0		/DMAR OR DMAW
	DFSC		/DUN?
	 JMP .-1
	DFSE		/ERRORS?
	 JMP DF32	/YES, RETRY
	 
/OK, LEAVE.
LVDSK,	DCEA
	DCMA
	LINC
	LMODE
	JMP GOUSER
	 
	PMODE
/RK8E RUNNER.
RK8E,	DCLR		/CLEAR STATUS
	DRST		/WAIT TIL CLR
	SZA CLA
	 JMP .-2
	 
	TAD CORLOC
	DLCA
NXTBLK,	TAD CEXT
	TAD RK8COM
	DLDC		/COM GER
	TAD DADR
	DLAG		/LOAD DSKADR & GO
	DSKP		/DUN?
	 JMP .-1
	DRST		/STATUS TO AC
	CLL RAL		/CLR SUCCESS BIT
	SNA
	 JMP MR8E	/OK, NEXT BLK
	 
/8E ERROR ROUTINE. FIRST CHECK FOR SEEK 
/FAILED OR CYLINDER ADDRESS ERROR. RECAL
/FOR THESE.
BAD8E,	AND K1002	/NOTE AC RAL
	SNA CLA
	 JMP RK8E	/OTHER, RETRY
/RECAL & RETRY.
	DCLR		/CLR STATUS
	STL RTL		/AC=2
	DCLR		/RECAL
	DSKP		/WAIT DUN
	 JMP .-1
	JMP RK8E	/RETRY
	 
/ROUTINE TO SUBSEQUENT 8E BLKS.
MR8E,	ISZ DADR	/BUMP DISK ADDR
	ISZ DBLKS	/? DUN
	SKP
	JMP LVDSK	/LEAVE, DUN
	TAD K1000	/MAKE WRITE ALL
	JMP NXTBLK
	 
/CONSTANTS & STOREAGE LOCATIONS.
DADR,	0
DBLKS,	0
K1000,	1000
K1002,	1002
DDEAL,	0
D32ADR,	0
RK8COM,	0
	 
	LMODE
AA4,	0
/
/
/MOD4-8E
/OCT 75



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