Fellow MSX-ers,
As MSX-ers we understand the power of standards-based hardware and software. This allowed us to use cartridges across 4 generations of MSX (I, II, II+, tR). And, thanks to an elegant BIOS that was extendable, it allowed us to write software on any machine from any vendor. So that we wouldn't feel stuck in the 80's, forever.
Just like the cartridge port was the standard connector for MSX. USB is the standard connector for actually everything these days. So why we don't have USB support yet?
In this spirit I created MSX USB. It is a combination of standard hardware and software that I would like to share with you.
The hardware is based on the CH376s and inspired by the RookieDrive created by Xavirompe. I made sure it works on any MSX and it fully supports the _BUSDIR signal so that it also works on Philips's. The schematics are posted on my GitHub. I guess you can also go out an buy a RookieDrive and use the software but I haven't tested this.
On the software side I want to work together with the community to create drivers for different USB powered devices. To make a jumpstart I already created:
- A USB flashdrive driver for NEXTOR. This enables us to connect any FAT32 volume and create multiple FAT16 images on it. Within MSX Basic you can switch between these images with the _INSERTDISK command. Uses the high-level API of the CH376s.
- A USB HID compliant keyboard driver. I am now able to connect my wireless Logitech keyboard to the MSX and use it in BASIC and DOS. Uses the sparsely documented low-level API of the CH376s.
- Various debugging tools, like CH376s interface and emulator for OpenMSX and CocoaMSX. This allows us to prototype things fast.
- C++ based test template to discover CH376s connected USB devices and test different USB protocols.
All of this is also present on my GitHub.
Are we done? Of course not! Next to improving the above mentioned drivers I intend to expand this and develop:
- USB Ethernet driver. UNAPI compliant of course.
- USB Serial driver.
- Any other suggestions?
So what do you think? Want to help me to support as much as possible USB devices on the MSX? Do you want to participate in the software development? Do you want to test and bug fix things? Or just have a cool idea to include?
Let me know!
Cheers,
Sourceror