ASYNC v2.03  08/09/93

Quick notes regarding this library:

This library is still "beta" and not fully qualified.  Although I 
have tested most of the routines in this unit, I cannot give any firm 
assurance that everything here will work, as I still have to add some 
finishing touches.

I apologize for the lack of documentation.  I don't plan on attacking 
that task until (1). I'm sure of the calling conventions of all the 
routines, and (2). I get time to do the documentation properly.  You 
will find some terse documentation in the file "ASYNC.FN" as well as 
in the ASYNC source itself.  The source is pretty well documented, 
although I don't have all of the procedure/function headers written 
(by this I mean the comments intended to go inside the starred boxes 
preceeding each subroutine).

There are a number of global variables (typically prefixed by "C_") 
that you may wish to take note of.  You will find these described in 
ASYNC.PAS.  Of particular importantce to you, there are two boolean 
arrays: C_RcvWait[] and C_XmitWait[].  By setting C_RcvWait[ComPort] 
= TRUE, procedures ComRead and ComBlockRead will suspend execution 
until at least one character is present in the buffer.  This applies 
to any other unit procedure that makes use of one of these routines 
(such as ComReadln).  Setting this flag to FALSE will cause these 
routines to return with an error code (in C_Error) if the buffer is 
empty.  ComReadCh will return a null (ASCII 00h) in this event.

C_XmitWait[ComPort], if set to TRUE, will cause ComWriteCh and 
ComBlockWrite to suspend execution if there is no space left in the 
transmit buffer, waiting for space to open up before resuming.  This 
applies to any other procedure in the unit that makes use of 
ComWriteCh or ComBlockWrite (such as ComWrite).  Setting 
C_XmitWait[ComPort] to FALSE will override this feature, causing the 
C_Error variable to return a nonzero result.  If this happens, the 
character(s) to be transmitted will be discarded.

C_Error, as mentioned above, returns a non-zero error code if any one 
of several possible error conditions is detected.  Error checking and 
handling has changed significantly from the 1.xx version of the ASYNC 
unit.  You will find a complete listing of possible error codes at 
the end of the ASYNC.FN file.  These error returns are also 
conveniently defined as constants in ASYNC.PAS.

Please DO NOT upload this library onto BBS's or information services!  
Since it is not complete and I do not have the documentation for it 
written yet I would rather wait until these tasks are complete before 
I "formally" release it for public consumption.

I would appreciate your comments on the functionality and workability 
of this unit.  If you find any problems or would like to offer 
suggestions as to changes and improvements, I'd be glad to listen.  
You may contact me at the following locations:


My address:
-----------------------------
Mark Schultz
2211 S. 14th St.
Wisconsin Rapids, WI  54494
(715) 423-3706

After 7:00 pm CST on weekdays
Usually available all day on weekends

- or -

Work address
-----------------------------
Best Power Technology
Rt. 1 Hwy. 80 / POB 280
Necedah, WI  54646
(608) 565-7200
(608) 565-7424  BBS
(608) 565-2679  FAX

9:00am - 6:00pm CST M-F


-- Special thanks to Meyer Moqute for help in debugging --


Your disk should contain the following files:
===============================================================================

ASYNC.PAS......Constant and type declarations, UNIT procedure/function
               headers.  Compile this file if you wish to regenerate
               ASYNC.TPU.
ASYNC.ASM......The 8088 assembly source code.  Contains the ASYNC ISR
               and code for time-critical and often-called
               procedures. 
ASYNC.OBJ......The assembled object code of ASYNC.ASM 
ASYNC.TPU......Ready-to-USE unit file.  Compiled with BP V7.0
ASSIGN.INC.....ASYNC include file.
               Source for procdures and functions that provide a 
               TP-standard text file driver that is compatable with 
	       READ/READLN and WRITE/WRITELN.
BUFFER.INC.....ASYNC include file.
               Source for procedures and functions that deal with 
               buffer management.
HANDSHK.INC....ASYNC include file.
               Source for procedures and functions that configure 
               ASYNC's handshaking options.
INIT.INC.......ASYNC include file.
               Source for procedures and functions used to 
               initialize, open and close ports.
IO.INC.........ASYNC include file.
               Source for procedures and functions that perform 
               basic input/output operations.
IOLINE.INC.....ASYNC include file.
               Source for procedures and functions that allow reading 
               and setting RS-232 control signals.
PLEDIT.INC.....ASYNC include file.
               Source for procedures and functions that add, change 
               or remove hardware port definitions.
TIMER.PAS......Interrupt-driven timer UNIT.  Required by ASYNC and used for
               most timing-driven operations.  May also be used 
	       seperately from ASYNC.
TIMER.ASM......Assembly source, generates TIMER.OBJ when assembled;
               required by TIMER.PAS.
TIMER.OBJ......The assembled object code for TIMER.ASM; used by the 
               TIMER unit.
TIMER.TPU......Ready-to-USE unit file.  Compiled with BP v7.0, all 
               debug options and error checking disabled.
DUMBTERM.PAS...Source for a short demonstration program that shows 
               the usage of the basic ASYNC services in a simple 
               terminal application.
DUMBTERM.EXE...Ready-to-run version of DUMBTERM.PAS, compiled with 
               BP v7.0.
PORTTEST.PAS...Another demo program, shows how the ASYNC global 
               variables can be used to determine system COM port
               configuration.
PORTTEST.EXE...Ready-to-run version of PORTTEST.PAS, compiled with
	       BP v7.0
ASYNC.FN.......Quick description of each procedure & function in the
	       ASYNC unit.  Sorry, this is all that's available for
	       documentation at this time.
DESCRIPT.ION...4DOS/NDOS compatable file descriptions for all of the 
               files described above.
README.TXT.....This file.
