Commit | Line | Data |
---|---|---|
81e70d48 PH |
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 |