A large commit.
[pdp8.git] / sw / rescue / lab8e_goettingen / disk2_11 / rkb / paroff / x.ra
diff --git a/sw/rescue/lab8e_goettingen/disk2_11/rkb/paroff/x.ra b/sw/rescue/lab8e_goettingen/disk2_11/rkb/paroff/x.ra
new file mode 100644 (file)
index 0000000..2f194ea
--- /dev/null
@@ -0,0 +1,935 @@
+/      \ eXYPLOT.RA\r
+/\r
+/      PART TWO OF DEC'S XYPLOT DEC-S8-LPLTA-A-LA JULY 1973 M.HURLEY\r
+/      INCLUDED IS THE LATEST UPDATE F4 4.AAAA FROM LIBRARY FORLIB.RL NOV 77\r
+/      COPIED J.J. ANDRES 1.NOV. 1980\r
+/      PLOTS,XYPLOT,FACTOR,WHERE,SYMBOL,SYMB(FOR NUMBER ONLY)\r
+/\r
+/\r
+/      PLOTTER ROUTINES FOR PDP 8\r
+/\r
+/      VER 1.0 1.NOV. 1980  H.A.\r
+/      VER 2.0 12.NOV 1980  H.A.\r
+/      VER 2.1 20.NOV 1980  H.A.  CORRECTS BUG IN SYMBOL CONCERNING #XFCTX,#XFCTY\r
+/      VER 3.0 27.NOV 1980  H.A.  INSERTS SYMBOL (999.,999.,....)\r
+/      VER 3.1 27.NOV.1980  H.A.  CORRECTS PEN UP/DOWN TIMING ERROR\r
+/      VER 3.2 18.JAN.1981  H.A.  CORRECTS WHERE AND OVERLAY PROBLEMS\r
+/      VER 3.3  4.AUG.1982  H.A.  REDUCES NUMBER OF EXTERNAL REFERENCES\r
+/\r
+/      UPDATES:\r
+/      1.      PLEXIT LOCKED OUT THE PLOTTER.\r
+/      2.      PLOTS DIDN'T DROVE PLOTTER TO THE ORIGIN\r
+/      *       #XONCE IS REMOVED, SO #XNTST IS CALLED FROM PLOTS ALL TIMES\r
+/      1-NOV-80 H.A.\r
+/      3.      FACTOR DID NOT WORK CORRECT ALL THE TIMES.\r
+/              FACTOR(1),XYPLOT(1,1),FACTOR(2),XYPLOT(1,1) DID NOT WORK\r
+/      4.      TRUNCATION ERROR IN XYPLOT CAUSED ROUNDING PROBLEMS:\r
+/              XSTEPS=INT(INT(X/#XINCR)*FACTOR)\r
+/      *       FACTOR NOW WORKS CORRECT IN ANY CASE\r
+/      *       FACTOR NOW HAS AN OPTIONAL SECOND PARAMETER. IF BOTH PRESENT\r
+/      *       THEY SPECIFY THE X-FACTOR AND THE Y-FACTOR.\r
+/      *       A NEGATIVE FACTOR IS NO MORE VALID YET. (ERROR WALKBACK)\r
+/      *       ZERO FACTOR DISABLES PLOTTING.\r
+/      *       XYPLOT NOW COMPUTES XSTEPS=INT(X/#XINCR*FACTOR)\r
+/      *       WHERE HAS GOT AN OPTIONAL FOURTH PARAMETER FOR THE Y-FACTOR.\r
+/      *       IF X AND Y FACTOR DO NOT MATCH AND THERE ARE ONLY THREE PARAMETERS\r
+/      *       AN ERROR WALKBACK IS TAKEN.\r
+/      7-NOV-80 H.A.\r
+/      5.      SYMBOL CALLS #XMBTB TO LOAD THE SYMBOL TABLE\r
+/      12-NOV-80 H.A.\r
+/      6.      CALLING SYMBOL/NUMBER WITH X/Y EQUAL TO 999. WILL REPLACE THE\r
+/              999. WITH THE ACTUAL POSITION OF THE PEN. VERY USEFULL IF YOU\r
+/              ARE EDITING AN OUTPUT LINE USEING SOME CALLS TO SYMBOL & NUMBER.\r
+/              IF YOU CALL FACTOR PRIOR TO SYMBOL(999.,....) THEN THE POSITION\r
+/              OF THE PEN IS NEVER CHANGED PRIOR PLOTTING THE SYMBOL. BUT THE\r
+/              FACTOR IS USED WHEN PLOTTING THE SYMBOL.\r
+/      27-NOV-80 H.A.\r
+/      7.      EACH TIME XYPLOT WAS CALLED IT ISSUED A PEN UP/DOWN COMMAND.\r
+/              THIS CAUSED A STEP BY STEP MOVING OF THE PEN ALTHOUGH THE\r
+/              DIRECTION WAS NOT CHANGED. INTERFACE PROBLEM.\r
+/              NOW WE ISSUE THE PEN MOVE COMMAND ONLY WHEN WE WANT TO CHANGE\r
+/              THE DIRECTION OF THE PEN. THIS SPEEDS UP THE PLOTTER!\r
+/      *       NOT VALID PEN VALUES (NOT -3 TO 3) CAUSE #ARGERR WITH X0 =1\r
+/      27-NOV-80 H.A.   A HARD DAY'S NIGHT.... AND MIDNIGHT TOO!\r
+/      8.      REMOVES BUG IN WHERE ROUTINE\r
+/      9.      TOO LARGE DELTA X (DELETA Y) CAUSE #ARGER WITH X0=2 (3)\r
+/      18-JAN-81 H.A.\r
+/\r
+\f/\r
+/      FPP CODE PART CONTAINING PLOTS,PLOT,PLEXIT,WHERE,FACTOR\r
+/      THIS PROGRAM MAY BE PLACED INTO AN OVERLAY.\r
+/      IT REFERENCES THE PROGRAM PDPPLT LOCATED IN FIELD 1.\r
+/\r
+       SECT    #XYPLT\r
+/\r
+/      REFERENCES INTO FRTS (FIELD 0)\r
+/\r
+       EXTERN  #ARGER          / WRONG NUMBER OF PARAMETERS\r
+       EXTERN  #REW\r
+       EXTERN  #WRITO\r
+       EXTERN  #RSVO\r
+       EXTERN  #RENDO\r
+/\r
+/      REFERENCES INTO FIELD 1 (PDPPLT)\r
+/\r
+       EXTERN  #XETXR\r
+       EXTERN  #XETUP\r
+       EXTERN  #XDPXR\r
+       EXTERN  #XATIO\r
+       EXTERN  #XNPLT\r
+       EXTERN  #XCHTP\r
+       EXTERN  #XCHCK\r
+       EXTERN  #XNTST\r
+       EXTERN  #XDNCK\r
+       EXTERN  #XORGX          / LAST ABSOLUTE ORIGIN IN PLOTTER STEPS X (REAL)\r
+#XORGY=        #XORGX+3\r
+#XABSX=        #XORGY+3                / ACTUAL ABSOLUTE X POSITION IN STEPS (REAL)\r
+#XABSY=        #XABSX+3\r
+#XOLDP=        #XABSY+3                / OLD PEN STATUS\r
+#XXOLD=        #XOLDP+3                / OLD XPT WITH EFFECT OF FACTOR\r
+#XYOLD=        #XXOLD+3                / OLD YPT WITH EFFECT OF FACTOR\r
+#XPENC=        #XYOLD+3                / OLD PEN STATUS ( USED BY SYMBOL, NUMBER)\r
+#XINCX=        #XPENC+3                / INCREMENT SIZE FOR X STEP MOTOR OF PLOTTER\r
+#XINCY=        #XINCX+3                / INCREMENT SIZE FOR Y STEP MOTOR OF PLOTTER\r
+#XFCTX=        #XINCY+3                / X - FACTOR\r
+#XFCTY=        #XFCTX+3                / Y - FACTOR\r
+/\r
+/ HERES THE INITIALIZATION ROUTINE \r
+/ STANDARD CALLING SEQUENCE, SHARED BY ALL SUBROUTINES\r
+/\r
+XRPLOT,        0                       / MULTI PURPOSE XRS\r
+X0=    0                       / AT #ARGER X0 HOLDS THE XYPLOT ERROR NUMBER\r
+X1=    1\r
+XR1,   0\r
+XR2,   0\r
+XR3,   0\r
+XR4,   0\r
+XR5,   0\r
+XR6,   0                       / NOT USED\r
+X7=    7\r
+XR7,   0                       / NUMBER OF PARAMETERS AT SUBROUTINE CALL\r
+WBW,   TEXT    #XYPLOT#        / WALK BACK WORD\r
+PLOTXR,        SETX    XRPLOT\r
+       SETB    BPPLOT\r
+BPPLOT,        FNOP\r
+       0\r
+       0\r
+TERM2, F 0.\r
+YPT,   F 0.                    / VALUE ACTUALLY PLOTTED WITH EFFECT OF FACTOR\r
+XPT,   F 0.                    / X VALUE ACTUALLY PLOTTED WITH EFFECT OF FACTOR\r
+TERM1, F 0.\r
+ARG1,  F 0.\r
+ARG2,\r
+YDIFF, F 0.                    / PEN VALUE\r
+       ORG 10*3+BPPLOT\r
+       FNOP\r
+       JA      PLOTXR\r
+       ORG     .+1             / TO MAKE A 3 WORD BASE ENTRY FOR PLTRTN\r
+PLTRTN,        JA      .\r
+MAJOR, F 0.                    / HORIZONTAL AXIS MOVE\r
+MINOR, F 0.                    / DIAGONAL AXIS MOVE\r
+XACT,  F 0.\r
+YACT,  F 0.                    / HOLDS X,Y VALUES TYPED IN\r
+XDIFF, F 0                     / DELTA X\r
+P1,    F 1.\r
+PF2,   F 2.\r
+P3,    F 3.\r
+P4,    F 4.\r
+PF7,   F 7.\r
+PT5,   F .5\r
+PORS,  F 0.                    / =1 IF ENTERED FROM SYMBOL ROUTINE\r
+XCHRPT,        F 0.                    / X,Y VALUES FROM PDP TABLES\r
+YCHRPT,        F 0.\r
+NUMENT,        F 0.                    / INDICATES ENTRY FROM NUMBER SUBROUTINE\r
+COSANG,        F 0.\r
+SINANG,        F 0.\r
+DEGRAD, F 0.017453293          / RADIANS TO DEGREES\r
+F999,  F 999.\r
+F100,  F 100.\r
+XREAL, F 0.                    / FOR ORIGIN AND WHERE RTN\r
+YREAL, F 0.\r
+CENTSY,        F 0.                    / CENTERED SYMBOL INDICATOR\r
+NUMSYM,        F 0.                    / NO. OF CHARACTERS TO PLOT\r
+ANGADJ,        F 0.\r
+P22,   F 18.                   / 22 OCTAL=18 DECIMAL\r
+TWO,   0;2;0                   / CONSTANT\r
+F4095, F 4095.                 / LARGEST NUMBER FITTING INTO 12 BITS PDP 8 WORD\r
+/\r
+/      - - - - - - - - - - - - -\r
+\f      0\r
+SYMSTR,        JA      .               / SYMBOL ENTRY\r
+       JA      SYMST           / NEEDED TO PICK UP 2 WORD ADDRESSES\r
+       0\r
+       BASE    0\r
+/\r
+/      SET UP THE BASE PAGE AND INDEX REGISTERS FOR THE PLOT ROUTINES\r
+/       PLOTS,XYPLOT,WHERE,FACTOR AND SYMBOL\r
+/\r
+/\r
+PLTSTR,        JA      .               / SAVE TWO WORDS FOR RETURN\r
+       STARTD\r
+       FLDA    3*10            / SAVE CALLERS RETURN ARGUMENT LIST\r
+       FSTA    PLTRTN\r
+       FLDA%   0               / COMPUTE THE NUMBER OF PARAMETERS\r
+       FSUB    0\r
+       FSUB#   TWO\r
+       SETX    XRPLOT\r
+       LDX     1,1             / DIVIDE BY TWO\r
+       ALN     1\r
+       FNEG                    / MAKE COUNTER \r
+       ATX     X7              / AND BUMP INTO X7 \r
+       FLDA    0               / POINTER TO THE PARAMETER LIST --> FAC\r
+       SETB    BPPLOT\r
+       BASE    BPPLOT\r
+       FSTA    ARG1            / POINTER TO PARAMETER LIST --> ARG1\r
+       JA      PLTSTR          / 1 --> X1, INDEX TO PARAMETER LIST\r
+\f/\r
+/      XYPLOT SUBROUTINE\r
+/      CALL XYPLOT (XPT,YPT,PENCMD)\r
+/\r
+/      REAL XPT,YPT  AND MUST BE POSSIBLE TO FIX INTO 24 BIT NUMBER\r
+/      INTEGER PENCMD  (-3,-2,2,3 AND NOTHING ELSE)\r
+/\r
+/      ARGERR ERRORS:\r
+/      1       BAD PENCMD\r
+/      2       DELTA X EXCEEDS 4095\r
+/      3       DELTA Y EXCEEDS 4095\r
+/      4       XPT UNNORMALIZED OR TO LARGE ( FOR 24 BIT FRACTIONAL)\r
+/      5       YPT   ""    ""           "\r
+/\r
+/\r
+       ENTRY   XYPLOT\r
+WB0,   TEXT    'XYPLOT'        / INSERT THE CORRECT WALK BACK WORD\r
+XYPLOT,\r
+       FLDA#   WB0             / INSERT THE CORRECT WALK BACK WORD\r
+       FSTA    WBW             / IN FRONT OF THE BASE PAGE\r
+       JSA     PLTSTR          /  SET UP THE BASE PAGE AND X REGISTERS\r
+SYMENT, FLDA%  ARG1,1\r
+       FSTA    XPT\r
+       FLDA%   ARG1,1+\r
+       FSTA    YPT\r
+       FLDA%   ARG1,1+\r
+       FSTA    YDIFF           / VALUE OF PEN\r
+       STARTF\r
+       FLDA%   XPT             / X POINT\r
+       FDIV    #XINCX          / ALL INTERNAL CALCULATIONS DONE IN TERMS OF\r
+                               / PLOTTING INTERVALS, HENCE INTEGERS SO\r
+       FMUL    #XFCTX\r
+/                                SAVE STEPS DONE\r
+       FSTA    XACT            / TEMP SAVE OF FAC\r
+       FADD    #XORGX          /  REMEMBER THE X OFFSET\r
+       FSTA    #XABSX          / ABSOLUTE NUMBER OF STEPS IN REAL\r
+       FLDA    XACT            / RESTORE FAC\r
+/\r
+       JAL     XPTERR          / IF IT IS IMPOSSIBLE TO FIX XPT THEN ERROR OFF\r
+       JA      XPTOK\r
+XPTERR,        LDX     4,X0            /  WITH #ARGER 4\r
+       TRAP4   #ARGER\r
+XPTOK,\r
+       JSA     MAKINT          / INTERGERIZE IT\r
+       FSTA    XACT            / WITH FACTOR\r
+       FSTA    XPT             / WITH EFFECT OF FACTOR\r
+       FLDA%   YPT\r
+       FDIV    #XINCY\r
+       FMUL    #XFCTY\r
+       FSTA    YACT\r
+       FADD    #XORGY          / ADD THE ORIGIN Y\r
+       FSTA    #XABSY          / HERE WE STORE THE ABSOLUTE NUMBER OF STEPS DONE\r
+       FLDA    YACT            / RESTORE FAC\r
+/\r
+       JAL     YPTERR          / IF IT IS IMPOSSIBLE TO FIX YPT THEN WE ERROR OFF\r
+       JA      YPTOK\r
+YPTERR,        LDX     5,X0            /  WITH #ARGERR 5\r
+       TRAP4   #ARGER\r
+YPTOK,\r
+       JSA     MAKINT          / INTERGERIZE IT\r
+       FSTA    YACT\r
+       FSTA    YPT             / WITH EFFECT OF FACTOR\r
+       FLDA%   YDIFF           / 2=DOWN, 3=UP, NEG=NEW ORG\r
+       FSTA    #XPENC\r
+       JGE     MORPEN\r
+       FNEG\r
+MORPEN,        JSA     MAKINT\r
+       SETX    #XETXR\r
+       ATX     0               / ABS VALUE PEN\r
+       XTA     0               / FOR THE FPP SIMULATOR\r
+       SETX    XRPLOT\r
+       FSTA    YDIFF           / SAVE NEW STATUS OF PEN \r
+       FSUB    P3              / PASS ONLY 0-3\r
+       JLE     ALEGAL          / GOOD BOY\r
+       LDX     1,0             / BAD PEN CMD CAUSES XYPLOT ERROR 1\r
+       TRAP4   #ARGERR         / FUCK OFF\r
+ALEGAL,\r
+       FLDA    YDIFF           / RESTORE THE NEW VALUE OF PEN\r
+       FSUB    #XOLDP          / COMPARE WITH THE OLD VALUE\r
+       JEQ     NOCHNG          / IF THEY MATCH THEN GOTO NOCHANGE\r
+       TRAP4   #XETUP          / ELSE SET UP THE NEW PEN\r
+NOCHNG,\r
+       FLDA    YDIFF           / SAVE THE NEW PEN STATUS FOR THE NEXT CALL\r
+       FSTA    #XOLDP\r
+       JA      REALPT\r
+/\r
+/\r
+MAKINT,        JA      .               / FOR ALL THOSE INTEGERIZATIONS REQUIRED\r
+       FADD    PT5             / ROUND THE VALUE\r
+       ALN     0               / GET RID OF FRACTIONAL PART\r
+       FNORM                   / NORMALIZE IT FOR OTHER FPP OPE#XATIONS\r
+       JA      MAKINT\r
+\f/ HERES THE CALCULATING PART OF THE PLOT ROUTINES\r
+PRERL1,        FCLA\r
+PREREL,        JA      .               / RTN USED AS SUBROUTINE\r
+REALPT,        FLDA    XPT             / AND JA'D TO\r
+       FSUB    #XXOLD          / COMPARE NEW X AND OLD\r
+       FSTA    XDIFF\r
+       JGE     ABSDX\r
+       FNEG\r
+ABSDX, FSTA    TERM1           / ABS DELTA X\r
+/\r
+       FSUB    F4095           / IF THE DELTA X DOESN NOT FIT INTO\r
+       JLE     DXOK            /  A 12 BIT PDP 8 WORD THEN TAKE ERROR 2 \r
+       LDX     2,0             / ELSE CONTINUE FI\r
+       TRAP4   #ARGER          / HOME TO CCL\r
+DXOK,                          /\r
+/\r
+       FLDA    YPT\r
+       FSUB    #XYOLD          / SAME FOR Y PNTS\r
+       FSTA    YDIFF\r
+       JLE     DELXY\r
+       FNEG\r
+DELXY, FADDM   TERM1           / DX-DY\r
+/\r
+       FNEG                    / ABS DELTA Y --> FAC\r
+       FSUB    F4095           / IF DELTA Y DOESN'T FIT INTO 12 BITS THEN \r
+       JLE     DYOK            / WE ERROR OFF ELSE CONTINUE FI\r
+       LDX     3,0             / THIS IS ERROR 3\r
+       TRAP4   #ARGER\r
+DYOK,/\r
+       TRAP3   #WRITO\r
+       JA      UNIX80\r
+       JA      FORM1\r
+       FLDA    #XOLDP          / GET ACTUAL PEN STATUS\r
+       FSUB    P3\r
+       JLT     DP0\r
+       FLDA#   SDP             / PEN 2 ( PEN UP)\r
+       JA      DP1\r
+SDP,   TEXT    'P'\r
+SDK,   TEXT    'K'\r
+DP0,   \r
+       FLDA#   SDK\r
+DP1,   TRAP3   #RSVO\r
+       JA      DP4711\r
+       FLDA    #XPENC\r
+       TRAP3   #RSVO\r
+       FLDA    #XORGX\r
+       TRAP3   #RSVO\r
+       FLDA    #XFCTX\r
+       TRAP3   #RSVO\r
+       FLDA    #XINCX\r
+       TRAP3   #RSVO\r
+       FLDA    XACT\r
+       TRAP3   #RSVO\r
+       FLDA    #XORGY\r
+       TRAP3   #RSVO\r
+       FLDA    #XFCTY\r
+       TRAP3   #RSVO\r
+       FLDA    #XINCY\r
+       TRAP3   #RSVO\r
+       FLDA    YACT\r
+       TRAP3   #RSVO\r
+DP4711,/\r
+       FLDA    #XABSY          / ABSOLUTE NUMBER OF STEPS\r
+       TRAP3   #RSVO\r
+       FLDA    #XABSX\r
+       FNEG\r
+       TRAP3   #RSVO\r
+       TRAP3   #RENDO\r
+       JA      NX1\r
+/FORM1,        TEXT    #(1X,A1,A6,2(I7,2F9.3,I8),2I6)#\r
+FORM1, TEXT    #(1X,A1,2I6)#\r
+NX1,\r
+/\r
+       FLDA    TERM1           / DETERMINE OCTANT + MAJOR AXIS\r
+       JGT     XMAJ\r
+       FLDA    YDIFF           / Y AXIS IS MAJOR\r
+       FSTA    MAJOR\r
+       FLDA    XDIFF\r
+       FSTA    MINOR\r
+       JA      KNOWOC\r
+XMAJ,  FLDA    XDIFF           / X AXIS MAJOR\r
+       FSTA    MAJOR\r
+       FLDA    YDIFF\r
+       FSTA    MINOR\r
+KNOWOC,        LDX     2,1             / 2*OCTANT VALUE COLLECTED IN XR1\r
+/ USES A SPECIAL (NON SEQUENTIAL) ORDERING\r
+       FLDA    XDIFF\r
+       JLE     .+4\r
+       ADDX    10,1\r
+       FLDA    YDIFF\r
+       JLE     .+4\r
+       ADDX    4,1\r
+       FLDA    TERM1\r
+       JLE     .+4\r
+       ADDX    2,1             / KEEP IT IN XR1\r
+       LDX     0,2\r
+       FLDA    MAJOR           / GET MAJOR MOVE\r
+       JGT     POSMAJ          / NEED AS ABS. VALUE\r
+       JEQ     NOTHIN          / IF NO MAJOR MOVES, THEN NO MOVES\r
+       FNEG\r
+       FSTA    MAJOR           / NO ABS. VALUE\r
+POSMAJ,        JSA     MAKINT\r
+       SETX    #XDPXR\r
+       ATX     1               / PASS THIS TO PDP CODE\r
+       SETX    XRPLOT\r
+/ USE 2 WORD #XATIO IN PDP CODE TO DET SEQ OF MOVES\r
+       FLDA    MINOR\r
+       JGT     POSMIN          / ABS VALUE\r
+       JEQ     ZROCAS\r
+       FNEG\r
+POSMIN,        FDIV    MAJOR           / FORM #XATIO OF MINOR TO MAJOR MOVES\r
+       ALN     2\r
+ZROCAS,        FSTA    #XATIO          / DOWN TO PDP CODE\r
+       XTA     1\r
+       SETX    #XDPXR          / GET 2*OCTATNT\r
+       ATX     0\r
+       SETX    XRPLOT\r
+/      TRAP4   #XNPLT/ CXCX\r
+\fNOTHIN,       FLDA    PORS\r
+       JEQ     REGPLT          / 0 MEANS WAS FROM XYPLOT\r
+       JLT     SYMSET          / WAS A MOVE IN SYMBOL\r
+       FCLA                    / IS FIRST MOVE IN SYMBOL (0 ORG)\r
+       FSTA    #XXOLD\r
+       FSTA    #XYOLD\r
+       FSTA    PORS\r
+       JA      SYMSTR\r
+REGPLT,        FLDA    #XPENC\r
+       JLT     ZEROLD          / NEQ MEANS ZERO THE ORG\r
+/ SET X AND Y FOR NEXT MOVE TO START AT END OF THIS MOVE\r
+       FLDA    XACT\r
+       FSTA    #XXOLD\r
+       FLDA    YACT\r
+       FSTA    #XYOLD\r
+       JA      PLTRTN\r
+SYMSET,        FLDA    XPT             / CONT FROM CURRENT POINT\r
+       FSTA    #XXOLD\r
+       FLDA    YPT\r
+       FSTA    #XYOLD\r
+       JA      PRERL1\r
+/\r
+/      NEGATIVE PEN STATUS, SO WE ZERO THE ORIGIN\r
+/\r
+ZEROLD,\r
+       FLDA    #XABSX          / SAVE THE ACTUAL PEN POSITION (MOTOR STEPS)\r
+       FSTA    #XORGX  \r
+       FLDA    #XABSY\r
+       FSTA    #XORGY\r
+       FCLA\r
+       FSTA    #XXOLD\r
+       FSTA    #XYOLD\r
+       JA      PLTRTN\r
+       ENTRY   SYMSTR\r
+SYMST,\r
+       FLDA    P1              / ENTERED WITH 36 BIT MODE TURNED ON\r
+       FSTA    PORS            / SET THE FROM SYMBOL FLAG\r
+       STARTD                  / USED BY SYMBOL FOR ORIGIN PLOT\r
+       FLDA    SYMSTR          / GET START OF ARG CHAIN\r
+       FSTA    ARG1\r
+       LDX     1,1\r
+       JA      SYMENT\r
+\f      ENTRY   WHERE           / WITHOUT EFFECT OF FACTOR\r
+WB1,   TEXT    'WHERE '        / THE WALK BACK WORD\r
+WHERE,\r
+       FLDA#   WB1\r
+       FSTA    WBW\r
+       JSA     PLTSTR\r
+       JXN     WH0,7           / NO PARAMETERS AT ALL THEN \r
+       TRAP4   #ARGER          /  ABORT THE USER PROGRAM\r
+/      WARNING: WHERE RETURNS A WRONG RESULT IF YOU CALL FACTOR PRIOR \r
+/       TO THE WHERE ROUTINE WITHOUT PLOTTING WITH XYPLOT.\r
+WH0,\r
+       FLDA%   ARG1,1\r
+       FSTA    TERM1           / ADDRESS OF X (FIRST PARAMETER)\r
+       FLDA%   ARG1,1+\r
+       FSTA    YDIFF           / SAVE ADDRESS OF Y (SECOND PARAMETER)\r
+       STARTF\r
+       FLDA    #XXOLD\r
+       FMUL    #XINCX\r
+       FDIV    #XFCTX          / WHERE RETURNS X WITHOUT EFFECT OF FACTOR\r
+       FSTA%   TERM1\r
+       JXN     WH1,7+          / IF ONLY ONE PARAMETER, THEN ABORT USER\r
+       TRAP4   #ARGER\r
+WH1,\r
+       FLDA    #XYOLD\r
+       FMUL    #XINCY\r
+       FDIV    #XFCTY          / RETURNED WITHOUT EFFECT OF FACTOR\r
+       FSTA%   YDIFF           / SEND BACK THE VALUES\r
+       JXN     WH2,7+          / IF ONLY TWO PARAMETERS, THEN ABORT USER\r
+       TRAP4   #ARGER\r
+WH2,\r
+       STARTD\r
+       FLDA%   ARG1,1+\r
+       FSTA    ARG2            / ADR. OF X -FACTOR (THIRD PARAMETER)\r
+       FLDA%   ARG1,1+\r
+       FSTA    ARG1            / ADR. OF Y -FACTOR (FOURTH PARAMETER) --> ARG1\r
+       STARTF\r
+       FLDA    #XFCTX          / IF THE X AND Y FACTOR MATCH THEN\r
+       FSUB    #XFCTY\r
+       JNE     WHXYF           / WE NEED THREE PARAMETERS ONLY, ELSE WE GO WHXYF\r
+       FLDA    #XFCTX\r
+       FSTA%   ARG2\r
+       JXN     PLTRTN,X7+      / IF THERE ARE ONLY THREE PARAMETERS THEN RETURN\r
+       FSTA%   ARG1            / ELSE INSERT FACTOR INTO FOURTH PARAMETER AND\r
+       JA      PLTRTN          / RETURN\r
+WHXYF,                         / WE REQUIRE X AND Y FACTOR PARAMETERS\r
+       FLDA    #XFCTX\r
+       FSTA%   ARG2            / INSERT THE X FACTOR INTO THE OUTPUT\r
+       JXN     WH3,X7+\r
+       TRAP4   #ARGER          / SORRY, BUT THERE ARE NOT ENOUGH ARGUMENTS\r
+WH3,\r
+       FLDA    #XFCTY\r
+       FSTA%   ARG1\r
+       JA      PLTRTN\r
+       ENTRY   FACTOR          / RESET FACTOR VALUE\r
+WB2,   TEXT    'FACTOR'\r
+FACTOR,\r
+       FLDA#   WB2\r
+       FSTA    WBW\r
+       JSA     PLTSTR\r
+       JXN     FA0,7           / IF THERE ARE NO PARAMETERS AT ALL THEN\r
+       TRAP4   #ARGER          / ABORT USER PROGRAM\r
+FA0,\r
+       FLDA%   ARG1,1\r
+       FSTA    ARG2\r
+       STARTF\r
+       FLDA%   ARG2\r
+       JGE     FA1             / IF NEGATIVE FACTOR THEN \r
+       TRAP4   #ARGER          /  ABORT USER PROGRAM ELSE\r
+FA1,\r
+       FSTA    #XFCTX          / STORE X AND Y FACTOR\r
+       FSTA    #XFCTY          / ONE PARAMETER MEANS X&Y GET THE SAME FACTOR\r
+       JXN     FA3,7+\r
+       JA      FACRTN\r
+FA3,\r
+       STARTD                  / TWO PARAMETERS, GET THE Y FACTOR\r
+       FLDA%   ARG1,1+\r
+       FSTA    ARG2\r
+       STARTF\r
+       FLDA%   ARG2\r
+       JGE     FA2             / IF NEGATIVE FACTOR THEN \r
+       TRAP4   #ARGER          /  ABORT USER PROGRAM\r
+FA2,\r
+       FSTA    #XFCTY\r
+FACRTN,\r
+       STARTF\r
+       JA      PLTRTN\r
+\f/ MUST DO A PLOTS AS FIRST ROUTINE IN ANY PLOTTING SEQUENCE\r
+/ USER SPECIFIES INCREMENT AND MACHINE TYPE (0=8/E, 1=12,8/I,8/L)\r
+       ENTRY   PLOTS\r
+WB3,   TEXT    'PLOTS '\r
+/\r
+/      CONSTANTS USED IN PLOTS\r
+/\r
+INXYPL,        F       0.0095          / INCREMENT SIZE XY PLOTTER\r
+INX80Y,        F       0.02648         / INCREMENT SIZE X80-SP X DIRECTION (96 CHAR. LINE)\r
+INX80X,        F       0.03968         / INCREMENT SIZE X80-SP Y DIRECTION (6 STEPS PER LINE)\r
+FORM2, TEXT    "(' [STP 6'/' MC1'/' P 0 0')"\r
+FORM3, TEXT    "(' STP 8]')"\r
+UNIX80,                F       2.\r
+/\r
+/\r
+PLOTS,                         / CALL PLOTS (PLOTTER TYPE, MACHINE TYPE)\r
+/\r
+/      INTEGER PLOTTER TYPE:  1 XY PLOTTER\r
+/                             2 X80-SP PRINTER PLOTTER\r
+/                             3 BOTH   (DOESN'T WORK TODAY)\r
+/      INTEGER MACHINE TYPE:  0 PDP 8/E\r
+/                             1 OTHER PDP 8 OR 12\r
+/\r
+\r
+       FLDA#   WB3\r
+       FSTA    WBW\r
+       JSA     PLTSTR\r
+       FLDA%   ARG1,1\r
+       FSTA    XPT\r
+       FLDA%   ARG1,1+\r
+       FSTA    ARG1\r
+       STARTF                  / THIS ROUTINE SETS UP A LOT OF CONSTANTS\r
+       FLDA%   XPT             / LOAD FIRST ARGUMENT (PLOTTER TYPE ) --> FAC\r
+/      JLE     PLTSER          / WRONG INPUT PARAMETER, ERROR OFF\r
+       FSUB    P1\r
+       JGT     PLS1\r
+       FLDA    INXYPL          / XY PLOTTER INCREMENT\r
+       FSTA    #XINCX\r
+       FSTA    #XINCY\r
+       JA      MACHIN\r
+PLS1,  FSUB    P1\r
+/      JGT     PLS2            / BOTH PLOTTER TYPES\r
+       FLDA    INX80X\r
+       FSTA    #XINCX          / X80 SP PRINTER PLOTTER\r
+       FLDA    INX80Y\r
+       FSTA    #XINCY\r
+       TRAP3   #WRITO\r
+       JA      UNIX80\r
+       JA      FORM2           / ' [STP6'/' MC1'/' P 0 0'\r
+       TRAP3   #RENDO\r
+MACHIN,\r
+       FLDA%   ARG1\r
+       JEQ     EIGHTE\r
+       FLDA    P22             / SET MATCHTP TO 22 IF NON-8/E\r
+EIGHTE,        SETX    #XCHTP\r
+       ATX     0               / 0=8/E, 022=12,8/I,8/L\r
+       XTA     0\r
+       SETX    #XCHCK          / FOR INITIALISATION CHECK\r
+       ATX     0\r
+       SETX    XRPLOT\r
+       TRAP4   #XNTST\r
+       FLDA    P1\r
+       FSTA    #XFCTX          / FACTOR=1 INITIALLY\r
+       FSTA    #XFCTY\r
+       FCLA\r
+       FSTA    #XOLDP          / AND REALLY MOVE IT!\r
+       FSTA    #XPENC          / SO WILL DO FIRST PEN MOVEMENT\r
+       FSTA    #XXOLD\r
+       FSTA    #XYOLD\r
+       FSTA    #XORGX\r
+       FSTA    #XORGY\r
+       FSTA    PORS\r
+       JA      PLTRTN\r
+       ENTRY   PLEXIT          / BE SHURE ALL DONE\r
+WB4,   TEXT    'PLEXIT'\r
+PLEXIT,\r
+       FLDA#   WB4\r
+       FSTA    WBW\r
+       JSA     PLTSTR\r
+       STARTF\r
+       TRAP3   #WRITO\r
+       JA      UNIX80\r
+       JA      FORM3\r
+       TRAP3   #RENDO\r
+       TRAP3   #REW            / OUTPUT REMAINDER OF BUFFER AND RESET OUTPUT (NOT GOOD FOR FILE STRUCTURED DEVICES!!!!!)\r
+/      TRAP4   #XDNCK\r
+       JA      PLTRTN\r
+\f      SECT    #SYMBL\r
+       EXTERN  SIN\r
+       EXTERN  COS\r
+       EXTERN  #XMBTB          / HERE STARTS THE SYMBOL TABLE\r
+/\r
+/      EXTERNAL REFERENCES INTO FIELD 1 (PDPPLT)\r
+/\r
+       EXTERN  #XTXAD\r
+       EXTERN  #XLTCD\r
+       EXTERN  #XPNOP\r
+       EXTERN  #XLEFT\r
+       EXTERN  #XRGHT\r
+       EXTERN  #XNDLF\r
+       EXTERN  #XNDRT\r
+       EXTERN  #XPSNM\r
+       EXTERN  #XPSIN\r
+/\r
+/\r
+       ENTRY   SYMBOL\r
+WB5,   TEXT    'SYMBOL'\r
+SYMBOL,\r
+       FLDA#   WB5\r
+       FSTA    WBW\r
+       JSA     PLTSTR\r
+       JSR     #XMBTB          / LOAD THE SYMBOL TABLE ( SYMBTB )\r
+SYM1,  FLDA%   ARG1,1\r
+       FSTA    XPT             / X POINT\r
+       FLDA%   ARG1,1+\r
+       FSTA    YPT             / Y VALUE\r
+       FLDA%   ARG1,1+\r
+       FSTA    YDIFF           / HEIGHT\r
+       FLDA%   ARG1,1+\r
+       FSTA    TERM1           / TEXT\r
+       FLDA%   ARG1,1+\r
+       FSTA    TERM2           / ANGLE\r
+       FLDA%   ARG1,1+\r
+       FSTA    ARG1            / NUMBER CHARS.\r
+       STARTF\r
+       FLDA%   TERM2\r
+       FMUL    DEGRAD          / CONVERT TO RADIANS\r
+       FSTA    XCHRPT          / THEN DONT NEED SIND\r
+       FLDA%   XPT\r
+       FSTA    COSANG          / VALUE OF X\r
+       FSUB    F999            / IF X NEQ 999 THEN \r
+       JNE     SY0             / WE USE THE X VALUE SPECIFIED ELSE\r
+       FLDA    #XXOLD          /  WE START WITH THE OLD VALUE\r
+       FMUL    #XINCX          / THIS WILL CAUSE SOME TRUNCATION ERROR\r
+       FDIV    #XFCTX          / IN XYPLOT ROUTINE BUT THE ERROR IS SMALL\r
+       FSTA    COSANG          / AND WE HOPE FAC > 0 BUT THIS MUST NOT BE SO!\r
+SY0,\r
+       FLDA%   YPT\r
+       FSTA    SINANG\r
+       FSUB    F999            / IF Y NEQ 999 THEN\r
+       JNE     SY1             / WE USE THE Y VALUE SPECIFIED ELSE\r
+       FLDA    #XYOLD          /  WE START WITH THE OLD Y VALUE\r
+       FMUL    #XINCY          / THIS CAUSES SOME TRUNCATION ERRORS\r
+       FDIV    #XFCTY\r
+       FSTA    SINANG\r
+SY1,\r
+       FCLA\r
+       FSTA    #XTXAD\r
+       FSTA    #XPENC          / SO ALWAYS DOES INITIAL PEN U/D\r
+       FSTA    CENTSY\r
+       FLDA    TERM1           / GET TEXT ADDRESS\r
+       FSTA    #XTXAD          / PUT IT DOWN IN PDP PART\r
+\f      FLDA%   YDIFF           / ASSUME ITS A REGULAR\r
+       JGE     NOTNEG          / NEGATIVE SIZE IS NOT NICE\r
+       FNEG\r
+NOTNEG,        FDIV    PF7             / ADJUST LATER IF A CENT\r
+       FSTA    ANGADJ\r
+       FLDA%   ARG1            / SHOWNS NUM. CHARS + PEN STATUS\r
+       FSTA    NUMSYM\r
+       JGE     REGSYM          / GT OR =0 IS REG SYM\r
+       FLDA%   TERM1           / CHECK FOR REG CHAR PASSED\r
+       FSUB    F100            / AS AN INTEGER EQUIV.\r
+       JLT     INTEQ           / ITS A INTEGER EQUIV\r
+       FLDA%   YDIFF           / CENTERED SYMBOL\r
+       JGE     NOTNG1\r
+       FNEG\r
+NOTNG1,        FDIV    P4\r
+       FSTA    ANGADJ\r
+       FLDA    NUMSYM          / -1=PEN UP, -2=PEN DOWN (CNTRD ONLY)\r
+       FADD    P1\r
+       JGE     UPPEN           / MOVE WITH PEN UP\r
+       FSTA    CENTSY          / NEG MEANS DOWN FROM THE START\r
+PTITON,        FLDA    PF2\r
+CPEN,  FSTA    YCHRPT          / =-2 FOR DOWN (CENT. + INTEQ ONLY)\r
+                               / -3 FOR UP FOR ALL SYMBOLS + INTEQ\r
+       JSA     SYMSTR          / PLOT ORIGIN\r
+       JA      .+10\r
+       JA      COSANG\r
+       JA      SINANG\r
+       JA      YCHRPT\r
+       FLDA    XPT\r
+       FMUL    #XFCTX\r
+       FSTA    XREAL           / KEEP TRACK OF PASSED VALUES\r
+       FLDA    YPT\r
+       FMUL    #XFCTY\r
+       FSTA    YREAL\r
+       JSA     PENUP\r
+       FLDA    CENTSY\r
+       JLE     PENOK\r
+       JSA     PNDOWN          / PUT PEN DOWN NOW (CENT ONLY)\r
+PENOK, JSR     SIN\r
+       JA      .+4\r
+       JA      XCHRPT\r
+       FMUL    ANGADJ\r
+       FSTA    SINANG          / SAVE SIN+HGT, USE FOR ALL VALUES\r
+       JSR     COS\r
+       JA      .+4\r
+       JA      XCHRPT\r
+       FMUL    ANGADJ\r
+       FSTA    COSANG          / COS(ANGLE)+HGT (IN INCREMENTS NOW)\r
+       LDX     0,4             / ZERO STEP COUNT\r
+       FLDA    NUMENT\r
+       JGT     NUM2            / JUMP IF FROM NUMBER\r
+       JA      FSTLFT\r
+UPPEN, FLDA    P3              / \r
+       FSTA    CENTSY          / PUT PEN DOWN AFTER INITIAL MOVE\r
+       JA      CPEN            / MOVE WITH PEN UP\r
+\fPENSET,       JSA     PNDOWN\r
+ONEXY, JA      .\r
+       SETX    #XLTCD\r
+       XTA     2               / SET Y\r
+       FSTA    YCHRPT\r
+       XTA     1               / GET X\r
+       FSTA    XCHRPT          / GET FIRST MOVE\r
+       SETX    XRPLOT\r
+       FSUB    PF7             / 7,0=PEN UP, 7,7=END\r
+       JEQ     PENUPM\r
+       FLDA    CENTSY\r
+       JEQ     CALALL          / CENTEREDS REQUIRE MODIFIED ORIGIN\r
+       FLDA    PF2\r
+       FNEG\r
+       FADDM   XCHRPT\r
+       FADDM   YCHRPT\r
+CALALL,        JSA     CALANG\r
+       JXN     PENSET,5        / PUT PEN BACK DOWN IF NEG\r
+       JA      ONEXY\r
+INTEQ, FLDA    NUMSYM          / CHECK ON PEN\r
+       FADD    P1\r
+       JLT     PTITON\r
+REGSYM,        FLDA    P3\r
+       JA      CPEN\r
+PENUPM,        JSA     PENUP\r
+       FLDA    YCHRPT          / CHECK FOR 7,7 END\r
+       FSUB    PF7\r
+       JEQ     NXTCHR          / JUMP IF END OF CHARACTER\r
+       JA      ONEXY           / ON TO NEXT PAIR\r
+PENUP, JA      .\r
+       LDX     1,5             / SET FOR PEN UP\r
+       SETX    #XDPXR\r
+       LDX     0,0             / PASS A ZERO FOR UP\r
+       SETX    XRPLOT\r
+/      TRAP4   #XPNOP\r
+       FLDA#   SDP             / 'P' PEN UP\r
+       FSTA    SYMPEN\r
+       JA      PENUP\r
+PNDOWN,        JA      .\r
+       SETX    #XDPXR\r
+       LDX     1,0             / PASS A ONE FOR DOWN\r
+       SETX    XRPLOT\r
+/      TRAP4   #XPNOP\r
+       FLDA#   SDK             / 'K' PEN DOWN\r
+       FSTA    SYMPEN\r
+       LDX     0,5\r
+       JA      PNDOWN\r
+\fSYMPEN,       F 0.0\r
+CALANG,        JA      .\r
+       FLDA    YCHRPT\r
+       FDIV    #XINCY\r
+       FSTA    YCHRPT          / Y MOVE AS STEPS (UNITERGERIZED)\r
+       FMUL    SINANG\r
+       FNEG\r
+       FSTA    TERM1           / =-SINA*Y\r
+       FLDA    XCHRPT\r
+       FDIV    #XINCX\r
+       FSTA    XCHRPT\r
+       FMUL    COSANG\r
+       FADD    TERM1\r
+       FMUL    #XFCTX\r
+       JSA     MAKINT\r
+       FSTA    XACT            / FOR AT END OF TEXT\r
+       FSTA    XPT             / X*COSA+OLDX-SINA*Y\r
+/ REQUIRES AN OLDX+OLDY TERM, BUT I DO THIS ALL REL TO A\r
+/ LOGICAL 0,0 FOR EACH CHAR, SO I #XLEFT THEM OUT.\r
+       FLDA    YCHRPT\r
+       FMUL    COSANG\r
+       FSTA    TERM1           / COSA*Y\r
+       FLDA    XCHRPT\r
+       FMUL    SINANG\r
+       FADD    TERM1\r
+       FMUL    #XFCTY\r
+       JSA     MAKINT\r
+       FSTA    YACT\r
+       FSTA    YPT             / NEWX*SINA*OLDY*COSA*Y\r
+       FLDA    P1\r
+       FSTA    #XPENC          / USE SAME ORIGIN THROUOUT THE LETTER\r
+       FNEG\r
+       FSTA    PORS\r
+/      JSA     PREREL          / PEN MUST BE IN NEC POS BY NOW\r
+       TRAP3   #WRITO\r
+       JA      UNIX80\r
+       JA      FORM1\r
+       FLDA    SYMPEN\r
+       TRAP3   #RSVO\r
+       FLDA    YREAL\r
+       FDIV    #XFCTY\r
+       FADD    YPT\r
+       FADD    #XORGY\r
+       TRAP3   #RSVO\r
+       FLDA    XREAL\r
+       FDIV    #XFCTX\r
+       FADD    XPT\r
+       FADD    #XORGX\r
+       FNEG\r
+       TRAP3   #RSVO\r
+       TRAP3   #RENDO\r
+       JA      CALANG\r
+\fLEFTJS,       XTA     4               / NUM OF MOVES\r
+       SETX    #XLTCD\r
+       ATX     0               / PASS NUMBER OF STEPS INTO LETTER\r
+       SETX    XRPLOT\r
+       TRAP4   #XLEFT          / RETURN WITH A X,Y PAIR\r
+       JSA     ONEXY\r
+       XTA     4\r
+       SETX    #XLTCD\r
+       ATX     0               / STEP COUNT\r
+       SETX    XRPLOT\r
+       JNE     NOTFST          / CHANGE IF BEFORE FIRST MOVE OF CHARACTER\r
+       JSA     PNDOWN          / PUT PEN DOWN NOW\r
+NOTFST,        TRAP4   #XRGHT          / SET NEXT XY PAIR\r
+       JSA     ONEXY\r
+       ADDX    1,4             / UPDATE COUNT\r
+       JA      LEFTJS          / 77 AT END OF CHAR USED TO DET END\r
+\fCENTEX,       JSA     PENUP\r
+       JA      CENTOO\r
+NXTCHR,        FLDA    CENTSY\r
+       JNE     CENTEX          / LEAVE PEN AT CENTER FOR CENTS ONLY\r
+       FSTA    YCHRPT\r
+       FLDA    PF7\r
+       FSTA    XCHRPT          / MOVE PEN TO 7,0 FOR REG CHARS\r
+       JSA     CALANG          / PLOT IT\r
+       FLDA    XACT            / UPDATE COLLECTIVE ENDING X VALUE\r
+       FMUL    #XFCTX          / WITH EFFECT OF FACTOR\r
+       FADDM   XREAL           / ALSO WITH EFFECT OF FACTOR\r
+       FLDA    YACT            / UPDATE COLLECTIVE ENDING Y VALUE\r
+       FMUL    #XFCTY          / WITH EFFECT OF FACTOR\r
+       FADDM   YREAL\r
+CENTOO,        LDX     0,4             / ZERO STEP NUM WITHIN CHAR\r
+       FCLA\r
+       FSTA    #XXOLD\r
+       FSTA    #XYOLD\r
+       FLDA    P1\r
+       FNEG\r
+       FADD    NUMSYM          / UPDATE COUNTER\r
+       JLE     SYMDON          / NO MORE\r
+       FSTA    NUMSYM          / MORE, SAVE COUNT\r
+       FLDA    NUMENT\r
+       JGT     NUM3            / EXIT FOR NUM SUBR\r
+       FCLA\r
+       JXN     RTCHAR,3        / 1=CHAR IS #XRGHT SIX BITS\r
+FSTLFT,        LDX     1,3             / POINT TO #XRGHT 6 WHEN TIME FOR NEXT CHAR\r
+       FLDA    NUMSYM\r
+       JLT     NUM5            / JUMP IF CENTERED SYM OR INTEQ\r
+/ CENTEREDS + INTEQ EQUIV PASSING  3 WORD VALUE IN NUM5\r
+/ REG SYM USES PDP ROUTINE TO GET ONE WORD OF LIST\r
+       FCLA\r
+       TRAP4   #XNDLF\r
+       JA      LEFTJS          / GO PLOT THE ACTUAL CHAR\r
+RTCHAR,        LDX     0,3             / POINT TO #XLEFT 6 BITS FOR NEXT TIME\r
+       TRAP4   #XNDRT\r
+       JA      LEFTJS\r
+SYMDON,        FCLA\r
+       FSTA    PORS\r
+       FSTA    NUMENT\r
+       FLDA    XREAL           / UPDATES ORG X VALUE\r
+       FDIV    #XFCTX\r
+       JSA     MAKINT\r
+       FSTA    #XXOLD\r
+       FLDA    YREAL           / UPDATES ORG Y VALUE\r
+       FDIV    #XFCTY\r
+       JSA     MAKINT\r
+       FSTA    #XYOLD\r
+       JA      PLTRTN          / NOW CAN CONTINUE PLOT FROM HERE\r
+\f/     SPECIAL ENTRY FOR NUMBER SUBROUTINE\r
+       ENTRY   SYMB\r
+WB6,   TEXT    'SYMB  '\r
+SYMB,\r
+       FLDA#   WB6\r
+       FSTA    WBW\r
+       JSA     PLTSTR          / SPECIAL ENTRY FOR NUMBER SUBROUTINE\r
+       JSR     #XMBTB          / LOAD THE SYMBOL TABLE (SYMBTB)\r
+       STARTF\r
+       FLDA    P1\r
+       FSTA    NUMENT\r
+       STARTD\r
+       JA      SYM1\r
+NUM2,  SETX    NUMENT          / FOR NUMBER SUBROUTINE ONLY\r
+                               / HERE ONLY FOR FIRST NUMBER OF STRING\r
+       LDX     -1,2\r
+NUM3,  JSA     GETARG          / FOR SECOND AND LATER NUMBERS\r
+       TRAP4   #XPSNM\r
+       JA      LEFTJS\r
+NUM5,  SETX    NUMENT          / FOR INTEQ + CENETEREDS\r
+       LDX     -1,2\r
+       JSA     GETARG\r
+       TRAP4   #XPSIN\r
+       JA      LEFTJS\r
+GETARG,        JA      .\r
+       SETX    NUMENT          / USED FOR MORE THAN ONE CHARACTER\r
+       STARTD\r
+       FLDA    #XTXAD+1        / CENTEREDS SYMBOLS AND NUM SUBROUTINE\r
+/ PASS VALUES AS THREE WORDS\r
+       FSTA    ARG1\r
+       STARTF\r
+       FLDA%   ARG1,2+         / PASS A NUMBER\r
+       SETX    #XTXAD\r
+       JSA     MAKINT\r
+       ATX     0\r
+       SETX    XRPLOT\r
+       JA      GETARG\r
+       END\r
+
+\1a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
\ No newline at end of file