
C64 UART16550A interface

  (C) A. Fachat
     _________________________________________________________________
   
   This pages contains information on how to connect an UART 16550A to a
   6502 system in general and a C64 system in particular.
   
Disclaimer

   There is absolutely NO WARRANTY, neither expressed nor implied! Noone
   can be held responsible for any damage arising from the use or
   building of this interface or even from reading these pages! I do not
   claim nor guarantee that the hardware and software can be used for
   anything useful!
   
   The UART 16550 is a RS232 interface chip that provides a 16 byte FIFO
   for the receiver and the transmitter. This allows a much larger
   interrupt latency time - the time between an interrupt being generated
   by the chip and the time it is served - as up to 16 characters can be
   stored by the chip already.
   
   I wrote an article about this interface including some software for
   The Computer Journal (TCJ) that has been published in issue #80. The
   article can be read in c64ser.txt.
   
  The Interface
  
   The interface for the C64 is a board being put into the C64 instead of
   the SID sound chip. The SID chip itself is put into a socket on this
   board, providing the sound capabilities. Three additional connections
   have to be made between the board the the C64 mainboard. These are the
   /IRQ interrupt line, the A9 address line to divide the 1k SID address
   space into two halfs, and a /EN input that is either open
   (unconnected) or connected to GND by a switch. The connection to GND
   enables the interface.
   
   So if you still have warranty on your C64, or don't know what a
   soldering iron is, please stop reading. You may just damage your
   computer.
   
   The schematics are here in the usual GNUzipped postscript c64-uart.ps
   or PNG c64-uart.png file. The xfig source code is in c64-uart.fig.
   
  The Software
  
   For TCJ I wrote a small generic UART16550 device - well, I took the
   one from my GeckOS/A65 6502 operating system. However, the source can
   be read in c64-uart.a65. It uses the format of my own xa65 6502 cross
   assembler.
   
   I have also written a patched C64 kernal to support this serial line
   interface. Unfortunately it comes completely with an IEEE488 interface
   code and other features, why I do only include the source here. The
   source file a C64 loadable file called BS-1.40.S89 and my atass
   assembler is needed to build the ROM replacement file. The source of
   the IEEE488 interface (which is at $DF**) should be ignored, though.
   The RS232 routines should be usable by all programs that use the
   standard kernal routines for device 2, but the speed goes up to 19200.
