VCF East X: The Quarternet Steering Committee

Today was the first day of the Vintage Computer Festival East X. As is the tradition, the first day was packed with talks and classes about various retrocomputing ephemera, with this year featuring a great talk from [David Riley] about 8-bit computer music, a class on system architecture from our own [Bil Herd] (video coming soon), and a talk about vintage teletypes. One of these talks was about creating new hardware: [Jim Brain]’s steering committee on a networking solution for vintage microcontrollers. It’s called Quarternet: a two-bit solution for an eight bit world.

While minicomputers are easily networkable, designed around multi-user operating systems, and have the hardware for a lot of networking hardware, 8-bit micros are the exact opposite. That doesn’t mean 8-bitters don’t have networking; you can get an Ethernet cart for a C64, and just about everything can connect to a BBS. [Jim]’s talk was about whittling down the use cases for the Quarternet to something that could be implemented easily, but still give the most capability.

During the talk, the audience settled on using a serial connection from the micro to the outside world; this makes sense, as everything has a serial port. A ‘lightweight API’ was suggested to take up the software side of the problem, but there wasn’t much agreement over what that API would actually do.

[Jim]’s idea is for a box that plugs into the serial port of any old microcomputer and would connect to the Internet somehow. Ethernet, WiFi, or even a modem isn’t out of the question here. That takes care of connecting to the Internet, but there’s also the question of the cooler side of networking – network drives, file sharing, and the like.

For this, [Jim] is imagining a box with a serial port on one end, and a network port on the other. In the middle would be a cartridge slot for any hardware imaginable. If you want to plug in an Apple II disk drive, just insert the right cartridge and you’re good to go. If you need network access to a Commodore 1541 drive, just insert another cartridge, and it’ll just work.

It’s an interesting idea, but [Jim] is really interested in getting even more feedback for a networking system for old microcomputers. If you have any ideas, leave a note for him in the comments.

The RUM 80 – a home brew Z80 computer built from scratch

[M] recently tipped us off about hacker [Lumir Vanek] from the Czech Republic. Between 1985 and 1989, [Lumir] built his own home brew, Z80 based computer. The list of home computers available in the 1980’s is extensive. Those living in western Europe and the Americas could choose offerings from Acorn, Apple, Commodore, Atari, Radio Shack, and Sinclair Research to name just a few. Even the erstwhile Czechoslovakia had home computers available from Didaktik and Tesla.

[Lumir]’s built was based around the Z80 processor and is built using regular, double-sided, prototyping board. It featured the 8-bit Z80 processor CPU, 8kB EPROM with monitor and BASIC, two Z80 CTC timers, an 8255 parallel interface for keyboard and external connector, 64kB DRAM, and Video output in black & white, 40×25 characters, connected to a TV. The enclosure is completely made from copper clad laminate. [Lumir] documented the schematics, but there is no board layout – since the whole thing was discrete wired. He even built the membrane keyboard – describing it as “layers of cuprextit, gum, paper with painted keys and transparent film”. When he ran out of space on the main board, he built an expansion board. This had an 8251 serial interface for cassette deck, one 8-bit D/A converter, and an 8255 parallel port connected to the “one pin” BT100 printer.

On the software side, he wrote his own monitor program, which allowed simple interactions, such as displaying and modifying registers, memory, I/O ports and to run programs. He wrote this from scratch referring to the Z80 instruction set for help. Later he added a CP/M emulator. Since the Z80 had dual registers, one was used for user interaction, while the other was reserved to allow background printing. Eventually, he even managed to port BASIC to his system.

Check out [Martin Malý]’s awesome article Home Computers behind the Iron Curtain and the follow up article on Peripherals behind the  Iron Curtain, where you can read more about the “one pin” BT100 printer.

Continue reading “The RUM 80 – a home brew Z80 computer built from scratch”

Peripherals Behind The Iron Curtain

The article Home Computers Behind the Iron Curtain sparked a lot of interest, which made me very happy. Therefore, I decided to introduce more computer curiosities from the Iron Curtain period, especially from the former Czechoslovakia (CSSR).

As I mentioned in the previous article, the lack of spare parts, literature and technology in Czechoslovakia forced geeks to solve it themselves: by improvisation and what we would today call “hacking.”  Hobbyist projects of one person or a small party was eventually taken over by a state-owned enterprise, which then began to manufacture and deliver to stores with some minor modifications. These projects most often involved a variety of peripherals that could only be found in the Czechoslovakia with great difficulty.

Much like the production of components, the production of peripherals was also distributed throughout the eastern block so that each country was specializing in certain types of peripherals. For example, East Germany produced matrix printers, and Bulgaria made floppy disks drives. This meant industrial enterprises had to wait for vital computer parts, because the production in another country was not sufficient to cover even the local requirements, let alone the home user.

Continue reading “Peripherals Behind The Iron Curtain”

Java Byte Code, Ahead Of Time Compilers, And A TI-99

Java famously runs on billions of devices, including workstations, desktops, tablets, supercomputers, and jewelry. Yes, jewelry. Look it up. [Michael] realized Java doesn’t run on Commodore 64s, TI-99s, and a whole bunch of other platforms. Not anymore.

Last year, [Michael] wrote Java Grinder, a Java byte-code compiler that compiles classes into assembly language instead of being part of a JVM. This effectively turns Java from a Just In Time compiled language to a normally compiled language, like C. He wrote this for the 6502/6510, the MSP430, and a Z80. The CPU in the TI-99/4A is a weird beast, though, and finally [Michael] turned this Java Grinder on that CPU, the TMS9900.

While most of the development was accomplished with the MESS emulator, [Michael] did manage to run Java on real hardware. His friend gave him a TI-99/4A a few years ago with a few cartridges. Cracking those cartridges open revealed one PCB that would hold an EEPROM. Writing his Java byte-code-derived assembly to a 28c64 EEPROM, he had a cartridge that would run compiled Java.

Right now, the demo is pretty simple with low-resolution graphics beeps and bloops of music, and generally not what you would expect from a TI/99. This is mostly due to the fact that the API for the TI-99 is extremely simple. You can check out the results of that programming endeavor below.

Continue reading “Java Byte Code, Ahead Of Time Compilers, And A TI-99″

Altair 8800 Front Panel For An 8080 Emulator

It appears a very important anniversary passed by recently without anyone realizing. The January 1975 issue of Popular Electronics featured the Altair 8800 on the cover, otherwise known as the blinky box that launched a revolution, the machine that made Microsoft a software powerhouse, and the progenitor of the S-100 bus. The 40-year anniversary of the Altair wasn’t forgotten by [dankar], who built a front panel emulator with the help of some much more modern components.

The build unofficially began with an Intel 8080 emulator written for an Arduino. The 8080 is the brains of the Altair, and while emulators are cool, they don’t have the nerd cred of a panel of switches and LEDs. The hardware began as a bunch of perfboard, but [dankar] wired himself into a corner and decided to make a real schematic and PCB in KiCAD.

Despite the banks of LEDs and switches, there really isn’t much to this front panel. Everything is controlled by shift registers, but there is a small amount of SRAM in the form of an SPI-capable 23LC1024. This comes in handy, because [dankar] is running CP/M 2.2 on this front panel emulator from disk images saved on an SD card. Everything you would want from a computer from 1975 is there; an OS, BASIC, and enough I/O to attach some peripherals.

A VU-meter indicator for a Commodore 1530 Datasette

For present-day owners of vintage Commodore computers, keeping data and programs safe and backed up is top priority. Disk drive storage was more common in the US, whereas in Europe, the audio cassette was the preferred medium of storage.

The Datasette device was what allowed interfacing the cassettes to the computer. Tape head alignment was critical to successfully writing and reading data to the cassette. Some models of the Datasette came with a small hole above the keys, to allow access to the adjustment screw of the tape head azimuth position. Tweaking this while looking at a signal meter could help you improve the signal from a bad cassette and prevent load errors. [Jani] tried a commercial solution called “Load-IT” which had a LED bargraph, but it couldn’t help much dealing with tapes with very bad signals. So he built a signal strength meter for his Datasette. He calls it the VU-sette since it uses an analog style meter quite similar to the VU-meters found in many audio equipment.

The hardware is simple and uses commonly available parts. The analog meter is extracted from a Battery Checker sourced from eBay. An op-amp drives the analog meter, and another transistor drives a separate speaker. This can be used to listen in on the cassette, if the speaker is enabled via a push button. [Jani] first breadboarded and tested the circuit before ordering out prototype boards.

To test performance, [Jani] used FinalTAP, a tool for examining, cleaning and restoring digitized data cassette tapes (TAP files) for the Commodore 64 computer. The “LOAD-IT” version worked well with tapes that were in fairly good condition. But his VU-sette version allowed him to adjust the head more precisely and get out a much better read from bad tapes. While on the subject, check out this nice 7-segment bubble LED digital counter for the 1530.

Continue reading “A VU-meter indicator for a Commodore 1530 Datasette”

Reverse Engineering Galaga to Fix the No-Fire Cheat

We didn’t know there was a cheat to Galaga, but [Chris Cantrell] did. And so he did what any curious hacker would do — reverse-engineer the game to diagnose and eventually fix the bug.

Spoilers ahoy! Go read the website first if you’d like to follow [Chris]’s reversing efforts in the order that they actually happened.

The glitch is triggered by first killing most of the bees. When only six are left, they go into a second pattern where they swoop across the screen and wrap around the edges. While swooping, sometimes the bees will fire a shot when they’re at coordinates with X=0. Now two facts: there’s a maximum of eight missiles on the screen at any given time, and the position X=0 was reserved by the software to hide sprites that don’t need updating.

The end result is that eight missiles get stuck in a place where they never drop and don’t get drawn. No further shots are fired in the entire game. You win.

So that’s the punchline, but everyone knows that a good joke is in the telling. If you’re at all interested in learning reverse engineering, go read [Chris]’s explanations and work through them on your own.

And here’s our generic plug for Computer Archaeology:

Ancient video games run on MAME or similar emulators are the perfect playground for learning to reverse engineer; you can pause the machine, flip a bit in memory, and watch what happens next. Memory was expensive back then too, so the games themselves are small. (It’s not like trying to reverse engineer all however many jiggabytes of Microsoft Office.) The assembly languages for the old chips are small and well-documented, and most of the time you’ve also got a good dissasembler. What more could you ask for?

A walkthrough tutorial?  We’ve just given you one.

Oh and PS: If you get past level 255, the game freaks out.

Continue reading “Reverse Engineering Galaga to Fix the No-Fire Cheat”