André's 8-bit Pages  Projects  Code  Resources  Tools  Forum
search

(Google, in new window)
follow
Follow my 8-bit tweets on
twitter
(In new window)
discuss

Discuss my site on this 6502.org forum thread

(Forum registration required to post)

Hot!

Dive into the retro feeling and build yourself a Commodore PET replica

Need more speed? Speed up your 6502 computer with this 10 MHz 6502 CPU replacement board

Interested in electronics design? Look at the design lesson I got from Bil Herd, the hardware designer of the C128

CS/A65 DUART

This Dual RS232 board uses two 16550A for the two interfaces. I know that there are ICs like the 16552(?) with two interfaces in one chip, but when I needed it, I had the parts at home already...

News:

  • 2006-11-01 Added driver code.

Driver

OS/A65 UART16550A driver

The driver consists of two files. First the uart16550.i65 file contains chip register definitions. The file ser_uart.a65 is the actual driver. This actually is a driver for a single UART only, but it can be linked into the system twice to handle both UARTs. The OS/A65 operating system (1.x and 2.x) uses a single entry point for the device, with the accumulator containing the command code. The entry point is prg1 in this case. It branches to these routines for the UART:

  • devini - initialize the UART
  • devirq - interrupt routine. This routine is called on every interrupt, one device after the other, until the irq is handled. The 50Hz system interrupt is last, so this driver uses this feature to check whether a new byte can be send at tx2.
  • others checks the other commands, like open, close, or handshake handling.
Unfortunately the driver code is pretty messy, but works.

driver ser_uart.a65(Driver code)
driver uart16550.i65(UART register definitions)

Board revisions

Version: 1.0B

Status: ok

Notes

msg This is the initial version.

Files

desc csaduartdesc.txt
parts csaduartparts.txt
schem csaduart.ps.gz
schem csaduart.png
schem csaduart.fig
photo csaduart.jpg(One of the UARTs is missing)