As described in Processing pipeline, sp65 consists of lots of different modules that may be combined in different ways, to convert an input bitmap to some output.
Many of the processors and converters have options to change the way, they're working. To avoid having lots of command line options that must be parsed on high level and passed down to the relevant parts of the program, sp65 features something called "attribute lists". Attribute lists are lists of attribute/value pairs. These lists are parsed by the main program module without any knowledge about their meaning. Lower level parts just grab the attributes they need.
In general, attribute lists look like this:
attr1=val1[,attr2=val2[,...]]
Instead of the comma, colons may also be used (even mixed).
To simplify things and to make the most common options look "normal", some
mandatory attributes may be given without an attribute name. If the attribute
name is missing, the default name is determined by the position. For example,
the option
--read
does always need a file
name. The attribute name for the file name is "name". To avoid having to type
sp65 --read name=ball.pcx ...
the first attribute gets the default name "name" assigned. So if the first attribute doesn't have a name, it is assumed that it is the file name. This means that instead of the line above, one can also use
sp65 --read ball.pcx ...
The second attribute for --read
is the format of the input file. So when
using
sp65 --read ball.pic:pcx ...
a PCX file named "ball.pic" is read. The long form would be
sp65 --read name=ball.pic:format=pcx ...
Changing the order of the attributes is possible only when explicitly specifying the names of the attributes. Using
sp65 --read pcx:ball.pic ...
will make sp65 complain, because it tries to read a file named "pcx" with an (unknown) format of "ball.pic". The following however will work:
sp65 --read format=pcx:name=ball.pic ...
The attributes that are valid for each processor or converter are listed below.