Dec 062017
Nice set of Assembly Routines for Buffered Serial Communications, callable from C. Includes full source code.
File COM_232.ZIP from The Programmer’s Corner in
Category C Source Code
Nice set of Assembly Routines for Buffered Serial Communications, callable from C. Includes full source code.
File Name File Size Zip Size Zip Type
ASYNC.ASM 29671 8059 deflated
ASYNC.DOC 19690 5334 deflated
ASYNC.H 8255 2881 deflated
ASYNC_S.LIB 7168 2862 deflated
A_LIB.NEW 1655 401 deflated
A_LIB.UPD 2022 388 deflated
CARRIER.ASM 1096 470 deflated
CASMHDR.H 3821 1120 deflated
COMM.H 3611 1036 deflated
DBUG.INC 1709 437 deflated
DTR.ASM 1246 534 deflated
LITES1.INC 218 117 deflated
LITES2.INC 1265 282 deflated
MSR.ASM 1004 462 deflated
MSRFLOW.ASM 2242 948 deflated
READ.ME 2499 1334 deflated
RESET.ASM 1109 500 deflated
RTS.ASM 1271 547 deflated
RXCNT.ASM 958 443 deflated
RXFLUSH.ASM 1131 472 deflated
SETBPDS.ASM 1301 574 deflated
STAT.ASM 2235 918 deflated
STRIP.ASM 1003 452 deflated
SUBFX.H 242 205 deflated
SUPPORT.ASM 7450 2419 deflated
TXBLKSUP.ASM 1678 694 deflated
TXFLUSH.ASM 1390 579 deflated
TXFREE.ASM 875 400 deflated
TXIMD.ASM 3013 1137 deflated
XOFFCLR.ASM 1464 662 deflated
XONANY.ASM 1312 545 deflated
XONOFF.ASM 1674 714 deflated

Download File COM_232.ZIP Here

Contents of the READ.ME file


These functions are a part of a group of serial communication routines I
wrote for a friend of mine, Paul Griffin, who was until recently the sysop
of my local neighborhood BBS, Split Up the Middle in Texarkana, TX.
Hopefully it will be back up in a few weeks and I will keep current updates
to these routines on his system. The phone number is 214 838-6713.

The routines provide both buffered transmit and receive for either COM1 or
COM2 or can also drive both simultaneously. They have been tested at up
to 19,200 baud using a terminal program written by Paul and outperformed
every communications program we compared it with when running CRC Xmodem
transfers. Using the make file described in the DOC you can assemble a
version of the routines for any size memory model. The routines are
compatible with MSC 3.0 and 4.0 and will probably also be linkable with
version 5.0 and Quick C when it is released.

There is one bug in the routines that I know of that I just haven't been able
to locate and that is when using RTS/CTS handshaking occasionally a character
will be dropped. I was holding off on releasing the routines until I found
the bug but have read some literature recently on the 8250 UART and the
8259 Interrupt Controller chips that suggests interrupt driven RTS/CTS
handshaking just doesn't work in the PC configuration. I don't use that
feature anyway but didn't take it out since someone else may be able to solve
the problem. If you have a solution leave me some mail at the above BBS if
its up or one of the other BBS's listed below. I check in at the others only
about every couple of weeks so may be slow to respond.

I have been using the ASYNC routines for the low level serial I/O in a small
comm program for the past 4 or 5 months and believe they are bug free with
the exception of the RTS/CTS handshaking. The included library (ASYNC_S.LIB)
is for small model MSC programs. The DOC file explains how to make libraries
for other size memory models or for $10 and a blank formatted disk I will
send you assembled libraries for all memory models. To use the functions
include the COMM.H header file in your C source code and link your compiled
OBJ file with the ASYNC_S library.

Mike Dumdei Split Up the Middle214 838-6713
6 Holly Lane Computer Aide918 493-2137
Texarkana, TX 75503 PC Exchange404 977-6686
Voice: 214 838-8307

 December 6, 2017  Add comments

Leave a Reply