sna2ctl.py

SYNOPSIS

sna2ctl.py [options] FILE

DESCRIPTION

sna2ctl.py generates a control file for a binary (raw memory) file or a SNA, SZX or Z80 snapshot. The control file is written to standard output. When FILE is ‘-‘, sna2ctl.py reads standard input as a binary file.

OPTIONS

-e, –end ADDR

Stop at this address. The default end address is 65536. ADDR must be a decimal number, or a hexadecimal number prefixed by ‘0x’.

-h, --hex

Write upper case hexadecimal addresses.

-I, –ini param=value

Set the value of a configuration parameter (see CONFIGURATION), overriding any value found in skoolkit.ini. This option may be used multiple times.

-l, --hex-lower

Write lower case hexadecimal addresses.

-m, –map FILE

Specify a code execution map to use. Code execution maps produced by the Fuse, SpecEmu, Spud, Zero and Z80 Spectrum emulators are supported.

-o, –org ADDR

Specify the origin address of a binary file. The default origin address is 65536 minus the length of the file. ADDR must be a decimal number, or a hexadecimal number prefixed by ‘0x’.

-p, –page PAGE

Specify the page (0-7) of a 128K snapshot to map to 49152-65535.

--show-config

Show configuration parameter values.

-s, –start ADDR

Start at this address. The default start address is 16384. ADDR must be a decimal number, or a hexadecimal number prefixed by ‘0x’.

-V, --version

Show the SkoolKit version number and exit.

CONFIGURATION

sna2ctl.py will read configuration from a file named skoolkit.ini in the current working directory or in ~/.skoolkit, if present. The recognised configuration parameters are:

Dictionary

The name of a file containing a list of allowed words, one per line. If specified, a string of characters will be marked as text only if it contains at least one of the words in this file.

Hex

Write addresses in decimal (0, the default), lower case hexadecimal (1), or upper case hexadecimal (2).

TextChars

Characters eligible for being marked as text (default: letters, digits, space, and the following non-alphanumeric characters: !"$%&\'()*+,-./:;<=>?[]).

TextMinLengthCode

The minimum length of a string of characters eligible for being marked as text in a block identified as code (default: 12).

TextMinLengthData

The minimum length of a string of characters eligible for being marked as text in a block identified as data (default: 3).

Configuration parameters must appear in a [sna2ctl] section. For example, to make sna2ctl.py write upper case hexadecimal addresses by default (without having to use the -h option on the command line), add the following section to skoolkit.ini:

[sna2ctl]
Hex=2

Configuration parameters may also be set on the command line by using the --ini option. Parameter values set this way will override any found in skoolkit.ini.

EXAMPLES

  1. Generate a control file (using rudimentary static code analysis) for game.z80 named game.ctl:


    sna2ctl.py game.z80 > game.ctl
  2. Generate a control file (using a profile produced by the Fuse emulator) for game.sna named game.ctl:


    sna2ctl.py -m game.profile game.sna > game.ctl