Function 37h SWITCHAR / AVAILDEV
* Get/set option marking character (is usually "/"), and device type
entry AH 37h
AL 00h read switch character (returns current character in DL)
01h set character in DL as new switch character
(DOS 2.x) 02h read device availability (as set by function AL=3) into
DL. A 0 means devices that devices must be accessed in
file I/O calls by /dev/device. A non-zero value means
that devices are accessible at every level of the
directory tree (e.g., PRN is the printer and not a file
PRN).
AL=2 to return flag in DL, AL=3 to set from DL (0 = set,
1 = not set).
(DOS 2.x) 03h get device availability, where:
DL 00h means /dev/ must precede device names
01h means /dev/ need not precede device names
return DL switch character (if AL=0 or 1)
device availability flag (if AL=2 or 3)
AL 0FFh the value in AL was not in the range 0-3.
note 1) Functions 2 & 3 appear not to be implemented for DOS 3.x.
2) It is documented on page 4.324 of the MS-DOS (version 2) Programmer's
Utility Pack (Microsoft - published by Zenith).
3) Works on all versions of IBM PC-DOS from 2.0 through 3.3.1.
4) The SWITCHAR is the character used for "switches" in DOS command
arguments (defaults to '/', as in "DIR/P"). '-' is popular to make a
system look more like UNIX; if the SWITCHAR is anything other than '/',
then '/' may be used instead of '\ or pathnames
5) Ignored by XCOPY, PKARC, LIST
6) SWITCHAR may not be set to any character used in a filename
7) In DOS 3.x you can still read the "AVAILDEV" byte with subfunction 02h
but it always returns 0FFh even if you try to change it to 0 with
subfunction 03h.
8) AVAILDEV=0 means that devices must be referenced in an imaginary
subdirectory "\\dev" (similar to UNIX's /dev/*); a filename "PRN.DAT"
can be created on disk and manipulated like any other. If AVAILDEV != 0
then device names are recognized anywhere (this is the default):
"PRN.DAT" is synonymous with "PRN:".
9) These functions reportedly are not supported in the same fashion in
various implementations of DOS.
10) used by DOS 3.3 CHKDSK, BASIC, DEBUG