[Oberon] PO2013 - SD Image Tool

Paul Reed paulreed at paddedcell.com
Sat May 23 19:24:37 CEST 2020

Hi Tomas,

> ... rebooted, as it does some sector housekeeping at start.

This housekeeping code (FileDir.Init) is indeed what to study if you 
want to compress things further.

It walks the directory recursively to find out what directory sectors 
are in use; and then for each file in the directory it reads the file 
header to find out what file sectors are in use.  This builds the 
complete sector allocation map at the beginning of an Oberon session.

Any sectors created during the session which are not linked to a named 
file in the directory are intentionally lost on shutdown. That is, 
temporary files in Oberon are simply files created without a name.

> Also I seem obsessed with OBERON.FS compression it cannot let go
> yet :-)

Each directory sector can be further compressed if it is not full, as 
DirPage.m tells you the number of actually-used entries.  (But each 
directory page except the root will be at least half-full.)

But even if you wanted to send this data over a slow serial link, for 
example, it would still be much faster to send the individual files and 
let the filesystem be built on the RISC5.  You don't need to send the 
directory sectors at all that way.

> Then truncated before first blank 1024 block.
> ...didn't you do the same with your original image back in 2014?

If you mean I didn't truncate it at all, that's correct, see the 
reference to the original message I recently posted.  Because the large 
amount of repetitive data compresses very well with standard utilities.


More information about the Oberon mailing list