ResourceTree.plist on MacOSX

A PropertyList describing the resources of a VICE machine that is shown in
the Resource Inspector.

The PropertyList consists only of dictionaries and strings.
A dictionary describes a group of resources and a string describes a 
resource entry including its name, type and, valid format.

1. Machine Selector Dictionaries

There is only one resource tree for all machines of VICE. However, not all
resources are valid for all machines. Therefore, some dictionaries are
machine selectors and include their children only for some machines.

A machine selector dictionary has a name that starts with an underscore
and contains one or more machine names concatenated by underscore.
E.g. _C64_ or _C64_C128_ are valid machine selectors.

The contents of a machine selector dictionary will be included into the
parent dictionary if the current machine is found in the selector list.
If not then the whole sub tree is simply ignored.

2. Resource String Format

A string describes a resource of VICE and has the following format:

  <resource_name>,<resource_format>[,<resource_options>[,<more options>]]

The resource_name is the name of the resource as defined in the VICE source
code and is used in the vicerc files.

A resource format is given as a string and the following formats are defined:

  s                       a string resource

  b                       boolean/toggle resource
  i                       integer resource
  r,<min>,<max>           an integer out of the range [min;max]

  e,<key0>,<key1>,...     an enumeration with keys and implicit values 0,1,..
  E,<value0>,<value1>,... an enumeration where values and keys are identical
  m,<key0>=<value0>,...   an arbitrary map of keys and values
  
                          Note: enum integer values can be given in hex by
                          prepending a $ dollar sign.F
  
  fo        a file name picked with "Open File" dialog
  fs        a file name picked with "Save File as..." dialog
  fd        a directory name pick with "Open Directory" dialog
  
Examples:

  RsUserEnable,b
  
    An integer resource "RsUserEnable" with values 0=off and 1=on

  RsUserBaud,E,300,600,1200,2400,4800,9600
  
    The resource "RsUserBaud" is an enumeration of the values 300, 600 ...
    
  RsUserDev,e,Device 1,Device 2,Device 3,Device 4
  
    The resource "RsUserDev" is an enumeration that has the options
    "Device 1", "Device 2", ... and assigns them an integer resource
    with values 0, 1, ...
  
  SidModel,m,6581=0,8580=1,8580+digiboost=2,6581R3 4885=8,6581R3 0486S=9
  
    The resource "SidModel" has the options "6581", "8580", ... and assigns
    them the integer values 0, 1, 2, 8, 9 

EOF
