I can understand that, but it makes no sense at first blush. Is there ever a case where the VAU map doesn't start on a VAU boundary? Just trying to figure out why 2 bytes for the catalog location (VAU number) and 3 for the VAU map (sector number)
The catalog name always seems to start with 0x0b. i.e.
Will the first byte always be 0x0b--or are there other significant values of the first byte?
Also, passwords: It seems that the password isn't used to encrypt anything, so a program could open the volume in direct mode and obtain whatever it wanted, no?
When a disc is formatted it is given a VAU size - the number of sectors per VAU, always a power of two, so 1,2,4,8 yada 128 - Value fits in a byte.
For large discs the minimum VAU size must be large enough that all sectors can be addresses by a VAU# (16 bits). Floppies and HAWK (5MB) disc drives are OK, as maybe the 13MB removables. The 39 and 65 MB drives likely have minimum VAU sizes of maybe 4 or 8. - That's something for me to re-document.
The catalog node was given 0x0B (There are no indications that there were any other such 'funny values' in node names) in order to prevent it being opened by 'user programs'. I modded a version of the MASTER code to omit that check and it was then possible to open the catalog as a file. - The problem was that doing so prevent all other catalog operations that required updating, that caused MASTER to crash.
The label holds a catalog version number (2), from which I'm guessing that there
might have been a version 1, where to obtain a catalog listing, it was possible to open the catalog file directly. All versions of OIS MASTER that I saw from maybe 5.x to 11.z had a request code 'OpenCat' which returned a pre-parsed version of the catalog as a temporary file for Catalog display to use.
No, there is no case for a VAU map, Catalog or user file ever to start on a VAU boundary. The catalog addresses the file's data by VAU# and the VAU map links the file's data areas by VAU#.
3-byte values are sector addresses. 2-byte values are VAU addresses. - All that is required is a multiply or divide by the VAU size to convert them. - MASTER uses the relevant shift right/left as VAU sizes are powers of two and Z80 has no mul or div orders.
The passwords are just passwords, like early Unix etc/passwd where the passwords were not even hashed. A write password was a string of 1 to 8 characters. If a write password was specified and no read password, then the password was just stored in the next 8 bytes. If a read password was given, then it had to be a string composed of the write passwords characters. eg Billybob as a write password allowed read passwords such as Bill, Billy, Bbb or Bilbo. The chars unique to a write password simply had the top bit set. e.g. if a write password was 'Fred' and the read password 're' the the hex would have been C6 72 65 E4.
No encryptions etc. For crypto work work, it would have to have been implemented in the OIS MASTER code (Z80) and would have seriously slowed operations and even then likely not to have been very strong. Wang exported OIS quite widely and in the 70s to the 90s even DES, never mind 3DES was classed as a munition in the eyes of the US (and likely a good few others).
Yes, the ability open OpenDC a disc exposed everything. (try /dev/discxxxx or whatever on Unix). For OpenDC to succeed you either had a disc with no 'volume password' in the label or you gave that password in the OpenDC request.
For users, there was no way to determine the volume password. - except for sites with access to a VS or 2200 system, reading sector 0 was not a problem for any competent coder. As the floppy door was locked on mount, you could not switch the disc after OpenDC. - 5.25" sites excepted possibly, but the 'drive ready' line would have dropped, possibly causing the OIS50-series master to fail all ops until a later successful mount. - Wang's coders were diligent.