home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / utilities / m / macrolife / !MacroLife / Docs / FileFormat < prev    next >
Text File  |  1996-06-21  |  4KB  |  115 lines

  1.  
  2. MacroLife uses two file formats, one for saving Life planes and one for
  3. saving areas of the plane as "Lifeforms".
  4. Lifeform files can be compiled into libraries, which are loaded by
  5. MacroLife at run time.
  6. It can also export Life patterns as text files, which can be imported
  7. into Life programs for other machines, such as 'xlife', which runs on
  8. Un*x workstations, and Life and WinLife for PCs.
  9.  
  10.  
  11. LifeForm  (Filetype &B7C)
  12. -------------------------
  13.    Size  Description
  14.    ----  -----------
  15.       8  "LifeForm"
  16.       2  Version number * 100
  17.       1  Reserved (currently always 0)   
  18.       1  Compression method (0 = no compression, 1 = Squash compression)
  19.          If compression is used, the following data will be compressed
  20.          using the specified method. It will be preceded by a single word
  21.          containing the original uncompressed size of the data.
  22.   * 1/4  Title string size - currently 0 or 32 (decimal)
  23.     0/?  title string, null terminated and padded with zeros
  24.       4  Width of saved area (number of cells)
  25.       4  Height of saved area (number of cells)
  26.       ?  a series of 32-bit words, each bit representing a cell, beginning
  27.          at the bottom left and working along each row. 
  28.          Size in bytes is thus (width * height)/8, rounded up to a whole
  29.          number of words.
  30.          
  31. Life (Filetype &B7B)    
  32. --------------------
  33.    Size  Description
  34.    ----  -----------
  35.       8  "Life    "
  36.       2  Version number * 100
  37.       1  Reserved (currently always 0)   
  38.       1  Compression method (0 = no compression, 1 = Squash compression)
  39.          If compression is used, the following data will be compressed
  40.          using the specified method. It will be preceded by a single word
  41.          containing the original uncompressed size of the data.
  42.   * 1/4  Settings size - currently 0 or 96 (decimal)
  43.     0/?  Current settings data
  44.   * 1/4  Plane data flag - 0 or 1
  45.     0/4  Current plane generation (if flag = 1)
  46.     0/?  Current plane data (multiple of 36 bytes)
  47.   * 1/4  Start position data flag - 0 or 1 
  48.     0/?  Start position data (multiple of 36 bytes)
  49.     
  50. Fields marked with a * are 4 bytes when stored compressed, else 1 byte.
  51.     
  52. Plane and Start data is stored as a four-layer tree structure, with a
  53. branching factor at each level of 256. Tree traversal is depth-first.
  54. i.e. given that the four layers are Global, Regional, Local and Cells
  55.  a typical organisation might be GRLCCLCRLCCC, encoding the tree:
  56.  
  57.                        G
  58.                        |
  59.                   R---------R
  60.                   |         |
  61.                L-----L      L
  62.                |     |      |
  63.              C---C   C   C--C--C
  64.   
  65. Each node consists of a 36 byte structure. The first four bytes contain
  66. a count of occupied branches, followed by a branch map organised as
  67. 16 rows of 16 bits, beginning with the bottom row. The count word of the
  68. first node - the Global node, contains the population, not the number
  69. of occupied branches.
  70.  
  71. Text (Filetype &FFF)    
  72. --------------------
  73. Life textfiles are stored as a series of "pattern blocks", each of which
  74. has a pair of co-ordinates which define where the top left of the pattern
  75. will appear on the Life plane. For example, a glider centred on 0,0 would
  76. appear as:
  77.  
  78. #P -1 -1
  79. .*
  80. ..*
  81. ***
  82.  
  83. MacroLife can read in these textfiles if they are dragged to the icon bar.
  84. It will also recognise the 'co-ordinate' format produced by early
  85. versions of xlife. The glider shown above would appear as follows:
  86.  
  87. -1  1
  88.  0  1
  89.  1  1
  90.  1  0
  91.  0 -1
  92.  
  93. Data (Filetype &FFD)    
  94. --------------------
  95. MacroLife will search its internal Lifeform directories for predefined Life
  96. patterns when it starts up. By compiling the files in these directories
  97. into libraries, the time it takes to load the patterns can be reduced.
  98. The format of a Life library file is as follows:
  99.  
  100.    Size  Description
  101.    ----  -----------
  102.       8  "LifeLib "
  103.       2  Version number * 100
  104.       2  Reserved (currently always 0)   
  105.       4  number of lifeforms in library
  106.       
  107.       This header is followed by the number of Lifeforms specified, together
  108.       with some additional information. The format of each entry is:
  109.       
  110.       4  size of leafname
  111.       ?  leafname of Lifeform, size specified by preceding integer
  112.       4  high byte of datestamp
  113.       4  low bytes of datestamp
  114.       4  size of Lifeform
  115.       ?  Lifeform file (for structure see above)