/KS33 PTR/PTP HANDLER FOR LOW SPEED / / /COPYRIGHT (C) 1974,1975 BY DIGITAL EQUIPMENT CORPORATION / / COPY 15-FEB-83 H.A. / UPDATES: / REV B 15-FEB-83 FIXES "LOSS OF BYTE" ERROR WITH PIP ON PTR HANDLER / /THIS SOFTWARE IS BLAH BLAH BLAH ... / / TTI= 3 /CONSOLE TERMINAL ( FOR ^C ABORT ) TTI1= IPTR /CONSOLE TERMINAL FOR "^ TO START PTP/PTR TTO1= TTI1+1 /CONSOLE TERMINAL FOR "^ TO START PTP/PTR IPTR= 35 /LOW SPEED PAPER TAPE READER (ASR 33) OPTP= IPTR+1 /LOW SPEED PAPER TAPE PUNCH (ASR 33) VERSION="B&77 / CKSF= 10^TTI+6001 CKRS= 10^TTI+6004 / PKCF= 10^IPTR+6000 PKSF= 10^IPTR+6001 PKCC= 10^IPTR+6002 PKRS= 10^IPTR+6004 / PTSF= 10^OPTP+6001 PTLS= 10^OPTP+6006 / TTLS= 10^TTO1+6006 /OUTPUTS ^ TKSF= 10^TTI1+6001 /WAIT FOR ANY CHAR TO START PTR/PTP / / *0 -2 DEVICE KS33;DEVICE PTP;1020;PTP&177;ZBLOCK 2 DEVICE KS33;DEVICE PTR;2010;PTR&177;ZBLOCK 2 *200 PTP, VERSION CLA CLL CML /SET LINK ON TO INDICATE PUNCH JMS PSETUP /DO COMMON CRAP PTPLP, CKSF JMP PTPCNT /KEYBORD FLAG OFF - DON'T WORRY ABOUT ^C CKRS AND PTP177 TAD PTPM3 SZA CLA /IS THERE A ^C IN THE TTY BUFFER? JMP PTPCNT /NO PTPCIF, CDF CIF 0 JMP I PT7600 PTPCNT, 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 CHAR NOW IN AC JMS PTPPCH PTPEND, ISZ PTPCA PT70, 70 /JUST IN CASE WHERE PUNCHING PG 7600 KEEP THIS LITERAL 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 PKCF /CLEAR READER RUN FLIP FLOP TAD PTP336 /INPUT INITIALIZATION - TYPE "^" AND WAIT TTLS TKSF 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 PTLS PTSF /NOTICE THE GLORIOUS LACK OF OVERLAP JMP .-1 AND PT7400 JMP I PTPPCH PTPCA, 0 PTR, VERSION /**** CORRECT ENTRY IN MAIN ASSEMBLY IF THIS IS MOVED! CLA CLL TAD PTR DCA PTP JMS PSETUP /SET UP ADDRESS, COUNT. FIELDS PTRLP, JMS PTRGCH /READ FIRST CHAR 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 PKSF PKCC /START THE READER TAD PTPEOF SNA CLA JMP I PTRGCH CLA CLL CMA RTL /-3 DCA PTPEOF DCA PTR PTTIME, ISZ PTR /TIME OUT LOOP FOR LOW SPEED READER JMP PTP232 ISZ PTPEOF /TIME OUT IN 132 MS (8/E) OR 205 MS (PDP 8) JMP PTP232 TAD PTP232 JMP I PTRGCH /OVERFLOWED - PTPEOF IF NOW 0, RETURN ^Z PTP232, 232 /WASTE SOME TIME PTP177, 177 PKSF JMP PTTIME /READER NOT READY - CONTINUE TIMEOUT CLA /LOAD THE CHAR --> AC PKRS /WITHOUT SWITCHING ON THE READER RUN FLIP FLOP PKCF /SWITCH OFF THE READER RUN FLIP FLOP TO AVOID LOSS OF CHARACTERS JMP I PTRGCH /RETURN WITH CHARACTER / / PTPERR, CLA CLL CML RAR /SIGNAL A "PERMANENT I/O ERROR" ON THE DEVICE JMP PTPXIT-2 PCDF, CDF 0 PTP336, 336 PTPWC, 0 PTPM3, -3 $-$