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
Wayne, I am wondering about this line from /Source/EZ512/Makefile:srec_cat $< -binary -exclude 0x13700 0x14A00 -fill 0xC9 0x13700 0x14A00 -o temp.upd -binaryIs this arg necessary-exclude 0x13700 0x14A00when the next arg fills that same segment of memory with C9's ?
-fill 0xC9 0x13700 0x14A00
While I understand the intent. However as soon as layout.inc is changed, it will come back to bite you. As a minimum this code need commenting, and layout.inc needs comments pointing to the line of code (above)However a slightly better approach (IMHO) - see post from Oct 2, 2025, 11:14:27 AM - In Short* Config Files could have options for Excluding each of selected apps, which could be considered optional, e.g. Tasty* layout.inc could use #ifdefs to exclude each section if config excludes it.* The assembler of the app code itself, can also use #ifdefs to generate a zero length binary - assumes !!! it is assembled and is part of hbios - which I know Tasty and Nascom are not.* romldr can also use #ifdefs to exclude the menu items.This seems like a bit of work, realistically may not be used by too many people, but it does give a way to claw back space if start getting close to 128Kb
#### Compressed ROM Image File
RCZ80_ez512_std_64k.rom
Regarding documentation, I think this should be added to (to Page 40) the RomWBW hardware.PDF document. I copied this from an earlier post of yours. Does it look accurate ?
Regarding documentation, I think this should be added to (to Page 40) the RomWBW hardware.PDF document. I copied this from an earlier post of yours. Does it look accurate ?
OK, I think I have this integrated into the RomWBW build now.If you look at the latest RomWBW Snapshot, you will see RCZ80_ez512_std_64k.rom in the Binary directory. I have tested this on my system, but would be happy to get feedback from others.
--
You received this message because you are subscribed to the Google Groups "retro-comp" group.
To unsubscribe from this group and stop receiving emails from it, send an email to retro-comp+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/retro-comp/797566ca-681f-422d-bae0-019b2fe863ebn%40googlegroups.com.

Very Nice, Bill!
At least You can say You didn’t cut corners on the design….. :>)
I’ll let Myself out now…..
Mark
From: retro...@googlegroups.com <retro...@googlegroups.com>
On Behalf Of Bill Shen
Sent: Wednesday, October 22, 2025 8:45 PM
To: retro-comp <retro...@googlegroups.com>
Subject: Re: [retro-comp] Re: EaZy80-RomWBW - EOL ?
I downloaded the latest RomWBW (master 3.6, dev 36) and checked out the much better process of compressing RomWBW to 64K ROM.  Compliment to Paul for raising the issue and Wayne for solving the problem in his
 systematic way.  I will check out the new compression process for John Winans' Z80retro.
I want to show a derivative of Eazy80-512 that is the same Eazy80-512 design except the RC2014 expansion bus and prototype area are removed so to fit in an Altoids can.  The design motivation is a JLCPCB shipping coupon that will expired soon so I made some
 blind assumptions about size of Altoids can and have 5 boards built and shipped for $7.   Received the pc board today; the board works, but won't fit inside the Altoids can because the corner radius is too sharp so the four corners sticking out too far.  I
 think I can move the components inward and round the corners more so it will fit.  Height wise, the SD daughter card is low enough that the lid can closed over the board with SD daughter card installed.  Current consumption is 100mA at 5V with 22MHz clock,
 so it can be powered with an USB-serial adapter outside of the Altoids can.  There you have it, RomWBW in Altoids!
Bill

To view this discussion visit https://groups.google.com/d/msgid/retro-comp/ba183bf8-89a6-4a62-a9a9-f341805c4f00n%40googlegroups.com.