.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