3

Archie, an older Archimedes emulator for DOS had a feature called "PCFS" that allowed Archimedes files to be stored on the filesystem of the machine running the emulator. The files themselves were stored directly on the PC's filesystem, but there was also a metadata file

I would like to know what this metadata files contain so I can restore the metadata in a more modern RISC OS environment, but googling is not turning anything up.

3

Inspecting a couple of the files with hexdump and cross-referencing riscos documentation the file seems to be a sequence of 32-bit little endian words. Looking at the values the following is my best-guess as to the fields meaning.

  • Word 0 appears to be the "load address"* field, on riscos this normally follows the form 0xFFFtttdd where ttt is the file type and dd is the most significant byte of the date/time stamp (I have not cross-checked that the timestamp makes sense)
  • Word 1 appears to be the "executation address" field, on riscos this typically contains the rest of the date/time stamp.
  • Word 2 appears to be the size of the file.
  • Word 3 had the value 3, I am guessing this corresponds to the "access flags".
  • Word 4 had the value 1, I have no idea what this relates to.

If someone has more authoritative information I would be happy to see it.

* The names "load address" and "execution address" are largely historical, dating back to the BBC micro days.

3

Some of the metadata attributed to files on Acorn filing systems date from the 8-bit implementations of ADFS (and the earlier DFS) on the BBC Micro. These include the address to load the file in memory (RAM) whean read from disk, and the address at which the OS should start executing the file (if it is executable).

Key additions for RISC OS as used by the Archimedes include the three-byte file type that RISC OS uses to identify what programs should be used to open particular files (or whether they are executable themselves).

The inability to store the file type was the main issue with using DOS filing systems with an Archimedes, so this data will certainly be listed in the metadata file. I suspect it may include some or all of the information returned by the OS call OS_GBPB 12, which consists of the following data (at the given offsets):

  • 0 Load address
  • +4 Exec address
  • +8 Length
  • +12 Attributes (read, write permissions etc.)
  • +16 Object type (e.g. file, directory)
  • +20 Filetype (as described above)
  • +24 Name (0 – terminated string)

Note: the ZIP file format has provision for storing RISC OS file types, which means that software for RISC OS machines is often stored in ZIP folders for distribution via non-RISC machines. The ZIP format stores all the metadata returned by OS_GBPB 12, as seen here.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.