As promised, a version of the in-place flasher and editing tool (uFLASH) for testing:
I've just spent half an hour or so testing this build on three Ultimate machines and an Incognito equipped 800, with no bricking so far. However, I fully expect there to be one or two (possibly significant) bugs which haven't surfaced yet, so if you don't have recourse to an external programmer, you might want to wait until some who do have tested the utility - at least if you're thinking of flashing the main BIOS or SDX. Other slots aren't so critical: after all, as long as the BIOS and SDX work, you can usually recover a bad flash.
That said, I've had no failed flashes at all so far (the program uses Candle's own JEDEC flash library, which is "guaranteed bug free"), and there are a number of safety checks built into the program to ensure the wrong content never gets flashed to critical regions of the ROM.
Most pleasingly, you can edit the slot names (XEGS, OS and BASIC slots in Ultimate, and Colleen and XL/XE OS slots in Incognito) and these will never be lost until you flash the chip using some other utility. Even if you flash a new main BIOS, the existing slot descriptions are merged into the new ROM. Import/export description facilities (pretty trivial) will be added later, so the descriptions can be stored in plain text files.
You can also dump slots to disk, which is particularly handy for testing: dump the slot, reflash using the dump, etc. Dumping the SDX slot to a SIDE partition and reflashing it gives an idea of how quickly 256KB of data can be chewed through when everything's held in RAM. When dumping a file, select the target drive using the drop down, then tab across to the filename box at the top, and type the filename and extender WITHOUT the drive ID in front.
What's not working/finished yet:
- Dump entire ROM to disk
- Slot properties (PBI version, slot geometry report, etc)
- Import/export descriptions
- File selector auto-sensing the SDX default drive
- Mandatory reboots after flashing critical ROM content
- Separate flashing of the Ultimate BIOS and SIDE loader (it's currently assumed they're concatenated into a single 32KB file; if it's better to have them separate, let me know and I'll change it)
- Prototype Incognito support
Read that last one twice: don't use this with proto Incognito boards. Support can be added later if required, but it isn't there yet.
Auto-sensing of the hardware (i.e. Ultimate or Incognito) is currently performed via the BIOS ID string, so isn't 100 per cent foolproof. Unfortunately I haven't figured out a way to ID the hardware using only the hardware yet.
Before running the program, you should enable SDX and extended RAM. If you enable 1MB of RAM, there's less chance of the cache (which consumes up to 256KB) wiping out the SDX banks, although you should really reboot anyway following most flash sessions. In addition, SDX should be using BANKED RAM, since uFLASH runs the OS in RAM so that flashing the active OS slot won't cause a lock-up.
I'll add all these refinements (reboot warnings, SDX OSRAM detection, etc) over the next few days. The file selector also needs quite a bit of tidying up and bug-fixing.
Finally, a really nice bonus is that you can run uFLASH from Candle's latest (stand-alone, disk-based) XEX loader... or at least you will be, once a very minor bug in his (excellent) mini FAT-DOS has been corrected, which results in short reads. But when testing the combo the other night, I got a glimpse of what's possible: put UFLASH.XEX and all the ROM files in the FAT32 partition of the CF card, boot the loader, run uFLASH, and load the images right off the FAT.
In any case, you could do the same thing using KMK's FATFS driver using a FAT16 partition (prepared using the latest APT FDISK), or just copy the ROMs into an APT partition. In all cases, it's significantly faster that loading the ROMs from a serial device.
Anyone who tries this program and finds a problem - please report it here ASAP for the benefit of others.
Edited by flashjazzcat, Wed Jan 15, 2014 5:16 PM.