File PR.TK

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

/******** MULTI8 PAPERTAPE READER DRIVER ********
/LAST EDIT: 25-AUG-75, ELC

PRTMP,	"P^100+"R&3777
	201		/CONNECTED TO PAPARTAPE READER INT'S
PRQPTR,	PTR		/DEVICE NUMBER PAPERTAPE READER
	PRINT		/INTERRUPT ENTRYPOINT
QPRLOOP,PRLOOP+1
	0
PR,	DCA ZTEM1	//REQUEST ADDRESS
	TAD QPRLOOP
	DCA PRGET	//INITIALISE CO-ROUTINES
	AC4000
	TAD I ZTEM1	//SET LINK IF WRITE
	AND C3700
	CIA
	DCA PRWC
	TAD I ZTEM1
	AND C70
	TAD C6201
	DCA PRCDF	//DATAFIELD OF BUFFER
	ISZ ZTEM1
	TAD I ZTEM1
	DCA PRCA	//ADDRESS OF BUFFER
	TAD MYCDF
	DCA PRFLD
	CDTOIF
	CIF MONFLD
	JMS I ZRESERV
	   JMS ALARM	/NOT SLOT AVAILABLE !
	JMS MONITOR
	   RETURN CONTINUE
	DCA PRSLOT
	SZL
	 JMP PRERR1	/CAN'T WRITE ON PR !
RETRY,	RFC
	TAD (-DGNTICK%2!4000	/HALF SECOND TIMEOUT
	JMS MONITOR
	   WAIT
	   PTR
	SNA CLA
	 JMP PRRTRN	/ALL DONE
	ISZ PRRETR	/RETRY AGAIN ?
	 JMP RETRY	/YES, START TAPE AGAIN
	TAD PRCDF
	DCA .+1
	HLT		/'CDF TO BUFFER FIELD
	TAD (232	/A ^Z TO CLOSE THE FILE
	DCA I PRCA	/MAYBY WE LOSE A CHAR OR TWO
	TAD (EOMERR-HRDERR /SIGNAL END-OF-MEDIUM
PRERR1,	TAD (HRDERR
PREXIT,	JMS MONITOR
	   SIGNAL HALT CLEAR SWPOUT
PRSLOT,	   0
PRRETR,	-3		/RETRY COUNT

PRRTRN, TAD PRSLOT DCA PRSLT1 JMS MONITOR SIGNAL HALT RELEASE PRSLT1, 0 PRGET, PRLOOP+1 ///CO-ROUTINE ! RFC CDF CIF MONFLD TAD (-DGNTICK%2!4000 ///RESET TIMEOUT COUNTER DCA I (PTR^2+HRDLST ///RESET TIMEOUT ACM3 DCA PRRETR ///RESET RETRY COUNTER JMP I ZFSTEXT PRINT, CLA CLL ///INTERRUPT ENTRYPOINT RRB ///READ CHAR PRCDF, CDF ///'CDF TO BUFFER FIELD JMP I PRGET PRLOOP, JMS PRGET ///GET FIRST CHARACTER DCA I PRCA ///STORE IN WORD 0 JMS PRGET ///GET SECOND CHARACTER DCA PRTMP ///KEEP IT AT HAND JMS PRGET ///GET THIRD CHARACTER CLL RTL RTL DCA PRCHAR ///LEFT JUSTIFIED TAD PRCHAR AND (7400 ///UPER FOUR BITS GO ALONG TAD I PRCA ///WITH FIRST DCA I PRCA ///INTO THE BUFFER AT WORD 0 TAD PRCHAR CLL RTL RTL AND (7400 ///NEXT FOUR BITS OF THIRD ISZ PRCA ///CHARACTER GO ALONG TAD PRTMP ///WITH SECOND CHARACTER INTO DCA I PRCA ///SECOND WORD OF BUFFER ISZ PRCA ///BUMP CURRENT ADDRESS POINTER AND ISZ PRWC ///DOUBLE WORD COUNTER. DONE ? JMP PRLOOP ///NO, DOE ANOTHER THREE CHAR'S TAD PRQPTR ///YES, INTERRUPT TASKS PART AT PTR SLOT PRFLD, CDF ///'CDF TO THIS FIELD CIF MONFLD JMS I ZSOFINT PRWC, 0 ///THE WORDCOUNT SHOULD BE ZERO NOW ! PRCA, 0 PRCHAR, 0 $



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