home *** CD-ROM | disk | FTP | other *** search
/ Boston 2 / boston-2.iso / DOS / PROGRAM / BASIC / POWBASIC / LIBRARY5 / PBWNDO.EXE / lha / PBWINDOW.DOC < prev    next >
Text File  |  1990-03-26  |  74KB  |  2,411 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.                   ┌────────────────────────┐
  24.                   │                        │
  25.                   │      Windows  for      │
  26.                   │       PowerBasic       │
  27.                   │    ╔═══════════════╗   │
  28.                   └────║ PBWindow.PBU  ║───┘
  29.                        ║ Documentation ║
  30.          ┌─────────────╚═══════════════╝─────────────┐
  31.          │  Copyright (c) 1987,88,89,90 Barry Erick  │
  32.          │           75300,214 Compuserve            │
  33.          │               B.ERICK GEnie               │
  34.          └───────────────────────────────────────────┘
  35.  
  36.                         ┌─────────┐
  37.                   ┌─────┴───┐     │              (tm)
  38.                 ──│         │o    │──────────────────
  39.                   │   ┌─────┴╨──┐ │  Association of
  40.                   │   │         │─┘  Shareware
  41.                   └───│    o    │    Professionals
  42.                 ──────│    ║    │────────────────────
  43.                       └────╨────┘    MEMBER
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.                            Contents
  57.  
  58.  
  59.          1  Highlights . . . . . . . . . . . . . . . . . .  2
  60.          2  What is PBWindow . . . . . . . . . . . . . . .  5
  61.          3  How to use PBWindow with your programs . . . .  5
  62.          4  PBWindow Routines  . . . . . . . . . . . . . .  7
  63.          5  The Demo PWDemo.Bas  . . . . . . . . . . . . . 20
  64.          6  Potpourri  . . . . . . . . . . . . . . . . . . 20
  65.             6.1  Support available . . . . . . . . . . . . 20
  66.             6.2  Source Code Available . . . . . . . . . . 20
  67.             6.3  Update availability . . . . . . . . . . . 21
  68.             6.4  Distribution of the programs  . . . . . . 21
  69.             6.5  Warranty and Disclaimer . . . . . . . . . 23
  70.             6.6  Copyright Notices . . . . . . . . . . . . 23
  71.  
  72.       Appendix A  Public Variables                         25
  73.  
  74.       Appendix B  Error Codes                              29
  75.  
  76.       Appendix C  SHAREWARE                                31
  77.          C.1  Definition of Shareware  . . . . . . . . . . 31
  78.          C.2  Ombudsman  . . . . . . . . . . . . . . . . . 31
  79.  
  80.       Index                                                33
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.                                  i
  108.  
  109.  
  110.  
  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.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.                                 ii
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.                             Tables
  185.  
  186.  
  187.       Table 1: Colors for Fc,Bc,Bfc, and Bbc . . . . . . . .9
  188.       Table 2: Box Title Locations . . . . . . . . . . . . 10
  189.       Table 3: Bars Generated  . . . . . . . . . . . . . . 15
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.                                 iii
  236.  
  237.                                             PBWindow Documentation
  238.  
  239.  
  240.  
  241.  1  Highlights
  242.  
  243.  
  244.  PBWindow.PBU version 2.01 has these features:
  245.  
  246.      o  Zoom windows. A new procedure allows you to zoom windows
  247.         onto the screen.
  248.  
  249.      o  Tracking of all window attributes so when the window is
  250.         active, the window can be worked with, changed, and
  251.         restored to the original. This allows you to use the
  252.         window pointer (Wpt%) to reference any window and make
  253.         changes to it, if it is not overlaid by another window.
  254.  
  255.      o  Noise can be turned off, even if a window requests it.
  256.  
  257.      o  You can recolor a window instantly.
  258.  
  259.      o  By changing one variable in the Include file, you can
  260.         specify a minimum of 5 windows to a maximum limited by
  261.         memory and the size of your program. Since PowerBasic no
  262.         longer limits strings to 64k, and the windows are saved in
  263.         strings, PBWindow takes advantage of these new strings.
  264.         While this program looks like NewWind, which was written
  265.         for TB, there have been many changes to the program, which
  266.         now is a Unit. Some inline routines were changed to a new
  267.         statement in PowerBasic. Some Functions are now built-in
  268.         in PowerBasic. Other Inline routines had to be rewritten
  269.         as the strings no longer have to reside in one segment.
  270.  
  271.      o  Ability to automatically make a menu selection.
  272.  
  273.      o  12 Title area in a screen:
  274.  
  275.             -  Top Left
  276.             -  Top Center
  277.             -  Top Right
  278.             -  Bottom Left
  279.             -  Bottom Center
  280.             -  Bottom Right
  281.             -  Top Left Vertical Side
  282.             -  Middle Left Vertical Side
  283.             -  Lower Left Vertical Side
  284.             -  Top Right Vertical Side
  285.             -  Middle Right Vertical Side
  286.             -  Lower Right Vertical Side
  287.  
  288.      o  Both vertical and horizontal centering within a box.
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  (c) 1987-90 Barry Erick                                    Page 2
  299.  
  300.  
  301.                                             PBWindow Documentation
  302.  
  303.  
  304.  
  305.      o  13 kinds of windows:
  306.  
  307.             -  Blank (no outline)
  308.             -  Blank (no outline, no borders)
  309.             -  Single line outline, top, bottom and sides
  310.             -  Double line outline, top, bottom and sides
  311.             -  Double Vertical line outline, single Horizontal
  312.                line outline
  313.             -  Single Vertical line outline, double Horizontal
  314.                line outline
  315.             -  Single horizontal outline, no vertical outline
  316.             -  Single horizontal outline, no vertical outline, no
  317.                vertical border
  318.             -  Double horizontal outline, no vertical outline
  319.             -  Double horizontal outline, no vertical outline, no
  320.                vertical border
  321.             -  Solid block outline, top, bottom, and sides
  322.             -  Light hatch outline, top, bottom, and sides
  323.             -  Medium hatch outline, top, bottom, and sides
  324.             -  Heavy hatch outline, top, bottom, and sides
  325.  
  326.  
  327.  
  328.      o  10 kinds of shadows:
  329.  
  330.             -  None
  331.             -  Left solid drop shadow
  332.             -  Right solid drop shadow
  333.             -  Left transparent drop shadow
  334.             -  Right transparent drop shadow
  335.             -  Left light hatch drop shadow
  336.             -  Right light hatch drop shadow
  337.             -  Left medium hatch drop shadow
  338.             -  Right medium hatch drop shadow
  339.             -  Left heavy hatch drop shadow
  340.             -  Right heavy hatch drop shadow
  341.  
  342.  
  343.      o  Clear individual lines in a window
  344.  
  345.      o  Change attributes in a window on a line by line basis
  346.  
  347.      o  5 kinds of menus
  348.  
  349.             -  No highlight
  350.             -  The item is highlighted
  351.             -  The item line is highlighted
  352.             -  An arrow is used
  353.             -  An arrow is used and the item is highlighted
  354.  
  355.  
  356.      o  Restore a title outline after removing the title.
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  (c) 1987-90 Barry Erick                                    Page 3
  363.  
  364.  
  365.                                             PBWindow Documentation
  366.  
  367.  
  368.  
  369.      o  Hercules and IBM Mono compatibility. While this was
  370.         developed for color enviroments, it now works fine for
  371.         this fine mono mode.
  372.  
  373.      o  The ability to catch errors in writing programs by setting
  374.         a variable, UnderDevelopment%, to %True, and then disable
  375.         this by making it %False once your program is developed.
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  (c) 1987-90 Barry Erick                                    Page 4
  427.  
  428.  
  429.                                             PBWindow Documentation
  430.  
  431.  
  432.  
  433.  2  What is PBWindow
  434.  
  435.  
  436.  PBWindow.PBU and PBWindow.INC allows you to add pop-up windows to
  437.  your PowerBasic programs. There are 22 Public routines in
  438.  PBWindow that you can access from your program:
  439.  
  440.     1.  FUNCTION GetAttribute         12.  SUB PrtEOL
  441.     2.  SUB GetForAndBack             13.  SUB PrtEOLBox
  442.     3.  SUB PrtBox                    14.  SUB NewBoxColor
  443.     4.  SUB Rackett                   15.  SUB BuildMenu
  444.     5.  SUB RemoveBox                 16.  SUB PrtAttrBox
  445.     6.  SUB BoxTitle                  17.  SUB ClearBox
  446.     7.  SUB MakeBox                   18.  SUB Recolor
  447.     8.  SUB ZoomBox                   19.  SUB WriteScreenArea
  448.     9.  SUB BoxScroll                 20.  SUB SaveScreenArea
  449.    10.  SUB CtrBox                    21.  SUB PBWindowInit
  450.    11.  SUB CtrAllBox                 22.  SUB ScreenInit
  451.  
  452.  
  453.  3  How to use PBWindow with your programs
  454.  
  455.  
  456.  It is real easy to add PBWindow to your program. The only code
  457.  need to compile is:
  458.  
  459.                       $INCLUDE "PBWINDOW.INC"
  460.  
  461.  near the start of your program. By near, we mean you may need
  462.  some metastatements in front of this, and a DEFINT A-Z, as the
  463.  unit uses this and the $Include expects this. You should set the
  464.  variable Max.Window% to some value greater than the default of 5
  465.  by placing the statement Max.Window% = nn where n is 5 or
  466.  greater. The demo uses 14.  Also, the variable AutoBuildTime% may
  467.                                          1
  468.  be set.If not, it defaults to 30 seconds . A command line option
  469.  allows the overriding by specifying a value of 20 to 15000
  470.  seconds. To use this, start PWDemo like this: PWDemo /300 and
  471.  substitute the desired time for the 300. In the example, the time
  472.  delay will be 300 seconds. The two files needed to compile are
  473.  PBWindow.INC and PBWindow.PBU. The first file should reside in
  474.  your Include directory and the second in the Unit Source
  475.  directory. This will allow a compile to take place. However,
  476.  unless you add code to your program to make windows and use them,
  477.  the compiled code is useless.  The steps are:
  478.  
  479.     1.  Place PBWindow.INC in your Include directory
  480.  
  481.     2.  Place PBWindow.PBU in your PBU directory
  482.  _________________________________________________________________
  483.  
  484.  1. The demo starts out with this value, and then, if this value
  485.     is reached without a key being hit, it speeds up the showing
  486.     by using a 5 second delay.
  487.  
  488.  
  489.  
  490.  (c) 1987-90 Barry Erick                                    Page 5
  491.  
  492.  
  493.                                             PBWindow Documentation
  494.  
  495.  
  496.  
  497.     3.  Place the statement Max.Window% = nn where nn is the
  498.         maximum number of windows you need open at one time. 14 is
  499.         a good number, while 5 is the minimum and default if you
  500.         try to set it to a lesser number. A typical statement
  501.         would be:
  502.  
  503.                              Max.Window% = 14
  504.  
  505.     4.  Place the $INCLUDE metastatement to your program to bring
  506.         in the PBWindow.INC file. If you have this in your INC
  507.         directory and have saved your configuration so PowerBasic
  508.         knows where to find files (see Options/Directories and
  509.         Options/Save in the PowerBasic manuals or menus or help).
  510.         A typical statement would be:
  511.  
  512.                           $INCLUDE "PBWindow.INC"
  513.  
  514.     5.  You may then set the variable UnderDevelopment% to %True
  515.         to allow error checks on code you send to the PBWindow.PBU
  516.         file. Once done with the development, you can either
  517.         remove this code or make it %False. It defaults to %False.
  518.         To enable it, the statement would be:
  519.  
  520.                          UnderDevelopment% = %True
  521.  
  522.         and to disable it, you would either remove it or change it
  523.         to:
  524.  
  525.                         UnderDevelopment% = %False
  526.  
  527.     6.  The Include file sets the default variable type to be
  528.         integer, so if your program does not have a DEFINT or
  529.         other DEFxxx statement in it, the default variable type
  530.         will be Integer and not single precision. This is an
  531.         important point, if some routines no longer work when you
  532.         add PBWindows to them. It is perfectly safe to place a
  533.         DEFnnn statement after the $INCLUDE metastatement for the
  534.         rest of your program to default to your type. Note that
  535.         all calls to PBWindow routines require either Integer or
  536.         String variables and constants.
  537.  
  538.     7.  Add the various PBWindow statements to your program to add
  539.         the windows. Note that you have to Make A Box before you
  540.         can Print To A Box. A box is the same as a window, and may
  541.         be referenced to in either way in this documentation.
  542.  
  543.  To compile the demo, simply load PWDemo.Bas into the IDE and
  544.  press Alt-F9 or F10/Compile/Compile. From the PBC, simply type
  545.  PBC PWDemo -CE. All command switching has been taken care of in
  546.  the program. Note that the demo expects to find DayDate.pbu and
  547.  PbWindow.PBU in either your default directory or PBUDestination
  548.  library and PBWindow.INC in your default or INClude directory.
  549.  The file DayDate is only used in the demo and is not needed to
  550.  use PBWindow.PBU and PbWindow.INC. Details to the use of
  551.  
  552.  
  553.  
  554.  (c) 1987-90 Barry Erick                                    Page 6
  555.  
  556.  
  557.                                             PBWindow Documentation
  558.  
  559.  
  560.  
  561.  DayDate.PBU are in the PWdemo.Bas source file. Additional details
  562.  may be in a file called Readme if necessary.
  563.  
  564.  
  565.  4  PBWindow Routines
  566.  
  567.  
  568.  There are three main routines to PBWindows, MakeBox, ZoomBox and
  569.  RemoveBox. MakeBox or ZoomBox are the first procedures to call to
  570.  make a window, and RemoveBox is the last called, to remove the
  571.  window. The rest of the 22 routines support these two main
  572.  routines.
  573.  
  574.  MakeBox         This routine makes a box. Your limit on the
  575.                  maximum number of windows open at any time is set
  576.                  with the Max.Window% variable. The calling
  577.                  sequence is:
  578.  
  579.                       Call MakeBox(Wr%,Wc%,Wh%,Ww%,fc%,bc%,BoxKind%,_
  580.                                    Shadow%,Racket%,Bfc%,Bbc%)
  581.  
  582.                  Where:
  583.  
  584.                  Wr%             WindowRow. The row on the screen
  585.                                  where the windows top row shall
  586.                                  be placed.
  587.  
  588.                  Wc%             WindowColumn. The Column on the
  589.                                  screen where the windows left
  590.                                  side will be placed.
  591.  
  592.                  Wh%             WindowHeight. The number of rows
  593.                                  (not the row number) that the
  594.                                  height of the window will take.
  595.                                  This must be two more than the
  596.                                  number of rows you plan to place
  597.                                  within the window.
  598.  
  599.                  Ww%             WindowWidth. The number of
  600.                                  columns (not the column number)
  601.                                  that the column will take.
  602.  
  603.                  fc%             ForegroundColor. This is the
  604.                                  color the text within the box
  605.                                  will take. See Table 1 for valid
  606.                                  numbers.
  607.  
  608.                  bc%             BackgroundColor. This is the
  609.                                  color the text within the box
  610.                                  will take as its background. See
  611.                                  table 1 for valid numbers.
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  (c) 1987-90 Barry Erick                                    Page 7
  619.  
  620.  
  621.                                             PBWindow Documentation
  622.  
  623.  
  624.  
  625.                  BoxKind%        This defines if there will be a
  626.                                  outline around the window. There
  627.                                  are 11 legal values:
  628.  
  629.                                       0 = Blank (no outline)
  630.                                       1 = Single lines
  631.                                       2 = Double lines
  632.                                       3 = Double vert, Single horiz
  633.                                       4 = Single vert, Double horiz
  634.                                       5 = Single horiz, No vert
  635.                                       6 = Double horiz, No vert
  636.                                       7 = Solid border, all around
  637.                                       8 = Light Hatch, all around
  638.                                       9 = Medium Hatch, all around
  639.                                       10 = Heavy Hatch, all around
  640.                                       11 = Same as 5, with no border
  641.                                       12 = Same as 6, with no border
  642.                                       13 = Same as 0, with no borders
  643.  
  644.                  Shadow%         This defines if you want a black
  645.                                  drop shadow, and if so, if you
  646.                                  want that shadow to be
  647.                                  transparent. There are 11 Drop
  648.                                  Shadow types:
  649.  
  650.                                       0 = None
  651.                                       1 = Left , solid
  652.                                       2 = Right , solid
  653.                                       3 = Left , transparent
  654.                                       4 = Right , transparent
  655.                                       5 = Left , Light Hatch
  656.                                       6 = Right , Light Hatch
  657.                                       7 = Left , Medium Hatch
  658.                                       8 = Right , Medium Hatch
  659.                                       9 = Left , Heavy Hatch
  660.                                       10 = Right , Heavy Hatch
  661.  
  662.                  Racket%         Defines whether you want noise
  663.                                  when the window opens or closes.
  664.                                  There are 2 valid values:
  665.  
  666.                                       0 = No Racket or Noise
  667.                                       1 = Racket or Noise
  668.  
  669.                  Bfc%            BoxlineForegroundColor. This is
  670.                                  the color the BoxKind line will
  671.                                  have if there is a boxline. For
  672.                                  it to be the same as Fc, use a
  673.                                  -1, otherwise all values for Fc
  674.                                  are valid for Bfc.
  675.  
  676.                  Bbc%            BoxlineBackgroundColor. This is
  677.                                  the color the BoxKind line
  678.                                  background will have if there is
  679.  
  680.  
  681.  
  682.  (c) 1987-90 Barry Erick                                    Page 8
  683.  
  684.  
  685.                                             PBWindow Documentation
  686.  
  687.  
  688.  
  689.                                  a boxline. For it to be the same
  690.                                  as Bc, use a -1, otherwise all
  691.                                  values for Bc are valid for Bbc.
  692.                                  Note: If you have a shadow, do
  693.                                  not use 0 (or Black) for best
  694.                                  results.
  695.  
  696.                       Table 1: Colors for Fc,Bc,Bfc, and Bbc
  697.  
  698.                       0    Black (16)      8   Gray (24)
  699.                       1    Blue (17)       9   LtBlue (25)
  700.                       2    Green (18)     10   LtGreen (26)
  701.                       3    Cyan (19)      11   LtCyan (27)
  702.                       4    Red (20)       12   LtRed (28)
  703.                       5    Magenta (21)   13   LtMagenta (29)
  704.                       6    Brown (22)     14   Yellow (30)
  705.                       7    White (23)     15   Bright White (31)
  706.                                 16-31     Blinks Foreground
  707.  
  708.                  Note that the minimum and maximum values for Wr,
  709.                  Wc, Wh, and Ww are dependent on the Shadow%
  710.                  value. The screen positions are normally 1 thru
  711.                  80 across and 1 thru 25 up and down. When a
  712.                  shadow is involved, the bottom of the raster is
  713.                  always 1 more than Wh, as the width is also one
  714.                  greater than Ww specifies. If we are calling for
  715.                  a left drop shadow, then the starting column is
  716.                  actually one less than Wc, and so the minimum
  717.                  value is 2. For a right drop shadow, the maximum
  718.                  screen position is 79, as position 80 is taken by
  719.                  the shadow.
  720.  
  721.  ZoomBox         This routine makes a window that grows in size as
  722.                  it is made. Other than this, it is exactly the
  723.                  same as MakeBox. Refer to MakeBox on page 4 for
  724.                  details of the parameters.
  725.  
  726.  Rackett         This procedure makes a noise if the variable
  727.                  NoNoise% is %True. If NoNoise% is %False, this
  728.                  procedure then does nothing. The Calling sequence
  729.                  is:
  730.  
  731.                       Call Rackett
  732.  
  733.  RemoveBox       This routine removes a opened window. It removes
  734.                  the last opened window, and there are no
  735.                  parameters to pass. The Calling sequence is:
  736.  
  737.                       Call RemoveBox
  738.  
  739.  GetAttribute    This function returns a integer attribute when
  740.                  supplied with Forecolor and BackColor, as defined
  741.                  in Table 1. Usage:
  742.  
  743.  
  744.  
  745.  
  746.  (c) 1987-90 Barry Erick                                    Page 9
  747.  
  748.  
  749.                                             PBWindow Documentation
  750.  
  751.  
  752.  
  753.                       variable% = GetAttribute(ForeColor%,BackColor%)
  754.  
  755.  GetForAndBack   This procedure supplies the ForeColor and
  756.                  BackColor integers from a supplied integer
  757.                  attribute. Calling sequence is:
  758.  
  759.                       Call GetForAndBack(attr%,forecolor%,backcolor%)
  760.  
  761.                  where forecolor and backcolor are as defined in
  762.                  Table 1.
  763.  
  764.  PrtBox          This procedure prints a string within the
  765.                  currently (last) open window. A Call MakeBox()
  766.                  must have first been made. Usage:
  767.  
  768.                       Call PrtBox(r1%,c1%,stuff$)
  769.  
  770.                  where:
  771.  
  772.                      o  r1% = Row within the window, not screen.
  773.                         First available row is 1, and is
  774.                         referenced to Wr+1. The last row available
  775.                         is Wh-1.
  776.                      o  c1% = Column within the window, not
  777.                         screen. First available column is 1, and
  778.                         is referenced to Wc+1. The last column is
  779.                         Ww-1.
  780.                      o  Stuff$ = The string to print at the Fc and
  781.                         Fc used when the window was made with
  782.                         MakeBox.
  783.  
  784.  BoxTitle        This places a title on the border line of a box
  785.                  already made with a call to MakeBox(). There are
  786.                  12 places, and values, that can be passed. Usage
  787.                  is:
  788.  
  789.                       Call BoxTitle(Where%,What$,Bxfc%,Bxbc%)
  790.  
  791.                  Where:
  792.  
  793.                  Where%          Defines one of 12 places around
  794.                                  the window box for the title to
  795.                                  be:
  796.  
  797.                                    Table 2: Box Title Locations
  798.  
  799.                                    Horizontal             Vertical
  800.                                  1 = Top Left         7 = Middle Left
  801.                                  2 = Top Middle       8 = Middle Right
  802.                                  3 = Top Right        9 = Top Left
  803.                                  4 = Bottom Left     10 = Bottom Left
  804.                                  5 = Bottom Middle   11 = Top Right
  805.                                  6 = Bottom Right    12 = Bottom Right
  806.  
  807.  
  808.  
  809.  
  810.  (c) 1987-90 Barry Erick                                   Page 10
  811.  
  812.  
  813.                                             PBWindow Documentation
  814.  
  815.  
  816.  
  817.                  What$           Is the Text to place Where. Make
  818.                                  sure it fits. If this is Null,
  819.                                  then the border is rebuilt. Also,
  820.                                  if first character of What$ =
  821.                                  chr$(234) (Ω), then the title
  822.                                  border location is rebuilt using
  823.                                  the new string.
  824.  
  825.                  Bxfc%           Is the integer color What$ will
  826.                                  be. It may be any valid
  827.                                  foreground color as defined in
  828.                                  Table 1. It will be the same as
  829.                                  Bfc if made equal to -1.
  830.  
  831.                  Bxbc%           Is the integer color the
  832.                                  background of What$ will be. It
  833.                                  may be any valid background color
  834.                                  as in Table 1. It usually looks
  835.                                  best if it is the same as Bbc.
  836.                                  Making it  equal to -1 will make
  837.                                  it equal to Bbc.
  838.  
  839.  BoxScroll       This scrolls the text within a window up or down
  840.                  one row at a time at a specified color. This
  841.                  allows you to scroll off text in one color, and
  842.                  bring it back in another color. The entire window
  843.                  is cleared by calling this routine the number of
  844.                  rows there is in the window. The calling sequence
  845.                  is:
  846.  
  847.                       Call BoxScroll(Direction%,Fcolor%,Bcolor%)
  848.  
  849.                  Where:
  850.  
  851.                  Direction%      can be one of two values:
  852.                                  0 = Up one row
  853.                                  1 = Down one row
  854.  
  855.                  FColor%         Is the color text will be on the
  856.                                  new row, if any is pulled to it,
  857.                                  which it usually isn't. Valid
  858.                                  FColors are the same as Fc in
  859.                                  Table 1. A value of -1 will make
  860.                                  it the same as Fc.
  861.  
  862.                  BColor%         Is the color of the row
  863.                                  background that is scrolled in.
  864.                                  Valid BColors are the same as Bc,
  865.                                  as shown in Table 1.  A value of
  866.                                  -1 will make it the same as Bc.
  867.  
  868.  CtrBox          This is the same as PrtBox, except it centers the
  869.                  text on the row within the window. The Calling
  870.                  sequence is:
  871.  
  872.  
  873.  
  874.  (c) 1987-90 Barry Erick                                   Page 11
  875.  
  876.  
  877.                                             PBWindow Documentation
  878.  
  879.  
  880.  
  881.                       Call CtrBox(r1%,Stuff$)
  882.  
  883.                  Where:
  884.  
  885.                  r1%             Is the row within the window to
  886.                                  center the string Stuff$.
  887.  
  888.                  Stuff$          Is the text to center within the
  889.                                  window at row r1. The color was
  890.                                  defined when the window was made
  891.                                  with MakeBox().
  892.  
  893.  CtrAllBox       This is similar to CtrBox, except it centers the
  894.                  text in the window, both vertically and
  895.                  horizontal. The calling sequence is:
  896.  
  897.                       Call CtrAllBox(Which%,HowMany%,Stuff$)
  898.  
  899.                  Where:
  900.  
  901.                  Which%          Is the number of HowMany this
  902.                                  line of Stuff$ is.
  903.  
  904.                  HowMany%        Is the Total Number of lines that
  905.                                  are to be centered in the current
  906.                                  window.
  907.  
  908.                  Stuff$          Is the text to center within the
  909.                                  window at Which line of HowMany
  910.                                  lines.
  911.  
  912.  PrtEOL          This does a erase to EndOfLine using the current
  913.                  attribute of the window. The calling sequence is:
  914.  
  915.                       Call PrtEol(Row%,Column%)
  916.  
  917.                  Where:
  918.  
  919.                  Row%            Is the row within the window, not
  920.                                  screen. First available row is 1,
  921.                                  and is referenced to Wr+1. The
  922.                                  last row available is Wh-1.
  923.  
  924.                  Column%         Is the column within the window,
  925.                                  not screen. First available
  926.                                  column is 1, and is referenced to
  927.                                  Wc+1. The last column is Ww-1.
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  (c) 1987-90 Barry Erick                                   Page 12
  939.  
  940.  
  941.                                             PBWindow Documentation
  942.  
  943.  
  944.  
  945.  PrtEOLBox       This prints a string within the window and then
  946.                  does a EOL using the PrtEol procedure. The
  947.                  calling sequence is:
  948.  
  949.                       Call PrtEOLBox(row%,column%,stry$)
  950.  
  951.                  Where:
  952.  
  953.                  Row%            Is the row within the window, not
  954.                                  screen. First available row is 1,
  955.                                  and is referenced to Wr+1. The
  956.                                  last row available is Wh-1.
  957.  
  958.                  Column%         Is the column within the window,
  959.                                  not screen. First available
  960.                                  column is 1, and is referenced to
  961.                                  Wc+1. The last column is Ww-1.
  962.  
  963.                  Stry$           Is the string to print.
  964.  
  965.  NewBoxColor     This procedure sets the saved attributes of the
  966.                  current window to your specified color. This will
  967.                  allow the next action within that window to be of
  968.                  the new color. The calling sequence is:
  969.  
  970.                       Call NewBoxColor(frewe%,bvcxv%)
  971.  
  972.                  Where:
  973.  
  974.                  Frewe%          Is the foreground color.
  975.  
  976.                  Bvcxv%          Is the background color.
  977.  
  978.  BuildMenu       This procedure allows you to use the window
  979.                  system for menus. Several types and actions are
  980.                  provided. You can have a pointer to point to
  981.                  items, a highlighted bar the width of the window,
  982.                  or the width of the string. The first letter can
  983.                  be highlighted. Selection can be made on all
  984.                  types by moving the bar and hitting Enter, or by
  985.                  hitting the highlighted first letter. Another
  986.                  option allows you to hit the highlighted
  987.                  character, and if there is more than one item
  988.                  starting with that character, the next hit of the
  989.                  same letter will select the next item, and this
  990.                  will continue and wrap around to the first.
  991.                  Selection is done with the Enter key or
  992.                  automatically in this instance.
  993.  
  994.                  To use the feature, you must build a list of
  995.                  items and assign them to the string array
  996.                  mList$(). This array is DIMmed to 20.  The last
  997.                  item in the list must be either a null string
  998.  
  999.  
  1000.  
  1001.  
  1002.  (c) 1987-90 Barry Erick                                   Page 13
  1003.  
  1004.  
  1005.                                             PBWindow Documentation
  1006.  
  1007.  
  1008.  
  1009.                                          2
  1010.                  ("") or the string "@#$" . This signals the end
  1011.                  of the list. For example:
  1012.  
  1013.                       MList$(1) = "One"
  1014.                       MList$(2) = "Two"
  1015.                       MList$(3) = "@#$"  (or MList$(3)=""
  1016.  
  1017.                  Would signal to build a menu consisting of two
  1018.                  items. The calling sequence is:
  1019.  
  1020.                       CALL BuildMenu(mitem%,bmstart%,bmFirst%,bment%,_
  1021.                                      bmffore%,bmback%,bmhfore%,_
  1022.                                      bmhback%,bmbar%,Mlist$(),Auto%,_
  1023.                                      PointerColor%)
  1024.  
  1025.                  Where:
  1026.  
  1027.                  mitem%          Is the item number selected
  1028.                                  within the menu.
  1029.  
  1030.                  bmstart%        Is the item number to start with.
  1031.                                  This item will be the highlighted
  1032.                                  or pointed to item. Normally this
  1033.                                  is 1.
  1034.                                         3
  1035.                  bmFirst%        If True , this sets the first
  1036.                                  letter in each menu item to be
  1037.                                  highlighted, and selection by the
  1038.                                  first character is allowed. If
  1039.                                  False, then this is not possible.
  1040.  
  1041.                  bment%          If True, this means the Enter key
  1042.                                  is required on first letter
  1043.                                  selection. If False, then hitting
  1044.                                  the highlighted first character
  1045.                                  selects that item. Note that True
  1046.                                  allows several items to share the
  1047.                                  same first character, while
  1048.                                  setting this false will require
  1049.                                  all items to have a unique first
  1050.                                  character.
  1051.  
  1052.                  bmffore%        This is the foreground color to
  1053.                                  use for the first character
  1054.                                  highlight. -1 means to use the
  1055.                                  same as the box uses.
  1056.  
  1057.  
  1058.  _________________________________________________________________
  1059.  
  1060.  2. This string is kept for compatibility reasons.
  1061.  
  1062.  3. Defined in PBWindow.INC, %True = -1 and %False = 0
  1063.  
  1064.  
  1065.  
  1066.  (c) 1987-90 Barry Erick                                   Page 14
  1067.  
  1068.  
  1069.                                             PBWindow Documentation
  1070.  
  1071.  
  1072.  
  1073.                  bmfback%        This is the background color to
  1074.                                  use for the first character
  1075.                                  highlight. -1 means to use the
  1076.                                  same color as the box uses.
  1077.  
  1078.                  bmhfore%        This is the foreground color for
  1079.                                  the menu item when highlighted
  1080.                                  with a bar. -1 means to use the
  1081.                                  same color as the box.
  1082.  
  1083.                  bmhback%        This is the background color for
  1084.                                  the menu item when highlighted
  1085.                                  with a bar. -1 means to use the
  1086.                                  same color as the box.
  1087.  
  1088.                  bmbar%          This selects the type of bar:
  1089.  
  1090.                                       Table 3: Bars Generated
  1091.  
  1092.                                  0 = No Highlight
  1093.                                  1 = The Item is Highlighted
  1094.                                  2 = The Box Width is Highlighted
  1095.                                  3 = An Arrow is used
  1096.                                  4 = An Arrow is used and the item is
  1097.                                      Highlighted
  1098.  
  1099.                  Mlist$()        This is the list for the menu as
  1100.                                  described above.
  1101.  
  1102.                  Auto%           This variable, if %True, will
  1103.                                  allow the menu to return the
  1104.                                  current highlighted item as the
  1105.                                  selection after a timeout, or by
  1106.                                  the user, whichever occurs first.
  1107.                                  If %False, the user must make the
  1108.                                  selection. The variable,
  1109.                                  AutoBuildTime% determines the
  1110.                                  amount of time waiting. If this
  1111.                                  routine times out, and is
  1112.                                  returned automatically, Auto%
  1113.                                  will return %True. If the user
  1114.                                  hit a key to select an item, then
  1115.                                  Auto% will return %False.
  1116.  
  1117.                  PointerColor%   PointerColor% allows the pointer
  1118.                                  or arrow, to be a different color
  1119.                                  than the highlight. If this is
  1120.                                  set to a -1, then the color of
  1121.                                  the pointer will be the same as
  1122.                                  the highlight defined by the
  1123.                                  variable bmhfore%. This variable
  1124.                                  must be passed even if you do not
  1125.                                  use an option that specifies a
  1126.                                  pointer.
  1127.  
  1128.  
  1129.  
  1130.  (c) 1987-90 Barry Erick                                   Page 15
  1131.  
  1132.  
  1133.                                             PBWindow Documentation
  1134.  
  1135.  
  1136.  
  1137.                  Also, see the variables Bar0to2Off% and
  1138.                  Bar3or4Off% in Appendix A.0.
  1139.  
  1140.  PrtAttrBox      This prints a string within the current window
  1141.                  using a different attribute than the default, but
  1142.                  does not change the attributes for the window for
  1143.                  subsequent calls. The calling sequence is:
  1144.  
  1145.                       Call PrtAttrBox(Row%,Column%,String$,Fore%,_
  1146.                                       Back%)
  1147.  
  1148.                  Where
  1149.  
  1150.                  Row%            Is the row within the current
  1151.                                  window to use.
  1152.  
  1153.                  Column%         Is the row within the current
  1154.                                  window and current line.
  1155.  
  1156.                  String$         This is the string to print at
  1157.                                  Row%, Column%.
  1158.  
  1159.                  Fore%           This is the foregound color to
  1160.                                  use. If set to -1, the default
  1161.                                  foreground color for the window
  1162.                                  is used.
  1163.  
  1164.                  Back%           This is the background color to
  1165.                                  use. If set to -1, the default
  1166.                                  background color is used.
  1167.  
  1168.  ClearBox        This clears the current window to the foreground
  1169.                  and background color you specify. The calling
  1170.                  sequence is:
  1171.  
  1172.                       Call ClearBox(Fore%,Back%)
  1173.  
  1174.                  Where:
  1175.  
  1176.                  Fore%           Is the foreground color to use.
  1177.                                  If set to -1, the default
  1178.                                  foreground color is used.
  1179.  
  1180.                  Back%           Is the background color to use.
  1181.                                  If set to -1, the default
  1182.                                  background color is used.
  1183.  
  1184.  ReColor         This allows you to recolor the last window. This
  1185.                  was designed to do this because it would be hard
  1186.                  to work a routine to recolor only the portion of
  1187.                  a window that another one isn't sitting on, which
  1188.                  can happen if we allowed recoloring of more than
  1189.                  the last window. The calling sequence is:
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  (c) 1987-90 Barry Erick                                   Page 16
  1195.  
  1196.  
  1197.                                             PBWindow Documentation
  1198.  
  1199.  
  1200.  
  1201.                       Call ReColor(Fore%,Back%,BorderFore%,_
  1202.                                    BorderBack%)
  1203.  
  1204.                  Where:
  1205.  
  1206.                  Fore%           Is the new foreground color to
  1207.                                  use. If set to -1, the foreground
  1208.                                  color will not change.
  1209.  
  1210.                  Back%           Is the background color to use.
  1211.                                  If set to -1, the default
  1212.                                  background color is used for no
  1213.                                  apparent change in the
  1214.                                  background.
  1215.  
  1216.                  BorderFore%     This carries the new border
  1217.                                  foreground color. Again, if set
  1218.                                  to -1, the color remains
  1219.                                  unchanged.
  1220.  
  1221.                  BorderBack%     As in the others, this holds the
  1222.                                  new background color and if set
  1223.                                  to -1 does not change.
  1224.  
  1225.  WriteScreenArea This is called by MakeBox internally and really
  1226.                  should not be used externally. It is provided
  1227.                  here as a way to write to an area without keeping
  1228.                  track of what you are doing. When Remove box is
  1229.                  called after this, the previous window and this
  1230.                  one is removed. Not recommended to use, but the
  1231.                  usage is:
  1232.  
  1233.                       Call WriteScreenArea(UpperLeftRow%,_
  1234.                                            UpperLeftCol%,_
  1235.                                            NumOfRows%,NumOfCols%,_
  1236.                                            Text$,Attrs$)
  1237.  
  1238.                  Where:
  1239.  
  1240.                  UpperLeftRow%   is the upper left row number, 0
  1241.                                  to 24
  1242.  
  1243.                  UpperLeftCol%   is the upper left column of the
  1244.                                  box, 0 -79
  1245.  
  1246.                  NumOfCols%      is the total number of columns
  1247.                                  from the UpperLeftCol.
  1248.  
  1249.                  Text$           is the text to write to the
  1250.                                  screen. The length of the string
  1251.                                  is determined to be no greater
  1252.                                  than NumOfCols, as this routine
  1253.                                  is used to write not the entire
  1254.                                  box, but one row of the box.
  1255.  
  1256.  
  1257.  
  1258.  (c) 1987-90 Barry Erick                                   Page 17
  1259.  
  1260.  
  1261.                                             PBWindow Documentation
  1262.  
  1263.  
  1264.  
  1265.                  Attrs$          is the attribute to use and must
  1266.                                  equal the length of text$
  1267.  
  1268.  SaveScreenArea  This is also called by MakeBox internally and
  1269.                  should not be used without totally understanding
  1270.                  the code. It is made PUBLIC so some advanced uses
  1271.                  may be used externally of the program. Not
  1272.                  recommended to use, the usage is:
  1273.  
  1274.                       Call SaveScreenArea(UpperLeftRow%,_
  1275.                                           UpplerLeftCol%,_
  1276.                                           NumOfRows%,NumOfCols%,_
  1277.                                           SaveText$,SaveAttr$)
  1278.  
  1279.                  where:
  1280.  
  1281.                  UpperLeftRow%   is the upper left row number, 0
  1282.                                  to 24
  1283.  
  1284.                  UpperLeftCol%   is the upper left column of the
  1285.                                  box, 0 -79
  1286.  
  1287.                  NumOfCols%      is the total number of columns
  1288.                                  from the UpperLeftCol.
  1289.  
  1290.                  SaveText$       is the text retrieved from the
  1291.                                  screen. The length of the string
  1292.                                  is equal to NumOfCols, as this
  1293.                                  routine is used to read not the
  1294.                                  entire box, but one row of the
  1295.                                  box.
  1296.  
  1297.                  SaveAttr$       is the attribute used on the
  1298.                                  screen and equals the length of
  1299.                                  text$
  1300.  
  1301.  PBWindowInit    This routine is used by the $Include file. It
  1302.                  returns the screen segment and the retrace mode.
  1303.                  It also Dims dynamically all arrays. If
  1304.                  RetraceMode% is 0 then we do no retrace on screen
  1305.                  writes, else we do check, for a slower display.
  1306.                  This happens in CGA modes. If you need to use
  1307.                  this just to see the routines, the calling
  1308.                  sequence is:
  1309.  
  1310.                       CALL PBWindowInit
  1311.                            Returned:
  1312.  
  1313.                  ScreenSegment%  returns the ScreenSegmentscreen
  1314.                                  segment of the adapter, either
  1315.                                  &HB000 or &HB800.
  1316.  
  1317.                  RetraceMode%    returns the retrace mode. If you
  1318.                                  have a cga adapter, then we use
  1319.  
  1320.  
  1321.  
  1322.  (c) 1987-90 Barry Erick                                   Page 18
  1323.  
  1324.  
  1325.                                             PBWindow Documentation
  1326.  
  1327.  
  1328.  
  1329.                                  retrace protection, and this will
  1330.                                  return non zero. If zero, then
  1331.                                  there is no wait for retrace, and
  1332.                                  screen writes are much faster.
  1333.                                  You can fool PBWindows into not
  1334.                                  using retrace with your program
  1335.                                  by using the statement Retrace% =
  1336.                                  0 after the $Include statement in
  1337.                                  your program.
  1338.  
  1339.  ScreenInit      This sub returns the ScreenSegment and Retrace
  1340.                  mode, unlike PBWindowInit, which Dims many arrays
  1341.                  and should only be called once. This may be
  1342.                  called as often as you wish if you need to update
  1343.                  the current modes. The calling sequence is:
  1344.  
  1345.                       Call ScreenInit(ScreenSegment%,RetraceMode%)
  1346.                            Returned:
  1347.                                 ScreenSegment% and RetraceMode%
  1348.                                 See PbWindowInit for details.
  1349.  
  1350.  Note: %MaxWindow is no longer supported. This constant has been
  1351.  changed to Max.Window%, an integer meant to be set in your
  1352.  program to equal the maximum number of windows you will have open
  1353.  at any one time. This must be used prior to invoking the $Include
  1354.  metastatement. Also, the variable AutoBuildTime% should be set at
  1355.  this time if you want something other than the default of 0.
  1356.  Example:
  1357.  
  1358.       AutoBuildTime% = 60 'set timeout to 60 seconds
  1359.       Max.Window% = 14  'set a max of 14 windows at any one time
  1360.       $Include "PBWindows"
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  (c) 1987-90 Barry Erick                                   Page 19
  1387.  
  1388.  
  1389.                                             PBWindow Documentation
  1390.  
  1391.  
  1392.  
  1393.  5  The Demo PWDemo.Bas
  1394.  
  1395.  
  1396.  The demo file does nothing but demonstrate the routines available
  1397.  in PBWindow. This file is menu driven, the menu being one built
  1398.  from the PBWINDOW unit. Following the instructions in section 3
  1399.  on page 5 will show you how to compile this demo. Briefly, the
  1400.  file, PWDemo.Bas goes to your \PB default directory, PBWindow.Inc
  1401.  to your \PB\INC directory, and PBWindow.PBU to your \PB\PBU
  1402.  directory. The demo has directives in it to compile to .exe, turn
  1403.  off error tests, and to turn off break tests. Also, Library
  1404.  routines are stripped, as they are not needed for the demo. If
  1405.  you use the Command Line Compiler (PBC.EXE), and you do not have
  1406.  a PBC.CFG (configuration) file, you may place all the files in
  1407.  the same directory as your PBC.EXE file and simply type PBC
  1408.  PWDEMO /CE to compile this, as the demo program has
  1409.  metastatements in it to direct the compiler as to its duties. One
  1410.  .PBU file, DayDate.PBU, is only used for the demo and is not
  1411.  needed to use PBWindows.
  1412.  
  1413.  When you run the demo, either you make the selections by
  1414.  selecting and hitting enter on the main menu, and spacebar when
  1415.  asked to, or do nothing. The demo will automatically run if the
  1416.  users does nothing for 30 seconds. At that time, it changes to a
  1417.  5 second timeout to make for a faster moving demo than if this
  1418.  were left at 30 second.
  1419.  
  1420.  
  1421.  6  Potpourri
  1422.  
  1423.  
  1424.  6.1  Support available
  1425.  
  1426.  The author may be contacted in the Spectra area in the IBM Vendor
  1427.  B Forum on Compuserve (g PCVenB, Section 12) or in the Spectra
  1428.  Category of IBM Product Support RT on GEnie (page 115 CATegory
  1429.  Spectra And PowerBASIC). My Compuserve ID is 75300,214 and my
  1430.  GEnie ID is B.ERICK.
  1431.  
  1432.  6.2  Source Code Available
  1433.  
  1434.  Source code to the unit and its assembly routines and a printed
  1435.  manual are available. The fact that this is available makes this
  1436.  Shareware. You are not required to purchase or register this
  1437.  program to use it for non-commercial use. Source code with a
  1438.  manual is $25. If you want this, send the appropriate amount,
  1439.  including 6% Pennsylvania State tax for Pennsylvanian's,  to:
  1440.  
  1441.                      Barry Erick
  1442.                      28 Ridge Street
  1443.                      Dallas, PA 18612
  1444.  
  1445.  Commercial users must register. Contact the author for
  1446.  commercial license terms. Also, if you find this program
  1447.  
  1448.  
  1449.  
  1450.  (c) 1987-90 Barry Erick                                   Page 20
  1451.  
  1452.  
  1453.                                             PBWindow Documentation
  1454.  
  1455.  
  1456.  
  1457.  useful, but do not need the source code, why not register as a
  1458.  way of saying thanks for the routines? It would be greatly
  1459.  appreciated.
  1460.  
  1461.  6.3  Update availability
  1462.  
  1463.  The .pbu file will need to be updated as new major versions of
  1464.  PowerBasic become available, and possibly a minor upgrade will
  1465.  require this, also.  Therefore, the .pbu file will be made
  1466.  available to users. This availability may mean electronic
  1467.  distribution via CIS EasyPlex, or GEnie's GEMail, or it might
  1468.  mean a disk will be sent to you. In any case, the new version
  1469.  of the entire program will replace the current version. Contact
  1470.  the author if you need upgrade information when newer versions
  1471.  of PowerBasic are released.
  1472.  
  1473.  6.4  Distribution of the programs
  1474.  
  1475.  The source code for PBWindow.PBU, PBWindow.INC, PWDemo.Bas and
  1476.  DayDate.PBU are copyright material and are not in the Public
  1477.  Domain. The author retains property rights to the routines. You
  1478.  may include the files PBWindow.PBU and PBWindow.Inc in your
  1479.  programs, but not the source code to the unit, called
  1480.  PBWindow.Bas. This program, consisting of the files PWDemo.Bas,
  1481.  PBWindow.Inc, PBWindow.PBU and PBWindow.DOC may be distributed
  1482.  to BBS's, commercial and private, provided they are distributed
  1483.  together, and the file group is named PBWindow.* or PBWndo.* if
  1484.  the file name limit is 6 characters, as it is on Compuserve.
  1485.  The file extension, as noted by the *, shall reflect the the
  1486.  grouping method, such as .ARC, .PKA, .ZIP, or .LHZ. In
  1487.  addition, the files may be included in a self-extracting file
  1488.  with the name PBWndo.EXE, or PBWindow.EXE made by .LHZ OR .ZIP
  1489.  only. This restriction is placed on the self-extracting file
  1490.  because of the favorable overhead that LHarc and PKZip  places
  1491.  in its self extracting files. These files may also be
  1492.  distributed by clubs and user groups providing no more than $10
  1493.  is charged for expenses and handling while distributing the
  1494.  files below. Note that this fee charged does not register the
  1495.  program.
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  (c) 1987-90 Barry Erick                                   Page 21
  1515.  
  1516.  
  1517.                                             PBWindow Documentation
  1518.  
  1519.  
  1520.  
  1521.   The following files may be freely copied and distributed as
  1522.  long as they are kept in a group:
  1523.  
  1524.       PWDemo.BAS     <-- The source to the demo
  1525.       PBWindow.INC   <-- The $Include file to $Link PBWindow
  1526.       PBWindow.PBU   <-- The actual utility "PBWindows"
  1527.       PBWindow.DOC   <-- This file
  1528.       DayDate.PBU    <-- Used in the demo only
  1529.       Vendor.Doc     <-- Information for Shareware Vendors
  1530.       Readme         <-- If present, contains late info
  1531.  
  1532.  
  1533.   These files, are part of the registration package and may not
  1534.  be freely copied and distributed:
  1535.  
  1536.       PBWindow.Bas  <-- The source to PBWindow.PBU
  1537.       DayDate.Bas   <-- The source to DayDate.PBU
  1538.       Readv2.Asm    <-- Source to $Inline code
  1539.       Scroll.Asm    <-- Source to $Inline code
  1540.       WritVidp.Asm  <-- Source to $Inline code
  1541.  
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  (c) 1987-90 Barry Erick                                   Page 22
  1579.  
  1580.  
  1581.                                             PBWindow Documentation
  1582.  
  1583.  
  1584.  
  1585.  6.5  Warranty and Disclaimer
  1586.  
  1587.  Users of PBWindows must accept this disclaimer of warranty:
  1588.  "PBWindows is supplied as is.  The author disclaims all
  1589.  warranties, expressed or implied, including, without
  1590.  limitation, the warranties of merchantability and of fitness
  1591.  for any purpose. The author assumes no liability for damages,
  1592.  direct or consequential, which may result from the use of
  1593.  PBWindows."
  1594.  
  1595.  6.6  Copyright Notices
  1596.  
  1597.  PBWindow.PBU,
  1598.  PBWindow.Inc,
  1599.  PWDemo.bas,
  1600.  PWDemo.EXE (c) 1987-1990 Barry Erick
  1601.  PowerBASIC (c) 1990 Robert S. Zale
  1602.  LHarc (c) 1988-1989 Haruyasu Yoshizaki (Yoshi)
  1603.  ARC (c) 1985-1989 System Enhancement Associates, Inc.
  1604.  PKPak, PKUnpak (c) 1986-1989 PKWare, Inc.
  1605.  PKZip, PKUnzip (c) 1989 PKWare, Inc.
  1606.  Other trademarks and Copyrights by the copyright holder.
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  (c) 1987-90 Barry Erick                                   Page 23
  1643.  
  1644.  
  1645.                                             PBWindow Documentation
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.  
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.  
  1687.  
  1688.  
  1689.  
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  (c) 1987-90 Barry Erick                                   Page 24
  1707.  
  1708.  
  1709.                                             PBWindow Documentation
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.                            Appendix A
  1720.  
  1721.                         Public Variables
  1722.  
  1723.  
  1724.  These are the Public Variables in the file PBWindows. They may
  1725.  be referenced to in other areas of the program, but should not
  1726.  be altered nor reused for your own use.
  1727.  
  1728.  Attrs%(MaxWindow%)          Current attribute for which window.
  1729.  
  1730.  AutoBuildTime%              The time for the BuildMenu to wait
  1731.                              for user input before automatically
  1732.                              making the selection. The parameter
  1733.                              Auto% in BuildMenu, must be %True
  1734.                              for this to mean anything. The
  1735.                              valid values of AutoBuildTime% are
  1736.                              1 to 15000 seconds. The demo limits
  1737.                              the values to 20 to 15000 seconds.
  1738.  
  1739.  IsColr%                     If true, this system was in color
  1740.                              when PBWindow started. This does
  1741.                              not limit PbWindows to color, but
  1742.                              lets you decide if color is
  1743.                              available. Use ScreenSegment to
  1744.                              decide if you even want to try
  1745.                              color. If ScreenSegment is &B000
  1746.                              then we do have Hercules or IBM
  1747.                              Mono mode, and color should not be
  1748.                              attempted. VidMode% may also be
  1749.                              looked at. If it is 7, then this is
  1750.                              a mono mode.
  1751.  
  1752.  Bar0to2Off%                 This offset is added to the
  1753.                              starting column specified by the
  1754.                              BmBar% variable when BmBar is < 3.
  1755.                              It is defaulted to 3. This is
  1756.                              active in Menu display only.
  1757.  
  1758.  Bar3or4Off%                 Similar to Bar0to2Off%, this works
  1759.                              for values of BmBar% being 3 or 4.
  1760.                              The default is 0, and this, too, is
  1761.                              only active in Menu display modes.
  1762.  
  1763.  BoxBorderAttrs%(MaxWindow%) The attributes of the border for
  1764.                              each window.
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  (c) 1987-90 Barry Erick                                   Page 25
  1771.  
  1772.  
  1773.                                             PBWindow Documentation
  1774.  
  1775.  
  1776.  
  1777.  BoxKinw%(MaxWindow%)        Keeps the window kind for each
  1778.                              wpt%.
  1779.  
  1780.  Max.Window%                 Variable carries the maximum number
  1781.                              of windows.
  1782.  
  1783.  Mbc%                        MakeBoxBackgroundColor holds the
  1784.                              last windows Background color.
  1785.  
  1786.  Mbbc%                       MakeBoxBorderBackColor holds last
  1787.                              window's border background color
  1788.                              used.
  1789.  
  1790.  Mbfc%                       MakeBoxBorderForeColor holds last
  1791.                              window's border foreground color.
  1792.  
  1793.  Mfc%                        MakeBoxForegroundColor holds the
  1794.                              foreground color of the last
  1795.                              window.
  1796.  
  1797.  Noise%(MaxWindow%)          Noise information for which window.
  1798.  
  1799.                              Note: You can also control how a
  1800.                              window is removed by changing the
  1801.                              value in this array. Normally, a
  1802.                              window is removed with noise if
  1803.                              Racket was made when the window was
  1804.                              made, and vice versa. To make a
  1805.                              quiet removal of a noisy window,
  1806.                              set Noise(WindowNumber) = 0 and to
  1807.                              make it noisy, if the window was
  1808.                              quite, make Noise(WindowNumber) =
  1809.                              1.
  1810.  
  1811.  ScreenSegment%              This variable carries the video
  1812.                              segment address.
  1813.  
  1814.  Shadows%(MaxWindow%)        Shadow information for which
  1815.                              window.
  1816.  
  1817.  RetraceMode%                This variable is used to see if we
  1818.                              need to check for snow. If VidMode%
  1819.                              = 7, then do NOT make this %True.
  1820.                              It will lock up a mono system. You
  1821.                              can force this off, by placing the
  1822.                              command, RetraceMode = 0 right
  1823.                              agter the $include PBwindow.Inc
  1824.                              statement in your program.
  1825.  
  1826.  PBWc%(MaxWindow%)           Window Column of which window.
  1827.  
  1828.  PBWh%(MaxWindow%)           Window height of which window.
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  (c) 1987-90 Barry Erick                                   Page 26
  1835.  
  1836.  
  1837.                                             PBWindow Documentation
  1838.  
  1839.  
  1840.  
  1841.  Wpt%                        Current window pointer, if 0, no
  1842.                              windows are open.
  1843.  
  1844.  PBWr%(MaxWindow%)           WindowRow of which window.
  1845.  
  1846.  PBWw%(MaxWindow%)           Window Width of which window.
  1847.  
  1848.  Mlist$(20)                  For carrying the items in a menu.
  1849.  
  1850.  NoNoise%                    If 0, then racket or noise is
  1851.                              allowed through the various
  1852.                              routines. If other than 0, then
  1853.                              noise is not allowed, even if the
  1854.                              internal sub Rackett is called.
  1855.  
  1856.  UnderDevelopment%           This variable controls error
  1857.                              checking while you develop your
  1858.                              program. It defaults to %False, but
  1859.                              you may set it in your program,
  1860.                              after the $include "PbWindow.Inc"
  1861.                              metastatement, to allow error
  1862.                              checks to be made in several area
  1863.                              of PBWindow.PBU. See the Appendix
  1864.                              Error Codes for details of the
  1865.                              errors.
  1866.  
  1867.  VidMode%                    This returns the video mode the
  1868.                              system was in when PbWindows was
  1869.                              initialized. The most common text
  1870.                              color mode is 3, and the mode to
  1871.                              look for is 7. If this is 7, then
  1872.                              we have a Hercules or IBM Monograph
  1873.                              adapter. If we do, then do not use
  1874.                              any colors and definitely do not
  1875.                              modify the variable RetraceMode%,
  1876.                              as that cannot be %true for a mono
  1877.                              system. It is best to leave
  1878.                              RetraceMode alone, anyway.
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  (c) 1987-90 Barry Erick                                   Page 27
  1899.  
  1900.  
  1901.                                             PBWindow Documentation
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  (c) 1987-90 Barry Erick                                   Page 28
  1963.  
  1964.  
  1965.                                             PBWindow Documentation
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.                            Appendix B
  1976.  
  1977.                            Error Codes
  1978.  
  1979.  
  1980.   If the variable UnderDevelopment% is %True, error checking is
  1981.  enabled to check the parameters you send to PBWindows. Here are
  1982.  the error codes in the program:
  1983.  
  1984.  1 Starting Column must be > 0         From MakeBox or ZoomBox,
  1985.                                        you specified a starting
  1986.                                        column less than 0.
  1987.  
  1988.  2 Starting Column must be > 1         You specified a Left Drop
  1989.                                        Shadow and the starting
  1990.                                        column is less than 2.
  1991.                                        There must be room for a
  1992.                                        shadow resulting in a
  1993.                                        starting column >1.
  1994.  
  1995.  3 Start Column + Width must be <=80   Since the screen width is
  1996.                                        80, you can't have a
  1997.                                        wider window than the
  1998.                                        screen width.
  1999.  
  2000.  4 Start Column + Width must be < 80   You specified a right
  2001.                                        shadow, which requires
  2002.                                        one more space than the
  2003.                                        widnow width. The drop
  2004.                                        starting position and the
  2005.                                        width specified would
  2006.                                        cause the display to go
  2007.                                        off the current line.
  2008.  
  2009.  5 Start Row must be => 0              You specified a starting
  2010.                                        row above the   screen by
  2011.                                        specifying a row less
  2012.                                        than 0.
  2013.  
  2014.  6 Start Row must be <= 25             You specified a starting
  2015.                                        position at the end of
  2016.                                        the screen.
  2017.  
  2018.  7 Ending Row must be <= 26            You specified a starting
  2019.                                        row and number of rows
  2020.                                        that goes off the screen.
  2021.  
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  (c) 1987-90 Barry Erick                                   Page 29
  2027.  
  2028.  
  2029.                                             PBWindow Documentation
  2030.  
  2031.  
  2032.  
  2033.  8 Ending Row must be <25              You are using a shadow,
  2034.                                        which requires one row at
  2035.                                        the bottom and specifed a
  2036.                                        starting row and number
  2037.                                        of rows, that when added
  2038.                                        to the shadow row, would
  2039.                                        take the image off the
  2040.                                        screen.
  2041.  
  2042.  9 Starting Column must be < 79        You specified a starting
  2043.                                        column at the rightmost
  2044.                                        side of the screen.
  2045.  
  2046.  10 No Windows Open                    You must call either
  2047.                                        MakeBox for Zoom Box to
  2048.                                        open a window before you
  2049.                                        can print in the window.
  2050.  
  2051.  11 Too Many Windows Open              You exceeded the
  2052.                                        Max.Window% limit on the
  2053.                                        number of open windows.
  2054.                                        This defaults to 5 unless
  2055.                                        you set this variable to
  2056.                                        something else before the
  2057.                                        $Include "PBWindow.Inc"
  2058.                                        metastatement in your
  2059.                                        program.
  2060.  
  2061.  
  2062.  
  2063.  
  2064.  
  2065.  
  2066.  
  2067.  
  2068.  
  2069.  
  2070.  
  2071.  
  2072.  
  2073.  
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  (c) 1987-90 Barry Erick                                   Page 30
  2091.  
  2092.  
  2093.                                             PBWindow Documentation
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.                            Appendix C
  2104.  
  2105.                             SHAREWARE
  2106.  
  2107.  
  2108.  C.1  Definition of Shareware
  2109.  
  2110.  
  2111.  Shareware distribution gives users a chance to try
  2112.  softwarebefore buying it. If you try a Shareware program and
  2113.  continue using it, you are expected to register. Individual
  2114.  programs differ on details -- some request registration while
  2115.  others require it, some specify a maximum trial period. With
  2116.  registration, you get anything from the simple right to
  2117.  continue using the software to an updated program with printed
  2118.  manual.
  2119.  
  2120.  Copyright laws apply to both Shareware and commercial software,
  2121.  and the copyright holder retains all rights, with a few
  2122.  specific exceptions as stated on page 23. Shareware authors are
  2123.  accomplished programmers, just like commercial authors, and the
  2124.  programs are of comparable quality. (In both cases, there are
  2125.  good programs and bad ones!) The main difference is in the
  2126.  method of distribution. The author specifically grants the
  2127.  right to copy and distribute the software, either to all and
  2128.  sundry or to a specific group. For example, some authors
  2129.  require written permission before a commercial disk vendor may
  2130.  copy their Shareware.
  2131.  
  2132.  
  2133.  C.2  Ombudsman
  2134.  
  2135.  
  2136.   This program is produced by a member of the Association of
  2137.  Shareware Professionals ().  ASP wants to make sure that the
  2138.  shareware principle works for you. If you are unable to resolve
  2139.  a shareware-related problem with an ASP member by contacting
  2140.  the member directly, ASP may be able to help. The ASP Ombudsman
  2141.  can help you resolve a dispute or problem with an ASP member,
  2142.  but does not provide technical support for members' products.
  2143.  Please write to the ASP Ombudsman at P.O. Box 5786, Bellevue,
  2144.  WA 98006 or send a Compuserve message via easyplex to ASP
  2145.  Ombudsman 70007,3536
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  (c) 1987-90 Barry Erick                                   Page 31
  2155.  
  2156.  
  2157.                                             PBWindow Documentation
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.  
  2184.  
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  (c) 1987-90 Barry Erick                                   Page 32
  2219.  
  2220.  
  2221.                                             PBWindow Documentation
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.                                Index
  2232.  
  2233.  
  2234.         $INCLUDE 6                     Automatic Running 5,
  2235.         %MaxWindow 19                  20
  2236.                                        Compiling 6
  2237.         A                              Running 20
  2238.         ASP See: Association of     Direction 11
  2239.            Shareware                Distributing the
  2240.            Professionals               programs 21
  2241.         Association of              Down 11
  2242.            Shareware                drop shadow 3, 8
  2243.            Professionals 31
  2244.         Auto 15                     E
  2245.         AutoBuildTime 15            Explode See:
  2246.                                        Zoom,Zooming
  2247.         B
  2248.         Back 16, 17                 F
  2249.         BackgroundColor 7, 13       ForegroundColor 7, 13
  2250.         BoxKind 7
  2251.         BoxlineBackgroundColor      G
  2252.            8                        GEnie 20
  2253.         BoxlineForegroundColor      GetAttribute 9, 10
  2254.            8                        GetForAndBack 10
  2255.         BoxScroll 11
  2256.         BoxTitle 10                 H
  2257.         BuildMenu 13                Hercules 4
  2258.  
  2259.         C                           K
  2260.         Centering 11, 12            Kinds of Windows See:
  2261.         ClearBox 16                    BoxKind
  2262.         CLS See: ClearBox
  2263.         column 17, 18               L
  2264.         Command Line Switch 5       lines 8
  2265.         commercial license 20       Locked up system 26
  2266.         compile 6
  2267.         Compiling 5                 M
  2268.         Compuserve 20               MakeBox 7, 9, 10, 12,
  2269.         Copyright 31                   17, 18
  2270.         CtrAllBox 12                Manual
  2271.         CtrBox 11                      printed 20
  2272.                                     Max.Window 5, 6, 19
  2273.         D                           Menu 13
  2274.         DayDate.PBU 20              metastatement 5
  2275.         Demo                        mList 13
  2276.            About 20                 Mono 4
  2277.            AutoBuildTime 5
  2278.  
  2279.  
  2280.  
  2281.  
  2282.  (c) 1987-90 Barry Erick                                   Page 33
  2283.  
  2284.  
  2285.                                             PBWindow Documentation
  2286.  
  2287.  
  2288.  
  2289.         N                              Auto 15
  2290.         NewBoxColor 13                 AutoBuildTime 15, 25
  2291.         Noise 2, 8                     Back 16
  2292.         Number of Windows See:         Bar3or4Off% 25
  2293.            Max.Window                  Bar0to2Off% 25
  2294.                                        Bbc 8
  2295.         O                              bc 7
  2296.         Ombudsman 31                   BColor 11
  2297.                                        Bfc 8
  2298.         P                              bmbar 15
  2299.         PBWindowInit 18                bment 14
  2300.         PointerColor 15                bmfback 14
  2301.         pop-up windows 5               bmffore 14
  2302.         Printed manual 20              bmFirst 14
  2303.         PrtAttrBox 16                  bmhback 15
  2304.         PrtBox 10                      bmhfore 15
  2305.         PrtEOL 12                      bmstart 14
  2306.         PrtEOLBox 12                   BorderBack 17
  2307.                                        BorderFore 17
  2308.         R                              BoxBorderAttrs(MaxWindow%)
  2309.         Racket 26                      25
  2310.         Rackett 9                      BoxKind 7
  2311.         ReColor 16                     BoxKinw%(MaxWindow%)
  2312.         RemoveBox 7, 9                 25
  2313.         Restore Title 11               Bvcxv 13
  2314.         RetraceMode 18                 Bxbc 11
  2315.         Row 7, 10                      Bxfc 11
  2316.            row 11                      c1 10
  2317.         row 12                         Column 12, 13, 16
  2318.         row number 7                   fc 7
  2319.         row 12, 16, 17, 18             FColor 11
  2320.                                        Fore 16, 17
  2321.         S                              Frewe 13
  2322.         SaveScreenArea 18              HowMany 12
  2323.         ScreenInit 19                  IsColr% 25
  2324.         ScreenSegment 18               Max.Window% 26
  2325.         Scroll See: BoxScroll          Mbbc 26
  2326.         Shadow 8                       Mbc 26
  2327.         Shareware 20, 31               Mbfc 26
  2328.         Source code                    Mfc 26
  2329.            availability 20             mitem 14
  2330.         Support 20                     mList$ 15
  2331.                                        Mlist$(20) 27
  2332.         T                              Noise(MaxWindow%) 26
  2333.         Title See: BoxTitle            NoNoise 27
  2334.         Tracking 2                     NoNoise% 9
  2335.                                        NumOfCols 17, 18
  2336.         U                              PBWc(MaxWindow%) 26
  2337.         Up 11                          PBWh(MaxWindow%) 26
  2338.                                        PBWr(MaxWindow%) 27
  2339.         V                              PBWw(MaxWindow%) 27
  2340.         Variables                      PointerColor 15
  2341.            Attrs 17                    r1 10, 12
  2342.            Attrs(MaxWindow%) 25        Racket 8
  2343.  
  2344.  
  2345.  
  2346.  (c) 1987-90 Barry Erick                                   Page 34
  2347.  
  2348.  
  2349.                                             PBWindow Documentation
  2350.  
  2351.  
  2352.  
  2353.            RetraceMode 26              What$ 11
  2354.            Row 12, 13, 16              Where 10
  2355.            SaveAttr$ 18                Which 12
  2356.            SaveText$ 18                Wpt 26
  2357.            ScreenSegment 18, 26        Wr 7
  2358.            Shadows(MaxWindow%)         Ww 7
  2359.            26
  2360.            String$ 16               W
  2361.            Stry$ 13                 WindowColumn 7
  2362.            Stuff$ 10, 12            WindowHeight 7
  2363.            Text$ 17                 WindowRow 7
  2364.            UnderDevelopment% 4,     WindowWidth 7
  2365.            6, 27, 29                WriteScreenArea 17
  2366.            UpperLeftCol 17, 18
  2367.            UpperLeftRow 17, 18      Z
  2368.            VidMode 27               Zoom 2
  2369.            Wc 7                     ZoomBox 7, 9
  2370.            Wh 7
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  
  2381.  
  2382.  
  2383.  
  2384.  
  2385.  
  2386.  
  2387.  
  2388.  
  2389.  
  2390.  
  2391.  
  2392.  
  2393.  
  2394.  
  2395.  
  2396.  
  2397.  
  2398.  
  2399.  
  2400.  
  2401.  
  2402.  
  2403.  
  2404.  
  2405.  
  2406.  
  2407.  
  2408.  
  2409.  
  2410.  (c) 1987-90 Barry Erick                                   Page 35
  2411.