Atari and NEC SIO Ports

[Note: this was originally a response on this thread.]

Great article. I was about to complain, until I saw:

Also sorry Atari geeks, for not mentioning SIO.

NEC used SIO, too. At least, there are two SIO ports on the PC-8201A… (I believe, it’s the same standard.)

From a brief glance at chapter 12 of the techical manual available here those appear to be just standard serial ports, with neither the CONTROL line used by Atari SIO nor built-in support for the SIO protocols.

(A PC-8201A just sold relatively cheaply (about $60, I think) on Yahoo Auctions here recently; now I’m starting to regret not picking it up. But, well, I still have my TRS-80 Model 100.)

It’s a few years, since I dug into the PC-8201A (while I do have one)[1], but I never found a thorough documentation on the SIO ports. I don’t remember having seen much about them in the PC-8201A Technical Manual. Apparently, the two ports internally connect to a single, multiplexed serial line (port 0x90) at 19200 baud, which suggests to me that there is some meta data exchanged between the computer and any connected devices. (Else, why would you multiplex ports, if there are no means to identify and address a specific device?)

The SIO ports were used at least for the disk interface, but I wouldn’t know about any other use, nor do I know, if the SIO ports were common on NEC desktops of the time. (To me, it appeared more like NEC planned to do more with them in the future, but this never really came to ends. But this is just a personal impression and not backed up by any sources.)

[1] Compare this project blog, which includes some comparative details on the various Kyocera siblings: Retrochallenge 2016/01: M10 – PC-8201A Maze War

They used to show up on eBay, were they were sold rather cheaply by US resellers, sometimes in batches. Apparently, these machine were quite popular with some organizations and businesses, as may be seen by old inventory numbers and battle scars on those devices. I guess, there are still a few around and there’s still hope to pick one up at a rather low price, if you do not care too much about cosmetics.

PS: This is a nice page on the PC-8201A in your link. Thanks for sharing.

My impression was that this was simply a way to use single UART on two (or three, inlcuding RS-232?) different physical ports, saving a second UART but meaning that you could only use one port at a time. I.e., you’d couldn’t receive on one port while sending on another.

Well, one means would be simply to assume that only one device is hooked up to each port and you’d switch ports to address each device.

Hum. I believe, you could daisy chain disk drives, but I haven’t even seen a photo of one. (Again, I haven’t found much information on this.)
Mind that the SIO interface was designed by NEC (or rather, was commissioned by NEC) as an addition to Kyocera’s base design, which is, as I understand it, quite reasonable. I find it hard to believe that it was just about repurposing the UART. Certainly, they would do it in a cost aware manner, but there had to be some purpose to it.

(Also, the PC-8201 and PC-8201A, which are surprisingly different internally, are the most complex members of the family. Hinting at some dedication regarding the implementation of specs. Some effort went into what seems to be a desire for a closer, vertical integration into existing NEC line-up, both in hardware and software. E.g., compare the multiple changes to the ROM to bring it closer to GW BASIC in functionality and appearance.
That said, no material of the time, I know of, had much of an idea what the SIO port was meant or planned for. Compare )

PS: A way to find out more about it, maybe simply reading the ROM (a listing comes with the VirtualT emulator, Virtual T download |, for which I’m too lazy at the moment, but then, NEC could have planned to have an expansion ROM for this. (Which I find quite probable.)

Fazit: Since there’s not much known about the PC-8201A’s SIO port and what it could do or not, it’s fair to not include it in the list.

FWIW, confirmation that there’s only a single UART switched between the three ports is in §3.1.8 (page 3-10) of the Service Manual (PDF) linked from the page I posted earlier:

The serial interface uses an RS-232C. S101. or S102. switching them one another, by USART IM6402.

Bits 7 and 6 of port $90 are are SEL A and SEL B, with values %00, %01, %10 and %11 for unused, SIO2, SIO1 and RS-232, respectively. The rest of the interface is just standard UART registers. Note in particular the lack of any controls for a separate COMMAND line, which is necessary for (and a core part of) Atari SIO.

The pinouts are given in §3.2.1 (5) and (6); the pins are GND, TxD, RxR, RTS, CTS, and Vcc. There’s no COMMAND pin here, which pretty much cinches it. They may have some protocol that allows multiple devices on a port, but it’s definitely not Atari SIO.

I find it easy enough to believe that they’d do this not so much for cost reasons but to save board space. ACIAs of the day were generally fairly large chips. (The Apple IIc, another, slightly later compact computer of the era that made use of custom LSI for compactness, still used separate 6850 ACIAs in 28-pin 0.6" DIP packages.) In the case of the PC-8201A the IM6402 USART seems to be a rather massive 40-pin chip (Figure 5.16 p. 5-11 and schematic in Appendix D, p. D-8), which would consume a serious amount of board space.

There was actually a daughter board (and a raised connector) added to the standard design. Also, there are already all the com-lines in place, there’s no need to add extra ones, as you can do it all per protocol. Not having dedicated extra pins, doesn’t necessarily say that there isn’t some meta data exchanged in some kind of hand shake. (We simply don’t know.)

I take this as evidence that, yes, they were extremely pressed for space. :-)

I’m sorry, there was a version of the Atari SIO protocol that didn’t need the COMMAND line? Can you point me to some documentation on this, and perhaps tell me which systems used it? I’m very curious about it.

BTW, in case it’s not clear, when I say “Atari SIO” I’m talking about the actual Atari SIO protocol here, not similar but incompatible protocols. That is, I’m talking about ports into which you can actually (perhaps with a physical adapter to change the connector) plug an Atari SIO peripheral such as an 810 diskette drive or 820 printer into it and use it. To my mind, calling anything else “Atari SIO” would be similar to calling the Apple Desktop Bus, “USB.”