[net.micro.pc] Changing the dumb '\' to '/'...

greenber@timeinc.UUCP (Ross M. Greenberg) (06/11/85)

I'll assue that somebody out there has already modified the code
on the PC to allw e to use '/'s  instead of the dumb backslash that
IBM (Microsoft?) imposed on us...

Could somebody send me the patch?
Thanks

-- 
------------------------------------------------------------------
Ross M. Greenberg  @ Time Inc, New York 
              --------->{ihnp4 | vax135}!timeinc!greenber<---------

I highly doubt that Time Inc. they would make me their spokesperson.
------
"There's something wrong in the world. There's always been. Something no one
has ever named or explained" --- Francisco d'Anconia

rdh@hou2b.UUCP (R.HOWSON) (06/11/85)

The answer to this is of general interest. Please post to
network.

klotz@ihuxo.UUCP (Dave Klotzbach) (06/11/85)

> I'll assue that somebody out there has already modified the code
> on the PC to allw e to use '/'s  instead of the dumb backslash that
> IBM (Microsoft?) imposed on us...
> 
> Could somebody send me the patch?
> Thanks
> 
> -- 
> ------------------------------------------------------------------
> Ross M. Greenberg  @ Time Inc, New York 
>               --------->{ihnp4 | vax135}!timeinc!greenber<---------
> 
> I highly doubt that Time Inc. they would make me their spokesperson.
> ------
> "There's something wrong in the world. There's always been. Something no one
> has ever named or explained" --- Francisco d'Anconia

*** REPLACE THIS LINE WITH YOUR MESSAGE ***
From the program level, inside assembler code etc., you can always substitute
'/' for '\' in the pathname.

If your version of PC/MS-dos is 2.1 or later, you can do this by setting your
'switchar' to any thing other than '/'. This is done by adding the following
command to your config.sys file:

switchar = - or whatever character you prefer.

WARNING: this also changes the default value of COMSPEC from 
[drive]:\command.com
to
[drive]:/command.com
This has been known to cause problems with some of the older public domain 
programs that did not know that '/' and '\' were interchangable from the 
program level.

lsmith@ut-ngp.UTEXAS (06/12/85)

*** REPLACE THIS LINE WITH YOUR MESSAGE ***
A lot of programs use '/' to specify flags, where Unix usually uses '-'.
I assume this is why path names can't have '/'.

maybee@gpp1.UUCP (Joe Maybee) (06/13/85)

In article <549@hou2b.UUCP> rdh@hou2b.UUCP (R.HOWSON) writes:
>The answer to this is of general interest. Please post to
>network.


Include in CONFIG.SYS file the following statement:

      SWITCHAR=-

Only works for DOS 2.X, not 3.X.

                     ----Joe Maybee

bc@cyb-eng.UUCP (Bill Crews) (06/13/85)

DOS 2.x had an undocumented config.sys command called "switchar" that could
be used for this, but this was removed in DOS 3.x!  Someone may have a patch
of some sort, but I would suggest being cautious, because the command
interpreter and other DOS programs commonly interpret a '/' as a switch
character.  This often yields messages such as "Invalid parameter".

-- 

  /  \    Bill Crews
 ( bc )   Cyb Systems, Inc
  \__/    Austin, Texas

[ gatech | ihnp4 | nbires | seismo | ucb-vax ] ! ut-sally ! cyb-eng ! bc

bob@nbires.UUCP (Bob Bruck) (06/13/85)

> I'll assue that somebody out there has already modified the code
> on the PC to allw e to use '/'s  instead of the dumb backslash that
> IBM (Microsoft?) imposed on us...
> 
> Could somebody send me the patch?
> Thanks
> 
> -- 
> ------------------------------------------------------------------
> Ross M. Greenberg  @ Time Inc, New York 
>               --------->{ihnp4 | vax135}!timeinc!greenber<---------

The reason MS-DOS uses '\' as the directory delimiter is that the slash ('/')
is used to indicate SWITCHES in the command line.  MS-DOS (PC-DOS) has a call
to change the SWITCH character to any character you would like (I use a dash
'-' because it is consistant with UNIX conventions).  If you change your
SWITCH character, the directory delimeter will change to the familiar UNIX
convention '/'.  The following short program can be entered into DEBUG and
saved,  all numbers are specified in HEX.

	MOV AX,3700	; AH=CharOper, AL=Get it
	INT 21		; DOS Command
	MOV DL,2D	; DL was 2F (slash), change it to 2D (dash)
	MOV AX,3701	; AH=CharOper, AL=Set it
	INT 21		; DOS Command
	INT 3		; Exit from program

On PC-DOS or MS-DOS 2.x any time DOS specifies pathnames after this program is
run, it will show the slash '/' as the directory delimeter.  On PC-DOS 3.x
it will still use the backslash '\' to display pathnames.  On any version of
DOS, one will be able to use the slash character to send a pathname to DOS.
Remember to now use dash '-' to pass flags to programs.  Also, some programs
may not check to see what the current SWITCH character is ( some programmers
are really sloppy :-) and may require the user to specify pathnames using
backslash.

Bob Bruck  (hao!allegra!...)|nbires|bob

landauer@drivax.UUCP (Doug Landauer) (06/13/85)

[In your CONFIG.SYS file, put:]
> switchar = -
> 
> WARNING: this also changes the default value of COMSPEC ...

ANOTHER WARNING:  This feature seems to be missing from PC-DOS 3.0.
Does anyone have a patch for 3.0 to put it back in?
--
			-- Doug Landauer --
	...[ ihnp4 | mot | ucscc | amdahl ] !drivax!landauer

g-frank@gumby.UUCP (06/14/85)

   If you are using DOS 2.1 or 2.0, you can include a line in your
CONFIG.SYS file that says SWITCHAR=- . This will make the forward
slash (/) the path seperator, and (-) the switch character.  This
feature was removed in DOS 3.0, although the system call to set and
return the character may still be in place.  The problem is that
COMMAND.COM reads this character when it starts up, so changing it
after startup doesn't buy you anything.

  Thus, if you are using 3.0 or 3.1, you are s.o.l., but for any
version before them, it's no problem.


-- 
      Dan Frank

	  Q: What's the difference between an Apple MacIntosh
	     and an Etch-A-Sketch?

	  A: You don't have to shake the Mac to clear the screen.

nather@utastro.UUCP (06/14/85)

> Include in CONFIG.SYS file the following statement:
> 
>       SWITCHAR=-
> 
> Only works for DOS 2.X, not 3.X.
> 
>                      ----Joe Maybee

True.  But Lauren Weinstein posted info about how to do it to DOS 3.0
some time ago.  I haven't tried it since I don't run 3.0 -- has anyone
checked it out?

-- 
Ed Nather
Astronony Dept, U of Texas @ Austin
{allegra,ihnp4}!{noao,ut-sally}!utastro!nather
nather%utastro.UTEXAS@ut-sally.ARPA

john@moncol.UUCP (John Ruschmeyer) (06/14/85)

]From: lsmith@ut-ngp.UTEXAS
]Organization: UTexas Computation Center, Austin, Texas
]Message-ID: <1823@ut-ngp.UTEXAS>
]
]A lot of programs use '/' to specify flags, where Unix usually uses '-'.
]I assume this is why path names can't have '/'.

Ah, 'tis true. This, however, is where the magic undocumented dos 2.x
SWITCHAR comes in. If you add a line such as

	SWITCHAR=-

to your CONFIG.SYS file, then the '/' becomes a legal path delimeter.

Now, however, you must say

	DIR -W

to get a multi-column directory, for example.


As pointed out, however, this is an undocumented "feature". Take it for
what it's worth.

As a side note, does anyone know what would happen to wildcarding if you
set SWITCHAR to '*' ?


-- 
Name:		John Ruschmeyer
US Mail:	Monmouth College, W. Long Branch, NJ 07764
Phone:		(201) 222-6600 x366
UUCP:		...!vax135!petsd!moncol!john	...!princeton!moncol!john
						   ...!pesnta!moncol!john
Silly Quote:
		"I wanted to call it 'Nautical Lady' and Fred wanted
		 to call it 'Queen of the Sea'. So we took the first
		 three letters of my name and the last three letters
		 of his."

cramer@kontron.UUCP (Clayton Cramer) (06/14/85)

> > I'll assue that somebody out there has already modified the code
> > on the PC to allw e to use '/'s  instead of the dumb backslash that
> > IBM (Microsoft?) imposed on us...
> > 
> If your version of PC/MS-dos is 2.1 or later, you can do this by setting your
> 'switchar' to any thing other than '/'. This is done by adding the following
> command to your config.sys file:
> 
> switchar = - or whatever character you prefer.
> 
> WARNING: this also changes the default value of COMSPEC from 
> [drive]:\command.com
> to
> [drive]:/command.com
> This has been known to cause problems with some of the older public domain 
> programs that did not know that '/' and '\' were interchangable from the 
> program level.

Doesn't work under PC-DOS 3.0 on an AT.  In fact, I get an error message when
it tries to process the config.sys command.

mike@peregrine.UUCP (Mike Wexler) (06/14/85)

> If your version of PC/MS-dos is 2.1 or later, you can do this by setting your
							      ^^^^^and less than 3.0
> 'switchar' to any thing other than '/'. This is done by adding the following
> command to your config.sys file:
> 
> switchar = - or whatever character you prefer.
> 
Microsoft in there infinite wisdom has undone this undocumented
feature.  Let's give them a bronx cheer for the ingenuity.

-- 
--------------------------------------------------------------------------------
Mike Wexler(trwrb!pertec!peregrine!mike) | Send all flames to:
15530 Rockfield, Building C              |	trwrb!pertec!peregrine!nobody
Irvine, Ca 92718                         | They will then be given the 
(714)855-3923                            | consideration they are due.

indra@utai.UUCP (Indra Laksono) (06/18/85)

> The answer to this is of general interest. Please post to
> network.

In config.sys, include a line that says : switchar=-.  When you boot the
dos, you'll get directory as /xx/....    etc,  the switch character is now
-.  Eg format b: -v.  Of course this only works with ms/pcdos v2.xx

john@moncol.UUCP (John Ruschmeyer) (06/18/85)

> Also,  some  programs  may  not check to see what the current SWITCH
> character is ( some programmers are really sloppy :-)

True enough. I noticed that the 'tree' utility htat comes with MS-DOS 2.11
for the Tandy 1000 requires '/', no matter what the switchar is set for.


-- 
Name:		John Ruschmeyer
US Mail:	Monmouth College, W. Long Branch, NJ 07764
Phone:		(201) 222-6600 x366
UUCP:		...!vax135!petsd!moncol!john	...!princeton!moncol!john
						   ...!pesnta!moncol!john
Silly Quote:
		"He doesn't do anything right...
			He's saving the Old Pepsi."	- Johnny Carson

		New COKE- the refreshment that pauses.

matt@prism.UUCP (06/20/85)

/**** prism:net.micro.pc / ukc!rde / 10:32 am  Jun 22, 1985 ****/

One  thing  you might try on DOS 3.x is to change the SWITCHAR using the
system call (I too am not certain that it exists, though), then invoke a
second copy of COMMAND. This should read the revised value and  get  the
desired effect (at a small loss in available memory).

/* ---------- */

This DOES work, and you do NOT have to load a second copy of the
command processor - the original copy will know about the new switch
character.

The DOS call of interest is function 37 (hex), which is listed as
reserved for DOS's use.  If function 37 is executed with AL set to
0, the current switch character is returned in DL.  If it is
executed with AL set to 1, the value in DL becomes the new switch
character.

Interestingly enough, function 37 also accept 2 and 3 as valid
inputs in AL, but it isn't clear from tracing DOS what those numbers
mean.  Anyone in netland know?

While we're on the subject of hacking DOS 3.1, does anyone know the
new location to patch in command.com to increase the environment
size to something reasonable?  You would think after all this time
that the Microsoft clones would realize that 128 bytes is just too
small!  (Fascinating that they though it was more important to
include the ability to specify the last disk drive letter in DOS
3.0, but didn't think of allowing you to specify the environment
size!  Now THAT would be a useful thing to put in config.sys.
/sigh/.)

-----------------------------------------------------------------------------
 Matt Landau            {cca, datacube, ihnp4, inmet, mit-eddie, wjh12}...
 Mirror Systems, Inc.                                   ...mirror!prism!matt
-----------------------------------------------------------------------------

rde@ukc.UUCP (R.D.Eager) (06/22/85)

One  thing  you might try on DOS 3.x is to change the SWITCHAR using the
system call (I too am not certain that it exists, though), then invoke a
second copy of COMMAND. This should read the revised value and  get  the
desired effect (at a small loss in available memory).
-- 
           Bob Eager

           rde@ukc.UUCP
           rde@ukc
           ...!mcvax!ukc!rde

           Phone: +44 227 66822 ext 7589

rde@ukc.UUCP (R.D.Eager) (06/22/85)

> Also,  some  programs  may  not check to see what the current SWITCH
> character is ( some programmers are really sloppy :-)

Since it's an undocumented feature who can blame them?
-- 
           Bob Eager

           rde@ukc.UUCP
           rde@ukc
           ...!mcvax!ukc!rde

           Phone: +44 227 66822 ext 7589

john@moncol.UUCP (John Ruschmeyer) (06/28/85)

>From: matt@prism.UUCP
>
>The DOS call of interest is function 37 (hex), which is listed as
>reserved for DOS's use.  If function 37 is executed with AL set to
>0, the current switch character is returned in DL.  If it is
>executed with AL set to 1, the value in DL becomes the new switch
>character.
>
>Interestingly enough, function 37 also accept 2 and 3 as valid
>inputs in AL, but it isn't clear from tracing DOS what those numbers
>mean.  Anyone in netland know?

Time for another undocumented DOS 2.x feature- the AVAILDEV switch

By default, a file can not have the same name as a device (i.e. con).
If you add the following line to your CONFIG.SYS file:

		AVAILDEV=FALSE

then all devices must be referred to as \DEV\device (i.e. \DEV\CON). On the
other hand you can now have a file called AUX, PRN, or CON.

With AL set to 2, function 37 returns the current setting of this flag in
DL. With AL set to 3, function 37 sets this flag to the setting in DL.


[ Kudos to Ross Greenberg at timeinc for the list of undocumented
interrupts. ]

-- 
Name:		John Ruschmeyer
US Mail:	Monmouth College, W. Long Branch, NJ 07764
Phone:		(201) 222-6600 x366
UUCP:		...!vax135!petsd!moncol!john	...!princeton!moncol!john
						   ...!pesnta!moncol!john
Silly Quote:
		"He doesn't do anything right...
			He's saving the Old Pepsi."	- Johnny Carson

		New COKE- the refreshment that pauses.

hamilton@uiucuxc.Uiuc.ARPA (06/28/85)

/* Written  5:04 pm  Jun 19, 1985 by matt@prism in uiucuxc:net.micro.pc */
Interestingly enough, function 37 also accept 2 and 3 as valid
inputs in AL, but it isn't clear from tracing DOS what those numbers
mean.  Anyone in netland know?
-----------------------------------------------------------------------------
 Matt Landau            {cca, datacube, ihnp4, inmet, mit-eddie, wjh12}...
 Mirror Systems, Inc.                                   ...mirror!prism!matt
-----------------------------------------------------------------------------
/* End of text from uiucuxc:net.micro.pc */

in DOS 3.0, function 2 simply returns 0xFF in DL; function 3 returns with
no effect at all.  other values of AL cause AL==0xFF on return.  not so
interesting after all.
	wayne ({decvax,ucbvax}!pur-ee!uiucdcs!uiucuxc!)hamilton