| 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 |