AcornSearch - Acorn and RISC OS information searching
RISC OS Search
containing
"Nutty quip goes here!"
Home  |  About  |  Filebase Archive  |  StrongHelp Manuals  |  Newsgroups  |  Module Database
=>     R1 =     &6A (reason code)
     R2 =     pointer to linked list of format specifications
<=     R1 =     &6A (do not claim)
     R2 =     pointer to extended linked list

This service is issued to get information about available disc formats from softloaded modules. It should be issued whenever this information is requested, in case new modules mean more formats are now available. The service must not be claimed - rather it should be passed on with an extended list.

The service issuer is responsible for freeing the list and all data from the RMA after use, or if an error occurs during generation.

See PRM 2, page 494
Service_EnumerateFormats format block
Offset     Meaning

0     Pointer to next block, or 0 to terminate list
4     Pointer to RMA block with text for Format submenu
8     Pointer to RMA block with help text for Format submenu
12     SWI to call to get raw disc format info
16     R3 parameter for this SWI
20     SWI to call to lay down disc structure
24     R0 parameter for this SWI
28     Flags:     bit 0 set for native FileCore format.
           other bits 0 (reserved)

The block should be built in this order:
1     allocate block in RMA
2     zero offsets 4 and 8 (pointers to text)
3     link into list
4     allocate block in RMA for text at offset 4
5     link this to the block
6     allocate block in RMA for text at offset 8
7     link this to the block
8     *copy* text into the two RMA blocks
9     fill in the rest of the block

This allows an error to be returned by claiming the service and returning the intact list.

[sh-index] Back to list of manuals