home *** CD-ROM | disk | FTP | other *** search
- ******************************************************************
- RESIDENT COMMAND INTERPRETER
-
- BY JOHN CHAPMAN 844 S. MADISON ST. HINSDALE, ILLINOIS 60521
- COMPUSERV ID 7025,1217
- ******************************************************************
-
- DISCLAIMER
-
- This modification is provided without warranty of any kind. The
- Author assumes no liability for failure of this code to perform in
- any environment. The user is completely responsible for
- determining the applicability of this modification to a particular
- environment.
-
- LIMITATIONS
-
- This modification causes the transient portion of COMMAND.COM to
- be made resident at SYSTEM IPL. Re-booting the system with an
- unmodified COMMAND.COM is the only way to remove this
- modification.
-
- This modification alters the starting segment [paragraph] address
- available to programs, Lowering the amount of storage available
- by 4288 bytes [for PC/DOS 1.1 with a normal load segment address
- of 02C1. The starting segment of COMMAND.COM can be found at
- location 0000:9E, and should display [DEBUG] as
-
- 0000:009E 2C 01
-
- This set of two DEBUG scripts will alter the IBM Personal
- Computer DOS COMMAND Interpreter (COMMAND.COM) to remain entirely
- resident, rather than be half resident and half transient. The
- whole purpose of this modification is to suppress 99% of the
- occurrances of the refresh of the transient portion. This will
- remove the requirement to always have a disk with a valid
- COMMAND.COM in drive A. This change has been especially useful
- with multiple diskcopy type activities, and with those
- application packages which use all of memory, including the top
- 4880 bytes where the transient COMMAND.COM resides.
-
- **NOTE**
-
- We have experienced a limited number of cases where the
- refreshable, or transient portion of COMMAND.COM, which now
- resides in low memory, has been damaged. This damage causes the
- checksum code to refresh the transient portion from disk. If you
- experience repeated occurances of this, see part two of this
- modification.
-
- PART ONE
-
- Begin installation by copying the "model" PC/DOS diskette you
- wish to modify onto a fresh diskette using DISKCOPY. If you are
- producing a system diskette that will not have a copy of the
- DEBUG command on it, you must have a diskette with DEBUG
- available.
-
- PART ONE: DEBUG SCRIPT
- DEBUG COMMAND.COM <CR>
- -D,44D,450 <CR>
- XXXX:44D 04 01 00
- XXXX:450 00
- -D,3ED,3EE <CR>
- XXXX:3ED 01 00
-
- -D,0460,0479 <CR>
- XXXX:0460 46 00 A3 03 01 A1 02 00-8C 1E 05 01 A3 52 04 2D
- -D,10D3,10D7
- XXXX:10D3 8C C8 05 C0 00
-
- **Verify the above displayed bytes. The contents of this display
- must match exactly. If any discrepancies are detected, do not
- install any of the patch which follows.
-
- -E,3ED,00 <CR>
- -E,44F,54,00 <CR>
- -E,103,61,01 <CR>
- -E,45F,01,06,4F,04,01,06,03,01 <CR>
- -E,467,8C,1E,05,01,A1,02,00 <CR>
- -E,46E,A3,52,04,90,90,90,90,90 <CR>
- -E,479,90,90,90 <CR>
- -E,658,A1,02,00,2B,06,9F,0F <CR>
- -E,65F,BA,10,00,F7,E2,90,71,03 <CR>
- -E,10D3,A1,02,00,2D,02,00 <CR>
-
- The above enters the first section of the patch.
-
- Next, we will display the modified code, to verify that the patch
- was correctly installed:
-
- -U,045D,047B <CR>
- MOV AX,CS
- ADD [044F],AX
- ADD [0103],AX
- MOV [0105],DS
- MOV AX,[0002]
- MOV [0452],AX
- NOP
- NOP
- NOP
- NOP
- NOP
- CALL 0294
- NOP
- NOP
- NOP
-
- -U,0656,0665 <CR>
- INT 21
- MOV AX,[0002]
- SUB AX,[0F9F]
- MOV DX,0010
- MUL AX,DX
- NOP
- JNO 066A
-
- Be sure that the above matches the display produced by
- "UNASSEMBLE" on your machine.
-
- -W <CR>
- WRITING 135F BYTES
- -Q <CR>
- A> * When the "A" prompt appears you are ready to reboot..
-
- You should use this modification with only this portion installed
- unless you encounter any of the problems described in the second
- section. Please do not install part two of this modification
- unless you experience a problem using part one by itself.
-
- PART TWO: REFRESH SUPPRESSION
-
- We have experienced a limited number of cases where the 'refresh'
- of the transient portion of COMMAND.COM, which now resides in low
- memory, has been damaged. This damage causes the checksum code
- to refresh the transient portion from disk. The changes provided
- in part two allow specific protection against the damage possible
- in an environment where a program[s] has been written with
- specific architecture dependencies.
-
- If, and only if, you receive the "INSERT DOS DISK IN DRIVE A AND
- STRIKE ANY KEY WHEN READY" message, or see that an unsolicited
- I/O has occurred on the default drive during program execution..
- and one of these occurances is followed by a system "hang".
-
- If it becomes necessary to apply part two, please document to the
- author the circumstances that caused the hang, including, if
- possible, the [source] program that was executing. If the
- software you were using is proprietary, please indicate: A) The
- package name, vendor, etc. B) The memory size on your machine,
- and C) The language used to produce the program which caused the
- modified command interpreter to "hang".
-
- **PLEASE REPORT BUGS** To the address/ID shown on the first page.
-
- PART TWO: DEBUG SCRIPT
-
- DEBUG COMMAND.COM <CR>
- -D,111B,111E <CR>
- XXXX:111B 3B D1 77 51
- -D,1134,1137 <CR>
- XXXX:1136 3B D1 77 38
-
- As before, be sure that the displays above match your system, and
- do not enter the patch below unless each byte verifies.
-
- -E,023A,90,90 <CR>
- -E,0242,90,90 <CR>
- -E,0246,90,90 <CR>
- -E,111D,90,90 <CR>
- -E,1136,90,90 <CR>
- -W <CR>
- WRITING 135F BYTES
- -Q <CR>
- A> *** Reboot at this point ***
- ******************************************************************
-