Interrupt-driven Serial I/O Testbed by John Schultz 4/16/90 This code directly accesses the hardware and achieves very high baud rates without errors. This code should be legal if the serial device is first opened and exclusive access is granted. Speeds of over 130k baud between a stock, nofastmem 500 and a 25mhz GVP 68030 have been achieved. The '030 Amiga can go much faster; it can read at least 223,720 baud. The 500 poops out at 132,575 baud. Writing fast is no problem, reading eats up some bandwidth, and is thus the bottleneck. Polled I/O (yuk) can yield faster rates. These baud rates were accomplished with a direct 2,3,7 wire, 50 foot shielded cable. Max baud rates may vary depending on cable and hardware configurations. The current test code, ST (Serial Test), writes characters typed on the keyboard 10 times. Errors at high speed show up when less than 10 characters are received or funny characters are inserted. I can run DNet and leave it running while I run this code! DNet must be idling, and the baud rate must be the same as DNet's (usually 19200) the last time you run ST. This is very useful as quiting and restarting DNet is not necessary. Part of the original assembly code came from the Amiga Transactor, September 1989: Volume 2, Issue 6,pp 42-44, by Mike Schwartz. The example changed the AutoVectors directly, and had a few typos. I use SetIntVector(), and do things a little differently with the rbf and tbe code. This was pretty much the first assembly language program I wrote, so experts feel free to point out improvements. I wrote the code using Lattice 5.04. I currently use the Cape or Devpac assemblers for speed, but for this example used Lattice's asm (everyone with Lattice should have it). As always, please point out any optimizations, errors, or illegal acts committed in this code. If you enhance the code, please email me a copy. Use this code as you wish; no strings, ropes, cables, or bungee cords attached. John