AA4RE wrote a serial port handler in assembler that's useable from many
source codes. Its a TSR that handles the interrupts and buffers input
(and output if you wish) properly that the BIOS in a PC always fails to
do. It replaces that part of the BIOS and allows for properly shared
interrupts, e.g. diode gated, not just assigning two ports to use the
same interrupt in the Microsoft way. That's not really shared,
interrupts in one has to be disabled to allow the other to interrupt, a
fundamental design flaw in the PC interrupt structure. This BIOS patch
was commonly used for MS-DOS based packet BBS supporting as many serial
ports as could be stuffed physically into one PC, often using the same
IRQ for 4 or more ports, very successfully. Its probably still available
in the BBS section of TAPR's software ftp site.
I don't know if plain old basic or Borland's turbo basic will still work
using AA4RE's port software, I gave up on basics several years ago when
Turbo BASIC cost me a job from being incompetent in handling of double
precision integers... It multiplied them with single precision float
destroying the precision I absolutely needed. I program only in C now.
Code Runner was/is a commercial interrupt handling package for serial
ports that also works, though the last version I bought didn't yet
handled properly shared interrupts. Using it (some years ago) on a 20
MHz 286 I was able to create a TSR that could receive data at 9600 baud
while I was formatting a floppy disk in the foreground, at least up to
about 330K in a chunk. 19,200 baud failed because the floppy disk
formatting program shut off interrupts too long at a time. Likely the
floppy disk formatting program was timed purely by the CPU. That was a
360K 5-1/4" floppy, not a super high density floppy.
IRQ-7 is often used for LPT-1 though MS-DOS and the BIOS generally don't
support using the interrupts on the parallel port, some more advanced OS
do. I tend to like to use IRQ 10 or 11 on the 16 bit buss connector for
com3 and com4.
73, Jerry, K0CQ
FAQ on WWW: http://www.contesting.com/tentecfaq.htm
Administrative requests: tentec-REQUEST@contesting.com