home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1992 September
/
Simtel20_Sept92.cdr
/
msdos
/
batutl
/
echooff.pat
< prev
next >
Wrap
Internet Message Format
|
1992-09-08
|
5KB
From: bobmon@iuvax.cs.indiana.edu (RAMontante)
Subject: THE Patches for Echo-off
Summary: the strings to look for in command.com
I am one of those who think the MS-DOS default for displaying lines in
a batch file is S-T-U-P-I-D. (Well, that makes it consistent, anyway :-)
I understand they've compensated somewhat in v3.3, with a kludge that
requires changing each and every .BAT file....oh boy.
Anyway, for those of you who would rather correct the original mistake
than cover it with bandaids, here are two (simple) patches to
COMMAND.COM to make echo-off the default. Use debug or something
equivalent to find the following byte strings, then change the bytes.
The strings I suggest are near the important bytes, and have been
unchanged in MS-DOS v2.11, v3.10, and v3.21 (as released by Zenith); as
far as I know the PC-DOS versions are the same, but the addresses
involved change by quite a bit. The disassembled context is included so
that you can be sure you've found the right places.
----
To make echo-off the default for all batch files _except_ AUTOEXEC.BAT,
search for: 00 bb 03 00 b4 48 cd 21
ten bytes later, change 03 to 02
----
To make echo-off the default for AUTOEXEC.BAT,
search for: 24 01 50 e8 96 00
change the second byte, 01, to 00
or
search for: 81 c3 b8 00
thirteen bytes previous, change 01 to 00
----------
enjoy and as always -- Caveat Hacker,
Bob Montante
DOS Echo-Off Patches -- debug transcript
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\MISC debug c2.com { patch a _copy_ of command.com }
-
-
-{ ECHO OFF default for .BAT files, except AUTOEXEC.BAT }
-
-s cs:100 2000 00 bb 03 00 b4 48 cd 21 { search for an 8-byte string }
5BE4:122D
-
-u 122d
5BE4:122D 00BB0300 ADD [BP+DI+0003],BH { the }
5BE4:1231 B448 MOV AH,48 { search }
5BE4:1233 CD21 INT 21 { string }
5BE4:1235 7271 JB 12A8
5BE4:1237 A37B0B MOV [0B7B],AX
5BE4:123A C606D00B03 MOV BYTE PTR [0BD0],03 <-- change to 02
5BE4:123F 8EC0 MOV ES,AX ~~~~~~~~~~~~
5BE4:1241 33FF XOR DI,DI
5BE4:1243 B000 MOV AL,00
5BE4:1245 AA STOSB
5BE4:1246 33C0 XOR AX,AX
5BE4:1248 AB STOSW
5BE4:1249 AB STOSW
5BE4:124A B8FFFF MOV AX,FFFF
-
-e 123e
5BE4:123E 03.02 { make the change }
-
-
-
-{ ECHO OFF default for AUTOEXEC.BAT }
-{ alternate search: -scs:100 2000 81 c3 b8 00 }
-
-s cs:100 2000 24 01 50 e8 96 00
5BE4:1BBB
-
-u 1bb0
5BE4:1BB0 06 PUSH ES
5BE4:1BB1 E88C1A CALL 3640
5BE4:1BB4 E86AFF CALL 1B21
5BE4:1BB7 26 ES:
5BE4:1BB8 A0D00B MOV AL,[0BD0]
5BE4:1BBB 2401 AND AL,01 <-- change to 00
5BE4:1BBD 50 PUSH AX ~~~~~~~~~~~~
5BE4:1BBE E89600 CALL 1C57 { search string ends here }
5BE4:1BC1 BEAB3D MOV SI,3DAB
5BE4:1BC4 E8D415 CALL 319B
5BE4:1BC7 8BD9 MOV BX,CX
5BE4:1BC9 81C3B800 ADD BX,00B8 { alternate search string }
5BE4:1BCD 51 PUSH CX
5BE4:1BCE B104 MOV CL,04
-
-e 1bbc
5BE4:1BBC 01.00 { make the change }
-
-w
-q
C:\MISC
__________________________________________________________________________
version \AUTOEXEC.BAT other.BAT 25-line CLS echo<space>
~~~~~~~ ~~~~~~~~~~~~~ ~~~~~~~~~ ~~~~~~~~~~~ ~~~~~~~~~~~
patches 01 -> 00 03 -> 02 19 -> 18 e8200074 -> 83f90172
Location Offsets (per John Wright)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MSDOS 3.10
IBM/Compaq/generic 105B 1967 263B 3878
Zenith (early?) ?? 1987 ??
Zenith (IO.SYSv3.12) 112B 19C7 269B 38E8 *
MSDOS 3.20
generic 115E 1ABC 3A18
Compaq 11A4 1B6C 3AC8
Zenith v3.21 1bbc 123e ?? *
IBM (PCDOS 3.20) 115E 1B2C 3A88
PCDOS 3.30 (IBM) 1304 1B6C 3E29
--
* "echo ." is known to work for this version
_____________________________________________________________________________