SWI numbers, file types, and many other resources are centrally allocated. If you wish to request an allocation, please use allocate32.zip ‘!Allocate’ to create an allocation request (current version: v1.14) then send the request file by e-mail to email@example.com.
What is an allocation?
When you write some software which you intend to release to the public, you want to be sure that things such as the name of the program, the names of various directories it creates and the name of sprites and so-on don’t clash with those of another program that someone else has released, or is about to release.
We run a central system to manage the allocation of these sorts of things across all versions of RISC OS. If you want an allocation, just send your request to the email address above. Hopefully, we will make this process simpler by adding a web front end onto the allocations system in the future.
What does allocation not do?
ROOL’s allocation service does not include (and this list isn’t exhaustive!): checking for potential trademark, Copyright or other brand infringements. It also does not include checking for potential license violations or any patent or other IPR searches. We assume that you are going to do what is required to check that your software is safe for release. After all, it remains your responsibility so having run it past our allocations service won’t offer you any defence! :)
When should I make my allocation?
Before you release your program! If you’ve released a program which isn’t allocated, you may find it clashes with some other program. Or someone else may release something in the future which clashes with your software – and you’d be the one who has to change your program if they used the official allocations system. Don’t feel embarrassed if you’ve already released your program and it isn’t officially allocated yet. Get your allocation request in now and then you’ll be in the clear!
What should I allocate?
Our advice is that you don’t allocate every little thing you write; wait until you feel that there is a reasonable chance that you are going to release it to other people. We aim to respond with your allocations (or warnings about any clashes) within 5 working days.
For full details of what is allocated and how, see Appendix H of the Programmer’s Reference Manual, the help provided with !Allocate and the header files in RiscOS.Sources.Programmer.HdrSrc. However, here is a summary of the main points:
|Allocation||!Allocate request type||Restrictions on name||Case-sensitive?||Included with allocation|
|Message_DeviceClaim device number||Devices||–||Yes||–|
|DrawFile object type||Draws object block||–||Yes||–|
|DrawFile tagged object type||Draws tag block||–||Yes||–|
|Error block (256 errors)||Error block||–||Yes||–|
|Filetype||Filetype||<= 8 chars||No|| System variables File$Type_XXX, Alias$
|Filing system number and name||Filing system||–||No||Block of 256 error numbers|
|Wimp message block (64 messages)||Messages||–||Yes||–|
|Expansion card ID||Podule||–||Yes||–|
|Application or shared resource directory||Reservation (AppName)||unlimited, but first 9 chars must be unique||No||System variables AppName$* and Wimp sprites !AppName, sm!AppName, ic_AppName|
|File in Devices:$||Reservation (DeviceFS)||–||No||–|
|System variable||Reservation (EnvVar)||include at least 1 ‘$’||No||–|
|Font name||Reservation (FontName)||–||No||–|
|Module name||Reservation (ModName)||–||No||System variables ModName$*|
|Directory in ResourceFS||Reservation (ResourceFS)||–||No||–|
|Directory in Wimp$ScrapDir||Reservation (ScrapDir)||–||No||–|
|Star command||Reservation (StarComm)||–||No||–|
|Utility name||Reservation (Transient)||–||No||–|
|Sprite name in Wimp sprite pool||Reservation (WimpSprite)||<= 12 chars||No||–|
|Service call block (64 service calls)||Service block||–||Yes||–|
|SWI chunk (64 SWIs) and name prefix||SWI chunk||–||Yes||Wimp message numbers in same range as SWI chunk|
|CMOS RAM byte||–||–||Yes||–|
|Ethernet driver suffix||–||1-char suffixes exhausted, now unlimited but keep short||No||–|
|Freeway type number||–||–||Yes||–|
|Printer driver||–||typically 2 chars||No||–|
|Printer dumper||–||typically 2 chars||No||–|
|Printer type number||–||–||No||–|
|Reason codes to all vectors, including vectored SWIs||–||–||Yes||–|
|Service calls and SWIs in system range (0-&FF)||–||–||Yes||–|
|Territory, country, alphabet, keyboard||–||–||Yes||–|
|UpCall block (256 UpCalls)||–||–||Yes||–|