So I thought I’d start documenting my CoCo programming projects on my website. (Inspired by Nick Marentes’s development blog of his cool upcoming game Gunstar). My main project is a disk utility that I am currently calling “RS09” (I may change it in the future). You may think “ANOTHER disk utility after all the ones made over the years?! Why?”. Well the main reason is because I’ve always been fascinated with disk formats and this project is the perfect way to learn all the ins and outs of CoCo hardware and 6809 assembly language.
The other reason is because this utility will support devices both old and new, physical floppy drives to CocoSDC, and it will support both DECB formatted disks and OS9 formatted ones. You’ll be able to copy files directly from one format to another, whether they are on an actual 5.25 inch floppy disk or a DSK image on the CocoSDC. There is an awesome tool that does the same kind of thing (and more) called MShell by Bill Pierce complete with a fancy GUI, but it requires you to be running OS9. My utility is completely STANDALONE. Everything is completely custom and written from scratch that talks directly to all the hardware. It doesn’t even use BASIC calls for things like keyboard. It uses a command-line oriented interface that will be customizable at some point. I originally started writing the code in C and compiling it with CMOC developed by Pierre Sarrazin, but as I got closer and closer to the hardware, it got more and more difficult. So I started re-writing everything I had so far in pure 6809 assembly. The CoCo development community has been a huge part of my endeavors, answering my endless questions about 6809 ASM and giving all kinds of great advice. They will all be getting a HUGE thank you in my credits when I finish the program. Anyways, here is a snapshot of my progress so far:
So far, in terms of functionality, I have directory listing, changing directories on OS9 disks, and various commands for controlling which disk format a drive number should use and which device to use for each. I’m currently working on the file copy part. I did a short demo video of this in action if you want to check it out. Thanks for reading. 🙂