3rd Party Modules - SWI chunk base numbers

discuss general risc os software applications and utilities
Related forum: adventures


Post Reply
User avatar
SToS
Posts: 9
Joined: Wed Mar 08, 2023 11:48 am
Contact:

3rd Party Modules - SWI chunk base numbers

Post by SToS »

Hi,

Does anyone know of any online references to 3rd party module SWI chunk bases.

For example.
  • LZW/LZWD = 0xC0000...
  • QTM = 0x47E40...
Basically any that don't have a relevant StongHelp manual associated with them.

Thanks
sirbod
Posts: 1624
Joined: Mon Apr 09, 2012 9:44 am
Location: Essex
Contact:

Re: 3rd Party Modules - SWI chunk base numbers

Post by sirbod »

Allocations have never been publicly listed "for commercial reasons" - which made sense back in the day when companies where competing for business, but its a bit of an Achilles-heel these days.

ROOL currently maintain the SWI allocations, but are still bound by Acorn's original non-disclosure rule.
steve3000
Posts: 2909
Joined: Sun Nov 25, 2012 12:43 am
Contact:

Re: 3rd Party Modules - SWI chunk base numbers

Post by steve3000 »

SToS wrote: Sat Mar 30, 2024 2:47 am Hi,

Does anyone know of any online references to 3rd party module SWI chunk bases.

For example.
  • LZW/LZWD = 0xC0000...
  • QTM = 0x47E40...
Why do you need to know? If it's because you're writing your own module and require an unused SWI chunk, just request one from ROOL - they respond very quickly to requests.

From the above to examples you show, QTM has a SWI base assigned by Acorn as a module (bit 18 set, bit 19 clear), and won't clash with any other officially allocated SWI blocks. However the LZW module has a user-assigned block (bits 18 and 19 both set), this is chosen by the author of the module, and will certainly clash with other modules where their author has chosen the same SWI base.
User avatar
SToS
Posts: 9
Joined: Wed Mar 08, 2023 11:48 am
Contact:

Re: 3rd Party Modules - SWI chunk base numbers

Post by SToS »

steve3000 wrote: Mon Apr 01, 2024 11:53 am Why do you need to know? If it's because you're writing your own module and require an unused SWI chunk, just request one from ROOL - they respond very quickly to requests.

From the above to examples you show, QTM has a SWI base assigned by Acorn as a module (bit 18 set, bit 19 clear), and won't clash with any other officially allocated SWI blocks. However the LZW module has a user-assigned block (bits 18 and 19 both set), this is chosen by the author of the module, and will certainly clash with other modules where their author has chosen the same SWI base.
Reversing purposes.

Not essential, just thought if it was already out there it would increase accuracy and speed up annotating.

No biggie, thanks for the reply though steve3000.
philpem
Posts: 1161
Joined: Fri Apr 04, 2014 6:42 pm
Contact:

Re: 3rd Party Modules - SWI chunk base numbers

Post by philpem »

There are some lists in the "barryc" RISC OS source code drops on Github:

https://github.com/barryc-ro/RiscOS_371
https://github.com/barryc-ro/RiscOS_2003

ISV-SWIs is the one you probably want - this is circa RISC OS 3.71's release: https://github.com/barryc-ro/RiscOS_371 ... r/ISV-SWIs

And the 2003 version to compare: https://github.com/barryc-ro/RiscOS_200 ... r/ISV-SWIs

These files only contain the SWI block base addresses, and obviously the 2003 one won't include blocks allocated after 2003.
SWI decoding is delegated to the module, so to find out what the SWIs actually are (or at least what they're named), you'd need a copy of the module itself.
Questions about software preservation (BBC, RISC OS or other platforms)? Please feel free to ask.
Currently looking for RISC OS software to archive and preserve, please drop me a PM if you have any to offer.
User avatar
SToS
Posts: 9
Joined: Wed Mar 08, 2023 11:48 am
Contact:

Re: 3rd Party Modules - SWI chunk base numbers

Post by SToS »

philpem wrote: Tue Apr 02, 2024 12:52 pm There are some lists in the "barryc" RISC OS source code drops on Github:

https://github.com/barryc-ro/RiscOS_371
https://github.com/barryc-ro/RiscOS_2003

ISV-SWIs is the one you probably want - this is circa RISC OS 3.71's release: https://github.com/barryc-ro/RiscOS_371 ... r/ISV-SWIs

And the 2003 version to compare: https://github.com/barryc-ro/RiscOS_200 ... r/ISV-SWIs

These files only contain the SWI block base addresses, and obviously the 2003 one won't include blocks allocated after 2003.
SWI decoding is delegated to the module, so to find out what the SWIs actually are (or at least what they're named), you'd need a copy of the module itself.
Thanks philpem, there's some useful info in there.

Although, I was hoping for more in the &C0000... user range to appear from the riscos ether. :D
sirbod
Posts: 1624
Joined: Mon Apr 09, 2012 9:44 am
Location: Essex
Contact:

Re: 3rd Party Modules - SWI chunk base numbers

Post by sirbod »

SToS wrote: Tue Apr 02, 2024 3:31 pm I was hoping for more in the &C0000... user range
As that range is a free-for-all, I doubt even the original developers documented their Modules.

I recall quite a few games that I've debugger over the years use that range for various Modules, including Joystick, Sound, Sprites, Decompression etc. I couldn't tell you which games though.

I don't think I've ever seen that range used outside of games as utilities and Wimp apps have to use allocated ranges.
User avatar
jgharston
Posts: 5319
Joined: Thu Sep 24, 2009 12:22 pm
Location: Whitby/Sheffield
Contact:

Re: 3rd Party Modules - SWI chunk base numbers

Post by jgharston »

sirbod wrote: Fri Apr 05, 2024 2:43 am
SToS wrote: Tue Apr 02, 2024 3:31 pm I was hoping for more in the &C0000... user range
As that range is a free-for-all, I doubt even the original developers documented their Modules.

I recall quite a few games that I've debugger over the years use that range for various Modules, including Joystick, Sound, Sprites, Decompression etc. I couldn't tell you which games though.

I don't think I've ever seen that range used outside of games as utilities and Wimp apps have to use allocated ranges.
SYS &C0FFE was a common one.... I think, as with filetypes, the user space was slimmed down drastically and a large range given over to official allocations.

Over the years I've tried to collect them whenever I encounter them: SWIBlocks
and try to also find the individual SWI calls.

Code: Select all

$ bbcbasic
PDP11 BBC BASIC IV Version 0.45
(C) Copyright J.G.Harston 1989,2005-2024
>_
gerph
Posts: 4
Joined: Sun Jan 31, 2021 3:07 pm
Contact:

Re: 3rd Party Modules - SWI chunk base numbers

Post by gerph »

Basically any that don't have a relevant StongHelp manual associated with them.
My allocations are here https://usenet.gerph.org/Allocations/Allocations.txt if that's at all useful to you.
I've probably got other more recent allocations, but I've not tracked them except in their modules, IIRC.
sirbod
Posts: 1624
Joined: Mon Apr 09, 2012 9:44 am
Location: Essex
Contact:

Re: 3rd Party Modules - SWI chunk base numbers

Post by sirbod »

Here's some in the user range from Quark, as an example:

Module: Quark
SWI base: C2B80

Module: LZWD
SWI base: CD100
User avatar
SToS
Posts: 9
Joined: Wed Mar 08, 2023 11:48 am
Contact:

Re: 3rd Party Modules - SWI chunk base numbers

Post by SToS »

Thank you for all of your replies.
Post Reply

Return to “32-bit acorn software: other”