home *** CD-ROM | disk | FTP | other *** search
/ Hacker Chronicles 2 / HACKER2.BIN / 315.XYPC.DOC < prev    next >
Text File  |  1985-11-26  |  42KB  |  1,272 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.                                      NOTICE
  9.  
  10.                This software is offered as "user supported." It may be
  11.           freely copied and distributed as requred by the needs of the
  12.           user community, provided all copyright and ownership notices
  13.           remain intact, and subject to the restrictions of copyright
  14.           ownership. Resale or disstribution for profit by any indivi-
  15.           dual or organization other than the author, except by prior
  16.           written agreement, is hereby expressly forbidden.
  17.                In consideration of the time and effort represented by
  18.           this software, and in support of further development
  19.           efforts, the author is requesting a $35.00 registration fee.
  20.           Registered users will be notified directly of future updates
  21.           and/or new releases.
  22.                Please send your registration to:
  23.  
  24.                              Jack B. Klein
  25.                              1708 Aberdeen, N.E.
  26.                              Grand Rapids, MI 49355
  27.  
  28.           Be sure to include your name and mailing address for update
  29.           notification, and please indicate whether you are using the
  30.           PC-DOS or CP/M 80 version of the software.
  31.  
  32.                While every effort has been made to insure that this
  33.           software and documentation are complete and error-free, no
  34.           guarantees can be made. The author assumes no liability for
  35.           damages caused by the use or misuse of this software, or of
  36.           the results generated by it.
  37.                Any problems, comments, or questions about this
  38.           software may be directed to the author in writing at the
  39.           above address, or by electronic mail to CIS 72457,2604.
  40.  
  41.                                                   Thank you.
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.                  xx     x
  85.                 x  x   x
  86.                     x x
  87.                      x           y    y
  88.                     x x          y    y
  89.                    x   x  x      y    y
  90.                   x     xx        yyyyy
  91.                                       y
  92.                                       y
  93.                                  y    y    (c)
  94.                                   yyyy
  95.                                                    b      k
  96.                                                    b      k
  97.                                                 j  b      k   k
  98.                                                    bbbb   k kk
  99.                                       by        j  b  b   kk k
  100.                                                 j  bbbb   k   k
  101.                                              j  j
  102.                                              jjjj
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.      xy v1.2/PC, copyright 1985, Jack B. Klein
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.                               TABLE OF CONTENTS
  140.  
  141.  
  142.  
  143.  
  144.  
  145. INTRODUCTION .  .  .  .  .  .  .  .  .  .  .  .  1
  146.  
  147. OVERVIEW  .  .  .  .  .  .  .  .  .  .  .  .  .  1
  148.  
  149. SYSTEM REQUIREMENTS   .  .  .  .  .  .  .  .  .  2
  150.  
  151. THE MAIN MENU   .  .  .  .  .  .  .  .  .  .  .  3
  152.  
  153. THE FUNCTIONS IN DETAIL  .  .  .  .  .  .  .  .  5
  154.  
  155.      READ IN DATA  .  .  .  .  .  .  .  .  .  .  5
  156.  
  157.      CURVE FIT TO DATA   .  .  .  .  .  .  .  .  7
  158.  
  159.      DELETE/UNDELETE POINTS .  .  .  .  .  .  .  8
  160.  
  161.      PLOT DATA  .  .  .  .  .  .  .  .  .  .  .  9
  162.  
  163.      CALCULATE X OR Y .  .  .  .  .  .  .  .  . 14
  164.  
  165.      SAVE DATA  .  .  .  .  .  .  .  .  .  .  . 15
  166.  
  167.      EXIT .  .  .  .  .  .  .  .  .  .  .  .  . 15
  168.  
  169. INSTALLATION .  .  .  .  .  .  .  .  .  .  .  . 16
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.                                  INTRODUCTION
  205.  
  206.  
  207.      xy provides a powerful combination of data analysis and graphic
  208. presentation. While xy is particularly suited to laboratory applications, it's
  209. utility is by no means restricted, and may be readily applied to any
  210. application requiring line graphics. While no claim is made that xy is the
  211. most powerful data analysis program available, nor the most versatile graphics
  212. processor, it is felt that it offers a unique combination of computation and
  213. graphics which is not readily available in any comparable piece of software.
  214.  
  215.  
  216.  
  217.                                    OVERVIEW
  218.  
  219.      xy provides facilities for data input and selection, curve fitting,
  220. calculating results from previous curve fits, plotting data and curves, and
  221. saving data to disk. Used in appropriate sequence, these facilities enable the
  222. user to generate high quality graphic output of data in a form which can
  223. readily be included in reports or kept as part of his records.
  224.  
  225. Basic elements
  226.  
  227.      In order to use xy most effectively, it is helpful to understand how the
  228. program handles the raw data and calculated curves.
  229.      At any time, there is only one set of raw data within the program. This
  230. data is kept in an ordered list which is at all times sorted in order of
  231. increasing x-coordinate. Each data point also carries a flag allowing it to be
  232. marked "deleted." During data selection, data which is "deleted" is merely
  233. flagged to be removed from consideration during subsequent operations, and
  234. thus may be "undeleted" if desired.
  235.      Two separate curves may be fit to the data: a straight line, and a
  236. polynomial up to the fifth power of x. Each curve is determined by least
  237. squares fit to the data selected at the time of calculation. Once calculated,
  238. the curve parameters are stored independent of the raw data and of each other,
  239. and are retained until a new curve is calculated or the program exits. Thus, a
  240. straight line could be fit to one set of data, a new set of data read in, a
  241. polynomial fit to the new data, a third set of data read in, and both the
  242. straight line and the polynomial could be plotted with the third set of data.
  243.      A third option is also available when plotting hardcopy: a simple
  244. connect-the-dots plot. This option is not a calculated curve and is thus
  245. totally dependent on the data selected at plot time.
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259. xy v1.2/PC                                                             Page 1
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.                              SYSTEM REQUIREMENTS
  270.  
  271.  
  272.  
  273.           xy requires PC-DOS Version 2.11 or later. Any IBM/PC or compatible
  274.      running under this operating system should be able to run xy without
  275.      difficulty. Although xy does not use any graphics display options, the
  276.      display handling is hardware specific, and therefore no claims can be
  277.      made for MS-DOS compatability.
  278.           The printer control codes as distributed are for the IBM/PC printer,
  279.      or any compatible printer (e.g., Star SG-10 in PC mode). Other printers
  280.      with similar codes may be installed by changing the control sequences as
  281.      described below.
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325. xy v1.2/PC                                                             Page 2
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.                                  THE MAIN MENU
  336.  
  337.  
  338.      All the primary functions are dispatched from the main menu:
  339.  
  340.  
  341.                1. Read in new data
  342.                2. Curve fit to data
  343.                3. Delete/Undelete points
  344.                4. Plot data
  345.                5. Calculate X or Y
  346.                6. Save data to disk
  347.                7. EXIT
  348.  
  349. 1. Read in new data
  350.      This is the starting point of the program. Since all the other options
  351. are meaningless without data, the main menu is skipped on entry to the program
  352. and execution is transferred immediately to this routine.
  353.      Data may be input either from the keyboard, or from a data file. Input
  354. from a data file is treated exactly the same as input from the keyboard,
  355. allowing the same flexibility of delimiters, etc., and providing the same
  356. character-by-character syntax checking.
  357.  
  358. 2. Curve fit to data
  359.      The power of the program begins here! Either a straight line fit or a
  360. polynomial fit may be chosen. If the polynomial is chosen, the degree of
  361. polynomial may be specified, up to fifth order, provided sufficient data
  362. exists. The maximum available order is determined from the data at run time.
  363.  
  364. 3. Delete/Undelete points
  365.      Not all data is good data. If it is determined that some of the points in
  366. the data set are outliers and should not be used for determining the best
  367. curve, or if some data is included for comparative purposes, or if, for any
  368. reason, it is desired to hide certain data points for a time, come here to do
  369. it. Data points may be "deleted" and "undeleted" at will without losing a
  370. single value. Data which is "deleted" is not plotted, is not used in fitting
  371. curves, and is not saved to disk, but it is not erased and may be restored at
  372. any time.
  373.  
  374. 4. Plot data
  375.      Now let's see what we've got. The data is in and the curves are fit, so
  376. take a look. Unfortunately, CP/M doesn't support display graphics, so we have
  377. to fake it on the screen using o's and *'s, but that's usually enough to get
  378. the scaling set for the hardcopy.
  379.  
  380. 5. Calculate X or Y
  381.      But what were the unknowns? Once a curve fit has been calculated, it is
  382. possible to calculate the Y value corresponding to any given X value, and in
  383. the case of a linear fit, the X value corresponding to any given Y. The most
  384. recent curve fit (either linear or polynomial) is used to perform the
  385. calculations. Either curve may be extrapolated to the point of absurdity, but
  386. be forwarned: a polynomial curve is guaranteed to blow up, possibly to the
  387. point of program fatal numeric overflow, if extrapolated too far in either
  388. direction.
  389.  
  390.  
  391. xy v1.2/PC                                                             Page 3
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401. 6. Save data to disk
  402.      No need to re-enter all that data if you want to use it again! Data may
  403. be written to disk on any valid drive. Data files written by the program are
  404. in simple ASCII format, one X-Y pair per line, space delimited, with fourteen
  405. digits of floating point precision. Data which is marked "deleted" is not
  406. stored, so the effects of data selection are made permanent for future use.
  407.  
  408. 7. EXIT
  409.      All done, bye-bye.
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457. xy v1.2/PC                                                             Page 4
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.                            THE FUNCTIONS IN DETAIL
  468.  
  469.  
  470.  
  471. 1. Read in new data
  472.           On entry to this module, if there is currently data in memory, you
  473.      are optionally presented with one or two questions on what to do with the
  474.      existing data:
  475.           Erase current data? N
  476.                A Yes answer to this question results in the existing data
  477.                being removed from memory. This is the only point in the
  478.                program where DATA IS ACTUALLY ERASED! Default response is No,
  479.                which results in no action, and data is left unchanged.
  480.           Mark current data deleted? Y
  481.                If the existing data was not erased by the previous response,
  482.                this question is asked. The default response is Yes, which
  483.                causes ALL existing data to be marked "deleted" to
  484.                differentiate it from the new data about to be read in. A
  485.                response of No results in no action, the existing data is left
  486.                unchanged, and it becomes totally indistinguishable from the
  487.                new data.
  488.           Once the treatment of any existing data has been established, you
  489.      are given the option of input from the keyboard (the default), or from a
  490.      disk file:
  491.                     Is input from
  492.                          1. Keyboard
  493.                          2. Text file
  494.                          Option number [1]
  495.      1. Keyboard
  496.                Data is read from the keyboard as X-Y pairs. Input is echoed at
  497.           the bottom of the screen as it is typed, and when the pair is
  498.           complete it is added to a running list in the upper part of the
  499.           screen. The default value for any X or Y is the last previously
  500.           entered value for the respective variable.
  501.                During data input, each character is checked as it is typed for
  502.           legal syntax. If an illegal character is detected, a warning bell is
  503.           sounded, the character is echoed if it is a printable character, and
  504.           the cursor remains stationary over the illegal character. Illegal
  505.           characters are ignored in the input stream and thus need not be
  506.           deleted.
  507.                Input format for data has been made as flexible as possible
  508.           while still allowing meaningful syntax checking, with particular
  509.           consideration for numeric keypad input:
  510.                Leading spaces are ignored.
  511.                Signs (+ or -) are legal only as the first non-blank character.
  512.                Only one (the first) decimal point is legal.
  513.                A number is terminated by any one of
  514.                     a. space            b. tab
  515.                     c. comma            d. carriage return
  516.                Entry of a terminator character other than space as the first
  517.                     character enters the default value.
  518.                Any character other than the digits 0-9 and those specifically
  519.                     mentioned above is illegal and is ignored, except for ^Z,
  520.                     which terminates the input session.
  521.  
  522.  
  523. xy v1.2/PC                                                             Page 5
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      2. Text file
  533.                If input is to be from a file on disk, obviously the next thing
  534.           that is required is
  535.  
  536.                               File name:
  537.  
  538.            The name of the file is specified in standard format
  539.  
  540.                               [d:]name[.ext]
  541.  
  542.           Items in brackets are optional; only the name of the file is
  543.           required. If not specified, the following defaults apply:
  544.                     [d:]   : current logged drive
  545.                     [.ext] : file extension .DAT
  546.           If the specified file is not found, you are prompted for a new file
  547.           name. If no file name is entered, the command is cancelled and you
  548.           are returned to the main menu.
  549.                Unfortunately, xy, having been born in the 8-bit CP/M world,
  550.           does not know about hierarchical directories or path names.
  551.           Therefore, any attempt to prefix a path name to the file
  552.           specification will be rejected as an invalid name.
  553.                Once the file has been successfully opened, input is performed
  554.           exactly the same as keyboard input, including console echo.
  555.           Therefore, all the format and syntax rules given above apply equally
  556.           to disk input files. Thus, a great deal of flexibility is available
  557.           in the format of input files.
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589. xy v1.2/PC                                                             Page 6
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599. 2. Curve fit to data
  600.           Three options are available for fitting curves to the data:
  601.  
  602.                           Straight line fit [1],
  603.           Straight line forced through zero [2],
  604.                               or polynomial [3]? 1
  605.  
  606.      Whichever equation is chosen, the coefficients are calculated using
  607.      standard least squares regression methods. The straight line fit, being
  608.      the most commonly used in laboratory applications, is the default choice.
  609.           After the coefficients have been calculated, the equation and
  610.      calculated coefficients are displayed in the lower left portion of the
  611.      screen, along with the correlation statistic. This curve descriptor will
  612.      remain in place until either function 1 or 3 is selected, providing a
  613.      reference of the most recently performed curve fit (this is particularly
  614.      important when using function 5, explained below).
  615.           The results of a curve fit ot either type remain in effect until a
  616.      new curve fit of the same type is calculated, independent of any changes
  617.      in the data in memory. Thus a set of data can be compared to a curve
  618.      calculated from a completely diferent set of data. Likewise, a straight
  619.      line and a polynomial calculated from two different sets of data can
  620.      coexist with a third set of data.
  621.  
  622.      1. Straight line fit
  623.                If this curve is chosen, no further dialog is needed, and the
  624.           calculations are performed immediately. In adition to the curve
  625.           descriptor, the individual data points are listed, along with the
  626.           distance from the caculated line to each Y data point (the resi-
  627.           duals). Examination of the residuals can allow the user to detect
  628.           obviously bad data, and, in many cases, departure from linearity in
  629.           the data very quickly. "Deleted" data is also shown here for compa-
  630.           rative purposes.
  631.  
  632.      2. Straight line forced through zero
  633.                This is a slight variation on option 1, using the same
  634.           procedures, but slightly modified so that the resulting curve will
  635.           always have an intercept of zero.
  636.  
  637.      3. Polynomial
  638.                If a polynomial curve fit is chosen, the maximum degree of the
  639.           polynomial (the highest power of X to be used) must be given:
  640.  
  641.                     Degree of polynomial (1-5)? 5
  642.  
  643.                The actual maximum available is determined from the amount of
  644.           data: to fit a polynomial of degree N, at least N+1 data points must
  645.           be given. The absolute maximum degree available is 5, for data sets
  646.           of 6 or more points. Default degree is the maximum available.
  647.                WARNING: The program does not check the magnitude of the X and
  648.           Y values before performing calculations. If the magnitude of the
  649.           data is too large, numeric overflow can occur while calculating X^N,
  650.           causing the program to terminate immediately.
  651.  
  652.  
  653.  
  654.  
  655. xy v1.2/PC                                                             Page 7
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665. 3. Delete/Undelete points
  666.           This function provides a facility for limiting which data is
  667.      included in further calculations and displays. Data which is marked
  668.      deleted is ignored while performing any data-specific functions; i.e.,
  669.      curve fitting, plotting data, saving data. Thus, although in some
  670.      instances it is displayed for reference purposes, deleted data is
  671.      functionally invisible to the program. Data values are displayed
  672.      as a single column of X-Y pairs, in order of increasing X. If the most
  673.      recently calculated curve fit from function 2 was a straight line fit,
  674.      the residuals are also shown. (NOTE: The data currently in use is not
  675.      required to be the same data that was used to calculate the curve.) All
  676.      data in memory is displayed here, with data currently marked deleted
  677.      shown using the defined video attribute (usually low intensity).
  678.           Data is marked by first moving the cursor to a particular data point
  679.      using ^E to move the cursor up and ^X to move the cursor down (a la
  680.      Wordstar). Since there is no editing function here, and data must be
  681.      marked as a value pair, there are no other cursor control keys defined.
  682.      Once the cursor has been moved to the desired data point, ^G is used to
  683.      mark the point "deleted", and ^O is used to undelete. These four
  684.      characters, plus ^Q to return to the main menu, are the only characters
  685.      recognized in this function; all other characters are ignored.
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721. xy v1.2/PC                                                             Page 8
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. 4. Plot data
  731.           The primary purpose of this program is to provide graphic output of
  732.      data, so this function is, predictably, the most extensive. There are
  733.      actually two subfunctions here: screen plot and hardcopy graphics. Since
  734.      CP/M  does not support any graphics, the screen plot is a very low
  735.      resolution character plot intended only for gross examination and scaling
  736.      purposes in preparation for generating hardcopy. However, in special
  737.      cases it is possible to expand a small portion of the graph to provide
  738.      sufficient detail for close examination. The screen plot alse provides
  739.      access only to the most recently calculated curve fit, while hardcopy
  740.      graphics allows use of both curves as well as a point-to-point plot.
  741.           The first question asked is
  742.  
  743.                           Use current scale [1],
  744.                                or autoscale [2]? 1
  745.  
  746.                The current scale is the scale used for the last previous plot,
  747.           and is the default. Autoscale determines limits for the X and Y axes
  748.           so that no data point will be placed more than 6/7 of the distance
  749.           from the origin to the axis limit. The origin is always included in
  750.           the scale.
  751.                If no previous scale has been determined, there is no current
  752.           scale, this question is skipped, and an autoscale is performed.
  753.  
  754.                              Plot data [1],
  755.                           or residuals [2]? 1
  756.  
  757.                If a curve fit has been performed, either the actual data, or
  758.           the residual errors from the curve fit may be plotted. If the
  759.           residuals are chosen, they are based on the most recently calculated
  760.           curve fit. If no curve fit has been performed, this question is
  761.           not asked. The default is to plot data.
  762.  
  763.                       Plot on terminal [1],
  764.                            or hardcopy [2]? 1
  765.  
  766.                The data or residuals, as chosen above, will be plotted either
  767.           on the display screen or, after appropriate setup, on the printer.
  768.           If the screen plot is chosen, the most recently calculated curve
  769.           fit, if there is one, is automatically included.
  770.  
  771.           Screen plot
  772.                     If the screen plot is chosen, it is performed immediately.
  773.                Since CP/M does not support true graphics on the console
  774.                device, the screen plot is represented with standard printing
  775.                characters; lowercase 'o' to represent the curve, if there is
  776.                one, and asterisks ('*') to represent the data points.
  777.                Resolution on the screen plot is nineteen rows by 66 columns,
  778.                and is thus only good enough for a rough estimation of the
  779.                overall appearance of the graph.
  780.  
  781.                               Would you like to rescale the graph?
  782.  
  783.                     Once the screen plot has been presented, you are given the
  784.                opportunity to adjust the axis scales to match the specific
  785.  
  786.  
  787. xy v1.2/PC                                                             Page 9
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.                presentation desired. A positive response to this question
  797.                gives you the chance to adjust the lower and upper limits
  798.                of both axes, thus providing a completely flexible window on
  799.                the graph.
  800.  
  801.                          X-axis minimum [nn.nnnn]
  802.                          X-axis maximum [nn.nnnn]
  803.                          Y-axis minimum [nn.nnnn]
  804.                          Y-axis maximum [nn.nnnn]
  805.  
  806.                     Each value is requested in turn, with the current value
  807.                shown in brackets. The current value shown is also the default.
  808.                The only restriction on the values given is that the minimum
  809.                must be algebraically less than the maximum. If this is not
  810.                true, the maximum is set to be the chosen minimum plus 1.00.
  811.                The values resulting from this dialog become the current scale
  812.                and will be used in all further plotting until explicitly
  813.                changed.
  814.                     Once the new scale has been determined, the screen is
  815.                replotted, and you are once again given the opportunity to
  816.                rescale. This cycle is repeated until no further scaling is
  817.                requested.
  818.  
  819.           Hardcopy plot
  820.  
  821.                     If a hardcopy plot is chosen, a more extended dialog
  822.                follows, gathering the information needed to provide a
  823.                suitably annotated hardcopy graph.
  824.  
  825.                               Print to disk? N
  826.                     The option is provided to write the "hardcopy" output to a
  827.                disk file, rather than directly to the printer. This may be
  828.                advantageous if multiple copies of the same plot are required.
  829.                While it is only marginally faster while creating the plot, the
  830.                use of PIP or a similar file copy utility to pass multiple
  831.                copies to the printer (possibly by way of a submit file) is
  832.                noticeably faster than regenerating the output data on-line for
  833.                each copy. The penalty is the requirement of disk space,
  834.                approximately 24K for a low resolution plot and 86K for a high
  835.                resolution plot. It remains the user's obligation to insure
  836.                that sufficient space is available before generating a disk
  837.                copy. If the disk becomes full while writing the file, a
  838.                program fatal error will occur and xy will exit immediately to
  839.                the operating system with no chance of recovery.
  840.  
  841.                                    File name:
  842.  
  843.                          If disk output is chosen, a file name is required. As
  844.                     in other cases, xy will accept a drive name in the file
  845.                     name. The default file type, if not given, is '.PRN'. If a
  846.                     file of the same name already exists, it is deleted before
  847.                     beginning to write the new file. No backup files are
  848.                     retained.
  849.  
  850.  
  851.  
  852. xy v1.2/PC                                                             Page 10
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.                               Plot low resolution [1],
  862.                                or high resolution [2]? 1
  863.  
  864.                     The IBM printer provides several graphic modes. xy was
  865.                written to use two of them: 60 dots per inch (low resolution)
  866.                and 120 dots per inch (high resolution). The trade-off here is
  867.                processing time versus dot resolution of the output. In high
  868.                resolution mode, four times as many dots are plotted in the
  869.                same space, thus providing a crisper looking plot, with better
  870.                detail. However, this mode also requires approximately four
  871.                time as long to create. It is suggested that for routine work
  872.                the low resolution mode be used, with high resolution reserved
  873.                for special cases such as permanent archive or published
  874.                reports.
  875.  
  876.                               List raw data? N
  877.  
  878.                     The raw input data may be listed at the top of the plot in
  879.                a tabular form for comparison to the graph. Deleted data are
  880.                not included in the table. Numbers are presented in fixed
  881.                format, with the number of columns adjusted according to the
  882.                number of data points to provide a reasonably proportioned
  883.                table. If residuals are being plotted, then the Y error is
  884.                listed in place of the Y data points.
  885.  
  886.                     Depending on which curve fits are available, if any, the
  887.                next set of questions are asked conditionally. If the
  888.                corresponding curve does not exist, the question is not asked:
  889.  
  890.                               Plot linear fit? Y
  891.  
  892.                     A positive response results in the line described by the
  893.                linear fit equation being included in the graphic output. If
  894.                the fit is to be plotted, the curve descriptor may also be
  895.                printed. If the curve is not requested, then the option for
  896.                printing the curve descriptor is skipped.
  897.  
  898.                               Print curve descriptor? N
  899.  
  900.                     If requested, the curve descriptor is printed at the top
  901.                of the graph. It will include the same information and be
  902.                formatted similarly to the descriptor displayed in the lower
  903.                left portion of the screen following calculation of the curve.
  904.  
  905.                               Plot polynomial fit? Y
  906.                               Print curve descriptor? N
  907.  
  908.                     These questions perform the same functions for the
  909.                polynomial curve as the above. If both curve descriptors are
  910.                requested, the linear descriptor is printed above the
  911.                polynomial descriptor. Both curves may be included in the same
  912.                plot.
  913.  
  914.  
  915.  
  916.  
  917.  
  918. xy v1.2/PC                                                             Page 11
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.                               Plot point-to-point? N
  929.  
  930.                     No matter what options were selected for the calculated
  931.                curves, a point-to-point line may be included in the plot. This
  932.                provides straight line segments connecting the raw data points.
  933.                If two or more data points are included at the same X value,
  934.                the line segments will be drawn to the average Y value. Since
  935.                this is not a calculated equation, it is totally dependent on
  936.                the data currently in use and cannot be used in other parts of
  937.                the program as a basis for calculation.
  938.  
  939.                               Suppress plotting raw data? N
  940.  
  941.                     Raw data is normally indicated in the plot with small
  942.                crosshairs. However, is some cases, particularly if a large
  943.                number of data points are to be plotted, these crosshairs can
  944.                interfere with the readability of the graph. A positive
  945.                response to this question will "turn off" the raw data markers,
  946.                allowing a clearer view of the plotted lines.
  947.  
  948.                               Graph title:
  949.  
  950.                     A title line up to forty characters may be entered. If a
  951.                previous title has been entered, it will be displayed and
  952.                becomes the default. To erase a title line without entering a
  953.                new one, enter a space. The title will be printed in boldface,
  954.                enlarged characters, centered on the page, either above or
  955.                below the graph.
  956.  
  957.                               Put title at graph top [1],
  958.                                            or bottom [2]? 2
  959.  
  960.                     Normally, the title will be printed at the bottom of the
  961.                graph, like a caption. However, if desired, it may be placed at
  962.                the top, positioned between the raw data listing and the curve
  963.                descriptor, if these are included.
  964.  
  965.                               X-axis label:
  966.  
  967.                               Y-axis label:
  968.  
  969.                     Up to forty character axis labels may be entered, to be
  970.                placed below the X-axis scale and to the left of the Y-axis
  971.                scale. If previous labels have been entered, they are displayed
  972.                and become the defaults, like the graph title. The axis labels
  973.                are centered along the axes, with the Y-axis label printed
  974.                vertically in a column. Because of the vertical format of the
  975.                Y-axis label, certain characters, if present, are changed to
  976.                representations which are somewhat more suitable for a vertical
  977.                presentation: parentheses become quarter circles and hyphens
  978.                become slashes. The labels, as well as the scales, are printed
  979.                in condensed (17 character per inch) typeface.
  980.  
  981.  
  982.  
  983.  
  984. xy v1.2/PC                                                             Page 12
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.                     At this point, setup is complete, and the plot is
  994.                generated. While the plot is being printed, the graph title and
  995.                axis labels are displayed in the lower right portion of the
  996.                screen in the area where the setup dialog took place. The line
  997.                number being plotted is also shown, from 1 to 45. During this
  998.                time, the plot may be interrupted by striking any key, with the
  999.                option to abort the output. It is important to allow xy to
  1000.                continue through it's processing, even if the plot is aborted,
  1001.                or it may be necessary to turn the printer off and back on
  1002.                before it can be used again.
  1003.  
  1004.                     At the beginning of the plot, the printer is moved to the
  1005.                top of the next page with a form-feed, and then reset, to
  1006.                insure that no previous printer control commands have put the
  1007.                printer into a mode that may conflict with the print controls
  1008.                used by xy. Multiple plots may be generated without any
  1009.                operator adjustment of the paper, and each will begin at the
  1010.                top of a new page.
  1011.  
  1012.  
  1013.                After the current plot is completed, whether screen plot or
  1014.           hardcopy, you are asked if you want to
  1015.  
  1016.                          Continue plotting? N
  1017.  
  1018.           This allows you to loop back to the beginning of the data plotting
  1019.           routine without returning to the main menu. This is primarily a time
  1020.           saving feature, so that various graphic presentations may be
  1021.           generated and examined without having to re-select the plotting
  1022.           function.
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050. xy v1.2/PC                                                             Page 13
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059. 5. Calculate X or Y
  1060.           In applications where a best-fit curve is calculated from raw data,
  1061.      it is generally desired to use the resulting function to determine the
  1062.      value of one of the variables from an arbitrary value for the other. For
  1063.      example, one very common application is the calibration of an analytical
  1064.      procedure, expressing the analytical response as a function of standard
  1065.      concentration: once the response function has been determined, it is
  1066.      desired to back-calculate an unknown concentration from the observed
  1067.      response. This function provides facilities for performing these
  1068.      calculations.
  1069.           The most recent curve fit, either straight line or polynomial, is
  1070.      used in performing the calculations, and also determines what
  1071.      calculations may be performed:
  1072.  
  1073.           a. Straight line fit
  1074.                Calculation from a straight line fit will allow either X or Y
  1075.           to be determined. The display first prompts for a known X to
  1076.           calculate Y. If no value is given, you are prompted for a known Y
  1077.           value, and the X value will be determined. If neither X nor Y is
  1078.           given, the routine exits to the main menu.
  1079.  
  1080.           b. Polynomial fit
  1081.                Calculation from a polynomial fit will only allow Y to be
  1082.           determined for a known X. If no X value is given, the routine exits
  1083.           to the main menu.
  1084.  
  1085.           Numeric input syntax and error checking are the same as for data
  1086.      input under function 1. Reslulting X-Y pairs are displayed in a single
  1087.      column in the upper 19 lines of the screen. When this space is filled,
  1088.      display of new data begins again on line 1, overwriteng the oldest data
  1089.      on the screen. Regrettably, there is no facility for saving these
  1090.      results or passing them to hardcopy, so they must be hand-copied from
  1091.      the screen for preservation before returning to the main menu.
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116. xy v1.2/PC                                                             Page 14
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126. 6. Save data to disk
  1127.           Once a set of data has been entered into the program, it should not
  1128.      be necessary to retype the data in order to examine it again at a later
  1129.      time.  This function provides a simple and rapid means for saving a set
  1130.      of data in a disk file. The only input required is the name of the
  1131.      destination file. As in data file input, the drive may be specified
  1132.      if other than the current default is desired. and the file type, if not
  1133.      given, is .DAT.
  1134.           Data output files are ASCII, space delimited files with one X-Y pair
  1135.      per line, totally compatable with the data input function. Individual
  1136.      values are written in free format with enough digits to preserve the full
  1137.      precision of the program's internal storage format, so there is no chance
  1138.      of losing numerical accuracy by writing to disk. These files may be
  1139.      edited, if desired; however, the resulting file must contain only valid
  1140.      ASCII characters if it is to be read back in to the program.
  1141.           If a file already exists by the given output file name, the existing
  1142.      file is renamed to the file type .BAK before the new file is created. If
  1143.      a .BAK file already exists, it is first deleted. DO NOT specify an output
  1144.      file type of .BAK, as this can lead to two files in the same directory
  1145.      with the same name, making both of them unreadable.
  1146.  
  1147. 7. EXIT
  1148.           xy always returns to the operating system by executing a warm boot,
  1149.      insuring the integrity of the system and its data structures.
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182. xy v1.2/PC                                                             Page 15
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192. INSTALLATION
  1193.  
  1194.      As distributed, xy is pre-installed for the IBM/PC printer, or any other
  1195. dot-matrix printer which is IBM compatible. If you are using a different
  1196. printer which uses different command strings, but in the same general format,
  1197. you can probably modify xy to work properly with your printer by patching in
  1198. your particular control codes at the addresses below. The addresses given are
  1199. relative to CSEG when the program is loaded by DEBUG at the default starting
  1200. address (CSEG:0100).
  1201.      Strings are given as <bytes to follow> <data bytes>, and 'xx' represents
  1202. unused space which is available for extension of the string. All values are
  1203. given in hexadecimal.
  1204.  
  1205. label      address    value               description
  1206. _____      _______    _____               ___________
  1207.            xy  xy87
  1208.  
  1209. hres:     2dcd 2880   02 1b 4c xx xx xx ; string to introduce a line of 120 dot
  1210.                                         ; per inch graphics
  1211. lres:     2dd5 2888   02 1b 4b xx xx xx ; string to introduce a line of 60 dot
  1212.                                         ; per inch graphics
  1213. endgrlin: 2ddd 2890   02 0d 0a xx xx xx ; string to end graphics line and
  1214.                                         ; advance paper one line feed length
  1215. shortlf:  2de3 2896   03 1b 33 01 xx xx ; string to set line feed length to
  1216.                                         ; the shortest available..1/216" on
  1217.                                         ; IBM printers, 1/144" on Epson
  1218.                                         ; compatibles.
  1219. lflen:    2de9 289c   18                ; number of above line feeds needed
  1220.                                         ; to advance paper one print-head
  1221.                                         ; distance (8/72").
  1222. rstlf:    2deb 289e   05 1b 41 0c 1b 32 ; string to return line feed length to
  1223.                          xx xx xx       ; normal.
  1224. pica:     2df4 28a7   02 1b 50 xx xx xx ; string to set 10 CPI pitch.
  1225. condense: 2e00 28b3   02 1b 0f xx xx xx ; string to set 17 CPI pitch.
  1226. super:    2e06 28b9   03 1b 53 00 xx xx ; string to begin superscript mode.
  1227. unsuper:  2e0c 28bf   02 1b 54 xx xx xx ; string to terminate superscript mode
  1228. dblwide:  2e12 28c5   01 0e xx xx xx xx ; string to begin double wide mode
  1229. dblstrike:2e18 28cb   02 1b 47 xx xx xx ; string to begin double strike mode
  1230. nostrike: 2e1e 28d1   02 1b 48 xx xx xx ; string to end double strike mode
  1231. nowide:   2e24 28d1   01 14 xx xx xx xx ; string to end double wide mode
  1232. prinit:   2e2a 28dd   03 0c 1b 40 xx xx ; initialization string for printer..
  1233.                          xx xx xx xx xx ; sent at beginning of every graph.
  1234.                                         ; Currently <FF><ESC>'@'.
  1235. prdeinit: 2e35 28e8   02 1b 4d xx xx xx ; de-initialization string.. sent at
  1236.                          xx xx xx xx xx ; end of every graph. Currently
  1237.                                         ; sets 12 CPI print pitch.
  1238.  
  1239.      The following two addresses contain the characters used for displaying
  1240. the screen plot:
  1241.  
  1242. linechar: 2e40 28f3   f9                ; Centered block graphic dot used for
  1243.                                         ; displaying curves.
  1244. datachar: 2e41 28f4   2a                ; Asterisk, used for displaying data
  1245.                                         ; points.
  1246.  
  1247.  
  1248.  
  1249. xy v1.2/PC                                                             Page 16
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.                    This disk copy provided as a service of
  1258.  
  1259.                          THE PUBLIC (Software) LIBRARY
  1260.                             The Software Library of
  1261.                       The Houston Area League of PC Users
  1262.  
  1263.          Disk copies are available for as little as $2 each.  For a
  1264.          copy of the latest library directory and monthly software
  1265.          newsletter, send a self-addressed, stamped (two stamps),
  1266.          legal-size envelope to
  1267.  
  1268.                                   Nelson Ford
  1269.                                  P.O.Box 61565
  1270.                                Houston, TX 77208
  1271.