Feature request: more CBM-like UltiDOS API
I have recently tried to implement Ultimate 64 specific fastloader for the open-source C64 ROMs project - code is here.The idea was to intercept LOAD calls to software IEC device on the Kernal level and read the file using the UltimateDOS API.
Unfortunately, I came across two issues:
- It seems there is no API to query device number the software IEC is configured for - so I don't know which device number my U64-specific LOAD routine should intercept
- (the more serious one) The CMD_OPEN_FILE seems to expect file name with path, there is no way to tell it 'open the file from the current software IEC directory'.
Would it be possible to extend the Ultimate DOS API to allow easier integration with Kernal routines?
The Software IEC and the UltiDOS are to separate things that should not be mixed. So these issues that you report are completely correct.
Your request to extend the Ultimate DOS API can be considered, but separately from SoftwareIEC. In fact, if you correctly use the Ultimate DOS API, you don't even need the IEC cable at all. For this to work, you will need to tell me the things that you are missing in the Ultimate DOS API. I think one of the things was already mentioned on Facebook, that is loading a directory in "$" format (resulting in a PRG that loads at 0401.) Another thing that needs to be tackled, but maybe system wide and not over and over again for every interface separately, is the conversion between PETSCII and ASCII. As you know, the filesystem of the Ultimate is ASCII based, and will remain like this.
- PETSCII/ASCII file name conversion from my point of view is a must, doing this on C64 side would probably occupy too much space, and maintaining it would be a nightmare if conversion changes on the U64 side in the future - just please keep in mind, that we don't really have free memory for storing the converted filename.
2.The "$" file would be of great help indeed.
- It would be nice to have a command interface (like channel 15 in IEC drives, to rename files, scratch them, etc.) - but it is not that necessary - ability to change the directories using PETSCII should be enough (this is something we just have to give to the user).
Looking at the latest release changelog ( "Hyperspeed file system access through UCI") and YouTube video by The Highlander - my request has just been fulfilled. I would just like to have the documentation available - the one in https://github.com/GideonZ/1541ultimate/tree/master/doc is very outdated.
Yes.. the documentation has been outdated. However, this old "DOS" interface still exists. So additional documentation is needed.