explit7 / Psion-ROM

Stock / Patched / upgraded ROM files for old Psion devices
14 stars 5 forks source link

PsiPsiROMx:Revo rom undumpable (to big to fit in memory) #1

Closed CO-Windler closed 1 year ago

CO-Windler commented 1 year ago

For preservation I need to dump the rom of my German Psion Revo, but it does not fit into memory. Starting PsiROMx.SIS throws the popup error "Not enough disk space". The German Revo firmware is multilingual and thus 16MB huge, but the device has only 8MB RAM (aka disk space) and no memory card slot.

The Revo is the Psion model that will likely extinct first due to its infamous soldered NiMH battery pack, which leak vapours will decompose the LCD when not removed in time, so in few years there may be no intact specimen anymore. My battery had corroded the voltage/IrDa PCB, and after removal I had to reflow the solder on the mainboard (with hot air station and plenty of flux) to make the display work again; the flimsy construction makes battery change an unpleasant ordeal. (A hinge spring peg was broken by fatigue, and mainboard removal needs special knowledge for not breaking the lid switch (I did). Someone had apparently superglued the battery plug inside my specimen and removing the silicone keyboard mat ripped a hole due to one firmly (super?)glued spot.) As a collector I soldered an external battery box (2x AAA NiMH) on a thin cable because it is not in regular use anyway and will be stored without. PDAs are barely considered exciting vintage collectables, so likely most specimen got already discarded or will silently die in drawers by lack of annoying continuous maintenance.

Is there a method to compress the data during extraction or directly transfer it to the connected PC (successfully running PsiWin 2.3.3 on Win98SE)? If not, please make a modded version of PsiROMx.SIS or give me a patch that dumps it in multiple parts (e.g. each 4MB) those can be individually transferred to PC (where they can be merged into 16MB again).

CO-Windler commented 1 year ago

I found out that there is a menu to set the range, but also found a strange memory leak bug.

PsiROMx shows dump defaults:

Start address 50000000 Size (KB) 8192 End address 50800000

But the German Psion Revo was claimed to have 16MB. So I tried to dump it in 4MB chunks.

Size (KB) 4096

Start address 50000000 50400000 50800000 (fail) 50C00000 (fail)

sys$rom1.bin = 50000000 to 50400000 sys$rom2.bin = 50400000 to 50800000

There should be 2 more of them, but it fails.

Bug??: Dump from 50800000 to 50C00000 produces a 0 bytes file but wastes 4MB as a memory leak. Deleting the file does not bring memory back. Apparently it corrupts the RAM file system. Trying to dump only 50800000 to 50A00000 (2048KB) produces the same 0KB file with memory leak. The only way to get memory back is doing a hard reset (i.e. delete entire RAM disk memory).

It turned out that according to the menu "Information/Computer", the model indeed has only each 8MB ROM and 8MB RAM, hence the rom dump likely caused a memory leak. So I merged both 4MB files with HxD back into 8MB, which looks correct.