AltairDuino 680 Serial Port Addressing

76 views
Skip to first unread message

Terra Hickman

unread,
Aug 11, 2026, 9:17:25 PMAug 11
to Altair-Duino
Just got my Altair-Duino 680 built and I'm loving it. In the interest of trying to do some neat things, I followed the video on Mike Douglas' channel on running Flex entirely off of serial. It was all going well until I realized that, of course, the disk server would have to run on a separate TTY than the primary console. I actually booted into Flex, but with no disk, of course....not much I can do lol.

This brings me to a question about the AD680. There are two options for TTY ports. The RS-232 port, and the Due programming port. From what I can tell when selecting a port on boot, the only difference is which one gets mapped to 0xF000, 0xF001 etc. 

My question is, is there a way to address these ports separately? For example, as though one serial port were a UIO board? In this case, the disk driver for this Flex experiment writes to 0xF007 for data out to the disk drive where it expects the UIO to be on a real 680 to be. On the AD680 that location appears to be unmapped. Could that be mapped to address the com port you aren't using for your main console? If not, are there any plans for this functionality?   

Regardless, love the kit, and will have plenty of fun tinkering.

Richard Deane

unread,
Aug 12, 2026, 6:51:59 AMAug 12
to Terra Hickman, Altair-Duino
Technically you can share one USB serial connection with two channels (Z80-Pack in RP2350-Geek does this to support a printer channel and a serial console channel), you would need some implementation at the Altair end but it is clearly do-able.
Richard


--
You received this message because you are subscribed to the Google Groups "Altair-Duino" group.
To unsubscribe from this group and stop receiving emails from it, send an email to altair-duino...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/altair-duino/af77f2f0-851b-41c3-9f84-795765a0bb8an%40googlegroups.com.

Chris Davis

unread,
Aug 12, 2026, 11:25:46 PMAug 12
to Altair-Duino

That’s a really good question, and you’ve got the current behavior right.

At the moment, the Altair-Duino 680 emulates a single MC6850 ACIA at $F000/$F001. The serial-port selection at startup determines which physical Arduino port is connected to that emulated ACIA. So the USB programming port and the RS-232/UART connection are currently alternative console connections - they are not exposed to the 6800 as two independent serial devices.

That means $F007 is currently unmapped, so software expecting a second serial interface there, such as the FLEX serial disk driver in the Mike Douglas setup, won’t have anything to talk to.

The good news is that this should be quite feasible to add. The Due has multiple hardware UARTs, so I could emulate a second serial interface at the addresses expected by the UIO board and route that to one of the unused Arduino serial ports. In that configuration you could have, for example:

  • $F000/$F001 -> console ACIA  ->  USB or the normal RS-232 port
  • UIO serial addresses around $F006/$F007  ->  second UART  ->  FLEX disk server

That would be much better than simply providing another selectable console port, because software running on the emulated 680 would actually see two separate serial devices, just as it would with the appropriate expansion hardware on a real machine.

I haven’t implemented that second interface yet, but this FLEX disk-server use case is a very good reason to do it. I’d like to research the original UIO register/address behavior first so that I emulate the board rather than just special-case $F007.  It may take me some time but it's a clear goal.

And thanks - I’m glad you’re enjoying the kit!

Reply all
Reply to author
Forward
0 new messages