Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-02 - 43,50247/genplt.rno
There are 2 other files named genplt.rno in the archive. Click here to see a list.
.TITLE ^^GENPLT-II,\\ A ^GENERAL ^PLOTTING ^PACKAGE
.SPACING 1
.NOFILL
^^GGGGGGGGG  EEEEEEEEE  NNN   NNN  PPPPPPPPP  LLL    TTTTTTTTT
GGG        EEE        NNNN  NNN  PPP   PPP  LLL       TTT
GGG  GGGG  EEEEEE     NNN N NNN  PPPPPPPPP  LLL       TTT
GGG   GGG  EEE        NNN  NNNN  PPP        LLL       TTT
GGGGGGGGG  EEEEEEEEE  NNN   NNN  PPP        LLLLLLLL  TTT
.SKIP 2
                    IIIIIIIII  IIIIIIIII
                       III        III
                       III        III
                       III        III
                    IIIIIIIII  IIIIIIIII
.FILL
.SKIP 2
GENPLT-II\\ IS A PACKAGE OF ^^FORTRAN\\ NON-INTERACTIVE GRAPHIC
SUBROUTINES WHICH PROVIDE A WIDE VARIETY OF AUTOMATIC FUNCTIONS SUCH
AS THE PLOTTING OF SCALES AND GRIDS.
^DATA CAN BE REPRESENTED BY PLOTTED POINTS OR SYMBOLS,
BY SOLID OR DASHED LINES, OR AS SHADED FIGURES.
^DRAFTSMAN'S ^GOTHIC AND ^GREEK LETTERING ARE PROVIDED.
.SKIP
^FURTHER INFORMATION CONCERNING THESE ROUTINES HAS
BEEN PUBLISHED IN ^VOLUME 3 OF "^COMPUTER ^PROGRAMS
^FOR ^CHEMISTRY,"  ^W.#^A.#^BENJAMIN, ^INC.,
1969 (EDITED BY ^DELOS ^F.#^DE^TAR).
.PAGE
.SPACING 1
.SKIP 3
.CENTER
\\^COUPLING ^^GENPLT-II\\ TO A ^PARTICULAR ^PLOTTING ^DEVICE
.CENTER
-------- --------- -- - ---------- -------- ------
.SKIP 2
^THE ^^GENPLT-II\\ SUBROUTINES PRODUCE GRAPHIC OUTPUT ON A
SPECIFIC PLOTTING DEVICE BY CALLING A SET OF ROUTINES PROVIDED 
BY THE USER FOR THAT DEVICE.
^SEVERAL TYPICAL PACKAGES OF SUCH COUPLING ROUTINES
ARE SUPPLIED.
^IF AN INSTALLATION HAS A PLOTTING DEVICE, SOME PRIMITIVE ROUTINES
WILL PROBABLY BE  AVAILABLE FOR ITS USE.
^ONE OF THE PROVIDED COUPLING PACKAGES CAN THEN BE MODIFIED
TO CALL THESE PRIMITIVE ROUTINES.
^THE FILE ^^PENTST\\ IS PROVIDED TO TEST A NEW OR MODIFIED
SET OF COUPLING ROUTINES.
^IF THE COUPLING ROUTINES ARE OPERATING CORRECTLY, THIS
PROGRAM WILL PRODUCE 3 VERSIONS OF THE ^YALE ^UNIVERSITY
CREST.
.SKIP
^EACH OF THE COUPLING PACKAGES CONTAINS 5 SIMPLE ROUTINES WITH
A STANDARDIZED ARGUMENT LIST.  ^THESE ARE AS FOLLOW.
.SKIP
.LEFT MARGIN 4
^^SUBROUTINE PENBGN(LASTX,LASTY,NEWX,NEWY)
.BREAK
\\CALLED BY THE USER TO INITIALIZE ANY PARAMETERS NEEDED
BY THE OTHER ROUTINES OF THE COUPLING PACKAGE.
^THE MOST IMPORTANT PARAMETERS ARE ^^FACTOR\\ WHICH IS  THE NUMBER
OF PLOTTER GRID UNITS CORRESPONDING
TO ^^XWIDTH\\ OR ^^YWIDTH\\ EQUAL 1.0 (THE MAXIMUM POSSIBLE),
AND ^^OFSETX\\ AND ^^OFSETY\\ WHICH ARE THE COORDINATES
OF THE PLOTTER GRID ORIGIN STATED IN PLOTTER GRID UNITS.
^^PENBGN\\ MIGHT ALSO
PRODUCE AN IDENTIFICATION FRAME IF USED WITH A CAMERA MONITORED ^^CRT\\,
OR MIGHT ADVANCE PAPER IF USED WITH A DRUM PLOTTER.
.SKIP
^^SUBROUTINE PENHLT(LASTX,LASTY,NEWX,NEWY)
.BREAK
\\CALLED BY THE USER WHEN A FRESH PLOTTING
SURFACE MUST BE PROVIDED.  ^WOULD ADVANCE FILM IN
^^CRT\\ CAMERA OR ADVANCE THE PAPER  IN DRUM PLOTTER.  ^FOR A
FLAT-BED PLOTTER, WOULD SIGNAL THE OPERATOR TO CHANGE
PAPER.  ^FOR A STORAGE ^^CRT\\, WOULD CLEAR SCREEN.
.SKIP
^^SUBROUTINE PENEND(LASTX,LASTY,NEWX,NEWY)
.BREAK
\\CALLED BY THE USER AFTER ALL
PLOTTING HAS BEEN GENERATED.  ^FOR MOST DEVICES
WOULD MERELY CALL ^^PENHLT\\ AGAIN.  ^SOME SYSTEMS MIGHT
REQUIRE CALLING AN ACCOUNTING ROUTINE.
.SKIP
.LEFT MARGIN 0
^THE ARGUMENTS ^^NEWX \\AND ^^NEWY \\FOR THE ABOVE
ROUTINES ARE DUMMIES NOT USED BY THE ROUTINES.
^^LASTX \\AND ^^LASTY \\ARE SET, IF NECESSARY, BY  THESE COUPLING
ROUTINES FOR USE WHEN THE USER CALLS THE HIGHER LEVEL
^^GENPLT-II\\ ROUTINES AND CONTAIN THE PRESENT PEN OR ^^CRT\\ BEAM 
POSITION COORDINATES FOR USE IN INTERPOLATION BETWEEN DRAWN LINES.
.SKIP
^TWO ADDITIONAL COUPLING ROUTINES ARE CALLED INTERNALLY BY
THE ^^GENPLT-II\\ ROUTINES.  ^THESE ARE AS FOLLOW.
.SKIP
.LEFT MARGIN 4
^^SUBROUTINE PENUP(LASTX,LASTY,NEWX,NEWY)
.BREAK
\\MOVES THE PEN OR ^^CRT\\ BEAM FROM THE FORMER POSITION ^^LASTX, LASTY\\
TO THE NEW POSITION ^^NEWX, NEWY\\ WITHOUT DRAWING A LINE.
.SKIP
^^SUBROUTINE PENDWN(LASTX,LASTY,NEWX,NEWY)
.BREAK
\\DRAWS A LINE FROM THE FORMER POSITION ^^LASTX, LASTY
\\TO THE NEW POSITION ^^NEWX, NEWY.\\
.SKIP
.LEFT MARGIN 0
^THE FOLLOWING PACKAGES OF COUPLING SUBROUTINES ARE PROVIDED.
^THE PRINTER OUTPUT PACKAGE IS WRITTEN ENTIRELY IN ^^FORTRAN\\
AND SHOULD WORK UNDER ANY SYSTEM.  ^PRINTER REPRESENTATION
OF PLOTS IS OFTEN USEFUL IF NORMAL HARDCOPY GRAPHIC OUTPUT IS
EITHER EXPENSIVE OR SLOW.
^THE UNIT NUMBER ^^NTAPE\\ ONTO WHICH PRINTER PLOTS ARE OUTPUT
IS SET BY ^^PENHLT\\ WHEN THIS IS INITIALLY CALLED BY ^^PENBGN\\
AND SHOULD BE CHANGED AS NECESSARY.
.SKIP
.LEFT MARGIN 4
^FILE ^^PRTPAC\\
.BREAK
CONTAINS THE ROUTINES ^^PENBGN, PENUP, PENDWN \\AND ^^PENEND
\\FOR PRODUCING PRINTER OR TELETYPE PLOTS  USING THE
CHARACTERS ^X AND SPACE.
^FILE ^^PRTPAC\\ MUST BE USED WITH ONE OF THE FOLLOWING
VERSIONS OF ^^PENHLT\\.
.SKIP
.LEFT MARGIN 8
^FILE ^^PRTHLB
.BREAK
\\PRODUCES LARGE PRINTER PLOTS 3 PAGES WIDE BY 4 PAGES
HIGH.
^ALTHOUGH DESIGNED FOR A PRINTER WITH AT LEAST
122 CHARACTERS PER LINE,
IT IS NECESSARY
TO CHANGE ONLY 1 VARIABLE (^^ICHAR\\) TO SPLIT
THE PLOT INTO NARROWER COLUMNS FOR PRINTING ON
A TELETYPE.
.SKIP
^FILE ^^PRTHLC
.BREAK
\\PRODUCES A VERY LOW RESOLUTION PLOT ON A SINGLE PRINTER
PAGE OF 101 CHARACTER WIDTH.
.SKIP
^FILE ^^XRXHLT\\
.BREAK
PRODUCES AN OUTPUT FILE CONTAINING DURATION AND INTENSITY
INFORMATION FOR DRIVING A ^XEROX ^TELECOPIER.
^CUSTOM BUILT HARDWARE AND THE ROUTINES TO DRIVE THIS HARDWARE ARE
NECESSARY TO GENERATE THE AUDIO TONES WHICH CONTROL THIS DEVICE.
^THE STYLUS OF THE TELECOPIER SPINS INSIDE A
ROLLED SHEET OF CARBON PAPER WHICH
IN TURN IS INSIDE A ROLLED SHEET OF NORMAL PAPER.
^THE OTHER PRINTER COUPLING ROUTINES CAN BE USED
SINCE BOTH THE PRINTER AND TELECOPIER ARE RASTER DISPLAYS.
^THE VERSION OF ^^PENHLT\\ MEANT FOR THE ^TELECOPIER IS
UNUSUAL IN THAT IT ALLOWS BOTH HORIZONTAL AND VERTICAL
RESOLUTION TO BE SPECIFIED BY A SINGLE VARIABLE.
.SKIP
.LEFT MARGIN 4
^FILE ^^CALPAC\\
.BREAK
CALLS THE STANDARD ^CALCOMP ROUTINE ^^PLOT\\ TO PRODUCE
PLOTS ON ^CALCOMP DRUM PLOTTERS.
^IT MAY BE NECESSARY TO RESTORE THE ^^DIMENSION
\\STATEMENT AND THE CALL TO SUBROUTINE ^^PLOTS\\ WHICH APPEAR AS COMMENT
LINES IN ^^PENBGN.
\\^THE FOLLOWING FILES ARE ALSO PROVIDED.
.SKIP
.LEFT MARGIN 8
^FILE ^^CALPLT\\
.BREAK
SIMULATES THE STANDARD ^CALCOMP ROUTINE ^^PLOT\\.
^INDIVIDUAL HORIZONTAL, VERTICAL OR DIAGONAL MOTIONS OF
THE STEPPING MOTOR ARE REQUESTED  BY CALLING A ROUTINE
NAMED ^^PLOTP\\.
^THE ROUTINE ^^PLOTP\\ MUST BE WRITTEN FOR THE INDIVIDUAL
SYSTEM.
.SKIP
^FILE ^^CALARD\\
.BREAK
SIMULATES THE ABOVE MENTIONED ROUTINE ^^PLOTP\\ FOR MONITORING
ON AN ^^ARDS\\ GRAPHIC TERMINAL.  ^ROUTINES IN THE FILE
^^ARDMAC\\ ARE CALLED FOR FINAL OUTPUT.
.SKIP
.LEFT MARGIN 8
.LEFT MARGIN 4
^FILE ^^ARDPAC
.BREAK
A\\ VERY SIMPLE SET OF COUPLING ROUTINES WHICH CALL THE
ROUTINES IN FILE ^^ARDMAC\\ FOR OUTPUT ON AN ^^ARDS\\
(^ADVANCED ^REMOTE ^DISPLAY ^STATION) STORAGE TUBE TERMINAL.
.SKIP
.LEFT MARGIN 8
^FILE ^^ARDMAC\\
.BREAK
CONTAINS ^MACRO ROUTINES FOR DRIVING A DUAL SCOPE
^^ARDS\\ TERMINAL WITH WRITE-THROUGH CURSOR AND
WITH ^SYLVANIA TABLET INTERFACE.
^THE ENTRY POINTS WITHIN THIS FILE ARE DESCRIBED IN THE APPENDIX.
.SPACING 1
.PAGE
.CENTER
^DIMENSION ^SYSTEMS
.CENTER
--------- -------
.SKIP
.LEFT MARGIN 0
^THE SIZES AND LOCATIONS OF ITEMS TO BE PLOTTED ARE SPECIFIED
IN 3 DIFFERENT DIMENSION SYSTEMS.
.LEFT MARGIN 4
.SKIP
.INDENT -4
1.##^USER DEFINED DATA HAS ITS OWN DIMENSION SYSTEM
(WHICH CAN DIFFER IN THE HORIZONTAL AND VERTICAL DIRECTIONS)
AND IS WINDOWED INTO A PLOT AREA WHICH CAN CONTAIN A RANGE
OF DATA EXTENDING IN THE HORIZONTAL DIRECTION FROM ^^XFIRST\\ AT THE LEFT
EDGE TO ^^XFINAL\\ AT THE RIGHT EDGE, AND IN THE VERTICAL DIRECTION
FROM ^^YFIRST\\ AT THE BOTTOM EDGE TO ^^YFINAL\\ AT THE TOP EDGE.
^SIMILARLY, ROUTINE ^^BARPLT\\  REQUIRES THE MAXIMUM SUM OF
THE SEGMENTS OF AN INDIVIDUAL BAR BE INPUT IN DATA
COORDINATES AS THE ARGUMENT ^^TOTAL\\.
.SKIP
.INDENT -4
2.##^THE PLOT AREA INTO WHICH THE DATA ARE WINDOWED HAS ITS
WIDTH ^^XWIDTH\\, HEIGHT ^^YWIDTH\\, HORIZONTAL
DISTANCE ^^XCORNR\\ 
FROM THE LEFT EDGE OF THE MAXIMUM USABLE PLOTTING SURFACE
AND VERTICAL DISTANCE ^^YCORNR\\ FROM THE LOWER EDGE OF THE
MAXIMUM USABLE PLOTTING SURFACE
SPECIFIED AS
FRACTIONS OF THE WIDTH OR HEIGHT OF THE MAXIMUM USABLE
PLOTTING SURFACE.
^SIMILARLY, THE ARGUMENT ^^HEIGHT\\ WHICH
DEFINES THE HEIGHT OF CAPTIONS PLOTTED BY ROUTINE ^^WRDPLT\\
AND OF NUMBERS PLOTTED BY ROUTINE ^^NMBPLT\\ IS
SPECIFIED AS  A FRACTION OF THE HEIGHT OF
THE MAXIMUM USABLE PLOTTING SURFACE.
.SKIP
.INDENT -4
3.##^THE HEIGHTS OF SCALE CAPTIONS AND OF SCALE NUMBERS
AND OF SCALE TICK MARKS, THE HEIGHTS OF  CHARACTERS USED TO REPRESENT
DATA OR USED AS THE TIPS OF ARROWS,
AND THE LENGTHS OF THE DASHES AND OF THE SPACES OF DASHED LINES
USED TO REPRESENT DATA,
 ARE SPECIFIED IN UNITS WHICH ARE 1/50TH OF THE
HEIGHT OF THE PLOT AREA.

^USE OF THIS RELATIVE UNIT FOR THE
SPECIFICATION OF THE ARGUMENTS ^^RELHIT, RELSPC\\ AND ^^RELARO\\
 ALLOW THE PROPORTIONS OF A PLOT
TO BE INDEPENDENT OF CHANGES IN ITS OVERALL SIZE.
.SKIP
.LEFT MARGIN 0
^FOR EXAMPLE, IF DATA RANGING FROM 0.001 TO 0.002 IN THE
HORIZONTAL DIRECTION AND FROM 1200.0 TO -300.0 IN THE
VERTICAL DIRECTION WERE TO BE PLOTTED IN A CENTERED PLOT
AREA HAVING WIDTH 0.6 OF THE MAXIMUM POSSIBLE WIDTH AND HAVING HEIGHT
0.5 OF THE MAXIMUM POSSIBLE HEIGHT, THEN 
.SKIP
.LEFT MARGIN 4
.NOFILL
^^XFIRST = 0.001
XFINAL = 0.002
YFIRST = 1200.0
YFINAL = -300.0
XWIDTH = 0.6
YWIDTH = 0.5
XCORNR = 0.3
YCORNR = 0.25\\
.SKIP
.FILL
.LEFT MARGIN 0
^THE DECREASING VERTICAL SCALE CAUSES DIFFICULTY
FOR NEITHER THE DATA PLOTTING ROUTINES NOR FOR THE
SCALE PLOTTING ROUTINE.
.SKIP
^THESE ARGUMENTS, AND THE ^^XPOINT\\ AND ^^YPOINT\\ DATA
ACTUALLY BEING REPRESENTED ARE DIAGRAMED BELOW.
.SKIP 5
.TEST PAGE 36
.NOFILL
*******UPPER*EDGE*OF*MAXIMUM*USABLE*PLOTTING*SURFACE********
*                                                          *
*                                                          *
*                                                          *
*                                                          R
L                                                          I
E           .............. ^^XWIDTH\\ ..............           G
F                                                          H
T                                                          T
*           ******UPPER*EDGE*OF*PLOT*AREA*******    .      *
E           *                                 .R    .      E
D           L                                . I    .      D
G           E                               .  G    .      G
E           F                         ^^XFINAL\\   H    .      E
*           T                         ^^YFINAL\\   T    .      *
O           *                                  *    ^Y      O
F           P                                  P    ^W      F
*           L                ^X                 L    ^I      *
U           O                 .                O    ^D      U
S           T                  .               T    ^H      S
A           *                   .              *    ^T      A
B           E   ^^XFIRST           XPOINT\\        E    .      B
L           D   ^^YFIRST           YPOINT\\        D    .      L
E           G  .                               G    .      E
*           E .                                E    .      *
S           *.                                 *    .      S
U..^^XCORNR\\...******LOWER*EDGE*OF*PLOT*AREA*******    .      U
R           .                                              R
F           ^Y                                              F
A           ^C                                              A
C           ^O                                              C
E           ^R                                              E
*           ^N                                              *
*           ^R                                              *
*           .                                              *
*******LOWER*EDGE*OF*MAXIMUM*USABLE*PLOTTING*SURFACE********
.PAGE
.SPACING 1
.CENTER
^SELECTION OF ^CHARACTER ^STRINGS FOR ^PLOTTING ^CAPTIONS
.CENTER
--------- -- --------- ------- --- -------- --------
.SKIP
.FILL
^SINCE THE ^^GENPLT-II\\ FONTS WERE
ORIGINALLY DEVELOPED FOR USE ON AN ^^IBM\\ 7094 COMPUTER, ONLY
THE CHARACTERS IN THE ^^BCD\\ CHARACTER SET CAN
BE USED IN INPUT STRINGS.
^THESE ALLOWED CHARACTERS INCLUDE THE UPPER CASE ^ROMAN ALPHABET,
THE NUMERALS 0 THROUGH 9, AND THE 11 OTHER CHARACTERS
LEFT PARENTHESIS, RIGHT PARENTHESIS, COMMA, APOSTROPHE,
PERIOD, PLUS SIGN, MINUS SIGN, ASTERISK, SLASH, EQUALS SIGN
AND DOLLAR SIGN (USED AS A NON-PLOTTING CONTROL CHARACTER).
^ALL OTHER CHARACTERS WILL BE TRANSLATED TO BLANKS (SPACES)
PRIOR TO BEING PLOTTED.
.SKIP
^THE BASIC VERSION OF THE LETTERING ROUTINE (^^FONT1C\\)
PLOTS ONLY HORIZONTAL OR VERTICAL UPPER CASE ^ROMAN BLOCK LETTERS.  ^PLOTTING OF
THE STRING IS TERMINATED WHENEVER A $ (DOLLAR SIGN, NOT
ALT-MODE) IS ENCOUNTERED AS A CHARACTER TO BE PLOTTED.
^THE CAPTION
.NOFILL
^^      THIS IS A SAMPLE TITLE\\
.FILL
COULD BE PLOTTED IF THE FOLLOWING ^HOLLERITH FIELD WERE
TO BE INCLUDED AS ONE OF THE CAPTION ARGUMENTS (SUCH AS
^^NAMELX, NAMELY\\ ETC.#OF A ^^CALL SCLPLT\\ STATEMENT).
.NOFILL
^^      23HTHIS IS A SAMPLE TITLE$\\
.FILL
^IT WILL BE NOTED THAT THE $ MUST BE INCLUDED IN THE
CHARACTER COUNT AND THAT THIS CHARACTER COUNT CAN BE
LESS THAN THE 72 MAXIMUM.  ^IN EFFECT, THE TERMINAL $
PREVENTS THE PLOTTING AS RANDOM CHARACTERS OF THE
UNSPECIFIED PORTION OF THE CAPTION.
.SKIP
^THE ADVANCED VERSION OF THE LETTERING ROUTINE (^^LTRPLC\\)
CAN PLOT LETTERING AT ANY ANGLE, AND
INTERPRETS THE CHARACTER FOLLOWING A $ IN A PLOTTED
ALPHAMERIC STRING AS AN OPTION SELECTOR RATHER THAN AS
A CHARACTER TO BE PLOTTED.  ^A BLANK (SPACE CHARACTER), ZERO OR ANY OTHER
CHARACTER NOT USED FOR PARTICULAR OPTIONS FOLLOWING A
$ CAUSES TERMINATION OF PLOTTING OF THE STRING.  ^THE
DIGITS 1, 2, 3 AND 4 SELECT ^ROMAN UPPER CASE, ^ROMAN
LOWER CASE, ^GREEK UPPER CASE AND ^GREEK LOWER CASE
RESPECTIVELY (IN FONTS 7 AND 8, SEMI-SCRIPT ^ROMAN
IS SELECTED RATHER THAN ^GREEK BY $3 AND $4).  ^ROMAN
UPPER CASE LETTERING IS INITIALLY PROVIDED, HOWEVER THIS
ALPHABET AND CASE ARE NOT AUTOMATICALLY RESET BY SUCCEEDING CALLS TO
THE LETTERING PROGRAM.  ^THE SAMPLE CAPTION GIVEN ABOVE
COULD BE PLOTTED WITH THE FIRST LETTER IN EACH WORD IN
UPPER CASE BY USING THE FOLLOWING STRING.
.NOFILL
^^      40H$1T$2HIS $1I$2S $1A S$2AMPLE $1T$2ITLE$ \\
.FILL
^GREEK LETTERS ARE IDENTIFIED IN THE CHARACTER
STRINGS BY THE ^ROMAN LETTERS HAVING THE SAME NUMERICAL
POSITIONS WITHIN THE CORRESPONDING ALPHABETS.  ^FOR
EXAMPLE, $3^X WOULD REFER TO UPPER CASE OMEGA, THE 24TH
CHARACTER IN THE ^GREEK ALPHABET.

.SKIP
^ITALIC LETTERING, SIZE MODIFICATION, AND SUB-SUPERSCRIPTING
ARE PROVIDED BY THE FOLLOWING OPTION SELECTOR CHARACTER
PAIRS.
.NOFILL
    $$  SELECTS ITALIC LETTERING.
    $*  SELECTS LETTERING AND INTERCHARACTER SPACING BOTH OF
        3/2 NORMAL SIZE.
    $/  SELECTS LETTERING AND INTERCHARACTER SPACING BOTH OF
        2/3 NORMAL SIZE.
    $+  SELECTS SUPERSCRIPT LETTERING.
    $-  SELECTS SUBSCRIPT LETTERING.
    $)  SELECTS LETTERING 3/2 NORMAL WIDTH.
    $(  SELECTS LETTERING 2/3 NORMAL WIDTH.
    $=  CAUSES RETURN TO NORMAL UPPER CASE ^ROMAN.
.FILL
^THESE OPTIONS ARE CUMULATIVE UNTIL THE ENTIRE GROUP IS
RESET BY TERMINATION OF PLOTTING OF THE STRING OR BY THE
$= OPTION SELECTOR PAIR.  ^IF ITALIC SUPERSCRIPTING HAD
BEEN REQUESTED BY A $$$+ OR $+$$ SELECTOR SET, ITALIC
SUBSCRIPTING COULD BE SIMPLY OBTAINED BY USE OF THE $-
SELECTOR PAIR (THOUGH A REDUNDANT $$ WOULD CAUSE NO HARM).
^HOWEVER TO OBTAIN NORMAL SIZE ITALIC LETTERING UNDER
THE SAME INITIAL CONDITIONS, IT WOULD BE NECESSARY
TO USE A $=$$ OPTION SELECTOR SET, SINCE THE $= OPTION
SELECTOR PAIR WOULD REMOVE THE ITALIC SLANT AS WELL AS
CAUSE RETURN TO THE NORMAL LETTERING SIZE.
.SKIP
^A COMMA FOLLOWING A DOLLAR SIGN CAN BE USED TO BACKSPACE.
^SUCH A BACKSPACE HAS THE SAME WIDTH AS HAVE MOST OF THE UPPER CASE
^ROMAN LETTERS AND AS HAVE ALL THE DIGITS AND PUNCTUATION MARKS AND
 UPPER AND LOWER CASE ^GREEK LETTERS.
^A PERIOD FOLLOWING A DOLLAR SIGN CAN BE USED TO SHIFT
THE PLOTTED OUTPUT TO A NEW LINE, SIMILAR TO
INCREMENTING THE ^^LINE\\ ARGUMENT OF ROUTINE ^^WRDPLT\\.
^THE NEW LINE COMMAND SHOULD ONLY BE USED, HOWEVER, IF
THE LETTERING IS BEING LEFT JUSTIFIED.
.SKIP
^ONE OF THE FOLLOWING FONTS MUST BE LOADED IF FILE
^^LTRPLC\\ IS USED.  ^THIS ADDITIONAL FILE CONTAINS THE
LETTERING COORDINATES.
^^FONT6A\\ IS RECOMMENDED FOR NORMAL USE.
.LEFT MARGIN 11
.INDENT -7
^^FONT2\\##PRIMITIVE UPPER AND LOWER CASE ^ROMAN AND
UPPER AND LOWER CASE ^GREEK.
.INDENT -7
^^FONT3\\##ROUNDED (BUT NOT STANDARD DRAFTSMAN)
UPPER AND LOWER CASE ^ROMAN AND UPPER AND LOWER
CASE ^GREEK.
.INDENT -7
^^FONT4\\##OUTLINE SANS-SERIF UPPER AND LOWER CASE
^ROMAN (MATCHES SINGLE STROKE DRAFTSMAN'S ^ROMAN).
.INDENT -7
^^FONT5\\##OUTLINE ^CASLON UPPER AND LOWER CASE 
^ROMAN (CLASSIC OUTLINE SERIF).
.INDENT -7
^^FONT6A\\#DRAFTSMAN'S UPPER AND LOWER CASE ^ROMAN
AND UPPER AND LOWER CASE ^GREEK.
.INDENT -7
^^FONT7\\##DRAFTSMAN'S UPPER AND LOWER CASE ^ROMAN
AND UPPER AND LOWER CASE FORE-HAND SEMI-SCRIPT.
.INDENT -7
^^FONT8\\##DRAFTSMAN'S UPPER AND LOWER CASE ^ROMAN
AND UPPER AND LOWER CASE BACK-HAND SEMI-SCRIPT.
.INDENT -7
^^FONT9\\##DRAFTSMAN'S UPPER AND LOWER CASE ^ROMAN
(SAME AS IN FONTS 6, 7 AND 8 WITH NO ALTERNATE
ALPHABET).

.LEFT MARGIN 0
.SPACING 1
.PAGE
.CENTER
^ROUTINES IN THE ^^GENPLT-II P\\ACKAGE
.CENTER
-------- -- --- --------- -------
.LEFT MARGIN 8
.SKIP
.INDENT -8
^^AROPLT\\##PLOTS ARROWS WITH LETTERS AS HEAD AND TAIL.
.SKIP
.INDENT -8
^^BARPLT\\##PLOTS BAR CHARTS.
.SKIP
.INDENT -8
^^DIMPLT\\##HATCHES ANY IRREGULARLY SHAPED CLOSED FIGURE
FOR WHICH THE USER HAS SUPPLIED ^X AND ^Y COORDINATE ARRAYS.
^THE HATCH LINES WITH WHICH THE FIGURE IS SHADED
CAN BE DRAWN AT ANY ANGLE.
^UNLIKE ^^DRKPLT\\ DESCRIBED BELOW, ^^DIMPLT\\
RESULTS IN A SLIGHT PRECISION LOSS IN THE INPUT ARRAYS.
^BOTH ^^DIMPLT\\ AND ^^DRKPLT\\ WINDOW THE
SHADED FIGURE ONTO THE PLOT AREA.
.SKIP
.INDENT -8
^^DRKPLT\\##HATCHES WITH HORIZONTAL AND/OR VERTICAL SHADING LINES
 ANY IRREGULARLY SHAPED
CLOSED FIGURE FOR WHICH THE USER HAS
SUPPLIED ^X AND ^Y COORDINATE ARRAYS.
.SKIP
.INDENT -8
^^DSHPLT\\##PLOTS ^X AND ^Y ARRAYS AS A DASHED LINE WITH
USER DEFINED DASH AND SPACE LENGTHS.
^THE LENGTHS OF DASHES AND OF THE
SPACES BETWEEN THEM IS INDEPENDENT OF THE DISTANCES BETWEEN
CONSECUTIVE POINTS DEFINING THE LINE.
^THE  LINE IS WINDOWED ONTO THE PLOT AREA.
.SKIP
.INDENT -8
^^GENPLT\\##PLOTS USER DEFINED ^X AND ^Y ARRAYS AS A SET OF POINTS, A CONTINUOUS
LINE, CENTERED ALPHAMERIC CHARACTERS, CENTERED
SYMBOLS (DIAMONDS, HEXAGONS ETC.) OR AS A SET OF
LINES CONNECTING BLANK ARREAS CENTERED AT
THE SPECIFIED COORDINATES (TO CONNECT POINTS
INDEPENDENTLY PLOTTED AS SYMBOLS OR CHARACTERS).
.SKIP
.INDENT -8
^^GRDPLT\\##PLOTS GRIDS WHICH MATCH THE SCALES DRAWN BY ^^SCLPLT\\.
.SKIP
.INDENT -8
^^LINPLT\\##PLOTS A LINE FROM THE POINT PREVIOUSLY SPECIFIED BY
EITHER ^^PNTPLT\\ OR ^^LINPLT\\.
.SKIP
.INDENT -8
^^NMBPLT\\##PLOTS A LEFT JUSTIFIED, BASELINE CENTERED OR RIGHT
JUSTIFIED NUMBER AT ANY ANGLE AND EITHER WITH OR WITHOUT DECIMAL POINT.
.SKIP
.INDENT -8
^^PNTPLT\\##PLOTS INDIVIDUAL POINTS
OR THE START OF NEW LINES.
.SKIP
.INDENT -8
^^SCLPLT\\##PLOTS A SET OF LINEAR SCALES, EITHER AT THE
BORDERS OF THE RECTANGULAR PLOT AREA, OR
INTERSECTING AT USER CHOSEN COORDINATES (NOT
NECESSARILY ZERO,ZERO ON THE SCALE) TO DIVIDE
THE PLOT AREA INTO QUADRANTS.  THE USER HAS
CONTROL OVER WHICH BORDERS WILL BEAR TICK MARKS,
SCALE NUMBERS AND LEGENDS.
.SKIP
.INDENT -8
^^WRDPLT\\##PLOTS A LEFT JUSTIFIED, BASELINE CENTERED, OR
RIGHT JUSTIFIED CAPTION AT ANY ANGLE.
.LEFT MARGIN 0
.PAGE
.SPACING 1
.SKIP 5
.TEST PAGE 10
.LEFT MARGIN 0
.NOFILL
^^SUBROUTINE#AROPLT(X1####,Y1####,X2####,Y2####,XFIRST,YFIRST,
####XFINAL,YFINAL,XWIDTH,YWIDTH,XCORNR,YCORNR,ITAIL#,IHEAD#,
####RELHIT,RELSPC,RELARO,LASTX#,LASTY#)\\
.FILL
.SKIP
^ROUTINE TO PLOT POSSIBLY DASHED ARROW WITH TAIL AT
POINT ^X1,^Y1 AND WITH HEAD AT POINT ^X2,^Y2.
.SKIP
^THE ROUTINES ^^DSHPLT\\ AND ^^WRDPLT\\ ARE CALLED.
^THE LETTERING ROUTINE CAPABLE OF LETTERING AT ANGLES MUST BE USED.
.SKIP
^THE ARROW CAN HAVE ONE OR MORE LETTERS CENTERED AT HEAD
AND TAIL.  ^THESE ARE SPECIFIED AS THE STRINGS ^^IHEAD\\
AND ^^ITAIL\\.  ^V'S AT BOTH ENDS WOULD GIVE A DOUBLE HEADED
ARROW.  ^EACH STRING MUST BE TERMINATED BY A DOLLAR SIGN
FOLLOWED BY A BLANK (SPACE CHARACTER) 
 OR BY SOME OTHER DOLLAR SIGN COMMAND
WHICH WOULD SPECIFY THE END OF THE STRING TO BE PLOTTED.
^IF NO TERMINATION COMMAND IS PRESENT WITHIN THE STRING,
A MAXIMUM OF 72 LETTERS WILL BE PLOTTED.
.SKIP
^A BAR CAN BE PLOTTED AT ENDS OF ARROW AS A SUBSCRIPT
MINUS SIGN.  ^IT MUST BE REMEMBERED THAT THE WIDTH OF
A CHARACTER IS USUALLY 2/3RDS OF ITS HEIGHT.  ^TO
GET BARS WITH WIDTH EQUAL TO HEIGHT OF OTHER LETTERS,
THE STRING '$)$--$ ' WOULD BE USED.
^THE $* COMMAND CHARACTER PAIR SHOULD NOT HERE BE USED
INSTEAD OF THE $) CHARACTER PAIR SINCE THE $* WOULD
ALSO GIVE AN LARGER GAP AFTER THE MINUS SIGN AND LEAD TO SLIGHTLY
INCORRECT CENTERING.
.SKIP
.LEFT MARGIN 9
.INDENT -5
^^X1\\#=#HORIZONTAL DATA COORDINATE OF TAIL OF ARROW
.INDENT -5
^^Y1\\#=#VERTICAL DATA COORDINATE OF TAIL OF ARROW
.INDENT -5
^^X2\\#=#HORIZONTAL DATA COORDINATE OF HEAD OF ARROW
.INDENT -5
^^Y2\\#=#VERTICAL DATA COORDINATE OF HEAD OF ARROW
.INDENT -9
^^XFIRST\\#=#HORIZONTAL DATA COORDINATE TO BE PLACED
AT LEFT BORDER OF PLOT AREA.
.INDENT -9
^^YFIRST\\#=#VERTICAL DATA COORDINATE TO BE PLACED
AT LOWER BORDER OF PLOT AREA.
.INDENT -9
^^XFINAL\\#=#HORIZONTAL DATA COORDINATE TO BE PLACED
AT RIGHT BORDER OF PLOT AREA.
.INDENT -9
^^YFINAL\\#=#VERTICAL DATA COORDINATE TO BE PLACED
AT UPPER BORDER OF PLOT AREA.
.INDENT -9
^^XWIDTH\\#=#HORIZONTAL WIDTH OF PLOT AREA.
.INDENT -9
^^YWIDTH\\#=#VERTICAL HEIGHT OF PLOT AREA.
.INDENT -9
^^XCORNR\\#=#HORIZONTAL DISTANCE FROM PLOTTING TABLE
ORIGIN TO LEFT PLOT EDGE.
.INDENT -9
^^YCORNR\\#=#VERTICAL DISTANCE FROM PLOTTING TABLE
ORIGIN TO LOWER PLOT EDGE.
.INDENT -8
^^ITAIL\\#=#ARRAY CONTAINING LETTER OR LETTERS TO
BE PLOTTED AT ARROW TAIL.
.INDENT -8
^^IHEAD\\#=#ARRAY CONTAINING LETTER OR LETTERS TO
BE PLOTTED AT ARROW HEAD.
.INDENT -9
^^RELHIT\\#=#LENGTH OF DASHES ALONG STEM OF ARROW
IN UNITS OF MAGNITUDE 0.02*^^YWIDTH\\.
.INDENT -9
^^RELSPC\\#=#LENGTH OF SPACES ALONG STEM OF ARROW
IN UNITS OF MAGNITUDE 0.02*^^YWIDTH\\.
.INDENT -9
^^RELARO\\#=#HEIGHT OF LETTER AT END OF ARROW
IN UNITS OF MAGNITUDE 0.02*^^YWIDTH\\.
.INDENT -8
^^LASTX\\#=#LAST ^X GRID COORDINATE PLOTTED.
.INDENT -8
^^LASTY\\#=#LAST ^Y GRID COORDINATE PLOTTED.
.SKIP 5
.TEST PAGE 10
.LEFT MARGIN 0
.NOFILL
^^SUBROUTINE#BARPLT(INDIC#,KNDBGN,KNDEND,KNTBAR,MSTBAR,RATIO#,
####TOTAL#,XWIDTH,YWIDTH,XCORNR,YCORNR,RELHIT,NAME##,LASTX#,
####LASTY#)\\
.FILL
.SKIP
^ROUTINE TO PLOT BAR CHARTS.
.SKIP
.LEFT MARGIN 9
.INDENT -8
^^INDIC\\#=#1 PLOTS HORIZONTAL BAR.
.INDENT -8
^^INDIC\\#=#2 PLOTS VERTICAL BAR.
.INDENT -8
^^INDIC\\#=#3 PLOTS HATCHING IDENTIFICATION BLOCKS.
.INDENT -9
^^KNDBGN\\#=#NUMBER OF FIRST COMPONENT TO PLOT, NOT LARGER THAN ^^KNDEND\\.
.INDENT -9
^^KNDEND\\#=#NUMBER OF FINAL COMPONENT TO PLOT, MAXIMUM IS 7.
.INDENT -9
^^KNTBAR\\#=#NUMBER OF THIS BAR IN PLOTTING SEQUENCE, FIRST BAR IS 1.
.INDENT -9
^^MSTBAR\\#=#TOTAL NUMBER OF BARS TO BE PLOTTED.
.INDENT -8
^^RATIO\\#=#ARRAY OF SEGMENT LENGTHS IN DATA UNITS.
.INDENT -8
^^TOTAL\\#=#DATA UNITS CORRESPONDING TO TOTAL WIDTH OF PLOT AREA.
.INDENT -9
^^XWIDTH\\#=#HORIZONTAL WIDTH OF PLOT AREA.
.INDENT -9
^^YWIDTH\\#=#VERTICAL HEIGHT OF PLOT AREA.
.INDENT -9
^^XCORNR\\#=#^X DISTANCE FROM PLOTTING TABLE ORIGIN TO LEFT PLOT EDGE.
.INDENT -9
^^YCORNR\\#=#^Y DISTANCE FROM PLOTTING TABLE ORIGIN TO LOWER PLOT EDGE.
.INDENT -9
^^RELHIT\\#=#HEIGHT OF PLOTTED ALPHANUMERIC CHARACTERS IN
UNITS OF 0.02*^^YWIDTH\\.
.INDENT -7
^^NAME\\#=#10 LETTER BAR TITLE OR SEQUENCE OF 10 LETTER BLOCK TITLES
.INDENT -8
^^LASTX\\#=#HORIZONTAL (^X) GRID COORDINATE OF LAST POINT PLOTTED.
.INDENT -8
^^LASTY\\#=#VERTICAL (^Y) GRID COORDINATE OF LAST POINT PLOTTED.
.SKIP
.SKIP 5
.TEST PAGE 10
.LEFT MARGIN 0
.NOFILL
^^SUBROUTINE#DIMPLT(KONTRL,XPOINT,YPOINT,##NEXT,KRDBGN,KRDEND,
####XFIRST,YFIRST,XFINAL,YFINAL,XWIDTH,YWIDTH,XCORNR,YCORNR,
####RELHIT,RELSPC,LASTX#,LASTY#)\\
.FILL
.SKIP
^ROUTINE TO DARKEN OR HATCH AN IRREGULARLY
SHAPED FIGURE.
^THE PLOTTED OUTPUT IS WINDOWED ONTO THE PLOT AREA.
  ^UNLIKE OUTPUT FROM ^^DRKPLT\\, HATCH
LINES CAN BE AT ANY ANGLE.  ^^DIMPLT\\ ROTATES THE INPUT
^^XPOINT\\ AND ^^YPOINT\\ ARRAYS PRIOR TO PROCESSING. ^THESE
ARRAYS ARE RETURNED TO THEIR ORIGINAL VALUES BEFORE
RETURNING TO THE CALLING PROGRAM, BUT THE USER
SHOULD BE AWARE THAT THERE CAN HAVE BEEN A SLIGHT
PRECISION LOSS.
^^DRKPLT\\ DOES NOT ALTER THE CONTENTS OF THE INPUT
^^XPOINT\\ AND ^^YPOINT\\ ARRAYS.
.SKIP
.LEFT MARGIN 9
.INDENT -9
^^KONTRL\\#=#SELECTS PERIMETER OR ANGLE OF HATCHING
.INDENT -9
^^KONTRL\\#=#NEGATIVE GIVES PERIMETER
.INDENT -9
^^KONTRL\\#=#0 OR GREATER, HATCHING ANGLE IN DEGREES
.INDENT -2
= 0 GIVES HORIZONTAL HATCH LINES
.INDENT -2
= 90 GIVES VERTICAL HATCH LINES
.INDENT -9
^^XPOINT\\#=#ARRAY OF ^X COORDINATES DEFINING PERIMETER
OF FIGURE.
.INDENT -9
^^YPOINT\\#=#ARRAY OF ^Y COORDINATES DEFINING PERIMETER
OF FIGURE.
.INDENT -7
^^NEXT\\#=#FIXED OR FLOATING POINT ARRAY USED AS
WORKING SPACE.  ^^NEXT\\ IS REDEFINED DURING
PROCESSING DESTROYING FORMER CONTENTS.
^^NEXT\\ MUST BE DIMENSIONED SAME OR LARGER
THAN ^^XPOINT\\ AND ^^YPOINT\\.  ^PORTION OF ^^NEXT\\
WHICH IS USED IS PARALLEL TO USED
PORTIONS OF ^^XPOINT\\ AND ^^YPOINT\\ ARRAYS.
.INDENT -9
^^KRDBGN\\#=#SUBSCRIPT OF FIRST POINT TO BE PLOTTED.
.INDENT -9
^^KRDEND\\#=#SUBSCRIPT OF FINAL POINT TO BE PLOTTED.
.INDENT -9
^^XFIRST\\#=#^X COORDINATE (IN SYSTEM USED FOR ^^XPOINT\\)
TO BE PLACED AT LEFT BORDER OF PLOT AREA.
.INDENT -9
^^YFIRST\\#=#^Y COORDINATE (IN SYSTEM USED FOR ^^YPOINT\\)
TO BE PLACED AT LOWER BORDER OF PLOT AREA.
.INDENT -9
^^XFINAL\\#=#^X COORDINATE (IN SYSTEM USED FOR ^^XPOINT\\)
TO BE PLACED AT RIGHT BORDER OF PLOT AREA.
.INDENT -9
^^YFINAL\\#=#^Y COORDINATE (IN SYSTEM USED FOR ^^YPOINT\\)
TO BE PLACED AT UPPER BORDER OF PLOT AREA.
.INDENT -9
^^XWIDTH\\#=#HORIZONTAL WIDTH (AS FRACTION OF MAXIMUM)
OF PLOT AREA.
.INDENT -9
^^YWIDTH\\#=#VERTICAL HEIGHT (AS FRACTION OF MAXIMUM)
OF PLOT AREA.
.INDENT -9
^^XCORNR\\#=#^X DISTANCE (AS FRACTION OF MAXIMUM
DIMENSION) FROM PLOTTING TABLE ORIGIN TO
LEFT PLOT EDGE.
.INDENT -9
^^YCORNR\\#=#^Y DISTANCE (AS FRACTION OF MAXIMUM
DIMENSION) FROM PLOTTING TABLE ORIGIN TO
LOWER PLOT EDGE.
.INDENT -9
^^RELHIT\\#=#DISTANCE BETWEEN ALTERNATE PAIRS OF HATCH
LINES IN UNITS OF 0.02*^^YWIDTH\\.  ^^RELHIT\\ AND
^^RELSPC\\ BOTH SET AT 1.0 WOULD GIVE 50
LINES IN DISTANCE CORRESPONDING TO HEIGHT
OF THE PLOT AREA.
.INDENT -9
^^RELSPC\\#=#DISTANCE BETWEEN ALTERNATE PAIRS OF HATCH
LINES IN UNITS OF 0.02*^^YWIDTH\\.
.INDENT -8
^^LASTX\\#=#LAST ^X GRID COORDINATE PLOTTED.
.INDENT -8
^^LASTY\\#=#LAST ^Y GRID COORDINATE PLOTTED.
.SKIP 5
.TEST PAGE 10
.LEFT MARGIN 0
.NOFILL
^^SUBROUTINE DRKPLT(KONTRL,XPOINT,YPOINT,  NEXT,KRDBGN,KRDEND,
####XFIRST,YFIRST,XFINAL,YFINAL,XWIDTH,YWIDTH,XCORNR,YCORNR,
####RELHIT, LASTX, LASTY)\\
.FILL
.SKIP
^ROUTINE TO DARKEN OR HATCH AN IRREGULARLY SHAPED FIGURE.
^ONLY HORIZONTAL AND/OR VERTICAL HATCH LINES ARE PROVIDED.
^THE ROUTINE ^^DIMPLT\\ SHOULD BE USED FOR OTHER ANGLES.
^THE PLOTTED OUTPUT IS WINDOWED ONTO THE PLOT AREA.
.SKIP
.LEFT MARGIN 9
.INDENT -9
^^KONTRL\\#=#OPTION CONTROL WHICH SELECTS TYPE OF HATCHING TO BE USED.
.INDENT -9
^^KONTRL\\#=#1 GIVES HATCHING FORMED OF PARALLEL HORIZONTAL LINES.
.INDENT -9
^^KONTRL\\#=#2 GIVES CROSSHATCH OF HORIZONTAL AND VERTICAL LINES.
.INDENT -9
^^KONTRL\\#=#3 GIVES HATCHING FORMED OF PARALLEL VERTICAL LINES.
.INDENT -9
^^KONTRL\\#=#4 PLOTS PERIMETER OF FIGURE.
.INDENT -9
^^XPOINT\\#=#ARRAY OF ^X COORDINATES DEFINING PERIMETER OF FIGURE.
.INDENT -9
^^YPOINT\\#=#ARRAY OF ^Y COORDINATES DEFINING PERIMETER OF FIGURE.
.INDENT -7
^^NEXT\\#=#FIXED OR FLOATING POINT ARRAY USED AS WORKING SPACE.
.INDENT -7
^^NEXT\\#=#IS REDEFINED BY ^^DRKPLT\\ SO FORMER CONTENTS ARE DESTROYED.
.INDENT -7
^^NEXT\\#=#MUST HAVE SAME DIMENSIONS AS ^^XPOINT\\ OR ^^YPOINT\\.
.INDENT -9
^^KRDBGN\\#=#SUBSCRIPT OF FIRST POINT TO BE PLOTTED.
.INDENT -9
^^KRDEND\\#=#SUBSCRIPT OF FINAL POINT TO BE PLOTTED.
.INDENT -9
^^XFIRST\\#=#^X COORDINATE TO BE PLACED AT LEFT BORDER OF PLOT AREA.
.INDENT -9
^^YFIRST\\#=#^Y COORDINATE TO BE PLACED AT LOWER BORDER OF PLOT AREA.
.INDENT -9
^^XFINAL\\#=#^X COORDINATE TO BE PLACED AT RIGHT BORDER OF PLOT AREA.
.INDENT -9
^^YFINAL\\#=#^Y COORDINATE TO BE PLACED AT UPPER BORDER OF PLOT AREA.
.INDENT -9
^^XWIDTH\\#=#HORIZONTAL WIDTH OF PLOT AREA.
.INDENT -9
^^YWIDTH\\#=#VERTICAL HEIGHT OF PLOT AREA.
.INDENT -9
^^XCORNR\\#=#^X DISTANCE FROM PLOTTING TABLE ORIGIN TO LEFT PLOT EDGE.
.INDENT -9
^^YCORNR\\#=#^Y DISTANCE FROM PLOTTING TABLE ORIGIN TO LOWER PLOT EDGE.
.INDENT -9
^^RELHIT\\#=#DISTACE BETWEEN HATCH LINES IN UNITS OF 0.02*^^YWIDTH\\.
.INDENT -8
^^LASTX\\#=#LAST ^X GRID COORDINATE PLOTTED.
.INDENT -8
^^LASTY\\#=#LAST ^Y GRID COORDINATE PLOTTED.
.SKIP 5
.TEST PAGE 10
.LEFT MARGIN 0
.NOFILL
^^SUBROUTINE#DSHPLT(XPOINT,YPOINT,KRDBGN,KRDEND,XFIRST,YFIRST,
####XFINAL,YFINAL,XWIDTH,YWIDTH,XCORNR,YCORNR,RELHIT,RELSPC,
####LASTX#,LASTY#)\\
.FILL
.SKIP
^ROUTINE TO PLOT DASHED LINES.
^THE LENGTH OF INDIVIDUAL DASHES AND SPACES IS INDEPENDENT OF
THE DISTANCE BETWEEN POINT COORDINATES WHICH DEFINE THE LINE.
^THE LINE PLOTTED IS WINDOWED ONTO THE PLOT AREA.
.SKIP
.LEFT MARGIN 9
.INDENT -9
^^XPOINT\\#=#ARRAY OF ^X COORDINATES OF POINTS TO BE PLOTTED.
.INDENT -9
^^YPOINT\\#=#ARRAY OF ^Y COORDINATES OF POINTS TO BE PLOTTED.
.INDENT -9
^^KRDBGN\\#=#SUBSCRIPT OF FIRST POINT TO BE PLOTTED.
.INDENT -9
^^KRDEND\\#=#SUBSCRIPT OF FINAL POINT TO BE PLOTTED.
.INDENT -9
^^XFIRST\\#=#^X COORDINATE TO BE PLACED AT LEFT BORDER OF PLOT AREA.
.INDENT -9
^^YFIRST\\#=#^Y COORDINATE TO BE PLACED AT LOWER BORDER OF PLOT AREA.
.INDENT -9
^^XFINAL\\#=#^X COORDINATE TO BE PLACED AT RIGHT BORDER OF PLOT AREA.
.INDENT -9
^^YFINAL\\#=#^Y COORDINATE TO BE PLACED AT UPPER BORDER OF PLOT AREA.
.INDENT -9
^^XWIDTH\\#=#HORIZONTAL WIDTH OF PLOT AREA.
.INDENT -9
^^YWIDTH\\#=#VERTICAL HEIGHT OF PLOT AREA.
.INDENT -9
^^XCORNR\\#=#^X DISTANCE FROM PLOTTING TABLE ORIGIN TO LEFT PLOT EDGE.
.INDENT -9
^^YCORNR\\#=#^Y DISTANCE FROM PLOTTING TABLE ORIGIN TO LOWER PLOT EDGE.
.INDENT -9
^^RELHIT\\#=#LENGTH OF DASHES IN UNITS OF MAGNITUDE 0.02*^^YWIDTH\\.
.INDENT -9
^^RELSPC\\#=#LENGTH OF SPACES IN UNITS OF MAGNITUDE 0.02*^^YWIDTH\\.
.INDENT -8
^^LASTX\\#=#LAST ^X GRID COORDINATE PLOTTED.
.INDENT -8
^^LASTY\\#=#LAST ^Y GRID COORDINATE PLOTTED.
.SKIP 5
.TEST PAGE 10
.LEFT MARGIN 0
.NOFILL
^^SUBROUTINE#GENPLT(MODE1#,MODE2#,MODE3#,XPOINT,YPOINT,KRDBGN,
####KRDEND,XFIRST,YFIRST,XFINAL,YFINAL,FIRSTX,FIRSTY,FINALX,
####FINALY,XWIDTH,YWIDTH,XCORNR,YCORNR,RELHIT,LETTER,LASTX#,
####LASTY#)\\
.FILL
.SKIP
^ROUTINE TO PLOT DATA ^X AND ^Y COORDINATE ARRAYS
AS POINTS, AS SYMBOLS, AS CHARACTERS, AS CONNECTED LINES,
OR AS LINES CONNECTING SQUARE  BLANK  AREAS
(WHICH ARE NOT OUTLINED) CENTERED AT THE INPUT COORDINATES.
^THE PLOTTING OF A POINT, OR OF A LINE SEGMENT TO A POINT
CAN BE SUPPRESSED IF THE POINT IS OUTSIDE THE PLOT AREA.
^IT MUST BE NOTED THAT THIS DOES NOT PROVIDE TRUE WINDOWING OF
A LINE CONNECTING THE SPECIFIED POINTS.  
^ROUTINE ^^DSHPLT\\ SHOULD INSTEAD BE USED, EITHER WITH VERY
LONG DASHES OR WITH ZERO LENGTH SPACES BETWEEN DASHES, TO PLOT
LINES WHICH REQUIRE TRUE WINDOWING ONTO THE PLOT AREA.
.SKIP
.LEFT MARGIN 9
.INDENT -8
^^MODE1\\#=#1 DOES NOT CHECK IF POINTS ARE IN REQUESTED PLOT AREA.
.INDENT -8
^^MODE1\\#=#2 SETS SCALES TO FIT COORDINATES OF PLOTTED POINTS.
.INDENT -8
^^MODE1\\#=#3 DOES NOT PLOT POINT COORDINATES EXCEEDING LIMITS.
.SKIP
.INDENT -8
^^MODE2\\#=#1 REQUIRES BOTH INPUT ^X AND ^Y COORDINATE ARRAYS.
.INDENT -8
^^MODE2\\#=#2 SIMULATES ^X ARRAY LEFT TO RIGHT AT EQUAL INTERVALS.
.SKIP
.INDENT -8
^^MODE3\\#=#1 GIVES PLOT WITH LINES CONNECTING BLANK
 AREAS AROUND POINTS.
.INDENT -8
^^MODE3\\#=#2 GIVES PLOT WITH LINE CONNECTING POINTS.
.INDENT -8
^^MODE3\\#=#3 GIVES PLOT WITH DOT AT EACH POINT.
.INDENT -8
^^MODE3\\#=#4 GIVES PLOT WITH ALPHANUMERIC CHARACTER AT EACH POINT.
.INDENT -8
^^MODE3\\#=#5 GIVES PLOT WITH SPECIAL SYMBOL AT EACH POINT.
.SKIP
.INDENT -9
^^XPOINT\\#=#ARRAY OF ^X COORDINATES OF POINTS TO BE PLOTTED.
.INDENT -9
^^YPOINT\\#=#ARRAY OF ^Y COORDINATES OF POINTS TO BE PLOTTED.
.INDENT -9
.SKIP
^^KRDBGN\\#=#SUBSCRIPT OF FIRST POINT TO BE PLOTTED.
.INDENT -9
^^KRDEND\\#=#SUBSCRIPT OF FINAL POINT TO BE PLOTTED.
.SKIP
.INDENT -9
^^XFIRST\\#=#^X COORDINATE TO BE PLACED AT LEFT BORDER OF PLOT AREA.
.INDENT -9
^^YFIRST\\#=#^Y COORDINATE TO BE PLACED AT LOWER BORDER OF PLOT AREA.
.INDENT -9
^^XFINAL\\#=#^X COORDINATE TO BE PLACED AT RIGHT BORDER OF PLOT AREA.
.INDENT -9
^^YFINAL\\#=#^Y COORDINATE TO BE PLACED AT UPPER BORDER OF PLOT AREA.
.SKIP
^SCALES MAY EITHER INCREASE OR DECREASE IF ^^MODE\\1 = 1 OR 3.
^SCALES ARE SELECTED TO INCREASE TOWARD RIGHT AND TOP IF ^^MODE\\1 = 2.
^INPUT LIMITS ^^XFIRST, YFIRST, XFINAL\\ AND ^^YFINAL\\ ARE IGNORED IF ^^MODE\\1 = 2.
.SKIP
.INDENT -9
^^FIRSTX\\#=#^X COORDINATE PLACED AT LEFT BORDER OF PLOT AREA.
.INDENT -9
^^FIRSTY\\#=#^Y COORDINATE PLACED AT LOWER BORDER OF PLOT AREA.
.INDENT -9
^^FINALX\\#=#^X COORDINATE PLACED AT RIGHT BORDER OF PLOT AREA.
.INDENT -9
^^FINALY\\#=#^Y COORDINATE PLACED AT UPPER BORDER OF PLOT AREA.
^^FIRSTX, FIRSTY, FINALX\\ AND ^^FINALY\\ ARE OUTPUT ARGUMENTS.
^THESE VARIABLES MAY BE USED TO DEFINE THE ENDS
OF THE SCALES TO BE DRAWN BY ^^SCLPLT\\.
^THE VALUE OF THESE OUTPUT ARGUMENTS WILL VARY FROM THE INPUT ARGUMENTS ONLY IF ^^MODE\\1 = 2.
.SKIP
.INDENT -9
^^XWIDTH\\#=#HORIZONTAL WIDTH OF PLOT AREA.
.INDENT -9
^^YWIDTH\\#=#VERTICAL HEIGHT OF PLOT AREA.
.INDENT -9
^^XCORNR\\#=#^X DISTANCE FROM PLOTTING TABLE ORIGIN TO LEFT PLOT EDGE.
.INDENT -9
^^YCORNR\\#=#^Y DISTANCE FROM PLOTTING TABLE ORIGIN TO LOWER PLOT EDGE.
.SKIP
.INDENT -9
^^RELHIT\\#=#HEIGHT IN UNITS OF 0.02*^^YWIDTH\\ OF THE LETTERS, SYMBOLS,
OR BLANK AREAS CENTERED AT EACH POINT FOR ^^MODE\\3=1, 4 OR 5
.INDENT -9
^^RELHIT\\#=#1.0 GIVES LETTERS ^^YWIDTH\\/50 HIGH.
.SKIP
.INDENT -9
^^LETTER\\#=#ALPHANUMERIC CHARACTER CENTERED AT POINTS IF ^^MODE\\3 = 4.
^THIS IS FIRST LETTER SPECIFIED BY A ^HOLLERITH FIELD
(EITHER WITHIN ENCLOSING APOSTROPHES OR AFTER A CHARACTER COUNT
AND THE LETTER ^H)
OR READ USING AN ALPHAMERIC ^A FIELD WITHIN A ^^FORMAT\\ STATEMENT.
^THE CHARACTER WILL BE PLOTTED IN THE CASE AND ALPHABET
(EITHER ^ROMAN OR ^GREEK) SELECTED PRIOR TO THE CALL TO ^^GENPLT\\.
^A DUMMY CALL TO ^^WRDPLT\\ COULD BE USED TO SELECT 
CASE AND ALPHABET.
.INDENT -9
^^LETTER\\#=#INTEGER SELECTING SPECIAL SYMBOL IF ^^MODE\\3 = 5.
SYMBOLS ARE SPECIFIED BY LETTER VALUES
.LEFT MARGIN 13
.NOFILL
#1,#2=TRIANGLE
#3,#4=SQUARE
#5,#6=PENTAGON
#7,#8=HEXAGON
#9,10=OCTAGON
11,12=CROSS
.LEFT MARGIN 9
.FILL
^TWO ORIENTATIONS OF EACH SYMBOL ARE PROVIDED.
^THESE SYMBOLS ARE INDEPENDENT OF THE FONT LOADED.
.SKIP
.INDENT -8
^^LASTX\\#=#LAST ^X GRID COORDINATE PLOTTED.
.INDENT -8
^^LASTY\\#=#LAST ^Y GRID COORDINATE PLOTTED.
.SKIP 5
.TEST PAGE 10
.LEFT MARGIN 0
.NOFILL
^^SUBROUTINE#GRDPLT(LINESX,LINESY,XFIRST,YFIRST,XFINAL,YFINAL,
####XWIDTH,YWIDTH,XCORNR,YCORNR,LASTX#,LASTY#)\\
.FILL
.SKIP
^ROUTINE TO PLOT GRIDS HAVING LINE SPACING MATCHING
THAT OF THE SCALE MARKINGS DRAWN BY ^^SCLPLT\\.
.SKIP
.LEFT MARGIN 9
.INDENT -9
^^LINESX\\#=#NUMBER OF GRID DIVISIONS ALONG HORIZONTAL SCALE BETWEEN
CONSECUTIVE HORIZONTAL SCALE NUMBERS PLOTTED BY ^^SCLPLT\\.
.INDENT -9
^^LINESY\\#=#NUMBER OF GRID DIVISIONS ALONG VERTICAL SCALE BETWEEN
CONSECUTIVE VERTICAL SCALE NUMBERS PLOTTED BY ^^SCLPLT\\.
^BORDER IS PLOTTED IF BOTH ^^LINESX\\ = 0 AND ^^LINESY\\ = 0.
.INDENT -9
^^XFIRST\\#=#LEFT LIMITING COORDINATE OF HORIZONTAL (^X) SCALE.
.INDENT -9
^^YFIRST\\#=#LOWER LIMITING COORDINATE OF VERTICAL (^Y) SCALE.
.INDENT -9
^^XFINAL\\#=#RIGHT LIMITING COORDINATE OF HORIZONTAL (^X) SCALE.
.INDENT -9
^^YFINAL\\#=#UPPER LIMITING COORDINATE OF VERTICAL (^Y) SCALE.
.INDENT -9
^^XWIDTH\\#=#HORIZONTAL PLOT WIDTH.
.INDENT -9
^^YWIDTH\\#=#VERTICAL PLOT WIDTH.
.INDENT -9
^^XCORNR\\#=#DISTANCE FROM PLOTTING TABLE ORIGIN TO LEFT PLOT EDGE.
.INDENT -9
^^YCORNR\\#=#DISTANCE FROM PLOTTING TABLE ORIGIN TO LOWER PLOT EDGE.
.INDENT -8
^^LASTX\\#=#HORIZONTAL (^X) GRID COORDINATE OF LAST POINT PLOTTED.
.INDENT -8
^^LASTY\\#=#VERTICAL (^Y) GRID COORDINATE OF LAST POINT PLOTTED.
.SKIP 5
.TEST PAGE 10
.LEFT MARGIN 0
.NOFILL
^^SUBROUTINE#LINPLT(XCOORD,YCOORD,XFIRST,YFIRST,XFINAL,YFINAL,
####XWIDTH,YWIDTH,XCORNR,YCORNR,LASTX#,LASTY#)\\
.FILL
.SKIP
^ROUTINE TO CONTINUE PREVIOUS LINE TO NEW COORDINATES.
.SKIP
.LEFT MARGIN 9
.INDENT -9
^^XCOORD\\#=#^X OR HORIZONTAL COORDINATE TO WHICH LINE IS TO BE PLOTTED
.INDENT -9
^^YCOORD\\#=#^Y OR VERTICAL COORDINATE TO WHICH LINE IS TO BE PLOTTED
.INDENT -9
^^XFIRST\\#=#^X COORDINATE COORESPONDING TO LEFT EDGE OF PLOT AREA.
.INDENT -9
^^YFIRST\\#=#^Y COORDINATE COORESPONDING TO LOWER EDGE OF PLOT AREA.
.INDENT -9
^^XFINAL\\#=#^X COORDINATE COORESPONDING TO RIGHT EDGE OF PLOT AREA.
.INDENT -9
^^YFINAL\\#=#^Y COORDINATE COORESPONDING TO UPPER EDGE OF PLOT AREA.
.INDENT -9
^^XWIDTH\\#=#HORIZONTAL WIDTH OF PLOT AREA.
.INDENT -9
^^YWIDTH\\#=#VERTICAL HEIGHT OF PLOT AREA.
.INDENT -9
^^XCORNR\\#=#^X DISTANCE FROM PLOTTING TABLE ORIGIN TO LEFT PLOT EDGE.
.INDENT -9
^^YCORNR\\#=#^Y DISTANCE FROM PLOTTING TABLE ORIGIN TO LOWER PLOT EDGE.
.INDENT -8
^^LASTX\\#=#LAST ^X GRID COORDINATE PLOTTED.
.INDENT -8
^^LASTY\\#=#LAST ^Y GRID COORDINATE PLOTTED.
.SKIP 5
.TEST PAGE 10
.LEFT MARGIN 0
.NOFILL
^^SUBROUTINE#NMBPLT(INDIC#,INDEX#,LINE##,FIGURE,KDECML,HEIGHT,
####XCORNR,YCORNR,LASTX#,LASTY#)\\
.FILL
.SKIP
^ROUTINE TO PLOT FLOATING POINT NUMBERS EITHER AS
INTEGERS OR WITH DECIMAL POINT.
.SKIP
.LEFT MARGIN 9
.INDENT -8
^^INDIC\\#=#ANGLE OF BASELINE OF NUMBER IN DEGREES FROM HORIZONTAL.
^^INDIC\\ CAN ONLY HAVE VALUES 0 AND 90 IF ^^FONT\\1^C IS USED.
.INDENT -8
^^INDEX\\#=#0 PLOTS LEFT END OF BASELINE OF NUMBER AT
THE POINT HAVING THE COORINATES ^^XCORNR\\ AND ^^YCORNR\\.
.INDENT -8
^^INDEX\\#=#1 CENTERS BASELINE OF NUMBER AT
THE POINT HAVING THE COORINATES ^^XCORNR\\ AND ^^YCORNR\\.
.INDENT -8
^^INDEX\\#=#2 PLOTS RIGHT END OF BASELINE OF NUMBER AT
THE POINT HAVING THE COORINATES ^^XCORNR\\ AND ^^YCORNR\\.
.INDENT -7
^^LINE\\#=#LINE UPON WHICH NUMBER IS TO BE PLOTTED.
^LINE STARTING AT INPUT VALUES OF ^^XCORNR\\ AND ^^YCORNR\\ IS LINE = 1.
^HIGHER VALUED LINES ARE OFFSET TO BE PLOTTED BELOW LINE NUMBER 1.
^SPACING BETWEEN LINES IS 1.5 HEIGHT OF NUMBERS PLOTTED.
.INDENT -9
^^FIGURE\\#=#FLOATING POINT NUMBER TO BE PLOTTED.
.INDENT -9
^^KDECML\\#=#NUMBER OF DECIMAL PLACES (NUMERALS RIGHT OF DECIMAL POINT)  TO BE PLOTTED.
.INDENT -9
^^KDECML\\#=#0 GIVES FIGURE PLOTTED AS INTEGER.
.INDENT -9
^^HEIGHT\\#=#HEIGHT OF NUMBERS TO BE PLOTTED.
.INDENT -9
^^XCORNR\\#=#HORIZONTAL COORDINATE OF LETTERING BASELINE.  SEE ^^INDEX\\.
.INDENT -9
^^YCORNR\\#=#VERTICAL COORDINATE OF LETTERING BASELINE.  SEE ^^INDEX\\.
.INDENT -8
^^LASTX\\#=#LAST ^X GRID COORDINATE PLOTTED.
.INDENT -8
^^LASTY\\#=#LAST ^Y GRID COORDINATE PLOTTED.
.SKIP 5
.TEST PAGE 10
.LEFT MARGIN 0
.NOFILL
^^SUBROUTINE#PNTPLT(XCOORD,YCOORD,XFIRST,YFIRST,XFINAL,YFINAL,
####XWIDTH,YWIDTH,XCORNR,YCORNR,LASTX#,LASTY#)\\
.FILL
.SKIP
^ROUTINE TO PLOT A SINGLE POINT OR THE START OF A NEW LINE.
.SKIP
.LEFT MARGIN 9
.INDENT -9
^^XCOORD\\#=#^X OR HORIZONTAL COORDINATE OF POINT TO BE PLOTTED.
.INDENT -9
^^YCOORD\\#=#^Y OR VERTICAL COORDINATE OF POINT TO BE PLOTTED.
.INDENT -9
^^XFIRST\\#=#^X COORDINATE COORESPONDING TO LEFT EDGE OF PLOT AREA.
.INDENT -9
^^YFIRST\\#=#^Y COORDINATE COORESPONDING TO LOWER EDGE OF PLOT AREA.
.INDENT -9
^^XFINAL\\#=#^X COORDINATE COORESPONDING TO RIGHT EDGE OF PLOT AREA.
.INDENT -9
^^YFINAL\\#=#^Y COORDINATE COORESPONDING TO UPPER EDGE OF PLOT AREA.
.INDENT -9
^^XWIDTH\\#=#HORIZONTAL WIDTH OF PLOT AREA.
.INDENT -9
^^YWIDTH\\#=#VERTICAL HEIGHT OF PLOT AREA.
.INDENT -9
^^XCORNR\\#=#^X DISTANCE FROM PLOTTING TABLE ORIGIN TO LEFT PLOT EDGE.
.INDENT -9
^^YCORNR\\#=#^Y DISTANCE FROM PLOTTING TABLE ORIGIN TO LOWER PLOT EDGE.
.INDENT -8
^^LASTX\\#=#LAST ^X GRID COORDINATE PLOTTED.
.INDENT -8
^^LASTY\\#=#LAST ^Y GRID COORDINATE PLOTTED.
.SKIP 5
.TEST PAGE 10
.LEFT MARGIN 0
.NOFILL
^^SUBROUTINE#SCLPLT(INDEX0,INDEX1,INDEX2,INDEX3,INDEX4,INDEX5,
####INDEX6,INDEX7,INDEX8,INDEX9,XFIRST,YFIRST,XFINAL,YFINAL,
####XCROSS,YCROSS,XWIDTH,YWIDTH,XCORNR,YCORNR,RELHIT,NAMELX,
####NAMELY,NAMEUX,NAMERY,NAME##,LASTX#,LASTY#)\\
.FILL
.SKIP
^ROUTINE TO PLOT CAPTIONS AND LINEAR SCALES CONSISTING OF BORDER LINES, TICK MARKS
AND SCALE NUMBERS.
^THE SCALE NUMBERS ARE SELECTED TO BE AS LOGICAL AS IS POSSIBLE.
^HOWEVER, EXTREMELY LARGE NUMBERS AT EITHER OR BOTH ENDS OF A SCALE,
 OR EXTREMELY SMALL DIFFERENCES
BETWEEN THE NUMBERS AT THE ENDS OF THE SCALE SHOULD BE AVOIDED
TO PREVENT OVERLAP OF THE PLOTTED NUMERALS.
.SKIP
.LEFT MARGIN 9
.INDENT -9
^^INDEX0\\#=#1 GIVES IMMEDIATE RETURN FROM ^^SCLPLT\\ SUBROUTINE.
.INDENT -9
^^INDEX0\\#=#2-4 DEFINES FORMAT OF SCALES TO BE PLOTTED.
.INDENT -9
^^INDEX0\\#=#2-3 DOES NOT CAUSE ANY ACTUAL PLOTTING TO BE UNDERTAKEN.
.INDENT -9
^^INDEX0\\#=#2 DEFINES FORMAT FOR EXTERNAL (RECTANGULAR) SCALES.
.INDENT -9
^^INDEX0\\#=#3 DEFINES FORMAT FOR INTERNAL (CROSSED) SCALES.
^INTERNAL SCALES DIVIDE THE PLOT AREA IN QUADRANTS
OF POSSIBLY UNEQUAL SIZE.
.INDENT -9
^^INDEX0\\#=#4 CAUSES ACTUAL PLOTTING OF PLOTTING AREA CORNERS.
.INDENT -9
^^INDEX0\\#=#4 MARKS CORNERS OF PLOTTING AREA WITH LARGE CROSSES.
.INDENT -9
^^INDEX0\\#=#4 VOIDS ALL OTHER OPTIONS EXCEPT CAPTION OPTIONS.
.INDENT -9
^^INDEX0\\#=#4 MIGHT BE USED FOR PAPER ALIGNMENT OR TRIMMING OF PLOTS.
.SKIP
.INDENT -9
^^INDEX1\\#=#1 GIVES NO HORIZONTAL (^X) SCALE LINES.
.INDENT -9
^^INDEX1\\#=#2-4 PLOTS HORIZONTAL (^X) SCALE LINES.
.INDENT -9
^^INDEX1\\#=#2 PLOTS ONLY LOWER HORIZONTAL (^X) SCALE LINE.
.INDENT -9
^^INDEX1\\#=#3 PLOTS BOTH UPPER AND LOWER HORIZONTAL (^X) SCALE LINES.
.INDENT -9
^^INDEX1\\#=#4 PLOTS ONLY UPPER HORIZONTAL (^X) SCALE LINE.
.SKIP
.INDENT -9
^^INDEX2\\#=#1 GIVES NO VERTICAL (^Y) SCALE LINES.
.INDENT -9
^^INDEX2\\#=#2-4 PLOTS VERTICAL (^Y) SCALE LINES.
.INDENT -9
^^INDEX2\\#=#2 PLOTS ONLY LEFT VERTICAL (^Y) SCALE LINE.
.INDENT -9
^^INDEX2\\#=#3 PLOTS BOTH LEFT AND RIGHT VERTICAL (^Y) SCALE LINES.
.INDENT -9
^^INDEX2\\#=#4 PLOTS ONLY RIGHT VERTICAL (^Y) SCALE LINE.
.SKIP
.INDENT -9
^^INDEX3\\#=#1 GIVES NO TICK MARKS ALONG HORIZONTAL (^X) SCALES.
.INDENT -9
^^INDEX3\\#=#2-4 PLOTS TICK MARKS ALONG HORIZONTAL (^X) SCALES.
.INDENT -9
^^INDEX3\\#=#2 PLOTS ONLY LOWER HORIZONTAL (^X) SCALE TICK MARKS.
.INDENT -9
^^INDEX3\\#=#3 PLOTS UPPER AND LOWER HORIZONTAL (^X) SCALE TICK MARKS.
.INDENT -9
^^INDEX3\\#=#4 PLOTS ONLY UPPER HORIZONTAL (^X) SCALE TICK MARKS.
.SKIP
.INDENT -9
^^INDEX4\\#=#1 GIVES NO TICK MARKS ALONG VERTICAL (^Y) SCALES.
.INDENT -9
^^INDEX4\\#=#2-4 PLOTS TICK MARKS ALONG VERTICAL (^Y) SCALES.
.INDENT -9
^^INDEX4\\#=#2 PLOTS ONLY LEFT VERTICAL (^Y) SCALE TICK MARKS.
.INDENT -9
^^INDEX4\\#=#3 PLOTS LEFT AND RIGHT VERTICAL (^Y) SCALE TICK MARKS.
.INDENT -9
^^INDEX4\\#=#4 PLOTS ONLY RIGHT VERTICAL (^Y) SCALE TICK MARKS.
.SKIP
.INDENT -9
^^INDEX5\\#=#1 GIVES NO SCALE NUMBERS ALONG HORIZONTAL (^X) SCALES.
.INDENT -9
^^INDEX5\\#=#2-4 PLOTS SCALE NUMBERS ALONG HORIZONTAL (^X) SCALES
(PROVIDING THESE SAME SCALES HAVE TICK MARKS SELECTED BY
^^INDEX\\3).
.INDENT -9
^^INDEX5\\#=#2 PLOTS ONLY LOWER HORIZONTAL (^X) SCALE NUMBERS.
.INDENT -9
^^INDEX5\\#=#3 PLOTS UPPER AND LOWER HORIZONTAL (^X) SCALE NUMBERS.
.INDENT -9
^^INDEX5\\#=#4 PLOTS ONLY UPPER HORIZONTAL (^X) SCALE NUMBERS.
.SKIP
.INDENT -9
^^INDEX6\\#=#1 GIVES NO SCALE NUMBERS ALONG VERTICAL (^Y) SCALES.
.INDENT -9
^^INDEX6\\#=#2-4 PLOTS SCALE NUMBERS ALONG VERTICAL (^Y) SCALES
(PROVIDING THESE SAME SCALES HAVE TICK MARKS SELECTED BY
^^INDEX\\4).
.INDENT -9
^^INDEX6\\#=#2 PLOTS ONLY LEFT VERTICAL (^Y) SCALES NUMBERS.
.INDENT -9
^^INDEX6\\#=#3 PLOTS LEFT AND RIGHT VERTICAL (^Y) SCALE NUMBERS.
.INDENT -9
^^INDEX6\\#=#4 PLOTS ONLY RIGHT VERTICAL (^Y) SCALE NUMBERS.
.SKIP
.INDENT -9
^^INDEX7\\#=#1 GIVES NO HORIZONTAL (^X) SCALE CAPTIONS.
.INDENT -9
^^INDEX7\\#=#2-4 PLOTS CAPTIONS ALONG HORIZONTAL (^X) SCALES.
.INDENT -9
^^INDEX7\\#=#2 PLOTS ONLY LOWER HORIZONTAL (^X) SCALE CAPTION.
.INDENT -9
^^INDEX7\\#=#3 PLOTS UPPER AND LOWER HORIZONTAL (^X) SCALE CAPTIONS.
.INDENT -9
^^INDEX7\\#=#4 PLOTS ONLY UPPER HORIZONTAL (^X) SCALE CAPTION.
.SKIP
.INDENT -9
^^INDEX8\\#=#0,1 GIVES NO VERTICAL (^Y) SCALE CAPTIONS.
.INDENT -9
^^INDEX8\\#=#2-4 PLOTS CAPTIONS ALONG VERTICAL (^Y) SCALES.
.INDENT -9
^^INDEX8\\#=#2 PLOTS ONLY LEFT VERTICAL (^Y) SCALE CAPTION.
.INDENT -9
^^INDEX8\\#=#3 PLOTS LEFT AND RIGHT VERTICAL (^Y) SCALE CAPTIONS.
.INDENT -9
^^INDEX8\\#=#4 PLOTS ONLY RIGHT VERTICAL (^Y) SCALE CAPTION.
.INDENT -9
^^INDEX8\\#=#ALSO CONTROLS DIRECTION OF ^^INDEX\\6 SELECTED SCALE NUMBERS.
.INDENT -9
^^INDEX8\\#=#0 PLOTS HORIZONTALLY ANY SCALE NUMBERS ON VERTICAL SCALE.
.INDENT -9
^^INDEX8\\#=#0 PREVENTS OVERLAP OF SCALE NUMBERS ON ^X AND ^Y SCALES.
.INDENT -9
^^INDEX8\\#=#1-4 PLOTS VERTICALLY ANY SCALE NUMBERS ON ^Y SCALE.
.INDENT -9
^^INDEX8\\#=#1-4 PREVENTS OVERLAP OF ^Y SCALE CAPTIONS AND NUMBERS.
.SKIP
.INDENT -9
^^INDEX9\\#=#1 GIVES NO MAIN CAPTION.
.INDENT -9
^^INDEX9\\#=#2-4 PLOTS MAIN CAPTION.
.INDENT -9
^^INDEX9\\#=#2 PLOTS MAIN CAPTION BELOW LOWER HORIZONTAL (^X) SCALE.
^THE LOCATION OF THIS MAIN CAPTION WOULD BE BELOW THE
CAPTION OF THE LOWER HORIZONTAL SCALE ^^NAMELX\\ POSSIBLY
SELECTED BY ^^INDEX\\7.
.INDENT -9
^^INDEX9\\#=#3 PLOTS MAIN CAPTION ABOVE LOWER HORIZONTAL (^X) SCALE.
^THE LOCATION OF THIS MAIN CAPTION WOULD BE ABOVE THE
TICK MARKS ON THE LOWER HORIZONTAL SCALE POSSIBLY
SELECTED BY ^^INDEX3\\.
.INDENT -9
^^INDEX9\\#=#4 PLOTS MAIN CAPTION BELOW UPPER HORIZONTAL (^X) SCALE.
^THE LOCATION OF THIS MAIN CAPTION WOULD BE BELOW THE
TICK MARKS ON THE UPPER HORIZONTAL SCALE POSSIBLY
SELECTED BY ^^INDEX3\\.
.SKIP
.INDENT -9
^^XFIRST\\#=#LEFT LIMITING COORDINATE OF HORIZONTAL (^X) SCALE.
.INDENT -9
^^YFIRST\\#=#LOWER LIMITING COORDINATE OF VERTICAL (^Y) SCALE.
.INDENT -9
^^XFINAL\\#=#RIGHT LIMITING COORDINATE OF HORIZONTAL (^X) SCALE.
.INDENT -9
^^YFINAL\\#=#UPPER LIMITING COORDINATE OF VERTICAL (^Y) SCALE.
.SKIP
.INDENT -9
^^XCROSS\\#=#HORIZONTAL COORDINATE (IN THE SYSTEM USED FOR ^^XFIRST\\
AND ^^XFINAL\\) OF THE POINT OF INTERSECTION
OF CROSSED SCALES.
.INDENT -9
^^XCROSS\\#=#IS IGNORED UNLESS ^^INDEX\\0 = 3.
.INDENT -9
^^YCROSS\\#=#VERTICAL COORDINATE (IN THE SYSTEM USED FOR ^^YFIRST\\
AND ^^YFINAL\\) OF THE POINT OF INTERSECTION
OF CROSSED SCALES.
.INDENT -9
^^YCROSS\\#=#IS IGNORED UNLESS ^^INDEX\\0 = 3.
.SKIP
.INDENT -9
^^XWIDTH\\#=#HORIZONTAL PLOT WIDTH.
.INDENT -9
^^YWIDTH\\#=#VERTICAL PLOT WIDTH.
.INDENT -9
^^XCORNR\\#=#DISTANCE FROM PLOTTING TABLE ORIGIN TO LEFT PLOT EDGE.
.INDENT -9
^^YCORNR\\#=#DISTANCE FROM PLOTTING TABLE ORIGIN TO LOWER PLOT EDGE.
.SKIP
.INDENT -9
^^RELHIT\\#=#HEIGHT OF SCALE NUMBERS IN UNITS OF 0.02*^^YWIDTH\\.
.INDENT -9
^^RELHIT\\#=#PROPORTIONS HEIGHT OF TICK MARKS, NUMBERS, AND CAPTIONS.
.INDENT -9
^^RELHIT\\#=#1.0 GIVES NUMBERS ^^YWIDTH\\/50 HIGH,
AND IS  BEST FOR LARGE PLOTS.
.INDENT -9
^^RELHIT\\#=#2.0 GIVES NUMBERS ^^YWIDTH\\/25 HIGH,
AND IS  BEST FOR SMALL PLOTS.
.SKIP
.INDENT -9
^^NAMELX\\#=#LOWER HORIZONTAL SCALE CAPTION, SAME HEIGHT AS NUMBERS.
.INDENT -9
^^NAMELX\\#=#72 CHARACTERS (OR TERMINATED BY A DOLLAR SIGN
FOLLOWED BY A BLANK (SPACE CHARACTER) WITHIN THE STRING IF FEWER THAN 72)
READ BY 14^A5,1^A2 FORMAT OR SPECIFIED BY ALPHAMERIC
STRING IN ^^DATA\\ STATEMENT OR IN ^^CALL\\ STATEMENT.
.INDENT -9
^^NAMELY\\#=#LEFT VERTICAL SCALE CAPTION, SAME HEIGHT AS NUMBERS.
.INDENT -9
^^NAMELY\\#=#72 CHARACTERS (OR TERMINATED BY A DOLLAR SIGN
FOLLOWED BY A BLANK (SPACE CHARACTER) WITHIN THE STRING IF FEWER THAN 72)
READ BY 14^A5,1^A2 FORMAT OR SPECIFIED BY ALPHAMERIC
STRING IN ^^DATA\\ STATEMENT OR IN ^^CALL\\ STATEMENT.
.INDENT -9
^^NAMEUX\\#=#UPPER HORIZONTAL SCALE CAPTION, SAME HEIGHT AS NUMBERS.
.INDENT -9
^^NAMEUX\\#=#72 CHARACTERS (OR TERMINATED BY A DOLLAR SIGN
FOLLOWED BY A BLANK (SPACE CHARACTER) WITHIN THE STRING IF FEWER THAN 72)
READ BY 14^A5,1^A2 FORMAT OR SPECIFIED BY ALPHAMERIC
STRING IN ^^DATA\\ STATEMENT OR IN ^^CALL\\ STATEMENT.
.INDENT -9
^^NAMERY\\#=#RIGHT VERTICAL SCALE CAPTION, SAME HEIGHT AS NUMBERS.
.INDENT -9
^^NAMERY\\#=#72 CHARACTERS (OR TERMINATED BY A DOLLAR SIGN
FOLLOWED BY A BLANK (SPACE CHARACTER) WITHIN THE STRING IF FEWER THAN 72)
READ BY 14^A5,1^A2 FORMAT OR SPECIFIED BY ALPHAMERIC
STRING IN ^^DATA\\ STATEMENT OR IN ^^CALL\\ STATEMENT.
.INDENT -7
^^NAME\\#=#MAIN CAPTION, HEIGHT IS 1.5 TIMES THAT OF SCALE NUMBERS.
.INDENT -7
^^NAME\\#=#72 CHARACTERS (OR TERMINATED BY A DOLLAR SIGN
FOLLOWED BY A BLANK (SPACE CHARACTER) WITHIN THE STRING IF FEWER THAN 72)
READ BY 14^A5,1^A2 FORMAT OR SPECIFIED BY ALPHAMERIC
STRING IN ^^DATA\\ STATEMENT OR IN ^^CALL\\ STATEMENT.
.SKIP
.INDENT -8
^^LASTX\\#=#HORIZONTAL (^X) GRID COORDINATE OF LAST POINT PLOTTED.
.INDENT -8
^^LASTY\\#=#VERTICAL (^Y) GRID COORDINATE OF LAST POINT PLOTTED.
.SKIP 5
.TEST PAGE 10

.LEFT MARGIN 0
.NOFILL
^^SUBROUTINE#WRDPLT(INDIC#,INDEX#,LINE##,LWORD#,LTRBGN,LTREND,
####HEIGHT,XCORNR,YCORNR,LASTX#,LASTY#)\\
.FILL
.SKIP
^ROUTINE TO PLOT CAPTIONS AT POSITIONS NOT PROVIDED
AS STANDARD BY ^^SCLPLT\\.
.SKIP
.LEFT MARGIN 9
.INDENT -8
^^INDIC\\#=#ANGLE OF LETTERING BASELINE IN DEGREES FROM HORIZONTAL.
^^INDIC\\ CAN ONLY HAVE VALUES 0 AND 90 IF ^^FONT\\1^C IS USED.
.INDENT -8
^^INDEX\\#=#0 PLOTS LEFT END OF LETTERING BASELINE AT THE POINT WITH THE COORDINATES ^^XCORNR
\\AND ^^YCORNR\\.
.INDENT -8
^^INDEX\\#=#1 CENTERS LETTERING BASELINE AT 
THE POINT WITH THE COORDINATES ^^XCORNR\\ AND ^^YCORNR\\.
.INDENT -8
^^INDEX\\#=#2 PLOTS RIGHT END OF LETTERING BASELINE AT
THE POINT WITH THE COORDINATES ^^XCORNR\\ AND ^^YCORNR\.
.INDENT -7
^^LINE\\#=#LINE UPON WHICH ALPHAMERIC STRING ^^LWORD\\ IS TO BE PLOTTED.
^LINE STARTING AT INPUT VALUES OF ^^XCORNR\\ AND ^^YCORNR\\ IS LINE = 1.
^HIGHER VALUED LINES ARE OFFSET TO BE PLOTTED BELOW LINE NUMBER 1.
^SPACING BETWEEN LINES IS 1.5 HEIGHT OF WORDS PLOTTED.
.INDENT -8
^^LWORD\\#=#WORD ARRAY TO BE PLOTTED.  ^THIS MUST EITHER
BE SPECIFIED AS A STRING IN THE ^^CALL WRDPLT\\ STATEMENT
(EITHER WITH A LEADING CHARACTER COUNT FOLLOWED BY
LETTER ^H, OR WITH LEADING AND TRAILING APOSTROPHES),
OR BE AN ARRAY WITH EACH CHARACTER BYTE BEING DEFINED
WITHIN EACH ARRAY ELEMENT (4 LETTERS PER WORD
FOR ^^IBM\\ 360 OR ^^IBM\\ 370, 5 FOR ^^PDP\\-10, 6 FOR ^^IBM\\ 7094,
10 FOR ^^CDC\\ 60 BIT COMPUTERS).  ^THIS MEANS THE ARRAY CAN
HAVE BEEN READ BY SOME MULTIPLE OF AN ^A5 FORMAT ON THE ^^PDP\\-10.
.INDENT -9
^^LTRBGN\\#=#NUMBER OF FIRST LETTER IN WORD ARRAY TO BE PLOTTED.
^THIS WOULD HAVE THE VALUE 1 IF LETTERING IS TO
INCLUDE FIRST CHARACTER IN WORD ARRAY.
.INDENT -9
^^LTREND\\#=#NUMBER OF FINAL LETTER IN WORD ARRAY TO BE PLOTTED.
^THIS PREVENTS PLOTTING OF GARBAGE IF THE DOLLAR
SIGN AND BLANK (SPACE) COMBINATION HAS NOT BEEN USED WITHIN
THE CHARACTER STRING TO TERMINATE ITS OWN PLOTTING.
.INDENT -9
^^HEIGHT\\#=#HEIGHT OF LETTERS TO BE PLOTTED.
.INDENT -9
^^XCORNR\\#=#HORIZONTAL COORDINATE OF LETTERING BASELINE.  SEE ^^INDEX\\.
.INDENT -9
^^YCORNR\\#=#VERTICAL COORDINATE OF LETTERING BASELINE.  SEE ^^INDEX\\.
.INDENT -8
^^LASTX\\#=#LAST ^X GRID COORDINATE PLOTTED.
.INDENT -8
^^LASTY\\#=#LAST ^Y GRID COORDINATE PLOTTED.
.PAGE
.SPACING 1
.CENTER
^CALLING ^HIERARCHY OF THE ^^GENPLT-II R\\OUTINES
.CENTER
------- --------- -- --- --------- --------
.LEFT MARGIN 12
.SKIP
.NOFILL
^^AROPLT    DSHPLT              PENDWN
                              PENUP
          WRDPLT    LTRPLT    IBCD
                              PENDWN
                              PENUP
.BREAK
BARPLT    HCHPLT    PENDWN
                    PENUP
          LTRPLT    IBCD
                    PENDWN
                    PENUP
          PENDWN
          PENUP
.SKIP
DIMPLT    PENDWN
          PENUP
.SKIP
DRKPLT    PENDWN
          PENUP
.SKIP
DSHPLT    PENDWN
          PENUP
.SKIP
GENPLT    LTRPLT    IBCD
                    PENDWN
                    PENUP
          PENDWN
          PENUP
.SKIP
GRDPLT    PENDWN
          PENUP
.SKIP
LINPLT    PENDWN
.SKIP
NMBPLT    LTRPLT    IBCD
                    PENDWN
                    PENUP
.BREAK
PNTPLT    PENUP
.SKIP
SCLPLT    LTRPLT    IBCD
                    PENDWN
                    PENUP
          PENDWN
          PENUP
.SKIP
WRDPLT    LTRPLT    IBCD
                    PENDWN
                    PENUP\\
.SKIP
.LEFT MARGIN 0
.FILL
.SUBTITLE ^APPENDIX
^THE ROUTINE ^^LTRPLT\\ CONSISTS
EITHER OF FILE ^^FONT\\1^C OR OF FILE
^^LTRPLC\\ AND ONE OF THE FILES ^^FONT2\\
THROUGH ^^FONT\\9.
.SPACING 1
.PAGE
.CENTER
^APPENDIX:##^INTERACTIVE ^GRAPHICS ^ROUTINES
.CENTER
---------  ----------- -------- --------
.CENTER
(SOME OF WHICH CALL ENTRIES IN FILE ^^ARDMAC\\)
.SKIP 5
^^FUNCTION IPLDST(IX,IY,JX,JY,IPENX,IPENY)\\
.SKIP
^FUNCTION TO RETURN DISTANCE FROM LINE HAVING ENDPOINTS.
^CALCULATIONS ARE PERFORMED IN INTEGER MODE
AND CAN HAVE 10 PERCENT ERROR.
.SKIP
.LEFT MARGIN 9
.INDENT -9
^^IPLDST\\#= RETURNED WITH DISTANCE
.INDENT -5
^^IX\\#= HORIZONTAL COORDINATE OF START OF LINE
.INDENT -5
^^IY\\#= VERTICAL COORDINATE OF START OF LINE
.INDENT -5
^^JX\\#= HORIZONTAL COORDINATE OF END OF LINE
.INDENT -5
^^JY\\#= VERTICAL COORDINATE OF END OF LINE
.INDENT -8
^^IPENX\\#= HORIZONTAL COORDINATE OF REFERENCE POINT
.INDENT -8
^^IPENY\\#= VERTICAL COORDINATE OF REFERENCE POINT
.SKIP 5
.LEFT MARGIN 0
.NOFILL
^^FUNCTION IPLHIT(KONTRL,IWIDE,IHIGH,IX,IY,JX,JY,IPENX,IPENY)\\
.FILL
.SKIP
^FUNCTION TO TEST IF TABLET STYLUS POINTS TO POINT
OR LINE.
^THE ROUTINES ^^CRTOFF\\ AND ^^CRTON\\ ARE CALLED.
.SKIP
.LEFT MARGIN 9
.INDENT -9
^^IPLHIT\\#= 0 RETURNED IF STYLUS DOESN'T POINT TO LINE
.INDENT -2
= 1 RETURNED IF STYLUS POINTS TO LINE
.INDENT -9
^^KONTRL\\#= 0, DOES NOT OUTLINE ACTIVE AREA
.INDENT -2
= 1, OUTLINES ACTIVE AREA IF TEST SUCCESSFUL
.INDENT -8
^^IWIDE\\#= HALF-WIDTH OF ACTIVE AREA AROUND POINT
OR LINE
.INDENT -8
^^IHIGH\\#= -1, TEST IF STYLUS POINTS TO LINE
(ACITIVE AREA EXTENDS BEYOND ENDS OF LINE)
.INDENT -2
= 0, TEST IF STYLUS POINTS TO MIDDLE OF LINE
(ACTIVE AREA EXTENDS ONLY TO ENDS OF LINE)
.INDENT -2
= POSITIVE, HALF-HEIGHT OF ACTIVE AREA
AROUND POINT (^^JX\\ AND ^^JY\\ ARE NOT USED)
.INDENT -5
^^IX\\#= HORIZONTAL COORDINATE OF POINT OR
OF END 1 OF LINE
.INDENT -5
^^IY\\#= VERTICAL COORDINATE OF POINT OR
OF END 1 OF LINE
.INDENT -5
^^JX\\#= HORIZONTAL COORDINATE OF END 2 OF LINE
.INDENT -5
^^JY\\#= VERTICAL COORDINATE OF END 2 OF LINE
.INDENT -8
^^IPENX\\#= HORIZONTAL POSITION OF STYLUS
.INDENT -8
^^IPENY\\#= VERTICAL POSITION OF STYLUS
.PAGE
.LEFT MARGIN 0
.NOFILL
^^SUBROUTINE PLTBOX(KONTRL,IWIDE,IHIGH,IX,IY,JX,JY)\\
.SKIP
.FILL
^ROUTINE TO OUTLINE POINT OR LINE WITH BOX OR DIAMOND.
^THE ROUTINES ^^CRTOFF\\ AND ^^CRTON\\ ARE CALLED.
.SKIP
.LEFT MARGIN 9
.INDENT -9
^^KONTRL\\#= 0, PLOT AS BOX (EDGES AT 0 AND 90 DEGREES)
.INDENT -2
= 1, PLOT AS DIAMOND (EDGES AT DIAGONAL)
.INDENT -8
^^IWIDE\\#= HALF-WIDTH OF BOX AROUND POINT OR LINE
.INDENT -8
^^IHIGH\\#= -1, BOX EXTENDS BEYOND ENDS OF LINE
.INDENT -2
= 0, BOX TOUCHES ENDS OF LINE
.INDENT -2
= POSITIVE, HALF-HEIGHT OF BOX AROUND
POINT (^^JX\\ AND ^^JY\\ ARE NOT USED)
.INDENT -5
^^IX\\#= HORIZONTAL COORDINATE OF POINT OR
OF END 1 OF LINE
.INDENT -5
^^IY\\#= VERTICAL COORDINATE OF POINT OR
OF END 1 OF LINE
.INDENT -5
^^JX\\#= HORIZONTAL COORDINATE OF END 2 OF LINE
.INDENT -5
^^JY\\#= VERTICAL COORDINATE OF END 2 OF LINE
.SKIP 5
.NOFILL
.LEFT MARGIN 0
^^SUBROUTINE PLTCUT(IPLCUT,IX,IY,JX,JY,MINX,MINY,MAXX,MAXY)\\
.FILL
.SKIP
^ROUTINE TO WINDOW LINE.
^THIS ROUTINE IS BASED ON ^^GENPLT-II\\ PLOTTER COUPLING
ROUTINES PUBLISHED IN VOLUME 3 OF ^COMPUTER
^PROGRAMS ^FOR ^CHEMISTRY.
.SKIP
.LEFT MARGIN 9
.INDENT -9
^^IPLCUT\\#= RETURNED AS 0 IF LINE DOES NOT PASS THRU
WINDOW.
.INDENT -2
= RETURNED AS 1 IF LINE PASSES THRU WINDOW
.INDENT -5
^^IX\\#= HORIZONTAL COORDINATE OF START OF LINE
.INDENT -5
^^IY\\#= VERTICAL COORDINATE OF START OF LINE
.INDENT -5
^^JX\\#= HORIZONTAL COORDINATE OF END OF LINE
.INDENT -5
^^JY\\#= VERTICAL COORDINATE OF END OF LINE
.INDENT -7
^^MINX\\#= HORIZONTAL COORDINATE OF LOWER LEFT
CORNER OF WINDOW
.INDENT -7
^^MINY\\#= VERTICAL COORDINATE OF LOWER LEFT CORNER
OF WINDOW
.INDENT -7
^^MAXX\\#= HORIZONTAL COORDINATE OF UPPER RIGHT
CORNER OF WINDOW
.INDENT -7
^^MAXY\\#= VERTICAL COORDINATE OF UPPER RIGHT CORNER
OF WINDOW
.SKIP
.LEFT MARGIN 0
^^PLTCUT\\ ROUTINE RETURNS ^^JX\\, ^^JY\\, ^^IX\\ AND ^^IY\\ CHANGED IF
WINDOWING IS NECESSARY.
.PAGE
.NOFILL
.LEFT MARGIN 0
^^SUBROUTINE PLTLIN(MULT,IDASH,IWEDGE,IHIGH,JHIGH,IDSPLY,IX,
IY,JDSPLY,JX,JY)\\
.SKIP
.FILL
^ROUTINE TO PLOT PARALLEL LINES BETWEEN
BLANK RECTANGLES OF DIFFERENT WIDTHS.
^THE ROUTINES ^^CRTOFF\\ AND ^^CRTON\\ ARE CALLED.
.SKIP
.LEFT MARGIN 9
.INDENT -7
^^MULT\\#= NUMBER OF PARALLEL LINES TO BE DRAWN
.INDENT -2
= 1 OR GREATER, THIS NUMBER OF LINES IS DRAWN
CENTERED BETWEEN POINT ^^IX\\ ^^IY\\ AND POINT ^^JX\\ ^^JY\\.
.INDENT -8
^^IDASH\\#= 0, CONTINUOUS LINE IS DRAWN
.INDENT -2
= 1 OR GREATER, DASHED LINE IS DRAWN
.INDENT -9
^^IWEDGE\\#= -1 OR LESS, EACH LINE IS WEDGE POINTING
FROM POINT ^^IX\\, ^^IY\\ TO POINT ^^JX\\, ^^JY\\.
.INDENT -2
= 0, NORMAL (NON-WEDGE) LINE REPRESENTATION.
.INDENT -2
= 1 OR GREATER, EACH LINE IS WEDGE POINTING
FROM POINT ^^JX\\, ^^JY\\ TO POINT ^^IX\\, ^^IY\\.
.INDENT -8
^^IHIGH\\#= SEPARATION BETWEEN LINES IF ^^MULT\\ IS NOT 1
AND/OR BETWEEN DASHES IF ^^IDASH\\ IS NOT ZERO.
^^IHIGH\\ IS SIMILARLY THE MINIMUM DASH LENGTH
AND THE MINIMUM WIDTH OF THE BROADEST WEDGE
END WHICH ARE PROPORTIONAL TO ^^IDASH\\ AND THE
ABSOLUTE VALUE OF ^^IWEDGE\\ RESPECTIVELY.
.INDENT -8
^^JHIGH\\#= HALF OF HEIGHT OF RECTANGLES 1 AND 2.
.INDENT -9
^^IDSPLY\\#= 0, LINE IS DRAWN TO COORDINATES ^^IX\\ AND ^^IY\\
.INDENT -2
= 1 OR GREATER, IS WIDTH OF BLANK RECTANGLE 1
.INDENT -5
^^IX\\#= HORIZONTAL COORDINATE OF RECTANGLE 1
.INDENT -5
^^IY\\#= VERTICAL COORDINATE OF RECTANGLE 1
.INDENT -9
^^JDSPLY\\#= 0, LINE IS DRAWN TO COORDINATES ^^JX\\ AND ^^JY\\
.INDENT -2
= 1 OR GREATER, IS WIDTH OF BLANK RECTANGLE 2
.INDENT -5
^^JX\\#= HORIZONTAL COORDINATE OF RECTANGLE 2
.INDENT -5
^^JY\\#= VERTICAL COORDINATE OF RECTANGLE 2
.SKIP 5
.LEFT MARGIN 0
.NOFILL
^^SUBROUTINE PLTTOP(IWIDE,IX,IY,JX,JY,NEWX,NEWY)\\
.SKIP
.FILL
^ROUTINE TO CALCULATE POSITION ABOVE LINE MIDPOINT.
.SKIP
.LEFT MARGIN 9
.INDENT -8
^^IWIDE\\#= DISTANCE TO BE FROM LINE
.INDENT -5
^^IX\\#= HORIZONTAL COORDINATE OF START OF LINE
.INDENT -5
^^IY\\#= VERTICAL COORDINATE OF START OF LINE
.INDENT -5
^^JX\\#= HORIZONTAL COORDINATE OF END OF LINE
.INDENT -5
^^JY\\#= VERTICAL COORDINATE OF END OF LINE
.INDENT -7
^^NEWX\\#= RETURNED WITH CALCULATED ^X COORDINATE
.INDENT -7
^^NEWY\\#= RETURNED WITH CALCULATED ^Y COORDINATE
.SPACING 1
.PAGE
.CENTER
^APPENDIX:##^ENTRY ^POINTS IN ^FILE ^^ARDMAC\\
.CENTER
---------  ----- ------ -- ---- ------
.SKIP
.LEFT MARGIN 0
^^SUBROUTINE#CRTLTR(STRING,IFIRST,IFINAL,NEWX,NEWY)\\
.BREAK
USES HARDWARE CHARACTER GENERATION TO PLOT AN
ALPHAMERIC STRING CONTAINING 67 OR FEWER CHARACTERS.
.LEFT MARGIN 13
.INDENT -9
^^STRING\\#=#7 BIT ^^ASCII\\ STRING (YOU CAN'T GET
ANY OTHER KIND FROM ^^DEC PDP\\-10 ^^FORTRAN\\).
.INDENT -9
^^IFIRST\\#=#SERIAL NUMBER OF FIRST CHARACTER.
.INDENT -9
^^IFINAL\\#=#SERIAL NUMBER OF FINAL CHARACTER. (TO
PLOT FROM 3RD THROUGH 20TH CHARACTER
IN STRING, ^^IFIRST\\=3 AND ^^IFINAL\\=20)
.INDENT -7
^^NEWX\\#=#HORIZONTAL COORDINATE OF LOWER, LEFT
CORNER OF FIRST LETTER TO BE PLOTTED.
.INDENT -7
^^NEWY\\#=#VERTICAL COORDINATE OF LOWER, LEFT
CORNER OF FIRST LETTER TO BE PLOTTED.
.SKIP
.LEFT MARGIN 0
^^SUBROUTINE CRTOFF(NEWX,NEWY)
.BREAK
\\POSITIONS ^^CRT\\ BEAM WITHOUT WRITING AT POINT ^^NEWX, NEWY.
.LEFT MARGIN 13
.INDENT -7
^^NEWX\\#=#HORIZONTAL COORDINATE FROM 0 TO 1023.
.INDENT -7
^^NEWY\\#=#VERTICAL COORDINATE FROM 0 TO 1023.
.LEFT MARGIN 0
.SKIP

^^SUBROUTINE CRTON (NEWX,NEWY)\\
.BREAK
DRAWS LINE FROM PREVIOUS BEAM POSITION TO THE
NEW POINT WITH COORDINATES ^^NEWX\\ AND ^^NEWY\\.
.LEFT MARGIN 13
.INDENT -7
^^NEWX\\#=#HORIZONTAL COORDINATE FROM 0 TO 1023.
.INDENT -7
^^NEWY\\#=#VERTICAL COORDINATE FROM 0 TO 1023.

.SKIP
.LEFT MARGIN 0
^^SUBROUTINE#CRTSCP(KONTRL)\\
SELECTS WHICH SCREEN WILL SHOW LETTERS AND DRAWN LINES.
.LEFT MARGIN 4
^^KONTRL\\#=#BIT CODED MASK SELECTING SCREEN.
.LEFT MARGIN 13
.INDENT -2
=#1, LINES WILL APPEAR ON SCREEN 1.
.INDENT -2
=#2, LINES WILL APPEAR ON SCREEN 2.
.INDENT -2
=#3, LINES WILL APPEAR ON BOTH
SCREENS 1 AND 2.
.SKIP
.LEFT MARGIN 0
^^SUBROUTINE CRTSTR(KONTRL)\\
.BREAK
SELECTS WHETHER LETTERS AND DRAWN LINES ARE STORED
ON THE ^^CRT\\ SCREEN OR MERELY MOMENTARILY VISIBLE
(THE LATTER MODE IS KNOWN AS "WRITE-THROUGH").
.LEFT MARGIN 4
^^KONTRL\\#=#0, LINES ARE MOMENTARILY VISIBLE.
.BREAK
.INDENT 7
=#1, LINES ARE STORED.
.SKIP
.LEFT MARGIN 0
^^SUBROUTINE#CRTWIP(NO ARGUMENT)\\
.BREAK
CLEARS THE CURRENTLY SELECTED SCREEN, EMPTIES INPUT BUFFER
AND RETURNS ^^ARDS\\ TERMINAL TO TELETYPE MODE.
.SKIP
.LEFT MARGIN 0
^^SUBROUTINE#CRTXYZ(NEWX,NEWY,NEWZ)\\
.BREAK
QUERIES THE TERMINAL ABOUT THE CURRENT LOCATION OF THE
TABLET STYLUS AND RETURNS STYLUS POSITION IN THE
LOCATIONS SUPPLIED AS ARGUMENTS (ORIGINAL CONTENTS
ARE DESTROYED).
.LEFT MARGIN 13
.INDENT -7
^^NEWX\\#=#HORIZONTAL COORDINATE FROM 0 TO 1023.
.INDENT -7
^^NEWY\\#=#VERTICAL COORDINATE FROM 0 TO 1023.
.INDENT -7

^^NEWZ\\#=#0, STYLUS IS PRESSED AGAINST TABLET.
.INDENT -2
=#4 OR 6, STYLUS IS WITHIN ABOUT 3/8 INCH OF THE
TABLET SURFACE.
.INDENT -2
=#-1, STYLUS IS BEYOND 3/8 INCH OF TABLET SURFACE.
.SKIP 3
.NOFILL
.LEFT MARGIN 27
#AUTHOR:##^DONALD#^E.#^BARTH
##########^DEPARTMENT#OF#^CHEMISTRY
##########^HARVARD#^UNIVERSITY
UPDATED:##^SEPTEMBER 1972