| 1 | /KS33 PTR/PTP HANDLER FOR LOW SPEED\r |
| 2 | /\r |
| 3 | /\r |
| 4 | /COPYRIGHT (C) 1974,1975 BY DIGITAL EQUIPMENT CORPORATION\r |
| 5 | /\r |
| 6 | / COPY 15-FEB-83 H.A.\r |
| 7 | / UPDATES:\r |
| 8 | / REV B 15-FEB-83 FIXES "LOSS OF BYTE" ERROR WITH PIP ON PTR HANDLER\r |
| 9 | /\r |
| 10 | /THIS SOFTWARE IS BLAH BLAH BLAH ...\r |
| 11 | /\r |
| 12 | /\r |
| 13 | \fTTI= 3 /CONSOLE TERMINAL ( FOR ^C ABORT )\r |
| 14 | TTI1= IPTR /CONSOLE TERMINAL FOR "^ TO START PTP/PTR\r |
| 15 | TTO1= TTI1+1 /CONSOLE TERMINAL FOR "^ TO START PTP/PTR\r |
| 16 | IPTR= 35 /LOW SPEED PAPER TAPE READER (ASR 33)\r |
| 17 | OPTP= IPTR+1 /LOW SPEED PAPER TAPE PUNCH (ASR 33)\r |
| 18 | VERSION="B&77\r |
| 19 | /\r |
| 20 | CKSF= 10^TTI+6001\r |
| 21 | CKRS= 10^TTI+6004\r |
| 22 | /\r |
| 23 | PKCF= 10^IPTR+6000\r |
| 24 | PKSF= 10^IPTR+6001\r |
| 25 | PKCC= 10^IPTR+6002\r |
| 26 | PKRS= 10^IPTR+6004\r |
| 27 | /\r |
| 28 | PTSF= 10^OPTP+6001\r |
| 29 | PTLS= 10^OPTP+6006\r |
| 30 | /\r |
| 31 | TTLS= 10^TTO1+6006 /OUTPUTS ^\r |
| 32 | TKSF= 10^TTI1+6001 /WAIT FOR ANY CHAR TO START PTR/PTP\r |
| 33 | /\r |
| 34 | /\r |
| 35 | *0\r |
| 36 | -2\r |
| 37 | DEVICE KS33;DEVICE PTP;1020;PTP&177;ZBLOCK 2\r |
| 38 | DEVICE KS33;DEVICE PTR;2010;PTR&177;ZBLOCK 2\r |
| 39 | *200\r |
| 40 | PTP, VERSION\r |
| 41 | CLA CLL CML /SET LINK ON TO INDICATE PUNCH\r |
| 42 | JMS PSETUP /DO COMMON CRAP\r |
| 43 | PTPLP, CKSF\r |
| 44 | JMP PTPCNT /KEYBORD FLAG OFF - DON'T WORRY ABOUT ^C\r |
| 45 | CKRS\r |
| 46 | AND PTP177\r |
| 47 | TAD PTPM3\r |
| 48 | SZA CLA /IS THERE A ^C IN THE TTY BUFFER?\r |
| 49 | JMP PTPCNT /NO\r |
| 50 | PTPCIF, CDF CIF 0\r |
| 51 | JMP I PT7600\r |
| 52 | PTPCNT, TAD I PTPCA\r |
| 53 | JMS PTPPCH /FIRST CHAR IN LOW ORDER 8 BITS OF WORD 1\r |
| 54 | DCA PTR\r |
| 55 | ISZ PTPCA\r |
| 56 | PT7700, 7700\r |
| 57 | TAD I PTPCA\r |
| 58 | JMS PTPPCH /SECOND CHAR IN LOW ORDER 8 BITS OF WORD 2\r |
| 59 | CLL RTR\r |
| 60 | RTR\r |
| 61 | TAD PTR\r |
| 62 | RTR\r |
| 63 | RTR /THIRD CHAR NOW IN AC\r |
| 64 | JMS PTPPCH\r |
| 65 | PTPEND, ISZ PTPCA\r |
| 66 | PT70, 70 /JUST IN CASE WHERE PUNCHING PG 7600 KEEP THIS LITERAL\r |
| 67 | JMP PTPISZ\r |
| 68 | /\r |
| 69 | \f/\r |
| 70 | PSETUP, 0\r |
| 71 | RDF /GET FIELD OF CALLING PROGRAM\r |
| 72 | TAD PTPCIF\r |
| 73 | DCA PTPXIT /SET UP RETURN SEQUENCE\r |
| 74 | TAD I PTP\r |
| 75 | AND PT70\r |
| 76 | TAD PCDF\r |
| 77 | DCA PTPCDF\r |
| 78 | RAR /GET LINK (1=PTP,0=PTR)\r |
| 79 | TAD I PTP /GET FUNCTION WORD\r |
| 80 | ISZ PTP\r |
| 81 | SPA /CHECK CORRECT MODE\r |
| 82 | JMP PTPERR /SIGNAL "UNRECOVERABLE DEVICE ERROR"\r |
| 83 | AND PT7700\r |
| 84 | CMA /SET UP -(WORD COUNT)/2-1\r |
| 85 | DCA PTPWC\r |
| 86 | TAD I PTP /SET UP STARTING ADDRESS\r |
| 87 | ISZ PTP\r |
| 88 | DCA PTPCA\r |
| 89 | TAD I PTP\r |
| 90 | PTPCDF, 0 /SET DATA FIELD TO ACCESS BUFFER\r |
| 91 | PTPEOF=PTPCDF\r |
| 92 | SNA CLA\r |
| 93 | SZL\r |
| 94 | JMP PTPISZ\r |
| 95 | PKCF /CLEAR READER RUN FLIP FLOP\r |
| 96 | TAD PTP336 /INPUT INITIALIZATION - TYPE "^" AND WAIT\r |
| 97 | TTLS\r |
| 98 | TKSF\r |
| 99 | JMP .-1\r |
| 100 | PT7600, 7600\r |
| 101 | PTPISZ, ISZ PTPWC\r |
| 102 | JMP I PSETUP /LOOP FOR BUFFER SIZE (128 WORDS)\r |
| 103 | /\r |
| 104 | PTPRTN, TAD PTPEOF\r |
| 105 | SZA CLA /DID WE RUN OUT OF TAPE?\r |
| 106 | ISZ PTP\r |
| 107 | ISZ PTP\r |
| 108 | PTPXIT, HLT /EXIT CDF GOES HERE\r |
| 109 | JMP I PTP\r |
| 110 | /\r |
| 111 | \f/\r |
| 112 | PTPPCH, 0\r |
| 113 | PTLS\r |
| 114 | PTSF /NOTICE THE GLORIOUS LACK OF OVERLAP\r |
| 115 | JMP .-1\r |
| 116 | AND PT7400\r |
| 117 | JMP I PTPPCH\r |
| 118 | PTPCA, 0\r |
| 119 | PTR, VERSION /**** CORRECT ENTRY IN MAIN ASSEMBLY IF THIS IS MOVED!\r |
| 120 | CLA CLL\r |
| 121 | TAD PTR\r |
| 122 | DCA PTP\r |
| 123 | JMS PSETUP /SET UP ADDRESS, COUNT. FIELDS\r |
| 124 | PTRLP, JMS PTRGCH /READ FIRST CHAR OF 3\r |
| 125 | DCA I PTPCA\r |
| 126 | JMS PTRGCH\r |
| 127 | DCA PTPPCH\r |
| 128 | JMS PTRGCH\r |
| 129 | RTL\r |
| 130 | RTL\r |
| 131 | DCA PTR\r |
| 132 | TAD PTR\r |
| 133 | AND PT7400\r |
| 134 | TAD I PTPCA\r |
| 135 | DCA I PTPCA /HIGH ORDER 4 BITS INTO WORD 1\r |
| 136 | TAD PTR /GET THE CHAR FROM THE PTR BUFFER\r |
| 137 | RTL\r |
| 138 | RTL\r |
| 139 | AND PT7400\r |
| 140 | TAD PTPPCH\r |
| 141 | ISZ PTPCA\r |
| 142 | PT7400, 7400\r |
| 143 | DCA I PTPCA /LOW ORDER 4 BITS INTO WORD 2\r |
| 144 | JMP PTPEND\r |
| 145 | /\r |
| 146 | /\r |
| 147 | PTRGCH, 0\r |
| 148 | PKSF\r |
| 149 | PKCC /START THE READER \r |
| 150 | TAD PTPEOF\r |
| 151 | SNA CLA\r |
| 152 | JMP I PTRGCH\r |
| 153 | CLA CLL CMA RTL /-3\r |
| 154 | DCA PTPEOF\r |
| 155 | DCA PTR\r |
| 156 | PTTIME, ISZ PTR /TIME OUT LOOP FOR LOW SPEED READER\r |
| 157 | JMP PTP232\r |
| 158 | ISZ PTPEOF /TIME OUT IN 132 MS (8/E) OR 205 MS (PDP 8)\r |
| 159 | JMP PTP232\r |
| 160 | TAD PTP232\r |
| 161 | JMP I PTRGCH /OVERFLOWED - PTPEOF IF NOW 0, RETURN ^Z\r |
| 162 | PTP232, 232 /WASTE SOME TIME\r |
| 163 | PTP177, 177\r |
| 164 | PKSF\r |
| 165 | JMP PTTIME /READER NOT READY - CONTINUE TIMEOUT\r |
| 166 | CLA /LOAD THE CHAR --> AC\r |
| 167 | PKRS /WITHOUT SWITCHING ON THE READER RUN FLIP FLOP\r |
| 168 | PKCF /SWITCH OFF THE READER RUN FLIP FLOP TO AVOID LOSS OF CHARACTERS\r |
| 169 | JMP I PTRGCH /RETURN WITH CHARACTER\r |
| 170 | /\r |
| 171 | /\r |
| 172 | PTPERR, CLA CLL CML RAR /SIGNAL A "PERMANENT I/O ERROR" ON THE DEVICE\r |
| 173 | JMP PTPXIT-2\r |
| 174 | PCDF, CDF 0\r |
| 175 | PTP336, 336\r |
| 176 | PTPWC, 0\r |
| 177 | PTPM3, -3\r |
| 178 | $-$\r |
| 179 | \1a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 |