Monday, 19 October 2009

And now....with USB!

Been too busy recently to do much with this but had a couple of mammoth wirewrapping and code hacking sessions this last week.

What I've done is add a Vinculum VDIP2 module. This makes interfacing with USB storage devices (and other USB devices) a doddle, it's got its own firmware that handles all the FAT32 misery and just presents you with a few simple APIs to open, seek, read, write bytes to and from files etc.

I was given the inspiration by RetroClinic's DataCentre interface for the BBC Micro. This lets you fill up a USB stick with all your favourite games as disk images and use them from the BBC just like normal disks.

So far I've kept the interface dead simple, and use a PIO and bit-banging to do all the bus signals, though I'll probably have a go at marrying this up closer to the z80 bus directly to speed up larger transfers. (Though it only takes a couple of seconds to load up a full 32k)

The biggest challenge has been to port CP/M. There's not a lot of room in the BIOS area to fit in all the stuff I'd like so I think I may have to cheat and move some of the code for accessing the Vinculum into ROM to free up a bit more RAM and allow for a little image file selection menu.

Anyway here's a couple screen shots of CP/M 2.2 running (via a serial link). It's read-only so far, though to save me constanly corrupting my usb sticks when I make a mistake!