[net.micro] Changing SWITCHAR in dos 3.x

bridger@RAND-UNIX.arpa (05/15/86)

The MS-DOS COMMAND.COM shell uses the forward slash '/'
as its SWITCHAR to designate command-line parameters.
In dos versions 2.x the following line could be added
to the CONFIG.SYS file to change that character to a '-',
allowing the '/' to be used as a separator for directory
names in a path:

        SWITCHAR=-

This doesn't work for dos 3.1.  Is there another way to do it?

--bridger mitchell

nather@ut-sally.UUCP (Ed Nather) (05/23/86)

In article <883@brl-smoke.ARPA>, bridger@RAND-UNIX.arpa writes:
> This doesn't work for dos 3.1.  Is there another way to do it?

Yes.  Put the stuff between the two lines of dashes into a file
called fixcom, then type the command

     debug command.com < fixcom

and lo! "echo off" is silent unless you insist on chatter.
----------------------------------------------------------------------
e 105b 2
----------------------------------------------------------------------

-- 
Ed Nather
Astronomy Dept, U of Texas @ Austin
{allegra,ihnp4}!{noao,ut-sally}!utastro!nather
nather@astro.AS.UTEXAS.EDU

nather@ut-sally.UUCP (Ed Nather) (05/23/86)

In article <883@brl-smoke.ARPA>, bridger@RAND-UNIX.arpa writes:
> This doesn't work for dos 3.1.  Is there another way to do it?

Yes.  Here is a short assembly routine that sets SWITCHAR to "\",
thus letting "/" be used as a pathname separator.  It works under
DOS 2.x and 3.x
---------------------------------------------------------------------------

cseg    segment para public 'code'
        assume cs:cseg,ds:cseg,es:cseg,ss:cseg

org     100h

ent     proc near
        MOV DL,'\'      ; DL was slash, change it to backslash
        MOV AX,3701h    ; AH=CharOper, AL=Set it
        INT 21h         ; DOS Command
        RET
ent     endp
cseg    ends
        end ent
-----------------------------------------------------------------
While you're at it, you might also want to shut up the "echo off" echo
from batch files.  Put the stuff between the dashed lines below into a 
file called "fixcom" and then type the command

      debug command.com < fixcom

and lo! echo is off by default and only chatters if you insist.
---------------------------------------------------------------------
e 105b 2
---------------------------------------------------------------------

-- 
Ed Nather
Astronomy Dept, U of Texas @ Austin
{allegra,ihnp4}!{noao,ut-sally}!utastro!nather
nather@astro.AS.UTEXAS.EDU

few@well.UUCP (05/28/86)

In article <883@brl-smoke.ARPA> bridger@RAND-UNIX.arpa writes:
>The MS-DOS COMMAND.COM shell uses the forward slash '/'
>as its SWITCHAR to designate command-line parameters.
>In dos versions 2.x the following line could be added
>to the CONFIG.SYS file to change that character to a '-',
>allowing the '/' to be used as a separator for directory
>names in a path:
>        SWITCHAR=-
>This doesn't work for dos 3.1.  Is there another way to do it?

I've posted this program a couple of times, but never this way before.
Save the following as SW.BAT:
-----
goto END
e 100 F6 06 80 00 FF 74 09 8A 16 82 00 B8 01 37 CD 21
e 110 B8 00 37 CD 21 88 16 30 01 BA 22 01 B4 09 CD 21
e 120 CD 20 53 77 69 74 63 68 20 63 68 61 72 20 3D 20
e 130 00 0D 0A 24
rcx
34
n switch.com
w
q
:END
debug <sw.bat
-----
SWITCH will tell you what the current switch character is, while
SWITCH c will set the switch character to c.
-- 
Frank Whaley
EFS Management Software, Inc.
UUCP:		hplabs!
	   ihnp4!ptsfa!
	seismo!lll-crg!well!few
ARPA:	well!few@lll-crg.ARPA

ddrex@gorgo.UUCP (06/01/86)

/* Written  9:47 am  May 23, 1986 by nather@ut-sally.UUCP in gorgo.UUCP:net.micro */
In article <883@brl-smoke.ARPA>, bridger@RAND-UNIX.arpa writes:
> This doesn't work for dos 3.1.  Is there another way to do it?

Yes.  Put the stuff between the two lines of dashes into a file
called fixcom, then type the command

     debug command.com < fixcom

and lo! "echo off" is silent unless you insist on chatter.
----------------------------------------------------------------------
e 105b 2
----------------------------------------------------------------------

-- 
Ed Nather
Astronomy Dept, U of Texas @ Austin
{allegra,ihnp4}!{noao,ut-sally}!utastro!nather
nather@astro.AS.UTEXAS.EDU
/* End of text from gorgo.UUCP:net.micro */

That had some rude side effects on my system (pcdos 3.1 on an XT clone).
ECHO didn't, but ERRORLEVEL went away, too (always returned 0 after that
hack), and CED forgot all about synonyms. Restoring the original command.com
restored all those. I'd rather have dos chatter at me than put up with
cpm-oid dumbness.

struct where {
     UUCP .... .. .. .. ihnp4!occrsh!gorgo!ddrex
     ARPA .... .. .. .. ihnp4!occrsh!gorgo!ddrex@berkeley.arpa
     USnail .. .. .. .. POB 1214  Bethany OK  73008
     AT&T .... .. .. .. [405] 942-7852
     FidoNet . .. .. .. Sysop, 147/1  [405] 728-2463 2400/1200/300
  /* the bbs for programmers & collectors of source code */
} David_Drexler;

nather@ut-sally.UUCP (Ed Nather) (06/06/86)

In article <12600005@gorgo.UUCP>, ddrex@gorgo.UUCP writes:
> /* Written  9:47 am  May 23, 1986 by nather@ut-sally.UUCP in gorgo.UUCP:net.micro */
> In article <883@brl-smoke.ARPA>, bridger@RAND-UNIX.arpa writes:
> > This doesn't work for dos 3.1.  Is there another way to do it?
> 
> Yes.  Put the stuff between the two lines of dashes into a file
> called fixcom, then type the command
> 
>      debug command.com < fixcom
> 
> and lo! "echo off" is silent unless you insist on chatter.
> ----------------------------------------------------------------------
> e 105b 2
> ----------------------------------------------------------------------
> -- 
> Ed Nather
> 
> That had some rude side effects on my system (pcdos 3.1 on an XT clone).
> ECHO didn't, but ERRORLEVEL went away, too (always returned 0 after that
> hack), and CED forgot all about synonyms. Restoring the original command.com
> restored all those. I'd rather have dos chatter at me than put up with
> cpm-oid dumbness.

Oops.  Looks like quite a few characters were lost in that posting; it may
have come about because the "debug script" I included in the original article
had CR codes without LF codes following -- that's the way Debug insists its
input be formatted.

I've used the changed "command.com" on several IBM PC/XTs and a foreign
clone ("Standard Brand") with no side effects whatever.  Errorlevel works
fine.  I use "Keydo" instead of CED but no trouble there, either.  

Here's the complete change to type in by hand:

debug command.com
-e 105b 2
-e 1967 0
-w
-q

and here's the "debug script" I posted in the original article.  THEY SHOULD
BE THE SAME.  If they are not, best do it by hand (if you do it at all).  It
would be a pity if we can't post "debug scripts" to the net and have them
arrive whole ...

The command:

debug command.com < fixcom

The contents of the file "fixcom"  (remove dashed lines above & below)

----------------------------------------------------------------------
e 105b 2
e 1967 0
w
q
----------------------------------------------------------------------

Of course, the problem may be with the PC clone this was tried on ...

-- 
Ed Nather
Astronomy Dept, U of Texas @ Austin
{allegra,ihnp4}!{noao,ut-sally}!utastro!nather
nather@astro.AS.UTEXAS.EDU