Pyromaniac

Pyromaniac Configuration

Introduction

RISC OS Pyromaniac is intended to change its behaviour depending on the needs for the developer or the automation system. To allow this an extensible configuration system is used. The configuration system consists of groups of configurations, and options within those groups. Each option has a single string value to defines its state. Configurations are expressed as a .-separated string, of group.option.

Each configuration can be provided with a 'safe' configuration. This configuration is intended to be used when the system is in an open environment where access to the host system is not desirable. It does not guarantee that the user of the guest system will not be able to access the host system, but merely that the settings given restrict that access. When the safe configuration is in use, all configuration changes override the safe configuration. To use the safe configuration the command line option --config-safe should be used.

A full list of the configuration options is generated at build time.

Command line configuration

The command line tool allows RISC OS Pyromaniac pyromaniac can be configured with the --config option. Care should be used in changing some values, which may produce a system which RISC OS components cannot use. For example, to change the size of the application space, the following command line might be used:

python pyro.py --config memorymap.appspace_size=12M

System variables may be configured with the --set-variable option, which will define the variables used on startup.

In system configuration

Within RISC OS, the Pyromaniac module provides an interface to access the configuration. The *PyromaniacConfig command gives control over the configuration within RISC OS itself. The module may itself be configured to restruct access to configuration variables, so that the guest system not expose the host system to attack.

For example, to change the VDU configuration for paged output to wait for a key at the end of a page:

*PyromaniacConfig vdu.paging=console

Help can be obtained with the -help switch:

*PyromaniacConfig -help vdu

Configuration files

YAML configuration files may be supplied with --config-file to set up a group of configuration options, modules to load and other settings. These configuration files can contain any of the non-informational command line options.

YAML configuration keys:

Example configuration files

Setting some variables, enabling debug and running commands:

%YAML 1.0
---

debug:
  - cli
  - fsrun

variables:
  'Alias$WimpSlot': '||'

execute:
  - command: "Dir testcode"
  - command: "/test"

Loading modules into ROM, together with the internal Pyromaniac modules, and setting configuration:

%YAML 1.0
---

config:
  memorymap.zeropage_enable: yes
  memorymap.rom_size: 6M
  modules.rominit_noisy: yes

modules:
  internal: true
  rom:
    - modules/BASIC,ffa