TCLUG Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [TCLUG:17392] [OT] Some computing history?
> > > DOS 2.0. Which added unix like file handles and subdirectories. This is
> > > where the use of the wrong slash got started. ;P
> >
> > God, why did they do that? If there was *one* thing I could change in the
> > computer word, it'd be that. Seriously. Leave it to microsoft, i guess, to
> > change the standard and confuse and annoy thousands of users of both
> > systems.
>
> Incidentally, where in the Goddess's name did '\' come from? Never have I
> seen this used except in LaTeX and DOS.
From http://kt.linuxcare.com/kernel-traffic/kt19991206_45.epl#3
Kai added, "There is a persistent rumour that the "\" thing was because
one of the developers simply got things wrong by accident," to which H.
Peter Anvin added, "And it is also obviously bull. DOS 1.x (which was a
pure CP/M clone) used / as the option character, so for compatibility
they couldn't use it for paths... *especially* since DOS made it legal
to type the option immediately adjacent to a pathname (COPY FOO BAR/V).
DOS 2.x actually had an option to use - as the option character, which
made it possible to use / as a pathname separator. DOS 2.x also had a
kernel option to only recognize devices if the path was prepended with
\DEV\ (or /DEV/), instead of polluting the namespace of every single
directory. I believe OS/2 actually used this. To this day, every version
of DOS 2.0 and later allows you to use / as the pathname separator in
system calls -- but most utilities will see it as an option marker.)"
Brandon S. Allbery also replied to the "\" rumor, saying:
The ITT XTRA MS-DOS 2.11 Reference had a chapter on Xenix compatibility
which explained this stuff in detail; I've never seen it in other DOS
manuals.
CP/M, and therefore DOS 1.x, used / to signal parameters --- and the CLI
knew about this, such that "FOO/X" would be parsed as a command "FOO"
with an argument "/X". To maintain compatibility with DOS 1.x while
providing an upgrade path to Xenix compatibility, the SWITCHAR could be
set via a DOS call or CONFIG.SYS; if set to anything but "/",
"Xenix-like" command parsing was used and DOS commands could be invoked
with switches preceded by the specified SWITCHAR; 3rd party DOS programs
were supposed to use another DOS call to get the SWITCHAR and use it
appropriately. ("Xenix-like command parsing" meaning that "FOO-X" was
not treated as command "FOO" with switch "-X" if the SWITCHAR was "-".)
There was also AVAILDEV which, if set to NO, disabled "bare" device
references such as "CON", and you had to use "\DEV\CON" or "/DEV/CON"
instead; all the standard DOS 2.11 programs used the \DEV prefix
internally so they would work with AVAILDEV=NO, and again 3rd party
programs were supposed to query AVAILDEV and behave appropriately.
That chapter also stated that DOS 3.x would default to a SWITCHAR of
"-" and would add limited multitasking features, and that DOS would
gradually be migrated to full Xenix compatibility, followed by its being
fully replaced by Xenix (!). I sometimes wonder what the computing
world would be like if Microsoft had actually done this....
Interesting thread. Go read the rest. :)