Hi
I've dug out my DivIDE Plus and have been playing around with it for a bit, trying to see if I could make better use of the 512k ROM. Anyway, one thing led to another and I ended up writing some software to let you flash any of the banks.
Usual disclaimer, use at your own risk, but it seems pretty reliable for me. If you do mess up your ROM there is a separate file included to restore to factory settings (FATware, DEMFIR & ESXDOS 0.85). The worst that can happen it that you might need to reprogram using an EEPROM programmer.
Anyway, I've attached the files. I've only tested on a 48k spectrum, however the only ROM routines called are the Tape Loader and there are other ways (see readme) to load files if needed.
Enjoy (if anyone actually needs/uses it), and let me know of any bugs you find or general comments you have.
Cheers
Dave
New DivIDE Plus Flasher
New DivIDE Plus Flasher
- Attachments
-
- flash.zip
- (58.73 KiB) Downloaded 3996 times
Re: New DivIDE Plus Flasher
I should say that it incorporates code I've studied from other sources such as the Firmware Selector flasher and the original DivIDE flasher so I hope that's ok. I will upload my sources to GitHub soon.
Re: New DivIDE Plus Flasher
where do you get the files to use with the flasher?
Re: New DivIDE Plus Flasher
The files are just 8k binary images. There are some standard ones such as esxdos you can find here https://esxdos.org/index.html (use the esxide.bin file). Otherwise any 8k rom should work in standard DivIDE mode. This is where you select the rom/firmware to run using out 23,x and the print usr 0.
The Out command sets the firmware location from 0x00=0x06000 (ie sector 0 bank 3) through 0x1e=0x7e000 (ie sector 7 bank 7). The formula is for the Out is 'x' times 0x4000 + 0x6000. Valid numbers for 'x' are 0 through 30 (0x1e).
If you want to run a 16k rom you will need a short machine code routine, this is because you needs to replace the spectrum ROM so basic won't be available. I think it can be as simple as
OUT 0x17,x ;(0x17 is the same as Out 23,x)
JP 0x0000
Values for x are different as you need to put the DivIDE Plus into ROM Mode so the value needs to be %100aaaaa ('a' being the EEPROM address) this allows you to access 32 different 16k banks. Eg, if you used value %10010000 (0x90) you would be selecting the 16k bank at EEPROM address 0x40000 which would be Banks 0 and 1 of Sector 4 in the flasher tool. You would needs to split the 16k binary image into two 8k images and flash them to the appropriate banks.
I hope this makes sense
Dave
The Out command sets the firmware location from 0x00=0x06000 (ie sector 0 bank 3) through 0x1e=0x7e000 (ie sector 7 bank 7). The formula is for the Out is 'x' times 0x4000 + 0x6000. Valid numbers for 'x' are 0 through 30 (0x1e).
If you want to run a 16k rom you will need a short machine code routine, this is because you needs to replace the spectrum ROM so basic won't be available. I think it can be as simple as
OUT 0x17,x ;(0x17 is the same as Out 23,x)
JP 0x0000
Values for x are different as you need to put the DivIDE Plus into ROM Mode so the value needs to be %100aaaaa ('a' being the EEPROM address) this allows you to access 32 different 16k banks. Eg, if you used value %10010000 (0x90) you would be selecting the 16k bank at EEPROM address 0x40000 which would be Banks 0 and 1 of Sector 4 in the flasher tool. You would needs to split the 16k binary image into two 8k images and flash them to the appropriate banks.
I hope this makes sense
Dave