Firmware Selector V2.0

Talk on the DivIDE Plus Hard disk interface for the Sinclair ZX Spectrum, including manual updates and FAQs
Post Reply
dave18
Posts: 17
Joined: Tue Dec 20, 2016 10:57 am

Firmware Selector V2.0

Post by dave18 »

All

I've updated the Firmware Selector to V2.0.

Changes
More flexible menu system, allowing people to easily compile custom menus
Separate menu pages for Standard DivIDE mode, MAPROM mode and MAPRAM mode
Menus will scroll if more than 7 items in a menu
Warm boot uses XOR checksum for better integrity check of variable space
Input keys remapped to cover both Sinclair 1 & 2 (plus QAOP Enter)

The flexibility allows users to populate up to 15 standard banks (these are banks 3 and 7 in each sector). bank 3 in sector 0 is reserved for the firmware select itself. You can also make use of the 16k blocks at bank 0 and 4 to load firmwares or other roms such as alternative basics or diagnositic roms, These are accessed through the MAPROM page. Finally there is a page to boot into MAPRAM firmwares such as ResiDOS.

Menu navigation is left/right select Firmware Type, up/down select actual Firmware and Fire to boot.

Controls are
Left Right Up Down Fire
Sinc 1 1 2 4 3 5
Sinc 2 6 7 9 8 0
Keys O P Q A Enter

Source code is included as you will need to alter tables at the end and reassemble to create your own menus. I use PASMO (pasmo --bin FirmwareSelector20.asm s00b03.bin) and the flash using the software flashing tool.

Enjoy

Dave
Attachments
FirmwareSelectorv20.zip
(10.41 KiB) Downloaded 7010 times

dave18
Posts: 17
Joined: Tue Dec 20, 2016 10:57 am

Re: Firmware Selector V2.0

Post by dave18 »

To further explain how the 'slots' work and how they relates to the sectors/banks on the flasher tool it is important to understand how the DivIDE Plus maps it 512k ROM/RAM

In standard mode the 512k is broken up into 16 x 32k blocks. It is however the last 8k within each 32k block that is actually mapped to the spectrum. Therefore the 16 banks available are Sector 0, Bank 3, Sector 0, Bank 7, Sector 1, Bank 3, Sector 1, Bank 7 etc through to Sector 7, Bank 7.
This gives 16 8k slots although Sector 0, Bank 3 is where the firmware selector resides so that leaves 15 for other firmwares. The slots are even numbered only so the 16 slots are 0, 2, 4, 6 ,8 ... through to 30. These numbers match to the numbers used in the out 23,x command in Basic to select the various firmwares.

In MAPROM (ROM Mode in the DivIDE Plus manual) the 512k is broken out into 32 x 16k blocks. Each block covers 2 banks, ie block 0 is Sector 0, banks 0 & 1, block 1 is Sector 0 banks 2 & 3 and so on. The slot numbers for these are simply 0 to 31. The odd numbered slots have the potential to clash with the banks containing the standard firmwares above, but even if all 16 of those are full there are still 16 x 16k rom slots available (the even numbered slots). This unlocks a huge benefit from the DivIDE Plus for having Diagnostic Roms, Alternative Basic Roms and even 16K Game Roms sat alongside the firmwares.

In MAPRAM (RAM Mode in the DivIDE Plus manual) provides another 32 x 16k blocks but this time in (battery backed up) RAM. Some firmwares might write to their respective RAM blocks so you do need to be careful about where you store stuff, and if you install ResiDOS and TaskMan I think they can also write to a lot of the RAM, however it just provides another level of flexibility. Obviously if the battery fails you will lose whatever is in RAM (although you can back it up an restore it using my Ram Manager program).

I hope the above provides a bit of insight into how the DivIDE Plus work and why having a customisable Firmware Selector should be useful.

Dave

Edit. Mixed up the odd/even slots in the MAPROM paragraph

agenorgomes
Posts: 1
Joined: Wed Feb 28, 2024 5:42 pm

Re: Firmware Selector V2.0

Post by agenorgomes »

Hi how are you, I have a DIVIDE PLUS and every time I flash this version the DIVIDE crashes and I have to recover it. Do you know what it could be? I have version 1.3a installed. thanks.

Post Reply