A large commit.
[pdp8.git] / sw / rescue / lab8e_goettingen / disk1_im6100 / rkb / paroff / draw.pa
CommitLineData
81e70d48
PH
1/ DRAW.PA REV 0.9\r
2/\r
3/ HP 7475 PLOTTER SUBROUTINES\r
4/\r
5/ MUST ASSEMBLED WITH USER PROGRAMM AND TXIO32\r
6/ WITH /F OPTION. START AT 4000\r
7/ MAY START AT 4200 IF EXTMAC IS DEFINED.\r
8/\r
9/ DRAWA4 INIT PLOTTER, PAPER SIZE A4\r
10/ DRAWA3 INIT PLOTTER, PAPER SIZE A3\r
11/ DRAW COPY TEXT TO PLOTTER DEV 33/34\r
12/ DRAWCP CHANGE PAPER\r
13/ DRAWEX EXIT TO OS/8\r
14/\r
15/\r
16/ 22-MAY-85 REV 0.0 KJ.S.\r
17/ 11-JUN-85 REV 0.1 KJ.S. PEN NO. AS MACRO ARG.\r
18/ 12-JUN-85 REV 0.2 KJ.S. OP-AMP'S ADDED\r
19/ 12-JUN-85 REV 0.3 KJ.S. IC PATTERN ADDED\r
20/ 24-APR-86 REV 0.4 KJ.S. ERROR MESSAGES ADDED\r
21/ 28-APR-86 REV 0.5 KJ.S. CHANGE PAPER ADDED\r
22/ 29-APR-86 REV 0.6 KJ.S. SUBROUTINE DRAW\r
23/ 06-MAY-86 REV 0.7 KJ.S. BASIC DRAW WITHOUT MACRO\r
24/ 16-JUN-86 REV 0.8 KJ.S. BUFFER IN DIFFERENT FIELD\r
25/ 05-JUL-86 REV 0.9 KJ.S. DELAY IN DRAWCP\r
26/\r
27\f FIELD 0\r
28\r
29 *4200\r
30\r
31/\r
32/ SUBROUTINE DRAW\r
33/\r
34/ TRANSFER PAL8 TEXT-STRING TO HP7475 PLOTTER\r
35/ OUTPUT DEVICE IS 33/34.\r
36/ IF THE PLOTTER IS NOT INITALIZED BY 'DRAWA3' OR 'DRAWA4',\r
37/ THE DEFAULT INITIALISATION IS FOR DIN A4 PAPER SIZE.\r
38/ BEFORE START, THE CHANGE PAPER ROUTINE 'DRAWCP'\r
39/ IS CALLED AND A MESSAGE IS DISPLAYED ONLY ON TTY\r
40/ IF THE PLOTTER IS READY. THE PAPER SIZE LED\r
41/ IS BLINKING UNDER ALL CONDITIONS: LOAD PAPER AND\r
42/ IF THE LED IS STILL BLINKING OR IF NO NEW PAPER\r
43/ IS NEEDED, PRESS 'ENTER'.\r
44/ BEFORE EXIT THE ERROR STATUS OF THE PLOTTER\r
45/ IS DISPLAYED WITH FULL EXPLANATION ON TTY.\r
46/\r
47/ ENTRY: AC = POINTER TO TEXT\r
48/ ARG1: BUFFER FIELD XXNX\r
49/ EXIT: AC = 0\r
50/\r
51\r
52DRAW, 0\r
53 DCA DRWSTO / SAVE TEXT POINTER\r
54 TAD I DRAW / GET FIELD\r
55 AND (70\r
56 TAD (6201\r
57 DCA DRWFLD\r
58 ISZ DRAW\r
59 TAD DRWIFL\r
60 SZA CLA / PLOTTER INITIALIZED ?\r
61 JMS DRAWA4 / NO: A4 DEFAULT AND CHANGE PAPER\r
62 TAD DRWFLD\r
63 DCA TTOFLD / SET FIELD INSTRUCTION\r
64 TAD DRWSTO\r
65 JMS TTO / PLOT\r
66 TAD (6201\r
67 DCA TTOFLD / RESET FIELD INSTRUCTION\r
68 JMS DRAWER / READ ERROR STATUS\r
69 JMP I DRAW\r
70\r
71DRWSTO, 0\r
72DRWFLD, 0\r
73\f/\r
74/ SUBROUTINE DRAWA3 AND DRAWA4\r
75/\r
76/ INITIALISATION OF THE PLOTTER FOR DIFFERENT\r
77/ PAPER SIZE. 'DRAWCP' FOR CHANGE PAPER IS CALLED.\r
78/\r
79/ ENTRY: AC = NC\r
80/ EXIT: AC = 0\r
81/\r
82\r
83DRAWA4, 0\r
84 CLA\r
85 TAD (DRWIIN\r
86 JMS TTO\r
87 TAD (DRWIA4\r
88 JMS TTO\r
89 DCA DRWIFL / CLEAR FLAG\r
90 JMS DRAWCP\r
91 JMP I DRAWA4\r
92\r
93DRAWA3, 0\r
94 CLA\r
95 TAD (DRWIIN\r
96 JMS TTO\r
97 TAD (DRWIA3\r
98 JMS TTO\r
99 DCA DRWIFL / CLEAR FLAG\r
100 JMS DRAWCP\r
101 JMP I DRAWA3\r
102\r
103DRWIFL, -1 / FLAG CLEARED AFTER INITIALISATION\r
104\f/\r
105/ SUBROUTINE DRAWCP\r
106/\r
107/ ENABLE OPERATOR TO CHANGE PAPER\r
108/ THERE ARE THREE SEQUENCES TO INTERRUPT THE\r
109/ PLOT TO ENABLE THE OPERATOR TO CHANGE PAPER\r
110/\r
111/ 1. SET PAPER SIZE LED BLINKING AND WAIT FOR PLOTTER\r
112/ READY (STATUS=8).\r
113/ IF THE PAPER LEVER IS UP, THE ROUTINE WAITS\r
114/ UNTIL THE PAPER LEVER IS DOWN AGAIN.\r
115/ 2. TYPE MESSAGE ON TTY AND WAIT UNTIL THE PAPER\r
116/ LEVER IS HIGH (PAPER CHANGE) OR THE 'ENTER'\r
117/ IS PRESSED. THE LED IS STILL BLINKING.\r
118/ 3. WAIT FOR PLOTTER READY (STATUS=8) SO PLOTTING\r
119/ CONTINUES AFTER LEVER LOW OR 'ENTER'.\r
120/ THE PAPER SIZE LED BLINKING IS STOPPED.\r
121/\r
122/ ENTRY: AC = NC\r
123/ EXIT: AC = 0\r
124/\r
125\r
126DRAWCP, 0\r
127 CLA\r
128 TAD DRWIFL\r
129 SZA CLA / PLOTTER INITIALIZED ?\r
130 JMS DRAWA4 / NO: A4 DEFAULT\r
131 TAD (330 / SET INPUT DEV FOR ERROR CODE\r
132 JMS TIDC\r
133 TAD (7200 / DISABLE TTI ECHO\r
134 DCA TTI3-4\r
135DRWCP1, TAD (DRWCPM / SEND STATUS COMMAND\r
136 JMS TTO\r
137 JMS TTI\r
138 DRWCPB\r
139 4\r
140 TAD DRWCPB / CHECK STATUS\r
141 TAD (-7000 / MUST BE "8\r
142 SZA CLA / PLOTTER OUTPUT = 8D ?\r
143 JMP DRWCP1 / NO: ASK AGAIN\r
144 TAD (40 / YES: SEND OPERATOR MESSAGE\r
145 JMS TODC / CHANGE DEVICE CODE\r
146 TAD (DRWCPO\r
147 JMS TTO\r
148 TAD (340\r
149 JMS TODC\r
150DRWCP2, TAD (DRWCPM / SEND STATUS COMMAND\r
151 JMS TTO\r
152 JMS TTI\r
153 DRWCPB\r
154 4\r
155 TAD DRWCPB / CHECK STATUS\r
156 TAD (-7000\r
157 SNA CLA / STATUS.NE.8D ?\r
158 JMP DRWCP2 / NO:\r
159DRWCP3, TAD (DRWCPN / YES: SEND STATUS COMMAND\r
160 JMS TTO\r
161 JMS TTI\r
162 DRWCPB\r
163 4\r
164 TAD DRWCPB / CHECK STATUS\r
165 TAD (-7000\r
166 SZA CLA / STATUS = 8D ?\r
167 JMP DRWCP3 / NO:\r
168 TAD (DRWCPX / CR/LF\r
169 JMS TTO\r
170 TAD DRWCPD / DELAY\r
171 DCA DRWCPY\r
172 ISZ DRWCPZ\r
173 JMP .-1\r
174 ISZ DRWCPY\r
175 JMP .-3\r
176 JMP I DRAWCP / YES: DONE\r
177\r
178DRWCPD, -12\r
179DRWCPZ, 0\r
180DRWCPY, 0\r
181\r
182DRWCPB, ZBLOCK 4 / INPUT BUFFER\r
183\r
184 PAGE\r
185\f/\r
186/ SUBROUTINE DRAWEX\r
187/\r
188/ UNLOAD PEN AND EXIT TO OS/8\r
189/\r
190/ ENTRY: AC = NC\r
191/ EXIT: NO EXIT\r
192/\r
193\r
194DRAWEX, NOP / JMP OR JMS WORKS\r
195 CLA CLL\r
196 TAD DRWIFL\r
197 SZA CLA / PLOTTER INITIALIZED ?\r
198 JMS DRAWA4 / NO: A4 DEFAULT\r
199 TAD (DRWEXM\r
200 JMS TTO\r
201 JMP I (7600\r
202\f/\r
203/ SUBROTINE DRAWER\r
204/\r
205/ READ PLOTTER ERROR STATUS AND TYPE\r
206/ ERROR WITH FULL EXPLANATION ON TTY\r
207/\r
208/ ENTRY: AC = NC\r
209/ EXIT: AC = 0\r
210/\r
211\r
212DRAWER, 0\r
213 CLA CLL\r
214 TAD DRWIFL\r
215 SZA CLA / PLOTTER INITIALIZED ?\r
216 JMS DRAWA4 / NO: A4 DEFAULT\r
217 TAD (DRWEGL\r
218 JMS TTO / SEND MESSAGE\r
219 JMS DRWERM / READ ERROR CODE\r
220 TAD (DRWERC / EXTENDED ERROR CODE\r
221 JMS TTO\r
222 JMS DRWERM\r
223 JMP I DRAWER\r
224\r
225\r
226DRWERM, 0 / READ ERROR CODE AND TYPE\r
227 CLA / ERROR MESSAGE ON TTY\r
228 TAD (330 / SET INPUT DEV FOR ERROR CODE\r
229 JMS TIDC\r
230 TAD (7200 / DISABLE TTI ECHO\r
231 DCA TTI3-4\r
232 JMS TTI\r
233 DRWINB\r
234 4\r
235 TAD DRWINB / CHECK ERROR CODE\r
236 BSW\r
237 TAD (-60\r
238 SNA / ERROR CODE = 0 ?\r
239 JMP I DRWERM / YES:\r
240 TAD (-1\r
241 DCA DRWESC / NO: ERROR\r
242 TAD DRWINB / CHECK SECOND CHARACTER\r
243 AND (77\r
244 SNA / ZERO ?\r
245 JMP DRWERN / YES: ONE DIGIT ONLY\r
246 TAD (-60 / NO: ERROR CODE 10 - 16\r
247 TAD (11\r
248 DCA DRWESC\r
249DRWERN, TAD DRWESC\r
250 AND (7760\r
251 TAD DRWINB+1\r
252 SNA CLA / ERROR CODE 1<16 ?\r
253 JMP .+3 / YES:\r
254 TAD (10 / NO: UNDEFINED ERROR\r
255 SKP\r
256 TAD DRWESC\r
257 AND (17\r
258 TAD (DRWEMS / ADD TABLE START\r
259 DCA DRWESC\r
260 TAD (40 / TTY OUTPUT\r
261 JMS TODC\r
262 TAD (DRWEMH / MESSAGE HEADER\r
263 JMS TTO\r
264 TAD I DRWESC\r
265 JMS TTO\r
266 TAD (340\r
267 JMS TODC\r
268 JMP I DRWERM\r
269\r
270DRWESC, 0 / ERROR CODE\r
271\r
272DRWEMH, TEXT />DRAW ERROR /\r
273DRWINB, ZBLOCK 4\r
274\r
275DRWEMS, DRWE01\r
276 DRWE02\r
277 DRWE03\r
278 DRWE04\r
279 DRWE05\r
280 DRWE06\r
281 DRWE04\r
282 DRWE08\r
283 DRWE04\r
284 DRWE10\r
285 DRWE11\r
286 DRWE12\r
287 DRWE03\r
288 DRWE14\r
289 DRWE15\r
290 DRWE16\r
291\r
292 PAGE\r
293\f/ INITIALIZATION\r
294DRWIIN, TEXT /&34$[$.N;19:$[$.H32;;17:IN;SP0;PU;&04>DRAW DIN /;0\r
295DRWIA4, TEXT /A4$JM$&00PS4;IP603,521,10603,7721;SC0,250,0,180;IW;/;0\r
296DRWIA3, TEXT /A3$JM$&00PS3;IP170,602,15370,10602;SC0,380,0,250;IW;/;0\r
297\r
298/ DRAWCP MESSAGES\r
299DRWCPM, TEXT /DP;$[$.O/;0\r
300DRWCPN, TEXT /DC;$[$.O/;0\r
301DRWCPO, TEXT /&04$JM$>DRAW CHANGE PAPER !!&00/;0\r
302DRWCPX, TEXT /&04$JM$&00/;0\r
303\r
304/ DRAWEX MESSAGE\r
305DRWEXM, TEXT /&04>DRAW EXIT$JM$&00PU;PA0,0;SP0;/;0\r
306\r
307/ DRAWER MESSAGES\r
308DRWEGL, TEXT /OE;/;0\r
309DRWERC, TEXT /$[$.E;/;0\r
310DRWE01, TEXT /$I$INSTRUCTION NOT RECOGNIZED !!$JM$/;0\r
311DRWE02, TEXT /$I$WRONG NUMBER OF PARAMETER !!$JM$/;0\r
312DRWE03, TEXT /$I$OUT-OF-RANGE PARAMETER !!$JM$/;0\r
313DRWE04, TEXT /$I$?$JM$/;0\r
314DRWE05, TEXT /$I$UNKNOWN CHARACTER SET !!$JM$/;0\r
315DRWE06, TEXT /$I$POSITION OVERFLOW !!$JM$/;0\r
316DRWE08, TEXT /$I$VECTOR RECEIVED WHILE PINCH WHEELS RAISED !!$JM$/;0\r
317DRWE10, TEXT /$I$OUTPUT INSTRUCTION RECEIVED IS IGNORED !!$JM$/;0\r
318DRWE11, TEXT /$I$INVALID BYTE RECEIVED !!$JM$/;0\r
319DRWE12, TEXT /$I$INVALID BYTE RECEIVED !!$JM$/;0\r
320DRWE14, TEXT /$I$TOO MANY PARAMETER RECEIVED !!$JM$/;0\r
321DRWE15, TEXT /$I$TRANSMISSION ERROR !!$JM$/;0\r
322DRWE16, TEXT /$I$INPUT BUFFER OVERFLOW !!$JM$/;0\r
323\r
324 PAGE\r
325\r
326/\r
327/ TXIO32 FOLLOWS HERE AT 5400\r
328/\r
329\f\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0