| 1 | /1 HI SPEED READER/PUNCH HANDLER |
| 2 | / |
| 3 | / |
| 4 | / |
| 5 | / |
| 6 | / |
| 7 | / |
| 8 | / |
| 9 | / |
| 10 | / |
| 11 | /COPYRIGHT (C) 1974,1975 BY DIGITAL EQUIPMENT CORPORATION |
| 12 | / |
| 13 | / |
| 14 | / |
| 15 | / |
| 16 | / |
| 17 | / |
| 18 | / |
| 19 | / |
| 20 | / |
| 21 | / |
| 22 | /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE |
| 23 | /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT |
| 24 | /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY |
| 25 | /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. |
| 26 | / |
| 27 | /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER |
| 28 | /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED |
| 29 | /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH |
| 30 | /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. |
| 31 | / |
| 32 | /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE |
| 33 | /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY |
| 34 | /DIGITAL. |
| 35 | / |
| 36 | / |
| 37 | / |
| 38 | / |
| 39 | / |
| 40 | / |
| 41 | / |
| 42 | / |
| 43 | / |
| 44 | / |
| 45 | \f/1 HI SPEED READER/PUNCH HANDLER |
| 46 | *0 |
| 47 | -2 |
| 48 | DEVICE PT8E;DEVICE PTP;1020;0;ZBLOCK 2 |
| 49 | DEVICE PT8E;DEVICE PTR;2010;112;ZBLOCK 2 |
| 50 | |
| 51 | PTVERSION="A&77 |
| 52 | |
| 53 | *200 |
| 54 | /THIS IS THE REAL HIGH SPEED HANDLER. |
| 55 | /HIGH SPEED PAPER TAPE HANDLER FOR BLEEP MONITOR |
| 56 | /PACKS 3 CHARACTERS IN 2 WORDS ON INPUT, UNPACKS ON OUTPUT |
| 57 | /PAGE RELOCATABLE |
| 58 | PTP, PTVERSION |
| 59 | CLA CLL CML /SET LINK ON TO INDICATE PUNCH |
| 60 | JMS PSETUP /DO COMMON CRAP |
| 61 | PTPLP, TAD I PTPCA |
| 62 | JMS PTPPCH /FIRST CHAR IN LOW ORDER 8 BITS OF WORD 1 |
| 63 | DCA PTR |
| 64 | ISZ PTPCA |
| 65 | PT7700, 7700 |
| 66 | TAD I PTPCA |
| 67 | JMS PTPPCH /SECOND CHAR IN LOW ORDER 8 BITS OF WORD 2 |
| 68 | CLL RTR |
| 69 | RTR |
| 70 | TAD PTR |
| 71 | RTR |
| 72 | RTR /THIRD CHARACTER NOW IN AC |
| 73 | JMS PTPPCH |
| 74 | PTPEND, ISZ PTPCA |
| 75 | PT70, 70 /JUST IN CASE WERE PUNCHING PG 7600 KEEP THIS LITERAL HERE |
| 76 | KSF |
| 77 | JMP PTPISZ /KEYBOARD FLAG OFF - DON'T WORRY ABOUT ^C |
| 78 | PTPKRS, KRS |
| 79 | AND PTP177 |
| 80 | TAD PTPM3 |
| 81 | SZA CLA /IS THERE A ^C IN THE TTY BUFFER? |
| 82 | JMP PTPISZ /NO |
| 83 | PTPCIF, CDF CIF 0 |
| 84 | JMP I .+1 |
| 85 | 7600 |
| 86 | PSETUP, 0 |
| 87 | RDF /GET FIELD OF CALLING PROGRAM |
| 88 | TAD PTPCIF |
| 89 | DCA PTPXIT /SET UP RETURN SEQUENCE |
| 90 | TAD I PTP |
| 91 | AND PT70 |
| 92 | TAD PCDF |
| 93 | DCA PTPCDF |
| 94 | RAR /GET LINK(1=PTP,0=PTR) |
| 95 | TAD I PTP /GET FUNCTION WORD |
| 96 | ISZ PTP |
| 97 | SPA /CHECK CORRECT MODE |
| 98 | JMP PTPERR /SIGNAL "UNRECOVERABLE DEVICE ERROR" |
| 99 | AND PT7700 |
| 100 | CMA /SET UP -(WORD COUNT)/2-1 |
| 101 | DCA PTPWC |
| 102 | TAD I PTP /SET UP STARTING ADDRESS |
| 103 | ISZ PTP |
| 104 | DCA PTPCA |
| 105 | TAD I PTP |
| 106 | PTPCDF, 0 /SET DATA FIELD TO ACCESS BUFFER |
| 107 | PTPEOF=PTPCDF |
| 108 | SNA CLA |
| 109 | SZL |
| 110 | JMP PTPKRS |
| 111 | TAD PTP336 /INPUT INITIALIZATION - TYPE "^" AND WAIT |
| 112 | TLS |
| 113 | KSF |
| 114 | JMP .-1 |
| 115 | JMS PTRGCH /INITIALIZE THE PTR BUFFER CHAR |
| 116 | 6032 /CLEAR AC AND KEYBOARD FLAG |
| 117 | JMP PTPKRS /CHECK FOR ^C |
| 118 | PTPISZ, ISZ PTPWC |
| 119 | JMP I PSETUP /LOOP FOR BUFFER SIZE (128 WORDS) |
| 120 | PTPRTN, TAD PTPEOF |
| 121 | SZA CLA /DID WE RUN OUT OF TAPE? |
| 122 | ISZ PTP |
| 123 | ISZ PTP |
| 124 | PTPXIT, HLT /EXIT CDF GOES HERE |
| 125 | JMP I PTP |
| 126 | PTPPCH, 0 |
| 127 | PLS /NOTICE THE GLORIOUS LACK OF OVERLAP |
| 128 | PSF |
| 129 | JMP .-1 |
| 130 | AND PT7400 |
| 131 | JMP I PTPPCH |
| 132 | PTPCA, 0 |
| 133 | PTR, PTVERSION /*** CORRECT ENTRY IN MAIN ASSEMBLY IF THIS IS MOVED! |
| 134 | CLA CLL |
| 135 | TAD PTR |
| 136 | DCA PTP |
| 137 | JMS PSETUP /SET UP ADDRESS, COUNT, FIELDS |
| 138 | PTRLP, JMS PTRGCH /READ FIRST CHARACTER OF 3 |
| 139 | DCA I PTPCA |
| 140 | JMS PTRGCH |
| 141 | DCA PTPPCH |
| 142 | JMS PTRGCH |
| 143 | RTL |
| 144 | RTL |
| 145 | AND PT7400 |
| 146 | TAD I PTPCA |
| 147 | DCA I PTPCA /HIGH ORDER 4 BITS INTO WORD 1 |
| 148 | TAD PTR /GET THE CHAR FROM THE PTR BUFFER |
| 149 | RTR |
| 150 | RTR |
| 151 | RAR /PUT THE LOW ORDER BITS INTO AC 0-3 |
| 152 | AND PT7400 |
| 153 | TAD PTPPCH |
| 154 | ISZ PTPCA |
| 155 | PT7400, 7400 |
| 156 | DCA I PTPCA /LOW ORDER 4 BITS INTO WORD 2 |
| 157 | JMP PTPEND |
| 158 | PTRGCH, 0 |
| 159 | TAD PTPEOF |
| 160 | SNA CLA |
| 161 | JMP PT0BFR /MAKE SURE BUFFER IS ZEROED |
| 162 | RFC |
| 163 | DCA PTPEOF |
| 164 | PTTIME, ISZ PTPEOF /THIS LOOP OVERFLOWS IN APPROX. 100 MS ON A PDP-8, |
| 165 | JMP PGCHLP /72 MS ON A PDP-8/E |
| 166 | TAD PTP232 /SEND ^Z TO BUFFER |
| 167 | PT0BFR, DCA PTR |
| 168 | JMP PTRXX /AND 0 GARBAGE CHARACTER |
| 169 | PGCHLP, TAD PTPTMP |
| 170 | DCA PTR |
| 171 | PTP232, 232 |
| 172 | PTP336, 336 /FALL THROUGH CONSTANTS TO STALL FOR TIME |
| 173 | PTP177, 177 |
| 174 | RSF |
| 175 | JMP PTTIME /READER NOT READY - CHECK TIMING |
| 176 | RRB /READER READY - READ CHAR |
| 177 | PTRXX, DCA PTPTMP /BUFFER READER BY ONE CHARACTER TO ELIMINATE |
| 178 | TAD PTR /GARBAGE CHARACTER AT END OF TAPE |
| 179 | JMP I PTRGCH /AND RETURN |
| 180 | PTPERR, CLA CLL CML RAR /SIGNAL A "PERMANENT I/O ERROR" ON THE DEVICE |
| 181 | JMP PTPXIT-2 |
| 182 | PCDF, CDF 0 |
| 183 | PTPTMP, 0 |
| 184 | PTPWC, 0 |
| 185 | PTPM3, -3 |
| 186 | $$$$$$$$ |
| 187 | \f |