When directories were eventually added, the forward slash couldn’t be used as a separator because it was already used for modifiers.
When directories were eventually added, the forward slash couldn’t be used as a separator because it was already used for modifiers.
[1] Documented for MS-DOS 2.0; documentation removed for MS-DOS 3.0; still available (according to my source) through at least MS-DOS 3.30
[2] God, why do I still remember this information thirty years later? Sigh.
Examples - from the standard CP/M utilities (CP/M 2.2)
ASM FILE.ABC
.ABC encodes options. Source file for ASM is always .ASM
STAT uses $ - STAT FILE $R/O sets file to read-only PIP A:=B:[G0] - PIP (copy, "peripheral interchange program"), uses [ for options, as do later Digital Research programs (like the linker). Basically /no/ Digital Research use of / as option separator.
Microsoft used / - for example the command line L80 FILE,FILE/N/E - which means link FILE.REL (relocatable), naming the output FILE.COM, and link and exit.
CP/M 2.2 introduced "user areas" - a disk could be divided into 16 user areas (USER 0 to USER 15). There was no "searching" until CP/M 3. CP/NET (Digital Research networking) used [ as a separator. Examples (from CP/NET documentation)
A>RMAC SNIOS A>LINK SNIOS[OS]
LOGIN {password}{[mstrID]}
LOGIN secret[01]
would log in to server 01, with password secret
NETWORK B:=D:[F]
assigned B: to server 0F, drive D:
The lack of directories was not such a loss, as the maximum disk size for CP/M 2.2 was 8MB. Remote drives with CP/NET could be much larger (I have used up to 1TB).
Not true. On IBM mainframes, options are generally specified in a NAME=VALUE or NAME(VALUE) format. For example, here is a TSO command to allocate a dataset: ALLOCATE DATASET(ALLOC.FILE1) NEW DIR(4) TRACKS SPACE(2,3) DSORG(PO) RECFM(F) LRECL(80) BLKSIZE(800) CATALOG
VM/CMS uses an open parenthesis to introduce options instead, for example: LISTFILE (LABEL
The forward slash option style does not come from IBM mainframes.
Nor (despite what many people think) does it come from CP/M – CP/M's own option style was to put options in square brackets: PIP B:=A:*.COM [G9 V]
Not sure exactly where CP/M gets that from, but may be very vaguely inspired by IBM mainframe conventions (especially VM/CMS), with square brackets replacing parentheses for whatever reason, and using single characters to save memory and typing.
What I actually believe happened: forward slash comes from DEC via Microsoft. Microsoft's development tools for CP/M used that option style, which Microsoft got from DEC, because they didn't like CP/M's native option style. QDOS/PC-DOS/MS-DOS 1.0 copied that Microsoft option style.
Yes, IBM did tell Microsoft not to change it from / to - between PC-DOS 1.0 and PC-DOS 2.0. But that was simply because IBM cared more about backward compatibility between DOS 1.0 and DOS 2.0 than Microsoft themselves did. It was nothing to do with mainframes.
The only thing about DOS which shows any strong direct IBM influence, in terms of actual syntax/terminology/concepts/etc, is code pages.
Most mainframe OSes have flat filesystems which do not have the concept of subdirectories.
They also do not use command switches.
The behaviour was almost certainly inherited from DEC TOPS-10:
http://www.os2museum.com/wp/why-does-windows-really-use-back...
This is not a mainframe OS, or an IBM one either. It ran on a 36-bit DEC minicomputer, the PDP-10.