KryoFlux - Host Software

2009-07-03

Created simple PC host program, and added status message reports for each command. The reports are always sent once the operation has been completed. The USB protocol acknowledges packets, but we use a higher level USB protocol stack (WinUSB) that hides all the low level protocol details.

Should the software be ported to other platforms it would probably use a higher level USB stack there too, just like it does on Windows. With low-level USB access on the host side, the completion status can be checked by looking for the acknowledgments. However, all the KryoFlux commands that implement the status report are high level ones (the only low level one is the bitstream bulk transfer itself once implemented) so the additional status traffic does not matter, and it has become convenient to know for sure that a command has been definitely completed when a status report is returned.

Firmware is automatically downloaded and executed. All the messages printed come from the firmware whenever it finishes a command.

Added drive initialisation sequence.

We intend to add host side implementation of track capacity checks (40..42/80...84 tracks etc), drive speed, etc. The same things you can check with CT (our Amiga-based dumping software). These are better implemented on the host side, the logic can be as complex as required on the PC, unlike in the firmware.

We will also look into possible data compression logic, again similar to CT. It can be much more complex on the PC than on the Amiga, so maybe we can keep file sizes relatively small. It doesn’t really matter, but worth a try. It would also help optimising the protocol if later required.