[Oscar] is no stranger to writing hard-to-read C code. While most of us do that by accident, there are those who strive to write the most unreadable code and enter it in the IOCCC — the International Obfuscated C Code Contest. One of his winning entries was a single C function that emulates an 8080. With a few support files, the plucky little emulator will run CP/M.
The emulator won best in show, but that was in 2006. Things have changed a bit and [Oscar] has updated the code so that you can continue to try it if you want to give yourself a headache reading code. The portability isn’t a CPU issue — modern CPUs will happily run code from 2006. The problem is the compiler and operating system. Compilers are much stricter these days, and Linux needs a little extra coaxing to give access to the input stream the way the faux computer needs it.
People argue about the first use of the computer desktop metaphor. Apple claims it. Xerox probably started it. Yet, when I think of computer desktops, I think of the NOVAL 760. Not a household name, to be sure, but a big ad spread in a June 1977 Byte magazine was proud to introduce it. At $2995, we doubt many were sold, but the selling point was… well… it was built into a “handsome wood desk, designed to compliment any decor.” The desk folded down when you were not using the computer, and the keyboard recessed into a drawer.
The computer itself was no slouch for 1977, but nothing you couldn’t find elsewhere. An 8080, speed unspecified, had 16 kB of RAM and 3 kB of PROM. There was also a display with a few kB of memory hanging around, too. And just in case you were worried, the bottom of the page entitled “The Ultimate in Home Computers” reads, “The NOVAL 760 COMPUTER. A fully-assembled, fully-tested personal computer … not a kit!” Of course, for us, that’s not really a selling point. If you wonder why the computer was memory limited, this is the time that Extensys bragged in an ad: 64 kB for $1495! If you ordered one, you could have it in 15 to 30 days, too!
There were options for more memory, and it wasn’t clear how many of the I/O devices in the ad were actually included in the advertised price. Some of the devices seemed very specialized, so we are guessing the basic system didn’t include some of them.
Ask anyone to name a first-generation home computer from the 1970s, and they’ll probably mention the likes of the Altair 8800 and IMSAI 8080. But those iconic machines weren’t the only options available to hobbyists back in the day: Heathkit, famous for its extensive range of electronic devices sold in kit form, jumped on the microcomputer bandwagon with their H8. Though it always remained a bit of an obscure machine, several dedicated enthusiasts kept making H8-compatible hardware and software long after the computer itself went out of production. That tradition continues in 2023, with [Scott M. Baker] producing a brand-new DRAM board that’s compatible with any version of the H8.
Although the Heathkit H8 was designed around the Intel 8080 processor, it could also be equipped with a Z80. [Scott] had built an 8085 based CPU board as well, meaning that any other hardware he developed for the H8 had to support these three processors. For something as timing-critical as a memory board, this turned out to be way harder than he’d expected.
First off, he had already made things difficult for himself by choosing DRAM rather than the simpler SRAM. Whereas SRAM chips can be more or less directly hooked up to the CPU’s address and data buses, a DRAM setup needs refresh circuitry to ensure the data doesn’t leak out of the chips’ internal capacitors. [Scott] decided to use the classic D8203 DRAM controller to do that for him — a solution that was pretty common back in the day.
Getting the timing right for all signals between the CPU and the DRAM controller was not at all trivial, however. The main problem was with two signals, called /SACK and /XACK, which were used to pause memory access during refresh cycles. Depending on which CPU was on the other side, these signals apparently had to be combined with other signals, stored in a flip-flop or delayed by a cycle or two in order to align with the processor’s internal logic. None of this seemed to work reliably, so [Scott] looked elsewhere for inspiration.
He found this on eBay, where a few vintage H8-compatible DRAM boards were for sale. Although [Scott] didn’t manage to win the auction, the eventual buyer was kind enough to snap some high-resolution pictures of the board which enabled him to reverse-engineer the circuit. The board used the similar D8202 DRAM controller and came with logic that generated the proper signals to interface with the 8080 and 8085 CPUs. For the Z80, [Scott] dived into the documentation for Heathkit’s Z80 option and found a schematic with a few logic gates that would satisfy the Zilog chip as well.
[Scott] combined both of these solutions on a beautiful 1980s-style printed circuit board, with a bunch of 7400 series logic gates and even two GAL22V10 programmable logic devices. With full documentation and Gerber files available on the project’s GitHub page, Heathkit H8 owners can now get their own brand-new memory board — in kit form, as a Heathkit should be.
Sometimes, hacking is just for the pleasure of diving into the secrets of old hardware. That was very much the case when [glitch] and a friend started hacking on some old Intel 8080 boards that had been living in the junk pile for too long.
The boards in question were motherboards from Identicon barcode scanners, running the Intel 8080 CPU. Hacking on the 8080 is a little different, with the ancient CPU requiring three separate voltages to run. However, with the power rails figured out and power applied, it was possible to get the old boards up and running.
The boards were first run with test ROMs which showed the 8080 CPU to be functional. The ROMs hosted a simple program which got the 8080 to spit out the word “HELO” on to an HP HDSP-2416 ASCII character display. From there, the barcode scanner boards were installed in a chassis and hooked up to a bigger Siemens character display, and the memory was mapped out.
The result was that [glitch] and co were able to largely reverse engineer the Identicon hardware, learning it was fairly similar to the Intel MCS-80 reference design of the era. They were able to get code running on the platform, access the RAM, and fit a larger 8-character display. However, without the original barcode scanner attachment, the boards weren’t able to return to their original duty.
As far as hacks go, it’s pretty old school. The boards don’t talk to Twitter, nor run the lights or help with the dishes. However, plenty of fun was had seeing if this old metal could be made to follow instructions once more. Hacking for the pleasure of it is always a good thing by our book!
It’s easy to think of the earlier history of desktop computing operating systems in terms of DOS, Windows, and Mac OS with maybe a bit of AmigaOS, TOS, or RiscOS thrown in. But the daddy of desktop computing, the OS that put word-processors and spreadsheets in 1970s offices and had a huge influence on what followed, isn’t among that list. Digital Research’s CP/M ran initially on Intel 8080-based machines before losing out to MS-DOS as IBM’s choice for their PC, and then gradually faded away over the 1980s. Its source has been available in some form with a few strings for a long time now, but now we have confirmation from Digital Research’s successor company that it’s now available without restrictions on where it can be distributed.
For years it was something an operating system that had been bypassed by the hardware and hacker communities, as the allure of GNU/Linux was stronger and most available CP/M capable machines were also 1980s 8-bit gaming platforms. But with the more recent increased popularity of dedicated retrocomputing platforms such as the RC2014 it’s become a more common sight in our community. Brush up your command line skills, and give it a go!
In the early years of the computer revolution, a machine like the Sol-20 really stood out. Where most hobbyist machines had front panels that bristled with toggle switches and LEDs, the Sol-20 was a sleek, all-in-one that looked like an electric typewriter in a walnut-trimmed box. Unfortunately, it was also quite expensive, so not that many were sold. This makes them hard enough to find 40 years later that building his own reproduction Sol-20 is about the only way for [Michael Gardi] to have one of his own.
In a lot of ways, the Sol-20 anticipated many of the design elements that would come into play later. Like the Apple and Commodore machines that were coming down the pike, the Sol-20 was intended to be plug and play. [Mike] celebrates that design with a full-size reproduction of the original, concentrating on its unique aesthetic aspects. The reproduction mimics the striking blue case, with its acrylic front panel and walnut sides. The keyboard is also an exact match for the original, in looks if not in function — the capacitive mechanism proved too difficult to replicate, so he opted for a kit using Cherry switches and custom keycaps. [Mike] also used his proven technique for 3D-printing the memorable Sol-20 logo for the front panel, in the correct font and color.
Under the hood, a Raspberry Pi runs an 8080 emulator, which supports a range of virtual devices, including a cassette tape drive and the video output. For fun, [Mike] also imagined what a CRT display for the Sol-20 would have looked like, and added that to his build. It’s a great-looking machine that never was, and we appreciate the attention to detail. We’ve seen that before — his 2/3-scale VT-100 terminal comes to mind, as does his reproduction of a 1960s computer trainer.
If you want to run an old CP/M program — maybe you want to run WordStar or play StarTrek — you have several options. One is to acquire some classic hardware. You can also build a new computer using a Z80 or some other processor that will emulate a Z80. Finally, you can emulate old hardware on your current computer. The iz-cpm project from [ivanizag] takes this last approach. Unlike some emulators, iz-cpm doesn’t try to emulate everything in one simulated environment. Instead, it directly accesses your file system so it allows CP/M executables to run more as though they were a native program.
You can think of it as Wine for CP/M. The code is portable to Linux, Windows, or MacOS. The author mentions, though, that it won’t run on CP/M itself! The program can run an executable standalone which means you could set .COM files up to execute automatically if you wanted to.