/1 PTR/PTP HANDLER FOR LOW SPEED / FILE: LSPT33.PA / MODIFIED TO USE DEVICE CODES 33 (INPUT) AND 34 (OUTPUT) / RON LARKIN FEB 1977 INPUT=330 OUTPUT=340 NEWKSF=6001 INPUT NEWKRS=6004 INPUT NEWTLS=6006 OUTPUT NEWTSF=6001 OUTPUT NEWKRB=6006 INPUT / CHECKS CONSOLE DEVICE (DEVICE CODE 0030 INPUT) / FOR ^C; ^C ON ASR33 KEYBOARD HAS NO EFFECT WHEN READING / OR PUNCHING. /MODIFIED FROM DEC'S LSPT.PA VERSION A / *0 -2 DEVICE LS33;DEVICE PTP;1020;PTP&177;ZBLOCK 2 DEVICE LS33;DEVICE PTR;2010;PTR&177;ZBLOCK 2 VERSION="A&77 *200 PTP, VERSION CLA CLL CML /SET LINK ON TO INDICATE PUNCH JMS PSETUP /DO COMMON CRAP JMS CHECK /CHECK FOR ^C ON CONSOLE TERMINAL TAD I PTPCA JMS PTPPCH /FIRST CHAR IN LOW ORDER 8 BITS OF WORD 1 DCA PTR ISZ PTPCA PT7700, 7700 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 JMP PTPISZ 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" AND PT7700 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 PTPISZ TAD PTP336 /INPUT INITIALIZATION - TYPE "^" AND WAIT NEWTLS NEWKSF JMP .-1 PT7600, 7600 PTPISZ, ISZ PTPWC JMP I PSETUP /LOOP FOR BUFFER SIZE (128 WORDS) PTPRTN, TAD PTPEOF SZA CLA /DID WE RUN OUT OF TAPE? ISZ PTP ISZ PTP PTPXIT, HLT /EXIT CDF GOES HERE JMP I PTP PTPPCH, 0 NEWTLS NEWTSF /NOTICE THE GLORIOUS LACK OF OVERLAP JMP .-1 AND PT7400 JMP I PTPPCH PTPCA, 0 PTR, VERSION 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 DCA PTR TAD PTR AND PT7400 TAD I PTPCA DCA I PTPCA /HIGH ORDER 4 BITS INTO WORD 1 TAD PTR /GET THE CHAR FROM THE PTR BUFFER RTL RTL AND PT7400 TAD PTPPCH ISZ PTPCA PT7400, 7400 DCA I PTPCA /LOW ORDER 4 BITS INTO WORD 2 JMP PTPEND PTRGCH, 0 TAD PTPEOF SNA CLA JMP I PTRGCH CLA CLL CMA RTL /-3 DCA PTPEOF DCA PTR PTTIME, JMS CHECK /CHECK FOR ^C ISZ PTR /TIMEOUT LOOP FOR LOW SPEED READER JMP PTP232 ISZ PTPEOF /TIMES OUT IN 132 MS(PDP 8/E) OR 205 MS(PDP 8) JMP PTP232 TAD PTP232 JMP I PTRGCH /OVERFLOWED - PTPEOF IS NOW 0, RETURN ^Z PTP232, 232 /WASTE SOME TIME PTP177, 177 NEWKSF JMP PTTIME /READER NOT READY - CONTINUE TIMEOUT NEWKRB JMP I PTRGCH /RETURN WITH CHARACTER PTPERR, CLA CLL CML RAR /SIGNAL A "PERMANENT I/O ERROR" ON THE DEVICE JMP PTPXIT-2 CHECK, HLT /CHECK CONSOLE KEYBOARD FOR ^C KSF JMP I CHECK /KEYBOARD FLAG OFF - DON'T WORRY ABOUT ^C KRS AND PTP177 TAD PTPM3 SZA CLA /IS THERE A ^C IN THE CONSOLE TERMINAL BUFFER? JMP I CHECK /NO PTPCIF, CDF CIF 0 JMP I PT7600 JMP I CHECK PCDF, CDF 0 PTP336, 336 PTPWC, 0 PTPM3, -3 ZBLOCK 377-. /RESORC LIKES ALL SPARE / /LOCATIONS TO BE 0 $$$$$$$