tom-seddon / beeblink

A file storage system for the BBC Micro
GNU General Public License v3.0
16 stars 2 forks source link

SELFUPDATE UX improvements #126

Closed tom-seddon closed 11 months ago

tom-seddon commented 1 year ago

First off, use *SAVE to save old ROM to disk. Don't just leave it in RAM. This isn't much use if you get completely hosed, but at least you've got a copy of a known good version on your PC. Worst case, use the bootstrap process to get it back onto your beeb.

Secondly, use *SAVE to save new ROM to disk. No reason not to!

Then, if the bank isn't writeable, don't just quit automatically. Ask what to do. 4 options:

  1. Try again. Use case here is that user gets an opportunity to flip their sideways RAM write enable hardware switch or whatever
  2. Use RTOOL to overwrite. Generate EXEC-friendly file that does L<<filename>> then P<<bank>> then Q, then EXEC it and CHAIN RTOOL. Use case here is that the BLFS is in an RTOOL-friendly EEPROM/flash device
  3. Run RTOOL. Let the user sort it out. Maybe do the EXEC thing with just L<<filename>> so the new ROM is already loaded?
  4. Quit. Let the user do whatever.
tom-seddon commented 1 year ago

When updating the ROM, SELFUPDATE swaps the old and new ROMs. When all goes well, you end up with the new ROM in the ROM bank, and the old ROM in RAM (hopefully where RTOOL can find it). My thinking here was that if you find any obvious immediate problems, and your BBC B has no other FS, and you've still got RTOOL in the EEPROM/flash bank, you can do *ROM then CHAIN"RTOOL" then P to restore the old version.

I don't think this is actually all that useful though.

tom-seddon commented 11 months ago

Got some corrupted ROM images from toggling the write protect switch while the system was running. Might be cartridge-specific? Anyway, decided to leave this as-is.