/******** TOPS8 PAPERTAPE READER DRIVER ******** /LAST EDIT: 29-SEP-78, HOU /LAST EDIT: 25-AUG-75, ELC PRTMP, TASKNA RD 201 /CONNECTED TO PAPARTAPE READER INT'S PRQPTR, HSR /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, 6004+KL8P TAD (-DGNTICK%2!4000 /HALF SECOND TIMEOUT JMS MONITOR WAIT HSR SNA CLA JMP PRRTRN /ALL DONE ISZ PRRETR /RETRY AGAIN ? JMP RETRY /YES, START TAPE AGAIN TAD PRCDF DCA .+1 HLT TAD (232 /A ^Z TO CLOSEMAYBY WE LOSE A CHAR OR /SIGNAL END-OF-MEDIUM XIT, 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 ! KCC&70 TAD (-DGNTICK%2!4000 DCA I (HSR^2+HRDLST / DCA PRRETR ///RESET RETXT PRINT, CLA CLL ///INTERRUPT ENTRYPOINT KRS&7007+KL8P ///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 $