Category : Pascal Source Code
Archive   : DOORDR30.ZIP
Filename : FOSSILDR.DOC

 
Output of file : FOSSILDR.DOC contained in archive : DOORDR30.ZIP

Fossil Driver interface routines for Turbo Pascal 5.5 VERSION #3
By Scott M Baker December 4, 1989

These routines are intended to be an interface to Fossil drivers for
the purpose of serial communication. A fossil driver is a serial driver
used by the fido/opus/seadog bbs systems, but it is very useful for things
such as protocol drivers, term programs, etc. Most fossil drivers are memory
resident so once they are loaded, they stay loaded. They work through int
14h and provide a number of useful functions including buffering of the com
port. I suggest obtaining "X00V1_11.arc" (or greater version) or
"Opuscomm.arc" each of which is a good fossil driver. The X00 docs will
contain doccumentation for the routines listed below so I won't go into
detail here.

---------------------------------------------------------------------------

UNIT DDFOSSIL;

INTERFACE

var
port_num: integer; { VERY IMPORTANT. Set this to 0 for your }
{ first com port, 1 for your second, }
{ 2 for your third, etc. If you end up }
{ with problems, it'll probably be }
{ because you improperly set this var }

procedure async_send(ch: char);
procedure async_send_string(s: string);
function async_receive(var ch: char): boolean;
function async_carrier_drop: boolean;
function async_carrier_present: boolean;
function async_buffer_check: boolean;

function async_init_fossil: boolean; { Call this routine to initialize the }
{ fossil driver. It MUST be called }
{ before any others! It will return }
{ TRUE if the fossil is present or }
{ FALSE if it is not. }

procedure async_deinit_fossil; { This MUST be called before exiting }
{ your program and probably before }
{ dropping to DOS in most instances. }
{ If it isn't called, the interrupt }
{ vectors will be left open and }
{ strange things will happen. I sug- }
{ gest putting it in an exit proc. }
procedure async_flush_output;
procedure async_purge_output;
procedure async_purge_input;
procedure async_set_dtr(state: boolean);
procedure async_watchdog_on;
procedure async_watchdog_off;
procedure async_warm_reboot;
procedure async_cold_reboot;
procedure async_Set_baud(n: integer);

-----------------------------------------------------------------------------

If you should find these routines useful in any way, then please send me a
donation that I may use to further my work in these areas. Also, if you use
this code in a program of yours, then I request you credit my work in some
way.

Scott Baker The Not-Yet-Named bbs
6433 Tierra Catalina #48 602-577-3650
Tucson, AZ 85718 300/1200/2400 baud
602-577-3515 Tucson, Arizona

Revision history
----------------
2.00 - Fixed comm-port 2+
3.00 - Totally new version included for use with DoorDriver
- unit renamed from "FOSSILDR.TPU" to "DDFOSSIL.TPU"