home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / MISC / GAPQBDR.ZIP / WHATSNEW.TXT < prev   
Text File  |  1994-01-05  |  19KB  |  486 lines

  1.  
  2. 08/15/94
  3.  
  4.   GAPQBDR now supports the Fossil Interface. This interface requires
  5.   that a Fossil Device driver be loaded. We recommend X00.SYS.
  6.  
  7.   In order to utilize the Fossil Interface, your users must add the
  8.   following to Line 5 of the Door Configuration file:
  9.  
  10.         FOSSIL
  11.  
  12.   For example:
  13.  
  14.     DOOR.CNF
  15.     ----------------------
  16.     C:\GAP
  17.     The Crow's Nest BBS
  18.     4
  19.     03F8
  20.     FOSSIL                   <- tells GAPQBDR to use the Fossil Interface
  21.     D000
  22.     320
  23.     4
  24.  
  25.   If you've modified the source code, you should study the changes
  26.   that were made in INITDOOR.BAS. Specifically, the functions 'read.cnf'
  27.   and 'init.door'. Take note of where and how in sets the variable
  28.   'interface' (it is set to 3 when using the Fossil Interface) and
  29.   how the Fossil port is initialized.
  30.  
  31.   The following Fossil specific functions have been added:
  32.  
  33.      DECLARE FUNCTION fos.setport% ALIAS "FOS_SETPORT" (port%)
  34.  
  35.         ' Used to tell Fossil driver we want to use the specified Port
  36.  
  37.         ' MUST BE CALLED prior to using any Communications routine (if using
  38.         ' the Fossil Interface).
  39.  
  40.         ' port = COM Port # (0 based, COM 1 = 0, COM 2 = 1, etc)
  41.  
  42.         ' Return 0 = success
  43.         '        1 = Device Driver Not installed
  44.  
  45.  
  46.      DECLARE SUB fos.resetport ALIAS "FOS_RESETPORT" ()
  47.  
  48.         ' Tells the Fossil Driver we are finished with the port.
  49.  
  50.  
  51.      DECLARE FUNCTION fos.initport% ALIAS "FOS_INITPORT" (baud&, parity%, d.ata%, s.top%)
  52.  
  53.         ' Initializes the Fossil port 
  54.  
  55.         ' baud   = baudrate (long)
  56.         ' parity = 0 = None, 1 = Odd, 2 = Even
  57.         ' data   = 6, 7, or 8
  58.         ' stop   = 1 or 2
  59.  
  60.         ' Return 0 = success
  61.         '        1 = bad parameter passed
  62.  
  63.  
  64.      DECLARE SUB fos.clrtx ALIAS "FOS_CLRTX" ()
  65.    
  66.         ' Clears the Fossil port's Transmit Buffer
  67.  
  68.  
  69.   Note that Fossil Ports are 0 based where COM 1 = Port 0, COM 2 = Port 1,
  70.   etc.
  71.  
  72.  
  73.  
  74. 04/24/93
  75.  
  76.   GAPQBDR now supports the DigiBoard COM/Xi series of Intelligent
  77.   Serial Communications boards. These boards contain 4 or 8 serial
  78.   ports along with their own on-board processor to control the ports.
  79.   These boards are actually a single-board computer dedicated to handling
  80.   serial port I/O.
  81.  
  82.   By moving the serial I/O functions from the Host Computer to the
  83.   DigiBoard, the IRQ and Interrupt Latency bottleneck that plagues
  84.   Multi-Tasking users is eliminated. 
  85.  
  86.   GAPQBDR supports the DigiBoard in two ways:
  87.  
  88.         Direct Programming and INT14/EBIOS calls.
  89.  
  90.     Direct Programming is the fastest because it eliminates the need
  91.     for costly software interrupt calls to a slower BIOS. In addition
  92.     it does not require the presence of a Device Driver which basically
  93.     performs the same functions as the Direct Programming method.
  94.  
  95.     INT14/EBIOS requires that a Device Driver be loaded (this driver
  96.     is supplied by DigiBoard). Serial Port I/O is performed by issuing
  97.     software interrupts (Interrupt 14). 
  98.  
  99.   Whether or not to use the Direct Interface or the INT14/EBIOS
  100.   Interface depends on the BBS which will be running the GAPQBDR
  101.   program. If the BBS is utilizing the Device Driver, then that is
  102.   how a GAPQBDR program must be configured. If the BBS is a GAP system
  103.   and the Sysop is using the Direct Interface, then the GAPQBDR program
  104.   must be configred the same.
  105.  
  106.   The two interfaces can not be intermixed since the Direct Interface will
  107.   essentially put the Device Driver to sleep.
  108.  
  109.   When using the INT14/EBIOS interface and the DigiBoard supplied Device
  110.   Driver, it is not necessary to turn on the "Character Waiting" flags
  111.   for each of the ports. GAPQBDR does not use these flags as they basically
  112.   defeat the purpose of using a multi-port board in a multi-tasking
  113.   system. To use these flags an IRQ must be dedicated to the DigiBoard.
  114.   If the flags are not used, the IRQ need not be set.
  115.  
  116.      Imagine running 8 ports under a Multi-Tasker where all 8 ports
  117.      are in use. As characters are received by each of the 8 ports, an
  118.      interrupt is generated. The Device Driver must service the
  119.      interrupt request and since the driver runs on the Host Computer,
  120.      it will be spending a lot of precious time figuring out which of
  121.      the ports generated the interrupt and updating its "Character
  122.      Waiting" flag for that port.
  123.  
  124.      By disabling the "Character Waiting" flags and not utilizing the
  125.      IRQ, the Host Computer will not know it has 8 serial ports running
  126.      at high speed at the same time.
  127.  
  128.   If, however, the Sysop has the IRQ and Character Waiting flags enabled,
  129.   no harm is done. GAPQBDR simply will not utilize the flags.
  130.  
  131.   The Character Waiting flags are provided because making Interrupt
  132.   14 calls takes longer than simply checking a memory address (which,
  133.   by the way, is what the Direct Programming interface does).
  134.  
  135.   To use a DigiBoard with a GAPQBDR program, 4 additional lines have been
  136.   added to the Door Configuration file. These 4 new options are:
  137.  
  138.     Line 5 - The COM Port Interface to use:
  139.  
  140.              STANDARD    = Regular Communications Port Interface. This
  141.                            is what you would normally use.
  142.  
  143.              DIGIBOARD   = Direct DigiBoard Programming Interface. Must
  144.                            be used in conjunction with a program called
  145.                            RESETDIG.EXE. If you don't have this program
  146.                            but have a DigiBoard, then use the following
  147.                            option.
  148.  
  149.              INT14/EBIOS = Indirect DigiBoard Support via a Device Driver.
  150.                            All Communications to the DigiBoard (or any
  151.                            board that supports INT14/EBIOS) are performed
  152.                            via a Software Interrupt that the Device Driver
  153.                            handles.
  154.  
  155.     Line 6 - This is the DigiBoard Memory Window, or the address the
  156.              card uses as a communications area between the card and
  157.              the Host Computer. Only needed if using an Interface set
  158.              to DIGIBOARD. If using STANDARD or INT14/EBIOS, this can
  159.              be set to 0. This address must be entered in Hexadecimal.
  160.  
  161.                Valid entries are: C000, C800, D000, and D800
  162.  
  163.     Line 7 - This is the DigiBoard I/O Port address that the Board is
  164.              attached to. Only needed if using an Interface set to
  165.              DIGIBOARD. If using STANDARD or INT14/EBIOS, can be set
  166.              to 0. This address must be entered in Hexadecimal.
  167.  
  168.                Valid entries are: 100, 110, 120, 200, 220, 300 and 320
  169.  
  170.     Line 8 - This is the DigiBoard Channel Number for the port this
  171.              program will be utilizing. This is REQUIRED for DIGIBOARD
  172.              and INT14/EBIOS Interfaces. This is 1 - 8 for the
  173.              DIGIBOARD Interface and usually 4 - 11 for the INT14/EBIOS
  174.              Interface. This number tells the program which of the 
  175.              Com Ports on the DigiBoard it should use.
  176.  
  177.  
  178.   The new configuration file for a GAPQBDR that will be using a DigiBoard
  179.   Serial port would look like the following:
  180.  
  181.     DOOR.CNF
  182.     ----------------------
  183.     C:\GAP
  184.     The Crow's Nest BBS
  185.     4
  186.     03F8
  187.     INT14/EBIOS
  188.     D000
  189.     320
  190.     4
  191.  
  192.     Lines 3 and 4 are ignored by the program and can be set to 0. 
  193.     Because this is an INT14/EBIOS interface, lines 6 and 7 are also
  194.     ignored. Line 8 is the Channel Number and in this case, it is the
  195.     first serial port on the DigiBoard (Channel Numbers 1 - 4 are
  196.     generally reserved for COM 1 - COM 4 on the Host Computer, although
  197.     this is up to the Sysop and how he/she configured the Device Driver).
  198.  
  199.  
  200.   To use the Direct Programming Interface, the configuration file
  201.   would look something like:
  202.  
  203.     DOOR.CNF
  204.     ----------------------
  205.     C:\GAP
  206.     The Crow's Nest BBS
  207.     4
  208.     03F8
  209.     DIGIBOARD
  210.     D000
  211.     320
  212.     1
  213.  
  214.     Lines 3 and 4 are ignored by the program and can be set to 0. 
  215.     Line 6 is the Memory Window that the DigiBoard and the program
  216.     use to communicate with each other. Line 7 is the I/O port that
  217.     the board uses. Line 8 is the Channel Number which, in this case,
  218.     is the first serial port on the DigiBoard.
  219.  
  220.  
  221.   To use the Standard Com Port Interface, the configuration file
  222.   would look something like:
  223.  
  224.     DOOR.CNF
  225.     ----------------------
  226.     C:\GAP
  227.     The Crow's Nest BBS
  228.     4
  229.     03F8
  230.     STANDARD
  231.     0
  232.     0
  233.     0
  234.  
  235.     Lines 3 and 4 are used ONLY if the program will be using a COM port
  236.     other than COM 1 or COM 2. They can be set to 0 if the program will
  237.     not be using non-standard COM ports. Line 5 tells the program to
  238.     use its own internal interrupt handler. Lines 6-8 are not used and
  239.     can be set to 0.
  240.  
  241.   Note that even if the DigiBoard specific options are not used or needed
  242.   they must still be present in the Configration File and all Door Specific
  243.   options now begin on Line 9.
  244.  
  245.  
  246. 07/25/92
  247.  
  248.   Note, with this release of GAPQBDR, you MUST change your Door
  249.   Configuration files such that you remove line 3 (the PCB flag).
  250.   This line is no longer needed since PCB is capable of writing
  251.   a DOOR.SYS file.
  252.  
  253.   Your configuration files will now have 4 required lines:
  254.  
  255.         Path to BBS Directory
  256.         Name of the BBS
  257.         IRQ
  258.         Base Address
  259.  
  260.    The 'do.pcb' flag has been removed. GAPQBDR will work with any
  261.    BBS system that writes a correct DOOR.SYS file. This includes GAP,
  262.    WildCat, and PCB.
  263.  
  264.  
  265. 05/23/91
  266.  
  267.    Turned on the routines that allow for ports other than 
  268.    COM 1 and 2.
  269.  
  270.      This requires a change to your Door configuration file.
  271.  
  272.      Lines 4 and 5 of the CNF file are now reserved for use
  273.      by GAPQBDR. If your door programs are using these lines
  274.      for their own use, you must now begin your own configuration
  275.      options on line 6.
  276.  
  277.      Line 4 of the configuration file is the IRQ for the port.
  278.      Line 5 of the configuration file is the Base Address for the port.
  279.  
  280.      If the user is using COM 1 or COM 2, then they may enter
  281.      a zero (0) on both of these lines, as the default port
  282.      assignments are always used for COM 1 and COM 2.
  283.  
  284.      The IRQ (line 4) must be in the range of 1 - 7.
  285.     
  286.      The Base Address (line 5) must be a Hexadecimal number in the 
  287.      format of:
  288.  
  289.        02E8
  290.        03E8 
  291.        etc.
  292.  
  293.      A sample configuration file is included.
  294.  
  295.      If you are using modified GAPQBDR source code, the two routines
  296.      that were changed are read.cnf and init.door (contained in
  297.      INITDOOR.BAS).
  298.  
  299.  
  300. 12/02/90
  301.  
  302.    Modified the COM routines so that all local data is contained
  303.    in the Code Segment of the GAPCOM module instead of the
  304.    default Data Segment.
  305.  
  306.    This will eliminate the problem some programmers were having
  307.    with their doors in that the door could only be run once (under
  308.    DesqView). On any subsequent runs, all incomming data from the
  309.    remote caller was being vectored to some unknown interrupt handler,
  310.    instead of GAPQBDR's own handler. 
  311.  
  312.    Hopefully, this will also eliminate the lock up problems some
  313.    were having when their door exits back to the BBS system.
  314.  
  315. 12/01/90
  316.  
  317.    Modified the timecredit variable so that it is no longer 
  318.    initialized with the timecredits as written to DOOR.SYS.
  319.  
  320.    When writing DOOR.SYS, GAP writes the actual time
  321.    remaining and this time includes any timecredits the caller
  322.    may have.  However, when figuring time left, GAPQBDR takes
  323.    into consideration the time credits, so if a caller had
  324.    10 minutes left and -10 time credits (in GAP), the door
  325.    program would log the caller off for lack of time.
  326.  
  327.    You may still use the timecredit variable as before, however
  328.    if you intend to update DOOR.SYS with any timecredits given
  329.    or taken away from the caller, you must add your timecredits
  330.    to a new variable called
  331.  
  332.                        realcredit
  333.    
  334.    before updating DOOR.SYS.
  335.  
  336.    Realcredit contains the actual BBS timecredits. It is not used
  337.    in figuring time left for a caller while in the door, since
  338.    the BBS program is supposed to write the actual time left to
  339.    DOOR.SYS.
  340.  
  341.  
  342. 07/08/90
  343.  
  344.    GAPQBDR has been updated so that it now reads the new fields
  345.    in DOOR.SYS. In addition, in a PCB system, the 3 files,
  346.    PCBOARD.DAT, PCBOARD.SYS, and USERS are no longer read.
  347.    Instead, GAPQBDR will read the DOOR.SYS file that PCB now
  348.    writes to obtain the information required to operate.
  349.  
  350.    The following variables have been declared and are available
  351.    for use. These variables are read from some of the new fields
  352.    in DOOR.SYS:
  353.  
  354.      COMMON SHARED dflt.color AS INTEGER    ' BBS default color
  355.      COMMON SHARED maxfiles   AS INTEGER    ' Max files available
  356.      COMMON SHARED curfiles   AS INTEGER    ' Current files downloaded
  357.  
  358.      COMMON SHARED doors.open AS LONG       ' Total doors opened
  359.      COMMON SHARED mesleft    AS LONG       ' Total messages left
  360.      COMMON SHARED downbytes  AS LONG;      ' total download bytes
  361.  
  362.      COMMON SHARED handle     AS STRING      ' caller's Handle
  363.      COMMON SHARED event.time AS STRING      ' event run time
  364.      COMMON SHARED last.new   AS STRING      ' last new files scan
  365.  
  366.   
  367.    GAPQBDR is now compatible with BASIC 7. This required but a very
  368.    minor change to one of the functions. However, it was a frustating
  369.    time, to say the least.  In our 'C' programming, we use the 
  370.    Alternate Math Library as this results in a 10k decrease in CODE
  371.    size. So, we set out to install BASIC 7 using the Alternate Math
  372.    Library. To utilize this library, you compile your modules using
  373.    the /FPa switch. Everything compiles just fine, but when trying 
  374.    to create the GAPQBDR Quick Library, the Linker complains of 
  375.    "unresolved external references". After many frustrating hours, we
  376.    decided to install BASIC 7 with the Emulator Library (the
  377.    default).  This Math Library works just fine and so we will just
  378.    leave it at that and not attempt to waste any more time trying
  379.    to determine why the Alternate Math Library does not work.
  380.  
  381.    There are two ZIP files contained within GAPQBDR that contain the
  382.    actual LIB and QLB files. One is for BASIC 7 (or QBX) and the
  383.    other is for QB 4.5.
  384.  
  385.    NOTE (09/02/90):
  386.      The Quick Library for BASIC 7 has been removed from GAPQBDR.
  387.      It seems that the only way to create a 'workable' QLB for
  388.      QBX is to use /Fs (far strings). This will create a GAPQBDR.QLB
  389.      that QBX can load, but your programs will not work correctly.
  390.      GAPQBDR was not written to take advantage of any so called
  391.      "features" of BASIC 7 (Far Strings being one of them), so if
  392.      you use BASIC 7, you will need to do your compiling using BC.
  393.  
  394.     
  395.  
  396. 12/16/89
  397.   
  398.    Updated the GAPDOS record structure to be compatible with the
  399.    current version of GAP.
  400.  
  401.    Fixed a problem with dropped carriers and PCB. 
  402.  
  403.  
  404. 10/01/89
  405.  
  406.    Changes to your source file:
  407.  
  408.    If you called previously undocumented GAPQBDR routines,
  409.    you will need to include GAPQBSRC.BI right after GAPQBDR.BI.
  410.    Previously undocumented functions are now fully referenced
  411.    in the printed manual. GAPQBSRC.BI contains the function
  412.    declarations for these routines as well as declarations
  413.    for the private variables. If you receive a "Sub Program
  414.    Not Defined" or an unresolved external reference, you
  415.    probably need to include GAPQBSRC.BI.
  416.    
  417.    The error handler is now part of your source modules. It 
  418.    is in GAPQBERR.BI and MUST be included AFTER any declarations
  419.    but BEFORE any basic statments.
  420.  
  421.    ' $INCLUDE: 'gapqberr.bi'
  422.  
  423.    In other words, it is in included after any variable
  424.    declarations and before any executible statments. Note
  425.    that A$ = "This is a sting" is a statment and not a variable
  426.    declaration.
  427.  
  428.    Because the error handler is now a part of your program, you must
  429.    use the /x switch when compiling your source module. 
  430.  
  431.    Please refer to the EXAMPLE.BAS program for more information
  432.    as to how the error handler is included in your programs.
  433.  
  434.  
  435.    A number of new routines were added to this release. These new
  436.    functions (as well as descriptions of previously undocumented
  437.    routines) are fully referenced in the printed manual.
  438.  
  439.    This release of GAPQBDR requires that the GAP system be at
  440.    version 4.3 or higher. New fields were added to DOOR.SYS and
  441.    only GAP versions at or above 4.3 are able to write them.
  442.    Your previously compiled doors will continue to operate
  443.    normally. This change affects only newly compiled programs.
  444.    
  445.    If you licensed the source code, there is additional information
  446.    contained within SRCREAD.ME.  In addition, you will find that
  447.    the source modules were broken up into smaller pieces and that
  448.    most of the private routines are now provided.
  449.  
  450.    
  451. 08/28/89
  452.  
  453.    GAPQBDR now utilizes all new communications routines. It is no
  454.    longer dependant upon QB to handle communications I/O. What 
  455.    this means to you, the programmer, is that you no longer need
  456.    worry about your end users having a DTR patched version of 
  457.    BRUN45.EXE. In addition, those "device time out" and "bad file
  458.    number" errors QB gives us when it has problems with the COM
  459.    port are eliminated.
  460.  
  461.    The communications routines are written in assembler for speed
  462.    and compactness. They are capable of handling any com port you
  463.    have set up, however we have limited them to COM 1 - COM 4. They
  464.    support speeds to 38.4k, and will automatically use the 16550
  465.    FIFO buffer if that chip is installed.
  466.  
  467.    Because of these modifications, you will need to make changes to
  468.    your source code if you accessed the com port directly or 
  469.    through file #9.  The communications routines are documented in
  470.    the printed manual only.
  471.  
  472.    It is of vital importance that you exit your door via the 
  473.    leave function. Failure to do so will leave communications
  474.    interrupts active which will cause your computer to lock up at
  475.    some point.  
  476.  
  477.    The GAPQBDR environment variable is no longer used to specify
  478.    that the BBS is a PCB system.  Instead, line 3 of the door
  479.    configuration file is used for this purpose.  On line 3 of that
  480.    file, enter (or have your end users enter) a 1 if the BBS
  481.    is PCB, or 0 for a GAP system. The default is still GAP mode so
  482.    if anything other than a 1 is found on line 3 of the configuration
  483.    file, GAPQBDR will assume the BBS is GAP. Any options you may
  484.    need for a particular door will begin on line 4.
  485.  
  486.