Cache specifications:


INDEX file:
~~~~~~~~~~~

All entries are 20 bytes.

Byte        0 : Channel (-1 if frame has expired).
Bytes  1 -  4 : Frame number (offset + 1072).
Byte        5 : Subframe number (unused).
Bytes  6 - 10 : RiscOS 5-byte time value when frame stored.
                If bits 7 to 10 are zero (entry%!7=0) then the frame has
                expired. This is the 'official' method used to tell status.
Bytes 11 - 14 : Byte offset into data file.
Byte       15 : Number of times frame requested.
Bytes 16 - 19 : Reserved. Contents should not be assumed.


DATA file:
~~~~~~~~~~
All entries are 1080 bytes, same format as saved frames. Contents pointed
by INDEX file.


Index/Data are automatically compacted at initialisation.



XINDEX and XDATA files:
~~~~~~~~~~~~~~~~~~~~~~~
Created upon cache compaction. Valid data is copied into these files.
They are then copied over the originals.

