The 8-Bit Guy’s new review of Pluggy McPlugface (our PS/2 keyboard adapter), Tiny BASIC v2 and the new games in ROM v3.
It’s the same as we exhibited at the Hackaday Supercon last week. Speaking of which, the conference badge was screaming for this hack:
It’s in fact a cycle-exact emulation of the TTL circuit based on gtemu.c. The emulation runs at 3 frames per second instead of 60 frames. It still manages to play Racer. Typing in Tiny BASIC v2 goes remarkably well.
Today, a circle closed at the Centre for Computing History in Cambridge, UK.
How? Well, one week before this project started on Hackaday, I was at the Computer History Museum in Mountain View, US, and jokingly posted the following remark on Facebook:
That’s an original Apple-1. The Apple-1 next to the Gigatron is a beautifully done replica. It’s fully functional, complete with cassette interface. The PCB is drawn in the same way and the chips even have 1970s date codes on them. It’s on display in an operational state. I could play around and type commands in the original Woz Mon to verify that the Gigatron version works the same.
Many thanks to David Williams for the great opportunity!
Oscar brought his Gigatron, with our prototype keyboard adapter and Tiny BASIC, to VCF West 2018 at the Computer History Museum in Mountain View. He came back with the “Judge’s Special Choice Award”. How cool is that! Utterly flattered…
TV Typewriter is just a stepping stone and by now we also have a small monitor program. To stay in retro style, this time we didn’t invent our own but we faithfully ported the Apple-1 built-in monitor program to the TTL architecture: the infamous Woz Monitor!
Now you can directly inspect memory locations, write to them and execute code on the hardware itself.
Steve Wozniak’s original is 254 bytes, our version is $254 bytes. About half of that is for terminal output, or character printing. The Apple-1 had dedicated hardware for that, something we’d consider cheating of course [tongue in cheek].
Source and GT1 object files are available in GitHub. A nice user manual for the original is here. With this step, all original Apple-1 firmware has been ported to the Gigatron 🙂
Now is the time to standardise on a file format for vCPU programs. Most hackers will start at the 16-bit programming level because it is easiest. Programs can be loaded into the system with the Loader application, without reprogramming the EPROM.
After some discussion with the emulator guys, we have agreed on a file format for both real boards and emulators: GT1 files. At67 quickly coded some demos in his vCPU assembler and produced GT1 files for them. These work in his great emulator. But his kit hasn’t arrived yet, so I tested it for him. See here “life3.gt1” and “lines.gt1” loaded on my development board with ROM v1.
It works! We have a standard for exchanging Gigatron programs!
Edit: Check out this video for what is brewing in emulator land. Sprites!
Woke up this morning and wondered where those new kit orders suddenly came from. It turned out that right at that moment Dave Jones (EEVblog) was building a board in a Youtube live stream with many hundreds of viewers looking on. I caught the last half hour or so. I couldn’t stand the suspense when he was searching for a cable. He didn’t use the manual, skipped all tests, still it worked 1st time. “This is disappointing, there is nothing to troubleshoot!”. Greatest compliment ever! THANK YOU!
Edit: the live soldering turned out to be a prelude to more to come. The Gigatron is now honoured with an official EEVblog episode! We’re truly and utterly flattered.
Before refurbishing his cat house, the 8-Bit Guy made time to do an episode on our kit. Needless to say this we think this is his best episode ever 🙂 . Approaching 300,000 views so far, but 100 of these must be our own reloads. Thank you David and we’ll get you an updated Snake later that doesn’t require color vision.
The video shows how an Arduino can be hooked up and pretend to be an ASCII keyboard. No EPROM change is needed. After powering the Arduino, it takes over control by resetting the Gigatron, navigating the menu and starting Loader. It fakes game controller signals to do that. Then it pushes a tiny precompiled Terminal program into the RAM. From there on, it sends simple ASCII codes which the board dutifully displays. This is step 1 towards interacting with the system for direct hacking.
The source code for the sketch is in GitHub. Hookup is with 4 male-to-female jumper wires, as explained on the Tutorials page.
Edit: The Arduino in turn can interface with a keyboard. Here an example with a PS/2 keyboard, using a standard library to handle the protocol.
The Arduino is a bit of an overkill here. A simple ATtiny85 will do the job just as well.