File: XYPLOT.RA of Tape: Various/Decus/decus-4
(Source file text)
/XYPLOT - FOR PLOTTING TO DISK / /MODIFICATION OF DEC'S <XYPLOT> TO USE A /DISK FILE AS AN INTERMEDIATE OUTPUT DEVICE FOR /PLOTS. PLOTS CAN THEN BE PLOTTED FROM DISK IN /BACKGROUND MODE WHILE OTHER FORTRAN PROGRAMS /ARE RUNNING. FOR INSTRUCTIONS, SEE WRITE-UP. / / BY R. W. PHELPS / DEPT. RAD. BIOL. & BIOPHYSICS / UNIVERSITY OF ROCHESTER MEDICAL CENTER / ROCHESTER, NY 14642 / / IT WAS NECESSARY TO MODIFY AND REASSEMBLE THIS /WHOLE PROGRAM INCLUDING THE ROUTINE <SYMBOL> BECAUSE /DEC WROTE THESE ROUTINES WITH COMMON VARIABLES AND /SPECIAL ENTRY POINTS. / / SECT XYPLOT JA #ST #XR, ORG .+10 TEXT +XYPLOT+ #RET, SETX #XR SETB #BASE JA .+3 #BASE, ORG .+6 XX, ORG .+3 YY, ORG .+3 PENX, ORG .+3 FACT, ORG .+3 INC, ORG .+3 ORG #BASE+30 FNOP JA #RET FNOP #GOBAK, 0;0 #ARGS, ORG .+3 FACTR, ORG .+0003 INX, ORG .+0003 XXX, F 0.0 YYY, F 0.0 ZZZ, F 0.0 BIASX, F 0.0 BIASY, F 0.0 #TMP, ORG .+0011 #LIT, 0001 2000 0000 0002 3000 0000 0003 3000 0000 0004 2200 0000 F 0.0 /OFFSET JA BUFFER-0003 BUFFER, ORG .+0377 #RTN, BASE #BASE JA #GOBAK #ST, STARTD 0210 FSTA #GOBAK,0 0200 SETX #XR SETB #BASE LDX 0,1 FSTA #BASE FSTA #ARGS FLDA% #BASE,1+ FSTA XX FLDA% #BASE,1+ FSTA YY FLDA% #BASE,1+ FSTA PENX STARTF FLDA% XX FSTA XXX FADD BIASX FMUL FACTR FDIV INX FADD #LIT+0014 ATX 5 /LOAD X PARAMETER FOR OUTPUT FLDA% YY FSTA YYY FADD BIASY FMUL FACTR FDIV INX FADD #LIT+0014 ATX 6 /LOAD Y PARAMETER FOR OUTPUT FLDA% PENX FSTA ZZZ ATX 7 /LOAD PEN PARAMETER FOR OUTPUT JGE #L002 /JUMP IF PEN CONTROL IS + FADD #LIT+3 /F 3.0 JNE #L001 /PEN CONTROL NOT -3 FLDA XXX /PEN CONTROL = -3 -- RESET BIAS FADD BIASX FSTA BIASX FLDA YYY FADD BIASY FSTA BIASY LDX 3,7 /NOW TREAT AS +3 PEN CONTROL JA #L002 / #L001, FCLA /PEN CONTROL NEG. BUT NOT -3 FSTA BIASX /ASSUME FRAME CONTROL FSTA BIASY LDX -3,7 / #L002, FLDA #XR+5 /GET PACKED WORD FOR OUTPUT FSTA BUFFER-27401,2 /STORE IN NEXT BUFFER LOC XTA 7 JLT #G000 /SKIP REST OF PAGE IF FRAME END JXN #RTN,2+ /RETURN IF BUFFER NOT FULL / EXTERN #WUO #G000, TRAP3 #WUO /OPEN UNFORMATTED FILE JA #LIT+0011 /UNIT 9 LDX -0125,1 /NUMBER OF ENTRYS #G001, FLDA BUFFER-27401,1 /GET NEXT ENTRY EXTERN #RSVO TRAP3 #RSVO /OUTPUT IT JXN #G001,1+ /REPEAT 85 TIMES EXTERN #RENDO TRAP3 #RENDO /CLOSE FILE PROTC, TRAP3 #WUO /OUTPUT END OF PLOT CODE JA #LIT+11 FCLA TRAP3 #RSVO TRAP3 #RENDO FLDA #LIT+11 /THEN BACKSPACE OVER IT EXTERN #BAK TRAP3 #BAK LDX -0125,2 /RESET COUNTER JA #RTN / / ENTRY PLOTS PLOTS, STARTD 0210 FSTA #GOBAK,0 0200 SETX #XR SETB #BASE FSTA #BASE FSTA #ARGS LDX 1,1 FLDA% #BASE,1 FSTA INC STARTF LDX -0125,2 /SET UP COUNTER TO START FLDA% INC FSTA INX FLDA #LIT+0000 FSTA FACTR FCLA FSTA BIASX FSTA BIASY /INITIALIZE BIAS JA PROTC /PROTECT FROM PLOT START IF NOTHING /WRITTEN IN THE FILE / / ENTRY PLEXIT PLEXIT, STARTD 0210 FSTA #GOBAK,0 SETB #BASE SETX #XR STARTF FCLA /FORCE PLOT TERMINATION FSTA BUFFER-27401,2 JA #G000 /WRITE OUT FINAL BUFFER / / ENTRY FACTOR FACTOR, STARTD 0210 FSTA #GOBAK,0 0200 SETX #XR SETB #BASE FSTA #BASE FSTA #ARGS LDX 1,1 FLDA% #BASE,1 FSTA FACT STARTF FLDA% FACT FSTA FACTR JA #RTN ENTRY WHERE WHERE, STARTD 210 FSTA #GOBAK,0 200 SETX #XR SETB #BASE LDX 0,1 FSTA #BASE FSTA #ARGS FLDA% #BASE,1+ FSTA XX FLDA% #BASE,1+ FSTA YY FLDA% #BASE,1+ FSTA PENX STARTF FLDA XXX FSTA% XX FLDA YYY FSTA% YY FLDA ZZZ FSTA% PENX JA #RTN / / COPYRIGHT 1973 / DIGITAL EQUIPMENT CORPORATION / MAYNARD, MASSACHUSETTS 01754 / / PLOTTER ROUTINES FOR OS/8 FORTRAN 4 / / FIELD1 PDPPLT / /MODIFIED BY R. W. PHELPS / RADIATION BIOL & BIOPHYSICS / UNIV. OF ROCHESTER / / WILL USE AN INDEPENDENT PROGRAM <XYPLOT> SO THAT / PLOT FILES CAN BE WRITTEN TO DISK AND PLOTTED AS / A BACKGROUND JOB DURING OTHER FORTRAN JOBS, EITHER / REAL-TIME OR NORMAL. / / DEC DID NOT WRITE THESE ROUTINES TO BE TAKEN APART -- / PROBABLY TO MAKE THINGS HARD FOR MODIFICATION -- / BUT I HAVE TRIED TO DO SO WITHOUT COMPLETELY REWRITING / THEM. EXCUSE THE KLUDGES. ORG .+20 /SKIP INDEX REGISTERS /THESE ROUTINES GET THE PLOTTING CODES WITHIN A LETTER /PASS THEM AS X,Y PAIRS FOR PLOT ROUTINE LEFT, 0 JMS GETXYS /GET A LEFT HAND X,Y PAIR RTR RTR RTR JMS PASSXY CDF CIF JMP% LEFT P7, 7 PASSXY, 0 DCA LETCD2 /SAVE XY PAIR TAD LETCD2 CLL RTR RAR /GET IN LO 3 BITS AND P7 DCA LETCD1 /PASS X VALUE TAD LETCD2 /NOW FOR THE Y PART AND P7 DCA LETCD2 /PASS THE Y VALUE JMP% PASSXY RIGHT, 0 /GET A RIGHT HAND X,Y PAIR JMS GETXYS JMS PASSXY CDF CIF JMP% RIGHT LETCOD, 0 LETCD1, 0 LETCD2, 0 /THIS RTN GETS XY PAIRS FROM THE PACKED SEQ FOR EACH LETTER GETXYS, 0 TAD LETCOD CLL TAD LOCNPT /START OF LETTER CODE DCA LETCD2 /UPDATE PTR TO LETTER RAL /IF LINK SET,CROSSED FIELDS /SO UPDATE FIELD POINTER TAD LOCNFL /FIELD PASSED FROM FINDIT RTN CLL RTL RAL TAD CDFINS DCA NFLD NFLD, 0 /SET FIELD TAD% LETCD2 /GET PLOTTING CODES CDF 10 JMP% GETXYS CDFINS, 6201 LOCNFL, 0 /FIELD LOCNPT, 0 ORG LEFT+200-20 NXTLCN, PLETPS, ADDR LOCNPT /POINTS TO START OF CODE FOR PASSED LETTER COUNT, /COUNT OF STEPS INTO CHAR PLOTTING CODE TABLE PLCNM1, ADDR LOCNFL /USED TO PASS FIELD TXTADR, 0 0 0 /ADDRESS OF PACKED 6 BIT LETTERS TO PRINT LETTER, 0 PSYMB, ADDR SYMTBL PP7, 7 /THESE ROUTINES DETERMINE THE START OF PLOTTING CODES FOR A CHAR /PASSED AS A HOLLERITH (6 BIT) FROM SYMBOL RTN. /FIND LOCN OF START OF PLOT VECTORS /FOR LEFT HALF OF 2 6BIT CHARACTERS FINDLF, 0 TAD TXTADR+1 /DO FIELD STUFF AND PP7 CLL RTL RAL TAD CDF DCA DOCDF DOCDF, NOP TAD% TXTADR+2 /GET 2 6-BIT VALUES CDF 10 DCA LETTER CLL TAD LETTER /MOVE LEFT CHAR RTR RTR RTR AND P77 /INTO RIGHTMOST 6 BITS JMS FINDIT ISZ TXTADR+2 /PREPARE FOR NEXT CHAR TO LEFT JMP FLDOK /IF SKIPS,THEN AT FIELD BOUNDARY ISZ TXTADR+1 /SO UPDATE FIELD ALSO FLDOK, CDF CIF JMP% FINDLF FINDIT, 0 /GET LOCN OF LETTER IN SYMBOL TABLE SPA SNA /CHECK FOR 0 TAD P40 /WHICH DEFAULTS TO SPACE CIA CLL /MAKE A COUNTER DCA TXTADR DCA COUNT /ZERO TOTAL STEP COUNTER TAD PTRTBL+1 DCA NXTLCN /POINTS TO LOCN IN POINTER TABLE /THIS TBL HAS STEPS FOR EACH LETTER, SO COUNT TOTAL STEPS TO /DESIRED LETTER TAD PTRTBL CLL RTL RAL TAD CDF DCA SCANTB SCANTB, NOP TAD% NXTLCN /GET NEXT STEP COUNT CDF 10 TAD COUNT /AND ADD IT TO TOTAL STEP COUNT DCA COUNT ISZ NXTLCN /BUMP POINTER SKP /SKIP IF DIDN'T CROSS BOUNDARIES TAD P10 /IT DID.UPDATE FIELD WORD TAD SCANTB DCA SCANTB ISZ TXTADR JMP SCANTB /NOT THERE YET CLL TAD COUNT /ADD COUNT TO TAD PSYMB+1 /START OF CODE TABLE DCA% PLETPS+1 /NOW ITS CORRECT PTR RAL /IF LINK SET,CROSSED FLD BOUNDS TAD PSYMB /GET FIELD OF TABLE DCA% PLCNM1+1 /PASS IT JMP% FINDIT /GOT THE LETTER P40, 40 P77, 77 PTRTBL, ADDR SYMCNT CDF, 6201 P10, 10 FINDRT, 0 TAD LETTER /LEFT FROM LAST LEFT LETTER AND P77 JMS FINDIT CDF CIF JMP% FINDRT /ROUTINE TO HANDLE NUMBERS FROM FORTRAN SUBR NUMBER /NOT CALLED BY USER DIRECTLY PASNUM, 0 TAD TXTADR IAC SNA JMP USZRO /IF EQ -1, USE 0 TAD T2 SPA /L.T. -3 BAD JMP USZRO /SO USE 0 TAD M15 SPA CLA /G.T. 9 BAD TOO JMP USEIT /IT'S -3,-2,0-9 USZRO, CLA INDEX, TAD P60 /INDEX INTO TABLE JMS FINDIT CDF CIF JMP% PASNUM USEIT, TAD TXTADR JMP INDEX /PLOT AN INTEGER EQUIV OR CENTERED (100-117 DEC = 144-165 OCT) PASINT, 0 TAD TXTADR SPA SNA /L.T. 0 NO GOOD JMP USSPAC TAD M166 /G.T. 117 DEC. BAD SMA JMP USSPAC TAD A22 SMA JMP OKVAL /ITS A CENTERED 100-121 (144-165) TAD P44 SMA CLA JMP USSPAC /64-99 DEC (100-143 OCT) ILLEGAL TAD TXTADR ACHAR, JMS FINDIT CDF CIF JMP% PASINT USSPAC, CLA TAD P40 /DEFAULT TO SPACE JMP ACHAR OKVAL, TAD P100 /PASS CENTEREDS AS 100-121 JMP ACHAR P100, 100 A22, 22 P44, 44 M166, -166 P60, 60 M15, -15 T2, 2 #PLSTR, JA . /SAVE 2 WORDS FOR RETURN JA #XPLOT TEXT +XYPLOT+ PLOTXR, SETX XRPLOT SETB BPPLOT BPPLOT, FNOP 0 0 XRPLOT, 0 /MULTI PURPOSE XRS XR1, 0 XR2, 0 TERM2, 0 XR4, 0 XR5, 0 YPT, F 0. /VALUE ACTUALLY PLOTTED XPT, F 0. TERM1, F 0. ARG1, F 0. YDIFF, F 0. /PEN VALUE ORG 10*3+BPPLOT FNOP JA PLOTXR 0 PLTRTN, JA . PEN, F 2.0 P1, F 1. PF2, F 2. P3, F 3. P4, F 4. PF7, F 7. XCHRPT, F 0. /X,Y VALUES FROM PDP TABLES YCHRPT, F 0. NUMENT, F 0. /INDICATES ENTRY FROM NUMBER SUBRTN COSANG, F 0. SINANG, F 0. DEGRAD, F 0.017453293 /RADIANS TO DEGRRES F100, F 100. CENTSY, F 0. /CENTERED SYMBOL INDICATOR NUMSYM, F 0. /NO. OF CHARS TO PLOT ANGADJ, F 0. X0, F 0.0 Y0, F 0.0 BASE 0 #XPLOT, STARTD FLDA 10*3 /SAVE CALLER'S NEXT LOCN FSTA PLTRTN FLDA 0 SETX XRPLOT /GET POINTER TO START OF CALLER'S ARG LIST SETB BPPLOT BASE BPPLOT LDX 1,1 FSTA ARG1 JA #PLSTR SECT SYMBOL EXTERN SIN EXTERN COS JSA #PLSTR SYM1, FLDA% ARG1,1 FSTA XPT /X POINT FLDA% ARG1,1+ FSTA YPT /Y VALUE FLDA% ARG1,1+ FSTA YDIFF /HEIGHT FLDA% ARG1,1+ FSTA TERM1 /TEXT FLDA% ARG1,1+ FSTA TERM2 /ANGLE FLDA% ARG1,1+ FSTA ARG1 /NUMBER CHARS. STARTF FLDA% TERM2 FMUL DEGRAD /CONVERT TO RADIANS FSTA XCHRPT /THEN DONT NEED SIND FLDA% XPT FSTA X0 /VALUE OF X FLDA% YPT FSTA Y0 FCLA FSTA CENTSY FLDA TERM1 /GET TEXT ADDRESS FSTA TXTADR /PUT IT DOWN IN PDP PART FLDA% YDIFF /ASSUME ITS A REGULAR JGE NOTNEG /NEGATIVE SIZE IS NOT NICE FNEG NOTNEG, FDIV PF7 /ADJUST LATER IF A CENT FSTA ANGADJ FLDA% ARG1 /SHOWS NUM. CHARS + PEN STATUS FSTA NUMSYM JGE REGSYM /GT OR =0 IS REG SYM FLDA% TERM1 /CHECK FOR REG CHAR PASSED FSUB F100 /AS AN INTEGER EQUIV. JLT INTEQ /ITS A INTEGER EQUIV FLDA% YDIFF /CENTERED SYMBOL JGE NOTNG1 FNEG NOTNG1, FDIV P4 FSTA ANGADJ FLDA NUMSYM /-1=PEN UP;-2=PEN DOWN (CNTRD ONLY) FADD P1 JGE UPPEN /MOVE WITH PEN UP FSTA CENTSY /NEG MEANS DOWN FROM THE START PTITDN, FLDA PF2 CPEN, FSTA YCHRPT /=-2 FOR DOWN(CENT. + INTEQ ONLY) / -3 FOR UP FOR ALL SYMBOLS + INTEQ JSR XYPLOT /PLOT ORIGIN JA .+10 JA X0 JA Y0 JA YCHRPT FLDA CENTSY JLE PENOK JSA PNDOWN /PUT PEN DOWN NOW(CENT ONLY) PENOK, JSR SIN JA .+4 JA XCHRPT FMUL ANGADJ FSTA SINANG /SAVE SIN*HGT. USE FOR ALL VALUES JSR COS JA .+4 JA XCHRPT FMUL ANGADJ FSTA COSANG /COS(ANGLE)*HGT (IN INCREMENTS NOW) LDX 0,4 /ZERO STEP COUNT FLDA NUMENT JGT NUM2 /JUMP IF FROM NUMBER JA FSTLFT UPPEN, FLDA P3 FSTA CENTSY /PUT PEN DOWN AFTER INITIAL MOVE JA CPEN /MOVE WITH PEN UP PENSET, JSA PNDOWN ONEXY, JA . SETX LETCOD XTA 2 /GET Y FSTA YCHRPT XTA 1 /GET X FSTA XCHRPT /GET 1ST MOVE SETX XRPLOT FSUB PF7 /7,0=PEN UP 7,7=END JEQ PENUPM FLDA CENTSY JEQ CALALL /CENTEREDS REQUIRE MODIFIED ORIGIN FLDA PF2 FNEG FADDM XCHRPT FADDM YCHRPT CALALL, JSA CALANG JXN PENSET,5 /PUT PEN BACK DOWN IF NEC JA ONEXY INTEQ, FLDA NUMSYM /CHECK ON PEN FADD P1 JLT PTITDN REGSYM, FLDA P3 JA CPEN PENUPM, JSA PENUP FLDA YCHRPT /CHECK FOR 7,7 END FSUB PF7 JEQ NXTCHR /JUMP IF END OF CHAR JA ONEXY /ON TO NEXT PAIR PENUP, JA . FLDA P3 FSTA PEN JA PENUP PNDOWN, JA . FLDA PF2 FSTA PEN JA PNDOWN CALANG, JA . FLDA YCHRPT FMUL SINANG FNEG FSTA TERM1 /=-SINA*Y FLDA XCHRPT FMUL COSANG FADD TERM1 FADD X0 FSTA XPT /X*COSA+OLDX-SINA*Y /REQUIRES AN OLDX + OLDY TERM,BUT I DO THIS ALL REL TO A /LOGICAL 0,0 FOR EACH CHAR, SO I LEFT THEM OUT. FLDA YCHRPT FMUL COSANG FSTA TERM1 /COSA*Y FLDA XCHRPT FMUL SINANG FADD TERM1 FADD Y0 FSTA YPT /NEWX*SINA+OLDY+COSA*Y JSR XYPLOT /DO THE PLOTTING WITH XYPLOT JA .+10 JA XPT JA YPT JA PEN JA CALANG LEFTJS, XTA 4 /NUM OF MOVES SETX LETCOD ATX 0 /PASS NUMBER OF STEPS INTO LETTER SETX XRPLOT TRAP4 LEFT /RETURN WITH A X,Y PAIR JSA ONEXY XTA 4 SETX LETCOD ATX 0 /STEP COUNT SETX XRPLOT JNE NOTFST /CHANGE IF BEFORE 1ST MOVE OF CHAR JSA PNDOWN /PUT PEN DOWN NOW NOTFST, TRAP4 RIGHT /GET NEXT XY PAIR JSA ONEXY ADDX 1,4 /UPDATE COUNT JA LEFTJS /77 AT END OF CHAR USED TO DET END CENTEX, JSA PENUP JA CENTOO NXTCHR, FLDA CENTSY JNE CENTEX /LEAVE PEN AT CENTER FOR CENTS ONLY FSTA YCHRPT FLDA PF7 FSTA XCHRPT /MOVE PEN TO 7,0 FOR REG CHARS JSA CALANG /PLOT IT FLDA XPT FSTA X0 FLDA YPT FSTA Y0 CENTOO, LDX 0,4 /ZERO STEP NUM WITHIN CHAR FLDA P1 FNEG FADD NUMSYM /UPDATE COUNTER JLE SYMDON /NO MORE FSTA NUMSYM /MORE. SAVE COUNT FLDA NUMENT JGT NUM3 /EXIT FOR NUMB SUBR FCLA JXN RTCHAR,3 /1=CHAR IS RIGHT 6 BITS FSTLFT, LDX 1,3 /POINT TO RIGHT 6 WHEN TIME FOR NEXT CHAR FLDA NUMSYM JLT NUM5 /JUMP IF CENTERED SYM OR INTEQ /CENTEREDS + INTEG EQUIV PASSING A 3 WORD VALUE IN NUM5 /REG SYM USES PDP RTN TO GET 1 WORD OF LIST FCLA TRAP4 FINDLF JA LEFTJS /GO PLOT THE ACTUAL CHAR RTCHAR, LDX 0,3 /POINT TO LEFT 6 BITS FOR NEXT TIME TRAP4 FINDRT JA LEFTJS SYMDON, FCLA FSTA NUMENT JA PLTRTN ENTRY SYMB SYMB, JSA #PLSTR /SPEC ENTRY FOR NUMBER SUB STARTF FLDA P1 FSTA NUMENT STARTD JA SYM1 NUM2, SETX NUMENT /FOR NUMBER SUBRTN ONLY /HERE ONLY FOR 1ST NUMBER OF STRING LDX -1,2 NUM3, JSA GETARG /FOR 2ND + LATER NUMBERS TRAP4 PASNUM JA LEFTJS NUM5, SETX NUMENT /FOR INTEQ + CENTEREDS LDX -1,2 JSA GETARG TRAP4 PASINT JA LEFTJS GETARG, JA . SETX NUMENT /USED FOR MORE THAN 1 CHAR STARTD FLDA TXTADR+1 /CENTERED SYMBOLS AND NUM SUBRTN /PASS VALUES AS 3 WORDS FSTA ARG1 STARTF FLDA% ARG1,2+ /PASS A NUMBER SETX TXTADR FADD PT5 ATX 0 SETX XRPLOT JA GETARG PT5, F 0.5 SECT SYMBTB SYMTBL, A, 0005 /1 1636 4540 7043 0377 B, 0006 3645 4433 0333 4241 3000 7777 C, 4130 1001 0516 3645 7777 D, 0006 3645 4130 0077 E, 4000 0646 7033 0377 F, 0006 4670 0333 7777 G, 4616 0501 1030 4143 2377 H, 0006 /10 OCTAL 7003 4370 4640 7777 I, 0646 7026 2070 0040 7777 J, 0100 /10 DEC 3036 7016 4677 K, 0006 7046 1303 1340 7777 L, 0600 4077 LM, 0006 2346 4077 LN, 0006 4046 7777 O, 0110 3041 4536 1605 0177 P, 0006 /20 OCT 4643 0377 Q, 0110 3041 4536 1605 0170 2240 7777 R, 0006 3645 4433 1303 1340 7777 S, 0110 3041 4233 1304 0516 3645 7777 T, 2026 /20 DEC 7006 4677 U, 0601 1030 4146 7777 V, 0620 4677 W, 0600 2240 4677 X, 0046 7006 4077 Y, 0624 2070 2446 7777 Z, 0646 /26 0040 7777 LBRACK, 3010 1636 7777 BSLASH, 0640 7777 RBRACK, 1030 3616 7777 UPAROW, 2026 7004 2644 7777 LARROW, 2103 2570 0343 7777 SPAC, 7777 /SPACE - 32 DEC, 40 OCT EXCLPT, 2622 7021 2077 DBLQOT, 1416 7036 3477 NUMSGN, 0242 7044 0470 1511 7031 3577 DOLSGN, 1211 3133 1315 3534 7026 2077 PRCNT, 0405 1514 0470 4501 7031 3242 4131 7777 PI, 1014 7004 4470 3430 7777 SNGQOT, 2624 7777 LPAR, 3020 /40 1115 2636 7777 RPAR, 1626 3531 2010 7777 STAR, 0145 /42 7025 2170 4105 7003 4377 PLUS, 2125 7003 4377 COM, 2111 1222 2110 7777 DASH, 0343 7777 PER, 2021 1110 2077 SLASH, 0046 7777 ZER, 0110 2031 3526 1605 0170 3600 7777 ONE, 1436 3070 1040 7777 TWO, 0516 3645 4401 0040 7777 THR, 0516 3645 4433 1333 4241 3010 0177 FOUR, 3036 0343 7777 FIV, 0110 3041 4233 1304 0646 7777 SIX, 0213 3342 4130 1001 0516 3645 7777 SEV, 0506 4645 2120 7777 EIG, 1333 4241 3010 0102 1304 0516 3645 4433 7777 NIN, 0110 3041 4536 1605 0413 3344 7777 COLON, 1415 2524 1470 1222 2111 1277 SEMI, 1415 2524 1470 1222 2011 1277 LT, 4503 /LESS THAN 60=74 4177 EQ, 0444 /EQUAL 61 7002 4277 GT, 0543 /GRTR THAN 62=76 0177 QM, 0516 /Q MARK 63=77 3645 4433 3270 3130 7777 /START OF CENTEREDS-EXPECT TO START AND END IN MIDDLE /PLOTTED WITH 2,2 AS MIDDLE. ALL MUSR END AT 2,2. CBOX, 2224 /BOX 0 0400 4044 2422 7777 COCT, 2224 /OCTAGON 1 1403 0110 3041 4334 2422 7777 CTRI, 2223 /TRIANGLE 2 0141 2322 7777 CPL, 2420 /+ 3 7002 4222 7777 CX, 0440 /X 4 7044 0022 7777 CDIM, 2224 /DIAMOND 5 0220 4224 2277 CUP, 2220 /UP ARROW 6 7002 2442 0222 7777 CHAIR, 2244 /CHAIR 7 0440 7000 2277 ZORRO, 3270 /Z 8 4000 4404 7012 2277 YCENT, 2244 /Y 9 7020 2204 2277 CSHIP, 2233 /SHIP 10 1311 3133 7040 3170 1100 7004 1370 4422 7777 CSTAR, 0242 /STAR 11 7044 0070 2024 7004 4022 7777 TWOTRI, 2244 /2 TRIANGLES 12 0440 0022 7777 CVERT, 2420 /VERTICAL LINE 13 2277 HDSH, 0242 /HORIZ DASH 14 2277 ABSEQ, 2242 /ABSOLUTELY EQUAL TO 15 7044 0470 4000 7002 2277 NOTEQ, 2200 /NOT EQUAL 16 7001 4170 4303 7044 2277 PLSMNS, 2224 /+ OR - 17 7013 3370 3111 7022 7777 /THIS TABLE COUNTS THE NUMBER OF STEPS (12 BIT) BETWEEN /EACH CHARACTER. USED TO DETERMINE LOCATION AT WHICH TO /START PICKING UP PLOTTING CODES. SYMCNT, 0 /TO A B-A C-B D-C E-D F-E G-F H-G I-H J-I K-J L-K LM-L LN-LM O-LN P-O Q-P R-Q S-R T-S U-T V-U W-V X-W Y-X Z-Y LBRACK-Z BSLASH-LBRACK RBRACK-BSLASH UPAROW-RBRACK LARROW-UPAROW SPAC-LARROW EXCLPT-SPAC DBLQOT-EXCLPT NUMSGN-DBLQOT DOLSGN-NUMSGN PRCNT-DOLSGN PI-PRCNT SNGQOT-PI LPAR-SNGQOT RPAR-LPAR STAR-RPAR PLUS-STAR COM-PLUS DASH-COM PER-DASH SLASH-PER ZER-SLASH ONE-ZER TWO-ONE THR-TWO FOUR-THR FIV-FOUR SIX-FIV SEV-SIX EIG-SEV NIN-EIG COLON-NIN SEMI-COLON LT-SEMI EQ-LT GT-EQ QM-GT CBOX-QM COCT-CBOX CTRI-COCT CPL-CTRI CX-CPL CDIM-CX CUP-CDIM CHAIR-CUP ZORRO-CHAIR YCENT-ZORRO CSHIP-YCENT CSTAR-CSHIP TWOTRI-CSTAR CVERT-TWOTRI HDSH-CVERT ABSEQ-HDSH NOTEQ-ABSEQ PLSMNS-NOTEQ