File: XYPLOT.LS of Disk: V50/Source/Source-Listing-RALF-1
(Source file text)
RALF V50A 8-APR-92 PAGE 1 /PLOTTER ROUTINES FOR OS/8 FORTRAN 4 / / / VERSION 50A 28-MAY-80 WVDM / / FIELD1 PDPPLT EXTERN ONQI /ALL THESE ROUTINES USE XRS EXTERN #DISMS /TO GET ARGS FROM FPP CODE BSW=7002 /OLD RALFY /ASSUMES USER ADDED 6502(CLEAR FLAG) /TO FRTS CLEAR QUEUE 00000 0000 INTST, 0 /INIT PTRS + ADD JOB TO INTERRUPT QUEUE 00001 4266 JMS MULTI8 /TEST IF UNDER MULTI8 00002 3651 DCA% PBFCNT+1 /COUNTER FOR LOCN OF NEXT CHAR 00003 1261 TAD PUBFMX+1 /TO PLOT 00004 7041 CIA 00005 1257 TAD PUBFMN+1 /MAKE A COUNTER OF LENGTH 00006 3655 DCA% PMBFLG+1 /RESET BUFFER POINTERS 00007 1257 TAD PUBFMN+1 00010 3647 DCA% OCHAR+1 00011 1257 TAD PUBFMN+1 00012 3653 DCA% ICHAR+1 00013 1263 TAD DISMS+1 00014 3665 DCA% PDISMS+1 /FOR HANG 00015 6507 6507 /SET INTERRUPT ENABLE FOR 8/ES ONLY 00016 6211 CDF 10 00017 4644 JMS% QPLDBL+1 /DO AN INITAL PEN UP 00020 4627 M8EX, JMS% VONQI+1 /ADD TO INTERRUPT QUEUE 00021 6501 6501 00022 0000 ADDR INTPLT 00023 0736 00024 6203 CIF CDF 00025 5600 JMP% INTST 00026 0000 VONQI, ADDR ONQI 00027 0000 /THIS ROUTINE CALLED ONCE FOR EACH CALL 00030 0000 SETUP, 0 /TO XYPLOT AND DOES INITIAL PEN UP OR DOWN 00031 1246 TAD SETXR /GET PEN STATE 00032 0245 AND A3 00033 7110 CLL RAR /LOOK AT 3 BITS 00034 7440 SZA /SKIP IF 0 00035 7620 SNL CLA 00036 7001 IAC /3=UP,0-2=DOWN 00037 7100 CLL 00040 4644 JMS% QPLDBL+1 00041 6203 CDF CIF 00042 5630 JMP% SETUP / 00043 0000 QPLDBL, ADDR PLDBL 00044 0614 00045 0003 A3, 3 SETXR, 00046 0000 OCHAR, ADDR POCHAR+1 00047 0664 00050 0000 PBFCNT, ADDR BUFCNT RALF V50A 8-APR-92 PAGE 1-1 00051 0671 00052 0000 ICHAR, ADDR PICHAR+1 00053 0670 00054 0000 PMBFLG, ADDR MBUFLG 00055 0673 00056 0000 PUBFMN, ADDR USBFMN 00057 0103 00060 0000 PUBFMX, ADDR USBFMX 00061 0173 00062 0000 DISMS, ADDR #DISMS 00063 0000 00064 0000 PDISMS, ADDR DISPTR 00065 0630 / 00066 0000 MULTI8, 0 /CHECK ON MULTI8 00067 6254 6254 /SKIP ON MULTI8 00070 5275 JMP M8RET 00071 1277 TAD M8SKP /KILL INTERRUPT PART 00072 3701 DCA% XLIMOK+1 00073 1302 TAD XM8JMP /KILL ONQUEU 00074 3220 DCA M8EX 00075 7240 M8RET, CLA CMA /WAS IN INTST+1 00076 5666 JMP% MULTI8 / 00077 7410 M8SKP, SKP 00100 0000 XLIMOK, ADDR LIMOK 00101 0645 00102 5224 XM8JMP, JMP VONQI-2 00103 0000 USBFMN, ZBLOCK 70 /PLOTTING BUFFER 00173 0000 USBFMX, 0 RALF V50A 8-APR-92 PAGE 2 ORG INTST+200 /THESE ROUTINES GET THE PLOTTING CODES WITHIN A LETTER /PASS THEM AS X,Y PAIRS FOR PLOT ROUTINE 00200 0000 LEFT, 0 00201 4234 JMS GETXYS /GET A LEFT HAND X,Y PAIR 00202 7012 RTR 00203 7012 RTR 00204 7012 RTR 00205 4210 JMS PASSXY 00206 6203 CDF CIF 00207 5600 JMP% LEFT / 00210 0000 PASSXY, 0 00211 3233 DCA LETCD2 /SAVE XY PAIR 00212 1233 TAD LETCD2 00213 7112 CLL RTR 00214 7010 RAR /GET IN LO 3 BITS 00215 0230 AND P7 00216 3232 DCA LETCD1 /PASS X VALUE 00217 1233 TAD LETCD2 /NOW FOR THE Y PART 00220 0230 AND P7 00221 3233 DCA LETCD2 /PASS THE Y VALUE 00222 5610 JMP% PASSXY / 00223 0000 RIGHT, 0 /GET A RIGHT HAND X,Y PAIR 00224 4234 JMS GETXYS 00225 4210 JMS PASSXY 00226 6203 CDF CIF 00227 5623 JMP% RIGHT 00230 0007 P7, 7 00231 0000 LETCOD, 0 00232 0000 LETCD1, 0 00233 0000 LETCD2, 0 RALF V50A 8-APR-92 PAGE 3 /THIS RTN GETS XY PAIRS FROM THE PACKED SEQ FOR EACH LETTER 00234 0000 GETXYS, 0 00235 1231 TAD LETCOD 00236 7100 CLL 00237 1255 TAD LOCNPT /START OF LETTER CODE 00240 3233 DCA LETCD2 /UPDATE PTR TO LETTER 00241 7004 RAL /IF LINK SET,CROSSED FIELDS /SO UPDATE FIELD POINTER 00242 1254 TAD LOCNFL /FIELD PASSED FROM FINDIT RTN 00243 7106 CLL RTL 00244 7004 RAL 00245 1253 TAD CDFINS 00246 3247 DCA NFLD 00247 0000 NFLD, 0 /SET FIELD 00250 1633 TAD% LETCD2 /GET PLOTTING CODES 00251 6211 CDF 10 00252 5634 JMP% GETXYS / 00253 6201 CDFINS, 6201 00254 0000 LOCNFL, 0 /FIELD 00255 0000 LOCNPT, 0 RALF V50A 8-APR-92 PAGE 4 /HERES START OF TABLE FOR PDP-8ES / 00256 6503 OCT8BL, 6503 /PEN UP 00257 6505 6505 /PEN DOWN 00260 0040 40 /PEN R /GEOM. OCTANT 1=CODED OCTANT 8 00261 0044 44 /2=7,3=3,4=4,5=2,6=1,7=5,8=6 00262 0004 4 /DRUM UP 00263 0044 44 00264 0020 20 /PEN L 00265 0024 24 00266 0004 4 /DRUM UP 00267 0024 24 00270 0040 40 /PEN R 00271 0050 50 00272 0010 10 /DRUM D 00273 0050 50 00274 0020 20 /PEN L 00275 0030 30 00276 0010 10 /DRUM D 00277 0030 30 RALF V50A 8-APR-92 PAGE 5 /FIGURE OUT IF A MAJOR MOVE OR MAJ+MINOR 00300 0000 FIGURE, 0 00301 7100 CLL 00302 1326 TAD RATIO2 00303 1330 TAD HOLD2 00304 3330 DCA HOLD2 /ADD LO WORDS 00305 7004 RAL /CARRY LINK 00306 1325 TAD RATIO1 00307 1327 TAD HOLD1 /ADD HI WORDS 00310 3327 DCA HOLD1 00311 7100 CLL 00312 1327 TAD HOLD1 00313 7004 RAL /G.T. 1? 00314 7420 SNL 00315 5322 JMP MAJONL /NO-MAJOR MOVE ONLY 00316 7110 CLL RAR /PUT IT BACK-1 00317 3327 DCA HOLD1 00320 7001 IAC 00321 5700 JMP% FIGURE /RETURN WITH AC=1 00322 7200 MAJONL, CLA 00323 5700 JMP% FIGURE /RETURN WITH 0 AC / 00324 0000 RATIO, 0 /RATIO CALCULATED IN REALPT 00325 0000 RATIO1, 0 00326 0000 RATIO2, 0 00327 0000 HOLD1, 0 00330 0000 HOLD2, 0 00331 0000 SPCAS, 0 /INITIALIZE HOLD1+2 TO A ROUNDING FUDGE 00332 3327 DCA HOLD1 00333 1336 TAD RFUDGE 00334 3330 DCA HOLD2 00335 5731 JMP% SPCAS 00336 1000 RFUDGE, 1000 /TAKES CARE OF TRUNCATION ERRORS RALF V50A 8-APR-92 PAGE 6 ORG LEFT+200 /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 / NXTLCN, 00400 0000 PLETPS, ADDR LOCNPT /POINTS TO START OF CODE FOR PASSED LETTER 00401 0255 / COUNT, /COUNT OF STEPS INTO CHAR PLOTTING CODE TABLE 00402 0000 PLCNM1, ADDR LOCNFL /USED TO PASS FIELD 00403 0254 / 00404 0000 TXTADR, 0 00405 0000 0 00406 0000 0 /ADDRESS OF PACKED 6 BIT LETTERS TO PRINT 00407 0000 LETTER, 0 00410 0000 PSYMB, ADDR SYMTBL 00411 0000 00412 0007 PP7, 7 / 00413 0000 FINDLF, 0 00414 1205 TAD TXTADR+1 /DO FIELD STUFF 00415 0212 AND PP7 00416 7106 CLL RTL 00417 7004 RAL 00420 1304 TAD CDF 00421 3222 DCA DOCDF 00422 7000 DOCDF, NOP 00423 1606 TAD% TXTADR+2 /GET 2 6-BIT VALUES 00424 6211 CDF 10 00425 3207 DCA LETTER 00426 1207 TAD LETTER /MOVE LEFT CHAR 00427 7002 BSW 00430 0301 AND P77 /INTO RIGHTMOST 6 BITS 00431 4237 JMS FINDIT 00432 2206 ISZ TXTADR+2 /PREPARE FOR NEXT CHAR TO LEFT 00433 5235 JMP FLDOK /IF SKIPS,THEN AT FIELD BOUNDARY 00434 2205 ISZ TXTADR+1 /SO UPDATE FIELD ALSO 00435 6203 FLDOK, CDF CIF 00436 5613 JMP% FINDLF RALF V50A 8-APR-92 PAGE 7 00437 0000 FINDIT, 0 /GET LOCN OF LETTER IN SYMBOL TABLE 00440 7550 SPA SNA /CHECK FOR 0 00441 1300 TAD P40 /WHICH DEFAULTS TO SPACE 00442 7141 CIA CLL /MAKE A COUNTER 00443 3204 DCA TXTADR 00444 3202 DCA COUNT /ZERO TOTAL STEP COUNTER 00445 1303 TAD PTRTBL+1 00446 3200 DCA NXTLCN /POINTS TO LOCN IN POINTER TABLE 00447 1302 TAD PTRTBL /THIS TBL HAS STEPS FOR EACH LETTER, 00450 7106 CLL RTL /SO COUNT TOTAL STEPS TO DESIRED LETTER 00451 7004 RAL 00452 1304 TAD CDF 00453 3254 DCA SCANTB 00454 7000 SCANTB, NOP 00455 1600 TAD% NXTLCN /GET NEXT STEP COUNT 00456 6211 CDF 10 00457 1202 TAD COUNT /AND ADD IT TO TOTAL STEP COUNT 00460 3202 DCA COUNT 00461 2200 ISZ NXTLCN /BUMP POINTER 00462 7410 SKP /SKIP IF DIDN'T CROSS BOUNDARIES 00463 1305 TAD P10 /IT DID.UPDATE FIELD WORD 00464 1254 TAD SCANTB 00465 3254 DCA SCANTB 00466 2204 ISZ TXTADR 00467 5254 JMP SCANTB /NOT THERE YET 00470 7100 CLL 00471 1202 TAD COUNT /ADD COUNT TO 00472 1211 TAD PSYMB+1 /START OF CODE TABLE 00473 3601 DCA% PLETPS+1 /NOW ITS CORRECT PTR 00474 7004 RAL /IF LINK SET,CROSSED FLD BOUNDS 00475 1210 TAD PSYMB /GET FIELD OF TABLE 00476 3603 DCA% PLCNM1+1 /PASS IT 00477 5637 JMP% FINDIT /GOT THE LETTER / 00500 0040 P40, 40 00501 0077 P77, 77 00502 0000 PTRTBL, ADDR SYMCNT 00503 0552 00504 6201 CDF, 6201 00505 0010 P10, 10 RALF V50A 8-APR-92 PAGE 8 00506 0000 FINDRT, 0 00507 1207 TAD LETTER /LEFT FROM LAST LEFT LETTER 00510 0301 AND P77 00511 4237 JMS FINDIT 00512 6203 CDF CIF 00513 5706 JMP% FINDRT / 00514 0000 PASNUM, 0 /ROUTINE TO HANDLE NUMBERS FROM FORTRAN SUBR NUMBER 00515 1204 TAD TXTADR /NOT CALLED BY USER DIRECTLY 00516 7001 IAC 00517 7450 SNA 00520 5327 JMP USZRO /IF EQ -1, USE 0 00521 1372 TAD T2 00522 7510 SPA /L.T. -3 BAD 00523 5327 JMP USZRO /SO USE 0 00524 1371 TAD M15 00525 7710 SPA CLA /G.T. 9 BAD TOO 00526 5334 JMP USEIT /IT'S -3,-2,0-9 00527 7200 USZRO, CLA 00530 1370 INDEX, TAD P60 /INDEX INTO TABLE 00531 4237 JMS FINDIT 00532 6203 CDF CIF 00533 5714 JMP% PASNUM 00534 1204 USEIT, TAD TXTADR 00535 5330 JMP INDEX / 00536 0000 PASINT, 0 /PLOT AN INTEGER EQUIV OR CENTERED 00537 1204 TAD TXTADR /(100-117 DEC = 144-165 OCT) 00540 7550 SPA SNA /L.T. 0 NO GOOD 00541 5357 JMP USSPAC 00542 1367 TAD M166 /G.T. 117 DEC. BAD 00543 7500 SMA 00544 5357 JMP USSPAC 00545 1365 TAD A22 00546 7500 SMA 00547 5362 JMP OKVAL /ITS A CENTERED 100-121 (144-165) 00550 1366 TAD P44 00551 7700 SMA CLA 00552 5357 JMP USSPAC /64-99 DEC (100-143 OCT) ILLEGAL 00553 1204 TAD TXTADR 00554 4237 ACHAR, JMS FINDIT 00555 6203 CDF CIF 00556 5736 JMP% PASINT / 00557 7200 USSPAC, CLA 00560 1300 TAD P40 /DEFAULT TO SPACE 00561 5354 JMP ACHAR / 00562 1364 OKVAL, TAD P100 /PASS CENTEREDS AS 100-121 00563 5354 JMP ACHAR / 00564 0100 P100, 100 00565 0022 A22, 22 00566 0044 P44, 44 00567 7612 M166, -166 RALF V50A 8-APR-92 PAGE 8-1 00570 0060 P60, 60 00571 7763 M15, -15 00572 0002 T2, 2 RALF V50A 8-APR-92 PAGE 9 ORG NXTLCN+200 EXTERN #HANG / 00600 0000 NINPLT, 0 /NON-INTERRUPT TIME PLOT RTN 00601 4662 JMS% PSPCAS+1 /PREPARE FOR OCTANT CHECK 00602 2260 MORE, ISZ STP2 /INC LOW ORDER COUNT 00603 5210 JMP ANOTHR /1 STEP 00604 2257 ISZ STP1 /ANY HIGH ORDER ? 00605 5210 JMP ANOTHR /DO ANOTHER STEP 00606 6203 DONE, CDF CIF /ALL DONE WITH THIS VECTOR 00607 5600 JMP% NINPLT / 00610 4676 ANOTHR, JMS% PFIGUR+1 /TO FIGURE OUT IF MAJ OR DIAG 00611 1255 TAD PDPXR /RETURNS WITH 0 IF MAJ ONLY, 00612 4214 JMS PLDBL /1 IF MAJ + MINOR OCTANT 00613 5202 JMP MORE / 00614 0000 PLDBL, 0 /DO 1 STEP 00615 1272 TAD POCTBL+1 /START OF VECTOR TABLE 00616 3277 DCA PLTVCT /SAVE PTR TO PROPER PLOT VECTOR 00617 6212 CIF 10 00620 1271 TAD BUFCNT /GET NUM CHARS IN BUF -1 00621 1273 TAD MBUFLG /AND MINUS LENGTH 00622 7100 CLL 00623 7710 SPA CLA 00624 5232 JMP ISROOM /STILL ROOM IN BUFFER 00625 6002 IOF /NO ROOM YET. GO TO HANG 00626 6202 CIF 0 00627 4666 JMS% PHANG+1 00630 0000 DISPTR, 0 00631 6001 ION /HANG LEAVES INTERRUPTS OFF 00632 1677 ISROOM, TAD% PLTVCT /NOW GET THE VECTOR 00633 3670 DCA% PICHAR+1 /INTO BUFFER 00634 2270 ISZ PICHAR+1 /UPDATE LOCN 00635 1270 TAD PICHAR+1 00636 7041 CIA 00637 1300 TAD PBMX+1 /ARE WE OVERFLOWING MAX LOCN OF BUFFER? 00640 7100 CLL 00641 7700 SMA CLA /PAST END? 00642 5245 JMP LIMOK /NO 00643 1274 TAD PBMN+1 /YES-RESET TO BOTTOM 00644 3270 DCA PICHAR+1 00645 2271 LIMOK, ISZ BUFCNT /UPDATE CHAR COUNT,IF EMPTY WAS -1,SO NOW 0 00646 5614 JMP% PLDBL /WASNT EMPTY-CANT START TO PLOT 00647 5301 JMP OUTSUB /WAS EMPTY, BUMP PLOTTER RALF V50A 8-APR-92 PAGE 10 00650 0000 PENOP, 0 00651 1255 TAD PDPXR /USE AS INDEX INTO OPCODE TBL 00652 4214 JMS PLDBL 00653 6203 CDF CIF 00654 5650 JMP% PENOP / 00655 0000 PDPXR, 0 / 00656 0000 TOTSTP, 0 00657 0000 STP1, 0 00660 0000 STP2, 0 /TOTSTP,STP1,STP2 TOGETHER! / 00661 0000 PSPCAS, ADDR SPCAS 00662 0331 00663 0000 POCHAR, ADDR USBFMN 00664 0103 / INTFLG, /HANG ALWAYS FIELD 0 00665 0000 PHANG, ADDR #HANG 00666 0000 00667 0000 PICHAR, ADDR USBFMN 00670 0103 / BUFCNT, 00671 0000 POCTBL, ADDR OCT8BL 00672 0256 / MBUFLG, 00673 0000 PBMN, ADDR USBFMN 00674 0103 00675 0000 PFIGUR, ADDR FIGURE 00676 0300 / PLTVCT, 00677 0000 PBMX, ADDR USBFMX 00700 0173 RALF V50A 8-APR-92 PAGE 11 00701 7200 OUTSUB, CLA 00702 1664 TAD% POCHAR+1 /GET NEXT LINE TO PLOT 00703 3321 DCA QTEMP5 /SAVE ACTUAL VECTOR FOR A SECOND 00704 2264 ISZ POCHAR+1 00705 1264 TAD POCHAR+1 00706 7041 CIA 00707 1300 TAD PBMX+1 /CHECK THAT OUTPUT DOESNT OVERFLOW BUFFER 00710 7100 CLL 00711 7700 SMA CLA /WILL IT? 00712 5315 JMP CLRFLG /NO 00713 1274 TAD PBMN+1 /YES 00714 3264 DCA POCHAR+1 /RESET IT 00715 6502 CLRFLG, 6502 00716 1321 TAD QTEMP5 /GET VARIABLE 00717 7700 SMA CLA 00720 5332 JMP NOPEN /REAL PLOTTING 00721 7000 QTEMP5, NOP /DIRECT IOT OR AC COMMAND 00722 1265 OUTCHK, TAD INTFLG 00723 7650 SNA CLA 00724 5614 JMP% PLDBL /DONE FOR NON-INTERRUPT 00725 3265 DCA INTFLG /INT MODE. CLEAR FLAG 00726 6203 CDF CIF 0 00727 5731 JMP% XDISMS+1 / 00730 0000 XDISMS, ADDR #DISMS 00731 0000 / 00732 1321 NOPEN, TAD QTEMP5 /ITS AN 8E 00733 6506 6506 /SEND A CHAR 00734 7200 CLA 00735 5322 JMP OUTCHK /RETURN RALF V50A 8-APR-92 PAGE 12 00736 0000 INTPLT, 0 /HERE ONLY IF FLAG SET 00737 7240 CLA CMA 00740 1271 TAD BUFCNT /DECREMENT BUFFER COUNTER 00741 7510 SPA 00742 5347 JMP EMPTY 00743 3271 DCA BUFCNT 00744 2265 ISZ INTFLG /SHOULD NEVER SKIP 00745 7000 NOP 00746 5301 JMP OUTSUB 00747 7240 EMPTY, CLA CMA 00750 3271 DCA BUFCNT /INITIALIZE BUFFER CNT-1 00751 6502 6502 /CLEAR 00752 5736 JMP% INTPLT /EXIT IN FLD 1 / 00753 0000 DONECK, 0 /BE SURE BUFFER EMPTY BEFORE EXITING 00754 7200 CLA 00755 4214 JMS PLDBL /DO A FINAL PEN UP 00756 1271 WAIT, TAD BUFCNT 00757 7700 SMA CLA 00760 5356 JMP WAIT /STILL MORE TO DO 00761 6500 6500 /CLEAR INTERRUPT ENABLE FOR 8/ES 00762 6203 CIF CDF /ALL EMPTY 00763 5753 JMP% DONECK RALF V50A 8-APR-92 PAGE 13 SECT XYPLOT 00000 1030 JA STNOW 00001 0231 / 00002 1030 #PLSTR, JA . /HERES THE INITIALIZATION ROUTINE 00003 0002 00004 1030 JA #XPLOT /STANDARD CALLING SEQUENCE. 00005 0213 00006 3031 TEXT +XYPLOT+ /SHARED BY ALL SUBROUTINES 00007 2014 00010 1724 00011 1100 PLOTXR, SETX XRPLOT 00012 0020 00013 1110 SETB BPPLOT 00014 0015 00015 0040 BPPLOT, FNOP 00016 0000 0 00017 0000 0 00020 0000 XRPLOT, 0 /MULTI PURPOSE XRS 00021 0000 XR1, 0 00022 0000 XR2, 0 00023 0000 TERM2, 0 00024 0000 XR4, 0 00025 0000 XR5, 0 00026 0000 YPT, F 0. /VALUE ACTUALLY PLOTTED 00027 0000 00030 0000 00031 0000 XPT, F 0. 00032 0000 00033 0000 00034 0000 TERM1, F 0. 00035 0000 00036 0000 00037 0000 ARG1, F 0. 00040 0000 00041 0000 00042 0000 YDIFF, F 0. /PEN VALUE 00043 0000 00044 0000 ORG 10*3+BPPLOT 00045 0040 FNOP 00046 1030 JA PLOTXR 00047 0011 00050 0000 0 00051 1030 PLTRTN, JA . 00052 0051 / 00053 0000 MAJOR, F 0. /HORIZONTAL AXIS MOVE 00054 0000 00055 0000 00056 0000 MINOR, F 0. /DIAGONAL AXIS MOVE 00057 0000 00060 0000 00061 0000 XOLD, F 0. /OLD X PT 00062 0000 RALF V50A 8-APR-92 PAGE 13-1 00063 0000 00064 0000 YOLD, F 0. /OLD Y PT 00065 0000 00066 0000 00067 0000 PENCM, F 0. /OLD PEN STATUS 00070 0000 00071 0000 00072 7772 INCR, F .01 /INCREMENT-DEPENDENT ON EACH PLOTTER 00073 2436 00074 5605 00075 0001 FACTC, F 1. /FACTOR SET TO 1 INITIALLY 00076 2000 00077 0000 00100 0000 XACT, F 0. 00101 0000 00102 0000 00103 0000 YACT, F 0. /HOLDS X,Y VALUES TYPED IN 00104 0000 00105 0000 00106 0000 XDIFF, F 0. /DELTA X 00107 0000 00110 0000 00111 0001 P1, F 1. 00112 2000 00113 0000 00114 0002 PF2, F 2. 00115 2000 00116 0000 00117 0002 P3, F 3. 00120 3000 00121 0000 00122 0003 P4, F 4. 00123 2000 00124 0000 00125 0003 PF7, F 7. 00126 3400 00127 0000 00130 0000 PT5, F .5 00131 2000 00132 0000 00133 0000 PORS, F 0. /=1 IF ENTERED FROM SYMBOL RTN 00134 0000 00135 0000 00136 0000 ONCE, F 0. /SO GO THRU PLOTS ONLY ONCE 00137 0000 00140 0000 00141 0000 XCHRPT, F 0. /X,Y VALUES FROM PDP TABLES 00142 0000 00143 0000 00144 0000 YCHRPT, F 0. 00145 0000 00146 0000 00147 0000 NUMENT, F 0. /INDICATES ENTRY FROM NUMBER SUBRTN 00150 0000 00151 0000 00152 0000 COSANG, F 0. RALF V50A 8-APR-92 PAGE 13-2 00153 0000 00154 0000 00155 0000 SINANG, F 0. 00156 0000 00157 0000 00160 7773 DEGRAD, F 0.017453293 /RADIANS TO DEGRRES 00161 2167 00162 6432 00163 0007 F100, F 100. 00164 3100 00165 0000 00166 0000 XREAL, F 0. /FOR ORIGIN + WHERE RTN 00167 0000 00170 0000 00171 0000 YREAL, F 0. 00172 0000 00173 0000 00174 0000 CENTSY, F 0. /CENTERED SYMBOL INDICATOR 00175 0000 00176 0000 00177 0000 NUMSYM, F 0. /NO. OF CHARS TO PLOT 00200 0000 00201 0000 00202 0000 ANGADJ, F 0. 00203 0000 00204 0000 / 00205 0000 0 00206 1030 SYMSTR, JA . /SYMBOL ENTRY 00207 0206 00210 1030 JA SYMST /NEEDED TO PICK UP 2 WORD ADDRESS 00211 0506 00212 0000 0 / BASE 0 00213 0006 #XPLOT, STARTD 00214 0210 FLDA 10*3 /SAVE CALLER'S NEXT LOCN 00215 6400 FSTA PLTRTN 00216 0051 00217 0200 FLDA 0 00220 1100 SETX XRPLOT /GET POINTER TO START OF CALLER'S ARG LIST 00221 0020 00222 1110 SETB BPPLOT 00223 0015 BASE BPPLOT 00224 0101 LDX 1,1 00225 0001 00226 6206 FSTA ARG1 00227 1030 JA #PLSTR 00230 0002 / 00231 1120 STNOW, JSA #PLSTR /XYPLOT ENTRY 00232 0002 00233 0616 SYMENT, FLDA% ARG1,1 00234 6204 FSTA XPT 00235 0716 FLDA% ARG1,1+ RALF V50A 8-APR-92 PAGE 13-3 00236 6203 FSTA YPT 00237 0716 FLDA% ARG1,1+ 00240 6207 FSTA YDIFF /VALUE OF PEN 00241 0005 STARTF 00242 0604 FLDA% XPT /X POINT 00243 3217 FDIV INCR /ALL INTERNAL CALCULATIONS DONE 00244 1120 JSA MAKINT /IN TERMS OF PLOTTING INTERVALS, 00245 0321 00246 6221 FSTA XACT /HENCE INTEGERS SO INTEGERIZE IT 00247 4220 FMUL FACTC 00250 1120 JSA MAKINT 00251 0321 00252 6204 FSTA XPT /WITH EFFECT OF FACTOR 00253 0603 FLDA% YPT 00254 3217 FDIV INCR 00255 1120 JSA MAKINT 00256 0321 00257 6222 FSTA YACT 00260 4220 FMUL FACTC 00261 1120 JSA MAKINT 00262 0321 00263 6203 FSTA YPT /WITH EFFECT OF FACTOR 00264 0607 FLDA% YDIFF /2=DOWN,3=UP;NEG=NEW ORG 00265 6216 FSTA PENCM 00266 1010 JGE MORPEN 00267 0271 00270 0003 FNEG /ABS VALUE 00271 1120 MORPEN, JSA MAKINT 00272 0321 00273 1100 TRYAGN, SETX SETXR 00274 0046 00275 0020 ATX 0 /ABS VALUE PEN 00276 0030 XTA 0 /FOR THE FPP SIMULATOR 00277 1100 SETX XRPLOT 00300 0020 00301 2226 FSUB P3 /PASS ONLY 0-3 00302 1020 JLE ALEGAL /GOOD BOY 00303 0307 00304 0002 FCLA 00305 1030 JA TRYAGN /OTHERWISE,YOU GET A 0 00306 0273 / 00307 4000 ALEGAL, TRAP4 SETUP 00310 0030 00311 0220 FLDA FACTC /LOAD NEWEST FACTOR 1 INITIALLY 00312 4214 FMUL XOLD /UPDATE INITIAL X 00313 6214 FSTA XOLD 00314 0220 FLDA FACTC 00315 4215 FMUL YOLD /AND Y 00316 6215 FSTA YOLD 00317 1030 JA REALPT /GO DO ALL THE PLOTTING 00320 0333 / 00321 1030 MAKINT, JA . /FOR ALL THOSE INTEGERIZATIONS REQUIRED 00322 0321 00323 1231 FADD PT5 /ROUND THE VALUE RALF V50A 8-APR-92 PAGE 13-4 00324 0010 ALN 0 /GET RID OF FRACTIONAL PART 00325 0004 FNORM /NORMALIZE IT FOR OTHER FPP OPERATIONS 00326 1030 JA MAKINT 00327 0321 RALF V50A 8-APR-92 PAGE 14 /HERES THE CALCULATING PART OF PLOT ROUTINES 00330 0002 PRERL1, FCLA 00331 1030 PREREL, JA . /RTN USED AS SUBRTN 00332 0331 00333 0204 REALPT, FLDA XPT /AND JA'D TO 00334 2214 FSUB XOLD /COMPARE NEW X AND OLD 00335 6223 FSTA XDIFF 00336 1010 JGE ABSDX 00337 0341 00340 0003 FNEG 00341 6205 ABSDX, FSTA TERM1 /ABS DELTA X 00342 0203 FLDA YPT 00343 2215 FSUB YOLD /SAME FOR Y PTS 00344 6207 FSTA YDIFF 00345 1020 JLE DELXY 00346 0350 00347 0003 FNEG 00350 1205 DELXY, FADD TERM1 /DX-DY 00351 6205 FSTA TERM1 /DETERMINE OCTANT + MAJOR AXIS 00352 1060 JGT XMAJ 00353 0362 00354 0207 FLDA YDIFF /Y AXIS IS MAJOR 00355 6212 FSTA MAJOR 00356 0223 FLDA XDIFF 00357 6213 FSTA MINOR 00360 1030 JA KNOWOC 00361 0366 / 00362 0223 XMAJ, FLDA XDIFF /X AXIS MAJOR 00363 6212 FSTA MAJOR 00364 0207 FLDA YDIFF 00365 6213 FSTA MINOR 00366 0101 KNOWOC, LDX 2,1 /2*OCTANT VALUE COLLECTED IN XR1 00367 0002 00370 0223 FLDA XDIFF /USES A SPECIAL (NON-SEQUENTIAL) ORDERING 00371 1020 JLE .+4 00372 0375 00373 0111 ADDX 10,1 00374 0010 00375 0207 FLDA YDIFF 00376 1020 JLE .+4 00377 0402 00400 0111 ADDX 4,1 00401 0004 00402 0205 FLDA TERM1 00403 1020 JLE .+4 00404 0407 00405 0111 ADDX 2,1 /KEEP IT IN XR1 00406 0002 00407 0102 LDX 0,2 00410 0000 00411 0212 FLDA MAJOR /GET MAJOR MOVE 00412 1050 JLT NEGMAJ /NEED NEG VALUE 00413 0420 00414 1000 JEQ NOTHIN /IF NO MAJOR MOVES,THEN NO MOVES RALF V50A 8-APR-92 PAGE 14-1 00415 0450 00416 0003 FNEG 00417 6212 FSTA MAJOR /NOW NEG VALUE 00420 2224 NEGMAJ, FSUB P1 /-1 FOR FOR NULL SKIP 00421 1120 JSA MAKINT 00422 0321 00423 0010 ALN 0 /RIGTH JUSTIFY 00424 6400 FSTA TOTSTP /PASS THIS TO PDP CODE STP1,STP2 00425 0656 00426 0213 FLDA MINOR /USE 2 WORD RATIO TO DET SEQ OF MOVES 00427 1060 JGT POSMIN /ABS VALUE 00430 0434 00431 1000 JEQ ZROCAS 00432 0436 00433 0003 FNEG 00434 3212 POSMIN, FDIV MAJOR /FORM RATIO OF MINOR TO MAJOR MOVES 00435 0012 ALN 2 00436 6400 ZROCAS, FSTA RATIO /DOWN TO PDP CODE 00437 0324 00440 0031 XTA 1 /GET 2*OCTANT 00441 1100 SETX PDPXR 00442 0655 00443 0020 ATX 0 00444 1100 SETX XRPLOT 00445 0020 00446 4000 TRAP4 NINPLT 00447 0600 RALF V50A 8-APR-92 PAGE 15 00450 0232 NOTHIN, FLDA PORS 00451 1000 JEQ REGPLT /0 MEANS WAS FROM XYPLOT 00452 0463 00453 1050 JLT SYMSET /WAS A MOVE IN SYMBOL 00454 0474 00455 0002 FCLA /IS 1ST MOVE IN SYMBOL (0 ORG) 00456 6214 FSTA XOLD 00457 6215 FSTA YOLD 00460 6232 FSTA PORS 00461 1030 JA SYMSTR 00462 0206 / 00463 0216 REGPLT, FLDA PENCM 00464 1050 JLT ZEROLD /NEG MEANS ZERO THE ORG 00465 0502 00466 0221 FLDA XACT /SET X AND Y FOR NEXT MOVE 00467 6214 FSTA XOLD /TO START AT END OF THIS MOVE 00470 0222 FLDA YACT 00471 6215 YS, FSTA YOLD 00472 1030 JA PLTRTN 00473 0051 / 00474 0204 SYMSET, FLDA XPT /CONT FROM CURRENT POINT 00475 6214 FSTA XOLD 00476 0203 FLDA YPT 00477 6215 FSTA YOLD 00500 1030 JA PRERL1 00501 0330 / 00502 0002 ZEROLD, FCLA 00503 6214 FSTA XOLD 00504 1030 JA YS 00505 0471 / ENTRY SYMSTR 00506 0006 SYMST, STARTD /USED BY SYMBOL FOR ORIGIN PLOT 00507 0250 FLDA SYMSTR /GET START OF ARG CHAIN 00510 6206 FSTA ARG1 00511 0101 LDX 1,1 00512 0001 00513 0005 STARTF 00514 0224 FLDA P1 00515 6232 FSTA PORS /SET THE "FROM SYMBOL" INDICATOR 00516 0006 STARTD 00517 1030 JA SYMENT 00520 0233 RALF V50A 8-APR-92 PAGE 16 ENTRY WHERE /WITHOUT EFFECT OF FACTOR 00521 1120 WHERE, JSA #PLSTR 00522 0002 00523 0616 FLDA% ARG1,1 00524 6205 FSTA TERM1 /ADDRESS 00525 0716 FLDA% ARG1,1+ 00526 6207 FSTA YDIFF /SAVE ADDRESSES 00527 0716 FLDA% ARG1,1+ 00530 6206 FSTA ARG1 00531 0005 STARTF 00532 0214 FLDA XOLD 00533 4217 FMUL INCR 00534 6605 FSTA% TERM1 00535 0215 FLDA YOLD 00536 4217 FMUL INCR 00537 6607 FSTA% YDIFF /SEND BACK THE VALUES 00540 0220 FLDA FACTC 00541 6606 FSTA% ARG1 00542 1030 JA PLTRTN 00543 0051 / ENTRY FACTOR /RESET FACTOR VALUE 00544 1120 FACTOR, JSA #PLSTR 00545 0002 00546 0616 FLDA% ARG1,1 00547 6206 FSTA ARG1 00550 0005 STARTF 00551 0606 FLDA% ARG1 00552 1010 JGE ABSFCT 00553 0555 00554 0003 FNEG /ABS VALUE 00555 6220 ABSFCT, FSTA FACTC 00556 1030 JA PLTRTN 00557 0051 RALF V50A 8-APR-92 PAGE 17 /MUST DO A PLOTS AS FIRST ROUTINE IN ANY PLOTTING SEQUENCE. /USER SPECIFIES INCREMENT AND NON-IMPLEMENTED ARG. ENTRY PLOTS 00560 1120 PLOTS, JSA #PLSTR 00561 0002 00562 0616 FLDA% ARG1,1 00563 6204 FSTA XPT 00564 0716 FLDA% ARG1,1+ 00565 6206 FSTA ARG1 00566 0005 STARTF /THIS RTN SETS UP LOTS OF CONSTANTS 00567 0604 FLDA% XPT 00570 6217 FSTA INCR 00571 0233 FLDA ONCE /ONLY SET UP INTERRUPTS ONCE 00572 1040 JNE NOINT 00573 0600 00574 0606 FLDA% ARG1 00575 0002 FCLA /NOT IMPLEMENTED 00576 4000 TRAP4 INTST 00577 0000 00600 0224 NOINT, FLDA P1 00601 6220 FSTA FACTC /FACTOR=1 INITIALLY 00602 6233 FSTA ONCE /SET INT DONE FLAG 00603 0002 FCLA 00604 6216 FSTA PENCM /SO WILL DO 1ST PEN MOVEMENT 00605 6214 FSTA XOLD 00606 6215 FSTA YOLD 00607 6232 FSTA PORS 00610 1030 JA PLTRTN 00611 0051 / ENTRY PLEXIT /BE SURE ALL DONE 00612 1120 PLEXIT, JSA #PLSTR 00613 0002 00614 0005 STARTF 00615 4000 TRAP4 DONECK 00616 0753 00617 1030 JA PLTRTN 00620 0051 RALF V50A 8-APR-92 PAGE 18 SECT SYMBOL EXTERN SIN EXTERN COS 00000 1120 JSA #PLSTR 00001 0002 00002 0616 SYM1, FLDA% ARG1,1 00003 6204 FSTA XPT /X POINT 00004 0716 FLDA% ARG1,1+ 00005 6203 FSTA YPT /Y VALUE 00006 0716 FLDA% ARG1,1+ 00007 6207 FSTA YDIFF /HEIGHT 00010 0716 FLDA% ARG1,1+ 00011 6205 FSTA TERM1 /TEXT 00012 0716 FLDA% ARG1,1+ 00013 6202 FSTA TERM2 /ANGLE 00014 0716 FLDA% ARG1,1+ 00015 6206 FSTA ARG1 /NUMBER CHARS. 00016 0005 STARTF 00017 0602 FLDA% TERM2 00020 4241 FMUL DEGRAD /CONVERT TO RADIANS 00021 6234 FSTA XCHRPT /THEN DONT NEED SIND 00022 0604 FLDA% XPT 00023 6237 FSTA COSANG /VALUE OF X 00024 0603 FLDA% YPT 00025 6240 FSTA SINANG 00026 0002 FCLA 00027 6400 FSTA TXTADR 00030 0404 00031 6216 FSTA PENCM /SO ALWAYS DOES INITIAL PEN U/D 00032 6245 FSTA CENTSY 00033 0205 FLDA TERM1 /GET TEXT ADDRESS 00034 6400 FSTA TXTADR /PUT IT DOWN IN PDP PART 00035 0404 RALF V50A 8-APR-92 PAGE 19 00036 0607 FLDA% YDIFF /ASSUME ITS A REGULAR 00037 1010 JGE NOTNEG /NEGATIVE SIZE IS NOT NICE 00040 0042 00041 0003 FNEG 00042 3230 NOTNEG, FDIV PF7 /ADJUST LATER IF A CENT 00043 6247 FSTA ANGADJ 00044 0606 FLDA% ARG1 /SHOWS NUM. CHARS + PEN STATUS 00045 6246 FSTA NUMSYM 00046 1010 JGE REGSYM /GT OR =0 IS REG SYM 00047 0211 00050 0605 FLDA% TERM1 /CHECK FOR REG CHAR PASSED 00051 2242 FSUB F100 /AS AN INTEGER EQUIV. 00052 1050 JLT INTEQ /ITS A INTEGER EQUIV 00053 0205 00054 0607 FLDA% YDIFF /CENTERED SYMBOL 00055 1010 JGE NOTNG1 00056 0060 00057 0003 FNEG 00060 3227 NOTNG1, FDIV P4 00061 6247 FSTA ANGADJ 00062 0246 FLDA NUMSYM /-1=PEN UP;-2=PEN DOWN (CNTRD ONLY) 00063 1224 FADD P1 00064 1010 JGE UPPEN /MOVE WITH PEN UP 00065 0143 00066 6245 FSTA CENTSY /NEG MEANS DOWN FROM THE START 00067 0225 PTITDN, FLDA PF2 00070 6235 CPEN, FSTA YCHRPT /=-2 FOR DOWN(CENT. + INTEQ ONLY) / -3 FOR UP FOR ALL SYMBOLS + INTEQ 00071 1120 JSA SYMSTR /PLOT ORIGIN 00072 0206 00073 1030 JA .+10 00074 0103 00075 1030 JA COSANG 00076 0152 00077 1030 JA SINANG 00100 0155 00101 1030 JA YCHRPT 00102 0144 00103 0204 FLDA XPT 00104 6243 FSTA XREAL /KEEP TRACK OF PASSED VALUES 00105 0203 FLDA YPT 00106 6244 FSTA YREAL 00107 0245 FLDA CENTSY 00110 1020 JLE PENOK 00111 0114 00112 1120 JSA PNDOWN /PUT PEN DOWN NOW(CENT ONLY) 00113 0242 00114 1130 PENOK, JSR SIN 00115 0000 00116 1030 JA .+4 00117 0122 00120 1030 JA XCHRPT 00121 0141 00122 4247 FMUL ANGADJ 00123 6240 FSTA SINANG /SAVE SIN*HGT. USE FOR ALL VALUES RALF V50A 8-APR-92 PAGE 19-1 00124 1130 JSR COS 00125 0000 00126 1030 JA .+4 00127 0132 00130 1030 JA XCHRPT 00131 0141 00132 4247 FMUL ANGADJ 00133 6237 FSTA COSANG /COS(ANGLE)*HGT (IN INCREMENTS NOW) 00134 0104 LDX 0,4 /ZERO STEP COUNT 00135 0000 00136 0236 FLDA NUMENT 00137 1060 JGT NUM2 /JUMP IF FROM NUMBER 00140 0503 00141 1030 JA FSTLFT 00142 0432 00143 0226 UPPEN, FLDA P3 00144 6245 FSTA CENTSY /PUT PEN DOWN AFTER INITIAL MOVE 00145 1030 JA CPEN /MOVE WITH PEN UP 00146 0070 RALF V50A 8-APR-92 PAGE 20 00147 1120 PENSET, JSA PNDOWN 00150 0242 00151 1030 ONEXY, JA . 00152 0151 00153 1100 SETX LETCOD 00154 0231 00155 0032 XTA 2 /GET Y 00156 6235 FSTA YCHRPT 00157 0031 XTA 1 /GET X 00160 6234 FSTA XCHRPT /GET 1ST MOVE 00161 1100 SETX XRPLOT 00162 0020 00163 2230 FSUB PF7 /7,0=PEN UP 7,7=END 00164 1000 JEQ PENUPM 00165 0214 00166 0245 FLDA CENTSY 00167 1000 JEQ CALALL /CENTEREDS REQUIRE MODIFIED ORIGIN 00170 0177 00171 0234 FLDA XCHRPT 00172 2225 FSUB PF2 00173 6234 FSTA XCHRPT 00174 0235 FLDA YCHRPT 00175 2225 FSUB PF2 00176 6235 FSTA YCHRPT 00177 1120 CALALL, JSA CALANG 00200 0260 00201 2050 JXN PENSET,5 /PUT PEN BACK DOWN IF NEC 00202 0147 00203 1030 JA ONEXY 00204 0151 / 00205 0246 INTEQ, FLDA NUMSYM /CHECK ON PEN 00206 1224 FADD P1 00207 1050 JLT PTITDN 00210 0067 00211 0226 REGSYM, FLDA P3 00212 1030 JA CPEN 00213 0070 / 00214 1120 PENUPM, JSA PENUP 00215 0224 00216 0235 FLDA YCHRPT /CHECK FOR 7,7 END 00217 2230 FSUB PF7 00220 1000 JEQ NXTCHR /JUMP IF END OF CHAR 00221 0371 00222 1030 JA ONEXY /ON TO NEXT PAIR 00223 0151 / 00224 1030 PENUP, JA . 00225 0224 00226 0105 LDX 1,5 /SET FOR PEN UP 00227 0001 00230 1100 SETX PDPXR 00231 0655 00232 0100 LDX 0,0 /PASS A 0 FOR UP RALF V50A 8-APR-92 PAGE 20-1 00233 0000 00234 1100 SETX XRPLOT 00235 0020 00236 4000 TRAP4 PENOP 00237 0650 00240 1030 JA PENUP 00241 0224 / 00242 1030 PNDOWN, JA . 00243 0242 00244 1100 SETX PDPXR 00245 0655 00246 0100 LDX 1,0 /PASS A 1 FOR DOWN 00247 0001 00250 1100 SETX XRPLOT 00251 0020 00252 4000 TRAP4 PENOP 00253 0650 00254 0105 LDX 0,5 00255 0000 00256 1030 JA PNDOWN 00257 0242 RALF V50A 8-APR-92 PAGE 21 00260 1030 CALANG, JA . 00261 0260 00262 0235 FLDA YCHRPT 00263 3217 FDIV INCR 00264 6235 FSTA YCHRPT /Y MOVE AS STEPS(UNINTEGERIZED) 00265 4240 FMUL SINANG 00266 0003 FNEG 00267 6205 FSTA TERM1 /=-SINA*Y 00270 0234 FLDA XCHRPT 00271 3217 FDIV INCR 00272 6234 FSTA XCHRPT 00273 4237 FMUL COSANG 00274 1205 FADD TERM1 00275 1120 JSA MAKINT 00276 0321 00277 6221 FSTA XACT /FOR AT END OF TEXT 00300 4220 FMUL FACTC 00301 1120 JSA MAKINT 00302 0321 00303 6204 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. 00304 0235 FLDA YCHRPT 00305 4237 FMUL COSANG 00306 6205 FSTA TERM1 /COSA*Y 00307 0234 FLDA XCHRPT 00310 4240 FMUL SINANG 00311 1205 FADD TERM1 00312 1120 JSA MAKINT 00313 0321 00314 6222 FSTA YACT 00315 4220 FMUL FACTC 00316 1120 JSA MAKINT 00317 0321 00320 6203 FSTA YPT /NEWX*SINA+OLDY+COSA*Y 00321 0224 FLDA P1 00322 6216 FSTA PENCM /USE SAME ORIGIN THRUOUT LETTER 00323 0003 FNEG 00324 6232 FSTA PORS 00325 1120 JSA PREREL /PEN MUST BE IN NEC POS BY NOW 00326 0331 00327 1030 JA CALANG 00330 0260 RALF V50A 8-APR-92 PAGE 22 00331 0034 LEFTJS, XTA 4 /NUM OF MOVES 00332 1100 SETX LETCOD 00333 0231 00334 0020 ATX 0 /PASS NUMBER OF STEPS INTO LETTER 00335 1100 SETX XRPLOT 00336 0020 00337 4000 TRAP4 LEFT /RETURN WITH A X,Y PAIR 00340 0200 00341 1120 JSA ONEXY 00342 0151 00343 0034 XTA 4 00344 1100 SETX LETCOD 00345 0231 00346 0020 ATX 0 /STEP COUNT 00347 1100 SETX XRPLOT 00350 0020 00351 1040 JNE NOTFST /CHANGE IF BEFORE 1ST MOVE OF CHAR 00352 0355 00353 1120 JSA PNDOWN /PUT PEN DOWN NOW 00354 0242 00355 4000 NOTFST, TRAP4 RIGHT /GET NEXT XY PAIR 00356 0223 00357 1120 JSA ONEXY 00360 0151 00361 0114 ADDX 1,4 /UPDATE COUNT 00362 0001 00363 1030 JA LEFTJS /77 AT END OF CHAR USED TO DET END 00364 0331 / 00365 1120 CENTEX, JSA PENUP 00366 0224 00367 1030 JA CENTOO 00370 0411 / 00371 0245 NXTCHR, FLDA CENTSY 00372 1040 JNE CENTEX /LEAVE PEN AT CENTER FOR CENTS ONLY 00373 0365 00374 6235 FSTA YCHRPT 00375 0230 FLDA PF7 00376 6234 FSTA XCHRPT /MOVE PEN TO 7,0 FOR REG CHARS 00377 1120 JSA CALANG /PLOT IT 00400 0260 00401 0221 FLDA XACT /UPDATED COLLECTIVE ENDING X VALUE 00402 4220 FMUL FACTC /WITHOUT FACTOR EFFECT FOR REG ONLY (7,0) 00403 1243 FADD XREAL 00404 6243 FSTA XREAL 00405 0222 FLDA YACT /AND Y 00406 4220 FMUL FACTC 00407 1244 FADD YREAL 00410 6244 FSTA YREAL 00411 0104 CENTOO, LDX 0,4 /ZERO STEP NUM WITHIN CHAR 00412 0000 00413 0002 FCLA 00414 6214 FSTA XOLD 00415 6215 FSTA YOLD RALF V50A 8-APR-92 PAGE 22-1 00416 0224 FLDA P1 00417 0003 FNEG 00420 1246 FADD NUMSYM /UPDATE COUNTER 00421 1020 JLE SYMDON /NO MORE 00422 0452 00423 6246 FSTA NUMSYM /MORE. SAVE COUNT 00424 0236 FLDA NUMENT 00425 1060 JGT NUM3 /EXIT FOR NUMB SUBR 00426 0507 00427 0002 FCLA 00430 2030 JXN RTCHAR,3 /1=CHAR IS RIGHT 6 BITS 00431 0444 00432 0103 FSTLFT, LDX 1,3 /POINT TO RIGHT 6 WHEN TIME FOR NEXT CHAR 00433 0001 00434 0246 FLDA NUMSYM 00435 1050 JLT NUM5 /JUMP IF CENTERED SYM OR INTEQ 00436 0515 00437 0002 FCLA 00440 4000 TRAP4 FINDLF 00441 0413 00442 1030 JA LEFTJS /GO PLOT THE ACTUAL CHAR 00443 0331 /CENTEREDS + INTEG EQUIV PASSING A 3 WORD VALUE IN NUM5 /REG SYM USES PDP RTN TO GET 1 WORD OF LIST / 00444 0103 RTCHAR, LDX 0,3 /POINT TO LEFT 6 BITS FOR NEXT TIME 00445 0000 00446 4000 TRAP4 FINDRT 00447 0506 00450 1030 JA LEFTJS 00451 0331 / 00452 0002 SYMDON, FCLA 00453 6232 FSTA PORS 00454 6236 FSTA NUMENT 00455 0243 FLDA XREAL /UPDATE ORIG X VALUE 00456 3220 FDIV FACTC 00457 6214 FSTA XOLD 00460 0244 FLDA YREAL /AND Y TOO 00461 3220 FDIV FACTC 00462 6215 FSTA YOLD /NOW CAN CONT PLOT FROM HERE 00463 1030 JA PLTRTN 00464 0051 RALF V50A 8-APR-92 PAGE 23 ENTRY SYMB 00465 1120 SYMB, JSA #PLSTR /SPEC ENTRY FOR NUMBER SUB 00466 0002 00467 0005 STARTF 00470 0224 FLDA P1 00471 6236 FSTA NUMENT 00472 0243 FLDA XREAL 00473 3220 FDIV FACTC 00474 6243 FSTA XREAL 00475 0244 FLDA YREAL 00476 3220 FDIV FACTC 00477 6244 FSTA YREAL 00500 0006 STARTD 00501 1030 JA SYM1 00502 0002 / 00503 1100 NUM2, SETX NUMENT /FOR NUMBER SUBRTN ONLY 00504 0147 00505 0102 LDX -1,2 /HERE ONLY FOR 1ST NUMBER OF STRING 00506 7777 00507 1120 NUM3, JSA GETARG /FOR 2ND + LATER NUMBERS 00510 0527 00511 4000 TRAP4 PASNUM 00512 0514 00513 1030 JA LEFTJS 00514 0331 / 00515 1100 NUM5, SETX NUMENT /FOR INTEQ + CENTEREDS 00516 0147 00517 0102 LDX -1,2 00520 7777 00521 1120 JSA GETARG 00522 0527 00523 4000 TRAP4 PASINT 00524 0536 00525 1030 JA LEFTJS 00526 0331 / 00527 1030 GETARG, JA . 00530 0527 00531 1100 SETX NUMENT /USED FOR MORE THAN 1 CHAR 00532 0147 00533 0006 STARTD 00534 0400 FLDA TXTADR+1 /CENTERED SYMBOLS AND NUM SUBRTN 00535 0405 00536 6206 FSTA ARG1 /PASS VALUES AS 3 WORDS 00537 0005 STARTF 00540 0726 FLDA% ARG1,2+ /PASS A NUMBER 00541 1100 SETX TXTADR 00542 0404 00543 1120 JSA MAKINT 00544 0321 00545 0020 ATX 0 00546 1100 SETX XRPLOT 00547 0020 RALF V50A 8-APR-92 PAGE 23-1 00550 1030 JA GETARG 00551 0527 RALF V50A 8-APR-92 PAGE 24 SECT SYMBTB SYMTBL, 00000 0005 A, 0005 /1 00001 1636 1636 00002 4540 4540 00003 7043 7043 00004 0377 0377 00005 0006 B, 0006 00006 3645 3645 00007 4433 4433 00010 0333 0333 00011 4241 4241 00012 3000 3000 00013 7777 7777 00014 4130 C, 4130 00015 1001 1001 00016 0516 0516 00017 3645 3645 00020 7777 7777 00021 0006 D, 0006 00022 3645 3645 00023 4130 4130 00024 0077 0077 00025 4000 E, 4000 00026 0646 0646 00027 7033 7033 00030 0377 0377 00031 0006 F, 0006 00032 4670 4670 00033 0333 0333 00034 7777 7777 00035 4616 G, 4616 00036 0501 0501 00037 1030 1030 00040 4143 4143 00041 2377 2377 00042 0006 H, 0006 /10 OCTAL 00043 7003 7003 00044 4370 4370 00045 4640 4640 00046 7777 7777 00047 0646 I, 0646 00050 7026 7026 00051 2070 2070 00052 0040 0040 00053 7777 7777 00054 0100 J, 0100 /10 DEC 00055 3036 3036 00056 7016 7016 00057 4677 4677 00060 0006 K, 0006 00061 7046 7046 00062 1303 1303 00063 1340 1340 00064 7777 7777 RALF V50A 8-APR-92 PAGE 24-1 00065 0600 L, 0600 00066 4077 4077 00067 0006 LM, 0006 00070 2346 2346 00071 4077 4077 00072 0006 LN, 0006 00073 4046 4046 00074 7777 7777 00075 0110 O, 0110 00076 3041 3041 00077 4536 4536 00100 1605 1605 00101 0177 0177 00102 0006 P, 0006 /20 OCT 00103 4643 4643 00104 0377 0377 00105 0110 Q, 0110 00106 3041 3041 00107 4536 4536 00110 1605 1605 00111 0170 0170 00112 2240 2240 00113 7777 7777 00114 0006 R, 0006 00115 3645 3645 00116 4433 4433 00117 1303 1303 00120 1340 1340 00121 7777 7777 00122 0110 S, 0110 00123 3041 3041 00124 4233 4233 00125 1304 1304 00126 0516 0516 00127 3645 3645 00130 7777 7777 00131 2026 T, 2026 /20 DEC 00132 7006 7006 00133 4677 4677 00134 0601 U, 0601 00135 1030 1030 00136 4146 4146 00137 7777 7777 00140 0620 V, 0620 00141 4677 4677 00142 0600 W, 0600 00143 2240 2240 00144 4677 4677 00145 0046 X, 0046 00146 7006 7006 00147 4077 4077 00150 0624 Y, 0624 00151 2070 2070 00152 2446 2446 00153 7777 7777 00154 0646 Z, 0646 /26 RALF V50A 8-APR-92 PAGE 24-2 00155 0040 0040 00156 7777 7777 00157 3010 LBRACK, 3010 00160 1636 1636 00161 7777 7777 00162 0640 BSLASH, 0640 00163 7777 7777 00164 1030 RBRACK, 1030 00165 3616 3616 00166 7777 7777 00167 2026 UPAROW, 2026 00170 7004 7004 00171 2644 2644 00172 7777 7777 00173 2103 LARROW, 2103 00174 2570 2570 00175 0343 0343 00176 7777 7777 00177 7777 SPAC, 7777 /SPACE - 32 DEC, 40 OCT 00200 2622 EXCLPT, 2622 00201 7021 7021 00202 2077 2077 00203 1416 DBLQOT, 1416 00204 7036 7036 00205 3477 3477 00206 0242 NUMSGN, 0242 00207 7044 7044 00210 0470 0470 00211 1511 1511 00212 7031 7031 00213 3577 3577 00214 1211 DOLSGN, 1211 00215 3133 3133 00216 1315 1315 00217 3534 3534 00220 7026 7026 00221 2077 2077 00222 0405 PRCNT, 0405 00223 1514 1514 00224 0470 0470 00225 4501 4501 00226 7031 7031 00227 3242 3242 00230 4131 4131 00231 7777 7777 00232 1014 PI, 1014 00233 7004 7004 00234 4470 4470 00235 3430 3430 00236 7777 7777 00237 2624 SNGQOT, 2624 00240 7777 7777 00241 3020 LPAR, 3020 /40 00242 1115 1115 00243 2636 2636 00244 7777 7777 RALF V50A 8-APR-92 PAGE 24-3 00245 1626 RPAR, 1626 00246 3531 3531 00247 2010 2010 00250 7777 7777 00251 0145 STAR, 0145 /42 00252 7025 7025 00253 2170 2170 00254 4105 4105 00255 7003 7003 00256 4377 4377 00257 2125 PLUS, 2125 00260 7003 7003 00261 4377 4377 00262 2111 COM, 2111 00263 1222 1222 00264 2110 2110 00265 7777 7777 00266 0343 DASH, 0343 00267 7777 7777 00270 2021 PER, 2021 00271 1110 1110 00272 2077 2077 00273 0046 SLASH, 0046 00274 7777 7777 00275 0110 ZER, 0110 00276 2031 2031 00277 3526 3526 00300 1605 1605 00301 0170 0170 00302 3600 3600 00303 7777 7777 00304 1436 ONE, 1436 00305 3070 3070 00306 1040 1040 00307 7777 7777 00310 0516 TWO, 0516 00311 3645 3645 00312 4401 4401 00313 0040 0040 00314 7777 7777 00315 0516 THR, 0516 00316 3645 3645 00317 4433 4433 00320 1333 1333 00321 4241 4241 00322 3010 3010 00323 0177 0177 00324 3036 FOUR, 3036 00325 0343 0343 00326 7777 7777 00327 0110 FIV, 0110 00330 3041 3041 00331 4233 4233 00332 1304 1304 00333 0646 0646 00334 7777 7777 RALF V50A 8-APR-92 PAGE 24-4 00335 0213 SIX, 0213 00336 3342 3342 00337 4130 4130 00340 1001 1001 00341 0516 0516 00342 3645 3645 00343 7777 7777 00344 0506 SEV, 0506 00345 4645 4645 00346 2120 2120 00347 7777 7777 00350 1333 EIG, 1333 00351 4241 4241 00352 3010 3010 00353 0102 0102 00354 1304 1304 00355 0516 0516 00356 3645 3645 00357 4433 4433 00360 7777 7777 00361 0110 NIN, 0110 00362 3041 3041 00363 4536 4536 00364 1605 1605 00365 0413 0413 00366 3344 3344 00367 7777 7777 00370 1415 COLON, 1415 00371 2524 2524 00372 1470 1470 00373 1222 1222 00374 2111 2111 00375 1277 1277 00376 1415 SEMI, 1415 00377 2524 2524 00400 1470 1470 00401 1222 1222 00402 2011 2011 00403 1277 1277 00404 4503 LT, 4503 /LESS THAN 60=74 00405 4177 4177 00406 0444 EQ, 0444 /EQUAL 61 00407 7002 7002 00410 4277 4277 00411 0543 GT, 0543 /GRTR THAN 62=76 00412 0177 0177 00413 0516 QM, 0516 /Q MARK 63=77 00414 3645 3645 00415 4433 4433 00416 3270 3270 00417 3130 3130 00420 7777 7777 /START OF CENTEREDS-EXPECT TO START AND END IN MIDDLE /PLOTTED WITH 2,2 AS MIDDLE. ALL MUSR END AT 2,2. 00421 2224 CBOX, 2224 /BOX 0 00422 0400 0400 RALF V50A 8-APR-92 PAGE 24-5 00423 4044 4044 00424 2422 2422 00425 7777 7777 00426 2224 COCT, 2224 /OCTAGON 1 00427 1403 1403 00430 0110 0110 00431 3041 3041 00432 4334 4334 00433 2422 2422 00434 7777 7777 00435 2223 CTRI, 2223 /TRIANGLE 2 00436 0141 0141 00437 2322 2322 00440 7777 7777 00441 2420 CPL, 2420 /+ 3 00442 7002 7002 00443 4222 4222 00444 7777 7777 00445 0440 CX, 0440 /X 4 00446 7044 7044 00447 0022 0022 00450 7777 7777 00451 2224 CDIM, 2224 /DIAMOND 5 00452 0220 0220 00453 4224 4224 00454 2277 2277 00455 2220 CUP, 2220 /UP ARROW 6 00456 7002 7002 00457 2442 2442 00460 0222 0222 00461 7777 7777 00462 2244 CHAIR, 2244 /CHAIR 7 00463 0440 0440 00464 7000 7000 00465 2277 2277 00466 3270 ZORRO, 3270 /Z 8 00467 4000 4000 00470 4404 4404 00471 7012 7012 00472 2277 2277 00473 2244 YCENT, 2244 /Y 9 00474 7020 7020 00475 2204 2204 00476 2277 2277 00477 2233 CSHIP, 2233 /SHIP 10 00500 1311 1311 00501 3133 3133 00502 7040 7040 00503 3170 3170 00504 1100 1100 00505 7004 7004 00506 1370 1370 00507 4422 4422 00510 7777 7777 00511 0242 CSTAR, 0242 /STAR 11 00512 7044 7044 RALF V50A 8-APR-92 PAGE 24-6 00513 0070 0070 00514 2024 2024 00515 7004 7004 00516 4022 4022 00517 7777 7777 00520 2244 TWOTRI, 2244 /2 TRIANGLES 12 00521 0440 0440 00522 0022 0022 00523 7777 7777 00524 2420 CVERT, 2420 /VERTICAL LINE 13 00525 2277 2277 00526 0242 HDSH, 0242 /HORIZ DASH 14 00527 2277 2277 00530 2242 ABSEQ, 2242 /ABSOLUTELY EQUAL TO 15 00531 7044 7044 00532 0470 0470 00533 4000 4000 00534 7002 7002 00535 2277 2277 00536 2200 NOTEQ, 2200 /NOT EQUAL 16 00537 7001 7001 00540 4170 4170 00541 4303 4303 00542 7044 7044 00543 2277 2277 00544 2224 PLSMNS, 2224 /+ OR - 17 00545 7013 7013 00546 3370 3370 00547 3111 3111 00550 7022 7022 00551 7777 7777 RALF V50A 8-APR-92 PAGE 25 /THIS TABLE COUNTS THE NUMBER OF STEPS (12 BIT) BETWEEN /EACH CHARACTER. USED TO DETERMINE LOCATION AT WHICH TO /START PICKING UP PLOTTING CODES. 00552 0000 SYMCNT, 0 /TO A 00553 0005 B-A 00554 0007 C-B 00555 0005 D-C 00556 0004 E-D 00557 0004 F-E 00560 0004 G-F 00561 0005 H-G 00562 0005 I-H 00563 0005 J-I 00564 0004 K-J 00565 0005 L-K 00566 0002 LM-L 00567 0003 LN-LM 00570 0003 O-LN 00571 0005 P-O 00572 0003 Q-P 00573 0007 R-Q 00574 0006 S-R 00575 0007 T-S 00576 0003 U-T 00577 0004 V-U 00600 0002 W-V 00601 0003 X-W 00602 0003 Y-X 00603 0004 Z-Y 00604 0003 LBRACK-Z 00605 0003 BSLASH-LBRACK 00606 0002 RBRACK-BSLASH 00607 0003 UPAROW-RBRACK 00610 0004 LARROW-UPAROW 00611 0004 SPAC-LARROW 00612 0001 EXCLPT-SPAC 00613 0003 DBLQOT-EXCLPT 00614 0003 NUMSGN-DBLQOT 00615 0006 DOLSGN-NUMSGN 00616 0006 PRCNT-DOLSGN 00617 0010 PI-PRCNT 00620 0005 SNGQOT-PI 00621 0002 LPAR-SNGQOT 00622 0004 RPAR-LPAR 00623 0004 STAR-RPAR 00624 0006 PLUS-STAR 00625 0003 COM-PLUS 00626 0004 DASH-COM 00627 0002 PER-DASH 00630 0003 SLASH-PER 00631 0002 ZER-SLASH 00632 0007 ONE-ZER 00633 0004 TWO-ONE 00634 0005 THR-TWO 00635 0007 FOUR-THR RALF V50A 8-APR-92 PAGE 25-1 00636 0003 FIV-FOUR 00637 0006 SIX-FIV 00640 0007 SEV-SIX 00641 0004 EIG-SEV 00642 0011 NIN-EIG 00643 0007 COLON-NIN 00644 0006 SEMI-COLON 00645 0006 LT-SEMI 00646 0002 EQ-LT 00647 0003 GT-EQ 00650 0002 QM-GT 00651 0006 CBOX-QM 00652 0005 COCT-CBOX 00653 0007 CTRI-COCT 00654 0004 CPL-CTRI 00655 0004 CX-CPL 00656 0004 CDIM-CX 00657 0004 CUP-CDIM 00660 0005 CHAIR-CUP 00661 0004 ZORRO-CHAIR 00662 0005 YCENT-ZORRO 00663 0004 CSHIP-YCENT 00664 0012 CSTAR-CSHIP 00665 0007 TWOTRI-CSTAR 00666 0004 CVERT-TWOTRI 00667 0002 HDSH-CVERT 00670 0002 ABSEQ-HDSH 00671 0006 NOTEQ-ABSEQ 00672 0006 PLSMNS-NOTEQ RALF V50A 8-APR-92 PAGE 25-2 NO ERRORS 310 SYMBOLS, NO ABS REFS # C 00000 #DISMS X 00000 #HANG X 00000 #MAIN S 00000 #PLSTR 00002 #XPLOT 00213 A 00000 ABSDX 00341 ABSEQ 00530 ABSFCT 00555 ACHAR 00554 ALEGAL 00307 ANGADJ 00202 ANOTHR 00610 ARG1 00037 A22 00565 A3 00045 B 00005 BPPLOT 00015 BSLASH 00162 BSW 07002 BUFCNT 00671 C 00014 CALALL 00177 CALANG 00260 CBOX 00421 CDF 00504 CDFINS 00253 CDIM 00451 CENTEX 00365 CENTOO 00411 CENTSY 00174 CHAIR 00462 CLRFLG 00715 COCT 00426 COLON 00370 COM 00262 COS X 00000 COSANG 00152 COUNT 00402 CPEN 00070 CPL 00441 CSHIP 00477 CSTAR 00511 CTRI 00435 CUP 00455 CVERT 00524 CX 00445 D 00021 DASH 00266 DBLQOT 00203 DEGRAD 00160 DELXY 00350 DISMS 00062 DISPTR 00630 DOCDF 00422 DOLSGN 00214 DONE 00606 DONECK 00753 E 00025 EIG 00350 EMPTY 00747 EQ 00406 EXCLPT 00200 F 00031 FACTC 00075 FACTOR 00544 FIGURE 00300 FINDIT 00437 FINDLF 00413 FINDRT 00506 FIV 00327 FLDOK 00435 FOUR 00324 FSTLFT 00432 F100 00163 G 00035 GETARG 00527 GETXYS 00234 GT 00411 H 00042 HDSH 00526 HOLD1 00327 HOLD2 00330 I 00047 ICHAR 00052 INCR 00072 INDEX 00530 INTEQ 00205 INTFLG 00665 INTPLT 00736 INTST 00000 ISROOM 00632 J 00054 K 00060 KNOWOC 00366 L 00065 LARROW 00173 LBRACK 00157 LEFT 00200 LEFTJS 00331 LETCD1 00232 LETCD2 00233 LETCOD 00231 LETTER 00407 LIMOK 00645 LM 00067 LN 00072 LOCNFL 00254 LOCNPT 00255 LPAR 00241 LT 00404 MAJONL 00322 MAJOR 00053 MAKINT 00321 MBUFLG 00673 MINOR 00056 MORE 00602 MORPEN 00271 MULTI8 00066 M15 00571 M166 00567 M8EX 00020 M8RET 00075 M8SKP 00077 NEGMAJ 00420 NFLD 00247 NIN 00361 NINPLT 00600 NOINT 00600 NOPEN 00732 NOTEQ 00536 NOTFST 00355 NOTHIN 00450 NOTNEG 00042 NOTNG1 00060 NUMENT 00147 NUMSGN 00206 NUMSYM 00177 NUM2 00503 NUM3 00507 NUM5 00515 NXTCHR 00371 NXTLCN 00400 O 00075 OCHAR 00046 OCT8BL 00256 OKVAL 00562 ONCE 00136 ONE 00304 ONEXY 00151 ONQI X 00000 OUTCHK 00722 OUTSUB 00701 P 00102 PASINT 00536 PASNUM 00514 PASSXY 00210 PBFCNT 00050 PBMN 00673 PBMX 00677 PDISMS 00064 PDPPLT F 00764 PDPXR 00655 PENCM 00067 PENOK 00114 PENOP 00650 PENSET 00147 PENUP 00224 PENUPM 00214 PER 00270 PFIGUR 00675 PF2 00114 PF7 00125 PHANG 00665 PI 00232 PICHAR 00667 PLCNM1 00402 PLDBL 00614 PLETPS 00400 PLEXIT 00612 PLOTS 00560 PLOTXR 00011 PLSMNS 00544 PLTRTN 00051 PLTVCT 00677 PLUS 00257 PMBFLG 00054 PNDOWN 00242 POCHAR 00663 POCTBL 00671 PORS 00133 POSMIN 00434 PP7 00412 PRCNT 00222 PREREL 00331 PRERL1 00330 PSPCAS 00661 PSYMB 00410 PTITDN 00067 PTRTBL 00502 PT5 00130 PUBFMN 00056 PUBFMX 00060 P1 00111 P10 00505 P100 00564 P3 00117 P4 00122 P40 00500 P44 00566 P60 00570 RALF V50A 8-APR-92 PAGE 25-3 P7 00230 P77 00501 Q 00105 QM 00413 QPLDBL 00043 QTEMP5 00721 R 00114 RATIO 00324 RATIO1 00325 RATIO2 00326 RBRACK 00164 REALPT 00333 REGPLT 00463 REGSYM 00211 RFUDGE 00336 RIGHT 00223 RPAR 00245 RTCHAR 00444 S 00122 SCANTB 00454 SEMI 00376 SETUP 00030 SETXR 00046 SEV 00344 SIN X 00000 SINANG 00155 SIX 00335 SLASH 00273 SNGQOT 00237 SPAC 00177 SPCAS 00331 STAR 00251 STNOW 00231 STP1 00657 STP2 00660 SYMB 00465 SYMBOL S 00552 SYMBTB S 00673 SYMCNT 00552 SYMDON 00452 SYMENT 00233 SYMSET 00474 SYMST 00506 SYMSTR 00206 SYMTBL 00000 SYM1 00002 T 00131 TERM1 00034 TERM2 00023 THR 00315 TOTSTP 00656 TRYAGN 00273 TWO 00310 TWOTRI 00520 TXTADR 00404 T2 00572 U 00134 UPAROW 00167 UPPEN 00143 USBFMN 00103 USBFMX 00173 USEIT 00534 USSPAC 00557 USZRO 00527 V 00140 VONQI 00026 W 00142 WAIT 00756 WHERE 00521 X 00145 XACT 00100 XCHRPT 00141 XDIFF 00106 XDISMS 00730 XLIMOK 00100 XMAJ 00362 XM8JMP 00102 XOLD 00061 XPT 00031 XREAL 00166 XRPLOT 00020 XR1 00021 XR2 00022 XR4 00024 XR5 00025 XYPLOT S 00621 Y 00150 YACT 00103 YCENT 00473 YCHRPT 00144 YDIFF 00042 YOLD 00064 YPT 00026 YREAL 00171 YS 00471 Z 00154 ZER 00275 ZEROLD 00502 ZORRO 00466 ZROCAS 00436