Friday, January 31, 2014

Retrochallenge Winter Warmup 2014 Success!

A few years ago, inspired by software disk drive emulators for the Epson PX-8 laptop computer, I set out to find a self-contained hardware/software combination that could serve as a portable drive. This would be a functional replacement for the PF-10 portable drive, which is unobtainium these days.

With the conclusion of this year's Retrochallenge Winter Warmup 2014, I'm quite a bit closer to the goal. The only thing missing is battery power, which I might be able to solve at some point.

Before going into gory details, here is a video of the drive emulator in action:

Now, the rest of the story...


The Epson PX-8 is one of the first notebook computers. It's a gem. For a long time, they were still available (recently) brand-new in box. Alas, the distributor is now out of stock. I used the PX-8 back in the day, and worked on the support team for them at Epson. I did an entire podcast episode on this computer, so have a listen if you'd like to learn more.

The centerpiece of the drive emulator project is the Raspberry Pi - a $35 single board Linux computer. You can do a LOT of stuff with it. If this fine device has not made it onto your radar as yet, have a look at these links:

Raspberry Pi on Wikipedia

Raspberry Pi Official Site

Slapped on top of the Raspberry Pi is another key ingredient - the PiFace Control and Display (PiFaceCAD). It is a combination of things designed to help you control your Raspberry Pi without requiring the standard KVM (keyboard/video/mouse) setup. Here's a picture, with credit to the distributor, Element14:

It has a backlit 16x2 LCD display, 5 pushbuttons plus a rocker/button combo on the back, an infrared remote control reader (which I did not use), and a socket which attaches to the I/O pins on top of the Raspberry Pi. You can program all the functionality with Python, as well as do some things from C. I used Python, given it has good support for calls to the operating system.

To round out the hardware, I used a FTDI USB to RS232 converter as the serial port to connect the Raspberry Pi with the Epson PX-8. The final connection to the PX-8 required a custom cable, a mini DIN 8 to DB9. I will provide more info on this in a future post, and you can also find info on building such cables at Fred J. Kraan's site for the PX-8.


There are two key pieces of software, plus some configuration, involved in making this all work.

First, credit again to Fred J. Kraan for the vfloppy software, a disk drive emulator and set of associated disk image management utilities for the Epson PX-8. The software is updated from time to time, and not too long ago, switched to a new disk image format to make it compatible with a PX-8 emulator.

The vfloppy program is a command-line tool, so I needed to instrument it somehow to work with the PiFace CAD. Python was the natural choice for the "glue" logic to create a UI on the LCD screen, and launch the software with the disk image selected by the user. The "subprocess" module in Python permits the invocation of processes, and then control of those processes throughout their life cycle.

So, in short, I wrote a Python program to:

  • Present a UI for the user to select a disk image
  • Monitor the PiFaceCAD buttons for interaction
  • Once an image was selected, run the vfloppy program and save the process ID
  • When user pressed "SELECT", stop the vfloppy program, and permit a new image selection, running vfloppy again once selected
  • Exit the program if "EXIT" is selected, and stop the vfloppy process

Writing the program wasn't the complete picture, however. The Raspberry Pi needed to run the program on boot-up. To accomplish this, I performed these steps:
  •  Created a new user on the Raspberry Pi
  • Added that user to groups as necessary to permit access to the Pi's I/O (gpio, spi)
  • Edited the user's startup shell script (~/.bashrc) to run the PF-2014 software on login
  • Set the Pi to auto-login the new user
With these settings in place, the Pi runs the software (which I call "PF-2014" in homage to the PF-10 disk drive for the PX-8) on startup. No hands or feet required.

I learned so much during this Retrochallenge, most notably about Python. I'll blog in a later post about some of the things I picked up (they're handy!).

Looking forward to the summer classic!

Friday, January 17, 2014

Chess Match Info!

The Commodore 64 versus Apple II chess match will air live tomorrow (Sat 1/17) at 1:00 PM Pacific, 4:00 PM Eastern.

Watch live at:

See you then!

Friday, January 10, 2014

A Nice Game of Chess?

In just over a week, my RCR co-host Carrington and I will throw our respective 8-bit computers into a no-holds-barred cage match. Yes - the Apple II, driven by Carrington "Snagglepuss" Vanston, and the Commodore 64, piloted by Earl "Huckleberry" Evans, will soon engage in mortal combat. Two will enter, but only one will emerge.

How shall they fight, you say? Why, using the Game of Kings, that crucible where only the truest bits are forged.


It is our plan to live-stream the game to the Internet. Stay tuned for more details on this!

- Earl

Sunday, December 29, 2013

Getting ready for Retrochallenge 2014 Winter Warmup

Hey there,

I'm beginning to pull together the materials and skillz needed to complete my entry for the Retrochallenge 2014 Winter Warmup.

My entry this time is a rerun. Once again, I seek to create a solution for an Epson PX-8 virtual disk drive, but with a twist. To recap the background and goals:

  • The Epson PX-8 is a laptop computer produced in the mid-80s. It has CP/M 2.2 in ROM, and an 80 by 8 bitmapped LCD display. It's a cute little laptop. (I used to be on the tech support team, hence my nostalgic love of the device.)
  • There are many brand-new PX-8 computers in the wild right now, thanks to the sales of NOS from Star Technology in Aurora, Colorado. Sadly, they are out of stock now, but many PX-8s made it out there, and are looking for a floppy device :-)
  • The original floppy solution for the PX-8 back in the day was the PF-10 portable disk drive. Even when the PX-8 was new, these drives were rare. I had one because I worked at Epson. But most people didn't. These days, a few people have them, but they are basically unobtainium. Check out some nice images on this blog post.
  • The PX-8 and PF-10 talk to each other over a defined protocol, and using a simple RS232 serial link at 38400 baud. This lends itself to emulation. A couple of software solutions are out there for emulation, including the recently-updated vfloppy software by Fred J Kraan.
  • Originally, I had considered writing software for the Parallax Propeller to emulate the drive, using published materials and the open-source vfloppy software as a guide. However, when the Raspberry Pi Linux-capable SBC came out, my thoughts changed. It seemed like a good idea to use the vfloppy software as-is, or perhaps with a few modifications, and the Raspberry Pi as the platform.
  • Turning the RasPi into a standalone appliance seemed like a challenge - you either need a full keyboard/mouse/monitor, or you need to terminal into the Pi somehow. However, add-ons to the rescue. PiFace makes an add-on for the Raspberry Pi called the Control and Display unit. It's awesome! It's a 16x2 backlit LCD with buttons and a rocker control, and it fits right on top of the Raspberry Pi, connecting to the GPIO pin headers. This allows local, finger-press control of the Pi without a full console setup. With this, I believe I can tweak the vfloppy software and make an appliance-style virtual drive for the PX-8. It still won't be battery-powered (yet), but it will be small, self-contained, and functional.
That's my plan. This time for sure!

Wednesday, May 22, 2013

Show 144 - Raiders of the Lost Shrinkwrap

In this episode, I take a meandering look at vintage computer collecting.

Also, I talk about the upcoming release of the first episodes of Next Without For, and Chicken Lips Radio.

- Earl

Sunday, April 7, 2013

Show 143 - An Interview with Bob Armstrong of Spare Time Gizmos

Hi there,

Show 143, an interview with Bob Armstrong of Spare Time Gizmos, has been posted on the Retrobits Podcast feed.

This was a really fun interview - it was neat to hear about the genesis of the SBC 6120 and the Elf 2K kits.

- Earl

Thursday, January 3, 2013

Reversi64 Development Underway

For Retrochallenge 2013 Winter Warmup, I've started in with the Reversi64 development. Here's a rundown:

Reversi64 is (will be) a networked two-player game of Reversi for the Commodore 64. It uses the Flyer Internet modem for communications. Once it's complete, I hope to roll it out for a couple of other Commodore platforms, including the Commodore C128 (in native mode), PET, and VIC-20.

My goal is to have a working prototype by the end of the month.

I've set up a website for tracking Reversi64 progress, including a dashboard of issues that I'm wrestling with, and potential solutions. It's at:

Some more screenshots and blog entries to come.