[comp.sys.ibm.pc] Can't get DOS to see new SWITCHAR

jem97@leah.Albany.Edu (Jim Mower) (04/11/89)

I am unable to get DOS commands (cd, dir, etc.) to recognize that the
switch character has been changed.  I have done this successfully with
MS-DOS 3.2 on a Zenith 248.  I'm using SWITCHAR.COM, downloaded with
PICNIX from SIMTEL20 (forgot which version, but I downloaded it about a
week ago).  Although the PICNIX routines use the new switch character
correctly, and SWITCHAR, when called without an argument, will 
report the new switch character, resident DOS commands (none that I've
used so far) recognize the new switch.  Is this a DOS 4.01 problem?
Sorry if this has been discussed before.  Thanks for any information.

Jim Mower, Dept. of Geography and Planning
University at Albany
jem97@leah.albany.edu (internet)
jem97@albny1vx        (bitnet)
 

sullivan@phyllis.math.binghamton.edu (fred sullivan) (04/12/89)

In article <1738@leah.Albany.Edu> jem97@leah.albany.edu.UUCP (Jim Mower) writes:
>I am unable to get DOS commands (cd, dir, etc.) to recognize that the
>switch character has been changed.

>                                         Is this a DOS 4.01 problem?

I recall reading that switchar has disappeared in BS/2 and I suspect it
has in DOS 4.1.  Remember that this is NOT an official MS interrupt.

Fred Sullivan				SUNY at Binghamton
Dept. Math. Sciences			Binghamton, NY 13903
					sullivan@marge.math.binghamton.edu
First you make a roux!

dhesi@bsu-cs.bsu.edu (Rahul Dhesi) (04/12/89)

In article <2068@bingvaxu.cc.binghamton.edu>
sullivan@phyllis.math.binghamton.edu (fred sullivan) writes:
>I recall reading that switchar has disappeared in BS/2 and I suspect it
>has in DOS 4.1.  Remember that this is NOT an official MS interrupt.

The switchar function used to be well-documented in the MS-DOS
manuals.  The switchar fiasco is embarrassing to Microsoft, though, so
it stopped describing it, and sort of pretends it doesn't exist.
-- 
Rahul Dhesi <dhesi@bsu-cs.bsu.edu>
UUCP:    ...!{iuvax,pur-ee}!bsu-cs!dhesi

nelson@sun.soe.clarkson.edu (Russ Nelson) (04/12/89)

In article <2068@bingvaxu.cc.binghamton.edu> sullivan@phyllis.math.binghamton.edu (fred sullivan) writes:

   I recall reading that switchar has disappeared in BS/2 and I suspect it
   has in DOS 4.1.  Remember that this is NOT an official MS interrupt.

Again, I repeat my offer of a photocopied page, out of the Zenith Programmer's
Utility Package documenting switchar, to anyone who sends me a SASE.  There
are two copyrights on the PUP -- Zenith's and Microsoft's.

Switchar is official!

Russell Nelson
Clarkson University ECS
Potsdam, NY 13676
--
--russ (nelson@clutx [.bitnet | .clarkson.edu])
America -- Socialism for the rich people, Capitalism for the rest of us.
	- Michael Harrington, Co-Chair, Democratic Socialists of America

alex@mks.UUCP (Alex White) (04/12/89)

In article <NELSON.89Apr12010628@sun.soe.clarkson.edu>, nelson@sun.soe.clarkson.edu (Russ Nelson) writes:
> In article <2068@bingvaxu.cc.binghamton.edu> sullivan@phyllis.math.binghamton.edu (fred sullivan) writes:
> 
>    I recall reading that switchar has disappeared in BS/2 and I suspect it
>    has in DOS 4.1.  Remember that this is NOT an official MS interrupt.
> 
> Again, I repeat my offer of a photocopied page, out of the Zenith Programmer's
> Utility Package documenting switchar, to anyone who sends me a SASE.  There
> are two copyrights on the PUP -- Zenith's and Microsoft's.
> 
> Switchar is official!

The switchar system call is still there.
Its a case of Microsoft gradually trying to eliminate it.
In dos 2, switchar could be set in the config.sys file.
In dos 3, that went away, but the system call was still there.
In dos 4, the system call is still there, but all the system programs
no longer make the system call but have the switchar hardwired as /.
Remember, the system call is really only an advisory.
Dos is storing one character internally, setswitchar() saves it,
and getswitchar() tells you what it is.
Dos itself couldn't care less.
Its only application programs that want to parse command lines that care;
they can, if they want, ask what the switch character is, and parse their
lines appropriately.  The MKS Toolkit routines, for example have dash (-)
hardwired into them for command line parsing.
Application programs at random know or don't know about the switch character.
Dos 4 is a true botch, because the switch character was indeed, as this
person pointed out, documented at one time.  Thus, programs have been written
to use it; if for example they called command.com with the /c option
based on the system call, under Dos 4 they may no longer work.
The only solution is not to use the switch character call, so that such
programs always use /c.  Then buy the Toolkit which doesn't care :-).

As a side effect, if the switch character isn't a slash (/), then the
command line doesn't parse slashes, so filenames can have slashes.
The DOS kernel has since Dos 2, accepted either slash (/) or backslash (\)
in file names.  And this, Microsoft isn't about to change.  Actually, I
seem to recall seeing it documented in their C manuals, for how to use
#include in a portable manner with Xenix.  As in they actually tell
you to do something like #include <sys/types.h> rather than
#include <sys\types.h>

wheels@mks.UUCP (Gerry Wheeler) (04/12/89)

In article <1738@leah.Albany.Edu>, jem97@leah.Albany.Edu (Jim Mower) writes:
> I am unable to get DOS [version 4] commands (cd, dir, etc.) to recognize
> that the switch character has been changed. 

Since the MKS Toolkit also has a command to alter the switch character,
we were also rather dismayed to see this behaviour.  Our only
conclusions are that 1) the (undocumented) system call is still in
place, and 2) the new DOS commands do not use the call to determine the
current setting. Pity.

My own theory is that the call was not intended to be part of DOS in the
first place, but that some programmer with a Unix background added it in
the middle of the night, and Microsoft has been busily removing the code
ever since.  :-)
-- 
     Gerry Wheeler                           Phone: (519)884-2251
Mortice Kern Systems Inc.               UUCP: uunet!watmath!mks!wheels
   35 King St. North                             BIX: join mks
Waterloo, Ontario  N2J 2W9                  CompuServe: 73260,1043

smvorkoetter@watmum.waterloo.edu (Stefan M. Vorkoetter) (04/13/89)

In article <763@mks.UUCP> wheels@mks.UUCP (Gerry Wheeler) writes:
>In article <1738@leah.Albany.Edu>, jem97@leah.Albany.Edu (Jim Mower) writes:
>> I am unable to get DOS [version 4] commands (cd, dir, etc.) to recognize
>> that the switch character has been changed. 
>
>Since the MKS Toolkit also has a command to alter the switch character,
>we were also rather dismayed to see this behaviour.  Our only
>conclusions are that 1) the (undocumented) system call is still in
>place, and 2) the new DOS commands do not use the call to determine the
>current setting. Pity.

What we really need now is a new operating system.  Before you all
cry UNIX(tm) or, heaven forbid, OS/2, hear me out.  Personally I would
prefer UNIX over DOS, but what we need is an operating system with
reasonable requirements.  They say the hardware technology is expanding
so rapidly that the software can't keep up.  I think it is the other
way around.  People are writing programs with no regard for the poor
user who has only 640K and a 20M hard drive.  Believe me, I know; I am
guilty myself.

Before I bought my Turbo XT with 640K and a 20M hard drive, I had a
PCjr (no laughs please).  It had 512K and two floppy drives.  I got
very good at writing small programs.  On one floppy, I had all of the
following:

	An enhanced (by me) version of Small-C   30K
	A C preprocessor (by me)                 10K
	Make (also by me)                        10K
	Eric Isaacson's A86 assembler            20K
				 D86 debugger             15K
	A super neato text editor (by me)        30K
	Turbo Pascal 4.0 and library             80K ?
	A terminal emulator (VT52, by me)        11K
	Grep (by me)                             10K
	Touch (by Borland)                        4K
	The usual DOS utilties (format etc.)     50K

	FREE SPACE (yes, that's right)     about 80K

So, if it is possible to do all this in this little bit of space, 
why can't we write a DOS like operating system, with a UNIX like
shell, really fast execution (so DOS calls are worthwhile), that
does not take up any more space than say DOS 2.10?  Why do we need
4Mb just to say "Hello, world!" these days?

Just my opinion (and probably someone else's as well).

Stefan Vorkoetter
smvorkoetter@watmum.waterloo.edu