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