IOMD ROM space saving
Steve Drain (222) 1620 posts |
A small contribution. ResourcesFS is unlike every other FS:
For those that have not noticed, the !RunLink for Alarm etc uses it to set PAGE.
Indeed. ;-) |
Charlotte Benton (8631) 168 posts |
Yeah, “get out of trouble” apps are fair enough. |
Steve Drain (222) 1620 posts |
I forgot:
|
David Pitt (3386) 1248 posts |
I thought to try CObey in an IOMD ROM. The builds are with DDE30a. 1. Vanilla IOMD romlinker: Warning: Insufficient space for ROM symbols romlinker: Image has 3005 bytes spare (2.93K) 2. IOMD with CObey replacing Obey romlinker: ROM image overflowed by -272 bytes ... HeroNames 3. IOMD with CObey but Paint and Draw removed romlinker: Image has 150567 bytes spare (147.04K) This ROM is now running in RPCEmu. |
Steve Pampling (1551) 8172 posts |
What if you allow the image size to be bigger? |
David Pitt (3386) 1248 posts |
Finally, an IOMD ROM with 32k HAL size, down from the current setting of 64K. romlinker: Warning: Insufficient space for ROM symbols romlinker: Image has 35709 bytes spare (34.87K) How not to achieve this has kept me entertained for weeks now. I got the 32K HALSize file sorted but the builds never showed any increase in space. Prompted by an iomd-diet branch now in git I had another go today, and (missing) the penny dropped. The Kernel start address needs to be lowered, explicitly, to occupy the freed 32K. HALSize needs specifying as 32K in the two Env files. IOMD.IOMDHAL.RiscOS.Env.ROOL.IOMD32 IOMD.IOMDHAL.RiscOS.Env.ROOL.IOMD32/sh An actual 32K HALSize file needs to be created and installed. (It is not present in DDE30a here.) IOMD.IOMDHAL.RiscOS.Export.APCS-32.Hdr.Global.HALSize.32K ; HAL Size definition for 32K HAL OSROM_HALSize * 32*1024 ; HAL Size in bytes END To actually get the 32K space the Kernel start address needs to be lowered from # Kernel is first module in ROM seen as the UtilityModule HAL_IOMD Kernel -at 0xFC008000 From the buld log. Module name Position in ROM Module size ----------- --------------- ----------- HAL_IOMD FC000000 00002ED0 Kernel FC008000 00036D08 Podule FC03ED08 00001FA8 Either due to, or in spite of, all of the above the built 4MB ROM is running on RPCemu. |