home *** CD-ROM | disk | FTP | other *** search
- 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"