Everyone is having a go at building their own 8-bit 80s-era microcomputer now, and [Petri] thought he would throw his hat into the ring with ERIC-1, a homebrew, 6502-based computer that’s running at about 2MHz.
We’re about 30 or 40 years ahead of the game compared to the old-school 6502 designs, and [Petri] decided to capitalize on that. Instead of a separate ROM, VIA, and other peripherals, [Petri] is connecting a microcontroller directly to the data and address pins. This is a technique we’ve seen before, and [Petri] is doing it right: the micro and 6502 share 64k of RAM, with the ROM stored in the micro’s Flash. Video (PAL in this case) is handled by the ATMega, as is clocking and halting the CPU.
There were a few changes [Petri] made along the way to make this microcomputer a little more useful. One of the biggest changes was switching out the old NMOS Rockwell 6502 with the modern CMOS W65C02 from Western Design Center. The CMOS variant is a fully static design, keeping the registers alive even if the clock is stopped and making single-stepping and halting the CPU easier.
The CMOS variant also has a Bus Enable (BE) pin. Like similar pins on later, more advanced processors, this pin puts the address, data, and R/W pins into a high impedance state, giving other peripherals and microcontrollers the ability to write to RAM, peripherals, or anything else. It’s a handy feature to have if you’re using a microcontroller for everything except the CPU.
It’s already a great build, and since [Petri] has the skills to program this 8-bit ‘duino game, he’s sure to come up with something even better for this computer.
Oh, if you’re looking for something even cooler than a 3-chip 6502, there’s a bunch of stuff over on hackaday.io you should check out. Everything from 4-bit computers built from discrete components to dual AVR board can be found there.
A long time ago, [Martin] played with old 8-bit computers. Recently, he’s been honing his assembly skills again, and the idea of an IDE for a boatload of old systems came to him. After a year of work, he announced a multitarget IDE for 8-bit computers that works in your browser.
The project is called ASM80, and includes a code editor, a workspace to put all your code, compilers for the 8080/8085, Z80, 6502, 6800 and 6809 CPUs, emulators for all these CPUs, and emulators for a few Czech computers, the ZX Spectrum, and a few of [Grant Searle]’s single board computers.
What makes this project interesting is the syntax for all the different CPUs is pretty much the same. It’s a real, modular code editor that supports macros and everything you would expect for a code editor for ancient computers.
You can check out an assembler description here. [Martin] also has an offline, desktop-based version of ASM80 called IDE80, with a video demo of that below.
Continue reading “Multi-target IDE for 8-Bit CPUs”
The KIM-1 wasn’t the first microcomputer available to computer hobbyists and other electron aficionados, but it was the first one that was cheap. It was also exceedingly simple, with just a 6502 CPU, a little more than 1k of RAM, 2k of ROM, a hexadecimal keypad and a few seven-segment displays. Still, a lot of software was written for this machine, and one of these boards can be found in every computer history museum.
[Oscar] thought the KIM-1 was far too cool to be relegated to the history books so he made his own. It’s not a direct copy – this one uses an Arduino for the brains, only breaking out some buttons, a pair of four-digit seven-segment displays, and the I2C and SPI pins on the ‘duino. The KIM-1 is emulated by the Arduino, allowing for the same interface as an original connected up to an old teletype, and [Oscar] got his hands on the original code for Microchess and the first 6502 disassembler from [Woz] and [Baum].
[Oscar] put the schematics for his version of the KIM-1 up, and has the PCBs up on SeeedStudio. If you’re looking for an awesome replica of a vintage computer and a nice weekend project, here ‘ya go.
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.
Robots have always been a wonderful tool for learning electronics, but if you compare the robot kits from today against the robot kits from the 80s and early 90s, there’s a marked difference. There are fairly powerful microcontrollers in the new ones, and you program them in languages, and not straight machine code. Given this community’s propensity to say, ‘you could have just used a 555,’ this is obviously a problem.
[Carbon]’s entry for The Hackaday Prize is a great retro callback to the Heathkit HERO and robotic arms you can now find tucked away on a shelf in the electronics lab of every major educational institution. It’s a 65C02 single board computer, designed with robotics in mind.
The 6502 board is just what you would expect; a CPU, RAM, ROM, CPLD glue, and a serial port. The second board down on the stack is rather interesting – it’s a dual channel servo board made entirely out of discrete logic. The final board in the stack is an 8-channel ADC meant for a Pololu reflective sensor, making this 6502 in a Boe-bot chassis a proper line-following robot, coded in 6502 assembly.
[Carbon]’s video of his bot below.
The project featured in this post is an entry in The Hackaday Prize. Build something awesome and win a trip to space or hundreds of other prizes.
Continue reading “THP Entry: A 6502 SBC Robot (On Multiple Boards)”
It’s no secret that people love the 6502 processor. This historic processor powered some of our favorite devices, including the Apple II, the Commodore 64, and the NES. If you want to play with the 6502, but don’t want to bother with obtaining legacy chips, the CHOCHI board is for you.
While many people have built modern homebrew 6502 computers, the CHOCHI will be much easier for those looking to play with the architecture. It’s based on a Xilinx XC3S50 FPGA which comes preconfigured as a 6502 processor.
After powering on the board, you can load a variety of provided binaries onto it. This collection includes a BASIC interpreter and a Forth interpreter. Of course, you’re free to write your own applications in 6502 assembly, or compile C code for the device using the cc65 compiler.
If you get bored with the 6502 core, you can always grab Xilinx’s ISE WebPACK for free and use the board as a generic FPGA development tool. It comes with 128K of SRAM and 31 I/O pins. Not bad for a $30 board.
If you listen to [Bil Herd] and the rest of the Commodore crew, you’ll quickly realize the folks behind Commodore were about 20 years ahead of their time, with their own chip foundries and vertical integration that would make the modern-day Apple jealous. One of the cool chips that came out of the MOS foundry was the 6500/1 – used in the keyboard controller of the Amiga and the 1520 printer/plotter. Basically a microcontroller with a 6502 core, the 6500/1 has seen a lot of talk when it comes to dumping the contents of the ROM, and thus all the code on the Amiga’s keyboard controller and the font for the 1520 plotter – there were ideas on how to get the contents of the ROM, but no one tried building a circuit.
[Jim Brain] looked over the discussions and recently gave it a try. He was completely successful, dumping the ROM of a 6500/1, and allowing for the preservation and analysis of the 1520 plotter, analysis of other devices controlled by a 6500/1, and the possibility of the creation of a drop-in replacement for the unobtanium 6500/1.
The datasheet for the 6500/1 has a few lines describing the test mode, where applying +10 VDC to the /RES line forces the machine to make memory fetches from the external pins. The only problem was, no body knew how to make this work. Ideas were thrown around, but it wasn’t until [Jim Brain] pulled an ATMega32 off the top of his parts bin did anyone create a working circuit.
The code for the AVR puts the 6500/1 into it’s test mode, loads a single memory location from ROM, stores the data in PORTA, where the AVR reads it and prints it out over a serial connection to a computer. Repeat for every location in the 6500/1 ROM, and you have a firmware dump. This is probably the first time this code has been seen in 20 years.
Now the race is on to create a drop-in replacement of what is basically a 6502-based microcontroller. That probably won’t be used for much outside of the classic and retro scene, but at least it would be a fun device to play around with.