In case you haven’t been reading Hackaday for the last few weeks, we just had an amazing 10th anniversary party in Pasadena this weekend, full of workshops, talks, and a party that reportedly went until four in the morning. One of the amazing hackers we invited to give a talk was [Quinn Dunki], creator of Veronica, the modern 6502 computer stuffed inside an old radio.
We first saw Veronica a few years ago, but [Quinn] figures she’s been building her computer for about five years now. She’s a software developer by trade that decided one day to dip her toes into the murky seas of hardware development and build a computer from the ground up. She chose the 6502 as the brains of her contraption, laid out everything on single-sided boards etched in a kitchen, and connected everything with a backplane. Right now it has a USB keyboard, (technically a PS/2 keyboard with a USB plug), NES controllers, a VGA display, and a monitor and Pong in ROM. [Quinn]’s goal was to build a computer that could program itself, and after five years, she’s accomplished that goal.
[Quinn] admits her software background was responsible for a few of her admittedly bad design choices; the VGA is generated by an ATMega microcontroller, working under the theory that if she could clock the micro fast enough, she could do VGA. She now believes an FPGA would have been a better choice for video output, but now that the video circuit is done, she probably won’t revisit that problem.
There is one thing missing from Veronica, and something that [Quinn] will be working on in the future: mass storage. Right now every program Veronica can run is either stored in ROM or entered via the keyboard. A hard drive is the next problem to solve, either with an SD card, or a Compact Flash or IDE hard drive.
If you’ve ever wanted to get started in retrocomputing, or maybe the Commodore 64 you’ve been using since the 80s just gave up the ghost, [Rick] aka [Mindrobots] has just the thing for you: a retrocomputer based on a PIC microcontroller and a Parallax Propeller.
The two chips at the heart of the computer are both open source. The Propeller is the perfect board to take care of the I/O, video, and audio outputs because it was purpose-built to be a multitasking machine. The microcontroller is either a PIC32MX150 or a PIC32MX170 and is loaded with a BASIC interpreter, 19 I/O pins, a full-screen editor, and a number of communications protocols. In short, everything you would ever want out of a retro-style minicomputer.
The whole computer can be assembled on a PCB with all the outputs you can imagine (VGA, PS/2, etc) and, once complete, can be programmed to run any program imaginable including games. And, of course, it can act as a link to any physical devices with all of its I/O because its heart is a microcontroller.
Retrocomputing is quite an active arena for hackers, with some being made from FPGAs and other barebones computers being made on only three chips. It’s good to see another great computer in the lineup, especially one that uses open chips like the Propeller and the PIC.
[Peter Bjornx] brings classic microprocessors and modern microcontrollers together with his Arduino bootstrapped 68008 computer. The Motorola 68008 is the 8-bit external bus version of the well-known 68000 (or 68k) microprocessor. A friend gave [Peter] one of these chips, so he built a simple computer around it.
This isn’t one of those clean retrocomputers with every connection carefully planned out and wire wrapped. [Peter’s] created a true hack – a working 68k system on a breadboard created with whatever he had on hand at the time. The real gem of this system is the ROM. [Peter] replaced an EPROM chip with an Arduino.
In the not-so-good-old-days, microprocessors (and many microcontrollers) ran from an external ROM chip. This often was a UV-erasable EPROM. Carefully compiled code was burned into the EPROM with a device programmer. If the code wasn’t perfect, the EPROM had to be pulled and placed under a UV lamp for 20 minutes or so to erase it before it was time to try again. EPROM emulators were available, but they were way too expensive for the hobbyist.
Thankfully those days are far behind us now with the advent of EEPROM and then Flash. [Peter] didn’t want to revisit the past either, so he wrote a simple Arduino sketch which allowed it to act as an EPROM emulator, including address logging via the serial port.
The design still caused [Peter] some headaches, though. His major problem was a classic 68k issue, /DTACK timing. /DTACK or Data Transfer Acknowledge is one of several bus control signals used by the 68k. When the 68k performs a read from the data bus, it waits for /DTACK before it transfers data. The Arduino was too slow to release /DTACK in this case, which caused the 68k to think every read was immediately completed. There is a much clearer explanation of the 68k bus cycles on this Big Mess O Wires page. [Peter’s] solution was simple – a D flip-flop connected to the address strobe took care of the timing issues.
It took quite a bit of tinkering, but the system eventually worked. Peter was able to run the 68008 from its reset vector into a simple loop using the Arduino. It’s only fitting that the 68k program loaded by the Arduino was an LED blinker, everyone’s favorite hardware Hello World.
The early days of modern computing were downright weird, and the HP 9830B is a strange one indeed: it’s a gigantic calculator, running BASIC, on a CPU implemented over a dozen cards using discrete logic. In 2014 dollars, this calculator cost somewhere in the neighborhood of $50,000. [Mattis] runs a retrocomputer museum and recently acquired one of these ancient machines, and the walkthrough of what it took to get this old machine running is a great read.
There were several things wrong with this old computer when it arrived: the keyboard had both missing key caps and broken switches. The switches were made by Cherry, but no one at Cherry – or any of the mechanical keyboard forums around the Internet – have ever seen these switches. Luckily, the key cap connector isn’t that complex, and a little bit of bent wire brings the switches back up to spec. The key caps were replaced from a few collectors around the globe.
Getting as far as booting the machine, [Mattis] found some weirdness when using this old calculator: the result of 2+2 was 8.4444444, and 3+1 was 6.4444444. Simply pressing the number 0 and pressing execute resulted in 2 being displayed. With a little bit of guesswork, [Mattis] figured this was a problem with the ALU, and inspecting the ROM on that board proved to be correct: the first 128 nibbles of the ROM were what they were supposed to be, and the last 128 nibbles were the OR of the last half. A strange error, but something that could be fixed with a new replacement ROM.
After hunting down errors with the printer and the disk drive, [Mattis] eventually got this old calculator working again. For such an astonishingly complex piece of equipment, the errors were relatively easy to hunt down, once [Mattis] had the schematics for everything. You can’t say that about many machines only 10 years younger than this old calculator, but then again, they didn’t cost as much as a house.
When it comes to building retrocomputers, there are two schools of thought. The first is emulation, that allows for greater compatibility and ease of use, and much easier to find parts. The second requires real, vintage hardware with all the bugs and idiosyncrasies found in vintage chips. Reconciling these two ideas is hard, but the software defined Propeddle manages to do it, all while using a real 6502 CPU.
The trick here is using a Parallax Propeller for the heavy lifting of loading the ROM into RAM with an extremely clever technique using the Reset and NMI pins, generating the clock and other signals required by the 6502, and hosting the keyboard, serial, and video I/O. Already [Jac] has the Propeddle running as an Apple 1 emulator (video below), making it possible to write programs for the Propeddle in BASIC or assembly.
It’s a great design that allows for emulation of a lot of the classic 6502 computers with a real CPU, all while doing away with the cruft of expensive ACIAs and video generation hardware. Awesome work, and we can’t wait for the next version that will be dedicated to [Bill Mensch].
Continue reading “Propeddle, The Software Defined 6502″
Cheap FPGA boards are readily available, as are VHDL implementations of classic CPUs like the 6502, 6809, and Z80. Up until now, we haven’t seen anyone take these two parts and combine them into a complete system that turns an FPGA board into a complete 8-bit retrocomputer. Thanks to [Grant]’s work, it’s now possible to do just that (server on fire, here’s a google cache) with a $30 FPGA board and a handful of parts.
In its full configuration, the Multicomp, as [Grant] calls his project, includes either a 6502, 6809, Z80, or (in the future) a 6800 CPU. Video options include either monochrome RCA, RGB VGA, or RGB via SCART. This, along an SD card interface, a PS2 keyboard, and the ability to connect an external 128kB RAM chip (64k available) means it’s a piece of cake to build a proper and complete portable retrocomputer.
What’s extremely interesting about [Grant]’s project is the fact the data and address lines are fully exposed on the FPGA board. This means it’s possible to add whatever circuit you’d like to whatever retrocomputer you can imagine; if you want a few NES gamepads, an IDE interface, or you’d like to design your own primitive video card, it’s just a matter of designing a circuit and writing some assembly.
If you’d like to build your own, search “EP2C5T144C8N” on the usual sites, grab a few resistors and connectors, and take a look at [Grant]’s documentation and upcoming examples.
Via 6502.org forums
Perfection is achieved not when there is nothing more to add, but when there is nothing left to fail. Going by that metric, [Stian]’s three-chip 6502 homebrew computer is the epitome of perfection. It’s a real, working, homebrew retrocomputer using only three chips: a CPU, some RAM, and a microcontroller to bootstrap the computer and provide a video output,
The key to this minimalist build is having the entire boot process controlled by an ATMega16 microcontroller, This interfaces to the 6502 through a dual-port SRAM, a 1 kilobyte Cypress CY7C130. This dual-port RAM allows the CPU and microcontroller to access the same bit of memory, making it easy to bootstrap a computer from a bit of AVR code.
Output is provided with [Stian]’s ATMega video text generator putting a 37×17 characters on any television with an RCA jack. While input isn’t handled yet, [Stian] says it should be possible with his AVR PS/2 keyboard library.
While other 6502 homebrew computers such as [Quinn Dunki] Veronica can reach unparalleled heights of complexity, there is a lot to be said about the minimalism of [Stian]’s three-chip computer. With some clever coding and a modified parts list, it may well be possible to put a retrocomputer in the hands of everyone with a bare minimum of cost and parts.