RISC OS 3.20 ROM's?

Arc/RPCs, peripherals, RISCOS operating system & ARM kit eg GP2x, BeagleBoard
sirbod
Posts: 836
Joined: Mon Apr 09, 2012 8:44 am
Location: Essex
Contact:

Re: RISC OS 3.20 ROM's?

Post by sirbod » Fri Dec 01, 2017 4:11 am

Do people want NewLook included in the ROM? Comparison screenshots:
Default.png
Default RISC OS 3.1x look
NewLook.png
Proposed RISC OS 3.20 look
The background texture can turned off, or the whole effect can be turned off, so you can revert to the original RISC OS 3.11 look if you wish.

As quite a few Modules changed between 3.11 and 3.19, I'm going to attempt to base 3.20 off 3.19, but use Messages from 3.11 for English. Assuming that works, if there's a requirement for a native German version (or any other language for that matter), that can either be covered by softloading a regionalised Messages Module, or creating a bespoke ROM with the regionalised Messages Module in it.

Note that some translation work would be required for languages other than English, as several Messages text files need replacing. I'm not sure how easy that is, as some are in PrettyPrint format and I'm not sure if there's an editor available that does the conversion to/from readable text.

I've got as far as building a ROM image, minus updated CLib, FPEmulator, all C apps/Modules and no Wish list items. I still need to write the program to create the Messages Module and figure out how to create the ROM checksums. It doesn't actually POST yet, which I'm hoping is down to the checksums being incorrect.

User avatar
danielj
Posts: 6284
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester
Contact:

Re: RISC OS 3.20 ROM's?

Post by danielj » Fri Dec 01, 2017 6:51 am

The nested window manager is the most important thing, isn't it? Newlook does seem to slow down the older machines a bit. But as you say, it can be turned off. Depends on space I guess!

sirbod
Posts: 836
Joined: Mon Apr 09, 2012 8:44 am
Location: Essex
Contact:

Re: RISC OS 3.20 ROM's?

Post by sirbod » Fri Dec 01, 2017 7:49 am

danielj wrote:The nested window manager is the most important thing, isn't it?
You'll have to enlighten me...what's the nested window manager?

User avatar
daveejhitchins
Posts: 4190
Joined: Wed Jun 13, 2012 5:23 pm
Location: Newton Aycliffe, County Durham
Contact:

Re: RISC OS 3.20 ROM's?

Post by daveejhitchins » Fri Dec 01, 2017 8:15 am

I always liked the New-Look. Perhaps the option to turn-on rather than turn-off?

Dave H :D
Parts: UM6502CE, GAL22V10D, GAL16V8D, AS6C62256A, TC514400AZ, WD1772, R6522, TMS27C512, AT28C256
Products: ARA II, ABR, ATI, AP6, MGC, AP5 . . .
For a price list, contact me at: Retro Hardware AT dave ej hitchins DOT plus DOT com

sirbod
Posts: 836
Joined: Mon Apr 09, 2012 8:44 am
Location: Essex
Contact:

Re: RISC OS 3.20 ROM's?

Post by sirbod » Fri Dec 01, 2017 9:37 am

daveejhitchins wrote:I always liked the New-Look. Perhaps the option to turn-on rather than turn-off?
It will be off by default. If people want it added, I'll need to code another Module to add a *Configure item and find some free bits in CMOS to store the configuration state.

At the minute it's somewhat academic as there's not enough free space in the ROM to fit the NewLook Module in.

sirbod
Posts: 836
Joined: Mon Apr 09, 2012 8:44 am
Location: Essex
Contact:

Re: RISC OS 3.20 ROM's?

Post by sirbod » Fri Dec 01, 2017 9:59 am

Phlamethrower wrote:The last 12 bytes of a RISC OS 2/3 ROM image should be:
  • Negative checksum (one word)
  • 64bit checksum (two words)
For how they're calculated, it's probably best to look at romlinker.
Is that code correct? It appears to write the same word twice for the 64 bit CRC.

User avatar
danielj
Posts: 6284
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester
Contact:

Re: RISC OS 3.20 ROM's?

Post by danielj » Fri Dec 01, 2017 10:34 am

sirbod wrote:
danielj wrote:The nested window manager is the most important thing, isn't it?
You'll have to enlighten me...what's the nested window manager?
Does this help? (I'm just sort of spouting words I've heard, errors I've encountered and nuggets I've ingested)

http://www.vigay.com/inet/acorn/nested.html

d.

Phlamethrower
Posts: 52
Joined: Fri Nov 24, 2017 1:35 pm
Contact:

Re: RISC OS 3.20 ROM's?

Post by Phlamethrower » Fri Dec 01, 2017 10:37 am

sirbod wrote:
Phlamethrower wrote:The last 12 bytes of a RISC OS 2/3 ROM image should be:
  • Negative checksum (one word)
  • 64bit checksum (two words)
For how they're calculated, it's probably best to look at romlinker.
Is that code correct? It appears to write the same word twice for the 64 bit CRC.
That code certainly confused me the first time I saw it, but looking at it a bit closer now (and after reading some of the threads here about the ROM chips in early machines) I think I understand what's going in.

The code is calculating four 16-bit CRCs and writing them out in an interleaved fashion. So if you had a machine with four 8-bit ROM chips arranged in parallel, each ROM chip would have its own CRC16 in the last two bytes (with the CRC only being calculated from the bytes contained in that chip).

There's also the extra bit of confusion that the CRCs get updated while the CRCs are being written out. Whether that makes sense or not is another matter (at the least, I'd guess that it'll make it harder to manually verify the CRC if you got your hands on a dump of an 8-bit ROM chip)

sirbod
Posts: 836
Joined: Mon Apr 09, 2012 8:44 am
Location: Essex
Contact:

Re: RISC OS 3.20 ROM's?

Post by sirbod » Fri Dec 01, 2017 10:54 am

sirbod wrote:I've got as far as building a ROM image, minus updated CLib, FPEmulator, all C apps/Modules and no Wish list items. I still need to write the program to create the Messages Module and figure out how to create the ROM checksums. It doesn't actually POST yet, which I'm hoping is down to the checksums being incorrect.
It now boots, but I've had to remove CallASWI. The CRC's don't appear to matter under emulation.

I've not looked at what CallASWI is doing during init, but guess it's not suitable for ROM and possibly needs a special build.

User avatar
flibble
Posts: 640
Joined: Tue Sep 22, 2009 10:29 am
Contact:

Re: RISC OS 3.20 ROM's?

Post by flibble » Fri Dec 01, 2017 4:22 pm

Got in touch with qUE, here is the ROMBuilder app.
ROMBUILD.zip
(5.86 KiB) Downloaded 23 times
Note, extension is zip, but is probably an arcfs file.

User avatar
flibble
Posts: 640
Joined: Tue Sep 22, 2009 10:29 am
Contact:

Re: RISC OS 3.20 ROM's?

Post by flibble » Fri Dec 01, 2017 4:29 pm

sirbod wrote:
danielj wrote:The nested window manager is the most important thing, isn't it?
You'll have to enlighten me...what's the nested window manager?
Window Manager 3.98, included in the Universal Boot. The last officially supported wimp for 3.1x from acorn, it was needed to run !Browse etc. I think in your post you suggested using the one from ROOL which is 5.something. 3.98 gave 3.1 outline fonts and textured window background which it had never had before (excluding registered developer releases).

Giving it outline fonts however showed up a bug in the Filer when displaying 'Full Info', a mix of system font and outline font. In my rom I fixed this by adding a new version of the Filer module (bundled with regdev release 3.37 of the wimp), basically anything from RISC OS 3.5 filer onwards is fine.

sirbod
Posts: 836
Joined: Mon Apr 09, 2012 8:44 am
Location: Essex
Contact:

Re: RISC OS 3.20 ROM's?

Post by sirbod » Fri Dec 01, 2017 7:51 pm

flibble wrote:Giving it outline fonts however showed up a bug in the Filer when displaying 'Full Info', a mix of system font and outline font. In my rom I fixed this by adding a new version of the Filer module (bundled with regdev release 3.37 of the wimp), basically anything from RISC OS 3.5 filer onwards is fine.
I'll need to update Filer then, do we want the last Acorn release from RISC OS 3.71? Assuming it's ARM2 compatible of course.

User avatar
flibble
Posts: 640
Joined: Tue Sep 22, 2009 10:29 am
Contact:

Re: RISC OS 3.20 ROM's?

Post by flibble » Fri Dec 01, 2017 8:16 pm

sirbod wrote:
flibble wrote:Giving it outline fonts however showed up a bug in the Filer when displaying 'Full Info', a mix of system font and outline font. In my rom I fixed this by adding a new version of the Filer module (bundled with regdev release 3.37 of the wimp), basically anything from RISC OS 3.5 filer onwards is fine.
I'll need to update Filer then, do we want the last Acorn release from RISC OS 3.71? Assuming it's ARM2 compatible of course.
I used version 1.72 of filer, which was between 3.1 and 3.5. Attached.

https://www.riscosopen.org/viewer/view/ ... xt%2Fplain
https://www.marutan.net/db/modules.php?kModule=34
Filer172,ffa.zip
(17.17 KiB) Downloaded 14 times

richw
Posts: 38
Joined: Tue Oct 28, 2014 9:54 pm
Contact:

Re: RISC OS 3.20 ROM's?

Post by richw » Fri Dec 01, 2017 11:06 pm

sirbod wrote:
daveejhitchins wrote:I always liked the New-Look. Perhaps the option to turn-on rather than turn-off?
It will be off by default. If people want it added, I'll need to code another Module to add a *Configure item and find some free bits in CMOS to store the configuration state.

At the minute it's somewhat academic as there's not enough free space in the ROM to fit the NewLook Module in.
What do you mean by the 'NewLook module'? ROMApps3D? That is just a bunch of ResourceFS patches, so a new ROM wouldn't need it. There must be a way to baked-in the related Templates, IconSprites and ToolSprites 'for free'. A config option sounds a bother, as you would also need to double up on these resources.

Depends on how slick you can get the build process, but maybe there is scope for multiple flavours? Or if the entire system is open, people can roll their own?

sirbod
Posts: 836
Joined: Mon Apr 09, 2012 8:44 am
Location: Essex
Contact:

Re: RISC OS 3.20 ROM's?

Post by sirbod » Sat Dec 02, 2017 9:05 am

flibble wrote:I used version 1.72 of filer, which was between 3.1 and 3.5.]
Thanks, I've added it to the build.
richw wrote:What do you mean by the 'NewLook module'? ROMApps3D? That is just a bunch of ResourceFS patches, so a new ROM wouldn't need it.
"NewLook" as Acorn called it, consists of a configuration app and a Module "ROMApps3D". You need both, which combined are over 400K and won't fit into the ROM image.

If we split the app and the Module up and put the app in $.Apps, then the Module itself is 88K. It can't be merged into Messages as you need the ability to disable it via *Unplug.

I've yet to figure out how to fit in some of the key "Wish list" items, so realistically I think "NewLook" will have to be bundled with the accompanying Apps and !System updates.
richw wrote:if the entire system is open, people can roll their own?
I'll make everything available, once it's complete. We're a long way from that however, as I've yet to code various bits and still have no idea how we're going to go about creating ROM builds of CLib, FPEmulator and all the C based Apps/Modules.
sirbod wrote:I've not looked at what CallASWI is doing during init, but guess it's not suitable for ROM and possibly needs a special build.
CallASWI doesn't currently support running from ROM as it writes to vars internally within itself (osversionid, platfeat0, platfeatnext, noswp, nomrc, fscvnext. It will need some minor rewrites to claim workspace and use that to store variables instead.

steve3000
Posts: 1852
Joined: Sun Nov 25, 2012 12:43 am
Contact:

Re: RISC OS 3.20 ROM's?

Post by steve3000 » Sun Dec 03, 2017 3:46 pm

Really interesting topic! Great work so far Jon, Jeffrey and all.

Considering the squeeze on space trying to fit within the original 2mb RISC OS 3 ROM size, I think this could be a opportunity to use a larger EPROM and create a 4mb RISC OS 3.2. I looked into this very briefly a while back, but never had the time to progress it as far as actually creating an image.

RISC OS 3.1 was supplied as a 2mb image, across 4 x 4Mbit ROMs for the big-box Archimedes (A5000/A540/etc) and 2 x 8Mbit ROMs for the A3010/A3020/A4000 and A4. However the ROM sockets in all Arc's from the A540 and later (ie. the A540/A5000/A3010/A3020/A4000 and A4), already have the required extra address line (LA21) wired up which would allow use of an EPROM of twice the capacity, allowing a 4mb image RISC OS 3.x with no hardware modifications.

Of the pre-A540 Arcs, the A305/A310/A440 all needed carrier boards to use RISC OS 3 ROMs, and many of those carrier boards (including Acorn's reference design ALA32) have wiring for larger EPROMs (4 x 8Mbit) available through changing a link on the board.

The other pre-A540 Arcs, ie. the A3000 and A4x0/1 series, would need a PBC modification to allow 8Mbit ROMs. The mod is fairly simple, but need to remove the PCB to do this: A single track needs cutting (which takes the +5v to pin1 of the ROM sockets) and then solder a wire from pin1 of any one of the sockets to IC30, to pick up LA21.

Do you think it would be worth considering a larger 4mb RISC OS 3.2? This would certainly solve the squeeze on space - and would really benefit disc-only systems such as the A3010.

User avatar
danielj
Posts: 6284
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester
Contact:

Re: RISC OS 3.20 ROM's?

Post by danielj » Sun Dec 03, 2017 4:17 pm

Worth considering availability of actual hardware though - 27C800s seem reasonably accessible, 27C160s (or equiv) less so on first glance... :?

steve3000
Posts: 1852
Joined: Sun Nov 25, 2012 12:43 am
Contact:

Re: RISC OS 3.20 ROM's?

Post by steve3000 » Sun Dec 03, 2017 5:26 pm

Good point. I ordered some 27C160's from futurlec.com last year and they're still listing them as available now. reichelt.com also lists them as available, but 31-41 day delivery suggests shipping from China. But yes, the more mainstream suppliers don't seem to list these, so would need to confirm a reliable source of these before committing.

User avatar
danielj
Posts: 6284
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester
Contact:

Re: RISC OS 3.20 ROM's?

Post by danielj » Sun Dec 03, 2017 5:40 pm

I'm assuming ROOL use these for their releases of IOMC 5.2? Where are they getting them from? Perhaps two builds - 2meg/4meg... With the extra room you could stick all the ethernet drivers in there tooalong with the zip filing system and the apps and still probably have room...

d.

sirbod
Posts: 836
Joined: Mon Apr 09, 2012 8:44 am
Location: Essex
Contact:

Re: RISC OS 3.20 ROM's?

Post by sirbod » Mon Dec 04, 2017 11:36 am

As the contents of AUNMsgs are going to be merged into Messages, I've created a stub Module in case anything checks for it being present.

I've also taken a closer look at all the ...Utils Modules, it would appear that anything ending "Utils" is in fact a patch Module. I don't believe any of these are now required as the base Modules they're patching are being updated. For compatibility checks however, they need to remain, so I've created stub Modules of the following:
  • ADFSUtils
  • BorderUtils
  • NetUtils
IRQUtils is already a stub, so no changes required there.

sirbod
Posts: 836
Joined: Mon Apr 09, 2012 8:44 am
Location: Essex
Contact:

Re: RISC OS 3.20 ROM's?

Post by sirbod » Tue Dec 05, 2017 6:25 pm

I'm afraid I'm calling it a day on this project.

There's too many key Modules that require ROM builds (see OP) and I've no idea how to go about creating them; testing today has also proved that the updated WindowManager and FilterManager Modules both fail when in ROM. And just to stick the knife in, the updated UtilityModule from RISC OS 3.19 locks the machine solid when Modules are moved, so I'm guessing it has hardcoded branches to other Module entry points.

In short, RISC OS 3.20 can't be based on RISC OS 3.19, several Modules need special builds and several other Modules require modifying to work.

User avatar
danielj
Posts: 6284
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester
Contact:

Re: RISC OS 3.20 ROM's?

Post by danielj » Tue Dec 05, 2017 6:29 pm

:( In which case should we just wind it back to a bugfixed ADFS + network stack?

d.

crj
Posts: 834
Joined: Thu May 02, 2013 4:58 pm
Contact:

Re: RISC OS 3.20 ROM's?

Post by crj » Tue Dec 05, 2017 6:46 pm

I guess the question is academic at this point, but why do so many modules break if you put them in ROM?

SharedCLibrary is obviously unfortunate, but I get the strong impression that's not the only problem. Yet back when I was writing relocatable modules I don't recall any difficulty keeping code apart from workspace.

User avatar
flibble
Posts: 640
Joined: Tue Sep 22, 2009 10:29 am
Contact:

Re: RISC OS 3.20 ROM's?

Post by flibble » Tue Dec 05, 2017 7:27 pm

sirbod wrote:I'm afraid I'm calling it a day on this project.

There's too many key Modules that require ROM builds (see OP) and I've no idea how to go about creating them; testing today has also proved that the updated WindowManager and FilterManager Modules both fail when in ROM..
For the windowmanager did you update the sprites and other resources in resourcefs? From memory 3.98 required that you had extra resources to hand that were normally loaded in before the module in the softload version.

sirbod
Posts: 836
Joined: Mon Apr 09, 2012 8:44 am
Location: Essex
Contact:

Re: RISC OS 3.20 ROM's?

Post by sirbod » Wed Dec 06, 2017 9:32 am

danielj wrote::( In which case should we just wind it back to a bugfixed ADFS + network stack?.
See the OP...the network stack requires a ROM build to work.
crj wrote:I guess the question is academic at this point, but why do so many modules break if you put them in ROM?
They're not coded to work from ROM, either they store values internally or they're coded in C and not compiled specifically for ROM.
flibble wrote:For the windowmanager did you update the sprites and other resources in resourcefs? From memory 3.98 required that you had extra resources to hand that were normally loaded in before the module in the softload version.
What updated resources? I'm including WindowManager 5.59 from PlingSystem.zip, there doesn't appear to be any additional resources associated with the Module in the zip and no ResourceFS SWI's in WindowManager's Init sequence, unless there's another Module dependency that it relies on.

User avatar
flibble
Posts: 640
Joined: Tue Sep 22, 2009 10:29 am
Contact:

Re: RISC OS 3.20 ROM's?

Post by flibble » Wed Dec 06, 2017 4:12 pm

sirbod wrote:
flibble wrote:For the windowmanager did you update the sprites and other resources in resourcefs? From memory 3.98 required that you had extra resources to hand that were normally loaded in before the module in the softload version.
What updated resources? I'm including WindowManager 5.59 from PlingSystem.zip, there doesn't appear to be any additional resources associated with the Module in the zip and no ResourceFS SWI's in WindowManager's Init sequence, unless there's another Module dependency that it relies on.
From the ROOL Harddisc 4 image, if you look inside

!Boot.RO310Hook.Boot.PreDesktop

You'll find the additional steps needed to load the wimp

Code: Select all

|Start Acorn WindowManager 5.15 installation
| ---------------------------------------
|
|       Nested Theme Window Manager
|
| ---------------------------------------
|
| Load the Window Manager from !System, then ensure that we have all
| the necessary sprites etc present.
|
If "<BootResources$Path>"="" Then Set BootResources$Path Boot:Resources.
If "<System$Path>"="" Then Run BootResources:!System
RMEnsure WindowManager 5.15 Set WindowManager$Path BootResources:Wimp.,Resources:$.Resources.Wimp.
RMEnsure WindowManager 5.15 Run WindowManager:LoadWimp
If Boot$OSVersion < 350 Then X RMKill BorderUtils
If Boot$OSVersion < 350 Then RMEnsure DragASprite 0.10 RMLoad System:Modules.DragASprit
If Boot$OSVersion < 350 Then IconSprites BootResources:Wimp.310Spr
If Boot$OSVersion < 400 Then IconSprites BootResources:Wimp.371Spr
|End
Inside !Boot.Resources.Wimp you'll find the Messages, Icons and templates that the newer wimp uses.

To make this work from ROM, you need to merge those resources into ResourceFS using the Messages program I provided.

crj
Posts: 834
Joined: Thu May 02, 2013 4:58 pm
Contact:

Re: RISC OS 3.20 ROM's?

Post by crj » Wed Dec 06, 2017 4:53 pm

sirbod wrote:
crj wrote:I guess the question is academic at this point, but why do so many modules break if you put them in ROM?
They're not coded to work from ROM, either they store values internally or they're coded in C and not compiled specifically for ROM.
I noted - and sadly understand - the issue with SharedCLibrary. Though I think such compilations ought to work in ROM if that one hurdle could be overcome.

What baffles me is that people would modify values in their relocatable modules instead of claiming module workspace like they're supposed to. That's hardly an onerous requirement, is it?

sirbod
Posts: 836
Joined: Mon Apr 09, 2012 8:44 am
Location: Essex
Contact:

Re: RISC OS 3.20 ROM's?

Post by sirbod » Wed Dec 06, 2017 5:05 pm

flibble wrote:Inside !Boot.Resources.Wimp you'll find the Messages, Icons and templates that the newer wimp uses.
That explains why I couldn't find the resources, !Boot.Resources doesn't exist in PlingSystem.zip - it probably should if its a dependency.

The equivalent files in UniBoot are a mishmash of several versions of RISC OS all merged into Messages and Tools, in fact Tools is from RISC OS 3.50, the RISC OS 3.11 Sprites file is missing, so I'm not sure where to find the correct files. The files I believe it requires are:
  • Messages
  • Sprites
  • Templates
  • Tools

Phlamethrower
Posts: 52
Joined: Fri Nov 24, 2017 1:35 pm
Contact:

Re: RISC OS 3.20 ROM's?

Post by Phlamethrower » Wed Dec 06, 2017 6:59 pm

If you bodge things enough it is possible to build an Arc ROM using the standard ROOL ROM build system.
  • Grab a clean build environment (I used IOMD, although I'd expect almost any to work), make sure it's selected as the current
  • Download the attached archive and edit the path at the start of 'prep' to point to a 3.11 ROM image
  • Set your wimpslot to at least a couple of MB and run prep. This will extract the modules & resources from the donor ROM and set up an 'Arc' build environment.
  • Re-select the build directory in Builder to get it to refresh. Select the 'Arc' environment which has now appeared
  • Build a ROM as normal
If you want to customise things, a lot of the magic happens in PROCexport in 'split'. You can re-run prep as many times as you want, it clears out any old changes before it installs the new ones into the build tree.

Issues:
  • The sprites included in the updated Wimp are big, you'll have to remove DOSFS & the hero names from the generated components file (or experiment with increasing the ROM size to 4M)
  • Because most updated modules expect RISC OS 3.6+ they'll either need hacking or the source modifying to not use international command help
  • 'HackASWI' is a version of CallASWI that's been hacked to be ROMable (and will only work with RISC OS 3.11). (basically I just *save'd a copy after loading regular CallASWI on a 3.11 machine, then hacked out all the bits of the initialisation which write values to the module body)
  • (After hacking module command tables to remove the international help flag), Edit works but Filer_Action doesn't. Not sure why, since it doesn't give an error (probably a missing dependency?)
  • Resources extraction could do with an extra step to get rid of the resources that won't be needed (items removed from ROM, items updated)
  • No doubt many other things
I'm not planning on taking this any further, just pointing out that if you're trying to build a ROM, it probably makes sense to use "the" ROM build system :wink:
Attachments
arcdev.zip
(8.98 KiB) Downloaded 16 times

User avatar
flibble
Posts: 640
Joined: Tue Sep 22, 2009 10:29 am
Contact:

Re: RISC OS 3.20 ROM's?

Post by flibble » Wed Dec 06, 2017 7:04 pm

Phlamethrower wrote:
  • Build a ROM as normal
I'm not planning on taking this any further, just pointing out that if you're trying to build a ROM, it probably makes sense to use "the" ROM build system :wink:
Can you also wave your magic wand and make it not cost 50 quid too? :lol:

Post Reply