1 /FOCAL: PLOT, LABEL, MARK JVZ 2 3 /THESE ROUTINES ADAPT FOCAL TO A CALCOMP 565 DIGITAL INCRE- 4 /MENTAL PLOTTER BY PROVIDING THE COMMAND 'PLOT X,Y,L,M' AND 5 /ALTERING THE MEANING OF THE 'TYPE $' COMMAND. PLOT ESTAB- 6 /LISHES A COORDINATE SYSTEM RELATIVE TO AN ARBITRARY ORIGIN 7 /AND MOVES THE PEN IN A STRAIGHT LINE BETWEEN POINTS GIVEN 8 /AS THE X,Y ARGUMENTS OF THE COMMAND. 9 10 /COORDINATES ARE EXPRESSED IN UNITS OF .01" AND THE RANGE 11 /IS + OR - 20.47 INCHES. ADDITIONALLY CHANGES ARE LIMITED 12 /TO THIS RANGE. 'PLOT 100*X,100*Y' MAY BE USED TO CONVERT 13 /TO INCH UNITS. 14 15 /L CONTROLS THE PEN POSITION: L=0 SETS THE PEN UP (THUS 0= 16 /'NO LINE'), WHILE L=1 LOWERS THE PEN. EXPANSION OF THE 17 /PROGRAM COULD PERMIT L=2... TO DESIGNATE VARIOUS DOTTED & 18 /DASHED LINES. L=-1 IS USED TO ESTABLISH A NEW ORIGIN AT 19 /THE (X,Y) POSITION INDICATED. THE PEN IS RAISED DURING 20 /THIS MOTION. THIS CALL IS FREQUENTLY USED AT THE BEGIN- 21 /NING OF A PROGRAM TO RUN THE PEN OFF-SCALE AND THEN SET 22 /THE ORIGIN A FIXED DISTANCE IN FROM THE EDGE. IT IS ALSO 23 /USED AT THE END OF A PLOT TO ADVANCE THE PAPER: 24 25 /PLOT 1000,0,-1;C RUN OUT 10" OF PAPER ALONG X 26 27 /L=-2 SETS VARIOUS ROTATIONS AS DISCUSSED ON THE NEXT PAGE. 28 29 /M SPECIFIES THE MARK TO BE DRAWN AT THE CONCLUSION OF THE 30 /MOVE. MARK 0 IS A BLANK. THE OTHER 15 MARKS MAY BE USED 31 /FOR DISPLAYING DATA POINTS - WITH SAY A FITTED LINE DRAWN 32 /THROUGH THEM: 1-DOT 2-BAR 3-TICK 4-PLUS MARK 5-X MARK 33 /6-CIRCLE 7-FILLED CIRCLE 8-TRIANGLE 9-FILLED TRIANGLE 34 /10-SQUARE 11-FILLED SQUARE 12-DIAMOND 13-FILLED DIAMOND 35 /14-STAR 15-MALTESE CROSS. SPACE IS AVAILABLE FOR OTHERS. 36 37 /IN GENERAL ONLY THOSE ARGUMENTS WHICH DIFFER FROM A PRE- 38 /VIOUS CALL NEED TO BE WRITTEN. THUS IF M NEVER CHANGES 39 /FROM ITS INITIAL VALUE OF 0 IT CAN BE OMITTED. HOWEVER 40 /IF AN ARGUMENT IS CHANGED ALL PRECEEDING ONES MUST BE IN- 41 /DICATED BY THE PROPER NUMBER OF COMMAS. OMITTING A VALUE 42 /IN THIS CASE IS THE SAME AS SPECIFYING 0. SUCH SHORTCUTS 43 /MAY BE USED TO SPEED PROGRAM WRITING AND TO SAVE SPACE IN 44 /THE TEXT STORAGE AREA. NOTE THAT THE PLOT COMMAND MUST BE 45 /FOLLOWED BY A TERMINATOR (SPACE, COMMA, SEMICOLON, OR CAR- 46 /RIAGE RETURN) AND THAT THE ARGUMENTS (IF MORE THAN ONE) 47 /MUST BE SEPARATED BY COMMAS (PLUS OPTIONAL SPACES). 48 /EXAMPLE: (DRAWS A RECTANGLE) 49 50 /P,,1;P X;P X,Y;P;P,;P,, 51 52 /IS THE SAME AS: 53 54 /PLOT 0,0,1,0;PLOT X,0,1,0;PLOT X,Y,1,0 55 /PLOT 0,Y,1,0;PLOT 0,0,1,0;PLOT 0,0,0,0 56 /ANNOTATION IN THE FORM OF TEXT (LABELS) AND VARIABLES CAN 57 /BE WRITTEN ON THE PLOTTER WITH THE FOCAL 'TYPE' (OR 'ASK') 58 /COMMANDS BY INSERTING A $ AHEAD OF PLOTTER OUTPUT. THIS 59 /USE OF THE $ ELIMINATES THE SYMBOL TABLE DUMP. A SINGLE 60 /COMMAND CAN BE USED TO PRODUCE BOTH TTY AND PLOTTER OUT- 61 /PUT PROVIDED THE TTY INFORMATION IS WRITTEN FIRST. OUT- 62 /PUT AUTOMATICALLY RETURNS TO THE TTY AT THE END OF THE 63 /COMMAND AND THE PEN IS RETURNED TO THE START OF THE FIRST 64 /CHARACTER (LOWER LEFT-HAND CORNER). A PROGRAM INTERRUPT 65 /(SUCH AS A FUNCTION ERROR OR HITTING CTRL F) PERFORMS THE 66 /SAME OPERATIONS. THERE IS NO 'WRITE $' COMMAND, BUT IF 67 /DESIRED THE COMMANDS TYPE $;WRITE ... CAN BE USED TO LIST 68 /PROGRAMS ON THE PLOTTER. SUCH OUTPUT IS TERMINATED BY A 69 /'TYPE' COMMAND. THE OPERATIONS PERFORMED BY '!' AND '#' 70 /ARE SIMULATED, BUT IN GENERAL ARE EFFECTIVE ONLY DURING 71 /ONE COMMAND BECAUSE OF THE AUTOMATIC PEN RETURN AT THE END 72 /THIS MAY BE DEFEATED FOR THE PURPOSE OF PRODUCING TABLES, 73 /ETC. BY ENDING ALL BUT THE LAST TYPE COMMAND WITH AN UN- 74 /BALANCED QUOTE (") MARK FOLLOWED BY A CARRIAGE RETURN: 75 76 /01.10 TYPE $"TITLE 1 - WHICH IS A VERY LONG TITLE 77 /01.20 TYPE !"TITLE 2 - WHICH IS SOMEWHAT SHORTER" 78 79 /VARIABLES WILL BE PLOTTED JUST AS THEY WOULD BE TYPED - 80 /ACCORDING TO THE FORMAT SPECIFICATION (%) IN USE. THUS 81 /PLOTTER OUTPUT IS ESSENTIALLY IDENTICAL TO TTY OUTPUT BUT 82 /BOTH THE SIZE AND THE ORIENTATION OF THE WRITING MUST 83 /BE SPECIFIED. LETTER SIZES ARE MULTIPLES OF .05" X .07" 84 /(INCLUDING SEPARATION) AND WRITING CAN BE DONE ALONG ANY 85 /OF THE 8 BASIC PLOTTER DIRECTIONS (0-7) WHERE DIRECTION 0 86 /IS ALONG THE +Y AXIS, DIRECTION 2 IS ALONG THE +X AXIS 87 /ETC. WRITING ALONG A DIAGONAL IS LARGER BY THE SQRT(2). 88 89 /THE SIZE AND DIRECTION ARE SPECIFIED BY PLOT WHEN L=-2. X 90 /IS THE SIZE AND Y IS THE DIRECTION. EXAMPLE: PLOT 3,2,-2 91 /THIS SPECIFIES SIZE 3 LETTERS ALONG THE X-AXIS (DIR 2). 92 /EXPANSION OF THE PROGRAM CAN PROVIDE FOR VARIOUS CHARACTER 93 /STYLES (UPPER OR LOWER CASE FOR EXAMPLE) DETERMINED BY M. 94 95 /L=-2 IS ALSO USED TO SPECIFY THE ORIENTATION OF THE MARKS. 96 /IN THIS CASE X=0,Y=THE DESIRED ROTATION, AND M=THE MARK. 97 /AGAIN ODD ROTATIONS CREATE LARGER MARKS. EX: PLOT,1,-2,12 98 99 /FINALLY L=-2 IS USED TO SPECIFY A GENERAL ROTATION OF THE 100 /AXES WHICH IS EFFECTIVE FOR ALL PLOTTER OPERATIONS. THIS 101 /PERMITS ROTATING THE X-AXIS (WHICH NORMALLY RUNS ALONG THE 102 /LENGTH OF THE PAPER) SO THAT IT RUNS ALONG THE CARRIAGE 103 /INSTEAD: A CONVENIENCE FOR SMALL PLOTS SO THAT THEY CAN BE 104 /VIEWED WITHOUT TWISTING ONE'S HEAD. SUCH ROTATIONS ARE 105 /SPECIFIED BY SETTING X=0, Y=ROTATION, AND M=0. THE EXAMPLE 106 /MENTIONED ABOVE IS CODED: PLOT,2,-2,(CARRIAGE RETURN OR ;) 107 108 /THESE ROUTINES LOAD INTO FIELD 2 FROM 6200 TO 7577 AND DO 109 /NOT ALTER THE AMOUNT OF TEXT OR THE NUMBER OF VARIABLES IN 110 /ANY WAY. 'TDUMP' AND THE FUNCTION FDIS HAVE BEEN REPLACED. 111 /SYSTEM SYMBOLS: 112 113 CDI=6203 114 PLSF=6501 115 PLCF=6502 116 PLPU=6504 117 PLPR=6511 118 PLDU=6512 119 PLDD=6514 120 PLPL=6521 121 PLUD=6522 122 PLPD=6524 123 FIXTAB 124 125 /FOCAL SYMBOLS: 126 127 FIELD 1 128 129 ATLIST=1567 130 AUTO=16 131 CHAR=66 132 COMGO=1160 133 COMLST=770 134 ERROR2=4566 135 EVAL=1613 136 FIXIT=4453 137 GETC=4545 138 ILIST=2414 139 MCOM=72 140 MCR=116 141 OUTDEV=63 142 PUSHJ=4540 143 SORTJ=4547 144 TASK4=1232 145 TDUMP=3052 146 TLIST=1400 147 XDYS=1142 148 149 150 151 152 153 154 /MULTIPLY ROUTINE FOR EAE HARDWARE (SEE PAGE 11) 155 / 156 / 157 /MULT, 0 158 / AND N7 /MASK LOW ORDER DIGIT 159 / MQL MUY /MULTIPLY BY SIZE 160 /SIZE, 0 161 / SWP /PUT RESULT IN AC 162 / JMP I MULT 163 / 164 / ZBLOCK 4 /FOR STANDARD ROUTINE 165 /THIS IS THE ARGUMENT FETCH PART OF PLOT WHICH RESIDES 166 /WHERE FDIS ONCE DID. PLOT MAY HAVE FROM 1 TO 4 ARGU- 167 /MENTS: X,Y,L,M. THESE ARE STORED IN FIELD 2 AND WHEN 168 /THE LAST ONE HAS BEEN EVALUATED, THE PROGRAM BRANCHES 169 /TO XPLT. 170 171 *COMLST+21 172 011011 0320 "P /PLOT 173 174 *COMGO+21 175 011201 3114 PLT /PLOT COMMAND ENTRY 176 177 *XDYS 178 179 011142 4545 CONT, GETC /SKIP OVER COMMA 180 011143 4540 PUSHJ /EVALUATE ARGUMENT 181 011144 1613 EVAL /(MAY BE AN EXPRESSION) 182 011145 4453 FIXIT /LOAD AC WITH INTEGER 183 011146 6223 CDI 20 184 011147 3416 DCA I AUTO /STORE ARGUMENTS IN SEQUENCE 185 011150 1066 TAD CHAR /CHECK NEXT CHARACTER 186 011151 1072 TAD MCOM /TO SEE IF IT IS A COMMA 187 011152 7640 SZA CLA 188 011153 5756 JMP I .+3 /NO: CALL PLOTTING ROUTINE 189 011154 6213 CDI 10 190 011155 5342 JMP CONT /YES: MORE ARGUMENTS 191 011156 6575 XPLT 192 193 *ATLIST+10 194 011577 3070 TRAP / ; 195 011600 3070 TRAP /CR 196 /THESE ROUTINES TRAP A $ AND SEND SUBSEQUENT OUTPUT TO 197 /THE PLOTTER UNTIL A ; OR A CR IS ENCOUNTERED. ALSO 198 /INCLUDED IN THIS AREA IS THE INITIALIZE PART OF PLOT. 199 /THE ERROR RECOVERY ROUTINE USES TRAP TO RETURN THE PEN 200 /IN CASE OF A BREAK OR FUNCTION ERROR DURING LABEL OUTPUT. 201 202 *3001 203 013001 6213 PATCH, CDI 10 /PART OF RECOVR 204 013002 5267 JMP TRAP-1 205 206 *TDUMP /LOCATION OF $ TRAP 207 208 013052 6223 POUT, CDI 20 209 013053 5654 JMP I .+1 /PICK UP CURRENT LOCATION AND 210 013054 6373 INITL /TELL PLOT WHAT DIRECTION TO USE 211 013055 1311 TAD XLABEL 212 013056 3063 DCA OUTDEV /CHANGE OUTPUT TO PLOTTER 213 013057 5660 JMP I .+1 214 013060 1232 TASK4 /AND CONTINUE VIA LABEL 215 216 013061 0000 LABEL, 0 217 013062 1116 TAD MCR /SET UP AC FOR CR TEST 218 013063 6223 CDI 20 219 013064 4666 JMS I .+2 220 013065 5661 JMP I LABEL /BACK FOR MORE 221 013066 6410 DRAW 222 223 013067 3066 DCA CHAR /FORCE AN EXIT FROM SORTJ 224 013070 1261 TRAP, TAD LABEL /CHECK TO SEE IF THE 225 013071 7650 SNA CLA /PLOTTER HAS BEEN USED 226 013072 5300 JMP RETURN /NO 227 013073 1374 TAD 3174 /YES: RESTORE TTY OUTPUT 228 013074 3063 DCA OUTDEV 229 013075 6223 CDI 20 /RETURN PEN TO THE START 230 013076 4712 JMS I FINAL 231 013077 3261 DCA LABEL /CLEAR FLAG 232 233 013100 4547 RETURN, SORTJ /FIGURE OUT WHERE TO GO 234 013101 1400 TLIST / ; OR CR 235 013102 1014 ILIST-TLIST /PROCESS OR PC1 236 013103 1066 TAD CHAR /CHECK FOR RECOVR 237 013104 7640 SZA CLA 238 013105 4566 ERROR2 /FAULTY PLOT COMMAND 239 013106 6203 CDI 240 013107 6002 IOF 241 013110 5777 JMP I 3177 /CONTINUE WITH RECOVR 242 243 013111 3061 XLABEL, LABEL 244 013112 6562 FINAL, LTAD 245 246 013113 6577 X-1 /INITIAL ADDRESS 247 013114 1313 PLT, TAD .-1 /PLOT COMMAND 248 013115 3016 DCA AUTO /SET UP INDEX REGISTER 249 013116 5717 JMP I .+1 /AND FETCH PARAMETERS 250 013117 1143 CONT+1 251 /PDP 8 PLOTTING ROUTINE USING STANDARD D.E.C. INTERFACE 252 253 /CALLING SEQUENCE: 254 / PLOT = JMS I (PL0T) 255 / X X COORDINATE 256 / Y Y COORDINATE 257 /THIS VERSION SKIPS THE NEXT TWO WORDS 258 259 /C(AC) DETERMINES POSITION OF THE PEN: 260 / C(AC)= -2 SET (SIZE), DIRECTION 261 / C(AC)= -1 PEN UP; POSITION AT END OF MOTION SET TO 0,0 262 / C(AC)= 0 PEN UP (ZERO MEANS "NO LINE") 263 / C(AC)= 1 PEN DOWN 264 / C(AC)= 2... RESERVED FOR DOTTED AND DASHED LINES, ETC. 265 266 /COORDINATES ARE EXPRESSED IN UNITS OF PLOTTER STEPS: 0.01" 267 /THUS MAXIMUM MOTION IS +20.47" AND -20.47" FROM THE ORIGIN 268 /IN FACT THE MAXIMUM DIFFERENCE BETWEEN TWO POINTS IS ALSO 269 /RESTRICTED TO +20.47" OR -20.47" SO THAT IN SOME CASES TWO 270 /CALLS MAY BE REQUIRED TO REACH A POINT. 271 272 /THIS VERSION PERMITS ROTATING THE AXES IN 45 DEGREE STEPS. 273 /THIS FEATURE IS USEFUL FOR PLACING THE X AXIS ALONG THE 274 /CARRIAGE (ROTATION BY 2) AND IS ALSO USED BY THE LABEL 275 /ROUTINE. PLOTTING DONE WITH A ROTATION OF AN ODD MULTI- 276 /PLE OF 45 DEGREES WILL BE "STRETCHED" UNIFORMLY BY THE 277 /SQRT(2) DUE TO THE NATURE OF THE PLOTTER MOTIONS. 278 279 FIELD 2 280 *6200 281 282 026200 6521 PLD0, PLPL /PLOTTER OPERATION TABLE 283 026201 4615 PLD1, JMS I PLD9 284 026202 6514 PLD2, PLDD 285 026203 6515 PLD3, PLPR PLDD 286 026204 6511 PLD4, PLPR 287 026205 6513 PLD5, PLPR PLDU 288 026206 6512 PLD6, PLDU 289 026207 6523 PLD7, PLPL PLUD 290 026210 0000 PLD8, 0 291 026211 6521 PLPL 292 026212 6514 PLDD 293 026213 5610 JMP I PLD8 294 026214 6200 PLOP, PLD0 /PLOTTER OP CODE FOR DIRECTION 0:+Y 295 026215 6210 PLD9, PLD8 /FOR MARK'S CONVENIENCE 296 297 026216 0000 DX, 0 /ABSOLUTE VALUE OF X MOTION 298 026217 0000 DY, 0 /ABSOLUTE VALUE OF Y MOTION 299 300 026220 6713 PLPO, PEN /PEN CONTROL ROUTINE 301 026221 6733 PLDR, DRXN /SIZE AND DIRECTION ROUTINE 302 026222 0007 PL07, 7 /MASK 303 026223 0000 PDIR, 0 /PLOT ROTATION 304 026224 0000 LDIR, 0 /LABEL DIRECTION 305 026225 0000 TDIR, 0 306 026226 0000 PL0T, 0 307 026227 6002 IOF /NO INTERRUPTIONS 308 026230 7500 SMA /TEST FOR NEGATIVE LINE VALUE 309 026231 5236 JMP .+5 /CONTINUE IF C(AC)=0 OR 1 310 026232 7130 STL RAR /ARITHMETIC SHIFT RIGHT 311 026233 7420 SNL /EVEN OR ODD ? 312 026234 5621 JMP I PLDR /GET PLOT, LABEL PARAMETERS 313 026235 3323 DCA DIAG /CLEAR AC AND SAVE -1 314 026236 4620 JMS I PLPO /CHECK & SET PEN POSITION 315 316 026237 4340 JMS DXY /GET X, COMPARE WITH OLD VALUE 317 026240 0000 LX, 0 /LAST X VALUE 318 026241 3216 DCA DX /STORE ABSOLUTE X MOTION 319 026242 4340 JMS DXY /GET Y, COMPARE WITH OLD VALUE 320 026243 0000 LY, 0 /LAST Y VALUE 321 026244 7161 STL CIA /NEGATE DY 322 026245 1216 TAD DX /AC=DX-DY 323 026246 7630 SZL CLA /LINK=0 IF DX>DY 324 026247 5257 JMP DYGTDX 325 326 026250 1216 DXGTDY, TAD DX /EXCHANGE DY AND DX 327 026251 3340 DCA DXY 328 026252 1217 TAD DY 329 026253 3216 DCA DX 330 026254 1340 TAD DXY 331 026255 3217 DCA DY 332 026256 7001 IAC /SET BIT 10 (SIGN OF X) 333 334 026257 7001 DYGTDX, IAC /SET BIT 11 (SIGN OF Y) 335 026260 0323 AND DIAG /CHECK FOR NEGATIVE VALUES 336 026261 7420 SNL /SKIP IF DY>DX 337 026262 7010 RAR /SIGN OF X -> BIT 11; LINK=0 338 026263 7026 CML RTL /BIT 11 + LINK = DIRECTION/4 339 026264 4362 JMS ROTATE /ADD ROTATION 340 026265 3325 DCA AXIS /STORE IN AXIS INSTRUCTION 341 342 026266 1323 TAD DIAG /CHECK ON SIGNS AGAIN 343 026267 7012 RTR 344 026270 7430 SZL /MODIFY SIGNS TO REFLECT 345 026271 7040 CMA /PLOTTER DIRECTIONS 346 026272 7006 RTL 347 026273 7124 STL RAL /2*RESULT+1 = DIRECTION 348 026274 4362 JMS ROTATE /ADD ROTATION 349 026275 3323 DCA DIAG /STORE IN DIAGONAL INSTRUCTION 350 351 026276 7001 STRCH, IAC /FIND OUT IF ROTATION 352 026277 0340 AND DXY /IS EVEN OR ODD 353 026300 7640 SZA CLA /TABLE AT EVEN ADDRESS 354 026301 5306 JMP SETUP /EVEN: CONTINUE 355 026302 1216 TAD DX /ODD: ADJUST RATIO 356 026303 1217 TAD DY 357 026304 3217 DCA DY 358 026305 1216 TAD DX /DOUBLE DIAGONAL STEPS 359 026306 1216 SETUP, TAD DX /DX IS MINOR MOTION 360 026307 7041 CIA /NEGATE FOR EASY SUBTRACTION 361 026310 3216 DCA DX 362 026311 1217 TAD DY /DY IS MAJOR MOTION 363 026312 7040 CMA /AND DETERMINES STEP COUNT 364 026313 3340 DCA DXY 365 026314 1217 TAD DY /HALF THE TOTAL MOTION 366 026315 7110 CLL RAR /IS SET IN THE AC 367 026316 5331 JMP AXIS+4 368 369 026317 1216 LOOP, TAD DX /SUBTRACT DIAGONAL INCREMENT 370 026320 7500 SMA /TEST IF DIAG MOTION REQUIRED 371 026321 5325 JMP AXIS /NO 372 026322 1217 TAD DY /YES: RESTORE AXIS INCREMENT 373 026323 0000 DIAG, 0 /COMBINED MOTION (X + Y) 374 026324 7410 SKP 375 026325 0000 AXIS, 0 /SINGLE MOTION (X OR Y) 376 026326 6501 PLSF /WAIT 'TILL DONE 377 026327 5326 JMP .-1 378 026330 6502 PLCF 379 026331 2340 ISZ DXY /COUNT THE STEPS 380 026332 5317 JMP LOOP 381 026333 3323 EXIT, DCA DIAG /CLEAR AC & DIAG BITS 0-1 382 026334 6001 ION /DONE: INTERRUPTS OK NOW 383 026335 2226 ISZ PL0T /ADVANCE PAST 384 026336 2226 ISZ PL0T /NEXT TWO WORDS 385 026337 5626 JMP I PL0T /AND RETURN 386 387 026340 0000 DXY, 0 388 026341 1740 TAD I DXY /GET LAST X OR LAST Y 389 026342 7041 CIA /NEGATE 390 026343 1626 TAD I PL0T /AC=NEW-OLD 391 026344 7100 CLL /SET LINK FOR POSITIVE SIGN 392 026345 7510 SPA /TEST FOR SIGN 393 026346 7061 CML CIA /REMEMBER SIGN & NEGATE 394 026347 3217 DCA DY /STORE ABSOLUTE Y MOTION 395 026350 1323 TAD DIAG 396 026351 7004 RAL /SAVE MINUS SIGN 397 026352 3323 DCA DIAG 398 026353 7420 SNL /CHECK FOR NEW ORIGIN 399 026354 1626 TAD I PL0T /GET NEW VALUE 400 026355 3740 DCA I DXY /REPLACE PREVIOUS ONE 401 026356 1217 TAD DY /SET AC FOR NEXT OPERATION 402 026357 2226 ISZ PL0T /SET NEXT ADDRESS 403 026360 2340 ISZ DXY /SET RETURN ADDRESS 404 026361 5740 JMP I DXY /RETURN 405 406 026362 0000 ROTATE, 0 /ROTATE IN 45 DEGREE STEPS 407 026363 1223 TAD PDIR /ADD PLOT ROTATION (0-7) 408 026364 1225 TAD TDIR /AND LABEL ROTATION (IF ANY) 409 026365 0222 AND PL07 /MODULO EIGHT 410 026366 1214 TAD PLOP /ADD CODE FOR PLD0 411 026367 3340 DCA DXY /SAVE TABLE ADDRESS 412 026370 1740 TAD I DXY /GET INSTRUCTION 413 026371 5762 JMP I ROTATE /AND RETURN 414 /THIS ROUTINE DRAWS ANY ASCII SYMBOL ON THE PLOTTER. 415 /IN ADDITION TO THE 63 ASCII SYMBOLS, THE CODES FOR 416 /CR AND LF ARE RECOGNIZED AND USED TO SIMULATE THESE 417 /COMMANDS. SYMBOLS ARE BASED ON A 5 X 7 GRID OF WHICH 418 /4 X 6 IS USED SO AS TO PROVIDE SPACING. SIZE 2 CHAR- 419 /ACTERS ARE THUS .08" X .12" WITH .02" BETWEEN THEM. 420 /LF MOVES .1" X SIZE BELOW THE PRESENT LINE, BUT IS EF- 421 /FECTIVE ONLY DURING A SINGLE OUTPUT COMMAND AS THE PEN 422 /IS ALWAYS RETURNED TO THE STARTING POSITION AT THE END. 423 424 026372 6564 SX 425 026373 1224 INITL, TAD LDIR /GET LABEL DIRECTION 426 026374 3225 DCA TDIR 427 026375 1240 TAD LX /SAVE CURRENT POSITION 428 026376 3772 DCA I .-4 429 026377 1243 TAD LY /PAGE BOUNDARY 430 026400 3365 DCA SY 431 026401 1364 TAD SX /"S" MEANS STARTING 432 026402 3357 DCA RX /"R" MEANS RUNNING 433 026403 1365 TAD SY 434 026404 3360 DCA RY 435 026405 6213 CDI 10 436 026406 5607 JMP I .+1 /CONTINUE WITH OUTPUT 437 026407 3055 POUT+3 438 439 026410 0000 DRAW, 0 440 026411 7450 SNA /ASCII-CR IN AC 441 026412 5315 JMP CR /RETURN PEN TO (SX,RY) 442 026413 1311 TAD N3 443 026414 7450 SNA /TEST FOR LF 444 026415 5320 JMP LF /PLACE PEN AT (RX,RY-.1*SIZE) 445 026416 1270 TAD FIVE+2 /RESTORE ORIGINAL CODE 446 026417 0314 AND N77 /ONLY NEED SIX BITS 447 026420 7450 SNA /IGNORE ZERO 448 026421 5307 JMP SEVEN /("@" NOT AVAILABLE) 449 026422 7041 CIA /NEGATE 450 026423 3252 DCA TWO /LETTER COUNTER 451 026424 1367 TAD TBAD /LOAD STARTING ADDRESS 452 026425 3362 DCA LTAD /INTO SEARCH ADDRESS 453 026426 5237 JMP HALF /AND GO SEARCH 454 455 026427 0000 ZBLOCK 3 /PATCH FOR ALTERNATE MODES 026430 0000 026431 0000 456 457 026432 1762 ZERO, TAD I LTAD /LOOK AT THIS WORD 458 026433 2362 ISZ LTAD /POINT TO NEXT ONE 459 026434 7040 CMA 460 026435 0314 AND N77 461 026436 7650 SNA CLA /DOES IT END IN 77 ? 462 026437 2252 HALF, ISZ TWO /YES: FOUND IT ? 463 026440 5232 JMP ZERO /NO: KEEP GOING 464 026441 1762 ONE, TAD I LTAD /GET FIRST MOVE 465 026442 7012 RTR /COULD USE 466 026443 7012 RTR /BSW = 7002 467 026444 7012 RTR /ON PDP 8/E 468 026445 4252 JMS TWO 469 026446 1762 TAD I LTAD /GET SECOND MOVE 470 026447 4252 JMS TWO 471 026450 2362 ISZ LTAD /ADVANCE TO NEXT WORD 472 026451 5241 JMP ONE /CONTINUE 473 474 026452 0000 TWO, 0 475 026453 0314 AND N77 /GET RID OF THE OTHER PIECE 476 026454 3343 DCA MOVE /AND SAVE MOVE 477 478 026455 7126 THREE, STL RTL /=2 - TRICKY WAY TO GET -76 479 026456 1264 TAD FOUR /THIS INSTRUCTION ADDS 7700 480 026457 1343 TAD MOVE /ADD -76 TO MOVE 481 026460 7440 SZA 482 026461 5264 JMP FOUR /NOT PEN UP, CHECK FOR END 483 026462 3366 DCA LN /76 MEANS RAISE THE PEN 484 026463 5652 JMP I TWO /AND CONTINUE 485 486 026464 7700 FOUR, SMA CLA /TEST FOR 77 (INST. = 7700) 487 026465 5300 JMP SIX /MOVE TO POSITION (5,0) 488 489 026466 1343 FIVE, TAD MOVE /GET X MOTION 490 026467 7010 RAR 491 026470 7012 RTR /THIS INSTRUCTION ENDS IN 12 492 026471 4331 JMS MULT /MULTIPLY BY SIZE 493 026472 3355 DCA IX /"I" MEANS "INCREMENTAL" 494 026473 1343 TAD MOVE /GET Y MOTION 495 026474 4331 JMS MULT 496 026475 4343 JMS MOVE /"IY" IS IN AC 497 026476 2366 ISZ LN /INCREASE LINE VALUE 498 026477 5652 JMP I TWO /GET NEXT BYTE 499 500 026500 1312 SIX, TAD N5 /EQUALS WIDTH OF LETTER 501 026501 4331 JMS MULT /TIMES SIZE 502 026502 3355 DCA IX /STORE MOTION AND SET IY=0 503 026503 3366 DCA LN /MOVE WITH PEN UP 504 026504 4343 JMS MOVE /"IY"=0 505 026505 1355 TAD IX 506 026506 3357 DCA RX /UPDATE CURRENT X VALUE 507 508 026507 6213 SEVEN, CDI 10 509 026510 5610 JMP I DRAW /END OF THIS LETTER 510 511 026511 0003 N3, 3 512 026512 0005 N5, 5 513 026513 0007 N7, 7 514 026514 0077 N77, 77 515 026515 1364 CR, TAD SX /GET STARTING VALUE 516 026516 3357 DCA RX /AND RESET RX 517 026517 5302 JMP SIX+2 /CLEAR IX,IY(=AC), AND LN 518 519 026520 3355 LF, DCA IX /SET IX TO ZERO 520 026521 1312 TAD N5 521 026522 4331 JMS MULT /5*SIZE 522 026523 7041 CMA IAC /NEGATE 523 026524 7104 CLL RAL /AND MULTIPLY BY 2 524 026525 4343 JMS MOVE /TO (RX,-10*SIZE) 525 026526 1356 TAD IY 526 026527 3360 DCA RY /UPDATE RY 527 026530 5307 JMP SEVEN /RETURN TO CALLING PROG. 528 529 026531 0000 MULT, 0 530 026532 0313 AND N7 /MASK LOW ORDER DIGIT 531 026533 7040 CMA /EQUALS -(MOVE+1) 532 026534 3356 DCA IY /STORE IN STEP COUNTER 533 026535 7410 SKP /IN CASE MLPR=0 534 026536 1342 TAD SIZE /ADD MCND UNTIL 535 026537 2356 ISZ IY /MLPR RUNS OUT 536 026540 5336 JMP .-2 537 026541 5731 JMP I MULT 538 026542 0000 SIZE, 0 /THIS IS THE LETTER SIZE 539 540 026543 0000 MOVE, 0 /ROUTINE TO CALL PLOT 541 026544 1360 TAD RY /ADD STARTING VALUE TO AC 542 026545 3356 DCA IY /TO GET NEXT Y POSITION 543 026546 1357 TAD RX /GET START OF THIS LETTER 544 026547 1355 TAD IX /ADD IN X INCREMENT 545 026550 3355 DCA IX /TO GET NEXT X POSITION 546 026551 1366 TAD LN /GET LINE VALUE 547 026552 7640 SZA CLA /CHECK FOR PEN UP 548 026553 7001 IAC /OTHERWISE SET AC=1 (PEN DOWN) 549 026554 4774 PLOT /GET PLOT TO MOVE THE PEN 550 026555 0000 IX, 0 /X COORDINATE 551 026556 0000 IY, 0 /Y COORDINATE 552 026557 0000 RX, 0 /THESE TWO ARE SKIPPED 553 026560 0000 RY, 0 554 026561 5743 JMP I MOVE 555 556 026562 0000 LTAD, 0 557 026563 4774 PLOT /RETURN TO THE BEGINNING 558 026564 0000 SX, 0 559 026565 0000 SY, 0 560 026566 0000 LN, 0 561 026567 7200 TBAD, LTRA 562 026570 6213 CDI 10 563 026571 5762 JMP I LTAD /AND RETURN TO FOCAL 564 565 026572 6225 TDIR /ADDRESSES FOR XPLT 566 026573 6602 L 567 568 PLOT=JMS I . 569 026574 6226 PL0T 570 /PDP 8 CALCOMP ROUTINE: MARK 571 572 /THIS ROUTINE DRAWS A SPECIFIED MARK CENTERED AT THE 573 /CURRENT PLOTTER POSITION. MARK 0 IS A NULL AND NO 574 /ACTION OCCURS. SPECIFYING A NON-EXISTENT MARK WILL 575 /CAUSE A SIMILAR EXIT. 576 577 /MARKS ARE CODED AT THE END OF THE PROGRAM ACCORDING 578 /TO THE FOLLOWING PLAN: RDRD,RDRD,... WHERE R = 579 /REPETITION NUMBER (0-7) AND D = PLOTTER DIRECTION 580 /(0-7). DIRECTIONS ARE COMPUTED RELATIVE TO ANY RO- 581 /TATION SPECIFIED BY PLOT. THIS PERMITS MARKS WITHOUT 582 /C/8 SYMMETRY TO FOLLOW ROTATIONS OF THE AXES. 583 /RD = 00/01 SPECIFIES PEN UP/DOWN AND RD = 07 OR 0707 584 /SIGNIFIES THE END OF A MARK. THE CODE 0706 FOLLOWS 585 /THE LAST MARK. THE TABLE MAY BE CHANGED AS DESIRED. 586 587 588 026575 3772 XPLT, DCA I .-3 /ENTRY FROM PLOT CALL 589 026576 1773 TAD I .-3 /CLEAR TDIR & GET L 590 591 026577 4774 PLOT 592 026600 0000 X, 0 /CALLING PARAMETERS 593 026601 0000 Y, 0 /ARE STORED HERE IN 594 026602 0000 L, 0 /SEQUENCE 595 026603 0000 M, 0 596 597 026604 0000 MARK, ZBLOCK 1 /TOO MANY COMMAS! 598 026605 1203 TAD M /GET MARK NUMBER 599 026606 7550 SPA SNA /TEST FOR MARK >0 600 026607 5357 JMP BACK /ZERO = NONE 601 026610 7041 CIA /NEGATE 602 026611 3244 DCA ZWEI /STORE IN MARK COUNTER 603 026612 1216 TAD TABL /GET START OF MARK TABLE 604 026613 3217 DCA MKAD 605 026614 5230 JMP HALB 606 026615 6210 PLD8 /FOR DIRECTION 1 607 608 026616 6763 TABL, DOT /FIRST MARK 609 026617 0000 MKAD, 0 610 611 026620 7001 NULL, IAC /TEST FOR END OF TABLE 612 026621 7650 SNA CLA 613 026622 5357 JMP BACK /NON-EXISTENT MARK 614 026623 1617 TAD I MKAD /LOOK AT THIS WORD 615 026624 2217 ISZ MKAD /AND POINT TO NEXT 616 026625 0311 AND K77 /ONLY KEEP LOWER BYTE 617 026626 1312 TAD M7 618 026627 7450 SNA /END OF THIS MARK ? 619 026630 2244 HALB, ISZ ZWEI /HAVE WE FOUND IT ? 620 026631 5220 JMP NULL /NO 621 026632 6002 IOF /PROTECT PLOT ORIGIN 622 026633 1617 EINS, TAD I MKAD /GET FIRST MOTION 623 026634 7012 RTR /COULD USE 624 026635 7012 RTR /BSW = 7002 625 026636 7012 RTR /ON PDP 8/E 626 026637 4244 JMS ZWEI 627 026640 1617 TAD I MKAD /GET SECOND MOTION 628 026641 4244 JMS ZWEI 629 026642 2217 ISZ MKAD /ADVANCE 630 026643 5233 JMP EINS /CONTINUE 631 632 026644 0000 ZWEI, 0 633 026645 0311 AND K77 /GET RID OF THE OTHER PIECE 634 026646 3200 DCA X /TEMPORARY STORAGE 635 026647 1312 TAD M7 636 026650 1200 TAD X /NOW LOOK AT CODE 637 026651 7450 SNA /TEST FOR END OF MARK 638 026652 5357 JMP BACK /RETURN WITH AC=0 639 026653 7700 SMA CLA /TEST FOR PEN MOTION 640 026654 5260 JMP DREI /EXECUTE XY MOTION 641 026655 1200 TAD X /GET PEN CODE 642 026656 4313 JMS PEN /MOVE PEN IF NECESSARY 643 026657 5644 JMP I ZWEI /DO NEXT OPERATION 644 645 026660 1200 DREI, TAD X /GET DIRECTION 646 026661 1307 TAD MDIR /ADD ROTATION 647 026662 4710 JMS I PLTR /FORMULATE AND 648 026663 3300 DCA VIER+1 /SAVE INSTRUCTION 649 026664 1307 TAD MDIR 650 026665 1750 TAD I BACK-7 /CHECK ROTATION 651 026666 0200 AND X /FOR ODDNESS 652 026667 7050 CMA RAR /SAVE -(BIT 11) 653 026670 7240 CLA CMA 654 026671 0200 AND X /GET REPETITION 655 026672 0273 AND .+1 /STRIP BITS 6-8 656 026673 7470 SNA SZL /SAME AS SZL BUT CODE XX70 657 026674 7110 CLL RAR /SKIP = EFFECTIVE X2 658 026675 7012 RTR /SHIFT INTO PLACE 659 026676 7041 CIA /NEGATE 660 661 026677 7001 VIER, IAC /INCREMENT LOOP COUNT 662 026700 0000 0 /PLOTTER INSTRUCTION 663 026701 6501 PLSF /WAIT FOR PLOTTER 664 026702 5301 JMP .-1 665 026703 6502 PLCF 666 026704 7440 SZA /TEST LOOP COUNT 667 026705 5277 JMP VIER /KEEP GOING 668 026706 5644 JMP I ZWEI /GET NEXT BYTE 669 670 026707 0000 MDIR, 0 /MARK ROTATION 671 026710 6362 PLTR, ROTATE 672 673 026711 0077 K77, 77 674 026712 7771 M7, -7 675 026713 0000 PEN, 0 /CHECK PEN POSITION 676 026714 7106 CLL RTL /AC=0>>PEN UP; AC=1>>DOWN 677 026715 7126 STL RTL /SHIFT BIT INTO PLACE 678 026716 1331 TAD PNOP+3 /ADD CODE FOR PEN UP 679 026717 7041 CIA /NEGATE 680 026720 1326 TAD PNOP /OLD - NEW 681 026721 7450 SNA /OLD = NEW ? 682 026722 5713 JMP I PEN /YES: DON'T MOVE PEN 683 026723 7041 CIA /NEW - OLD 684 026724 1326 TAD PNOP /NEW 685 026725 3326 DCA PNOP 686 026726 6504 PNOP, PLPU /ASSUME PEN UP INITIALLY 687 026727 6501 PLSF /ALLOW PLOTTER TO FINISH 688 026730 5327 JMP .-1 689 026731 6502 PLCF 690 026732 5713 JMP I PEN 691 692 026733 7200 DRXN, CLA /THIS ROUTINE ENTERED 693 026734 1200 TAD X /FROM PLOT WHEN L=-2 694 026735 7440 SZA /TEST X 695 026736 5353 JMP BACK-4 /IF X IS NON-ZERO SET SIZE 696 026737 1203 TAD M /OTHERWISE CHECK M 697 026740 7650 SNA CLA 698 026741 5345 JMP .+4 /IF ZERO GET PLOT ROTATION 699 700 026742 1201 TAD Y 701 026743 3307 DCA MDIR /SAVE MARK ROTATION 702 026744 5357 JMP BACK 703 704 026745 1201 TAD Y 705 026746 3750 DCA I .+2 /SAVE PLOT ROTATION 706 026747 5357 JMP BACK 707 026750 6223 PDIR 708 709 026751 6542 SIZE 710 026752 6224 LDIR 711 026753 3751 DCA I .-2 /SAVE LETTER SIZE 712 026754 7144 CMA CLL RAL /SET AC=-2 BECAUSE LETTERS 713 026755 1201 TAD Y /ARE CODED FOR DIRECTION 2 714 026756 3752 DCA I .-4 715 716 026757 6001 BACK, ION /RE-ENABLE INTERRUPTS 717 026760 6213 CDI 10 718 026761 5762 JMP I .+1 719 026762 3100 RETURN /COMMAND RETURN 720 721 722 /NEXT COME THE MARKS: 723 026763 0110 DOT, 0110 /MARK NUMBER 1 724 026764 1315 1315 725 026765 1016 1016 726 026766 2216 2216 727 026767 1015 1015 728 026770 1310 1310 729 026771 0007 0007 730 026772 0152 BAR, 0152 /MARK NUMBER 2 731 026773 5656 5656 732 026774 5207 5207 733 026775 0150 TICK, 0150 /MARK NUMBER 3 734 026776 5054 5054 735 026777 5407 5407 736 027000 0142 0142 /MARK NUMBER 4 737 027001 4646 4646 738 027002 4244 4244 739 027003 4040 4040 740 027004 4407 4407 741 027005 0131 XMARK, 0131 /MARK NUMBER 5 742 027006 6531 6531 743 027007 3367 3367 744 027010 3307 3307 745 027011 0025 CIRCLE, 0025 /MARK NUMBER 6 746 027012 0117 0117 747 027013 2021 2021 748 027014 2223 2223 749 027015 2425 2425 750 027016 2617 2617 751 027017 0021 0021 752 027020 0707 0707 753 027021 0125 SCIRCL, 0125 /MARK NUMBER 7 754 027022 1720 1720 755 027023 2122 2122 756 027024 2324 2324 757 027025 2526 2526 758 027026 1730 1730 759 027027 1122 1122 760 027030 1324 1324 761 027031 1526 1526 762 027032 3022 3022 763 027033 2416 2416 764 027034 1007 1007 765 027035 0021 TRIANG, 0021 /MARK NUMBER 8 766 027036 0113 0113 767 027037 1413 1413 768 027040 1413 1413 769 027041 5656 5656 770 027042 1021 1021 771 027043 1011 1011 772 027044 1011 1011 773 027045 1011 1011 774 027046 1423 1423 775 027047 1400 1400 776 027050 2507 2507 777 027051 0121 STRIAN, 0121 /MARK NUMBER 9 778 027052 1314 1314 779 027053 1314 1314 780 027054 1356 1356 781 027055 5610 5610 782 027056 2110 2110 783 027057 1110 1110 784 027060 1110 1110 785 027061 1114 1114 786 027062 2334 2334 787 027063 1314 1314 788 027064 7621 7621 789 027065 1011 1011 790 027066 1011 1011 791 027067 1412 1412 792 027070 3413 3413 793 027071 4611 4611 794 027072 1011 1011 795 027073 2407 2407 796 027074 0035 SQUARE, 0035 /MARK NUMBER 10 797 027075 0160 0160 798 027076 6264 6264 799 027077 6600 6600 800 027100 3107 3107 801 027101 0137 SSQUAR, 0137 /MARK NUMBER 11 802 027102 6264 6264 803 027103 6650 6650 804 027104 5244 5244 805 027105 4630 4630 806 027106 3224 3224 807 027107 2610 2610 808 027110 1207 1207 809 027111 0023 DIAMND, 0023 /MARK NUMBER 12 810 027112 0125 0125 811 027113 4741 4741 812 027114 4325 4325 813 027115 0027 0027 814 027116 0707 0707 815 027117 0123 SDIAMN, 0123 /MARK NUMBER 13 816 027120 2547 2547 817 027121 4143 4143 818 027122 2516 2516 819 027123 1537 1537 820 027124 3133 3133 821 027125 1516 1516 822 027126 1527 1527 823 027127 2123 2123 824 027130 1615 1615 825 027131 1711 1711 826 027132 1407 1407 827 027133 0024 STAR, 0024 /MARK NUMBER 14 828 027134 0125 0125 829 027135 1615 1615 830 027136 1011 1011 831 027137 2011 2011 832 027140 2011 2011 833 027141 2011 2011 834 027142 1413 1413 835 027143 1413 1413 836 027144 2413 2413 837 027145 2413 2413 838 027146 1417 1417 839 027147 1627 1627 840 027150 1627 1627 841 027151 1627 1627 842 027152 6262 6262 843 027153 2516 2516 844 027154 2516 2516 845 027155 0020 0020 846 027156 0707 0707 847 027157 0032 CROSS, 0032 /MARK NUMBER 15 848 027160 1001 1001 849 027161 2721 2721 850 027162 6623 6623 851 027163 2527 2527 852 027164 6421 6421 853 027165 2325 2325 854 027166 6227 6227 855 027167 2123 2123 856 027170 6025 6025 857 027171 0014 0014 858 027172 3607 3607 859 027173 0706 LAST, 0706 /END OF MARK TABLE 860 861 PAGE /ROOM FOR ADDITIONS 862 027200 0004 LTRA, 0004 /CHARACTER TABLE FOR CALCOMP PLOTTER 863 027201 1636 1636 864 027202 4443 4443 865 027203 0343 0343 866 027204 4077 4077 867 027205 0333 LTRB, 0333 868 027206 4241 4241 869 027207 3000 3000 870 027210 0636 0636 871 027211 4544 4544 872 027212 3377 3377 873 027213 4536 LTRC, 4536 874 027214 1605 1605 875 027215 0110 0110 876 027216 3041 3041 877 027217 7777 7777 878 027220 3000 LTRD, 3000 879 027221 0636 0636 880 027222 4541 4541 881 027223 3077 3077 882 027224 4606 LTRE, 4606 883 027225 0333 0333 884 027226 0300 0300 885 027227 4077 4077 886 027230 0003 LTRF, 0003 887 027231 3303 3303 888 027232 0646 0646 889 027233 7777 7777 890 027234 4536 LTRG, 4536 891 027235 1605 1605 892 027236 0110 0110 893 027237 3041 3041 894 027240 4323 4323 895 027241 7777 7777 896 027242 0006 LTRH, 0006 897 027243 0343 0343 898 027244 4640 4640 899 027245 7777 7777 900 027246 0040 LTRI, 0040 901 027247 2026 2026 902 027250 0646 0646 903 027251 7777 7777 904 027252 0201 LTRJ, 0201 905 027253 1030 1030 906 027254 4146 4146 907 027255 7777 7777 908 027256 0600 LTRK, 0600 909 027257 0246 0246 910 027260 2440 2440 911 027261 7777 7777 912 027262 0600 LTRL, 0600 913 027263 4077 4077 914 027264 0006 LTRM, 0006 915 027265 2346 2346 916 027266 4077 4077 917 027267 0006 LTRN, 0006 918 027270 4046 4046 919 027271 7777 7777 920 027272 4130 LTRO, 4130 921 027273 1001 1001 922 027274 0516 0516 923 027275 3645 3645 924 027276 4177 4177 925 027277 0006 LTRP, 0006 926 027300 3645 3645 927 027301 4433 4433 928 027302 0377 0377 929 027303 2240 LTRQ, 2240 930 027304 1001 1001 931 027305 0516 0516 932 027306 3645 3645 933 027307 4130 4130 934 027310 7777 7777 935 027311 0006 LTRR, 0006 936 027312 3645 3645 937 027313 4433 4433 938 027314 0323 0323 939 027315 4077 4077 940 027316 0110 LTRS, 0110 941 027317 3041 3041 942 027320 4233 4233 943 027321 1304 1304 944 027322 0516 0516 945 027323 3645 3645 946 027324 7777 7777 947 027325 2026 LTRT, 2026 948 027326 0646 0646 949 027327 7777 7777 950 027330 0601 LTRU, 0601 951 027331 1030 1030 952 027332 4146 4146 953 027333 7777 7777 954 027334 0620 LTRV, 0620 955 027335 4677 4677 956 027336 0610 LTRW, 0610 957 027337 2330 2330 958 027340 4677 4677 959 027341 0046 LTRX, 0046 960 027342 2306 2306 961 027343 4077 4077 962 027344 2023 LTRY, 2023 963 027345 0623 0623 964 027346 4677 4677 965 027347 0646 LTRZ, 0646 966 027350 0040 0040 967 027351 7777 7777 968 027352 3616 LBRAKT, 3616 969 027353 1030 1030 970 027354 7777 7777 971 027355 0640 BSLASH, 0640 972 027356 7777 7777 973 027357 1636 RBRAKT, 1636 974 027360 3010 3010 975 027361 7777 7777 976 027362 2026 UPAROW, 2026 977 027363 0426 0426 978 027364 4477 4477 979 027365 1103 LFAROW, 1103 980 027366 1503 1503 981 027367 4377 4377 982 027370 7777 SPACE, 7777 983 027371 2011 EXCLPT, 2011 984 027372 2215 2215 985 027373 2635 2635 986 027374 2231 2231 987 027375 2077 2077 988 027376 1614 QUOTE, 1614 989 027377 7636 7636 990 027400 3477 3477 991 027401 1026 NUMSGN, 1026 992 027402 2414 2414 993 027403 4446 4446 994 027404 3242 3242 995 027405 1232 1232 996 027406 3077 3077 997 027407 0110 DOLLAR, 0110 998 027410 3041 3041 999 027411 4233 4233 1000 027412 1304 1304 1001 027413 0516 0516 1002 027414 3645 3645 1003 027415 3626 3626 1004 027416 2077 2077 1005 027417 0046 PERCNT, 0046 1006 027420 7614 7614 1007 027421 0516 0516 1008 027422 2514 2514 1009 027423 7630 7630 1010 027424 2132 2132 1011 027425 4130 4130 1012 027426 7777 7777 1013 027427 4220 AMPER, 4220 1014 027430 0001 0001 1015 027431 2516 2516 1016 027432 0540 0540 1017 027433 7777 7777 1018 027434 2624 APOST, 2624 1019 027435 7777 7777 1020 027436 2012 LPAREN, 2012 1021 027437 1426 1426 1022 027440 7777 7777 1023 027441 2032 RPAREN, 2032 1024 027442 3426 3426 1025 027443 7777 7777 1026 027444 0145 ASTER, 0145 1027 027445 2320 2320 1028 027446 2623 2623 1029 027447 0541 0541 1030 027450 7777 7777 1031 027451 2125 PLUS, 2125 1032 027452 2303 2303 1033 027453 4377 4377 1034 027454 1021 COMMA, 1021 1035 027455 2212 2212 1036 027456 1121 1121 1037 027457 7777 7777 1038 027460 0343 MINUS, 0343 1039 027461 7777 7777 1040 027462 2122 PERIOD, 2122 1041 027463 1211 1211 1042 027464 2177 2177 1043 027465 0046 SLASH, 0046 1044 027466 7777 7777 1045 027467 4130 NMBR0, 4130 1046 027470 1001 1001 1047 027471 0516 0516 1048 027472 3645 3645 1049 027473 4177 4177 1050 027474 0040 NMBR1, 0040 1051 027475 2026 2026 1052 027476 1577 1577 1053 027477 0516 NMBR2, 0516 1054 027500 3645 3645 1055 027501 4401 4401 1056 027502 0040 0040 1057 027503 7777 7777 1058 027504 0110 NMBR3, 0110 1059 027505 3041 3041 1060 027506 4233 4233 1061 027507 1333 1333 1062 027510 4445 4445 1063 027511 3616 3616 1064 027512 0577 0577 1065 027513 3036 NMBR4, 3036 1066 027514 0242 0242 1067 027515 7777 7777 1068 027516 0110 NMBR5, 0110 1069 027517 3041 3041 1070 027520 4233 4233 1071 027521 0306 0306 1072 027522 4677 4677 1073 027523 2602 NMBR6, 2602 1074 027524 0110 0110 1075 027525 3041 3041 1076 027526 4233 4233 1077 027527 2377 2377 1078 027530 2046 NMBR7, 2046 1079 027531 0677 0677 1080 027532 1333 NMBR8, 1333 1081 027533 4241 4241 1082 027534 3010 3010 1083 027535 0102 0102 1084 027536 1304 1304 1085 027537 0516 0516 1086 027540 3645 3645 1087 027541 4433 4433 1088 027542 7777 7777 1089 027543 2044 NMBR9, 2044 1090 027544 4536 4536 1091 027545 1605 1605 1092 027546 0413 0413 1093 027547 3377 3377 1094 027550 1121 COLON, 1121 1095 027551 2212 2212 1096 027552 1176 1176 1097 027553 1424 1424 1098 027554 2515 2515 1099 027555 1477 1477 1100 027556 1021 SCOLON, 1021 1101 027557 2212 2212 1102 027560 1121 1121 1103 027561 7624 7624 1104 027562 2515 2515 1105 027563 1424 1424 1106 027564 7777 7777 1107 027565 3513 LSTHAN, 3513 1108 027566 3177 3177 1109 027567 4404 EQUAL, 4404 1110 027570 7602 7602 1111 027571 4277 4277 1112 027572 1133 GTTHAN, 1133 1113 027573 1577 1577 1114 027574 1426 QUESTN, 1426 1115 027575 3645 3645 1116 027576 4433 4433 1117 027577 3077 3077 /END OF CHARACTER TABLE 1118 $ AMPER 7427 unreferenced APOST 7434 unreferenced ASTER 7444 unreferenced ATLIST 1567 AUTO 0016 AXIS 6325 BACK 6757 BAR 6772 unreferenced BSLASH 7355 unreferenced CDI 6203 CHAR 0066 CIRCLE 7011 unreferenced COLON 7550 unreferenced COMGO 1160 COMLST 0770 COMMA 7454 unreferenced CONT 1142 CR 6515 CROSS 7157 unreferenced DIAG 6323 DIAMND 7111 unreferenced DOLLAR 7407 unreferenced DOT 6763 DRAW 6410 DREI 6660 DRXN 6733 DX 6216 DXGTDY 6250 unreferenced DXY 6340 DY 6217 DYGTDX 6257 EINS 6633 EQUAL 7567 unreferenced ERROR2 4566 EVAL 1613 EXCLPT 7371 unreferenced EXIT 6333 unreferenced FINAL 3112 FIVE 6466 FIXIT 4453 FOUR 6464 GETC 4545 GTTHAN 7572 unreferenced HALB 6630 HALF 6437 ILIST 2414 INITL 6373 IX 6555 IY 6556 K77 6711 L 6602 LABEL 3061 LAST 7173 unreferenced LBRAKT 7352 unreferenced LDIR 6224 LF 6520 LFAROW 7365 unreferenced LN 6566 LOOP 6317 LPAREN 7436 unreferenced LSTHAN 7565 unreferenced LTAD 6562 LTRA 7200 LTRB 7205 unreferenced LTRC 7213 unreferenced LTRD 7220 unreferenced LTRE 7224 unreferenced LTRF 7230 unreferenced LTRG 7234 unreferenced LTRH 7242 unreferenced LTRI 7246 unreferenced LTRJ 7252 unreferenced LTRK 7256 unreferenced LTRL 7262 unreferenced LTRM 7264 unreferenced LTRN 7267 unreferenced LTRO 7272 unreferenced LTRP 7277 unreferenced LTRQ 7303 unreferenced LTRR 7311 unreferenced LTRS 7316 unreferenced LTRT 7325 unreferenced LTRU 7330 unreferenced LTRV 7334 unreferenced LTRW 7336 unreferenced LTRX 7341 unreferenced LTRY 7344 unreferenced LTRZ 7347 unreferenced LX 6240 LY 6243 M 6603 M7 6712 MARK 6604 unreferenced MCOM 0072 MCR 0116 MDIR 6707 MINUS 7460 unreferenced MKAD 6617 MOVE 6543 MULT 6531 N3 6511 N5 6512 N7 6513 N77 6514 NMBR0 7467 unreferenced NMBR1 7474 unreferenced NMBR2 7477 unreferenced NMBR3 7504 unreferenced NMBR4 7513 unreferenced NMBR5 7516 unreferenced NMBR6 7523 unreferenced NMBR7 7530 unreferenced NMBR8 7532 unreferenced NMBR9 7543 unreferenced NULL 6620 NUMSGN 7401 unreferenced ONE 6441 OUTDEV 0063 PATCH 3001 unreferenced PDIR 6223 PEN 6713 PERCNT 7417 unreferenced PERIOD 7462 unreferenced PL07 6222 PL0T 6226 PLCF 6502 PLD0 6200 PLD1 6201 unreferenced PLD2 6202 unreferenced PLD3 6203 unreferenced PLD4 6204 unreferenced PLD5 6205 unreferenced PLD6 6206 unreferenced PLD7 6207 unreferenced PLD8 6210 PLD9 6215 PLDD 6514 PLDR 6221 PLDU 6512 PLOP 6214 PLOT 4774 PLPD 6524 unreferenced PLPL 6521 PLPO 6220 PLPR 6511 PLPU 6504 PLSF 6501 PLT 3114 PLTR 6710 PLUD 6522 PLUS 7451 unreferenced PNOP 6726 POUT 3052 PUSHJ 4540 QUESTN 7574 unreferenced QUOTE 7376 unreferenced RBRAKT 7357 unreferenced RETURN 3100 ROTATE 6362 RPAREN 7441 unreferenced RX 6557 RY 6560 SCIRCL 7021 unreferenced SCOLON 7556 unreferenced SDIAMN 7117 unreferenced SETUP 6306 SEVEN 6507 SIX 6500 SIZE 6542 SLASH 7465 unreferenced SORTJ 4547 SPACE 7370 unreferenced SQUARE 7074 unreferenced SSQUAR 7101 unreferenced STAR 7133 unreferenced STRCH 6276 unreferenced STRIAN 7051 unreferenced SX 6564 SY 6565 TABL 6616 TASK4 1232 TBAD 6567 TDIR 6225 TDUMP 3052 THREE 6455 unreferenced TICK 6775 unreferenced TLIST 1400 TRAP 3070 TRIANG 7035 unreferenced TWO 6452 UPAROW 7362 unreferenced VIER 6677 X 6600 XDYS 1142 XLABEL 3111 XMARK 7005 unreferenced XPLT 6575 Y 6601 ZERO 6432 ZWEI 6644