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