GideonZ / 1541ultimate

Official GIT archive of 1541 ultimate II sources
GNU General Public License v3.0
173 stars 45 forks source link

Feature request: Remember last mounted disk option #350

Open DeeKay64 opened 1 year ago

DeeKay64 commented 1 year ago

Since every possible aspect of a real 15x1 drive is emulated, from sound, head movement, IEC command set, code execution, timing, disk structure etc., it would make sense that the behaviour that the disk remains in the drive when you switch off the computer is emulated, too. This adds quite some convenience, some examples: 1) You're working on something (code, gfx, music) and have your workdisk ready "in the drive" upon switching on your c64 2) You're playing a game (that allows saving) and want to continue playing after switching on without having to traverse through a directory tree looking for the right .d64 first. 3) You're going through a directory tree of games or demos, playing or watching all of them, and can immediately continue where you left off after switching on again.

Structure: filename should be .lastmount, it should be a plain textfile with the path and the disk image (.d64, .d71, .d81 - possibly .t64 and prg, too), possibly with optional flags for future use afterwards (e.g. w=write protected, or 8=drive number?). If the file is not found, it's simply ignored (no error message!) and the 1541U/U64 behaves as it does now.

The automount should run on machine start and upon inserting of new media (the latter should be optional!)

It should be optional (and configurable) where the .lastmount file is saved: Directly onto the root of the medium (USB, SD) itself or in /flash on the cartridge. The medium itself would make sense because it saves write cycles to the internal flash and also because you could just swap disks by simply swapping USB sticks (think: Copying a new build over to try on real hardware using 2 USB sticks that you constantly swap!). Ofcourse when saving to flash, there can only be one .lastmount for all media!

Feature should be optional, default should be off.