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