Commit | Line | Data |
---|---|---|
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 | |
52 | DRAW, 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 | |
71 | DRWSTO, 0\r | |
72 | DRWFLD, 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 | |
83 | DRAWA4, 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 | |
93 | DRAWA3, 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 | |
103 | DRWIFL, -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 | |
126 | DRAWCP, 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 | |
135 | DRWCP1, 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 | |
150 | DRWCP2, 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 | |
159 | DRWCP3, 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 | |
178 | DRWCPD, -12\r | |
179 | DRWCPZ, 0\r | |
180 | DRWCPY, 0\r | |
181 | \r | |
182 | DRWCPB, 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 | |
194 | DRAWEX, 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 | |
212 | DRAWER, 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 | |
226 | DRWERM, 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 | |
249 | DRWERN, 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 | |
270 | DRWESC, 0 / ERROR CODE\r | |
271 | \r | |
272 | DRWEMH, TEXT />DRAW ERROR /\r | |
273 | DRWINB, ZBLOCK 4\r | |
274 | \r | |
275 | DRWEMS, 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 | |
294 | DRWIIN, TEXT /&34$[$.N;19:$[$.H32;;17:IN;SP0;PU;&04>DRAW DIN /;0\r | |
295 | DRWIA4, TEXT /A4$JM$&00PS4;IP603,521,10603,7721;SC0,250,0,180;IW;/;0\r | |
296 | DRWIA3, TEXT /A3$JM$&00PS3;IP170,602,15370,10602;SC0,380,0,250;IW;/;0\r | |
297 | \r | |
298 | / DRAWCP MESSAGES\r | |
299 | DRWCPM, TEXT /DP;$[$.O/;0\r | |
300 | DRWCPN, TEXT /DC;$[$.O/;0\r | |
301 | DRWCPO, TEXT /&04$JM$>DRAW CHANGE PAPER !!&00/;0\r | |
302 | DRWCPX, TEXT /&04$JM$&00/;0\r | |
303 | \r | |
304 | / DRAWEX MESSAGE\r | |
305 | DRWEXM, TEXT /&04>DRAW EXIT$JM$&00PU;PA0,0;SP0;/;0\r | |
306 | \r | |
307 | / DRAWER MESSAGES\r | |
308 | DRWEGL, TEXT /OE;/;0\r | |
309 | DRWERC, TEXT /$[$.E;/;0\r | |
310 | DRWE01, TEXT /$I$INSTRUCTION NOT RECOGNIZED !!$JM$/;0\r | |
311 | DRWE02, TEXT /$I$WRONG NUMBER OF PARAMETER !!$JM$/;0\r | |
312 | DRWE03, TEXT /$I$OUT-OF-RANGE PARAMETER !!$JM$/;0\r | |
313 | DRWE04, TEXT /$I$?$JM$/;0\r | |
314 | DRWE05, TEXT /$I$UNKNOWN CHARACTER SET !!$JM$/;0\r | |
315 | DRWE06, TEXT /$I$POSITION OVERFLOW !!$JM$/;0\r | |
316 | DRWE08, TEXT /$I$VECTOR RECEIVED WHILE PINCH WHEELS RAISED !!$JM$/;0\r | |
317 | DRWE10, TEXT /$I$OUTPUT INSTRUCTION RECEIVED IS IGNORED !!$JM$/;0\r | |
318 | DRWE11, TEXT /$I$INVALID BYTE RECEIVED !!$JM$/;0\r | |
319 | DRWE12, TEXT /$I$INVALID BYTE RECEIVED !!$JM$/;0\r | |
320 | DRWE14, TEXT /$I$TOO MANY PARAMETER RECEIVED !!$JM$/;0\r | |
321 | DRWE15, TEXT /$I$TRANSMISSION ERROR !!$JM$/;0\r | |
322 | DRWE16, 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 |