File: TTRP.PA of Tape: Various/System-Tapes/s5
(Source file text)
/TTY EXTRA READER/PUNCH : TTR,TTP /W.V.D.MARK, FEB 1977 /DEVICE CODES OF FOREGROUND TERMINAL: /ONLY USED WHEN NO FOREGROUND!! RSF1=6331 /KSF RRB1=6334 /KRS RFC1=6332 /KCC PSF1=6341 /TSF PLS1=6346 /TLS *0 -2 /TWO DEVICES DEVICE TTRP DEVICE TTP 1002 PTP-200 0 0 DEVICE TTRP DEVICE TTR 2001 PTR-200 0 0 *200 PTP, 60 /VERSION 0 CLA CLL CML /SET LINK ON TO INDICATE PUNCH JMS PSETUP /DO COMMON CRAP PTPLP, TAD I PTPCA JMS PTPPCH /FIRST CHAR IN LOW ORDER 8 BITS OF WORD 1 DCA PTR ISZ PTPCA PT7600, 7600 TAD I PTPCA JMS PTPPCH /SECOND CHAR IN LOW ORDER 8 BITS OF WORD 2 CLL RTR RTR TAD PTR RTR RTR /THIRD CHARACTER NOW IN AC JMS PTPPCH PTPEND, ISZ PTPCA PT70, 70 /JUST IN CASE WERE PUNCHING PG 7600 KEEP THIS LITERAL HERE KSF JMP PTPISZ /KEYBOARD FLAG OFF - DON'T WORRY ABOUT ^C PTPKRS, KRS AND PTP177 TAD PTPM3 SZA CLA /IS THERE A ^C IN THE TTY BUFFER? JMP PTPISZ /NO PTPCIF, CDF CIF 0 PT7700, 7700 /AC=0; NO SKIP ON SMA CLA. DON'T MOVE!!! JMP I PT7600 PSETUP, 0 RDF /GET FIELD OF CALLING PROGRAM TAD PTPCIF DCA PTPXIT /SET UP RETURN SEQUENCE TAD I PTP AND PT70 TAD PCDF DCA PTPCDF RAR /GET LINK(1=PTP,0=PTR) TAD I PTP /GET FUNCTION WORD ISZ PTP SPA /CHECK CORRECT MODE JMP PTPERR /SIGNAL "UNRECOVERABLE DEVICE ERROR" PTP232, AND PT7700 /*K* CMA /SET UP -(WORD COUNT)/2-1 DCA PTPWC TAD I PTP /SET UP STARTING ADDRESS ISZ PTP DCA PTPCA TAD I PTP PTPCDF, 0 /SET DATA FIELD TO ACCESS BUFFER PTPEOF=PTPCDF SNA CLA SZL JMP PTPKRS TAD PTP336 /INPUT INITIALIZATION - TYPE "^" AND WAIT TLS KSF JMP .-1 JMS PTRGCH /INITIALIZE THE PTR BUFFER CHAR 6032 /CLEAR AC AND KEYBOARD FLAG JMP PTPKRS /CHECK FOR ^C PTPISZ, ISZ PTPWC JMP I PSETUP /LOOP FOR BUFFER SIZE (128 WORDS) PTPRTN, TAD PTPEOF SZA CLA /DID WE RUN OUT OF TAPE? PTPERR, ISZ PTP /SIGNAL A "PERMANENT I/O ERROR" ON THE DEVICE ISZ PTP PTPXIT, HLT /EXIT CDF GOES HERE JMP I PTP PTPPCH, 0 PLS1 /NOTICE THE GLORIOUS LACK OF OVERLAP PSF1 JMP .-1 AND PT7400 JMP I PTPPCH PTR, 60 /VERSION 0 CLA CLL TAD PTR DCA PTP JMS PSETUP /SET UP ADDRESS, COUNT, FIELDS PTRLP, JMS PTRGCH /READ FIRST CHARACTER OF 3 DCA I PTPCA JMS PTRGCH DCA PTPPCH JMS PTRGCH RTL RTL AND PT7400 TAD I PTPCA DCA I PTPCA /HIGH ORDER 4 BITS INTO WORD 1 TAD PTR /GET THE CHAR FROM THE PTR BUFFER BSW RTL /PUT THE LOW ORDER BITS INTO AC 0-3 AND PT7400 TAD PTPPCH ISZ PTPCA PT7400, 7400 DCA I PTPCA /LOW ORDER 4 BITS INTO WORD 2 JMP PTPEND PTPCA, 0 PTRGCH, 0 TAD PTPEOF SNA CLA JMP PTRBF0 /ZERO OUT BUFFER RFC1 CLA CLL CMA RTL /-3 DCA PTPEOF DCA PTPTIM PTTIME, ISZ PTPTIM JMP PGCHLP ISZ PTPEOF /THIS LOOP OVERFLOWS IN APPROX. 200 MS JMP PGCHLP /ON A PDP-8/E TAD PTP232 /SEND ^Z TO BUFFER PTRBF0, DCA PTR JMP PTRXX /AND 0 GARBAGE CHARACTER PGCHLP, TAD PTPTMP DCA PTR PTP336, 336 /FALL THROUGH CONSTANTS TO STALL FOR TIME PTP177, 177 RSF1 JMP PTTIME /READER NOT READY - CHECK TIMING RRB1 /READER READY - READ CHAR PTRXX, DCA PTPTMP /BUFFER READER BY ONE CHARACTER TO ELIMINATE TAD PTR /GARBAGE CHARACTER AT END OF TAPE JMP I PTRGCH /AND RETURN PCDF, CDF 0 PTPTMP, 0 PTPTIM, 0 PTPWC, 0 PTPM3, -3 $-$-$