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