Post #205409
2026-02-01 06:31 UTC
A little more info on the word count in #CTSS ARCHIV - I've worked through some of the source code, and it looks like it's literally the value reported by FSTATE, which is the equivalent of stat(2), i.e. to read file metadata from the filesystem. It's also the same value used for the loop control in the actual file transfer, so by definition it's the exact number of words written to the output, which I guess means that the difference is down to whatever later processing happened to convert it to ASCII.
Either that or it's not a literal decimal value? There are definitely digits up to 9 in that field though, so it's not octal (which is what tended to be used on the #IBM7094). The code which writes it to the buffer which will eventually be written to the file is:
RCONV.(BZEL.(DEFBC.(CT)),NWLNMK(4),NWLNMK(3))
I need to look up what RCONV, BZEL and DEFBC actually do...
#retrocomputing
Replies (2)
-
@philcowans@universeodon.com 2026-02-01 16:49
To round this off, DEFBC = convert integer to decimal string. BZEL = strip leading zeros. RCONV = convert BCD string to ASCII, right justified. so I was interpreting the files correctly, and I still have no idea how to get the reported length from the content.
-
@larsbrinkhoff@mastodon.sdf.org 2026-02-01 12:04
@philcowans Just curious, why are you interested in CTSS archives? Are they prevalent in use? Many specimens on backup tapes? No one decoded the format yet? I'm interested because in some ways CTSS was a predecessor to ITS, and ITS has archive files too. I made a tool to extract files them, but some archives on backup tapes defy decoding. Even by ITS itself.