After compressing the 128K file to fit into a 64K ROM, I checked the resulting binary with a hex editor to see how much free space was left. Oh dear, the compressed code had written past $FF00, the start location of the appended Z80 code decompressor!
After studying this file for some time and trying some modifications without getting anywhere, I got yet another idea! Open the *.upd file in a hex editor and simply replace the program code to be exorcised with $00 or $FF. Locations $3700 to $49FF, where 'Tasty BASIC' and 'Play a Game' had lived, were now $FF. Compressing the file once again left me with nearly 1600 bytes free :-)
But in the 'HELP' menu, two items I tried didn't work right. 'Device Inventory' returned nothing, and what was worse, 'Slice Inventory' caused the computer to hang!
Thanks for checking out whether the latest RomWBW can be compressed into 64 KB flash. I’ll study it more, my first thought is developing an Eazy80 configuration that turns off as many RomWBW features as possible to see if that’ll fit. It is entirely possible and even expected that later versions of RomWBW will not fit. I’ve went through many generations of PC since 1989 because memory were no longer big enough to work with latest OS, or some other incompatibility. (This is why I still use Windows ME to lay out pc boards). Not too surprising to me the maverick Eazy80 design may not work with the latest RomWBW. Maybe there are other solutions…
Regarding W27C512 not 45nS parts, I’ve encountered the same problem. Most of them are -45, but some are functional but clearly not fast enough. My observations are only top sides are re-labeled, the bottom sides are always the original, so when you have a tube of parts with same date codes, check the bottom for different markings.
Bill
This utility is quite new, while it is possible patching the Rom manually caused the issue, it is possible the app has an issue with your setup.
"Second, the "broken" menu items occupy space after the space you cleared. I would double check that you did not clear beyond the intended area."I'm afraid you really got me confused here. In file 'Source/HBIOS/layout.inc', the section "ROM BANK 2 (BID_IMG1) LAYOUT (ROM2.BIN)" shows the programs in BANK 2 are linked as follows:
CAMEL FORTH -> NASCOM BASIC -> TASTYBASIC -> GAME 2048 -> EASTER EGG -> NETWORK BOOT -> ROM UPDATER -> NVRAM CONFIG -> USER
(After that section come the linked programs for "ROM BANK 3 (BID_IMG2) LAYOUT (ROM3.BIN)")
So if I understand that section of 'layout.inc' right, 'EASTER EGG' should follow 'GAME 2048', and I haven't changed any of the code in EASTER EGG, which it still runs fine. I used 'okteta', a graphical hex editor in Linux, to replace the program code where I found the locations of TASTY BASIC and GAME 2048 ($13700 to $149FF in the *.upd file) with $FF. Location $14A00 is the start of the Mandelbrot program (EASTER EGG).
But BANK 2 doesn't seem to reference the "broken" menu items, i.e. 'Device Inventory' & 'Slice Inventory' at all.
"The "broken" items now live in that fourth bank."Hmm, 'layout.inc' has 'Device Inventory' & 'Slice Inventory' in BANK 3. ??
I decompressed the binary that I used to flash the ROM and got a file identical to the *.upd that I had modified.I also lowered the EaZy80 osc frequency to 22MHz just in case, but it made no difference.However I need to correct what I wrote about typing 'S' in the menu. It *will* return to the menu, but just the first time it's typed. The second time will definitely hang the computer.I'm out of any more ideas :(
Mark, you said"In essence the only long term solution would be to remove apps considered lower priority."
Yes, I agree. Perhaps the only built-into-ROM program should be NASCOM BASIC. That would make a RomWBW computer without any external drives still able to run *BASIC*. Now that's retro!!
As a fallback solution, prior to compression/decompression, there was a simple SD/CF read routine to load the RomWBW binary saved in the 1 megabyte reserved area in the CF and SD. The RomWBW load routine works well for CF, but somewhat slow for SD because of bitbang interface. If all failed, loading RomWBW from SD is still an option, especially when Eazy80 is running at 29.5mhz.
Bill
On Fri, 10 Oct 2025 at 04:27, Mark Pruden <mark....@gmail.com> wrote:
"Looks OK to me. You will need to create a PR for @wayne to approve."
A nooby question I'm afraid. How do I create a "PR" and where is "@wayne" ?
"IMHO
* keeping the output file "RCZ80_ez512_std_rom64k.rom" seperate to the "RCZ80_ez512_std.rom" is better, as it makes it explicit. i.e. a build system that replaces a file, how do you know if the file was replaced or not, you just copy the file, and might get the uncompressed version."
Yes, good point to give the file a unique name
After a bit of pondering, it occurred to me that other boards having only 64k ROM onboard might also be able to run RomWBW if compression was used.
As a result I've renamed 'comp_ez512' to 'compress_upd' and modified it to accept a *.upd (or other) input file. The program then makes an attempt to fit the code into a 64k ROM. If successful, if outputs a 64k binary file with the name of the input file (minus extension) + "_64k.rom".
ex. 'compress_upd RCZ80_ez512_std.upd' would output, if compression was successful, the file 'RCZ80_ez512_std_64k.rom' plus exit code '0'.
This program should easily fit into a batch file. Source files are attached.
https://groups.google.com/g/retro-comp/c/6p2iAUDaZ-g/m/ul-ZoRUsAQAJ
There are other RomWBW-capable designs with tiny ROM, but they generally have CF disk, RomWBW can be stored in CF and quickly copied into RAM. In case of 3VZ180 which has SD card and a tiny ROM, Z180’s SPI interface is very fast, so I still can copy RomWBW from SD to RAM fairly quickly. The only exception is 3VZ80 that has tiny ROM, SD card, and bit-bang SPI, so its only option is bit-bang copying RomWBW from SD card to RAM which takes 6-7 seconds at 16Mhz. That’s is the slowest implementation of RomWBW.
Bill
The other Z80 SBC that benefited from the updated compression/decompression scheme is Z80Retro! By John Winans. It also has 64K ROM and SD card for storage. Earlier I have successfully compressed older version of RomWBW for Z80retro. I’ll try the updated compression method when I have a bit more time.https://groups.google.com/g/retro-comp/c/6p2iAUDaZ-g/m/ul-ZoRUsAQAJ