home *** CD-ROM | disk | FTP | other *** search
- INTRODUCTION
- ============
-
- PIBASYNC.ARC is an archive file which contains a set of routines for
- implementing fully-buffered asynchronous serial port I/O from Turbo Pascal
- on the IBM PC and compatibles. The routines have been extracted
- from my PibTerm v4.0 program.
-
- Features of PibAsync:
-
- -- Both input and output buffering for the serial port, resulting
- in improved performance especially under multitaskers
- -- Buffer sizes are user-definable up to 32K bytes each for
- the input and output ring buffers
- -- Speeds up to 19200
- -- Support for Com1: through Com4:
- -- The ability to re-define port addresses, base RS 232 addresses,
- and IRQ lines for non-standard ports
- -- Optional XON/XOFF handling at the interrupt level
- -- Optional CTS/DSR handling at the interrupt level
- -- Machine code (via INLINE) provides respectable speed for
- the basic functions
-
- Limitations:
-
- -- Only one serial port is supported at a time. It would be
- an interesting project for someone to provide multiple
- simultaneous port access.
- -- 38400 baud is not available. If someone would like to add
- that, please feel free to do it and make it available for
- the rest of us.
-
-
- ARCHIVE CONTENTS
- ================
-
- The following 13 files should be present in PIBASYNC.ARC:
-
- ASCII.GLO --- Some Ascii character set definitions
- ASYINT.ASM --- ASM source for asynchronous handler
- ASYNCREC.ASM --- ASM source for receive-a-character routine
- ASYNCSEN.ASM --- ASM source for send-a-character routine
- DUMBTRM.PAS --- Sample dumb terminal emulator
- FIXBRACK.PAS --- Routine for neatening .OBJ files produced
- by the INLINE assembler.
- GLOBTYPE.GLO --- Global declarations for non-async-related variables
- needed by async code
- PIBASYN1.MOD --- Asynchronous I/O routines, part 1
- PIBASYN2.MOD --- Asynchronous I/O routines, part 2
- PIBASYN3.MOD --- Asynchronous I/O routines, part 3
- PIBASYNC.GLO --- Global declarations for async-related variables
- README.DOC --- What you're reading now
- TIMEREC.ASM --- ASM source for receiving character with delay
-
- The .ASM files can be assembled with Dave Baldwin's program INLINE.COM,
- which converts the assembler source to Turbo Pascal INLINE statements.
- The PIBASYN*.MOD files already contain the processed assembler source,
- so you do not need to run INLINE on the .ASM files unless you want to alter
- them.
-
- There are two .ASM routines in which the generated code for
- a CALL statement must be modified in the corresponding .OBJ file
- produced by INLINE. These routines are ASYNCREC.ASM and TIMEREC.ASM.
- The nature of the modification is indicated in ASYNCREC.ASM and
- TIMEREC.ASM. (I couldn't figure out how to get INLINE to generate the
- correct code; if someone figures it out, please let me know.)
-
-
- COMPATIBILITY WITH PREVIOUS VERSIONS
- ====================================
-
- The calling sequences of these revised routines are largely compatible
- with those previously available as part of earlier versions of
- PibTerm. If you used those earlier routines, you should be able
- to convert to these (with a resulting increase in efficiency) with
- very little trouble. The major important changes are that the
- routines Async_Init and Async_Close now take arguments.
-
-
- DOCUMENTATION
- =============
-
- See the documentation block headers for individual routines in PIBASYN*.MOD
- for details on the calling sequences and usage of the routines.
-
-
- SAMPLE PROGRAM
- ==============
-
- The DUMBTRM.PAS routine demonstrates how to use the PibAsync routines to
- build a dumb terminal emulation program.
-
-
- USE OF THE ROUTINES
- ===================
-
- You may use these routines for any NON-COMMERCIAL purpose whatsoever.
- If you change these routines, you MUST make the revised source
- available. Many individuals used the code from previous versions
- of PibTerm and incorporated interesting changes in the async routines,
- but did NOT make the resulting changes available in source form
- so that all of us could benefit. I take a dim view of that; I have
- made this source code available so that others can learn from what
- I have done (and correct my mistakes). I expect you to provide
- the same courtesy in return.
-
-
- SUPPORT
- =======
-
- Please realize that these routines are not a commercial effort and that
- I simply cannot afford the time or money to individually support users.
- I WILL NOT return phone calls about these routines, and I WILL NOT
- fix your code for you.
-
- There are a number of commercial packages of asynchronous routines
- available for Turbo Pascal. If you need a package for commercial
- development, you should consider one of them.
-
- You may send messages to me as indicated below, if you wish. I will not
- necessarily answer all queries individually, however.
-
-
- COMMENTS, ETC.
- ==============
-
- You may send comments to me via one of the following means.
- I may not answer all messages individually. Also, I don't check for
- mail in these systems every day, so don't expect that a message
- will reach me in less than a couple of weeks (except via BITNET).
-
-
- US Mail:
-
- Philip R. Burns
- Vogelback Computing Center
- Northwestern University
- 2129 Sheridan Road
- Evanston, IL 60201
-
- BITNET: PRB02533@NUACC
-
- CompuServe: CIS ID 72437,62
-
- The Source: BDW100
-
- PeopleLink: P3Z677
-
- BBSs:
-
- Gene Plantz's BBS (subscription only)
- Ron Fox's BBS (312) 940 6496 (open)
- Bob Blacher's BBS (202) 547 2008 (open)
-
- -- Thanks,
- Phil Burns 11/01/86