home *** CD-ROM | disk | FTP | other *** search
- BOI 2.00 Procedure and Function Library 12/15/92
-
- BBS Onliner Interface 2.00 (Pascal)
- (C) 1992 Andrew J. Mead
- All Rights Reserved.
-
- Contact:
- PO BOX 1155
- Chapel Hill, NC 27514-1155
- USA
- or
- 1:3641/417 FidoNet 75:7919/417 DoorNet
- #1@9952 WWIVnet #1@9395 VirtualNet
-
- Turbo Pascal and TP are registered trademarks of Borland International.
- Borland Pascal and BP are registered trademarks of Borland International.
-
- This document contains two sections. The first defines all public
- procedures and functions. The second lists the private procedures and
- functions of each unit.
-
- Sample entry:
-
- Procedure DECLARATION classification UNIT
- - argument listing (what this argument is)
- This is what this procedure does. This replaces this other Turbo
- procedure. A code sample for this procedure may follow.
-
-
- Public Procedures and Functions
-
- Procedure ABORTGAME housekeeping SUPPORT
- - byte (minimum remote screen size in lines)
- AbortGame is provided as a way to alert the remote user that their
- screen does not appear to be large enough to use the door. This
- procedure will initiate the programs exit procedure chain.
-
-
- Procedure ASYNCINT : Interrupt communications ASYNC
- AsyncInt is the internal asynchronious communications interrupt
- handler. This procedure should never, ever be called directly.
- It is publicly declared because, for some reason, it doesn't seem
- to work otherwise.
-
-
- Function CARRIER : boolean communications ASYNC
- Carrier returns true if carrier is detected, the program is being
- run in local mode, or the carrier detect override command line
- switch was used. This function is designed for internal BOI usage.
- If you find your program needs to access it, I recommend writing
- a shell procedure or function and placing it in IOLib.
-
-
- Procedure CHANGECOLOR video IOLIB
- - word (remote and local attributes)
- ChangeColor allows you to set both remote and local text attributes
- at once. This procedure is usually used as a restore operation.
- For general use you will probably want to use IOLib.PortBackground,
- IOLib.PortColor, etc. The passed argument contains the desired
- remote text attribute as the low order byte, and the desired local
- text attribute as the high order byte.
- See IOLib.GetTextAttr for sample.
-
-
- Function CHARREADY : boolean remote input ASYNC
- CharReady returns true if there are any characters waiting in the
- communications input buffer. This function is designed for
- internal BOI usage only. You should use IOLib.PortKeyPressed in
- your programs.
-
-
- Procedure CHECKSECONDKEY input IOSUPP
- - var char (scan code to check/character to return)
- CheckSecondKey is used to interpret extended character codes
- returned by the local keyboard. If the code is not processed, $00
- is returned. You could use this structure to implement more SysOp
- functions such as ChatMode, etc... This procedure is only called by
- IOLib.ReadPortKey. Here is a list of default function keys
- key function
- [F2] toggle boi_statmode (user status line display mode)
- [F7] decrease user's remaining time by one minute
- [F8] increase user's remaining time by one minute
- [F9] disconnect phone line and exit game with simulated line noise
- [F10] exit game and return to BBS, notifying user of action
-
-
- Procedure CLEANSTRING string IOLIB
- - var string (string to process)
- CleanString will remove all spaces from the beginning and end of a
- string. See IOLib.StripString for more complete processing.
-
- str := ' Test String ';
- SendString('***' + str + '***',false); {'*** Test String ***'}
- CleanString(str);
- SendString('***' + str + '***',false); {'***Test String***'}
-
-
- Procedure CLEARBUFFERS input IOLIB
- ClearBuffers clears the input stream. It removes all characters
- the local keyboard input buffer and the remote communications input
- buffer. This procedure is helpful in limiting type ahead.
-
- SendString('Continue? [Y/N] ',false);
- ClearBuffers;
- repeat inchar := UpCase(ReadPortKey)
- until inchar in ['Y','N'];
-
-
- Procedure CLEARINBUFFER remote input ASYNC
- ClearInBuffer clears the communications input buffer, discarding any
- characters waiting to be read. This procedure is designed for
- internal BOI usage only. You should use IOLib.ClearBuffers in your
- programs.
-
-
- Procedure CLRPORTSCR graphics IOLIB
- ClrPortScr clears the active display window on both local and
- remote consoles. This procedure replaces Crt.ClrScr. If there is
- a remote user, the user status line will be refreshed on the local
- console.
-
-
- Procedure CLRPORTEOL graphics IOLIB
- ClrPortEOL blanks characters from the cursor to the right edge of
- the screen. This procedure replaces Crt.ClrEOL.
-
-
- Function DATHOF : pathstr door information DOORLIB
- DatHOF returns the file name for the door's data Hall of Fame if the
- door has a Hall of Fame. This value can be changed by calling
- DoorLib.DL_SetValue.
-
-
- Procedure DISPLAYTEXT file handling SUPPORT
- - pathstr
- DisplayText will display a formatted text file to the user. This
- procedural allows users to pause (spacebar) or exit (escape) at any
- time during the display. The formatting codes (as they stand now)
- are thus:
-
- The first seven (7) characters of each line of a DisplayText text
- file are reserved for formatting information. Here is the header
- layout: (Note: Windowing commands (W) don't follow the same format.)
-
- byte legal values notes/meaning
- 1 + - C E B W other values indicate comment, line is ignored
- 2 none blank space
- 3 0..F color value passed to PortBackground(color)
- 4 0..F color value passed to PortColor(color,monochrome)
- 5 0..F reserved
- 6 0..F monochrome value passed to PortColor(color,mono)
- 7 none blank space
-
- Any suggestions for extending the formatting codes, or fully
- implementing the Windowing (W) directive are welcome. When I add
- language support, I'll be adding labels with a colon ":" in the
- first column.
-
-
- Procedure DL_SETVALUE door information DOORLIB
- - byte (index of value to change)
- - pathstr (new value)
- DL_SetValue allows the program (use extreme caution) to change
- several door specific values. These are the values that are
- compiled into DoorLib through DOORLIB.DAT.
- index Function value
- 1 InfoFile File name of online instruction file
- 2 TxtHOF File name of text Hall of Fame file
- 3 DatHOF File name of data Hall of Fame file
- 4 LogFile File name of door's error/activity log file
- 5 DoorName Name by which the door refers to itself
- 6 Version string representation of Door's version number
-
-
- Function DOORNAME : pathstr door information DOORLIB
- DoorName returns the name that the door likes to call itself by.
- This value can be changed by calling DoorLib.DL_SetValue.
-
-
- Procedure DOTIMEOUT internal housekeeping IOLIB
- - boolean (make noise indicator)
- DoTimeOut is invoked if the remote user goes two minutes without
- pressing the keyboard. It is also called in some circumstances if
- carrier is lost. I do not recommend that your door call this
- procedure. DoTimeOut halts program execution and invokes the
- exit procedure chain.
-
-
- Procedure DROPCARRIER communications ASYNC
- DropCarrier will attempt to use DTR (Data Terminal Ready) to get
- the modem to disconnect the phone. This procedure should be used
- with extreme prejudice. This procedure should not be directly
- called by your programs. If this is necessary you should build a
- shell procedure and place it in IOLib.
-
-
- Procedure ENDGAME hall of fame SUPPORT
- - string (user designation (i.e. Players, Traders, Users, etc...)
- - boolean (score is valid of HOF consideration)
- - boolean (score is cash instead of points)
- - boolean (higher scores are better than lower scores)
- EndGame is supplied as a sample Hall of Fame handling routine. Most
- of my games use this routine as is. Star Traders uses a modified
- one that uses the numeric type comp for scores as well as tracking
- two seperate Hall of Fames. This procedure will maintain a Hall of
- Fame that contains the all time best score, the previous month's top
- three scores, and the current month's top twenty. It will also
- create a text version of the Hall of Fame that details the all time
- best score, last month's top three, and this month's top ten. This
- text Hall of Fame is ideal for one screen online bulletins.
-
-
- Function EXIST : boolean file handling IOLIB
- - pathstr (file to look for)
- Exist tells whether or not a file is actually present or not. This
- procedure should be used in conjunction with IOLib.Valid.
-
- if Valid(filename) then
- begin
- if Exist(filename) then
- DisplayText(filename)
- else NotifySysOp(filename)
- end
- else { error handling }
-
-
- Procedure GETSTRING input IOLIB
- - var string (input string)
- GetString returns all characters input both locally and from remote
- up to, but not including the next carriage return. This effectively
- replaces System.ReadLn for user input.
- By utilizing the BOI system variable boi_nextchar, you can "push" a
- character into this procedure. This allows you to have one prompt
- that allows both hot keys and string input. See HiLo program for an
- example of this technique.
-
-
- Procedure GETTEXTATTR video IOLIB
- - var word (remote and local text attributes)
- GetTextAttr returns the current remote and local text attributes.
- This is the BOI's replacement to Turbo Pascal's textattr variable.
- The passed argument contains the desired remote text attribute as
- the low order byte, and the desired local text attribute as the high
- order byte. This procedure is usually used in conjunction with
- IOLib.ChangeColor to save then restore a given set of text
- attributes.
-
- GetTextAttr(saveattribs);
- {do something like write on user status line, changing color}
- ChangeColor(saveattribs);
-
-
- Function GETTIMER : boolean timing IOLIB
- - var longint (base timer tick value)
- - word (target number of seconds)
- GetTimer returns true if val seconds have passed since the base
- timer tick value was initialized (see IOLib.TimerSet). These two
- procedures can be used for benchmarking, user inactivity timing,
- etc...
-
-
- Procedure GOTOPORTXY video IOLIB
- - byte (x coordinate)
- - byte (y coordinate)
- GotoPortXY should be used instead of Turbo Pascal's GotoXY.
-
-
- Function HEX : byte miscellaneous IOLIB
- - char
- Hex is used to convert hex character values "0".."9", "A".."F", and
- "a".."f" into numeric values $0..$F. This procedure is used most
- notibly by Support.DisplayText when decoding formatting codes.
-
-
- Function INFOFILE : pathstr door information DOORLIB
- InfoFile returns the name of the door's online instruction file.
- This value can be changed by calling DoorLib.DL_SetValue.
-
-
- Function INTINIT : byte communications ASYNC
- IntInit checks game configuration (foss_init) and attempts to
- install either the FOSSIL or internal asynchronious communications
- routines. This Function returns zero (0) on success or thirty one
- (31) on FOSSIL initialization failure. It also installs the
- housekeeping routines necessary to automatically disengage
- communications when the program ends. This function should not
- be called under any circumstances by your program. You should
- let IOLib.SetPort call it.
-
-
- Function INTSTR : string string IOLIB
- - longint (integer value to convert to a string)
- - byte (minimum size of string)
- IntStr returns a string of an integer value. Best utilized by
- SendString for formatted (left or right justified) output. IntStr
- replaces the numeric output syntax found in Write and WriteLn.
- Replace
- WriteLn('Result: ',integervalue:6);
- with
- SendString('Result: ' + IntStr(integervalue,6),true);
-
-
- Function LEFTTIME : integer timing IOLIB
- LeftTime returns the users current time remaining in minutes.
- LeftTime rounds down. It returns -1 if time has expired.
-
-
- Procedure LINEWRITE formatted display SUPPORT
- - string (lstr : string;
- - byte (color value to pass to PortColor(color,mono))
- - byte (monochrome value to pass to PortColor(color,mono))
- - boolean (indicate whether choice is currently valid)
- LineWrite is designed to help create menu bars. The colors passed
- are for the text. If the choice is valid, then the second character
- in the string is highlighted (white). The sample onliner HiLo
- demonstrates this procedure better than I can here. This procedure
- is used by all of my online games.
-
-
- Function LOGFILE : pathstr door information DOORLIB
- LogFile returns the name of the door's error (and soon to also be
- activity) file. This value can be changed by calling
- DoorLib.DL_SetValue.
-
-
- Function MAX : word miscellaneous IOLIB
- - word
- - word
- Max returns the greater of two word values.
-
-
- Function MAXL : longint miscellaneous IOLIB
- - longint
- - longint
- MaxL returns the greater of two longint values.
-
-
- Function MIN : word miscellaneous IOLIB
- - word
- - word
- Min returns the lesser of two word values.
-
-
- Function MINL : longint miscellaneous IOLIB
- - longint
- - longint
- MilL returns the lesser of two longint values.
-
-
- Procedure NOTIFYSYSOP file handling IOLIB
- - pathstr
- NotifySysOp sends a message to the user that a given file can not be
- located. It asks the user to notify the SysOp so that the problem
- can be fixed. This is usually used in conjunction with IOLib.Exist.
- See IOLib.Exist for sample.
-
-
- Function OPENFILE : word file handling IOLIB
- - var file (file handle)
- - word (record size)
- - byte (file sharing mode)
- - facctype (file access mode [reset/rewrite])
- OpenFile is used to open non-text files. Since it utilizes untyped
- files, you'll need to use BlockRead and BlockWrite to access the
- information in the file. You need to give OpenFile a record size
- (usually 1), a dos sharing mode (i.e. denynone+read_only), and
- a file access mode (treset or trewrite). OpenFile returns IOResult
- from the last attempt to open the file.
-
- Assign(f,'roster.dat');
- if Exist('roster.dat') then
- OpenFile(r,SizeOf(rosterrec),denynone+read_only,treset);
- BlockRead(r,rbuffer^,1,inread);
-
-
- Function OPENTEXT : word file handling IOLIB
- - var text (file handle)
- - byte (file sharing mode)
- - facctype (file acces mode [reset/append/rewrite]
- OpenText is the text file version of OpenFile. There is no need to
- specify record size, and there is the additional tappend file access
- mode. OpenText returns IOResult from the last attempt to open the
- file. See IOLib.OpenFile for sample.
-
-
- Function PADSTR : string string IOLIB
- - string (string to right justify)
- - byte (minimum size of string)
- PadStr returns a right justified version of the string it is sent.
- PadStr is normally used with SendString to format output. PadStr
- replaces the formatting syntax of Write and WriteLn.
- Replace
- WriteLn(namestr:26);
- with
- SendString(PadStr(namestr,26),true);
-
-
- Procedure PORTBACKGROUND video IOLIB
- - byte (background color)
- PortBackground replaces Turbo Pascal's TextBackground. This
- procedure will change color on both the local and remote screens.
-
-
- Procedure PORTCOLOR video IOLIB
- - byte (foreground color / color modes)
- - byte (foreground color / monochrome modes)
- PortColor allows for color/monochrome screen control. PortColor and
- TextPortColor both replace Turbo Pascal's TextColor procedure.
- PortColor allows you to program with different looks for both color
- and monochrome modes.
- Note: PortColor, TextPortColor, and PortBackground are all highly
- optimized. They depend heavily on the variables boi_r_textattr, and
- boi_l_textattr. If the BOI thinks that you are trying to change the
- color to the color it thinks is set, these procedures will NOT do
- anything. The advantages are that it greatly speeds up remote
- video, and it allows the programmer more freedom in style. The one
- caviat is that you must USE these procedures. Be very careful about
- imbedding color codes into your text stream.
-
-
- Procedure PORTCOLUMNONE video IOLIB
- PortColumnOne is the equivalent of Crt.GotoPortXY(1,WhereY). It is
- usually followed by a ClrPortEOL statement.
-
-
- Function PORTKEYPRESSED : boolean input IOLIB
- PortKeyPressed replaces Turbo Pascal's KeyPressed function. If
- there is a key waiting either in the local keyboard buffer or the
- communications input buffer, this function will return true.
-
-
- Procedure PORTWINDOW video IOLIB
- - byte (leftmost x coordinate of active window)
- - byte (topmost y coordinate of active window)
- - byte (rightmost x coordinate of active window)
- - byte (bottommost y coordinate of active window)
- PortWindow replaces TurboPascal's Window procedure. When declaring
- the entire screen, I recommend using the system variable
- boi_pagelength to be the last variable passed.
- You should be careful with your screen layout. If your program will
- requires a window that does not reach the right edge of the screen
- that must be cleared at regular intervals, you need to be aware that
- ANSI screen clearing will be tedious. You'll need to clear each and
- every square manually. If, however, your window reaches the right
- edge of the screen, clearing is much faster due to IOLib.ClrPortEOL.
-
-
- Function PROGRAMSET : boolean door information DOORLIB
- - char (command line switch character to test for validity)
- This procedure is used by GetCmBBS.GetCommand to test alternate
- command line switch characters for validity. This whole sequence
- enables you to write doors that have some door specific command line
- parameters. My game Madness' -t Tournament Mode switch is one
- example and Path Finder's -t Trail Mode is another. I can think of
- no reason for anything other than GetCommand to call ProgramSet.
-
-
- Procedure QUERYUSER video initialization SUPPORT
- - charset
- QueryUser is used to prompt the player to tell what video graphics
- mode they would like to use. You send QueryUser a set of characters
- that correspond the choices you wish to enable.
- "Q" Quit now. Halts the game
- "1" ANSI color.
- "2" ANSI monochrome.
- "3" AVATAR/1 color. (recommend checking boi_allowavt)
- "4" AVATAR/1 monochrome.
- If the game is being played locally, the following two modes are
- also available.
- "C" direct color.
- "M" direct monochrome.
- I recommend that you use this procedure before any other. Many drop
- files contain graphics information, but users are notorious for not
- configuring their BBS account to what they actually have. Back when
- I used to log on at 1200 bps, I usually told the BBS that I did not
- have ANSI capability because I did not want to sit through the ANSI
- menus. However, I was more than happy to play the ANSI games.
-
-
- Function READBUFFER : char remote input ASYNC
- ReadBuffer returns the next character from the input buffer. This
- should only be called if Async.CharReady returns true. If there is
- no character waiting, and ReadBuffer is called, it will return #00.
- This procedure should not be called directly by your program. You
- should use IOLib.ReadPortKey instead.
-
-
- Function READPORTKEY : char input IOLIB
- ReadPortKey returns the next waiting character from either the local
- keyboard buffer or the port input buffer. This function replaces
- Turbo Pascal's ReadKey. This behaves like ReadKey except that
- extended codes (from the local keyboard) are not pushed into the
- input buffer. They are passed processed in the background by
- IOSupp.CheckSecondKey. ReadPortKey will wait until a character is
- pressed. You may want to use it in conjunction with PortKeypressed.
- If this routine detects no remote activity for two minutes, it will
- call IOLib.DoTimeOut and the program will terminate.
-
-
- Function REALSTR : string string IOLIB
- - real (real value to convert into a string)
- - byte (minimum size of string)
- - byte (number of digits to right of the decimal)
- RealStr returns a right justified string version fo the real value
- it is sent. RealStr is normally used with SendString to format
- output. RealStr replaced the formatting syntax of real values with
- Write and WriteLn.
- Replace
- WriteLn(realnum:6:2);
- with
- SendString(RealStr(realnum,6,2),true);
-
-
- Procedure RESETPORTXY video/positional IOLIB
- ResetPortXY restores the screen location of the cursor that was
- saved by a call to IOLib.SetPortXY. See SetPortXY for more info.
-
-
- Procedure SENDCHAR remote output ASYNC
- - char (character to send to remote)
- SendChar sends a character to the communications port. This
- procedure should not be called directly. You should use either
- IOLib.SendString or IOLib.SendRemote instead. If SendChar detects
- that carrier has been lost, it will initiate the programs exit
- procedure chain.
-
-
- Procedure SENDLOCAL internal output IOLIB
- - string (characters to output to local console)
- SendLocal will send anything it is sent to the local console. This
- routine is meant for internal BOI use. I recommend against calling
- it from within your door.
-
-
- Procedure SENDREMOTE internal output IOLIB
- - string (characters to send to remote console)
- SendRemote will send anything it is sent to the remote console. This
- routine is meant for internal BOI use. I recommend against calling
- it from within your door. If you wish to supress local console
- echoing, set the variable boi_echo to false and use SendString.
-
-
- Procedure SENDSTRING output IOLIB
- - string (string to output)
- - boolean (send a carriage return/linefeed indicator)
- SendString replaces Turbo Pascal's Write and WriteLn output
- procedures (for consoles). This is the main output procedure.
- For formatting output see IntStr, PadStr, and RealStr.
-
-
- Procedure SETBUFFERSIZE remote input ASYNC
- - integer (new circular input buffer size [2..1024])
- SetBufferSize allows you to change the remote "type ahead" buffer.
- A call to SetBufferSize will also erase anything currently in the
- input buffer. SetBufferSize will accept values from 2 to 1024
- (default). I recommend against any calls to this procedure.
-
-
- Procedure SETLOCALGRAPHMODE video IOLIB
- - boi_grmode (new graphics mode [ASCII,ANSI,AVATAR,CRT]
- SetLocalGraphMode should be used to change the local graphics mode.
- When switching graphics modes, certain values need to be
- initialized. This procedure will take care of the housekeeping.
-
-
- Function SETPORT : byte; communications IOLIB
- SetPort initializes BOI communications. This function should be
- used to access the communications routines in Async. This function
- is called by GetCmBBS.GetCommand. On the first call to SetPort,
- SetPort calls Async.IntInit and returns the value that IntInit
- returns to it. On subsequent calls, SetPort does nothing but
- return $FF (255).
-
-
- Procedure SETPORTXY video/positional IOLIB
- SetPortXY and ResetPortXY are used in tandem to save a given cursor
- postition then restore it later. Use of this pair should replace
- the local programming paradigm of calling WhereX and WhereY, saving
- the temp values, then using GotoXY to move around. In a future
- version of the BOI, I may try to track remote screen position.
-
-
- Procedure SETTEXTATTR internal video IOLIB
- - word (attributes to set)
- SetTextAttr is provided merely as a complement to GetTextAttr and
- ChangeColor. This procedure allows you to tell the BOI that the
- text attributes are something other than what the BOI thinks they
- are. If you need to use this procedure, I recommend that you
- reconsider your programming techniques.
-
-
- Procedure STRIPSTRING string IOLIB
- - var string (string to process)
- - charset (set of characters to remove from string)
- StripString is provided as a simple way to remove unwantedd
- characters from a string. This is more comprehensive than the
- procedure CleanString.
-
- str := ' Test String ';
- SendString('***' + str + '***',false); "*** Test String ***"
- StripString(str);
- SendString('***' + str + '***',false); "***TestString***"
-
-
- Procedure TEXTPORTCOLOR video IOLIB
- - byte (color to set following text to)
- TextPortColor and PortColor both replace Turbo Pascal's TextColor
- procedure. This procedure is a direct replacement. If you want
- to take color/monochrome modes into account, see PortColor.
-
-
- Procedure TIMERSET timing IOLIB
- - var longint (base initialized value)
- TimerSet initializes basetime to the current timer tick value. This
- value can then be sent to GetTimer as a test to see if a certain
- number of timer ticks (18.2 per second) have elapsed.
-
-
- Function TXTHOF : pathstr door information DOORLIB
- TxtHOF returns the file name for the door's text Hall of Fame if the
- door has a Hall of Fame. This value can be changed by calling
- DoorLib.DL_SetValue. Be careful changing this. Changing this can
- interfere with the BOI's /Y command line parameter. Support.EndGame
- uses the system variable boi_texthof that contains a complete path
- and file name (from GetCmBBS.GetCommand).
-
-
- Procedure UPDATESTATLINE sysop IOLIB
- If there is a remote user, calls to UpdateStatLine will refresh
- the User Status Line. The displayed line information can be
- toggled by the SysOp pressing [F2]. The display mode can also be
- changed directly by setting boi_statmode. UpdateStatLine also
- maintains a timer value of the last time it was called, boi_smtime,
- so that you can space out calls to the status line.
-
-
- Function VALID : boolean file handling IOLIB
- - pathstr (filespec to verify)
- Valid tells whether or not a given path/filespec is a valid DOS
- filename. This function should be used before attempting to open
- any user named files. See IOLib.Exist for more.
-
-
- Function VERSION : pathstr door information DOORLIB
- Version returns the door's current version number. This value can
- be changed by calling DoorLib.DL_SetValue.
-
-
- Function WRITECOPY : boolean housekeeping SUPPORT
- - boolean (do we ask if they want instructions?)
- WriteCopy is the door and interface's copyright notice screen. It
- also indicates to the player whether or not the game has been
- registered. You can have WriteCopy prompt the player to indicate
- if they wish to read the online instructions. WriteCopy will
- return true if they do. All of my doors call this immediately
- after calling Support.QueryUser.
-
- -----
- Unit Async Internals
-
- Function IntInit public procedure ASYNC
-
- Procedure ASYNCINIT communications ASYNC
- AsyncInit is called by IntInit if the internal communication
- routines are used. AsyncInit installs and activates the
- interrupt handler Async.AsyncInt. It als inserts Async.AsyncEnd
- into the exit procedure chain.
-
- Procedure FOSSILINIT communications ASYNC
- FOSSILInit is called by IntInit if FOSSIL communications routines
- are used. FOSSILInit initialized the FOSSIL and inserts
- Async.FOSSILEnd into the exit procedure chain
-
- Procedure ASYNCEND exit procedure ASYNC
- AsyncEnd, which is installed by Async.IntInit.AsyncInit, restores
- the communication interrupt handler to its original state.
-
- Procedure FOSSILEND exit procedure ASYNC
- FOSSILEnd, which is installed by Async.IntInit.FOSSILInit,
- deinitializes the FOSSIL driver.
-
-
- -----
- Unit BOIDecl Internals
-
- Procedure CALLOLDINT interrupt handling BOIDECL
- CallOldInt allows BOIInt08h to chain to the previous timer
- interrupt.
-
- Procedure BOIINT08H interrupt interrupt handler BOIDECL
- BOIInt08h is the BOI's timer ISR.
-
- Procedure NULLPROC empty procedure BOIDECL
-
- Procedure DV_WAIT timing BOIDECL
- Used to give time slices back to DESQview.
-
- Procedure DV_CRIT interrupt handling BOIDECL
- Used to tell DESQview not to switch away.
-
- Procedure DV_SAFE interrupt handling BOIDECL
- Used to let DESQview know that it is safe to switch away.
-
- Function CHECKDV : boolean initialization BOIDECL
- Used to determine if DESQview is present, and, if so, initialize
- certain BOI system values.
-
- Procedure MS_WAIT timing BOIDECL
- Used to give time slices back to MS Windows.
-
- Procedure WIN_CRIT interrupt handling BOIDECL
- Used to tell MS Windows not to switch away.
-
- Procedure WIN_SAFE interrupt handling BOIDECL
- Used to let MS Windows know that it safe to switch away.
-
- Function CHECKWINDOZE : boolean initialization BOIDECL
- Used to determine if MS Windows is present, and, if so, initialize
- certain BOI system values.
-
- Procedure DOS_IDLE timing BOIDECL
- Used to give time back to other processes.
-
- Procedure CHECKDOSVERS initialization BOIDECL
- Used to determine what DOS, OS/2 DOSbox version is present and to
- initialize certain BOI system values.
-
- Procedure SETINDOS initialization BOIDECL
- Used to set the InDOS flag pointer. This allows processes to
- determine when DOS is re-entrant.
-
- Procedure BOIEXIT exit procedure BOIDECL
- BOIDecl exit procedure.
-
- Unit BOIDECL initialization BOIDECL
-
-
- -----
- Unit DoorLib Internals
-
- Procedure CHECKENVIRONMENT initialization DOORLIB
- Used to look for BOILOG environment variable, which is not presently
- documented. It is present in anticipation of the expanded activity
- logging of the next public release.
-
- Unit DOORLIB initialization DOORLIB
-
-
- -----
- Unit GetCmBBS Internals
-
- Procedure GETCOMMAND initialization GETCMBBS
- Reads and process the command line parameters. Reads and processes
- the BBS drop file.
-
- Procedure SHOWERROR error handling GETCMBBS
- Displays initialization error.
-
- Procedure WRITEERROR error handling GETCMBBS
- Used to format display of ShowError.
-
- Procedure SETGAMETIME timing GETCMBBS
- Used to normalize user's time remaining.
-
- Procedure FINDDROPFILE file handling GETCMBBS
- Used to locate BBS drop file.
-
- Procedure PROCESSTEXT file handling GETCMBBS
- Used to process BBS drop files in text format (CRLF delimited).
-
- Procedure RESTART file handling GETCMBBS
- Used to retrieve a specified line from drop file.
-
- Procedure DORBBS drop file processing GETCMBBS
- Used to obtain additional information from RBBS dropfile.
-
- Procedure DOWWIV drop file processing GETCMBBS
- Used to obtain additional information from WWIV dropfile.
-
- Procedure DOSPITFIRE drop file processing GETCMBBS
- Used to obtain additional information from Spitfire dropfile.
-
- Procedure DOWILDCAT drop file processing GETCMBBS
- Used to obtain additional information from WildCat! dropfile.
-
- Procedure DO2AM drop file processing GETCMBBS
- Used to obtain additional information from 2 A.M. dropfile.
-
- Procedure DOPHOENIX drop file processing GETCMBBS
- Used to obtain additional information from Phoenix dropfile.
-
- Procedure PROCESSFILE file handling GETCMBBS
- Used to process BBS drop files in binary format.
-
- Procedure DOOPUS114 drop file processing GETCMBBS
- Used to obtain additional information from Opus 1.14 dropfile.
-
- Procedure DOPCBOARD12 drop file processing GETCMBBS
- Used to process PCBoard 12.x format drop files.
-
- Procedure DOSEARCHLIGHT initialization GETCMBBS
- Used to notify BOI that BBS is passing all arguments via command
- line.
-
- Procedure GETCOMPORT communications GETCMBBS
- Used to process user specified com port.
-
- Procedure GETIRQINFO communications GETCMBBS
- Used to process user specified IRQ/port address.
-
- Procedure GETHOFLIM hall of fame GETCMBBS
- Used to process Hall of Fame limiting value.
-
- Procedure GETHOF hall of fame GETCMBBS
- Used to process new text Hall of Fame path/filespec
-
- Procedure GETTIMELIMIT timing GETCMBBS
- Used to process absolute maximum time limit.
-
- Procedure DOPORTS communications GETCMBBS
- Used to normalize com port values.
-
- Procedure GETAGAIN timing GETCMBBS
- Used to process replay time value.
-
- Procedure GETNAME user information GETCMBBS
- Used to process user's name.
-
- Procedure GCEXIT exit procedure GETCMBBS
- GetCmBBS exit procedure.
-
- Unit GETCMBBS initialization GETCMBBS
-
-
- -----
- Unit IOLib Internals
-
- Function AVSTR : string output IOLIB
- AVATAR/1 string generator
-
- Procedure IOEXIT exit procedure IOLIB
- IOLib exit procedure.
-
- Unit IOLIB initialization IOLIB
-
-
- -----
- Unit Key Internals
-
- Procedure GETREG registration KEY
- Registration key processor.
-
- Unit KEY initialization KEY
-
-
- -----
- Unit Support Internals
-
- Procedure QueryUser public procedure SUPPORT
-
- Procedure QUERYCHOICE initialization SUPPORT
-
- Procedure SETVALUES initialization SUPPORT
-
- Procedure EndGame public procedure SUPPORT
-
- Function HOFCHECK : boolean hall of fame SUPPORT
-
- Function GOODSCORE : boolean hall of fame SUPPORT
-
- Function BETTERSCORE : boolean hall of fame SUPPORT
-
- END BOI Procedure and Function Library