Resource File Format
--------------------

All numbers are in 68000 format (big-endian, high order byte first).

Header: 256 bytes
Resource data: variable size
Resource map: variable size

Header:
	4 bytes: offset of resource data
	4 bytes: offset to resource map
	4 bytes: length of resource data
	4 bytes: length of resource map
	rest of header is reserved

Resource data:
	For each resource:
		4 byte: length of following data
		n bytes: the data

Resource map:
	22 bytes: zero (reserved)
	2 bytes: file attributes
	2 bytes: offset (within map) to type list
	2 bytes: offset (within map) to name list (see below)
	Type list:
		2 bytes: number of types minus 1
		For each type:
			4 bytes: resource type (4 char string, e.g. 'FONT')
			2 bytes: number of resources of this type minus 1
			2 bytes: offset from beginning of type list
				 to list of resources in resource list
	Resource list (same order as type list)
		For each resource:
			2 bytes: resource ID
			2 bytes: offset (within name list) to name, or
				 -1 if no name
			1 byte:  attributes
			3 bytes: offset (within resource data) to data
			4 bytes: zero (reserved)
	Name list:
		For each name:
			1 byte:  length of following name
			n bytes: 

For fonts, the resource ID is font ID * 128 + point size.
The resource for point size zero has zero-length resource data and is
used to associate a name with the font.
Resources are not necessarily sorted on resource ID, but I've noticed
that in practice the resource for size zero precedes the other resources
for the same font, so we can hope to dump fonts by name in a single
sweep.
