DivIDE Plus Flasher 0.1

Utility to flash any of the DivIDE Plus ROM banks from software.

DISCLAIMER:  While you can't damage your DivIDE Plus using this you can mess up you ROM image.  This can normally be recovered through the factory reset program included but there is a possibility you may need to reprogram using an EEPROM programmer.  I accept no liability for any loss of data as a result of using this utility.

Usage
-----
The principle of the software is to generate a database of 8k images that can be flashed to the DivIDE Plus.  This is necessary to allow the humble 48k Speccy to manage 512k ROM storage.

CRCs are used to ensure data integrity.  Some common firmware CRCs are defined within the utility and the correct names will be displayed where available.

Because of the need to store data, the utility requires to by run from ESXDOS (V0.85 or greater - tested up to v0.89)

Once a sector is defined (8 x 8k banks) it can be written to the ROM.  All programming is done for an entire sector as per the ROM datasheet.

There are several ways to populate a bank, these are
1) Read current ROM data
2) Read current Sector data (this just does the above for all 8 banks)
3) From a predefined file on the drive/card
4) From an image buffer

The image buffer used to populate the banks can be populated by
1) Loading an image from tape/tap
2) Loading an image from the drive/card
3) Copying an existign bank into the buffer
4) Clearing the buffer.

Interface
---------
The utility opens with a welcome/instruction screen
Controls are a mix of keyboard shortcuts and cursor

Cursor controls are
Q - Up
A - Down
O - Left
P - right
M - Select

Keys 0 through 7 select the sector to work on
Key 9 returns to the title screen

Sector Screen (keys 0 - 7)
--------------------------
The left hand side of the Sector shows the 8 banks within the sector.  A bank can be selected using the cursor and the current bank is highlighted.

The right hand side has the interface controls, all of these are operating using the cursor

List of interface control

Write Sector
------------
VERIFY - Checks that the CRCs of the files on the disk to be written, match those show on the screen.  This should always be checked before writing a sector.
WRITE  - Erases the entire sector and then writes all 8 banks

Load buffer from
----------------
TAPE  - Will search the tape (or tap file) for any 8k code files.  Will load the next one found into the buffer and display the CRC (and name if known)
HDD   - Will load the next 8k firmware file from disk.  The naming convention is 'FIRMWARE.000', 'FIRMWARE.001' etc.  When no more are found it will loop back to 000. 
BANK  - The selected bank is copied into the buffer
CLEAR - This clears the buffer to all 0xFF

Buffer
------
This displays the current file in the buffer.  For known firmwares it will display the name, otherwise in will show 'Unknown' however the software will use the CRC as an identifier. 

Populate bank from (this only populates the database - no changes are made to the ROM until WRITE is selected)
------------------
ROM    - The current bank is populated using the current image written to ROM
SECTOR - All banks in the sector are populated using the current ROM image
BUFFER - The image in the buffer to sent the the selected bank
HDD    - A specifically named file of the drive/card is loaded straight into the bank
	The naming convention is
	S0xB0x.bin
	Therefore to define a file for Sector 6 Bank 2 it should be names S06B02.BIN



Tips for use
------------
Copy for a FAT32 partition.  It will work on a FAT16 but as the tap length is over 64k I have had trouble with Tape Loading errors when trying to acccess the firmwares towards the end of the TAP file.

Copy into its own directory.  The utility generates a lots of files to keep track of everything so best to keep them all in their own area.

The utility needs to run from ESXDOS installed in the final bank.  If you are going to flash the final sector (sector 7) ensure that you include ESXDOS in bank 7.  The banks are written from 7 to 0 to try and ensure ESXDOS is presents for necessary system calls. This is fine if it is the same version of ESXDOS, if upgrading you may get ugly exit but only after the new version of ESXDOS has flashed so you should still be good to copy the updated files to the memory card and re-run the flasher.

You should always verify before writing a sector, this ensures the CRCs of the files on disk match those displayed on the screen.

The ROM can only erase entire sectors so the utility will always write all 8 banks of the selected sector (ROM requires sector be erased before writing so ensure correct data)

If it all goes wrong, the including factory reset will reinstall the default Firmwares.


Known issues
------------
On occasion ESXDOS seems to unmount the tap file and the TAPE load reverts to the EAR port. 