11 ms·
wild ass guess, they had two tag bytes(is the as/400 even a byte machine, perhaps it would be better to say two tag words) reserved and decided that they were n
by somat 4y ago
wild ass guess, they had two tag bytes(is the as/400 even a byte machine, perhaps it would be better to say two tag words) reserved and decided that they were never going to use them and it was a fairly trivial and safe update to merge them into the name field.
- skissane 4y agoTurns out I'd garbled things in my memory. There was no change in max object name length from S/38 to AS/400 – both were 10 characters max. The change was actually from S/36 to AS/400, which went from 8 to 10 – but AS/400 is not a direct descendant of S/36, only of S/38. Apologies for the misinformation. The biggest incompatibility between S/38 and AS/400 is still in the object name syntax, but not in the maximum length – rather, in how qualified names are written. In S/38, a qualified object name is of the form OBJECT.LIBRARY, whereas AS/400 changes it to LIBRARY/OBJECT. (A "library" is essentially what other platforms call a "directory", except it doesn't just contain files, actually any kind of object; and, there is no hierarchy, libraries cannot be nested – except for the special system library QSYS, which contains every other library). The change in the separator from . to / was necessary for S/36 compatibility - unlike S/38, S/36 allowed dots in names, so for S/36 compatibility, dot was added to the allowed characters in object names. This meant dot could no longer be used to separate the object and library in a qualified name, so slash was used instead. The reversal of the order was not strictly necessary, but was likely motivated by the fact that it is more consistent with what most other major operating systems do (MVS dataset names; paths on Unix, DOS, OS/2 and Windows; OpenVMS; among others).
- twoodfin 4y agoMinor correction: OpenVMS uses . not / as a path separator. / is for command switches.
- skissane 4y agoI wasn’t saying OpenVMS uses slash. I was saying it puts the directory name before the file name instead of after it, as S/38 (effectively) does. (I also mentioned MVS dataset names, which use dot instead of slash as well.)