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.
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.
Almost a year ago, [miker00lz] started a thread on the Arduino forums telling everyone about a 6502 emulator and BASIC interpreter he wrote for an Arduino Uno. The chip inside the Uno isn’t a powerhouse by any means, and with only 2KB of RAM it’s far less capable than just about any computer from the 70s. Arduino works on a lot of different chips, though, and after a few months, [Jan] turned an Arduino Due into a Commodore 64 emulator.
[Jan]’s code isn’t limited to the DUE, and can be used with any chip with enough memory. If you’re feeling fancy, you can connect a TFT display for all the vintage goodness of PETSCII graphics, all while running a faster BASIC than the very stripped down EHBASIC.
Because the emulator is using software to talk to the outside world, it should be possible to use this project to interface with the cooler chips found in Commodore machines – SIDs for one, but also the cartridge port for some vintage Ethernet goodness. It’s not even limited to Commodore machines, either: the POKEY chips found in Atari 8-bit micros are seriously underutilized in the chiptune and demoscene, and having modern hardware to play with these chips couldn’t hurt in the slightest.
Continue reading “C64 Emulator For The Arduino Due”
Since [Dan] has started using microcontrollers, he’s been absolutely fascinated by the fact these chips are essentially low performance computers. Once he caught wind of TinyBASIC, he decided he would have a go at creating a simple, tiny computer that’s very simple to the old, tiny, 8-bit computers of yore.
The computer is built on an Arduino shield, using TinyBASIC, the TVout library, and the PS/2 keyboard library. After piecing together a little bit of code, the Arduino IDE alerted [Dan] to the fact the TVout and PS/2 libraries were incompatible with each other. This inspired [Dan] to use the ATMega328P as a coprocessor running the TVout library, and using the capacious ATMega1284P as the home of TinyBASIC and the PS/2 library.
A circuit was put together in Fritzing using minimal components, and a PCB milled out of copper board. After the board was tinned, [Dan] had a beautiful minimalist retro computer with nearly 14kB of RAM free and an RCA display.
Future versions of the build will probably be based around the Arduino Mega, allowing for a TV resolution of 720×480. Also on tap are an SD card slot, LEDs, pots, and possibly even headers for I2C and SPI.
[Malte] just finished a little project for his Wabeco F1200 milling machine: a compact external display for three digital sliding calipers (Translated from German). As you may have already guessed, [Malte] was lucky enough to be able to fit disassembled calipers onto the machine and use them for positioning. Before embarking on this adventure, he noticed that there were similar projects present on the internet, but all of the calipers used had different data interfaces and protocols. The calipers that [Malte] bought have a mini USB connector, even though the interface itself isn’t USB. As he couldn’t find any information on that interface, he turned to his oscilloscope to decode the protocol.
[Malte] then built an AVR-based platform that reads out the three calipers and shows the position data on the dot matrix LCD shown above. The AVR firmware is written in a mixture of Basic and assembler language. The source code, schematics, and other resources can be downloaded from the project’s web page. We are impressed on the professional aspect of the final result.
Continue reading “Three Axis Position Indicator with Digital Calipers”
[Dan] took a $13 electronic dartboard and made it work with an Android device. The idea behind it is that these cheap electronic models feature a very sparse display. At this price that doesn’t surprise us. He wanted to add the features you’d find on a coin-op model like the ones found in bars. So he added some hardware that lets him use Android as the scoreboard.
To do this all he needs is the ability to detect when a dart has hit the board and what value was registered. The board is really nothing more than a 62-button input device organized as an 8×8 matrix. He soldered jumpers between the pins and a DIP socket. After the work was done he programmed his Cordium BASIC microcontroller, a 28-pin chip, and dropped it right in. It communicates with a serial Bluetooth module which provides the connectivity with an Android phone. You can see a very quick clip of the app embedded after the break.
This would be just perfect if you’re using an Android set-top-box on a TV near the dart board.
Continue reading “Cheap electronic dartboard hacked to use Android for scoring”
It can be really hard to warm up to coding in Assembly. But this tutorial looks to make it understandable and (almost) easy. It focuses on programming a game for the ZX Spectrum. But you won’t need the hardware on hand as you can just use the ZX Spin emulator as you work your way through the code.
Ostensibly this is a 30-minute tutorial but that’s a gross underestimate. We finished a cursory read of the tutorial and the building blocks are certainly clear and easy to understand. But we like to make sure we understand every line of code and plan to spread that out over the coming weekend.
The first chapter eases us into machine code by combining it with a bit of BASIC. You’ll see how to manipulate the ZX Spectrum memory and then pluck that value back out into the BASIC program. But once chapter 2 hits it’s pretty much all assembly from there on out. The nice thing is that as you go along you learn how the hardware works and there are quite a few references to pages in the manual so you can do some extra learning along the way.