On Aug 14, 2005, at 3:55 PM, Olin Lathrop wrote: > Unless you are using an unusually fast and non-standard baud rate, > the printer port can easily overrun the RS-232 data rate by an > order of magnitude or two. Yes, but (most? All?) parallel ports tend to implement a form of flow control on a per-byte basis, so that they can wait for printers to do very slow things like print head or carriage movement. The algorithm usually goes something like: while (data) { while (input(portcontrol) & BUSYBIT) { wait(); /* wait for parallel port to be ready */ } output(portdata, fetch(data)); output(portcontrol, DATAREADY); nextdata(data); } Where setting the DATAREADY output bit causes BUSYBIT to go true immediately until it is reset by the printer side of things. The main issue with implementing this in pure software is whether the printer software could set BUSYBIT before the computer software gets back up into the loop and tries to send the next byte of data. A flip-flop or the PSP (as I understand it from brief glances at datasheets) handles that in hardware so that it should be plenty fast no matter what... BillW -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist