home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PROG_GEN / BBSKIT31.ZIP / ADDENDUM.DOC next >
Text File  |  1994-01-06  |  8KB  |  153 lines

  1.                      ADDENDUM TO THE BBSKIT DOCUMENTATION
  2.                      ====================================
  3.  
  4.         This file contains information on the changes to the BBSkit
  5. distribution since version 3.0.  The hardcopy manual has not been updated
  6. since 3.0, so any changes have been noted here.
  7.  
  8. NEW IN 3.1
  9. ----------
  10.  
  11. BBSKIT.PAS: HandleParseKey()  [ New ]
  12.             SetParseDelimiter()  [ New ]
  13.             TypeFileParseLine()  [ Removed ]
  14.             TypeTextFile()  [ New ]
  15.  
  16.                 These methods now have more flexible control over how parsing
  17.                 is accomplished with BBSkit.  3.0 introduced parsing and
  18.                 required that the programmer create his/her own method to do
  19.                 everything involved with typing a file -- this is cumbersome
  20.                 and can be avoided.  The new method requires that all keywords
  21.                 in a parsed file be surrounded by the same delimiting
  22.                 character.  For example, #USERNAME#.
  23.  
  24.               FUNCTION TBBS.HandleParseKey(Key : String) : String; VIRTUAL;
  25.  
  26.                 Handles the actual parsing of a keyword.  The parameter Key is
  27.                 a string containing the uppercase text between the two
  28.                 delimiter characters.  '#USERNAME#' and '#username#' would
  29.                 both be passed in Key as simply 'USERNAME'.  Inside this
  30.                 routine you will just have if..then constructs for each of
  31.                 your valid keys, and return the string to substitute for each
  32.                 key.  If a key performs an action instead of substituting a
  33.                 string, just return an empty string.
  34.  
  35.                 This function IS recursive.  That is, you can return a value
  36.                 for a keyword which is in itself another keyword, and it will
  37.                 be translated.  So be careful, unless you really want to do
  38.                 this.
  39.  
  40.               PROCEDURE TBBS.SetParseDelimiter(Ch : Char);
  41.  
  42.                 Sets the character which delimits a parser keyword.  The
  43.                 default is a pound sign (#).
  44.  
  45.               PROCEDURE TBBS.TypeTextFile(F : Text);
  46.  
  47.                 This is the 3.0 method TypeRestOfFile under a new name.  The
  48.                 reason for the name change is to distinguish it from
  49.                 TypeFile(), which reads in blocks of 255 characters instead of
  50.                 on a line-by-line basis.  If you are using ANSI, use
  51.                 TypeFile().  If you are using parsed files, use
  52.                 TypeTextFile().  You can mix the two (use parsed text in an
  53.                 ANSI file) and send it through TypeFile(), however be warned
  54.                 that there is the possibility that a keyword will span two
  55.                 blocks read from disk.  In these cases, the keyword will NOT
  56.                 be parsed.
  57.  
  58.                 Note: you still have to manually open and close the text file
  59.                 sent to TypeTextFile() so it still provides the same
  60.                 functionality of the older method.
  61.  
  62. BBSKIT.PAS: SendBreak()  [ New ]
  63.  
  64.                 BBSkit now implements its own SendBreak() procedure which
  65.                 avoids calling the DOS unit's Delay() procedure.  This keeps
  66.                 the multithreading going, and permits breaks on more than one
  67.                 port at a time.
  68.  
  69. COMM.PAS: TDriverInfo type  [ New ]
  70.           GetDriverInfo()  [ New ]
  71.           SetPortRoutines()  [ New ]
  72.  
  73.                 You can now define which set of comm routines that a specified
  74.                 port will make use of.  You can use either the internal
  75.                 assembler routines, or an external FOSSIL driver.  You can
  76.                 also mix and match these routines on a port-by-port basis.
  77.  
  78.               TDriverInfo type
  79.  
  80.                 Defines a type returned by a FOSSIL driver for statistics on a
  81.                 port.  Also returns some information about the FOSSIL driver
  82.                 itself, the sizes of the buffers, and other miscellaneous
  83.                 information.
  84.  
  85.               PROCEDURE GetDriverInfo(PortIdx : Byte; var Info : TDriverInfo)
  86.  
  87.                 Gets information on a port.  Returns a string describing the
  88.                 current serial driver routines, and some information on the
  89.                 routines in use.  FOSSIL drivers return a construct exactly in
  90.                 the form of the TDriverInfo type, while the internal routines
  91.                 return everything EXCEPT the screen height & width, and the
  92.                 current bps rate of the port.
  93.  
  94.               PROCEDURE SetPortRoutines(PortIdx, Routines : Byte)
  95.  
  96.                 Defines which set of routines to use for a given port.  This
  97.                 procedure MUST be called prior to initializing the port, or it
  98.                 will simply return without doing anything.  Legal values are
  99.                 FOSSIL or INTERNAL.
  100.  
  101. COMM.PAS: ReceiveBufferUsed()  [ New ]
  102.           SendBufferUsed()  [ New ]
  103.  
  104.                 Two new procedures which isolate the programmer from the
  105.                 internal structures used by the assembler routines.  Use these
  106.                 to find out how much space has been used for a given buffer,
  107.                 instead of peeking directly into the record variable.
  108.  
  109.                 Continues to make the line between the driver layer and the
  110.                 application layer of your program a little more fine.  These
  111.                 routines do not care which set of routines you are using -- so
  112.                 use them instead of hardcoding peeks at memory (which would
  113.                 fail if you ever decided to switch to a FOSSIL driver anyway).
  114.  
  115. COMM.PAS: FOSSIL support  [ New ]
  116.  
  117.                 FOSSIL support is now implemented for every necessary routine
  118.                 in the Comm unit.  Routines which are not supported using the
  119.                 FOSSIL routines are:
  120.  
  121.                   ClearPort()                  SetFlowLimits()
  122.                   ClearToSend()                SetInactiveLimit()
  123.                   DataTerminalReady()          SetParity()
  124.                   DetectPort()                 SetRTS()
  125.                   LineRinging()                SetSoftHandshake()
  126.                   Parity()                     SetStopBits()
  127.                   SetBreakClearBuffer()        SetWordLength()
  128.                   SetClearBufferChar()         StopBits()
  129.                   SetFIFO()                    WaitForRingTrailer()
  130.                   SetFIFOTrigger()             WordLength()
  131.  
  132.                 Additionally, some routines have slightly different behaviors
  133.                 when used with a FOSSIL driver:
  134.  
  135.                   DetectUART() returns 'FOSSIL' when a FOSSIL driver is used.
  136.                   SetBps() automatically sets 8 data bits, no parity, and 1
  137.                     stop bit.  Supported bps values are 300, 600, 1200, 2400,
  138.                     4800, 9600, 19200, and 38400 only.
  139.  
  140. VC.PAS: PeekKeyboard()  [ New ]
  141.  
  142.                 Returns the next key in a VC's keybuffer without removing it.
  143.                 This fixes a bug which would rarely allow a TypeFile() to be
  144.                 interrupted.
  145.  
  146. VC.PAS: GotoVC()  [ New ]
  147.  
  148.                 Allows a program to switch to another virtual console without
  149.                 operator intervention at the next iteration of the system
  150.                 task.  The index of the VC must be in the range of 1 to 10, or
  151.                 else it is ignored.
  152.  
  153.