Products > Vintage Computing

Are there any 6551 ACIA jocks in the house? Or anyone have a CBM +4?


For no particular reason, I'd like to finish up a problem I discovered 30 years ago, but never did anything about fixing.  It involves the Commodore Plus/4 computer, which some may recall was the only CBM computer that had a real 6551 ACIA instead of bit-banging RS232.  Because of a programming error in rom, null bytes could not be received.  Any null byte coming in from the modem would be added to the input queue as a duplicate of the most recent non-null byte.  That would make file transfers virtually impossible.

In addition, the rom provides for a single-byte transmit queue, and if my understanding of the 6551 interrupt process is correct, there would be back-to-back double interrupts generated for each transmitted byte.  And finally, transmit interrupts are left running all the time, which at high baud rates would leave the computer little time to do anything else.

Of course nobody is still using a Plus/4 (never did really), but I was curious whether I could write an alternate IRQ servicing routine that would solve these problems.  Just because.  Anyway, I have a couple of test programs I need somebody to run on a Plus/4 for me and report the results.

It's amazing to me that CBM went to such trouble and expense to include a 6551 in this machine, but did such a lousy job in the servicing code.  It's as though they never even tested it.

Alex Eisenhut:
The whole TED series is amazing, in the sense of "what were they thinking"?

I have a Plus/4 as well, I bought it off eBay a few years ago, it arrived not working and I repaired it.

I am planning on trying out the ACIA at some point and would be very interested in finding out all the weirdness there.

Does the +4 have various ROM revisions like a 64?

My understanding is that the only variants of the +4 and C16 roms were the different kernals for NTSC and PAL.  But those differed by only a few bytes.  However, I'm sure there have been modifications in the +4 community over the years, just like with the C64.  There's a website dedicated to the +4, complete with active forum:

Steven Combs also has an 8-part series on the +4 on Youtube, starting with this one:

and ending with a video on connecting to a Commodore BBS using a wireless modem.  But the terminal software isn't very good.

I was able to finish my alternate IRQ ACIA servicing front end for the +4:

I think most of the terminal software that Steven reviews bring their own ACIA code, so my code wouldn't be relevant to them.  But it might improve performance for a terminal program that just uses the kernal stuff as written.  It's possible that Higgyterm for the +4 could be one of those.  Anyway, the readme.txt file on Github explains what I found, and what I fixed.  But remember that I don't have a +4, so I don't actually know if my code works.

I've been surprised at some of the sophisticated hardware that has developed in the Commodore world to replace or augment the original gear.  That's all the way from substitutes for the PLA chips to "Pi-1541" disk drives and high-speed wireless modems.  I keep thinking - why do they bother with this stuff.  But there are some dedicated retro fans out there.  And I have to admit that it was fun getting back into 6502 assembler again, if only for a little while.

Alex Eisenhut:
I like the look of the Plus/4 but I never had one back then. So I found a decent one for my collection, it does work and the better BASIC is very welcome. Recently I bought a 1551 in intact physical condition from eBay but it arrived in powder form through the miracle of UPS and poor packaging.

Good work on the ACIA code. I hope to get my Plus/4 set up sometime in the next 12 months ...


[0] Message Index

There was an error while thanking
Go to full version