SERIAL inserts itself into memory below command.com (it uses the "terminate but stay resident" DOS call), and changes the ROM bios interupt vectors for rs232 io to use interupt driven I/O. Thus if you have a program that uses the ROM BIOS to do serial I/O, and the program has been limited in speed by the poor performance of the standard ROM routines, all you need to do is run SERIAL first, and the program will suddenly magically work at speeds up to 9600 bps. This is also useful for writing programs that will be transportable to IBM lookilikes that emulate the ROM BIOS, but not the same hardware configuration. Instructions for use: edit SERIAL to reflect your choice of buffer size and handshaking characters. assemble using the macro assembler. link using link. convert to COM file using exe2bin. delete .EXE file. SERIAL works with both DOS 1.1 and 2.0. Limitations: It isnt clear that the "initialize port" function of int 14h works propery. Various IBM programs will break SERIAL by virtue of not leaving the serial port as it was found. Most notable amoung these are MODE and BASICA. If this happens, it will probably be necessary to power cycle the system. SERIAL is set up for COM1 only. It could easilly be converted to use COM2, and with slightly more difficulty, both. SERIAL only receives characters on an interupt basis, characters output to the serial port are sent in the old slow manner. Thus SERIAL is not particurally useful for, say, a serial printer spooler. SERIAL does not check the various other RS232 signals that the orignal ROM routine do. Thus, depending on exactly how the hardware works, hardware handshaking may not work. If anyone makes useful changes, Id like to here about them [in particular, a "SERIAL COM1:9600,n,8,1," user interface might be nice. SERIAL already uses the space taken up by the initialization code as part of the buffer]. Enjoy BillW