Pyromaniac

Pyromaniac Configuration Options

Obtaining help

The help for all configuration options for RISC OS Pyromaniac can be obtained by running:

python pyro.py --help-config --load-internal-modules

Within RISC OS help can be obtained with:

*PyromaniacConfig -help

Configuration group 'ADFS'

ADFS.default_drive

Value: 4
Type: int

Configures the default drive returned by the ADFS module. Under RISC OS Pyromaniac this is only used for information.

ADFS.drive0_data_file

Value: 
Type: str

Configures the file that will be used as data read from ADFS for drive 0 on the host system. When set to an empty string, no data will be available and the drive will always appear empty.

ADFS.drive0_data_range

Value: 0-
Type: Half-open 64bit size range such in the form <start>-[<end>] or <start>+<length>

Configures the range used for data read from ADFS drive 0. The data file will only be accessed from a given offset, up to a length. This allows partitioned data to be extracted from a file, if necessary. The format of the range is one of :

If no <end> or <size> is supplied, the end of the data file is assumed. Sizes may be specified as decimal, hexadecimal or suffixed sizes (using the binary multipliers K, M, G, etc).

ADFS.drive0_freespace

Value: 1400 K
Type: Size as a number which may be suffixed by 'K', 'M', 'G', 'T', 'P', or 'E', and '-1'

ADFS.drive0_largestspace

Value: 800 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

ADFS.drive0_name

Value: Floppy0
Type: str

Configures the name returned from ADFS during Describe on drive 0.

ADFS.drive0_readonly

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controler whether ADFS drive 0 can be written to.

ADFS.drive1_data_file

Value: 
Type: str

Configures the file that will be used as data read from ADFS for drive 1 on the host system. When set to an empty string, no data will be available and the drive will always appear empty.

ADFS.drive1_data_range

Value: 0-
Type: Half-open 64bit size range such in the form <start>-[<end>] or <start>+<length>

Configures the range used for data read from ADFS drive 1. The data file will only be accessed from a given offset, up to a length. This allows partitioned data to be extracted from a file, if necessary. The format of the range is one of :

If no <end> or <size> is supplied, the end of the data file is assumed. Sizes may be specified as decimal, hexadecimal or suffixed sizes (using the binary multipliers K, M, G, etc).

ADFS.drive1_freespace

Value: 1400 K
Type: Size as a number which may be suffixed by 'K', 'M', 'G', 'T', 'P', or 'E', and '-1'

ADFS.drive1_largestspace

Value: 800 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

ADFS.drive1_name

Value: Floppy1
Type: str

Configures the name returned from ADFS during Describe on drive 1.

ADFS.drive1_readonly

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controler whether ADFS drive 1 can be written to.

ADFS.drive2_data_file

Value: 
Type: str

Configures the file that will be used as data read from ADFS for drive 2 on the host system. When set to an empty string, no data will be available and the drive will always appear empty.

ADFS.drive2_data_range

Value: 0-
Type: Half-open 64bit size range such in the form <start>-[<end>] or <start>+<length>

Configures the range used for data read from ADFS drive 2. The data file will only be accessed from a given offset, up to a length. This allows partitioned data to be extracted from a file, if necessary. The format of the range is one of :

If no <end> or <size> is supplied, the end of the data file is assumed. Sizes may be specified as decimal, hexadecimal or suffixed sizes (using the binary multipliers K, M, G, etc).

ADFS.drive2_freespace

Value: 1400 K
Type: Size as a number which may be suffixed by 'K', 'M', 'G', 'T', 'P', or 'E', and '-1'

ADFS.drive2_largestspace

Value: 800 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

ADFS.drive2_name

Value: Floppy2
Type: str

Configures the name returned from ADFS during Describe on drive 2.

ADFS.drive2_readonly

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controler whether ADFS drive 2 can be written to.

ADFS.drive3_data_file

Value: 
Type: str

Configures the file that will be used as data read from ADFS for drive 3 on the host system. When set to an empty string, no data will be available and the drive will always appear empty.

ADFS.drive3_data_range

Value: 0-
Type: Half-open 64bit size range such in the form <start>-[<end>] or <start>+<length>

Configures the range used for data read from ADFS drive 3. The data file will only be accessed from a given offset, up to a length. This allows partitioned data to be extracted from a file, if necessary. The format of the range is one of :

If no <end> or <size> is supplied, the end of the data file is assumed. Sizes may be specified as decimal, hexadecimal or suffixed sizes (using the binary multipliers K, M, G, etc).

ADFS.drive3_freespace

Value: 1400 K
Type: Size as a number which may be suffixed by 'K', 'M', 'G', 'T', 'P', or 'E', and '-1'

ADFS.drive3_largestspace

Value: 800 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

ADFS.drive3_name

Value: Floppy3
Type: str

Configures the name returned from ADFS during Describe on drive 3.

ADFS.drive3_readonly

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controler whether ADFS drive 3 can be written to.

ADFS.drive4_data_file

Value: 
Type: str

Configures the file that will be used as data read from ADFS for drive 4 on the host system. When set to an empty string, no data will be available and the drive will always appear empty.

ADFS.drive4_data_range

Value: 0-
Type: Half-open 64bit size range such in the form <start>-[<end>] or <start>+<length>

Configures the range used for data read from ADFS drive 4. The data file will only be accessed from a given offset, up to a length. This allows partitioned data to be extracted from a file, if necessary. The format of the range is one of :

If no <end> or <size> is supplied, the end of the data file is assumed. Sizes may be specified as decimal, hexadecimal or suffixed sizes (using the binary multipliers K, M, G, etc).

ADFS.drive4_freespace

Value: 200 M
Type: Size as a number which may be suffixed by 'K', 'M', 'G', 'T', 'P', or 'E', and '-1'

ADFS.drive4_largestspace

Value: 16 M
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

ADFS.drive4_name

Value: HardDisc4
Type: str

Configures the name returned from ADFS during Describe on drive 4.

ADFS.drive4_readonly

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controler whether ADFS drive 4 can be written to.

ADFS.drive5_data_file

Value: 
Type: str

Configures the file that will be used as data read from ADFS for drive 5 on the host system. When set to an empty string, no data will be available and the drive will always appear empty.

ADFS.drive5_data_range

Value: 0-
Type: Half-open 64bit size range such in the form <start>-[<end>] or <start>+<length>

Configures the range used for data read from ADFS drive 5. The data file will only be accessed from a given offset, up to a length. This allows partitioned data to be extracted from a file, if necessary. The format of the range is one of :

If no <end> or <size> is supplied, the end of the data file is assumed. Sizes may be specified as decimal, hexadecimal or suffixed sizes (using the binary multipliers K, M, G, etc).

ADFS.drive5_freespace

Value: 200 M
Type: Size as a number which may be suffixed by 'K', 'M', 'G', 'T', 'P', or 'E', and '-1'

ADFS.drive5_largestspace

Value: 16 M
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

ADFS.drive5_name

Value: HardDisc5
Type: str

Configures the name returned from ADFS during Describe on drive 5.

ADFS.drive5_readonly

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controler whether ADFS drive 5 can be written to.

ADFS.drive6_data_file

Value: 
Type: str

Configures the file that will be used as data read from ADFS for drive 6 on the host system. When set to an empty string, no data will be available and the drive will always appear empty.

ADFS.drive6_data_range

Value: 0-
Type: Half-open 64bit size range such in the form <start>-[<end>] or <start>+<length>

Configures the range used for data read from ADFS drive 6. The data file will only be accessed from a given offset, up to a length. This allows partitioned data to be extracted from a file, if necessary. The format of the range is one of :

If no <end> or <size> is supplied, the end of the data file is assumed. Sizes may be specified as decimal, hexadecimal or suffixed sizes (using the binary multipliers K, M, G, etc).

ADFS.drive6_freespace

Value: 200 M
Type: Size as a number which may be suffixed by 'K', 'M', 'G', 'T', 'P', or 'E', and '-1'

ADFS.drive6_largestspace

Value: 16 M
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

ADFS.drive6_name

Value: HardDisc6
Type: str

Configures the name returned from ADFS during Describe on drive 6.

ADFS.drive6_readonly

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controler whether ADFS drive 6 can be written to.

ADFS.drive7_data_file

Value: 
Type: str

Configures the file that will be used as data read from ADFS for drive 7 on the host system. When set to an empty string, no data will be available and the drive will always appear empty.

ADFS.drive7_data_range

Value: 0-
Type: Half-open 64bit size range such in the form <start>-[<end>] or <start>+<length>

Configures the range used for data read from ADFS drive 7. The data file will only be accessed from a given offset, up to a length. This allows partitioned data to be extracted from a file, if necessary. The format of the range is one of :

If no <end> or <size> is supplied, the end of the data file is assumed. Sizes may be specified as decimal, hexadecimal or suffixed sizes (using the binary multipliers K, M, G, etc).

ADFS.drive7_freespace

Value: 200 M
Type: Size as a number which may be suffixed by 'K', 'M', 'G', 'T', 'P', or 'E', and '-1'

ADFS.drive7_largestspace

Value: 16 M
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

ADFS.drive7_name

Value: HardDisc7
Type: str

Configures the name returned from ADFS during Describe on drive 7.

ADFS.drive7_readonly

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controler whether ADFS drive 7 can be written to.

ADFS.floppy_drives

Value: 4
Type: int

Configures the number of floppy drives returned by the ADFS module. When used with FileCore, this will be the number of floppy drives reported. When used without FileCore, this will only be used for information.

ADFS.floppy_ejectable

Value: True
Type: bool

Configures whether the floppy drives are marked as being ejectable. When used with FileCore, this will set the appropriate flags. When used without FileCore, this will only be used for information.

ADFS.floppy_removeable

Value: True
Type: bool

Configures whether the floppy drives are marked as being removeable (act like floppies). When used with FileCore, this will set the appropriate flags. When used without FileCore, this will only be used for information.

ADFS.hard_drives

Value: 4
Type: int

Configures the number of hard drives returned by the ADFS module. When used with FileCore, this will be the number of hard drives reported. When used without FileCore, this will only be used for information.

ADFS.hard_ejectable

Value: False
Type: bool

Configures whether the hard drives are marked as being ejectable. When used with FileCore, this will set the appropriate flags. When used without FileCore, this will only be used for information.

ADFS.hard_removeable

Value: False
Type: bool

Configures whether the hard drives are marked as being removeable (act like floppies). When used with FileCore, this will set the appropriate flags. When used without FileCore, this will only be used for information.

ADFS.swis

Value: filecore
Type: One of the strings 'direct', 'filecore'

Configures how the SWIs are handled for the module. RISC OS Classic always passed the SWI calls to FileCore. However, it can be useful to override this and instead always use the configured values directly. Using the values directly (without calling FileCore) is always done when FileCore is not present. When FileCore is present, using the direct values gives greater control over the values returned.

Configurations:


Configuration group 'APIWarnings'

APIWarnings.enterleaveos

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the OS_EnterOS/OS_LeaveOS SWIs warn about their use. These calls should generally not be used in applications.

APIWarnings.intonoff

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the OS_IntOn/OS_IntOff SWIs warn about their use. These calls should generally not be used in applications.

APIWarnings.synchronisecodeareas

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the OS_SynchroniseCodeAreas SWI warns about efficient unbounded synchronise requests.


Configuration group 'Buffers'

The Buffers configuration group configures how large the buffers are for the standard RISC OS buffers. Most of these buffers are actually not used, and have not been used since the BBC.

Buffers.keyboard_size

Value: 255
Type: int

Configures the number of bytes available in the keyboard input buffer.

Buffers.mouse_size

Value: 63
Type: int

Configures the number of bytes available in the mouse input buffer.

Buffers.printer_size

Value: 1023
Type: int

Configures the number of bytes available in the printer buffer.

Buffers.serialinput_size

Value: 255
Type: int

Configures the number of bytes available in the serial input buffer.

Buffers.serialoutput_size

Value: 191
Type: int

Configures the number of bytes available in the serial output buffer.

Buffers.soundchannel0_size

Value: 3
Type: int

Configures the number of bytes available in the sound buffer for channel 0 (not used by RISC OS).

Buffers.soundchannel1_size

Value: 3
Type: int

Configures the number of bytes available in the sound buffer for channel 1 (not used by RISC OS).

Buffers.soundchannel2_size

Value: 3
Type: int

Configures the number of bytes available in the sound buffer for channel 2 (not used by RISC OS).

Buffers.soundchannel3_size

Value: 3
Type: int

Configures the number of bytes available in the sound buffer for channel 3 (not used by RISC OS).

Buffers.speech_size

Value: 3
Type: int

Configures the number of bytes available in the speech buffer (not used by RISC OS).


Configuration group 'CDFSDriver'

CDFSDriver.reinit_drivers

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the module will reinitialise the softload drivers after it has initialised. The standard RISC OS CDFSDriver will reinit the modules which start with CDFSSoft as it initialises. This ensures that those modules register themselves with us.


Configuration group 'CDFSSoftPyromaniac'

CDFSSoftPyromaniac.data_file

Value: 
Type: str

Configures the file that will be used as data read from CDFS on the host system. When set to an empty string, no file will be offered and the drive will always appear empty.

CDFSSoftPyromaniac.inquiry_product

Value: Virtual CD drive
Type: str

Configures the product identifier string returned by the Inquiry SWI. The maximum length of the string is 16 characters.

CDFSSoftPyromaniac.inquiry_vendor

Value: ROPyro
Type: str

Configures the vendor identifier string returned by the Inquiry SWI. The maximum length of the string is 8 characters.

CDFSSoftPyromaniac.inquiry_version

Value: 0.01
Type: str

Configures the version string returned by the Inquiry SWI. The maximum length of the string is 4 characters.

CDFSSoftPyromaniac.max_retries

Value: 0
Type: int

Configures the maximum number of retries reported by the CD drive when read by CD_GetParameters."

CDFSSoftPyromaniac.read_mode

Value: 0
Type: int

Configures the mode used by the CD drive when read by CD_GetParameters. The values 0, 1 and 3 are for data operations. The value 2 is used for audio operations.

CDFSSoftPyromaniac.speed

Value: 32
Type: int

Configures the speed which the CD drive will report that it runs at when queried, in multiples of 150KiB/s.

CDFSSoftPyromaniac.spindown_time

Value: 1
Type: int

Configures the scaler for the spindown time for the device which is reported by CD_GetParameters. The absolute value is not defined, only the multiple of whatever base the CD drive uses.

CDFSSoftPyromaniac.support_audio_playback

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the audio playback operations are supported.


Configuration group 'CH341'

CH341.i2c_speed_kbits

Value: 100
Type: int

Configures the speed that the I2C will communicate at with in kbit per second. By default this will be 100 kbit/s, which is the standard speed for I2C.


Configuration group 'CLI'

CLI.module_hash_enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the CLI commands prefixed by Module#<name> are directed to the named module or not.

RISC OS classic supports this syntax, but it is obscure and almost never used. It can be helpful in explicitly directing a command to a module, but might preclude the use of a filesystem called Module that supported special fields.


Configuration group 'CP2112'

CP2112.i2c_speed_kbits

Value: 100
Type: int

Configures the speed that the I2C will communicate at with in kbit per second. By default this will be 100 kbit/s, which is the standard speed for I2C.


Configuration group 'ClipboardHolder'

ClipboardHolder.enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the ClipboardHolder module is able to function. If this is disabled, the ClipboardHolder SWIs will return errors.

ClipboardHolder.implementation

Value: pyperclip
Type: str

Configures which implementation will be used for the clipboard. The following implementations are provided:

ClipboardHolder.post_url

Value: http://localhost:8080/
Type: str

Configures the URL to use when the 'posturl' implementation is selected.

The posted data is contained within the body of the request. The media type supplied will be an 'application/riscos' type, with the name of the file containing the filetype number.

ClipboardHolder.scrap_file

Value: <Wimp$ScrapDir>.Clipboard
Type: str

Configures the file that the clipboard will be transferred through when it must be transferred by a file.


Configuration group 'CompressJPEG'

CompressJPEG.components_invalid

Value: warning
Type: One of the strings 'error', 'warning', 'rgb'

Configures how invalid numbers of components will be handled. RISC OS Classic treated 1 component as grayscale, and anything else as RGB. The following configurations are supported:

The default is 'warning' as this is the closest to RISC OS Classic but retains some safety.

CompressJPEG.quality_invalid

Value: warning
Type: One of the strings 'error', 'warning', 'clamped'

Configures how invalid quality values will be handled. RISC OS Classic treated values less than 0 as a 1, and values over 100 as 100. The following configurations are supported:

The default is 'warning' as this is the closest to RISC OS Classic but retains some safety.


Configuration group 'Console'

Console.input_backspace_code

Value: 8
Type: int

Configures the code that the backspace key (the key which reports as code 127 in the terminal) will report to RISC OS. By default this reports as code 8, as this is the value that is espected by most clients. However, it may be configured to any value.

The most common alternative value to report would be code 127 - that is to report as itself.

Console.input_escapes

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether terminal escapes for function keys, cursor keys and other input, are processed by the input system. If this option is disabled, the escape codes (and therefore cursor keys and function keys) will be passed through verbatim. If this option is enabled, the escape codes will be processed into RISC OS keys, and cursor keys will be seen by RISC OS as expected.

Console.input_escapes_timeout

Value: 0.2
Type: float

Configures how many seconds will be waited before cancelling a terminal escape sequence. Usually this causes the physical escape key to be reported as a key press. It is usually a fraction of a second, in order that the terminal be responsive, but delays in buffering do not cause the escape to be misidentified.

Console.input_utf8

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether characters input are treated as UTF-8 and converted to the current alphabet. If this option is disabled, input is passed through unmodified.


Configuration group 'CryptRandom'

CryptRandom.implementation

Value: python
Type: str

Configures which implementation will be used for the random numbers generated by the CryptRandom module. The following implementations are provided:

CryptRandom.seed

Value: 123456789
Type: int

Configures a seed value which may be used by the implementation to start at the same value. The seed is just a simple integer.


Configuration group 'Debugger'

Debugger.hide_topbitset

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether characters with the top bit set will be shown as a '.' character, or displayed directly.

Debugger.memory_bytesperrow

Value: 16
Type: int

Configures the width of the *Memory command's output in bytes.

Debugger.memory_defaultsize

Value: 256
Type: int

Configures the amount of memory which is displayed when *Memory is used without an end address.

Debugger.memoryi_defaultsize

Value: 24
Type: int

Configures the amount of memory which is displayed when *MemoryI is used without an end address.

Debugger.showregs_context

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the *ShowRegs command includes context information from the registers which are stored in the exception areas.

Debugger.showregs_exception_dump_region

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the *ShowRegs command uses the exception dump region to display the disassembly of code which failed. The exception dump region is not supported on RISC OS Classic.


Configuration group 'DisassembleARM32'

DisassembleARM32.format

Value: riscos
Type: One of the strings 'capstone', 'riscos'

Configures how the disassembly will be formatted. By default a RISC OS-like layout will be used for the disassembly. This takes more processing from the Capstone library's output, but will be more familiar. It is possible to use the raw Capstone format to save processing time.

Formats supported:

DisassembleARM32.rename_r13_to_sp

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether R13 is disassembled as r13 or sp. By default we make this change. In almost all RISC OS code, register 13 will refer to the stack pointer.

DisassembleARM32.rename_r14_to_lr

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether R14 is disassembled as r14 or lr. By default we make this change. In almost all RISC OS code, register 14 will refer to the link register.

DisassembleARM32.show_referenced_pointers

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether disassembly during a trace will include details of the pointer values in registers.

DisassembleARM32.show_referenced_registers

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether disassembly during a trace will include details of the registers which are referenced in the instruction. The registers reported are the values before the instruction is executed.

DisassembleARM32.support_fpa

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the FPA instructions will be disassembled. By default we enable this, as most of RISC OS will expect to use them and the generic instruction forms will not be familiar. However, the support for these instructions in the disassembler may be incomplete, so they may be disabled.


Configuration group 'DisassembleARM64'

DisassembleARM64.show_referenced_pointers

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether disassembly during a trace will include details of the pointer values in registers.

DisassembleARM64.show_referenced_registers

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether disassembly during a trace will include details of the registers which are referenced in the instruction. The registers reported are the values before the instruction is executed.


Configuration group 'Documentation'

Documentation.enable_launch

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0


Configuration group 'DynamicArea'

DynamicArea.area_base

Value: &5000000
Type: Hexadecimal value, optionally prefixed by '&'.

Controls where in memory the OS_DynamicArea calls to create new areas with auto-allocated base addresses will start.

DynamicArea.clamp_machinesize

Value: 64 M
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the default clamp for dynamic areas which request an area which is as large as possible (max size -1).

DynamicArea.clamp_maxsize

Value: 1 G
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the default clamp for dynamic areas which request an area with an explicit maximum size (max size not -1).

DynamicArea.clamp_sparsesize

Value: 3 G
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the default clamp for dynamic areas which are sparse mapped. Sparse mapping is not currently supported.

DynamicArea.free_size

Value: 256 M
Type: Size suffixed by 'K', 'M', 'G', 'T', 'P', or 'E', or 'dynamic' to calculate at runtime

Configures the size of the free space returned by OS_DynamicArea 5. Either an explicit size can be given, or the string dynamic which will calculate the space free based on the amount of DRAM configured in osmemory.amount_dram.

Note: If both these configurations are set to dynamic, the result will be OS_DynamicArea 5 returning no free space, as the memory in use will match that which is available.

DynamicArea.name_control_effect

Value: passthrough+warning
Type: Regular expression matching: (error|hex|passthrough|truncate)(+warning)?

Configures the way that dynamic area creation with a descriptive name which contains control characters is handled. On RISC OS Classic the control characters are copied as part of the description. The option consists of two parts, the terminal action, and any additional actions separated by a '+'.

The only additional action that can be performed is warning which reports the use to the trace system.

DynamicArea.name_invalid_effect

Value: error+warning
Type: Regular expression matching: (error|hex|abort)(+warning)?

Configures the way that dynamic area creation with a descriptive name pointer which is invalid is handled. On RISC OS Classic this merely aborts if memory does not exist. The option consists of two parts, the terminal action, and any additional actions separated by a '+'.

The only additional action that can be performed is warning which reports the use to the trace system.

DynamicArea.name_max

Value: 31
Type: int

Configures the maximum length of the names on dynamic area creation. In RISC OS Classic the names were unlimited up to RISC OS 4. At that point they became limited to 31 characters. A value of 0 will make the name unlimited in length.

DynamicArea.name_zero_effect

Value: hex+warning
Type: Regular expression matching: (error|hex)(+warning)?

Configures the way that dynamic area creation with a descriptive name pointer of 0 is handled. On RISC OS Classic this was handled differently. On 3.7 and earlier it would copy zero page. On RISC OS 4 and later it will use the hex string for the number. Prior to RISC OS 4, it would copy zero page. The option consists of two parts, the terminal action, and any additional actions separated by a '+'.

The only additional action that can be performed is warning which reports the use to the trace system.

DynamicArea.osdynamicarea2_appspace_invalid

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the details of the application space can be read with SWI OS_DynamicArea 2. Under RISC OS Classic, the application space cannot be read by this call. Under RISC OS Pyromaniac, the application space is able to be returned like any other.

DynamicArea.sparsemap_support

Value: none
Type: One of the strings 'none', 'fake'

Configures the way in which sparse mapped dynamic areas are supported. Such areas are not completely supported yet, but may be faked by mapping the entire region and ignoring the requests for mapping in and out regions. The values supported are:


Configuration group 'DynamicAreaHeap'

DynamicAreaHeap.guard_alloc_value

Value: &81818181
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the 32bit value which will be used to fill the guard regions which have been allocated, when guards are enabled by guard_size being set to a non-0 value.

DynamicAreaHeap.guard_free_value

Value: &82828282
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the 32bit value which will be used to fill the guard regions which have been freed, when guards are enabled by guard_size being set to a non-0 value.

DynamicAreaHeap.guard_size

Value: 0
Type: int

Configures the size of the Dynamic Area heap guard regions. The guard regions are areas that are allocated alongside the heap blocks, before and after the data. The guard regions are given known values and will be checked when necessary to ensure that the the regions have not been corrupted. The size given by this option is the number of bytes that the region will contain. It must be a multiple of 4.

If the size is 0, no guard region will be used and the heap will function as in RISC OS Classic.

DynamicAreaHeap.tracking_full_checks

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the tracked memory is checked on every call to the Dynamic Area heap. Usually the tracked memory is only checked for the blocks that are referenced by the call, but with this option enabled every call will check all the known blocks.

DynamicAreaHeap.tracking_report_size

Value: 32
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the size of the reports for tracked memory in Dynamic Area heaps when something is found to be wrong.


Configuration group 'Emulation'

Emulation.cpu_model

Value: default
Type: Select a CPU model, or use 'default' for the default CPU model provided by the emulation

Configures the CPU models that can be used within the emulation. Valid values for the models will vary with the version of the emulation system (Unicorn). The accuracy of the CPU models will depend on their implementation in Unicorn, so not all features may be as expected.

Models supported are:

Emulation.disable_interrupt

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether timers are enabled or not. There may be underlying bugs with the timer implementation that mean that code will execute out of turn - ie be completely fatal. Because of this, timers are disabled by default.

Emulation.internal_backtrace

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether, when a Python exception occurs during the processing of a SWI, callback, interrupt or other event, a backtrace is produced. The backtrace will not be sent through the RISC OS VDU system, as this may be the reason for the backtrace.

Emulation.internal_recursion_limit

Value: 0
Type: int

Controls the recursion depth for internal python functions. By default, Python uses a limit of 1000-deep function calls (implementation-specific), which may limit some calls in the RISC OS environment which are inherently deeply nested. This option allows the recursion limit to be explicitly raised. If the value is set to 0, no limit raising is performed.

Emulation.kernel_shutdown

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether, when the OS terminates the Kernel is shut down. The Kernel shutdown means that Service_PreReset is issued and other clean up activities may be performed. Disabling this may ensure that the system terminates cleanly, even when modules may be acting badly.

Emulation.runtime_limit

Value: 0s
Type: Time in the form: {<number>{s|m|h|d|w|y}}*

Configures the maximum runtime that the system may execute for. After this time, the system will be terminated. A value of 0 disables any limits.


Configuration group 'Error'

Error.invalid_effect

Value: message
Type: One of the strings 'message', 'passthrough'

Controls the handling of returns from SWIs with V set and R0 pointing to invalid memory.

Error.nullpointer_effect

Value: ofla
Type: One of the strings 'ofla', 'message', 'passthrough'

Controls the handling of returns from SWIs with V set and R0 = 0.

Error.unaligned_effect

Value: message
Type: One of the strings 'message', 'passthrough'

Controls the handling of returns from SWIs with V set and R0 pointing to a non-word aligned address.


Configuration group 'Executables'

Executables.absolute_allow_unheadered

Value: default
Type: One of the strings 'yes', 'no', 'default'

Controls whether unheadered absolute files are allowed to be run or not. By default this is disabled, as absolute files should always have a header.

The 'default' setting selects the default for the platform, whilst 'yes' and 'no' force the configuration.

Executables.utility_allow_unheadered

Value: default
Type: One of the strings 'yes', 'no', 'default'

Controls whether unheadered utility files are allowed to be run or not. By default this is enabled on 32bit as utility files commonly don't have the header. On a 64bit system, the default is to require the header.

The 'default' setting selects the default for the platform, whilst 'yes' and 'no' force the configuration.

Executables.utility_da

Value: private
Type: One of the strings 'rma', 'private'

Controls where utilities will allocate memory from. On RISC OS Classic, utilities always allocated their memory from the RMA. However, they are small and keeping track of them in a dedicated area would mean that the memory usage in the main RMA could be less variable. This can improve tests, but also might mean that we have better understanding of where memory is used.

The option can be specified as:

Executables.utility_da_base

Value: &4800000
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the base address of the utility dynamic area. This only applies when the utility_da is set to private.

Executables.utility_da_maxsize

Value: 128 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the maximum size of the utility dynamic area. This only applies when the utility_da is set to private.

Executables.utility_da_number

Value: 50
Type: int


Configuration group 'Execute'

Execute.error_template

Value: Error: %0 (Error number &%1)
Type: str

Configures the template that will be used when the system exits with an error. The message will be written to the destination set by the output option. The template substitutes values from the error:

Execute.exit_template

Value: 
Type: str

Configures the template that will be used when the system exits normally. The message will be written to the destination set by the output option. The template substitutes values from the error:

Execute.output

Value: stdout
Type: One of the strings 'stdout', 'stderr', 'riscos'

Configures where the messages produced on system exit are sent. The destination can be one of the following values:

Execute.reset_template

Value: RISC OS Reset requested
Type: str

Configures the template that will be used when the system is reset. The message will be written to the destination set by the output option. Although described as a template, there are currently no substitutions performed.


Configuration group 'FanDriver'

FanDriver.accuracy

Value: 10
Type: int

Configures the accuracy of the speed that can be selected by the fan.

FanDriver.capabilities

Value: manual,auto
Type: Comma-separated list of flags from 'manual', 'auto', 'moveable', 'can-fail'

Configures the capabilities of the fan as a comma-separated set of flags. The recognised flags are:

FanDriver.device

Value: chassis
Type: One of the strings 'cpu', 'gpu', 'memory', 'iocard', 'psu', 'backplane', 'radiator', 'chassis', 'external', 'generic'

Configures the logical device cooled by the fan. Some of the devices have spacial qualifiers which position the device more specifically (see position_lateralposition_longitudinal, and position_vertical). Some devices have different position qualifiers. The recognised devices are:

FanDriver.max_speed

Value: 0
Type: int

Configures the maximum speed supported by the fan, or 0 for no explicit maximum.

FanDriver.position_lateral

Value: left
Type: One of the strings 'unspecified', 'left', 'middle', 'right'

Configures the logical position of the fan device, in lateral (left-to-right) space. This configuration only applies to devices that are spacially distinguished. The recognised positions are:

FanDriver.position_longitudinal

Value: rear
Type: One of the strings 'unspecified', 'front', 'middle', 'rear'

Configures the logical position of the fan device, in longitudal (front-to-rear) space. This configuration only applies to devices that are spacially distinguished. The recognised positions are:

FanDriver.position_vertical

Value: unspecified
Type: One of the strings 'unspecified', 'lower', 'middle', 'upper'

Configures the logical position of the fan device, in vertical (bottom-to-top) space. This configuration only applies to devices that are spacially distinguished. The recognised positions are:

FanDriver.speeds

Value: 
Type: Comma separated list of speeds, or empty for arbitrary speeds

FanDriver.tech

Value: fan
Type: One of the strings 'fan', 'piezoelectric', 'peltier', 'liquid'

Configures the technology of the cooling device that the 'fan' is provided by. The recognised technology types are:


Configuration group 'Filesystem'

The Filesystem configuration group currently covers two parts of the configuration - that for the file system as a whole (what would be FileSwitch in RISC OS Classic), and the native filesystem (which would be a separate file system).

The native filesystem provides an interface to the host disc, rooted at a location defined by native_directory. The files within this directory use the RISC OS storage convention of appending ,xxx for filetypes, or ,llllllll,xxxxxxxx for fully specified load and exec addresses.

Filesystem.check_open_files

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether open files are checked for file operations and denied if they are.

When this option is enabled it means that:

When enabled, this option matches the behaviour of FileCore file systems by generating an error. When disabled, it matches many network file systems.

Filesystem.close_0_effect

Value: error
Type: One of the strings 'error', 'ignore'

Configures the behaviour when OS_Find 0, 0 (close files on current filesystem) is issued. The available behaviours are:

Filesystem.enumerate_context

Value: identity
Type: 'identity' or one of the other mangler names

Configures how the opaque context values are returned from the OS_GBPB enumeration. The values which can be used include:

Other forms of offset may be available.

Filesystem.enumerate_corrupts_buffer

Value: no
Type: Regular expression matching: no|increment|random|[0-9a-fA-F]{1,2}

Configures the type of buffer corruption applied to the OS_GBPB enumeration buffer. The buffers supplied may be writen in part or not at all by the filesystem. This configuration ensures that the buffer is written to with data to provoke errors.

The corruption options available are:

Filesystem.enumerate_last_chunk

Value: efficient
Type: One of the strings 'efficient', 'classic'

Configures how the last chunk of an OS_GBPB enumeration will be returned. The values which can be used are:

Filesystem.filehandle_max

Value: 255
Type: int

Configures the highest file handle that will be used. File handle usage goes down from the highest file handle. Using file handles greater than 255 may result in some interfaces not working as expected.

Filesystem.filehandle_min

Value: 1
Type: int

Configures the lowest file handle that will be used.

Filesystem.filetype_strict_range

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether OS_FSControl 18 (convert filetype to string) will take a strict view on what a filetype is. The Classic implementation (and PRM) declare the filetype to only be bits 0-11; that is, the other bits are ignored. However, it may be useful to only process values in a valid filetype range, so this option is able to be turned on.

Filesystem.info_use_sysdateformat

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether *Info (and *Ex) use the Sys$DateFormat variable, (as is documented in the PRMs), or use a hard-coded date format (as it implemented in RISC OS Classic). The default in Pyromaniac is to use the variable, as this gives the greatest flexibility, and produces the same output by default.

Filesystem.load_gencode_synchronises

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether OS_File Load operations on Generic Code (&F95) files will cause an implicit OS_SynchroniseCodeAreas. Documentation stated that this would happen from RISC OS 3.71, but it does not appear implemented on RISC OS Classic.

By default we operate as documented, but this can be disabled to simulate behaviour of RISC OS Classic.

Filesystem.mask_timestamp

Value: none
Type: Date time in the form YYYY-MM-DD[THH:MM:SS[.CC]], or a hex string or 'none'

Configures what, if any, timestamp will be used for files on the filesystem. When this is set a value other than none, all files will return the timestamp supplied. This can ensure that tests are consistent.

Filesystem.multifile_unsupported_flags

Value: error
Type: One of the strings 'error', 'warning', 'ignore'

Configures the behaviour of unsupported flags passed to *Wipe*Copy and *Count (and their OS_FSControl counterparts). Not all of the flags in these multi-file operations are supported, and those which are not can have different behaviour:

Filesystem.native_boot_option

Value: run
Type: One of the strings 'none', 'load', 'run', 'exec'

Configures the native filesystem's boot option, which would normally be set with *OPT 4, <opt>.

Filesystem.native_directory

Value: .
Type: ValidDirectory

Configures where the native fileystem reads as the root of the disc.

Filesystem.native_directory_mapping

Value: 
Type: Comma separated list of paths to map in form <host-path>=<riscos-path>

Configures a list of mount points for native directories within the native directory tree. The mount points are specified as a comma separated list of mappings from the location on the host filing system to locations in the RISC OS source tree.

These individual mappings take the form:

`<host-path>`=`<riscos-path>`

Filesystem.native_encoding

Value: utf-8
Type: str

Configures the encoding that will be used for the native file system. By default this will be utf-8. If the riscos_encoding is set to identity this configuration will be ignored.

Filesystem.native_freespace

Value: host
Type: 'host', 'error' or Size as a number which may be suffixed by 'K', 'M', 'G', 'T', 'P', or 'E', and '-1'

Configures what should be returned for the free space of the native filesystem. This can be configured to:

Filesystem.register_filesystem

Value: error
Type: One of the strings 'error', 'warning', 'ignore'

Configures the behaviour of adding and removing filing systems. As filing systems are not supported in the current version of Pyromaniac, this can be used to identify allow some software to work which would otherwise fail due to the lack of the filing systems. Configurable behaviours:

Filesystem.riscos_encoding

Value: latin-1
Type: str

Configures the encoding that will be used for the native file system. By default this will be latin-1, but can be identity to pass through.

Filesystem.unix_executables

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the executable bit is translated into a filetype of Unix Executable or not. This operation is bi-directional - setting the filetype will control the executable bit in the filesystem permissions.


Configuration group 'FilesystemStatistics'

FilesystemStatistics.enable

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the file system tracks statistics about the file operations that have been performed.


Configuration group 'Font'

Font.cache_size

Value: 64 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the amount of space returned when the font cache size is queried through Font_CacheAddr. There is no cache in RISC OS space, so this is a fixed value.

Font.cache_used

Value: 0
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the amount of space returned when the used font cache space is queried through Font_CacheAddr. There is no cache in RISC OS space, so this is a fixed value.

Font.enforce_trailing_space_on_matrix

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the font qualifier supplied in a font name is required to include a trailing space. The PRM states that this is required, but the FontManager on RISC OS Classic does not actually enforce this. If this option is enabled, the trailing space will be required. If this option is disabled, it may be present or absent.

Font.free_early

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether calls to Font_LoseFont cause the underlying implementation to free the font handle immediately. If this is disabled, the font will be retained in case it is needed again. This is closer to the RISC OS Classic implementation.

Font.handle_max

Value: 255
Type: int

Configures the highest font handle to use. Although the font handle should be considered an opaque 32bit value, values > 256 are not representable in certain interfaces (the VDU sequences and the Wimp_LoadTemplate interfaces are two of those that are limited).

Font.handle_min

Value: 1
Type: int

Configures the lowest font handle to use.

Font.reuse_handles

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether handles supplied by the underlying implementation will be reused if they match existing usage. If this is disabled, the counters will only ever show a value of 1, and each call to Font_FindFont will get a new handle.


Configuration group 'FontManager'

FontManager.caret_loops

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the Font_Caret SWI will render the caret with 'loops' at the vertical ends. The PRMs document that this is how FontManager renders the caret. RISC OS Classic does not do this, and so this option is disabled by default.

FontManager.converttoos_rounded

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the Font_ConverttoOS SWI will round the OS coordinates to pixels on the screen. The PRMs does not document that the values converted will be rounded. RISC OS Classic does round the values, and so this option is enabled by default.

FontManager.error_on_kerning

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether requesting kerning on a Font_Paint or Font_ScanString SWI call will report an error or not.

FontManager.fontv

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the Font SWIs are dispatched through FontV. Classic FontManager does not support this (disabled in 1992), so by default the feature is disabled. However, as the vector is allocated, it can be enabled. The SWI offset is passed in R8, following the scheme used by DrawV, and should be claimed by handlers of the SWIs by returning with R8 = -1.


Configuration group 'Freeway'

Freeway.local_address

Value: 127.0.0.1
Type: IPv4 address in the form 'a.b.c.d' where each component is 0-255

Configures the IPv4 address which is returned for the locally registered objects. Defaults to localhost.


Configuration group 'GPIO'

GPIO.implementation

Value: null
Type: str

Configures the implementation to use for the GPIO module. The following implementations are provided:


Configuration group 'GPIOMCP23008'

GPIOMCP23008.i2c_address

Value: &20
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the the I2C address of the MCP23008. By default this is &20, but usually the address can be selected by changing jumpers or bridging contacts. The address is in I2C format, without the W/R bit (ie 7 bit value).


Configuration group 'GPIOMCP23017'

GPIOMCP23017.i2c_address

Value: &20
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the the I2C address of the MCP23017. By default this is &20, but usually the address can be selected by changing jumpers or bridging contacts. The address is in I2C format, without the W/R bit (ie 7 bit value).


Configuration group 'GPIOPCF8574'

GPIOPCF8574.i2c_address

Value: 32
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the I2C address of the PCF8574/PCF8575 device. By default this is &20, but usually the address can be selected by changing jumpers or bridging contacts. The address is in I2C format, without the W/R bit (ie 7 bit value).


Configuration group 'GPIOStatic'

GPIOStatic.pin_constants

Value: 1
Type: List of constants for each pin in the GPIO interface

Configures the values returned by each pin provided by the GPIO module. This option is a string of 0 and 1 values for each pin.

GPIOStatic.pin_count

Value: 1
Type: int

Configures the number of pins reported by the GPIO module.


Configuration group 'GPIOWx'

GPIOWx.layout

Value: hgrid
Type: One of the strings 'vertical', 'vgrid', 'hgrid'

Configures the layout of the pins in the WxWidgets window. Options are:

GPIOWx.layout_wrap

Value: 4
Type: int

Configures the number of rows or columns that will be used to wrap the display of the pins in the WxWidgets window.

GPIOWx.pin_count

Value: 8
Type: int

Configures the number of pins reported by the GPIO module.


Configuration group 'GSTrans'

GSTrans.bad_number_effect

Value: 8bit+warn
Type: Regular expression matching: (ignore|8bit|error)(+warn)?

Configures how the GSTrans operations will handle cases where a number is specified within <>, which is outside the range 0-255. Under RISC OS Classic this is generally handled by truncating to 8bit (except with OS_GSInit/OS_GSRead). However, it is possible to treat them differently. There are 3 options for the handling of bad numbers:

Each option can be suffixed with +warn, which will generate a warning through the trace system.


Configuration group 'GTK'

GTK.maximum_redraw_rate

Value: 20
Type: int

Configures the maximum rate at which the GTK window will be updated. If this is set too high, the system may spend more time redrawing than executing code. If this is set too low, output may not refresh in a timely manner as it is generated.

GTK.open_at_front

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the GTK window will be opened at the front of the stack. By default on some systems the window is opened behind the terminal that launched it. When this option is set, the window should be raised to the front on opening.


Configuration group 'Graphics'

Graphics.cursorflash_enable

Value: auto
Type: One of the strings 'auto', 'force', 'no'

Controls whether the cursor will flash on and off. These updates may be more expensive than is desirable, and may introduce a non-determinancy to the system. When enabled they install a ticker which runs every centisecond, which will slow the system.

Options are:

Graphics.cursorflash_rate

Value: 32
Type: int

Configures how fast the regular cursor will flash, in centiseconds. RISC OS Classic used a rate that was tied to the VSync system of 16 VSyncs. RISC OS Pyromaniac does not have a VSync control for the cursor flash; instead it's based on the clock. The rate given is measured in centiseconds, and the default of 32 will approximate the rate for a 50Hz display.

Graphics.font_fake

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the fonts returned by the FontManager are entirely fake. When this option is enabled, the standard RISC OS font names are returned but these fonts will not do anything.

Graphics.implementation

Value: null
Type: str

Configures which implementation will be used for the clipboard. The following implementations are provided:

Graphics.pointer_off_shape

Value: cross
Type: One of the strings 'default', 'cross', 'none'

Configures the UI pointer shape to use when the RISC OS pointer has been turned off. It can take one of the following values:

Graphics.pointer_on_shape

Value: riscos
Type: One of the strings 'default', 'cross', 'riscos', 'none'

Configures the UI pointer shape to use when the RISC OS pointer has been turned on. It can take one of the following values:

Graphics.polyhline_enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the PolyHLine address VDU variable is returned by the system. This variable was introduced in RISC OS Select, so isn't guaranteed to be present. When disabled, the variable will return as if it is not present.

Graphics.screen_banks

Value: 2
Type: int

Configures the number of screen banks available for the the display.

Graphics.vsync_enabled

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the VSync event is triggered by the system through the IRQs. If this option is disabled, the VSync event will never be triggered. This is the default as processing the VSync is not normally required for testing most software.

Graphics.vsync_rate

Value: 20
Type: float

Configures how regularly the vsync event is triggered. This also affects the rate that videos will be recorded by the Cairo system.


Configuration group 'GraphicsBBCBasic'

GraphicsBBCBasic.save_filename

Value: 
Type: Regular expression matching: .*\.(png|pdf|svg|pbm)

Configures the native filename to which the graphics screen will be saved on exit. Usually it would be suffixed by ,fd1 to indicate BBC BASIC detokenised text. If the option is empty, the output will be to stdout.


Configuration group 'GraphicsCairo'

GraphicsCairo.antialias

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether anti-aliasing (smoother lines) are enabled within Cairo. As RISC OS does not expect this, it is disabled by default.

GraphicsCairo.bitmap_font

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the RISC OS bitmap font will be used, or a native system font. As RISC OS expects the bitmap font, that is the default.

GraphicsCairo.fonts_designer_bounds

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the font size returned by Font_ReadInfo will use the font designer's bounds for the characters. When this option is enabled, the font bounds returned by the SWI will cover the font designer's intent for the font in addition to the sizes of typical characters. When disabled, the font bounds returned by the SWI will only use the size of typical characts.

This option is disabled by default because most fonts will include the size of double-width characters, which will increase the size of the font horizontally beyond the usual expectations of RISC OS applications.

GraphicsCairo.fonts_fontconfig

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the FontManager will enumerate fonts from the system installed 'font-config' tool to find fonts which can be used. These fonts will be enumerated and mapped to RISC OS font names.

GraphicsCairo.fonts_fontconfig_allow

Value: 
Type: listlower

Configures the fonts that will be allowed to be returned by the FontConfig system to RISC OS, using the RISC OS names to filter the fonts. The names may be wildcarded with * and ? to match families, etc. If this option is set, and no value is used for the fonts_fontconfig_deny option, only the fonts matching this specification will be allowed. If it is used in conjunction with the fonts_fontconfig_deny option, the allow takes precedence.

This option, together with fonts_fontconfig_deny, can reduce the fonts that are seen by RISC OS from the host system. This may make enumeration faster, or avoid problems with certain fonts.

GraphicsCairo.fonts_fontconfig_deny

Value: 
Type: listlower

Configures the fonts that will not be allowed to be returned by the FontConfig system to RISC OS, using the RISC OS names to filter the fonts. The names may be wildcarded with * and ? to match families, etc.

This option, together with fonts_fontconfig_allow, can reduce the fonts that are seen by RISC OS from the host system. This may make enumeration faster, or avoid problems with certain fonts.

GraphicsCairo.fonts_standard

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Configures whether the FontManager will use the standard serifsans-serif and monospace for Trinity, Homerton and Corpus fonts. When this option is enabled, these RISC OS font families will be enumerated and may be selected in their standard variants.

GraphicsCairo.fonts_standard_synthetic

Value: on
Type: Angle as defaultsynthetic, or degrees clockwise as a decimal

Configures whether the FontManager's handling of the standard fonts will synthesise oblique fonts. It can take one of 3 values:

This option is provided because on some platforms, in some implementations, the sans-serif font has been seen to not select an italic font. Thus, we can force the use of such sans-serif fonts in that case.

GraphicsCairo.jpeg_transformations

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether JPEG_PlotTransformed can render arbitrary transformed images. In RISC OS Classic, this is not possible, so applications may not expect it to work. Similarly, anyone using the feature may find that they want to know how the application works without the transformations. This switch allows them to be turned off.

GraphicsCairo.save_filename

Value: image.png
Type: Regular expression matching: .*\.(png|pdf|svg|pbm)

Configures the native filename to which the graphics screen will be saved on exit. It may be suffixed by .png or .svg to determine the format. The screen is only saved if the save_on_exit is enabled.

GraphicsCairo.save_on_exit

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the contents of the screen are saved when the system exits. The screen will be saved to the filename specified by save_filename.

GraphicsCairo.tile_acceleration

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether tile plotting uses the accelerated rendering provided by the Cairo rendering system, or falls back to the baseline version. When this option is enabled, rendering will be faster, but it may exhibit differences in positioning compared to the base implementation.

GraphicsCairo.video_directory

Value: video
Type: str

Configures the directory into which frames from the graphics system will be saved. This is only used when video_enable is set.

GraphicsCairo.video_enable

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether each 'frame' of the screen is saved to a file, together with a script to join them to make a video. The frames will be stored in the directory specified by video_directory. The file ffmpeg_concat.txt is also written, which contains the script necessary to create a video from these images. The command necessary to create an MP4 video from these files can be found at the head of the file.

If the resolution is changed, a new video will be started, with a script file named ffmpeg_concat_#.txt. As frames with different resolutions may need to be processed separately to ensure that they render properly, these must be separate streams.

GraphicsCairo.video_pointer

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the pointer is recorded on to the frames of the video.


Configuration group 'GraphicsFrameDevice'

GraphicsFrameDevice.implementation

Value: null
Type: str

Configures the implementation which will be used to provide the frame device system. Implementations may be provided for different physical hardware or virtual frame buffers. The implementations provided are:

GraphicsFrameDevice.last_frame

Value: clear
Type: One of the strings 'none', 'clear', 'flush'

Controls the behaviour on finalisation for the last frame. By default the frame display is cleared, but it may be useful to flush the final frame to the frame device. This can be useful if it is necessary to see the final frame for testing, or to leave the device in a known state.

The behaviour of the frame device before finalising can be:

GraphicsFrameDevice.redraw_rate

Value: 10
Type: float

Configures the frame rate at which the frame device display will be updated. If this is set too high, the system may spend more time redrawing than executing code. If this is set too low, output may not refresh in a timely manner as it is generated. In general, the frame devices will be slow, so by default this has a low frame rate.

GraphicsFrameDevice.redraw_rate_mode

Value: limited
Type: One of the strings 'limited', 'fixed'

Configures the manner in which redraw updates are issued to the frame device. There are two modes:


Configuration group 'GraphicsFrameDeviceANSI'

GraphicsFrameDeviceANSI.size

Value: 128x64
Type: Dimensions in the form: <width>x<height> or <size>

Configures the size of the console frame device in pixels.


Configuration group 'GraphicsFrameDeviceConsole'

GraphicsFrameDeviceConsole.size

Value: 128x64
Type: Dimensions in the form: <width>x<height> or <size>

Configures the size of the console frame device in pixels.


Configuration group 'GraphicsFrameDeviceSSD1306'

GraphicsFrameDeviceSSD1306.fliph

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the output is flipped horizontally, with the left most pixel appearing on the right of the display. If the display is turned upside down, it will usually be necessary to set both the options for fliph and flipv.

GraphicsFrameDeviceSSD1306.flipv

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the output is flipped vertically, with the top most pixel appearing on the bottom of the display. If the display is turned upside down, it will usually be necessary to set both the options for fliph and flipv.

GraphicsFrameDeviceSSD1306.invert

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the display is inverted, with black pixels being lit and other pixels being dark.

GraphicsFrameDeviceSSD1306.rotate

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the output is rotated through 90 degrees. Depending on the orientation of the display, it may be necessary to set the fliph or flipv options.

GraphicsFrameDeviceSSD1306.size

Value: 128x64
Type: Dimensions in the form: <width>x<height> or <size>

Configures the size of the console frame device in pixels. Only certain resolutions are supported:


Configuration group 'GraphicsFrameDeviceTuringSmartScreen'

GraphicsFrameDeviceTuringSmartScreen.fliph

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the output is flipped horizontally, with the left most pixel appearing on the right of the display. If the display is turned upside down, it will usually be necessary to set both the options for fliph and flipv.

GraphicsFrameDeviceTuringSmartScreen.flipv

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the output is flipped vertically, with the top most pixel appearing on the bottom of the display. If the display is turned upside down, it will usually be necessary to set both the options for fliph and flipv.

GraphicsFrameDeviceTuringSmartScreen.rotate

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the output is rotated through 90 degrees. Depending on the orientation of the display, it may be necessary to set the fliph or flipv options.

GraphicsFrameDeviceTuringSmartScreen.serial_device

Value: hwgrep://usbmodem
Type: str

Configures the serial device used for the data from the USB device. This is in the form of a PySerial URL. For example, you might use hwgrep://usbserial to select the first USB serial device.


Configuration group 'GraphicsUI'

GraphicsUI.border_colour

Value: riscos
Type: Hexadecimal colour in the form &RRGGBB, or 'riscos' to use RISC OS defined colour

Configures the colour of the border around the RISC OS screen, between the screen and the window frame. By default, when set to 'riscos', this is configured by RISC OS, but can be overridden by setting an explicit colour in this option.

RISC OS Pyromaniac defaults the border dark grey, to differentiate it from the usual black background, but be clearly not part of the screen. Colours are specified in the form '&RRGGBB'.

GraphicsUI.border_size

Value: 4
Type: int

Configures the size of the border around the RISC OS screen, between the screen and the window frame. This is a small value by default, to ensure that curved window borders do not obscure the RISC OS screen content.

GraphicsUI.min_width

Value: 1024
Type: int

GraphicsUI.scale

Value: 1.0
Type: float

Configures the scale factor applied to the Graphics UI as a floating point value. Values larger than 1 will scale the display up. Values smaller than 1 will scale the dispay down.

GraphicsUI.title

Value: RISC OS Pyromaniac
Type: str

Configures the title of the Graphics UI window. Eventually this will include template strings, but currently this is just a bare string.


Configuration group 'Heap'

Heap.clear_alloc_enable

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether allocated blocks are cleared by writing a value (clear_value) over them. This can help to identify memory that has not been initialised.

Heap.clear_alloc_value

Value: &a110ced3
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the value which will be used to overwrite allocated values when the clear_alloc_enable option is set.

Heap.clear_free_enable

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether freed blocks are cleared by writing a value (clear_value) over them. This can help to identify memory reuse problems.

Heap.clear_free_value

Value: &f0f1f2f3
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the value which will be used to overwrite freed values when the clear_free_enable option is set.

Heap.extend_to_nothing_is_error

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether resizing a heap to nothing is considered to be an error or not. On RISC OS classic this returns a value of -1 for the block pointer. This is not documented, and it's surprising, as it may result in aborts. Pyromaniac defaults to reporting an error, as this may be a bad effect - if you know you're freeing a block, you should really free it.

Heap.free_link_is_heap_offset

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the free link within the heap is an offset from the start of the heap, or an offset from the block. In RISC OS Classic, the free link within the heap is relative to the free block's base, not relative to the base of the heap. The documentation in the PRM implies that it is an offset relative to the heap base, and this is a more logical implementation.

When this option is enabled, the free link will be relative to the heap base. When this option is disabled, the free link will be relative to the free block.

This option cannot be reliably changed whilst the system is running.

Heap.maximum_heap_size

Value: 512 M
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the largest that a heap can be. This limit ensures that we can detect some corruptions, and may detect oversized initialisations.

Heap.minimum_allocation

Value: 12
Type: int

Configures the smallest memory allocation supported by the heap system. Requests for heap blocks will be limited to this minimum size. RISC OS Classic has a minimum of 12.

Heap.rounding

Value: 8
Type: int

Configures the rounding multiple used for blocks allocated into the heap. The PRM declares that this rounding is 8 bytes. However, it could be larger than this if you wished to provide less granular allocations (which may improve fragmentation).


Configuration group 'Hourglass'

Hourglass.implementation

Value: console
Type: str

Configures the implementation to use for the hourglass. The following implementations are provided:


Configuration group 'IIC'

IIC.implementation

Value: internal
Type: str

Configures the implementation to use for the IIC module. The following implementations are provided:


Configuration group 'IICInternal'

IICInternal.devices

Value: pcf8583
Type: str

Configures the devices which will be provided by the IIC internal implementation. Many internal devices may be available and can be mapped to arbitrary addresses with different configurations.

Configuration option:

{`<device>`[=`<hex-iic-address>`][:{`<option>`=`<value>`,}*];}*

Examples:


Configuration group 'InetServices'

InetServices.use_host_services

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the InetServices module will use the service database from the host system to resolve port numbers.


Configuration group 'Input'

Input.eof_effect

Value: error
Type: One of the strings 'none', 'error', 'escape', 'exit', 'reset'

Configures the effect that EOF (usually ctrl-d) from the terminal has on the system. The effects can be:

Input.flush_output_on_read

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the VDU output is explicitly flushed when a character is read from the input stream. This ensures that prompts which do not end in a newline are displayed before input is waited on. Together with the VDU options for flushing, this ensures that the experience of using RISC OS is similar to that of other non-RISC OS applications.

Input.keyboard_id

Value: 1
Type: int

Configures the ID used by the keyboard system when returning the keyboard identifier. Although the keyboard system is implemented very differently by RISC OS Pyromaniac, this identifier can be configured to an arbitrary value.

Currently defined IDs are:

Input.keypress_enable

Value: auto
Type: One of the strings 'auto', 'force', 'no'

Controls whether key press events are handled by the system. The key press events handled by KeyV can be enabled or disabled as needed. When enabled they install a ticker which runs every centisecond, which will slow the system.

Options are:

Input.keypress_event_enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether Event_Keyboard event is generated by the system. The key press events handled by KeyV can trigger the Event_Keyboard event when this is enabled. As the event is rarely used and may slow the system down, it may be disabled.

Input.readline_native

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the OS_ReadLine interfaces are passed through the native readline (either GNU or BSD).

If this is enabled, the line input will take the same features as the native readline, such as editing and history. However, whilst line editing is in use, RISC OS will be suspended. No interrupts, callbacks or other events will be passed through the system until the line input is complete. This includes the escape key (usually ctrl-c) which will only take effect after the line has been entered.

If this is disabled, the line input will be handled by the RISC OS key input.

Input.readline_native_completion

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the native readline interface performs tab completion. When this option is enabled, *-commands, system variables and filenames will attempt to be completed when the tab key is pressed.

Input.readline_native_encoding

Value: utf-8
Type: str

Configures the encoding that's used for native input. This will almost always be utf-8 on modern systems, but could be set to identity to pass through directly.

Input.readline_native_history_file

Value: ~/.pyromaniac_history
Type: str

Configures where the native readline system stores the history.

Input.readline_native_history_length

Value: 1000
Type: int

Configures how many lines the native readline system will store in the history file.

Input.readline_native_prompt

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the VDU output is tracked to produce a native readline prompt that matches the output from RISC OS. For example, the * prompt (CLI$Prompt) from the Supervisor or the > prompt from BASIC will be used as the readline prompt.

If this is disabled, any readline operations which require the whole line to be redrawn will lose the original prompt.


Configuration group 'International'

International.country

Value: 1
Type: int

Configures the country number used by the International module.


Configuration group 'Internet'

Internet.enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the Internet module is enabled. If this is disabled, the Socket SWI calls will report errors.

Internet.errors_0_based

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether error numbers are returned based at 0. Under RISC OS versions up to RISC OS Select, the error numbers are returned based at 0. In RISC OS 5, and with Internet 7, the error numbers are based at &20E00.

Internet.gifconf_ignore_unknown

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether SIOCGIFCONF/SIOCOGIFCONF return no information for host interfaces which contain no RISC OS supported address formats. If this is disabled, such interfaces will return their name in the response but with the af_family field set to 0 (which is invalid).

Internet.gifconf_truncate_osockaddr

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether SIOCGIFCONF truncates interfaces which would not fit into the old sockaddr buffer. Under Internet 5, over long sockaddrs would be truncated (which includes AF_LINK) when they were requested with the SIOCGIFCONF ioctl call. If this is disabled, such over long sockaddrs will instead be omitted from the response.

Internet.hostname

Value: host
Type: Regular expression matching: none|host|random|[0-9]+|[a-z][a-z0-9]+

Configures the hostname that will be used for the system. By default this will be the host system's hostname, but it can be controlled here. Magic hostname strings will trigger special behaviour:

Internet.tablesize

Value: 128
Type: int

Configures the size of the socket table. This controls how many sockets can be open simultaneously across the whole system. Increasing the size of this may cause problems for clients using Socket_Select, as they may not allocate enough space for the additional bit fields.


Configuration group 'Kernel'

Kernel.boot_fallback

Value: gos
Type: One of the strings 'exit', 'gos', 'bootmenu'

Controls the second operation after booting from the filesystem fails. The options are:

Kernel.boot_from_fs

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether, after reset, the system will attempt to boot from the filesystem. If booting from the filesystem fails, the configuration option boot_fallback determines what the next operation will be.

Kernel.boot_menu

Value: Resources:$.Resources.BootMenu.BootMenu
Type: str

Controls what path is used to execute the boot menu.

Kernel.da_highvectors

Value: 49
Type: int

Controls the dynamic area number for the high CPU vector area. By default this is the registered dynamic area number.

Kernel.da_zeropage

Value: 48
Type: int

Controls the dynamic area number for zero page. By default this is the registered dynamic area number.

Kernel.interrupt_control_swis

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the OS_IntOn and OS_IntOff SWIs are effective or not. If this is disabled, the SWIs will have no effect.

Kernel.reset_banner

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether, on a reset, the service for the banner will be issued. If this is disabled, no banner will be shown.

Kernel.reset_banner_processor

Value: auto
Type: str

Configures the processor name that is passed to the start up banner when used. The processor name may either be a code name for the processor, an empty string to not pass a processor name to the service, or the string 'auto' to read the processor model from Unicorn. If the default emulation is used, the processor model will be omitted.

Under RISC OS Select the following values were used: 600, 610, 700, 710, 810, SA110, 7500, 7500FE, SA110_2.

Kernel.reset_bell

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether, on a reset, the BEL will be issued. When set, the service for the the bell will be issued, which will result in a sound being issued through either the Sound system or the console bell.

Kernel.reset_modechange

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether, on a reset, a mode change will be issued. If this is disabled, the mode change is not issued which has effects for the ANSIText VDU implementation which will not clear the screen.

Kernel.swi_recursion_limit

Value: 0
Type: int

Controls the recursion depth for SWI calls. It is possible for SWI calls to recurse until the SVC stack is exhausted. However, this can be artificially forced to fail at an earlier point by setting this limit. If the value is set to 0, no SWI recursion limiting is performed.

Kernel.swimisuse_omit_swis

Value: 
Type: Comma separated list of SWI numbers or names

Configures which SWIs we will never warn about if the debug option 'swimisuse' is enabled.

It is common to find that modules and interrupt handlers use some SWI calls without the X-bit. SWIs such as OS_ReadMonotonicTime, for example, would never be expected to report an error - or if they did, you have much bigger problems. Thus, these might be used in privileged modes without fear that bad effects will happen.

This list controls which SWI numbers will be ignored if a warning would be generated.

Kernel.trace_ignores_write_swis

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the OS_Write* SWIs will be ignored by the tracing of SWIs.


Configuration group 'KernelDebug'

KernelDebug.implementation

Value: null
Type: str

Configures the implementation that will be used for the KernelDebug interfaces.


Configuration group 'KernelDebugSocket'

KernelDebugSocket.destination

Value: localhost:9000
Type: str

Configures the destination to which the socket will be connected when used. The destination should be in the form <hostname>:<port>.


Configuration group 'LegacyBBC'

LegacyBBC.enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the LegacyBBC module will initialise or not. This may be useful to identify behaviour which is BBC specific and would fail if we stopped pretending to be a BBC.

LegacyBBC.envelope_stub

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether we provide a stub for ENVELOPE (OS_Word 8) which does nothing. When this option is enabled, the ENVELOPE command will do nothing. When it is disabled, the ENVELOPE command will give an error.

By default this option is enabled to make it easier to port programs from the BBC - on RISC OS Classic, unknown OS_Word calls would not generate errors.

LegacyBBC.warnings

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the LegacyBBC module will report warnings through the trace log when its interfaces are triggered. This may be useful to identify behaviour which is BBC specific and would fail if we stopped pretending to be a BBC.


Configuration group 'MAC'

The MAC group allows the ethernet MAC address to be configured. The ethernet MAC address is returned by OS_ReadSysInfo 4.

MAC.high

Value: &0
Type: Hexadecimal value, optionally prefixed by '&'.

MAC.low

Value: &0
Type: Hexadecimal value, optionally prefixed by '&'.


Configuration group 'MCP2221'

MCP2221.device_number

Value: 0
Type: int

Configures the device number that is used for the MCP 2221 interface. If multiple MCP 2221 interfaces are connected, only the one configured device given can be controlled.

MCP2221.i2c_speed_kbits

Value: 100
Type: int

Configures the speed that the I2C will communicate at with in kbit per second. By default this will be 100 kbit/s, which is the standard speed for I2C.

MCP2221.reset_delay

Value: 1.0
Type: float

Configures the delay when the MCP 2221 is reset in seconds.

MCP2221.reset_on_use

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the MCP 2221 will be reset when it is first used, or assumed to be in a working state.


Configuration group 'MMIO'

MMIO.enabled

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the memory mapped I/O is able to be used within Pyromaniac. MMIO is very expensive in processing time. It is not currently used within the current implementation of Pyromaniac.


Configuration group 'Memory'

Memory.statistics

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the statistics for the internal Memory objects are collected during execution. These statistics show how much the Memory object is used, and the distribution of the operations performed by the Pyromaniac system. Whilst largely for debugging, this provides information on how the OS itself is accessing memory and may indicate bottlenecks.


Configuration group 'MemoryMap'

The MemoryMap configuration group controls the locations and sizes of memory areas within the Pyromaniac system. Each memory area has 3 settings:

MemoryMap.abtstack_base

Value: &8405000
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the base address of the ABT stack area.

MemoryMap.abtstack_maxsize

Value: 16 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the maximum size of the ABT stack area. It is unlikely that resizing the ABT stack at runtime will function well.

MemoryMap.abtstack_size

Value: 16 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the initial size of the ABT stack area.

MemoryMap.appspace_base

Value: &8000
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the base address for application space. Setting this to anything other than &8000 is unlikely to work.

MemoryMap.appspace_maxsize

Value: 48 M
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the maximum size of the application space.

MemoryMap.appspace_size

Value: 1 M
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the initial size of the application space.

MemoryMap.irqstack_base

Value: &4000000
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the base address of the IRQ stack area. The stack must have its base at a megabyte boundary.

MemoryMap.irqstack_maxsize

Value: 16 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the maximum size of the SVC stack area. It is unlikely that resizing the IRQ stack at runtime will function well.

MemoryMap.irqstack_size

Value: 16 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the initial size of the SVC stack area.

MemoryMap.modules_base

Value: &9000000
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the base address of the module code area. The module code area is only distinct from the RMA when configured or when using AArch64.

MemoryMap.modules_maxsize

Value: 16 M
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the maximum size of the module code area. The module code area is only distinct from the RMA when configured or when using AArch64.

MemoryMap.modules_size

Value: 4 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the initial size of the module code area. The module code area is only distinct from the RMA when configured or when using AArch64.

MemoryMap.rma_base

Value: &7000000
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the base address of the module allocation area.

MemoryMap.rma_maxsize

Value: 15 M
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the maximum size of the module allocation area.

MemoryMap.rma_size

Value: 1 M
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the initial size of the module allocation area.

MemoryMap.rom_base

Value: &3800000
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the base address of the ROM area.

MemoryMap.rom_maxsize

Value: 8 M
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the maximum size of the ROM area.

MemoryMap.rom_size

Value: 1 M
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the initial size of the ROM area.

MemoryMap.svcstack_base

Value: &4100000
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the base address of the SVC stack area. The stack must have its base at a megabyte boundary.

MemoryMap.svcstack_maxsize

Value: 32 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the maximum size of the SVC stack area. It is unlikely that resizing the SVC stack at runtime will function well.

MemoryMap.svcstack_size

Value: 32 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the initial size of the SVC stack area.

MemoryMap.sysheap_base

Value: &4109000
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the base address of the system heap area. The system heap is used for all internal Pyromaniac allocations.

MemoryMap.sysheap_maxsize

Value: 3040 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the maximum size of the system heap area. The system heap is used for all internal Pyromaniac allocations.

MemoryMap.sysheap_size

Value: 128 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the initial size of the system heap area. The system heap is used for all internal Pyromaniac allocations.

MemoryMap.undstack_base

Value: &8400000
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the base address of the UND stack area. The stack must have its base at a megabyte boundary.

MemoryMap.undstack_maxsize

Value: 16 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the maximum size of the UND stack area. It is unlikely that resizing the UND stack at runtime will function well.

MemoryMap.undstack_size

Value: 16 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the initial size of the UND stack area.

MemoryMap.zeropage_enable

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether zero page is given memory or not. If this is disabled, access to zero page will cause an abort.


Configuration group 'MessageTrans'

MessageTrans.overflow_error

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether MessageTrans_Lookup returns an error on buffer overflow. When enabled, a Buffer Overflow error is returned. When disabled, the translated string is returned truncated at the buffer length. The classic MessageTrans never returns an overflow error, always truncating, although this is not documented.

MessageTrans.support

Value: simple
Type: One of the strings 'none', 'simple', 'full'

Controls how the MessageTrans module functions. It can operate with different levels of support, where to make the system faster, or less encumbered by parts of the OS that do not exist.


Configuration group 'Modes'

Modes.numbered_modes

Value: 
Type: {<modenum>:{<variable>=<value>,}*;}*

Configures extra numbered modes that may be used by the guest system.

Mode definition: <number>:<parameters>{;<mode definition>}*

Parameters: <variable>=<value>{,<parameters>}*

Variables may be a number or a named variable:


Configuration group 'Modules'

Modules.architecture_flag

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Configures whether the initialisation offset for modules allow for the 'architecture' flag. When enabled, bit 30 is allowed to be set. This flag indicates that the module flags contain an 'architecture' field, which indicates what architecture the module is for. When disabled, if bit 30 is set, the module will be rejected by the header check (this is in line with RISC OS Classic).

The architecture field in the flags will never be checked on RISC OS Classic.

Modules.default_postfix

Value: Base
Type: str

Configures what the default module postfix should be for the base instance.

Modules.modules_area_forced

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the modules area is forced. When this option is enabled, relocatable modules will be allocated in a separate area which is allocated in page-sized chunks. When this option is disabled, relocatable modules will be allocated in the RMA as in RISC OS Classic.

In AArch64, modules will always be load in the separate modules area to ensure they are page aligned.

Modules.rominit_errors_fatal

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether, during initialisation the ROM modules which produce errors are fatal for the system.

Modules.rominit_noisy

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether, during initialisation the ROM module names and any errors are displayed. Mirrors a similar option in the classic Kernel.

Modules.unplug

Value: ROM:
Type: UnplugList

Configures which modules will not be initialised from the internal ROM, or any extension ROMs. This is distinct from the NVRAM configuration which unplugs modules (which is not currently implemented).

The configuration is supplied as a list of ROM sections and module names to be unplugged. The ROM sections and modules are listed in a ; separated list, in the form <section-name>:<modules>, where <modules> is a , separated list.

Valid section names are:

For example:


Configuration group 'NVRAM'

NVRAM.backingfile

Value: none
Type: str

Configures the backing file used for the NVRAM configuration data, or 'none' to disable reading and writing the configuration data. When set, the backing file will be loaded on boot, and written out according to the configuration of backingfile_write.

NVRAM.backingfile_write

Value: on-exit
Type: One of the strings 'never', 'always', 'on-exit'

Configures when the backing file used for the NVRAM configuration data, will be written to disc. The options available are:

NVRAM.format

Value: auto
Type: One of the strings 'capstone', 'riscos'

Configures how the configuration backing file will be read and written. The format of the backing file can be:


Configuration group 'OSConfirm'

OSConfirm.implementation

Value: riscos
Type: str

Configures the implementation to use for the OS_Confirm system. This allows the way in which the confirmation is managed to be changed The current implementations that are provided are:

OSConfirm.keys_no

Value: n
Type: str

Configures the characters which will be displayed as a 'no' response to the confirmation request. Actually, any key other than those defined in keys_yes will be treated as a 'no' response.

OSConfirm.keys_yes

Value: y
Type: str

Configures the characters which will be displayed and accepted as a 'yes' response to the confirmation request. Lower case versions of this character will also be accepted.

OSConfirm.shape

Value: alternate
Type: One of the strings 'classic', 'alternate'

Configures the shape used for the pointer which is displayed when the OS_Confirm call is made:

RISC OS Classic form uses a 'Y' to indicate the key for a positive response. RISC OS Pyromaniac defaults to an alternate form which uses a check mark to indicate a positive response.

A check mark is recognised in more countries as a positive response than the 'Y' character (and we don't have any Internationalisation in Pyromaniac yet).

OSConfirm.show_message

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether a message is displayed when the OS_Confirm call is made.

OSConfirm.show_pointer

Value: if-active
Type: One of the strings 'never', 'always', 'if-active'

Configures how the pointer will be displayed when the OS_Confirm call is made:

RISC OS Classic uses the behaviour 'if-active', so Pyromaniac defaults to this.


Configuration group 'OSMemory'

The OSMemory configuration group controls the size reported for the memory areas from OS_Memory 8 (read memory amounts). Some of the areas are able to be calculated dynamically, whilst other areas have no meaning and can be configured to fake values.

OSMemory.amount_dram

Value: dynamic
Type: Size suffixed by 'K', 'M' or 'G', or 'dynamic' to calculate at runtime

Configures the amount of memory reported by OS_Memory 8 for the DRAM. The value may be calculated dynamically by setting the value to 'dynamic'.

OSMemory.amount_iospace

Value: 0
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the amount of memory reported by OS_Memory 8 for the I/O space. As there is no concept of I/O in Pyromaniac, this defaults to 0.

OSMemory.amount_rom

Value: dynamic
Type: Size suffixed by 'K', 'M' or 'G', or 'dynamic' to calculate at runtime

Configures the amount of memory reported by OS_Memory 8 for the ROM. The value may be calculated dynamically by setting the value to 'dynamic'.

OSMemory.amount_softrom

Value: dynamic
Type: Size suffixed by 'K', 'M' or 'G', or 'dynamic' to calculate at runtime

Configures the amount of memory reported by OS_Memory 8 for the soft ROM. The value may be calculated dynamically by setting the value to 'dynamic'. The dynamic value depends on whether we claim that the ROM is softloaded in the platformsupport.os_rom configuration setting.

OSMemory.amount_vram

Value: 0
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the amount of memory reported by OS_Memory 8 for the VARM. As there is no concept of VRAM in Pyromaniac, this defaults to 0.

OSMemory.controller_presence_support

Value: zero
Type: One of the strings 'error', 'zero'

Configures how OS_Memory 9 is supported. The options for this configuration are:

In RISC OS Select this was updated to report errors for absent devices. RISC OS 3.5, 4 and 5 report addresses of 0 when the devices are absent.

OSMemory.physical_table_support

Value: error
Type: One of the strings 'error', 'zero', 'small-empty', 'small-populated'

Configures how OS_Memory 6 and OS_Memory 7 are supported. The options for this configuration are:


Configuration group 'OSPlatformFeatures'

OSPlatformFeatures.codefeatures

Value: synchronisecodeareasrequired,hardwarevectorsneed32bitmode,pcstoresplus8,dataabortsearly,operatingsystemis32bit,26bitunavailable,highvectors,nophysicalpages,invalidreasonsaresafe
Type: Comma-separated list of flags from 'synchronisecodeareasrequired', 'irqtriggernecessary', 'hardwarevectorsneed32bitmode', 'pcstoresplus8', 'dataabortsearly', 'cpuhasseparatecaches', 'operatingsystemis32bit', '26bitunavailable', 'cpuhasmextensions', 'cpusupportsthumb', 'cpuhaseextensions', 'cpuhasnoswp', 'cpuhasldrstrex', 'cpuhasclrex', 'cannotdisabledcache', 'cpuextendedsmallpages', 'cpuhasnodwb', 'cpuhasbrokenaborts', 'cpuisxscale', 'xscalejtag', 'highvectors', 'largephysicalram', 'nophysicalpages', 'invalidreasonsaresafe'

Configures the code features returned by OS_PlatformFeatures 0. These are a bit mask of the many features that may be returned by the system.

Feature flags which can be set:


Configuration group 'OSPointer'

OSPointer.device_type

Value: 3
Type: int

Configures the device type returned by the OS_Pointer interface. Any value may be used, but the registered types are:

0   PointerDevice_Quadrature
1   PointerDevice_Microsoft
2   PointerDevice_MouseSystems
3   PointerDevice_PS2
4   PointerDevice_Ethernet
5   PointerDevice_RCMM
6   PointerDevice_Remote
7   PointerDevice_USB
8   PointerDevice_Wheel
10  PointerDevice_QuadMouseSTD
13  PointerDevice_Zytouch

Configuration group 'OSReadSysInfo'

OSReadSysInfo.kernel_values_error

Value: no
Type: One of the strings 'no', 'unknown', 'yes'

Controls whether the OS_ReadSysInfo 6 call returns errors. This SWI was defined to report 0 for unknown values in RISC OS 3, but as a SWI it could return an error at any time. Prior to RISC OS 3 it returned errors for all requests. As this call is intended only for components that need to collude with the Kernel, it should not usually be used and cases which do use this information should be replaced with other calls where they exist.

The option can be set to:


Configuration group 'OSWrite'

OSWrite.bad_address_effect

Value: abort
Type: One of the strings 'abort', 'ignore', 'print', 'error', 'trace', 'trace+abort', 'trace+print', 'trace+error'

Configures the way that OS_Write0OS_WriteN and OS_PrettyPrint interfaces handle accesses to invalid memory. The options are:

OSWrite.writen_max

Value: 128 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the longest output that OS_WriteN can use before triggering an error.

OSWrite.writen_max_effect

Value: trace+error
Type: One of the strings 'trace', 'error'

Configures how exceeding the maximum length for OS_WriteN is handled. Options are:


Configuration group 'OwnerBanner'

OwnerBanner.enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the OwnerBanner module will initialise or not.


Configuration group 'PIGPIO'

PIGPIO.bus

Value: 1
Type: int

Configures which bus the pigpio will connect to. By default this is 1 for the first bus on the system.

PIGPIO.remote

Value: 
Type: str

Configures the name of the remote system to which pigpio will connect. By default this is empty, indicating that the connection will be to the local system. It may be set to a host name to connect to a remote pigpiod server. A port may be appended to the hostname, in the form <hostname>:<port>.


Configuration group 'Parallel'

Parallel.hardware_address

Value: &0
Type: Hexadecimal value, optionally prefixed by '&', or 'error'.

Configures the value which will be returned by the Parallel_HardwareAddress SWI, as a hexadecimal number, or 'error' to report an error. The API expects to return 0 on non-IOEB machines, so this is the default.

Parallel.implementation

Value: null
Type: str

Configures the implementation to use for the ParallelDeviceDriver. The following implementations are provided:


Configuration group 'ParallelFile'

ParallelFile.native_file_input

Value: parallel.dat
Type: str

Configures the native file which is read from by the file implementation.

ParallelFile.native_file_output

Value: parallel.dat
Type: str

Configures the native file which is written to by the file implementation.


Configuration group 'ParallelSocket'

ParallelSocket.destination

Value: localhost:9000
Type: str

Configures the destination to which the socket will be connected when used. The destination should be in the form <hostname>:<port>.


Configuration group 'PathUtils'

PathUtils.enumerate_context

Value: identity
Type: 'identity' or one of the other mangler names

Configures how the opaque context values are returned from the PathUtils enumeration. The values which can be used include:

Other forms of offset may be available.


Configuration group 'PlatformSupport'

The PlatformSupport configuration group controls the response from OS_ReadSysInfo 8.

PlatformSupport.additional_processor

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the flag for supporting the second processor will be set.

PlatformSupport.os_ram

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the flag for the OS being RAM loaded will be set. It defaults to enabled, because the OS is effectively RAM loaded (and isn't protected either).

PlatformSupport.os_rotated_loads

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the flag for whether the OS uses rotated loads will be set. It defaults to disabled, because the CPU implementation does not support rotated loads in the same way as it did in earlier ARM systems.

The 'OS' doesn't actually do any ARM-based load operations, rotated or not.

PlatformSupport.os_unaligned_access

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the flag for whether the OS uses unaligned memory accesses will be set. It defaults to disabled, because the CPU implementation does not support unaligned memory accesses in the same way as it did in earlier ARM systems.

The 'OS' doesn't actually do any unaligned memory accesses, or any ARM-based memory accesses at all for that matter.

PlatformSupport.pci

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the flag for supporting PCI cards will be set.

PlatformSupport.podules

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the flag for supporting podules will be set.


Configuration group 'Podule'

Podule.extensionrom1

Value: 
Type: str

Configures the filename of the ROM image to load into Extension ROM 1. The file should be a ROM image suitable for use with a 32bit operating system. Any recognised modules will be provided through the Podule system, but the Kernel will not be present.

For the loading to work, the linkage address of the ROM must be available in memory. This may mean that the Pyromaniac ROM memory needs to be moved away by changing the memorymap.rom_base option to a different base (0x8800000 may be a suitable location). It is likely that modules in the ROM will need to be unplugged with the modules.unplug option.

At present, only Select-style 32 bit ROMs will function with the loader provided.


Configuration group 'Pointer'

Pointer.colours

Value: wimp
Type: One of the strings 'black', 'wimp'

Configures the colours that are used for the pointer by default. RISC OS Classic defaults to all the pointer colours being black. However, most uses will expect the colours to be those used by the Wimp, so this is what RISC OS Pyromaniac selects by default.

Pointer.enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the pointer is polled for events from the UI. When enabled, UI clicks will be passed to the mouse buffer and movements will move the mouse.

Pointer.max_height

Value: 32
Type: int

Configures the maximum height of the pointer allowed by the system. RISC OS Classic only allows a pointer 32 pixels high. RISC OS Pyromaniac allows larger pointers, but by default we set the same limits as RISC OS Classic.

Pointer.max_width

Value: 32
Type: int

Configures the maximum width of the pointer allowed by the system. RISC OS Classic only allows a pointer 32 pixels wide. RISC OS Pyromaniac allows larger pointers, but by default we set the same limits as RISC OS Classic.

Pointer.mode_change_effect

Value: centre
Type: One of the strings 'origin', 'centre', 'null'

Configures the effect of a mode change on the mouse position. RISC OS Classic resets the mouse position to the origin. RISC OS Pyromaniac defaults to setting the position to the centre of the screen.

The effects which may be used are:

Pointer.scrollwheel_enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the scrollwheel events are supported and passed through the system.


Configuration group 'Portable'

Portable.implementation

Value: psutil
Type: str

Configures the implementation to use for the Portable module's control. The following implementations are provided:

Portable.sensor_bmu_temperature

Value: 35.0
Type: List of sensor value for each unit in Celcius

Configures the temperature returned by Portable_ReadSensors for the BMU temperature. The temperature is supplied in units of degrees Celcius, and is converted internally to units of 0.1 Kelvin. It is a list of temperatures, which are returned for each unit.

Portable.sensor_cpu_temperature

Value: 65.0
Type: List of sensor value for each unit in Celcius

Configures the temperature returned by Portable_ReadSensors for the CPU temperature. The temperature is supplied in units of degrees Celcius, and is converted internally to units of 0.1 Kelvin. It is a list of temperatures, which are returned for each unit.


Configuration group 'PowerControl'

PowerControl.poweroff_support

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the power control operations (OS_Reset '&OFF' and Portable) are supported.


Configuration group 'ProgEnv'

ProgEnv.cli_size

Value: 1 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the default length of the CLI supported by the environment. On early RISC OS versions this was 256. With RISC OS 4, it was increased to 1024. Lengths longer than 256 are commonly not supported by BASIC tools, and many other tools may fail with longer strings.

ProgEnv.exception_errors_show_region

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Control whether, on an exception, the error that is generated includes information about the region of the aborts. This was not available in RISC OS classic, but is very useful for debugging.

ProgEnv.exception_show_registers

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Control whether, on an exception, the register dump is written out to the VDU output stream. This may aid in debugging, especially in the case where error handlers themselves are faulty.


Configuration group 'Pyro'

Pyro.reset_effect

Value: reboot
Type: One of the strings 'exit', 'reboot'

Configures how pyro deals with a request to reset the system:

Pyro.return_rc

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the tool will return the Sys$ReturnCode from the last run process or not. When this option is enabled, the command return code will be set to the value of the Sys$ReturnCode on return from the last command. When this option is disabled, the command return code will be 0 unless an error occurred.

Pyro.stop_on_failing_rc

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the execution of actions by the tool will check the Sys$ReturnCode variable for non-0 values. When this option is enabled, a non-0 return code is given, command execution will stop and the system will exit. When this option is disabled, a non-0 return code is ignored. The Obey module's execution of files is closest to the effect of this option being disabled.

Pyro.system_boot

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the system will go through the normal system boot sequence (filesystem boot, bootmenu, supervisor, as configured) or not.


Configuration group 'PyromaniacGit'

PyromaniacGit.askpass_enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the git client supports username and password requests. These are required if credentials are required to access a repository. The host git requires special handling to request the user name and password. This could cause problems for some clients, so it is possible to disable the support for requesting these details.

PyromaniacGit.command_allow

Value: 
Type: listlower

Configures the list of commands that we allow to be used by the PyromaniacGit module, as a comma separated list. If empty, all commands are implicitly allowed. If a list is configured, and a command which is not in the list is used, it will generate an error.

PyromaniacGit.command_deny

Value: 
Type: listlower

Configures the list of commands that we do not allow to be used by the PyromaniacGit module, as a comma separated list. If empty, all commands are implicitly allowed. If a named command is used, it will generate an error.

PyromaniacGit.config_file

Value: /dev/null
Type: str

Configures the configuration file which will be used for git operations. By default this is set to /dev/null to prevent any user configuration from leaking into the guest.

PyromaniacGit.credential_store_filename

Value: <Git$Credentials$Store>
Type: str

Configures where credentials will be stored on the RISC OS filesystem. This option provides a direct configuration of the credential.helper for the store helper. The filename is in the RISC OS form, and defaults to <Git$Credentials$Store> to allow it to be configured within RISC OS.

PyromaniacGit.credential_store_native_filename

Value: 
Type: str

Configures where credentials will be stored on the native filesystem. This option provides a direct configuration of the credential.helper for the store helper. The filename is in the native form.

PyromaniacGit.default_email

Value: riscosuser@example.com
Type: str

Configures the default email address which will be used for Git operations.

PyromaniacGit.default_name

Value: RISC OS user
Type: str

Configures the default user name which will be used for Git operations.

PyromaniacGit.editor_enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the git client supports calling back to the RISC OS system to request an editor be launched. The editor will use the configured text editor implementation.

PyromaniacGit.enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the PyromanicGit module is able to function. If this is disabled, the module will not initialise.

PyromaniacGit.git_command

Value: git
Type: str

Configures the git command which will be used on the host system.

PyromaniacGit.hide_host_config

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the host configuration for Git will be hidden from the invocations of the host git tool. When this option is enabled, the ~/.gitconfig and $XDG_CONFIG_HOME/git/config files will not be used. This isolates the RISC OS system from the host environment. When this option is disabled, the invocations of the git tool will be able to access these files. The configuration in these files may invoke other host tools, or may allow the use of aliases to access commands which are undesirable to the RISC OS system.

PyromaniacGit.language

Value: en
Type: str

Configures the language used for git command output. By default this is 'en' for English. However, it can be changed to override the output format.


Configuration group 'PyromaniacModule'

PyromaniacModule.config_allow

Value: 
Type: listlower

Configures which configuration groups are allowed to be configured by the *PyromaniacConfig command. The group names are given in a comma-separated list. If this list is empty, all groups are allowed. If groups are listed, then any configuration which is not named in those groups will give an error.

PyromaniacModule.config_deny

Value: 
Type: listlower

Configures which configuration groups are not allowed to be configured by the *PyromaniacConfig command. The group names are given in a comma-separated list. If this list is empty, all groups are allowed. If groups are listed, then any configuration which is named in those groups will give an error.

PyromaniacModule.config_enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the *PyromaniacConfig command is allowed to be used. If this is disabled, the command will return an error.

PyromaniacModule.debug_enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the *PyromaniacDebug command is allowed to be used. If this is disabled, the command will return an error.

PyromaniacModule.enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the Pyromaniac module is able to function. If this is disabled, the Pyromaniac commands will return errors.

PyromaniacModule.hostcommand_ansiescapes

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the *PyromaniacHostCommand output is converted from ANSI control codes to RISC OS control codes. Only a very limited subset of the terminal controls are supported. If this is disabled, the output from the host command will be passed directly to the RISC OS VDU stream.

PyromaniacModule.hostcommand_cwd_riscos

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the *PyromaniacHostCommand executes within the native working directory, if there is one. When enabled, the commands will run with the working directory set to the equivalent location on the native filesystem. When disabled, the working directory will be unaffected.

PyromaniacModule.hostcommand_enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the *PyromaniacHostCommand is allowed to be used. If this is disabled, the command will return an error.

PyromaniacModule.hostcommand_input

Value: no
Type: One of the strings 'no', 'yes', 'fkeys'

Controls whether the *PyromaniacHostCommand input is taken from the RISC OS input system or not. This option can take different values for the input control:

PyromaniacModule.hostcommand_output_encoding

Value: utf-8
Type: str

Configures what encoding the output from *PyromaniacHostCommand is reported in. Most host system tools use UTF-8 as their encoding. This means that to be rendered correctly in RISC OS, the UTF-8 characters must be re-encoded to the current alphabet. This option controls whether the characters from the host command are treated as UTF-8, or some other encoding. Encoding names are those used by Python (not the alphabets used by RISC OS).

The configuration may also use identity to pass through characters directly to the RISC OS system.

PyromaniacModule.hostcommand_print_rc

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the *PyromaniacHostCommand reports the return code from the host command by printing to the VDU stream at the end of its execution. If this is disabled, no message will be printed.

Whether this option is enabled or not, the Sys$ReturnCode variable will be updated.

PyromaniacModule.hostcommand_term

Value: vt100
Type: str

Configures what TERM setting will be used within the commands invoked by *PyromaniacHostCommand. By default this is vt100, which is probably the most supported terminal type, although the RISC OS Pyromaniac support for some of the VT100 features is limited. You may find that vt52 is more effective for some tools.

PyromaniacModule.timing_enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the *PyromaniacTiming command is allowed to be used. If this is disabled, the command will return an error.

PyromaniacModule.unixexecutable_enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the Unix executables will be run from the host filesystem. When enabled, the RISC OS filename supplied will be executed in the context of the host environment, with the configuration from the hostcommand. This option is only really useful when the filesystem.unix_executables option is enabled.

PyromaniacModule.urlcopy_enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the *URLCopy command is supported or not.

PyromaniacModule.urlcopy_protocol_allow

Value: 
Type: listlower

Configures the protocols that are allowed to be accessed with the *URLCopy command. If the list is empty, all protocols are allowed.

PyromaniacModule.urlcopy_protocol_deny

Value: 
Type: listlower

Configures the protocols that are not allowed to be accessed with the *URLCopy command. If the list is empty, all protocols are allowed.

PyromaniacModule.watchpoint_enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the *PyromaniacWatchpoint command is allowed to be used. If this is disabled, the command will return an error.


Configuration group 'PyromaniacWimpDebug'

The PyromaniacWimpDebug module is an experimental mechanism for reporting on the state of Wimp operations through the wimp messages. The module tracks tasks and reports on the messages through FilterManager.

PyromaniacWimpDebug.enable

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the PyromaniacWimpDebug module is able to function. If this option is disabled, the module will not start.


Configuration group 'ROMInformation'

The ROMInformation configuration group controls the values returned by OS_ReadSysInfo 9. Normally these values would be encoded in the end of the ROM image. However, there is no fixed ROM for Pyromaniac, so these may be configured here.

Any of the ROMInformation strings may contain a '\n' sequence to embed a newline in the information string.

ROMInformation.builddate

Value: Tue,05 Nov 2024.13:19:52

Configures the build date for the system. The build date was recorded with each image to ensure that if a ROM was rebuilt from an earlier part number, it would be distinguishable. In Pyromaniac this defaults to the current date and time at the time of execution. The string is intended to be human readable.

ROMInformation.dealername

Value: Gerph

Configures the dealer name for the system. The dealer name was intended to be used for ROMs customised by dealers, to ensure that they were distinguishable from the others. The intent was that the part number was only interpretable together with the dealer name.

ROMInformation.hardwareplatformname

Value: Darwin/x86_64

ROMInformation.osdescription

Value: RISC OS Pyromaniac

Configures the printable OS description for the system.

ROMInformation.osname

Value: RISC OS Pyromaniac

Configures the name of the Operating System, usually in the form:

RISC OS [`<variant>`] [Select] [\[Beta\]]

ROMInformation.partnumber

Value: None

Configures the part number of the system. The part number was used by RISCOS Ltd to track releases through their artifact repository, with each released build being tracked and both reproducible and recorded. Usually the part numbers took the form:

YYYYMMDD-XXX

or YYYYMMDD-iii-system

ROMInformation.useraddress

Value: None

Configures the address of the user who registered the system. The address would be displayed on startup, to give a little more customisation to the ROM images.

ROMInformation.username

Value: None

Configures the user name who registered the system. The user name would be displayed on startup, to give a little more customisation to the ROM images.


Configuration group 'RTCHWDS1307'

RTCHWDS1307.enable

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the RTC module which uses the DS1307 I2C device is enabled or not. By default this is disabled as we do not provide such a device within RISC OS Pyromaniac.

RTCHWDS1307.i2c_address

Value: &68
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the the I2C address of the DS1307. By default this is &68, but usually the address can be selected by changing jumpers or bridging contacts. The address is in I2C format, without the W/R bit (ie 7 bit value).


Configuration group 'RTCHWDS3231'

RTCHWDS3231.enable

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the RTC module which uses the DS3231 I2C device is enabled or not. By default this is disabled as we do not provide such a device within RISC OS Pyromaniac.

RTCHWDS3231.i2c_address

Value: &68
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the the I2C address of the DS3231. By default this is &68, but usually the address can be selected by changing jumpers or bridging contacts. The address is in I2C format, without the W/R bit (ie 7 bit value).


Configuration group 'RTCHWPCF8563'

RTCHWPCF8563.enable

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the RTC module which uses the PCF8563 I2C device is enabled or not. By default this is disabled as we do not provide such a device within RISC OS Pyromaniac.

RTCHWPCF8563.i2c_address

Value: &51
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the the I2C address of the PCF8563. By default this is &51, but usually the address can be selected by changing jumpers or bridging contacts. The address is in I2C format, without the W/R bit (ie 7 bit value).


Configuration group 'RTCHWPCF8583'

RTCHWPCF8583.enable

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the RTC module which uses the PCF8583 I2C device is enabled or not. By default this is disabled as we do not provide such a device within RISC OS Pyromaniac.

RTCHWPCF8583.i2c_address

Value: &50
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the the I2C address of the PCF8583. By default this is &51, but usually the address can be selected by changing jumpers or bridging contacts. The address is in I2C format, without the W/R bit (ie 7 bit value).


Configuration group 'RequestInput'

RequestInput.implementation

Value: readline
Type: str

Configures the implementation which will be used for requesting input on the host system. The implementations available are:


Configuration group 'Resolver'

Resolver.enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the Resolver module is able to function. If this is disabled, the Resolver SWIs will return errors.

Resolver.hosts_file

Value: InetDBase:hosts
Type: str

Configures the name of the file that will be read by the Resolver module for the local Hosts file.


Configuration group 'ResourceFS'

ResourceFS.enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the ResourceFS module initialises or not. By default it will initialise, but some parts of the system might expect that if they registered content they will be able to access it. The ResourceFS module does not provide a real filesystem at the current time.


Configuration group 'Serial'

Serial.implementation

Value: null
Type: str

Configures the implementation to use for SWI OS_SerialOp. The following implementations are provided:


Configuration group 'SerialFile'

SerialFile.native_file_input

Value: serial.dat
Type: str

Configures the native file which is read from by the file implementation.

SerialFile.native_file_output

Value: serial.dat
Type: str

Configures the native file which is written to by the file implementation.


Configuration group 'SerialPySerial'

SerialPySerial.device

Value: loop://
Type: One of the strings 'cpu', 'gpu', 'memory', 'iocard', 'psu', 'backplane', 'radiator', 'chassis', 'external', 'generic'

Configures the device which the PySerial talks to. Any of the devices supplied by PySerial may be used, either as explicit file devices, or URL specifications. For example:

See https://pythonhosted.org/pyserial/url_handlers.html for more details. To see detected devices by filename, use the PySerial tool:

`python -m serial.tools.list_ports`

Configuration group 'ShareFS'

ShareFS.use_freeway

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether Freeway will be used to declare disc objects. As the implementation of ShareFS provided here never actually shares any discs on the network, this may be confusing if a real Freeway was announcing resources available. However, as the RISC OS Pyromaniac version of Freeway does not perform any network operations, this will merely be consistent.


Configuration group 'Sound'

The Sound configuration group controls the way in which the SoundChannels module plays sounds. The SoundChannels module uses the host MIDI functions to provide audible effects. The sound channel is mapped to the MIDI channel (although only 8 channels are supported, like RISC OS). The RISC OS voices are mapped to MIDI instruments, with a default set of instruments selected to sound close to the originals.

The voice_* configuration options all have the same configuration format:

Sound.bbc_style

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the SoundChannels module functions like RISC OS, or like the BBC. The difference is in how sounds are queued and where the flags are defined.

BBC style:

RISC OS style:

Sound.channels_max

Value: 8
Type: int

Configures the maximum number of channels which are available to the system. This defaults to 8, but may be increased to 16 without exceeding the limits of the APIs.

Sound.channels_used

Value: 1
Type: int

Configures the number of channels which are in use when the system starts. This may be a value from 1 to channels_max.

Sound.enable_midi

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the SoundChannels module uses the MIDI system for its sound. When disabled, the sound system will go through the motions but will not actually generate sounds.

Sound.enable_warnings

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the SoundChannels module will generate trace warnings when Sound_Control/Sound_ControlPacked SWIs are used with invalid parameters. In either case, the invalid parameters are ignored without error.

Sound.scheduler_type

Value: clocked
Type: One of the strings 'null', 'clocked'

Configures the type of sound scheduler which is implemented. The configuration types are:

Sound.voice_percussion_medium

Value: Melodic Tom
Type: Voice configuration, such as GM1 instrument name

Sound.voice_percussion_noise

Value: Bagpipe
Type: Voice configuration, such as GM1 instrument name

Sound.voice_percussion_snare

Value: Synth Drum
Type: Voice configuration, such as GM1 instrument name

Sound.voice_percussion_soft

Value: Woodblock
Type: Voice configuration, such as GM1 instrument name

Sound.voice_stringlib_hard

Value: Electric Guitar (Clean)
Type: Voice configuration, such as GM1 instrument name

Sound.voice_stringlib_pluck

Value: Acoustic Guitar (Nylon)
Type: Voice configuration, such as GM1 instrument name

Sound.voice_stringlib_soft

Value: Violin
Type: Voice configuration, such as GM1 instrument name

Sound.voice_stringlib_steel

Value: Acoustic Guitar (Steel)
Type: Voice configuration, such as GM1 instrument name

Sound.voice_wavesynth_beep

Value: Electric Piano 1
Type: Voice configuration, such as GM1 instrument name


Configuration group 'Speak'

Speak.enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the Speak module is enabled. When the option in disabled it will not initialise.

Speak.implementation

Value: null
Type: str

Configures the implementation to use for the Speak module. The following implementations are provided:


Configuration group 'SpeakConsole'

SpeakConsole.voices

Value: Rick:en:M:70,Morty:en:M:14,Summer:en:F:17,Beth:en:F:34,Jerry:en:M:34
Type: Comma-separated list of a voices in the form: <name>[:[<language>][:[MFN][:<age>]]]

Configures the list of voices returned by the console Speak implementaion. The definition is a comma-separated list of a voices in the form:


Configuration group 'Speech'

Speech.enable

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the Speech module is enabled. When the option in disabled it will not initialise.


Configuration group 'Spell'

Spell.implementation

Value: null
Type: str

Configures the implementation of the Impression Spell Checker. The following implementations are provided:


Configuration group 'SpellWordsFile'

SpellWordsFile.anagram_algorithm

Value: exact
Type: One of the strings 'none', 'exact'

Configures the algorithm used by the anagram word checking. There are some provided anagram match algorithms:

SpellWordsFile.filename

Value: 
Type: str

Configures the RISC OS filename for the words file that we will read. The file should consist of one word per line. If no filename is given, the native_filename option will be used instead.

SpellWordsFile.fuzzy_algorithm

Value: soundex-american
Type: One of the strings 'soundex-american', 'soundex-sql'

Configures the algorithm used by the fuzzy word checking. There are some provided fuzzy match algorithms:

The SQL variation is slightly faster.

SpellWordsFile.native_filename

Value: auto
Type: str

Configures the native filename for the words file that we will read. The file should consist of one word per line. The string auto may be used to use a system file determined at runtime, or none for no wordsfile.


Configuration group 'SpriteOp'

SpriteOp.empty_transformation

Value: ignore
Type: One of the strings 'ignore', 'error'

Configures how tranformations that produce empty regions will be handled. This includes the case where the multiplier on scale blocks are 0, or the determinant is 0 for a transformation matrix. It may take one of the values:

SpriteOp.support_plot

Value: yes
Type: One of the strings 'yes', 'error', 'ignore'

Configures how plotting is supported by the sprite system. It may take one of three values:


Configuration group 'SpriteUtils'

SpriteUtils.system_sprites_enable

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the system sprite area is created. If enabled, the dynamic area will be created, allowing the use of the system sprite area. If disabled, the area will not be created.

SpriteUtils.system_sprites_max

Value: 4 M
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the maximum size of the system sprite area, when it is enabled.

SpriteUtils.system_sprites_size

Value: 64 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the default size of the system sprite area, when it is enabled.


Configuration group 'SysLog'

SysLog.default_flush

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether reports to SysLog are written out immediately, or only written out on an explicit flush.

In the original module, and the reimplementation, the output would be buffered and written out on a delay in the background. This is not currently implemented.

SysLog.default_loglevel

Value: 125
Type: int

Configures the default log level which is set on log files. This is 125 by convention with the original module.

SysLog.log_directory

Value: $.Logs
Type: str

Configures the directory to which log files will be written. As no boot sequence will commonly have been used, this defaults to '$.Logs'.

SysLog.timestamp_format

Value: %b %d %H:%M:%S
Type: str

Configures the format used by the timestamps in the SysLog file output. This defaults to the same format as the orignal module. The format string is in the strftime style.


Configuration group 'SysRqServer'

SysRqServer.enable

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the system requests server will start. When enabled, the server will accept connections on the TCP port specified by the port option, and take line input to control the system.

SysRqServer.port

Value: 8809
Type: int

Configures the port on which the system requests server will listen for connections. Connections on this port will be accepted and this will allow the control of the RISC OS Pyromaniac system.

SysRqServer.prompt

Value: Pyro>
Type: str

Configures the prompt that will be used by the SysRq server for each input line.


Configuration group 'SysVars'

SysVars.read_corrupts_buffer

Value: no
Type: Regular expression matching: no|increment|random|[0-9a-fA-F]{1,2}

Configures the type of buffer corruption applied to the system variable buffer when a read request is made. The buffers supplied may be writen in part or not at all by the system. This configuration ensures that the buffer is written to with data to provoke errors.

The corruption options available are:


Configuration group 'SystemBell'

SystemBell.implementation

Value: sound
Type: str

Configures how the External Bell service should be handled. This service is issued for VDU 7, and can be configured to operate in different manners on different systems. The types of bell supported are:


Configuration group 'SystemInformation'

The SystemInformation configuration controls the information returned about the system through a few of the core SWI calls.

SystemInformation.osbyte0_machinetype

Value: 6
Type: int

Configures the value used for the machine type returned by OS_Byte 0. The default value is a machine type for ARM based systems.

SystemInformation.osbyte129_osversion

Value: &ae
Type: Hexadecimal value, optionally prefixed by '&'.

Configures the value used for the OS version returned by OS_Byte 129 (INKEY(-256)). The default value is a version allocated to RISC OS Pyromaniac.

SystemInformation.platform_class

Value: 16
Type: int

Configures the value used for the platform class returned by OS_ReadSysInfo 8. The default value is the class allocated to RISC OS Pyromaniac.


Configuration group 'TaskManager'

TaskManager.enumerate_terminator

Value: 0
Type: One of the strings '0', 'cr'

Configures how task names are terminated when returned by the TaskManager_EnumerateTasks SWI. RISC OS classic returns the task names terminated as supplied control terminated on Wimp_Initialise. However, most tasks will have used 0-termination. This option allows the tasks to be forcibly terminated with either 0 or CR (13).

TaskManager.taskmanager_task

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the TaskManager lists itself as a task in the enumeration given by TaskManager_EnumerateTasks.

TaskManager.tasks

Value: 
Type: Comma-separated list of <name>[:(M|D|<size>)]

Configures the additional tasks that will be included in the enumeration of tasks returned by TaskManager_EnumerateTasks. The tasks are specified as a comma-separated list of task definitions to be returned. The definitions may be suffixed by a : and a set of flags to return to the user. These flags take the form:


Configuration group 'TaskWindow'

TaskWindow.in_taskwindow

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the TaskWindow module reports that we are in a TaskWindow or not.


Configuration group 'Teletext'

Teletext.implementation

Value: videov
Type: str

Configures the implementation used for the Teletext system. This controls how the teletext modes are presented. RISC OS Select abstracted the implementation of the teletext modes using VideoV. It is not known how RISC OS 5 has abstracted this. The implementations available are:


Configuration group 'TeletextVideoV'

TeletextVideoV.flash_time_cs

Value: 100
Type: int

Configures the time that text will flash for within Teletext displays. The time is measured in centiseconds.

TeletextVideoV.high_quality

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether we default to the high quality font based text rendering for teletext modes, rather than the bitmap text rendering.

TeletextVideoV.update_delay_cs

Value: 5
Type: int

Configures the delay between writing to the screen and the display being updated. On RISC OS Classic this was measured in VSync periods, but RISC OS Pyromaniac does not have VSync at present, so we measure the period in centiseconds. If set to 0, the update will be performed immediately after each write operation.


Configuration group 'Territory'

Territory.format_standarddate

Value: %W3, %DY %M3 %CE%YR
Type: str

Configures the format that will be used for the Territory_ConvertStandardDate call.

Territory.format_standarddateandtime

Value: %W3, %DY %M3 %CE%YR %24:%MN:%SE
Type: str

Configures the format that will be used for the Territory_ConvertStandardDateAndTime call.

Territory.format_standardtime

Value: %24:%MN:%SE
Type: str

Configures the format that will be used for the Territory_ConvertStandardTime call.

Territory.number

Value: 1
Type: int

Configures the territory number that we claim to be.

Territory.write_direction

Value: ltr-ttb-horizontal
Type: Regular expression matching: (ltr|rtl)-(ttb|btt)-(horizontal|vertical)

Configures the flags returned from Territory_WriteDirection.

The values take the form:


Configuration group 'TextEditor'

TextEditor.enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the Text editing system is available. When disabled, attempting to edit any file will result in an error.

TextEditor.encoding

Value: alphabet
Type: str

Configures the encoding that will be used for the content that is edited. This option can be set to the name of an encoding to store the content, for example 'iso8859-1'.

Two special encoding names may be used:

TextEditor.implementation

Value: command
Type: str

Configures the implementation which will be used for editing text on the host system. The implementations available are:


Configuration group 'TextEditorCommand'

TextEditorCommand.chdir

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the tool will change directory to the temporary directory for the duration of the command. This might be a problem if other operations are happening on threads.

TextEditorCommand.command_edit

Value: nano -R -I --
Type: str

Configures the command that will be invoked to edit the text file. This command will be passed the name of the temporary file which should be edited. Under POSIX systems commands, the nano tool can be used, which might take the following options:

TextEditorCommand.command_view

Value: nano -R -I --view --
Type: str

Configures the command that will be invoked to view the text files. This command will be passed the name of the temporary file which should be edited. By default this uses nano with the --view option. It is possible to use more or less, but these tools may allow other files to be accessed.


Configuration group 'Throwback'

Throwback.console_colour

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether colour is used in the output in the 'console' implementation.

Throwback.implementation

Value: console
Type: str

Configures the implementation to use for throwback reported through the DDEUtils module. The following implementations are provided:

Throwback.url

Value: data:
Type: str

Configures the URL to which the 'posturl' implementation will send reports. The HTTP POST is formatted as a JSON encoded body, with the following fields from the report:

Throwback.url_include_hostname

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the 'url' field in the 'posturl' implementation includes a hostname or not. Some console linking implementations require the hostname, whilst others do not explicitly support them.

Throwback.url_scheme

Value: file
Type: One of the strings 'riscos', 'file'

Configures the scheme used for the 'url' field in the 'posturl' and 'console' implementation. This can be one of:

In the console output, the URL will be linked with a hyperlink. Consult https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda for more information.


Configuration group 'Ticker'

Ticker.dispatch_rate

Value: 1.0
Type: float

How many times slower the tickers dispatch than real time. By default they will dispatch in real time, so a 1cs ticker event would be dispatched after 1cs has elapsed. Larger numbers will make the ticker events be dispatched less often. For example, a dispatch_rate of 5 would dispatch a 1cs ticker event after 5cs.

Ticker.statistics

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether statistics are gathered for Ticker processing. The statistics can have an overhead on the system, and so by default they are disabled.


Configuration group 'Time'

Time.force_boot_time

Value: none
Type: Date time in the form YYYY-MM-DD[THH:MM:SS[.CC]], or a hex string or 'none'

Configures the time that the system will report from boot. By default this option is disabled, using the value none, to mean that the clock runs with the real world clock. When set, however, the clock runs from the time specified.

Time.offset

Value: 0s
Type: Time in the form: [+|-]{<number>{s|m|h|d|w|y}}*

Configures the time offset applied to the current host clock within RISC OS. The offset is a string which contains the offset in the form of a decimal followed by the single character units, repeated, optionally preceded by a '-' sign. Units supported are:

For example:

Time.osword15_uses_cset

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether OS_Word 15 (Write time) returns C flag set when there is an error. This is the defined behaviour, but any SWI can also return an error, so it would also be valid to return the V set an an error pointer.


Configuration group 'TimerManager'

TimerManager.base_frequencies

Value: 2000000
Type: Comma-separated list of integers

Configures the base tick frequency of the timers that are available in TimerManager.

The configuration is a comma-separated list of frequencies for each timer. Any timer not supplied will use the final value in the list. By default the timers have a frequency of 2000000, which was the base rate used by IOMD. However, any frequency value could be used.

TimerManager.count

Value: 2
Type: int

Configures how many timers are made available from the TimerManager.


Configuration group 'Timings'

The Timings configuration group manages the data collected about the time spent in different areas, and the number of times those areas are entered. The data is reported when the system is exited. The data which is recorded falls into the following groups:

Timings.execute

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether non-SWI timings are collected during execution and reported when the system exits.

Timings.swi

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether SWIs counts and timings are collected during execution and reported when the system exits.


Configuration group 'Trace'

Trace.function_registers

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether when the execution enters a function, the trace will report the registers.

Trace.output

Value: stderr
Type: One of the strings 'stdout', 'stderr', 'riscos'

Configure where the trace output will be send. The output configuration can be:

Trace.recent_blocks_count

Value: 10
Type: int

Configures how many blocks of recent execution will be reported in exceptions.

Trace.report_python_traceback

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether reports such as exceptions will include the traceback within the Python code as well as within the emulated system. This may be useful when the location is passing through a Pyromaniac interface which does not otherwise appear in the traceback.

Trace.report_relative_instructions

Value: 15
Type: int

Controls whether reports such as exceptions will include details of the recent blocks that were executed if that information is available.

Trace.show_disassembled_word

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether disassembly during a trace will include the instruction word that was executed. Normally this is omitted.

Trace.stack_depth_indicator

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether trace lines include a stack indicator using '|' markers to show how deep the stack is at a given point.

Trace.stack_depth_width

Value: 24
Type: int

Configures how many characters are used for the stack indicator when it is in use. If the stack markers exceed this width, it will be made longer.

Trace.stack_value

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether trace lines include the value of the stack pointer.

Trace.switraps

Value: 
Type: Comma separated list of hexadecimal SWI numbers, or names, suffixed with :<operation>

Configures the list of SWIs numbers, names or prefixes which will be trapped. When the SWIs listed are executed, the details of that execution will be recorded to the trace output. Each SWI number, name or prefix, may be followed by an operation that is to be performed when the trap fires separated by a ':'.

For example, this option may be set to Wimp_SlotSize:trace to enable instruction tracing whilst the Wimp_SlotSize SWI is being executed.

Trace.tracepoints

Value: 
Type: Comma separated list of hexadecimal addresses, or function names

Configures the list of addresses which will be watched for execution. When the address is executed, the details of that execution will be recorded to the trace output.

In addition to hexadecimal addresses, each tracepoint may have one of the following formats:

Trace.watchpoints

Value: 
Type: Comma separated list of hexadecimal addresses

Configures the list of addresses which will be watched for changes. When the address is accessed, the details of that access will be recorded to the trace output.


Configuration group 'Twin'

An editor may be invoked from BASIC by the command TWIN, or by the *Edit command. This operation is managed by the Twin module. The configuration controls whether the Twin module will function when invoked in this way. It uses the TextEditor configuration to launch the actual editor.

Twin.enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the Twin module is able to function. If this is disabled, the Twin commands will return errors.


Configuration group 'URI'

URI.acceptable_schemes

Value: http,https,ftp
Type: listlower

Configures which schemes are able to be launched in the host system by the URI module.

URI.enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the URI module is able to function. If this is disabled, the URI SWIs will return errors.


Configuration group 'UniqueId'

The UniqueID configuration group allows the machine unique ID to be configured. The UniqueID is returned by OS_ReadSysInfo 2 and 5.

UniqueId.high

Value: &decade
Type: Hexadecimal value, optionally prefixed by '&'.

UniqueId.low

Value: &da2ed
Type: Hexadecimal value, optionally prefixed by '&'.


Configuration group 'UserV'

UserV.effect

Value: message
Type: One of the strings 'null', 'message', 'error', 'warning'

Configures how the UserV handler should function when it is called. By default on RISC OS it does nothing, and it is discouraged from being used. However, it may be useful for certain debugging actions. In particular, being able to trigger a warning through the trace system may help to diagnose issues dynamically.

Effects available are:


Configuration group 'UtilityModule'

UtilityModule.kill_effect

Value: error-in-use
Type: One of the strings 'error', 'error-in-use', 'allow'

Configures the effect of attempting to delete the UtilityModule. The options available are:


Configuration group 'VDU'

VDU.alphabet

Value: Latin1
Type: str

Configure the RISC OS alphabet used for the VDU output. The alphabet can be one of the alphabets used by RISC OS which are supported by Pyromaniac. Use the *Alphabets command to list these. The output from the VDU system (either through the graphics system or the console) will be converted from this alphabet to the output_encoding. Usually this is set to 'Latin1'.

VDU.flush

Value: position
Type: One of the strings 'line', 'char', 'position'

Controls when console output is flushed. On RISC OS Classic, output would always appear when it is written. This isn't how most unix-like tools function. They usually buffer output when they're run in a pipe, either with lines or larger chunks. This is more efficient as the number of system calls are reduced and the user mode process can do more work. Because RISC OS does not have this concept, this setting tries to balance the efficiency with responsiveness.

The default setting is 'position'. Regardless of the setting, the output will be flushed if input is requested.

VDU.implementation

Value: plain
Type: str

Configures the implementation used for the VDU system. This controls where the VDU system sends its output (in addition to the graphics system). The implementations currently available are:

VDU.mode

Value: 27
Type: A mode number, or 'swi' for the current state of the Wimp_SetMode SWI

Configures the RISC OS mode to be selected on boot. Only mode numbers can be supplied.

VDU.newline_format

Value: LF
Type: One of the strings 'lf', 'lfcr', 'crlf', 'cr'

Controls what SWI OS_NewLine will generate - line feeds, carriage return, both or none. By default, this is configured to just LF, which differs from the RISC OS default. This is, however, the expected output for most unix-like tools, so should produce comparable results to other native tools. RISC OS Classic would use LFCR.

VDU.output_encoding

Value: utf-8
Type: str

Configure the Python encoding that will be used for the console output. Usually this is set to 'UTF-8', but it can also be configured to 'identity' to pass through the VDU output without an encoding translation.

VDU.output_fd

Value: stdout
Type: Regular expression matching: null|stdout|stderr|[1-9][0-9]*

Configure the file descriptor used for output from the system. This may be a numbered file descriptor, or a named file descriptor - stdout or stderr.

VDU.paging

Value: none
Type: One of the strings 'none', 'console', 'shift'

Controls how paged mode (VDU 14) is handled. The following configurations are available:

VDU.show_controls

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether unrecognised control codes will be displayed as [<control sequence>]. When disabled, no output will occur for unrecognised control codes.

VDU.wrchv

Value: as-required
Type: One of the strings 'always', 'never', 'as-required'

Controls when the WrchV vector is used by the VDU system. WrchV is used for passing characters written to the VDU stream, so that clients may see or modify them. However, this may involve a significant amount of extra work in the emulation and avoids a number of optimisations that can be performed by the RISC OS Pyromaniac system.

By default the configuration is to only use the vector when it has claimants. This is similar to the behaviour of the RISC OS Classic system.

Configuration values may be:


Configuration group 'VDUANSIText'

VDUANSIText.always_windowed

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the ANSI text system treats the output as always windowed. When enabled, character positioning in the ANSI text system will be closer to the VDU mode output, with newlines inserted when text reaches the end of the line. This option defaults to False, as it will generates more output when enabled, and may break lines at non-obvious positions within the terminal.

VDUANSIText.change_terminal_size

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the terminal size will be changed on a mode change.

VDUANSIText.closest_match

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether failing to match the primary colours or 8 bit colour matching exactly falls back to finding a closest of those colours. This would not be used if the 24 bit matching was enabled.

VDUANSIText.support_24bit

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether 24 bit ANSI colour selection using the 38;2m and 48;2m codes is used. These 24 bit codes will only be used when the primary colours and the 8bit colour codes do not match.

VDUANSIText.support_8bit

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether 8 bit ANSI colour selection using the 38;5m and 48;5m codes is used. These 8bit codes will only be used when the primary colours do not match.

VDUANSIText.support_primary

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the primary colour selection using 30-7m and 40-7m codes is used. These codes are used with support_primarybold to select bold foreground colours.

VDUANSIText.support_primarybold

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the primary colour selection for foreground colours also uses bold colour selection. Without this, the primary colour will be used for the full intensity colours.


Configuration group 'VDUMode'

VDUMode.allow_0dpi_spritemodes

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether strict or lax checks are performed on the sprite mode words. If enabled, sprite mode words with a DPI value of 0 will be allowed. If disabled, such sprite mode words will report an error stating that an invalid DPI has been used.

!Paint uses a check of the sprite mode word with a DPI value of 0 to determine whether deep modes are available. If this option is disabled, !Paint will be unable to create deep sprites in its original form.

VDUMode.display_depths

Value: 1,2,4,8,16,24
Type: Comma-separated list of flags from '1', '2', '4', '8', '16', '24'

Restricts the display depths that may be used by the display. Only those bit depths that are present in the list will be allowed. If the list is empty, any depth is allowed. Valid values are:

VDUMode.display_height

Value: -
Type: Open size range such in the form [<start>]-[<end>], <value> or <start>+<length>

VDUMode.display_resolutions

Value: 
Type: A comma-separated list of dimensions in the form <width>x<height>

Restricts the display resolutions that may be used by the display. Only those resolutions that are present in the list will be allowed. If the list is empty, any resolution is allowed.

VDUMode.display_width

Value: -
Type: Open size range such in the form [<start>]-[<end>], <value> or <start>+<length>

VDUMode.enumerate_numbered_lowres

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether OS_ScreenMode 2 (Enumerate modes) synthetic mode enumeration will include low resolution modes (less than 640 pixels across or 256 pixels high).

By default this is enabled, so that we get many of the modes that we expect to be available listed in menus.

VDUMode.enumerate_numbered_modes

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether OS_ScreenMode 2 (Enumerate modes) will include a synthetic list of modes generated from the numbered modes. Normally the list of modes would be provided by the ScreenModes module, based on a Mode Definition File. However, there's no real reason why Pyromaniac needs to do this, as timings are irrelevant.

By default this is enabled, which allows any extension modes that are defined through the configuration, or through the Service_ModeExtension interface, to be available in Display Manager.

VDUMode.enumerate_numbered_nonsquare

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether OS_ScreenMode 2 (Enumerate modes) synthetic mode enumeration will include modes that have rectangular pixels.

By default this is disabled, as these modes will appear stretched if they are selected from menus without a set of eigen-factors present.

VDUMode.modeextension_format

Value: 3.5
Type: One of the strings '3.1', '3.5'

Configures the format that the Service_ModeExtension will be issued in. There are two formats supported:

VDUMode.modeselector_fullpalette_invalid

Value: error
Type: One of the strings 'warning', 'error', 'ignore'

Configures the effect of supplying the 'Full Palette' mode flag when not in a 256 colour mode. RISC OS 4 and earlier would accept this even if it didn't make sense. RISC OS 5 validates this variable when it is supplied and rejects the mode selector. This option allows the behaviour to be changed:

To be the most useful, warning is the default value.

VDUMode.modeselector_ncolour_invalid

Value: error
Type: One of the strings 'warning', 'error', 'ignore'

Configures the effect of supplying an inconsistent NColour value in a mode selector block to a SWI that accepts a mode specifier. RISC OS 4 and earlier would pass this value through directly to the mode variables, even if it did not make sense (eg NColour = 77 for a 8bit paletted mode). RISC OS 5 validates this variable when it is supplied and rejects the mode selector. This option allows the behaviour to be changed:

To be the most useful, warning is the default value.

VDUMode.readmodevariable_invalid

Value: warning
Type: One of the strings 'error', 'cset', 'warning'

Configures the effect of supplying an invalid mode to the OS_ReadModeVariable SWI. RISC OS Classic would always set the C flag, indicating that the mode was invalid. This is often not helpful in diagnosing problems, and applications should always be able to handle errors returned from any SWI call. This option allows the behaviour to be changed:

To be the most useful, warning is the default value.

VDUMode.support_vidclist_01

Value: True
Type: bool

Controls whether mode extension using the VIDC List formats 0 and 1 is supported through the Service_ModeExtension interface. These hardware lists include explicit VIDC register parameters which will not be used by RISC OS Pyromaniac.

When this option is disabled, any mode extensions returned with either of these formats will be rejected as Bad Modes.

VDUMode.support_vidclist_3

Value: True
Type: bool

Controls whether mode extension using the VIDC List format 3 is supported through the Service_ModeExtension interface. This interface returns generic parameters which should be used by the hardware.

When this option is disabled, any mode extensions returned with either of these formats will be rejected as Bad Modes.

VDUMode.video_bandwidth

Value: 2 G-1
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the video bandwidth available in Service_ModeExtension, in bytes per second. The default value is just shy of 2GB/s, because Pyromaniac has no limits and this value avoids making the number negative if treated as unsigned.


Configuration group 'VNC'

VNC.maximum_clients

Value: 2
Type: int

Configures the maximum number of clients that the VNC server will allow.

VNC.maximum_redraw_rate

Value: 20
Type: int

Configures the maximum rate at which the VNC clients will be updated. If this is set too high, the system may spend more time redrawing than executing code. If this is set too low, output may not refresh in a timely manner as it is generated.

VNC.password

Value: 
Type: str

Configures the password to use for the VNC server (full access, including input). An empty string means that no password will be used.

VNC.password_readonly

Value: 
Type: str

Configures the password to use for the VNC server (read only, no input). An empty string means that no password will be used.

VNC.port

Value: 5902
Type: int

Configures the port on which the VNC server will listen for connections.


Configuration group 'WX'

WX.console_ansi

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether console outputs will be have terminal control codes, such as the ANSI colour control sequences, processed. This allows the display to be show coloured output from the console. When disabled, the console output will not process control codes.

WX.console_capture

Value: none
Type: One of the strings 'none', 'stdout', 'stderr', 'stdout+stderr'

Configures the console window used by WxWidgets. By default there is no console window, and output will appear on stdout or stderr as expected. This configuration option allows the output to be captured into a window to make it easy to see debug output. Options are:

WX.console_open

Value: if-enabled
Type: One of the strings 'no', 'yes', 'if-enabled'

Controls whether the console window will be opened when the application starts. By default the console is configured to open only when the console_capture is in one of the enabled states. Options are:

WX.emulate_menu_button

Value: meta-click
Type: One of the strings 'none', 'meta', 'meta-click'

Configures whether the menu_button is emulated with key combinations. This is useful on systems that do not have a dedicated middle button. Options are:

WX.explorer_dirname

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the directory name appears at the top of the explorer windows.

WX.explorer_display

Value: large
Type: One of the strings 'large', 'small', 'fullinfo'

Configures the display format for the explorer windows. The options for the default display format are:

WX.explorer_enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the file explorer window is available or not.

WX.explorer_sort

Value: name
Type: One of the strings 'name', 'size', 'filetype', 'timestamp'

Configures the sort order for the explorer windows. The options for the default sort order are:

WX.explorer_writeable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the explorer windows are writeable or not. This means that the options to create new directories, delete files and rename files will not be present if this option is disabled.

WX.maximum_redraw_rate

Value: 20
Type: int

Configures the maximum rate at which the wxWidgets window will be updated. If this is set too high, the system may spend more time redrawing than executing code. If this is set too low, output may not refresh in a timely manner as it is generated.

WX.modechange_centres_window

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether a change in the size of the mode causes the window to resize around the centre of the window. When this option is disabled, the window will retain the position of the top left corner when resized. When the option is enabled, the window will move to be centred on its current position.

WX.pythonshell_enable

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the Python shell window is available or not.

WX.textwindow_size

Value: 80x20
Type: Dimensions in the form: <width>x<height> or <size>

Configures the default size of the window used to display and edit text. This window is used by the file explorer, Git and Twin, when configured with 'texteditor.implementation' set to 'wxwidgets'.

WX.window_close

Value: quit
Type: One of the strings 'close', 'quit'

Configures the effect of the interface window being closed. The values for this option are:

WX.window_resize

Value: aspect
Type: One of the strings 'none', 'scale', 'aspect'

Configures how the interface window resizes, and whether the Full screen option can be used. The values for this option are:


Configuration group 'WatchRegions'

The WatchRegions allow blocks of memory to be trapped in the same way. The configuration can allow for different accesses monitoring, with different effects, in the form <type>[=<effect>]. The type can have values:

The effect can have values:

WatchRegions.daheap

Value: no
Type: Regular expression matching: (no|read|write|yes)(=(abort|abort-on-write|trace))?

Configures how regions within the DAHeaps that have been marked as protected are handled. This helps to identify memory corruption within the heap regions.

When enabled, any protected regions such as the heap header, or heap block headers, will be reported on. The option dynamicareaheaps.guard_size adds more protected space around allocated blocks. The most useful settings would be:

WatchRegions.lowmemory

Value: yes=abort-on-write
Type: Regular expression matching: (no|read|write|yes)(=(abort|abort-on-write|trace))?

Configures how the low memory region (addresses 32 - &FE8) is registered as a watchpoint. This memory region is used for Kernel workspace on RISC OS classic. Addresses from &FE8 - &1000 are excluded from this watch point as they are used by various components (WindowManager, FPEmulator and SharedCLibrary in particular).

WatchRegions.lowvectors

Value: yes=abort-on-write
Type: Regular expression matching: (no|read|write|yes)(=(abort|abort-on-write|trace))?

Configures how the low CPU vector region (addresses 0 - 32) is registered as a watchpoint.

WatchRegions.scratchspace

Value: no
Type: Regular expression matching: (no|read|write|yes)(=(abort|abort-on-write|trace))?

Configures how the scratch space (addresses &4000 - &8000) is registered as a watchpoint. This memory region is used by a variety of components, but has been migrated away from.

WatchRegions.sharedpointers

Value: no
Type: Regular expression matching: (no|read|write|yes)(=(abort|abort-on-write|trace))?

Configures how the shared pointer region (addresses &FE8 - &1000) is registered as a watchpoint. This memory region is used for WindowManager, FPEmulator and SharedCLibrary to store pointers that are shared with other components.

WatchRegions.svcstack

Value: write=abort
Type: Regular expression matching: (no|read|write|yes)(=(abort|abort-on-write|trace))?

Configures how the SVC stack smash checks are managed. Parts of the SVC stack which contain data placed there by the operating system are marked as watchpoints with the specified configuration. If they are overwritten, a SVC stack corruption error will be raised.

WatchRegions.svcstackguard

Value: write=abort
Type: Regular expression matching: (no|read|write|yes)(=(abort|abort-on-write|trace))?

Configures how the guard at the base of the SVC stack smash is managed. This is a section of memory of 1K above the base of the SVC stack, of size 1K. It is marked as ROM in RISC OS Select to detect stack overflow during execution. In RISC OS Pyromaniac it is configured as a watchpoint and may abort in a similar manner to RISC OS Select.

WatchRegions.vdumemory

Value: no
Type: Regular expression matching: (no|read|write|yes)(=(abort|abort-on-write|trace))?

Configures how the VDU workspace (addresses &1000 - &4000) is registered as a watchpoint. This memory region is used for VDU workspace on RISC OS classic.


Configuration group 'WimpCommandWindow'

WimpCommandWindow.colour_border

Value: grey34
Type: Colour as 'r,g,b', '&BBGGRR00', bbc palette, 'greyGGG', 'wimpCC' or colour name

Configures the colour used by the Wimp command window for the window border.

The colour can be specified in the form:

WimpCommandWindow.colour_textfg

Value: black
Type: Colour as 'r,g,b', '&BBGGRR00', bbc palette, 'greyGGG', 'wimpCC' or colour name

Configures the colour used by the Wimp command window for the text region's foreground.

The colour can be specified in the form:

WimpCommandWindow.colour_textfill

Value: white
Type: Colour as 'r,g,b', '&BBGGRR00', bbc palette, 'greyGGG', 'wimpCC' or colour name

Configures the colour used by the Wimp command window for the text region's background.

The colour can be specified in the form:

WimpCommandWindow.colour_titlefg

Value: black
Type: Colour as 'r,g,b', '&BBGGRR00', bbc palette, 'greyGGG', 'wimpCC' or colour name

Configures the colour used by the Wimp command window for the titlebar's text.

The colour can be specified in the form:

WimpCommandWindow.colour_titlefill

Value: wimp12
Type: Colour as 'r,g,b', '&BBGGRR00', bbc palette, 'greyGGG', 'wimpCC' or colour name

Configures the colour used by the Wimp command window for the titlebar's background.

The colour can be specified in the form:

WimpCommandWindow.immediate_effect

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the command window comes into effect immediately, or is deferred until the vector traps indicate that the window is to be used. RISC OS Classic always uses deferred mode.

WimpCommandWindow.prompt

Value: \nPress SPACE or click mouse to continue
Type: str

Configures the prompt to display when exiting the command window.


Configuration group 'WimpIcon'

WimpIcon.multiline_alignment

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether multi-line text icons (using 'L' validation) will align left, right, horizontally and vertically. RISC OS Classic will always align the multi-line text horizontally and vertically centred, but RISC OS Pyromaniac supports all the options.

WimpIcon.render_sprites

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether sprites are rendered in icons. When this option is disabled, sprites will be drawn as a bare rectangle, rather than being rendered.

WimpIcon.shaded_style

Value: background-blend
Type: One of the strings 'grey', 'grey-blend', 'background-blend'

Configures how the shaded icons are rendered. There are different ways in which the blend can be performed:

WimpIcon.validation_c

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the C validation, which controls 24-bit colour for icons, is supported. It was introduced in RISC OS 4, and prior OS versions did not honour it.


Configuration group 'WimpReadSysInfo'

WimpReadSysInfo.current_task

Value: none
Type: str

Configures the name of the task that will be returned for Wimp_ReadSysInfo 5 (current task). The name will be looked up through the internal interface to TaskManager. The string 'none' can be used to return no current task.

WimpReadSysInfo.desktop_state

Value: swi
Type: One of the strings 'command', 'desktop', 'swi'

Configures the value returned for Wimp_ReadSysInfo 3 (desktop state). Values:

WimpReadSysInfo.iconsprites_suffix

Value: 22
Type: str

Configures the value returned for Wimp_ReadSysInfo 2 (icon sprites suffix). The value auto may be used to read the suffix to use from the current mode.

WimpReadSysInfo.mode

Value: swi
Type: A mode number, or 'swi' for the current state of the Wimp_SetMode SWI

Configures the value returned for Wimp_ReadSysInfo 1 (current wimp mode).

WimpReadSysInfo.task_count

Value: 0
Type: int

Configures the value returned for Wimp_ReadSysInfo 0 (task count).

WimpReadSysInfo.wimp_version

Value: 3.99
Type: Regular expression matching: [1-9]\.[0-9][0-9]

Configures the value returned for Wimp_ReadSysInfo 7 (WindowManager version).


Configuration group 'WimpReportErrorBox'

WimpReportErrorBox.disable_beep

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the Wimp_ReportError beeps (when not disabled in the call). If enabled, the beep will be issued through the System Bell interface (VDU 7, Service_SystemBell))

WimpReportErrorBox.implementation

Value: vdu
Type: str

Configures the implementation to use for the Wimp_ReportError system. This allows the type of error reports to be controlled. The current implementations that are provided are:


Configuration group 'WimpReportErrorBoxGraphics'

WimpReportErrorBoxGraphics.application_sprite

Value: yes
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the application sprite appears on the side of the error box. RISC OS 2 did not include the application sprite.

WimpReportErrorBoxGraphics.category_both_sides

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

WimpReportErrorBoxGraphics.centre_buttons

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the buttons are centred in the window, instead of right aligned. RISC OS 2 centred the buttons.

WimpReportErrorBoxGraphics.divider_style

Value: auto
Type: One of the strings 'none', 'solid', 'indent', 'sprite', 'auto'

Configures how the divider will be shown in the window. The option may be one of:

WimpReportErrorBoxGraphics.message_border

Value: no
Type: One of the strings 'no', 'yes', 'sunk'

Controls whether the message area is bordered. RISC OS 2 had a solid border. RISC OS 3 onwards did not use a border. Some styles of error boxes had sunk borders. Options are:


Configuration group 'WimpSlot'

WimpSlot.slotsize_negative_effect

Value: ignore
Type: One of the strings 'error', 'trace', 'ignore'

Configures the behaviour of passing negative values to SWI Wimp_SlotSize. The documentation states that the values in R0 and R1 on entry to Wimp_SlotSize may be -1 to read the current size. This is not the actual implementation in RISC OS Classic, which treats any negative value as reading the size. The configuration here can change behaviour to reflect this:


Configuration group 'WimpSpritePool'

WimpSpritePool.maxsize

Value: 800 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the maximum size of each of the sprite areas in the pool.

WimpSpritePool.priority_filename

Value: 
Type: str

Configures the RISC OS filename to use for the Wimp sprite pool's priority sprites. The priority sprites will be tried before any sprites loaded into the RAM pool.

When set to an empty string no sprites will be loaded.

WimpSpritePool.priority_native_filename

Value: 
Type: str

Configures the native filename to use for the Wimp sprite pool's priority sprites. The priority sprites will be tried before any sprites loaded into the RAM pool. The native filename will be tried only if there isn't a RISC OS file available.

When set to an empty string no sprites will be loaded.

WimpSpritePool.protect_rom_sprites

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the ROM sprites are considered the high priority or low priority. When enabled, the ROM sprites are used in preference to the regular icon sprites. When disabled, the icon sprites are used in preference to the icon sprites. The priorty pool is always used in preference to both these pools.

WimpSpritePool.ram_filename

Value: 
Type: str

Configures the RISC OS filename to use for the Wimp sprite pool's RAM sprites. The RAM sprites will be tried before any sprites loaded into the ROM pool.

When set to an empty string no sprites will be loaded.

WimpSpritePool.ram_native_filename

Value: 
Type: str

Configures the native filename to use for the Wimp sprite pool's RAM sprites. The RAM sprites will be tried before any sprites loaded into the ROM pool. The native filename will be tried only if there isn't a RISC OS file available.

When set to an empty string no sprites will be loaded.

WimpSpritePool.rom_filename

Value: 
Type: str

Configures the RISC OS filename to use for the Wimp sprite pool's ROM sprites. The ROM sprites will be tried after any sprites loaded into the RAM pool.

When set to an empty string no sprites will be loaded.

WimpSpritePool.rom_native_filename

Value: 
Type: str

Configures the native filename to use for the Wimp sprite pool's ROM sprites. The ROM sprites will be tried after any sprites loaded into the RAM pool. The native filename will be tried only if there isn't a RISC OS file available.

When set to an empty string no sprites will be loaded.


Configuration group 'WimpTextOp'

WimpTextOp.font_name

Value: Homerton.Medium
Type: str

Configures the name of the font that will be used for the Wimp font. When set to an empty string the system font will be used. This configuration sets the default Wimp$Font variables.

WimpTextOp.font_size

Value: 12.0
Type: Dimensions in the form: <width>x<height> or <size>

Configures the size of the font that will be used for the title bar, in points. The size can be a fractional value, but RISC OS FontManager only supports 16 divisions of a point, ie multiples of 0.0625. This configuration sets the default Wimp$FontSize and Wimp$FontWidth variables.


Configuration group 'WimpToolSprites'

WimpToolSprites.filename

Value: 
Type: str

Configures the RISC OS filename to use for the Wimp tool sprites.

When set to an empty string no sprites will be loaded.

WimpToolSprites.maxsize

Value: 256 K
Type: Size as a number which may be suffixed by 'K', 'M' or 'G', and '-1'

Configures the maximum size of the sprite area.

WimpToolSprites.native_filename

Value: 
Type: str

Configures the native filename to use for the Wimp tool sprites. The native filename will be tried only if there isn't a RISC OS file available.

When set to an empty string no sprites will be loaded.


Configuration group 'ZeroPage'

ZeroPage.lowvectors

Value: error:DEAD
Type: Regular expression matching: (no|read|write|yes)(=(abort|abort-on-write|trace))?

Configures how the low vector area (addresses 0 - 32) will be populated. The region can be configured to contain either 0s, -1s, or a string that might look like an error block.

The configuration may be set to one of:

The error block will be given an error number based on the <type> supplied. These have different properties which may be useful during diagnostics:

Note that although the content at address 0 may appear like an error block, the use of a value 0 as an error pointer will be trapped depending on the configuration of error.nullpointer_effect. Unless this is set to passthrough, this configuration will not be seen.


Configuration group 'Zipper'

Zipper.strict_fileopen

Value: no
Type: Boolean state in the form true/false, yes/no, or 1/0

Controls whether the Zipper_UnZipFileOpen faults opening files without closing them. The original Zipper module claimed to fault opening multiple files, but didn't. When this option is enabled, the UnzipFileOpen will fault the opening of multiple files.