ASMB,R,L,X   ** RT/DOS PLOT PACKAGE - "PLOT" ** 
      HED  ** RT/DOS PLOT PACKAGE - "PLOT" ** 
* 
* 
      NAM PLOT,7 760218 
* 
* 
      ENT WHERE,FACT,PLOTB,PLOT,PLTLU 
* 
* 
      EXT .ENTR,EXEC,IFIX 
      EXT FLOAT 
* 
*  THIS IS THE CENTRAL PROGRAM IN THE 
* HP  REAL-TIME/DISC OPERATING SYSTEM 
* PLOTTER PACKAGE.
* 
* 
***********   *** *** *** 
* 
* 
*  THERE ARE FIVE SECTIONS TO THE PLOT PROGRAM: 
* 
*      1-FACT; WHICH ESTABLISHES SCALING FACTOR OF PLOT 
*      2-PLOTB; ALLOWS THE USER TO ESTABLISH AN EXTERNAL
*               BUFFER AREA.
*      3-PLOT; CONVERTS THE X,Y AND PEN DATA TO PLOT
*              COMMANDS.
*      4-WHERE; ESTABLISHES WHERE PEN IS CURRENTLY. 
*      5-PLTLU; ALLOWS THE USER TO DECLARE THE
*               LOGICAL UNIT NUMBER OF THE
*               PLOTTER UNIT. THIS ALLOWS THE 
*               USE OF MORE THAN ONE PLOTTER. 
* 
* 
* 
* 
      SKP 
**********  ***  ***  *** 
* 
* 
**** ** WHERE ****
* 
*  THE -WHERE- CALL ALLOWS THE USER TO DETERMINE THE
*  CURRENT PLOTTER PEN POSITION.  THE NUMBERS PROVIDED
*  TO THE USER WILL BE IN FLOATING POINT. 
* 
* *  - FORTRAN LINKAGE -
* 
*         CALL WHERE(X,Y) 
* 
*               X  SPECIFIES THE 2 WORD BUFFER FOR X. 
*               Y  SPECIFIES THE 2 WORD BUFFER FOR Y. 
* 
* 
* * 
* 
* *  -  CALLING SEQUENCE -
* 
*           JSB WHERE    WHERE ROUTINE ORIGIN 
*           DEF *+3      RETURN 
*           DEF XC       LOCATION OF USER X 2 WD BUFFER 
*           DEF YC       LOCATION OF USER Y 2 WD BUFFER 
* 
* 
** ** ** ** **
* 
* 
XC    OCT 0         ADDRESS OF 2 WD BUFFER FOR X
YC    OCT 0         ADDRESS OF 2 WD BUFFER FOR Y
* 
* 
WHERE NOP 
      JSB .ENTR 
      DEF WHERE-2 
      LDA XPEN      FETCH CURRENT  X  POSITION
      JSB FLOAT     CONVERT FROM FIXED TO FLOATING
      FDV CFAC      DIVIDE BY 100 (CONVERSION FACTOR) 
      DST XC,I      STORE IN USERS BUFFER 
* 
      LDA YPEN      FETCH CURRENT  Y  POSITION
      JSB FLOAT     CONVERT FROM FIXED TO FLOATING
      FDV CFAC      DIVIDE BY 100 (CONVERSION FACTOR) 
      DST YC,I      STORE IN USERS BUFFER 
      JMP WHERE,I   EXIT
* 
* 
* 
* 
      SKP 
* 
***********   ***** 
* 
* 
***** FACT **** 
* 
* 
*  THE -FACT- CALL ALLOWS THE USER TO VARY THE SCALING
*  FACTOR USED FOR EACH PLOT.  THE SCALING FACTOR WILL
*  BE INITIALIZED AT  "1". THE FACTOR IS
*  MULTIPLIED BY  100.0 FOR USE WITH THE
*  .01 INCH INCREMENT PLOTTER.
* 
* *  - FORTRAN LINKAGE -
* 
*          CALL FACT(N) 
* 
*            N SPECIFIES THE DESIRED SCALING FACTOR 
* 
* * 
* 
* *  - CALLING SEQUENCE - 
* 
*          JSB FACT      FACTOR ROUTINE ORIGIN
*          DEF *+2       RETURN 
*          DEF FCT       LOCATION OF FACTOR MODIFIER
* 
* 
** ** ** ** ** ** 
* 
* 
* 
FCT   OCT 0         ADDRESS OF 2 WD FP FACTOR 
FACT  NOP 
      JSB .ENTR 
      DEF FACT-1
      DLD FCT,I 
      FMP F100
      DST CFAC
      JMP FACT,I
* 
CFAC  DEC 100.0 
F100  DEC 100.0 
* 
* 
      SKP 
***********   ***** 
* 
* 
***** PLOTB ****
* 
* 
* 
*  THE -PLOTB- CALL ALLOWS THE USER TO ESTABLISH A
*  BUFFER AREA EXTERNAL TO THE PLOT ROUTINE. IF NO
*  EXTERNAL BUFFER IS ESTABLISHED, A TEN WORD PLOT
*  BUFFER WILL BE USED. A -0- BUFFER ADDRESS DEFINES
*  THE INTERNAL PLOT DRIVER.
* 
* *  - FORTRAN LINKAGE -
* 
*         CALL PLOTB(ADDRESS,LENGTH)
* 
*              THE ADDRESS AND LENGTH ARE 1 WORD INTEGERS.
* 
* * 
* 
* *  - CALLING SEQUENCE : 
* 
*          JSB PLOTB     PLOT BUFFER ROUTINE ORIGIN.
*          DEF *+3       RETURN 
*          DEF BSA       BUFFER STARTING LOCATION ADDRESS.
*          DEF BLG       BUFFER LENGTH LOCATION ADDRESS.
* 
*** *** *** *** 
* 
* 
BSA   BSS 1         BUFFER STARTING ADDRESS--BINARY 
BLG   BSS 1         BUFFER LENGTH--IN BINARY
* 
* 
PLOTB NOP 
      JSB .ENTR 
      DEF PLOTB-2 
      LDA BSA       LOAD BUFFER STARTING
      SZA 
      JMP *+6 
      LDA PBSA      BUFFER ADDRESS IS -0- 
      STA PBSAC     THEREFORE SET UP TO 
      LDA PBLG      USE THE 10 WORD PLOT
      STA PBLGC     BUFFER. 
      JMP PLOTB,I 
      STA PBSAC     SET UP EXTERNAL ADDRESS 
      LDA BLG,I     AND THE 
      STA PBLGC     BUFFER LENGTH 
      JMP PLOTB,I 
* 
PBSA  DEF PBUF      DEFINES THE PLOT INTERNAL BUFFER. 
PBLG  OCT 12        DEFINES INTERNAL BUFFER LENGTH. 
PBUF  BSS 10        INTERNAL PLOT 10 WORD BUFFER. 
PBSAC DEF PBUF
PBLGC OCT 12        CURRENT BUFFER LENGTH---ACTIVE. 
* 
* 
      SKP 
*********** ******** ****** 
* 
* 
***** PLOT **** 
* 
* 
*  THE -PLOT- ROUTINE CONVERTS THE DEFINES X,Y
*  PARAMETERS TO PLOT INFORMATION THEN EXECUTES 
*  THE PLOT.  THE PLOT DATA WILL BE BUFFERED AS 
*  FOLLOWS: 
* 
*         -PLOT INTERNAL--10 WORDS
* 
*         -PLOT EXTERNAL--AS DEFINED BY THE USER IN 
*                         THE -PLOTB- CALL. 
* 
** RESTRICTION--- NO PLOT LENGTH CAN EXCEED 16,383
*                 INCREMENTS. (APPROXIMATELY 163 INCHES)
* 
* *  - FORTRAN LINKAGE -
* 
*         CALL PLOT(X,Y,IC) 
* 
*           -X,Y DEFINES THE NEW COORDINATE TO BE PLOTTED.
* 
*           -IC  DEFINES THE PEN UP/DOWN COMMAND. 
* 
* * 
* 
* *  - CALLING SEQUENCE - 
* 
*         JSB  PLOT      PLOT ROUTINE ORIGIN
*         DEF  *+4
*         DEF  X         ADDRESS OF X COORDINATE. 
*         DEF  Y         ADDRESS OF Y COORDINATE. 
*         DEF  IC        ADDRESS OF PEN COMMAND.
******  ******
* 
* 
X     OCT 0         ADDRESS OF X PLOT DATA. 
Y     OCT 0         ADDRESS OF Y PLOT DATA. 
IC    OCT 0         ADDRESS OF PEN COMMAND. 
* 
PLOT  NOP 
      JSB .ENTR 
      DEF PLOT-3
* 
* 
      DLD X,I       LOAD X PLOT DATA
      JSB FPC       CONVERT AND FACTOR
      STA IX        STORE FIXED X #.
* 
      DLD Y,I       LOAD Y PLOT DATA
      JSB FPC       CONVERT AND FACTOR
      STA IY        STORE FIXED Y #.
* 
      DLD XPEN      LOAD OLD X,Y PLOT DATA
* 
*       XPEN AND YPEN ARE IN 2 CONSECUTIVE
*       LOCATIONS FOR THIS DOUBLE LOAD. 
* 
*       THE NEW DX,DY (IDX,IDY) WILL BE 
*       CALCULATED AS FOLLOWS:
* 
*              IX - XPEN = IDX
*              IY - YPEN = IDY
* 
*                WHERE IX = NEW X 
*                      IY = NEW Y 
*                    XPEN = OLD X 
*                    YPEN = OLD Y 
* 
      CMA,INA       2'S COMPLEMENT XPEN 
      CMB,INB       2'S COMPLEMENT YPEN 
      ADA IX        IX - XPEN 
      ADB IY        IY - YPEN 
      DST IDX       STORE XPEN,YPEN 
* 
      DLD IX        SET XPEN,YPEN = IX,IY 
      DST XPEN
* 
*   AT THIS POINT XPEN,YPEN CONTAIN THE NEW X,Y 
*   FOR REFERENCE AS THE "OLD" POINT FOR THE NEXT 
*   PLOT CALL.
* 
      JSB PREST     INITIALIZE COUNTERS & POINTERS. 
* 
****
* 
* * * * PLOT COMMAND ANALYSIS * * * 
* 
* 
*  THIS SECTION DETERMINES THE X,Y AND X-Y PLOT 
*  COMMANDS BASED ON THE SIGN OF IDX AND IDY. 
* 
* 
*  THE COMMANDS AND RELATIVE DIRECTIONS ARE AS FOLLOWS: 
* 
*                     04
* 
*               06    *    05 
*                  *  *  *
*                   * * * 
*                    ***
*             02 *********** 01 
*                    ***
*                   * * * 
*                  *  *  *
*               12    *    11 
* 
*                     10
* 
*******  *****  ***** 
* 
* 
      LDB C01       SET B = 01
      LDA IDX       LOAD NEW DX 
      SSA 
      LDB C02       DX SIGN (-), SET B = 02 
      STB XPMC      STORE B IN X PLOT MOVE CMD. 
* 
      LDA IDY       LOAD NEW DY 
      LDB C04       SET B = 04
      SSA 
      LDB C10       DY SIGN (-), SET B = 10.
      STB YPMC      STORE B IN Y PLOT MOVE CMD. 
* 
      LDA 1         MOVE B TO A.
      IOR XPMC      OR TOGETHER X AND Y PLOT CMDS.
      STA XYPMC     STORE X-Y PLOT COMMAND
* 
* 
      LDA IDX 
      JSB PABS      CHANGE  DX TO ABSOLUTE. 
      STA IDX 
      LDA IDY 
      JSB PABS      CHANGE  DY TO ABSOLUTE. 
      STA IDY 
* 
*  NOW DETERMINE THE OCTANT IN WHICH TO MAKE THE PLOT.
* 
      CMA,INA       2'S COMPLEMENT IDY
      ADA IDX       IDY - IDX 
      SSA,RSS 
      JMP P001       X > OR = Y 
* 
*   X IS LESS THAN Y SO INTERCHANGE IDX AND IDY.
*   THEN SUBSTITUTE X PLOTTER MOVE COMMAND FOR
*   Y PLOTTER MOVE COMMAND (YPMC TO XPMC).
* 
      DLD IDX       LOAD CONSECUTIVE IDX,IDY
      STA IDY       PUT IDX IN IDY
      STB IDX       PUT IDY IN IDX
      LDA YPMC      REPLACE XPMC WITH YPMC
      STA XPMC
* 
P001  LDA IC,I      LOAD USER PEN COMMAND 
      JSB PABS      CHANGE  PEN CODE TO ABSOLUTE. 
      CPA IP        NEW PEN POSITION = OLD ?
      JMP P003A     =, DONT EXECUTE THE PEN CMD.
      STA IP        SET ID TO NEW PEN POSITION
      CPA C02       IS THE PEN DOWN (2)?
      JMP P002      =2, MOVE WITH PEN DOWN
      LDA C03       SET PEN-UP CODE TO THE
      STA XPLT      X PLOT BUFFER. (SET =3, NOT 20) 
      JMP P003
* 
** PEN DOWN 
* 
P002  LDA C07       LOAD PEN DOWN CODE (SET=7,NOT 40) 
      STA XPLT      AND STORE IN X PLOT BUFFER. 
* 
P003  CLA 
      STA NR        ZERO OUT POTENTIAL IDY. 
      INA 
      STA NA        SET LOOP COUNT TO 1 
      LDA N02       SET COUNT FOR PEN AND 
      STA TRA       MOVE TO -2
      JMP P005
* 
P003A LDA N01       SET COUNT TO -1 FOR 
      STA TRA       MOVE ONLY.
P004  LDA IDX 
      SZA,RSS       WAS THIS A PEN ONLY MOVE? 
      JMP P100      PEN ONLY, EXIT
      LDA XPMC      PICK UP THE X MOVE COMMAND
      STA XPLT      AND SET FOR PLOT. 
      LDA IDX       SET THIS PLOT DATA
      STA NA        IN THE DIVIATION BUFFER 
* 
*  MULTIPLY (IDY)(2)
* 
      LDA IDY 
      ALS           (IDY)(2)
      STA NR
* 
P005  LDA NA        LOAD THE # OF PLOTS 
      CMA,INA       2'S COMPLEMENT FOR LOOP COUNT 
      STA NC        SET PLOT COUNT. 
      LDA NA
      ALS           (NA)(2) 
      STA NT
* 
*  THIS SECTION PUTS THE PLOT DATA IN THE BUFFER. 
* 
** ** **
* 
*  SET UP PLOT DEVIATION. 
* 
P006  LDA NR        PICK UP LINE CONSTANT (MINOR) 
      ADA NA        ADD OLD DEVIATION 
      STA NA        STORE NEW PLOT DEVIATION
* 
      LDA NT        LOAD TRUE LINE CONSTANT 
      CMA,INA       2'S COMPLEMENT
      ADA NA        (NA-NT) 
      SSA 
      JMP P007      (NT > NA) 
      STA NA        STORE NEW DEVIATION  (NA-NT)
* 
*  LOAD X-Y PLOT  CODE FOR PLOT MOVE. (NT <,= NA) 
* 
      LDA XYPMC     PICK UP X-Y PLOT MOVE CODE. 
      JMP PXJMP 
* 
*  LOAD X PLOT CODE FOR PLOT MOVE. (NT > NA)
* 
P007  LDA XPLT      PICK UP X PLOT MODE CODE. 
* 
*  PX WILL VARY TO ACCOMMODATE 1 OF 4 PLOT CODES
*  FOR EACH WORD. 
* 
* * *  EACH COMPUTER WORD IS PACKED WITH UP TO 4
*      PLOT CODES PER WORD, LEFT HAND JUSTIFIED 
*      AS FOLLOWS:
* 
*         BITS 15--12,11--8,7--4,3--0 
*               CH1    CH2   CH3  CH4 
* 
* 
*      PEN UP-- WILL BE CONVERTED FROM A 20 TO 3. 
* 
*      PEN DOWN--WILL BE CONVERTED FROM A 40 TO 7.
* 
*      BOTH MUST BE CONVERTED BACK TO THE CORRECT 
*      CODE BY THE PLOTTER DRIVER.
* 
* 
PXJMP JMP PX,I
* 
PX    DEF PX1 
* 
PX1J  DEF PX1       CH 1 SET UP 
PX2J  DEF PX2       CH 2 SET UP 
PX3J  DEF PX3       CH 3 SET UP 
PX4J  DEF PX4       CH 4 SET UP 
* 
*  CH 1 SET UP IS EXECUTED SO AS TO LEFT HAND JUSTIFY 
*  THE CODE IN BITS 15-12 OF THE WORD. BITS 11-0 WILL 
*  BE = 0 TO ALLOW THE DRIVER TO TERMINATE PLOTTING 
*  ON A PARTIAL WORD AS THE PLOT COUNT SENT TO THE
*  DRIVER IS FOR WORDS ONLY.
* 
PX1   ALF,ALF       POSITION THE 4 BIT CODE 
      ALF 
      STA PXB,I     STORE CH IN BUFFER
      LDA PX2J      SET PX JUMP FOR 
      STA PX        2ND PLOT CH OF THE WORD.
      JMP PX3A      GO CHECK FOR LAST CH. 
* 
*  CH 2 POSITIONS THE PLOT CH IN BITS 
*  11-8 OF THE WORD.
* 
PX2   ALF,ALF       POSITION THE 4 BIT CODE 
      IOR PXB,I     MERG CH'S 1,2 
      STA PXB,I     RESTORE TO BUFFER 
      LDA PX3J      SET PX JUMP FOR 
      STA PX        3RD PLOT CH OF THE WORD.
      JMP PX3A      GO CHECK FOR LAST CH. 
* 
*  CH 3 POSITIONS THE PLOT CH IN BITS 7-4 OF THE WORD.
* 
PX3   ALF           POSITION THE 4 BIT CODE 
      IOR PXB,I     MERG CH'S 1,2,3 
      STA PXB,I     RESTORE TO BUFFER 
      LDA PX4J      SET UP PX JUMP FOR
      STA PX        4TH PLOT CH OF THE WORD.
PX3A  ISZ NC        WAS THIS THE LAST CH? 
      JMP P006      NO, CONTINUE PROCESSING 
      ISZ PWDO      LAST CH WITH ODD CH # IN WORD.
*                                 INCREMENT WORD COUNT. 
      JMP P009      GO CLOSE OUT
* 
*  CH 4 POSITIONS THE PLOT CH IN BITS 3-0 OF THE WORD.
* 
PX4   IOR PXB,I     MERG CH'S 1,2,3,4 
      STA PXB,I     RESTORE TO BUFFER 
      LDA PX1J      SET UP PX JUMP FOR
      STA PX        1ST PLOT CH OF THE WORD.
      ISZ PWDO      INCREMENT WORD COUNT
      ISZ PXB       INCREMENT BUFFER ADDRESS INDEX. 
      ISZ PBUFI     IS THE BUFFER FULL? 
      JMP P008      NOT FULL
* 
*  FULL, OUT-PUT TO THE DRIVER
* 
      JSB POUT      OUTPUT THIS BUFFER FULL 
      ISZ NC        WAS THIS THE LAST PLOT MOVE?
      JMP *+2       NOT LAST MOVE 
      JMP P010      LAST MOVE 
      JSB PREST     RESTORE COUNTERS AND INDEX. 
* 
*  THE PLOT ROUTINE WILL NOW SET UP THE NEXT GROUP
*  OF PLOT CODES. 
* 
      JMP P006
* 
** ** **
* 
* 
*  AT THIS POINT THE BUFFER IS NOT FULL BUT IT IS 
*  NOT KNOWN IF THERE IS MORE PLOT DATA.
* 
PWDO  OCT 0         WORD COUNT OF BUFFER WORD COUNT 
* 
P008  ISZ NC        LAST PLOT CODE? 
      JMP P006      NOT LAST CODE, CONTINUE.
P009  LDA N02       SET DATA FLAG FOR CLOSE OUT 
      STA PDATA 
* 
* * * * * * 
* 
* * * * * * 
* 
*  THE PLOT IS BEING TERMINATED.  CHECK IF THIS 
*  PLOT WAS A PEN ONLY.  IF SO GO TO P004 AND TEST
*  FOR A PEN ONLY OPERATION.  IF THIS WAS A PLOT
*  THEN EXIT AND CLEAN UP.
* 
*  A PEN MOVE IS DETERMINED BY -TRA-. 
*       IF TRA =-1 THEN THIS WAS A PLOT MOVE
*       IF TRA =-2 THEN THIS WAS A PEN MOVE.
* 
* 
P010  ISZ TRA       PLOT MOVE 
      JMP P200      NOT A PLOT MOVE, TEST FURTHER.
* 
* 
*  *  *  *
* 
*    * CLOSE OUT  * 
* 
      LDA PDATA     IS TJERE PLOT DATA FOR OUTPUT?
      SZA 
      JSB POUT      OUTPUT THE REMAINING PLOT DATA
P100  LDA IC,I
      SSA           IS THE NEW POINT TO BECOME ORIGIN?
      JMP *+2       YES (IC = -#) 
      JMP PLOT,I    NO, EXIT THE PLOT ROUTINE 
      CLA           NEW ORIGIN
      STA IP        SO ZERO OUT  IP 
      STA XPEN      XPEN AND
      STA YPEN      YPEN FOR NEW ORIGIN 
      STA PDATA     CLEAR DATA FLAG 
      JMP PLOT,I    EXIT THE PLOT ROUTINE.
* 
*  PEN MOVE - ISSUE PEN COMMAND 
* 
P200  JSB POUT      ISSUE PEN COMMAND 
      JSB PREST     RESET 
      JMP P004      CONTINUE PROCESSING.
* 
***   *** 
* 
* 
*****  POUT  **** 
* 
* 
*  THIS ROUTINE OUTPUTS TO THE PLOTTER DRIVER.
* 
POUT  NOP 
      LDA PBSAC     SET BUFFER ORIGIN 
      STA POUT2 
      LDA PWDO      SET WORD COUNT
      STA POUT3 
      JSB EXEC     CALL 
      DEF *+5       FOR 
      DEF C02        OUTPUT 
      DEF POUT1       TO PLOTTER, 
      DEF POUT2,I     BUFFER POINTER
      DEF POUT3       AND LENGTH. 
      CLA           CLEAR DATA FLAG SO DATA WILL
      STA PDATA     NOT BE REPLOTTED. 
      JMP POUT,I    EXIT
* 
POUT1 NOP          PLOTTER LOGICAL UNIT # 
POUT2 NOP          BUFFER ADDRESS.
POUT3 DEC 10       INTERNAL BUFFER LENGTH.
* 
**  ** ** **
* 
*****   ****
* 
* 
****** PREST *****
* 
* 
*  THIS ROUTINE RESETS THE INDEX'S AND COUNTERS.
* 
* 
PREST NOP 
      LDA PBLGC     LOAD ACTIVE BUFFER LENGTH 
      CMA,INA       2'S COMPLEMENT
      STA PBUFI     SET BUFFER LENGTH COUNTER 
* 
      LDA PBSAC     LOAD ACTIVE BUFFER ORIGIN ADDRESS 
      STA PXB       AND SET BUFFER INDEX. 
* 
      LDA PX1J      SET PX JUMP FOR 1ST BUFFER
      STA PX        DATA CHARACTER. 
* 
* 
      CLA           CLEAR 
      STA PDATA     DATA FLAG 
      STA PWDO      WORD COUNT
* 
      JMP PREST,I   EXIT
* 
* 
* 
*  THIS ROUTINE MULTIPLIES THE PLOT CO-ORDINATE 
*  BY THE SCALE FACTOR THEN CONVERTS FROM 
*  FLOATING POINT TO FIXED. 
*          A= X OR Y PLOT CO-ORDINATE ON ENTRY. 
* 
FPC   NOP 
      FMP CFAC      (CO-ORDINATE)(PLOT FACTOR)
      FAD FD05
      JSB IFIX      CONVERT TO FIXED POINT
      JMP FPC,I     EXIT WITH A=FIXED PLOT #. 
* 
* 
* 
*  THIS ROUTINE CHANGES THE CONTENTS OF "A" TO ABSOLUTE.
* 
* 
PABS  NOP 
      SSA           # NEGATIVE? 
      CMA,INA       YES (-), 2'S COMPLEMENT.
      JMP PABS,I    EXIT
* 
* 
* 
      SKP 
* 
******** ***** *****
* 
*** PLTLU *** 
* 
* 
*  THE -PLTLU- CALL ALLOWS THE USER TO SET THE
* LOGICAL UNIT NUMBER FOR THE DESIRED PLOTTER.
* THIS CALL MUST BE MADE TO SET THE LU # BEFORE 
* THE FIRST CALL TO -PLOT-; OTHERWISE THE SYSTEM
* WILL TERMINATE THE USER PROGRAM BECAUSE OF AN 
* I/O REQUEST ERROR "LOGICAL UNIT = ZERO".
* 
* * - FORTRAN LINKAGE - 
* 
*      CALL PLTLU(ILU)
* 
*       THE LOGICAL UNIT # MUST BE INTEGER
* 
* * - CALLING SEQUENCE :
* 
*      JSB PLTLU    PLOT LU ROUTINE 
*      DEF *+2      RETURN
*      DEF ILU      LOCATION OF INTEGER LU #
* 
*****  ***  ***** 
* 
* 
* 
ILU   BSS 1         STORAGE FOR LU # ADDRESS
* 
* 
PLTLU NOP 
      JSB .ENTR     SET ADDRESS OF
      DEF PLTLU-1    PARAMETER IN "ILU".
* 
      LDA ILU,I     SET LU #
      STA POUT1      IN LOCAL STORAGE.
* 
      JMP PLTLU,I   RETURN
      SKP 
* 
* 
* 
******   ******  ****** 
* 
***** WORKING STORAGE *** 
* 
* 
*  THE FOLLOWING GROUPS OF TWO WORDS MUST BE
*  IN 2 CONSECUTIVE MEMORY LOCATIONS. 
* 
IDX   OCT 0         MAJOR PLOT MOVE (NEW DX)
IDY   OCT 0         MINOR PLOT MOVE (NEW DY)
* 
XPEN  OCT 0         STORAGE FOR NEW DX,DY 
YPEN  OCT 0         FOR THIS PLOT.
* 
IX    OCT 0         ACTUAL X PLOT DATA
IY    OCT 0         ACTUAL Y PLOT DATA
* 
XPMC  OCT 0         X PLOT MOVE COMMAND  -DOUBLE LOAD 
XYPMC OCT 0         X-Y PLOT MOVE COMMAND-DOUBLE LOAD 
YPMC  OCT 0         Y PLOT MOVE COMMAND 
* 
NR    OCT 0         LINE CONSTANT 
* 
NA    OCT 0         DEVIATION FROM LINE 
* 
NT    OCT 0         (2)(NA) 
* 
TRA   OCT 0         PEN OR PLOT INDICATOR 
* 
NC    OCT 0         LOOP COUNT (# OF PLOT INCREMENTS) 
* 
IP    OCT 0         LAST PEN POSITION 
* 
XPLT  OCT 0         CURRENT X PLOT COMMAND
* 
* 
* 
* 
C01   OCT 1 
C02   OCT 2 
C03   OCT 3 
C04   OCT 4 
C07   OCT 7 
C10   OCT 10
C13   DEC 13
* 
FD05  DEC .5
* 
N01   OCT 177777    -1
N02   OCT 177776    -2
* 
PBUFI OCT 0         BUFFER LENGTH COUNTER 
PDATA OCT 0         FLAG FOR PLOT DATA IN BUFFER
PWOO  OCT 0         WORD COUNT OF BUFFER WORD COUNT 
PXB   OCT 0         BUFFER ADDRESSING INDEX.
* 
      END 
      