Giving an old Atari computer a much needed upgrade

As a kid, [Boisy] cut his teeth on the TRS-80 Color Computer. It was a wonderful machine for its day, featuring a relatively powerful Motorola 6809 CPU. Although his CoCo was theoretically more powerful than its Commodore and Apple contemporaries, the graphics and sound capabilities of [Boisy]’s first love paled in comparison to his friends 6502-based machines. A little jealously and thirty years go a long way, because now [Boisy] is adding a 6809 microprocessor to the 6502-based machines Atari put out.

[Boisy]’s goal for his Liber809 project was simple: Put a 6809 CPU in an Atari XEGS and get NitrOS-9, the Unix-like OS for the TRS-80 CoCo running on his Frankenputer. After a few months of work, [Boisy] completed his goal and more so: the Liber809 also works on the Atari 1200XL.

To put [Boisy]’s work in perspective, it’s like he took a Macintosh from 1993 and made it run on an Intel 486. While that’s not a terribly accurate analogy, we hope our readers will understand the fortitude needed to make a computer run on a completely different processor.

After the break, you can check out a neat demo app written by [SLOR] from the AtariAge forums showcasing a 6809 running in a machine designed for a 6502. Awesome work for all involved

While we’re on the subject of replacing CPUs, would anyone be interested in getting a 68060 running in a Mac Quadra? The custom Mac ROM SIMM nut has been cracked, so this might be possible. Whoever gets that running is guaranteed a Hackaday post.

15 thoughts on “Giving an old Atari computer a much needed upgrade”

Regarding the 68060 comment: The 68060 is pin compatable, but not instruction compatable, with the 68040.

I believe the Amiga 5000 tower had something to convert 040 instructions to 060 instructions in the rom. It’s probably not as easy as converting a mac rom to 060 instructions, but it’s not impossible. Just something I’ve thought about over the past few years.

Regarding the 68060 being instruction-incompatible: [citation needed]. Regarding the “Amiga 5000″: There was no such thing, you’re thinking of the Amiga 4000T, which had no such conversion routine you’re referring to, because it didn’t need such a thing.

Brian, be honest, where did you get this information, was it pulled from a hat?

More specifically, the ‘060 has a good amount of additional instructions, and some functional differences to existing instructions, but beyond MMU-related esoterica, it should be a direct superset with relation to the ‘040, no need for instruction conversion.

To be fair, when I think of “instruction conversion”, I think of how uPD7725 assembly code can be made to run on a uPD7720 if you simply re-arrange the bits in the opcodes in a few cases, did you have something different in mind?

Ah, just a little bit of confusion regarding the 4000 and 4000T. Just a flipped bit in my head, or something.

As far as the conversion, this little tidbit I found says, “Motorola 68060 is object-compatible with MC68040, assuming that the CPU uses special software to simulate a few instructions that were present in 68040 CPU and are missing in MC68060.” So there’s something in the Amiga 4000T ROM that simulates a few 040 instructions.

Yeah, my original comment wasn’t entirely accurate, but that’s why I put that in the comments and not the actual post. In any event, it’s something that I haven’t seen and anyone who can do it is guaranteed a HaD post.

TL;DR: Parsimony breeds inaccuracies, but I don’t want to spend a thousand words on an off-the-cuff comment. Also, this is Boisy’s build, so don’t focus on my off-the-cuff comments.

The TRS80 Color Computer output sound through the TB speaker and had no internal speaker. There were two ways to produce sound, both done using software. The first was by toggling a bit, the second used a simple 6 bit digital to analog converter and wave tables.

The Color Computer lacked an internal speaker. Instead it relied on the speaker in the TV or composite monitor attached to it. Sound could be generated in two different ways. One was by toggling a single bit, the other method used 6 bit digital to analog converter and wave tables.

Those instructions to cover the 040 codes the 060 didn’t have, weren’t in the roms, but in the 68060.library which contained the code to emulate the missing opcodes.

And the library missed one. At the time, a friend of mine and I had written an amiga app we called EzHome, which supported the x10 remote control products, and which tied in with EzCron for its time keeping, which some of you may have used as we PD’d that. But when we ran our ARexx code for EzHome through the rexxplus compiler, it wouldn’t run on an 060 equipt machine. A german gent, Thomas Richter, waded thru it and found the culprit for us, a one byte patch, subbing another cpu operation that in fact did the exact same thing, for the one missing from the 060’s microcode maps and from the support library.

So anyone still using rexxplus, it can output an instruction that the 060 misses & crashes on. Otherwise its a good compiler, making ARexx stuff run 2-5x faster than Bill Hawes interpreter did. That is a language I still miss, there wasn’t anything that could not be done with ARexx.

As for this, nothing Boisy does surprises me. He is the ultimate 6×09 guru.

I appreciate the post Brian, as well as the comments on the project (the diversion of the 68060 discussion not withstanding).

It would be remiss if I did not mention Gary Becker, who assisted greatly with the design of the Liber809 board. Gary worked with me to come up with the circuitry to adapt the 6809 to the idiosyncracies of the 6502C and the Atari hardware.

The Atari folks were also very supportive. Slor (mentioned), Sloopy and others provided assistance on the Atari hardware aspects, of which I was totally unfamiliar with at the beginning.