While it might not seem like it today, there was a time in the not-too-distant past where Motorola was the processor manufacturer. They made chips for everything, but the most popular was arguably the 68000 or 68k. It’s still has a considerable following today, largely among retrocomputing enthusiasts or those maintaining legacy hardware. For those wanting to dip their toes into this world, this Motorola 68000 emulator created by [Ted Fried] may be the thing needed to discover the magic of these once-ubiquitous chips.
The emulator itself runs on a Teensy 4.1, a 32-bit ARM microcontroller running at 600 MHz — giving it enough computing power to act as a cycle-accurate emulator not only for the 68000 CPU but also the local bus interface, in this case for a Mac 512K. This capability also makes it a drop-in replacement for the 68000 in these older Macs and the original hardware in these computers won’t notice much of a difference. A few tricks are needed to get it fully operational though, notably using a set of latches to make up for the fact that the Teensy doesn’t have the required number of output pins to interface one-to-one with the original hardware.
While the emulator may currently be able to replace the hardware and boot the computer, there is still ongoing development to get every part of the operating system up and working. The source code is available on the project’s GitHub page though so any updates made in the future can be found there. And if you have a Mac 128k and still haven’t upgraded to the 512k yet, grab one of these memory switching modules for the upgrade too.
Normally, I don’t like such things, because it makes things ad absurdum. Either full, sophisticated emulation or the real thing (including clones) with the hardware being “alive”. However, I’ll make an exception here. This project has an experimental character that’s charming. It’s in the realms of a hardware-debugger, EPROM simulator or an in-circuit emulator. Kudos.
I’m a great fan of vintage stuff because I guess I’m of similar vintage myself and I have many memories of it being ‘cutting edge’, it’s cool to be able to understand so much of the guts of a system.
I don’t mind CPLD/FPGA replacements for obsolete and unavailable chips, it’s often the only way to keep classic stuff alive and it doesn’t really alter the function.
Conversely I like the idea that I could take the basic function of something like Agnus, Denise etc. and add new features to FPGA implementations, it’s the closest I’ll ever get to being able to make my own silicon.
I also like software emulation of classic stuff on a modern PC desktop but full system emulation on a Pi or something bolted into a classic machine’s case just feels as if it robbed the machine of its soul?
“I don’t mind CPLD/FPGA replacements for obsolete and unavailable chips, it’s often the only way to keep classic stuff alive and it doesn’t really alter the function. ”
I don’t mind replacement chips, either.
What bothers me though, is the use of technology that’s somewhat far off the original technology.
Otherwise, we have a Ship of Theseus paradox.
If we keep updating/substituting, nothing original might be left installed eventually.
Not that this a drama, but the left over parts might be enough to rebuild the original thing.
With this outcome in mind from the very start, it’s not worse to just use a substitute (full software emulation) right from the start and leave the original alone.
https://en.wikipedia.org/wiki/Ship_of_Theseus
Or, let’s think about it this way:
It’s like replacing a warm incandescent lamp by a cold LED, for example.
That’s too far away fron the original.
However, using an halogen lamp would be fine. It’s more advanced and efficient than a classic incandescent lamp, but still inherits the basic principle.
Or, it’s like replacing a tube circuit (say, audio amp) by a transistor circuit that tries to mimic tube behavior, but does so in a stereotypical way. The replacement circuit may sound somewhat distorted, which a properly tuned tube circuit wouldn’t. Just like those VHS or CRT screen effect filters overdue.
Some also replace a crystal detector by a glass diode, thinking it’s superior.
In reality, though, a properly tuned crystal can have much better characteristics curve. I’ve seen that myself with a scope and an received AM broadcast signal. It was much smoother, more defined with the ancient crystal detector.
A replacement done right would be to replace a diode-matrix (used for morse code ID keyers) by an EPROM.
Because, they’re technological related.
Like coal oven and a gas oven, both work with same basic principle.
Or in others words, it’s like replacing Klingon technology by Federation technology. Some just like the gritty Klingon technology, even if they may be interoperable. ;)
““I don’t mind CPLD/FPGA replacements for obsolete and unavailable chips, it’s often the only way to keep classic stuff alive and it doesn’t really alter the function. ””
There’s another alternative in principle.
Lithography at home.
It’s possible to print circuits on plastic/glas.
See https://www.idealine.info/sharpmz/z80glass.htm
For very oldvCPU designs from the 70s, this might be feasible, because operation frequency and die size aren’t so critical.
It might be possible to print an Z80 or M68000 at 5x the size at home, eventually, using some sort of special printer.
Let’s just think about it. Classic digital ICs are so simple in terms of transistor count.
Printing them at home or on a maker event might be possible one day.
Maybe suitable online shops will arrive eventually, just like there are for OCB etching and 3D printing.
Let’s hope for the best! 😃
“I’m a great fan of vintage stuff because I guess I’m of similar vintage myself and I have many memories of it being ‘cutting edge’, it’s cool to be able to understand so much of the guts of a system.”
I feel the same, that’s why I prefer to use hardware-assited virtualization over software emulation, whenever possible.
There’s something magical about being able to run a vintage OS’ code on the real processor.
By being able to run things “natively” (on silicon, with a bit help of emulation+virtualization) it’s not being a museum’s piece.
I hope you understand what I mean here, also from philosophical point of view.
As long as something isn’t being run entirely in emulation, it’s still real.
It’s still relevant. And so at same time is the old expert who used it eons ago.
Like DOS is, if it’s being booted natively on a modern PC to control physical hardware.
Even if it’s just needed for flashing a BIOS.
Even in a virtual machine, it’s still controlling the real processor in PC, at least.
Otherwise, it’s an environment like “The Matrix” in which everything is just a masquerade.
That’s very important for those people who tinker with vintage tech.
They do want to still be relevant themselves in their fields.
They want their knowledge still be relevant and applicable in daily life.
With a physically “dead” platform that’s not possible.
All the in-depth information about the internal workings of a real Motorola 68000 are nolonger needed, for example.
Say, the tricks involved to get it working stable, say, by adding some caps or use a filtered TTL clock signal may nolonger be relevant.
Do you understand what I mean?
If physical hardware gets replaced by much more advanced technology that pretends to be same, the experts of old feel intimidated, obsolete, old. And that hurts.
They feel like Indian natives living in an reservation. It’s a fictional world entirely purposely built for them, rather than true freedom. There’s no new path to walk, no progress, no future.
Or let’s put it this way:
If everything becomes a simulation, a masquerade, then there’s no need for all this anymore. People and their beloved platforms are no longer needed. They’re nolonger cutting-edge. They’re nolonger leading. They’re being under control of a much more advanced technology.
An FPGA can be doing about anything, and so can a Raspberry Pi.
It’s not needed to run an emulation of something old like an 68000, when the hardware can just be used natively in a much better, more powerful way.
Porting the applications to the native side is much more rational. And vintage enthusiasts know that, making them feel depressed.
A fraction of the things I have had or have used is always stuff that’s old enough that I didn’t have it when it was new. I don’t just mean electronics, but it could be anything that no one has yet lost or broke or threw away since the dawn of time, although naturally less and less remains of the oldest stuff. For that kind of thing, or maybe for the kind of person who uses that kind of thing, sometimes it isn’t always about whether they remember a time when it was new, and it doesn’t always have to be using all original parts, although that’s usually nice if it happens. It’s more about whether it’s doing a satisfactory enough job for the amount of space and resources needed to keep it going instead of replacing it. Or whether whatever job it’s doing, it’s providing some sort of worthwhile value.
For an example of things that still have their niche, ‘analog’ audio doesn’t have problematic latency, so if I couldn’t run wires, I’d rather use analog radio versus bluetooth or wifi, especially if I want to have multiple speakers playing the same source in hearing range of each other. That could mean old or new tech, if there was anything new that fit the bill. When i was in school, sometimes I’d run homework and forms through a mechanical typewriter because it was easier than handwritten for the level of legibility. It’s also still less wasteful than scanning and printing a new sheet, and easier than lining up to print overtop of the existing with a regular printer. People sometimes use them for stencils and things too.
If it was a computer, I’d probably not mind a black box replacement if I couldn’t tell the difference without being told. That’s potentially useful for if you realize there’s a file, software, or device that is no longer compatible with anything and you need something to use it with where a software emulator wouldn’t do it. Assuming it isn’t way more expensive as a result of course. Usually people’s solutions don’t go down to that level; it ends up more like you said earlier. Using FPGA’s and some level of remaining hardware seems reasonable.
Though I don’t want to destroy mostly working hardware that someone else or a museum might want someday, there comes a point where, to use a metaphor, neither I nor almost anyone else finds it worth daily driving a car with 8 mpg and 100 horsepower that struggles to start when the weather changes and makes you think you’re going to die in traffic. But I also don’t want to retrofit a CVT or an electric motor that fakes revving up and down to hit shift points for no reason even if that’s part of the original experience. At some point, maybe the value of the old car reverts to its value in being a surviving way to experience the old tech rather than its practicality. Would you rather a fully original car you don’t drive, or a faithfully approximated version of the parts lost to time that lets you experience what’s left much more often? I don’t think one or the other is always better.
Adrian Black from Adrian’s digital basement needs to do this
Super impressive! I think a term for a raw CPU, bus-level emulation is needed, because it’s more like a reimplementation rather than an emulation – to me, emulations merely mean they recreate the overall behaviour and simulations recreate the internal behaviour. Here, the Teensy 4.1 + latches *is* a 68000 (well it will be when the bugs are fixed!).
Hm, interesting thought. So far, it seems to me that kind of CPU emulation compares to a real CPU the same way as an human actor in a Gorilla costume compares to a real Gorilla. By same logic, the actor *is* a Gorilla.
Until the real gorilla gets upset with the actor for refusing his mating protocol.
Thanks, you made my day! 😄👍
By the way, that reminds me of a scene from the movie classic “Trading Places”. :D
https://simple.wikipedia.org/wiki/Trading_Places
The standard term is “In-Circuit Emulator” or ICE, and they’ve been around since before the software emulators you’re more familiar with came into existence.
I remember a couple of decades ago the egg heads were all hoos and haas about fpga taking over the role of dozens of various processors and being able to switch between the functionality of one to the other on the fly. It would appear that finally we have the capability to fulfil such a dream with all the trimmings you’d expect from such. Fantastic. It is however almost laughable how much overkill you need to achieve such a state however…
Actually, I remember DSPs being all the rage. Transputers, too, for a while.
I remember the Transputers being a big idea for a while. Easy to link lots together to increase computing capability.
why apple not open source code or compilator and OS 7 system?
The 68K was indeed a great device and was a great extension to Motorola’s earlier 8-bit offerings (68xx) and especially the extremely successful 68HC11 which found its way into a lot of industrial devices. The 68K line also continued to evolve with many versions targeting various industrial needs and I believed was the core use in the Motorola (which became Freescale, which was bought by NXP) product line called the Coldfire. Although Coldfire … so the 68K DNA still exists… it was supplanted by the latest ARM offerings which is now the focus.
I have many found memories working with the old 68xx, HC11, and 68K families and in many cases all written in assembly because it was simply easy to do (C-compilers at the time were ridiculously expensive and somewhat buggy).
Thank you kirby poyo aahhhhh
Been working on replacing all the custom chips in the SE/30, only chip I haven’t figured out how to replicate is the MC68030 CPU. There are a couple softcores out there, but one is woefully incomplete and the other is both buggy and proprietary to some outfit trying to scalp amega collectors.
I suppose this won’t help much with the SE/30 (at least, not at this stage) but it could help with building new SEs.
Hey, you want teensy, take a look at the Intel 4004. Yup a real live 4 bit CPU. Well CPU might be scratching it a little.
Amazing that one can emulate a Motorola 68000 with a teensy.
It’s very fascinating from an experimenter’s and developer’s point of view.
Such an ICE could be used for all kinds of software development, debugging and troubleshooting in general.
Still, the real things still matters. IMHO.
Now if only teensys didn’t include DRM.