File MTA.12

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

/MTA HANDLER MODIFIED FOR BUILD  OS/12
/ BY J.DONNELLY   8/23/72
/ MTA HANDLER FOR PS/8
/  G. TECH.
/ DIRECTORY VERSION IN ONE PAGE!

	VERSION="G-300

/ EACH "BLOCK" ON TAPE CONSISTS OF 3 RECORDS.
/	1. A SINGLE WORD RECORD CONTAINING THE BLK NO.
/	2. 256 OR 128 WORDS OF DATA
/	3. AN END-OF-FILE RECORD
/
/ EACH BLOCK IS ABOUT 3.75 INCHES LONG
EOF=0050
FORWAR=0060
REVERS=0070
REWIND=0010
WRITE=0040
TEST=3776
READ=0020
MTSF=6701
MTCM=6714
MTCR=6711
MTTR=6721
MTAF=6712
MTRC=6724
MTLC=6716
MTRS=6706
MTGO=6722
MCAF=6732

*0
	-1		/ONE DEVICE
	DEVICE MTA
	DEVICE MTA
	4200
	0000		/ENTRY POINT OFFSET
	ZBLOCK 2
*200
/ MAIN MAG TAPE HANDLER
/
MTA,	VERSION		/SINGLE ENTRY ONLY!
			/NOTE!! ACC MUST BE CLEAR
	RDF
	TAD CDFCIF
	DCA ERROR
	RIF		/WHAT IS THE FIELD WE'RE IN?
	TAD KCDF
	DCA MFIELD+1
	TAD I MTA
	DCA MTFUNC
	ISZ MTA
	TAD I MTA
	DCA MTADDR
	ISZ MTA
	TAD I MTA
	DCA BLOCK
	ISZ MTA
	JMS MFIELD
	MCAF		/POWER CLEAR TAPE CONTROL.
	TAD MTFUNC
	AND P3700	/SAVE PAGECOUNT
	CLL RTL
	RTL
	RTL		/BLOCKS IN ACC, EVEN/ODD IN LONK.
	SZL		/SKIP IF EVEN # PAGES
	IAC
	CIA
	DCA BLCNTR	/A WELL-ROUNDED COUNT!
	SZL		/SKIP IF EVEN # PAGES
	TAD BLCNTR
	DCA HALFBLOCK	/WATCH THIS, IT IS SUPER-TRICKY!
	JMP NEXTBL
SEARCH,	SMA		/FIND THE BLOCK
	JMP NEXTBLOCK-1
	TAD (-1)
	DCA BCNTR
	STA CLL RTL	/-3 TO ACC
	TAD BLOCK
	SNL CLA		/SKIP IF BLOCK < 3
	JMP SPACE
	DCA BCNTR
	TAD (REWIND-READ)
	JMP NEXTBLOCK
SPACE,	TAD (REVERSE-READ)
	JMS MOVE
P200,	 200
PREAD,	 READ
MTWC,	 7752
	 EOF
	ISZ BCNTR	/SKIP IF FINISHED SPACING
	JMP SPACE
	CLA CLL
NEXTBLOCK, JMS MOVE
	 1
MTCA,	 7753
BCNTR,	 0		/COUNTS BLOCK-SPACING, ALSO 0.
	 TEST
	JMP NEXTBLOCK	/BLOCK RECORD INCORRECT
MTLOOP,	CDF
	TAD I MTCA
	JMS MFIELD
	CIA CLL
	TAD BLOCK
	SZA		/SKIP IF BLOCK FOUND
	JMP SEARCH
	ISZ HALFBLOCK	/SKIP IF LASTBLOCK AND # PAGES IS ODD
	TAD P200	/FULL BLOCK
	TAD P200
	DCA MTADDR-1	/NUM OF WORDS TO READ/WRITE
	TAD MTFUNC	/GET FUNCTION WORD AGAIN
	SPA CLA		/SKIP IF READ IS FUNCTION
	TAD PREAD
	JMS MOVE
MTCOMM,	 400
MTADDR,	 0		/ADDRESS OF DATA
MTFUNC,	 0		/FUNCTION WORD
	 TEST
	JMP ERROR	/TRANSFER BOMBED
	TAD MTADDR
	TAD MTADDR-1	/UPDATE DATA ADDRESS
	DCA MTADDR
	ISZ BLOCK	/STEP TO NEXT BLOCK IN FILE
	ISZ BLCNTR	/SKIP WHEN TRANSFER COMPLETE
	JMP NEXTBLOCK
	ISZ MTA		/INDICATE NO ERROR
ERROR,	CDF CIF 10
	JMP I MTA
/ MOVE, CALLED BY:
/	JMS MOVE	/ACC CONTAINS FUNCTION IN BITS 6-8
/	 WORDCOUNT	/NEGATED INTERNALLY
/	 CURRENT ADDRESS	/-1 SUBTRACTED INTERNALLY
/	 FIELD
/	 STATUS BIT PATTERN
/	RETURN IF MASKED STATUS NOT = 0
/	RETURN IF MASKED STATUS = 0
MOVE,	0
	TAD UPD
	MTLC
	MTRS
	TAD M400
	SNA CLA		/SKIP IF TRANSPORT NOT SETTLING
	JMP .-3
	TAD I MOVE	/WORDCOUNT
	CIA
KCDF,	CDF 00
	DCA I MTWC
	JMS MFIELD
	STA CLL
	TAD I MOVE	/ADDRESS
	CDF 00
	DCA I MTCA
	JMS MFIELD
	TAD I MOVE	/FIELD
	ISZ MOVE
	MTGO
	MTTR
	JMP .-1
	MTRS
	AND I MOVE	/MASK
	ISZ MOVE
	SNA CLA		/SKIP IF STATUS!MASK NOT 0
	ISZ MOVE
	JMP I MOVE
MFIELD,	0
	CDF 00
	ISZ MOVE	/SAVE 1 LOCATION IN MOVE!
	JMP I MFIELD
P3700,	3700		/CONSTANT
BLOCK,	0		/CONTAINS DESIRED BLOCK
CDFCIF,	CDF CIF 00	/CONSTANT
UPD,	0623		/UNIT 0, ODD PARITY, 800 BPI
			/CORE DUMP MODE
M400,	-400		/CONSTANT
HALFBLOCK, 0		/DECIDES ABOUT FINAL BLOCK LENGTH
BLCNTR,	0		/COUNTS BLOCKS
PAGE
	$-$-$



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