home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1992 December
/
simtel1292_SIMTEL_1292_Walnut_Creek.iso
/
msdos
/
sysutl
/
memres41.arc
/
RESDEL.DOC
< prev
next >
Wrap
Text File
|
1988-07-24
|
11KB
|
253 lines
Ed Jordan 70357,2162
RESDEL.EXE
Version 4.1 - July 1988
1. tablev.exe<cr> - enter from DOS with no ram resident utilities
2. resdel<cr> - to get help message
3. resdel \r<cr> - remove all ram residents and replace vectors
4. resdel \n<cr> - n = 1 to 9; remove one or more utilities
This program replaces earlier versions. The table fix-up routine has
been rewritten. Some vectors were not properly located by the earlier
versions.
This program has several helpful enhancements. The program will now
display the vector numbers which are being replaced from the backup
copy of the table. In addition, the name of the memory resident
program will be displayed. I have also taken the liberty of including
a separate program in this archive which I did not write. MAP.COM is
also on CompuServe and is in the public domain. I do not know how
MAP.COM works. This version will allow the user to remove more than
one utility without replacing the entire vector table. As noted below,
there can still be problems if vectors are redirected by more than one
utility in a cascade fashion. Be careful or you will have to use the
red switch.
To delete ram resident utilities this the program requires that an
accurate copy of the default vector table be made as a file on the disk
where it can be located. I wrote the program to look for this vector
table file in the root directory of drive (A). Note: DEBUG.COM cannot
be used to make a copy of the vector table because it redirects the
vectors just like a memory resident utility does.
The "\R" mode copies the vector table from the file (VECTOR.TBL) to the
1024 bytes of memory at 0:0. Then the program deallocates the
environment blocks and program segment prefix (PSP) blocks from the end
of DOS to the beginning of the program itself. This is all of the RAM
residents in low memory. If a resident installs itself in high memory
and then readjusts the size of the system memory, this program will not
work and it will be incompatible.
The "\n" (n = 1 to 9) causes successive memory blocks lower in memory
than RESDEL.EXE itself to be removed. The program locates all of the
blocks between the parent program (DOS) and itself by reading the chain
of memory blocks. If there are no intervening blocks between the
parent program and RESDEL.EXE, no action is taken. Otherwise, the next
lower block corresponding to a PSP and its environment block, if found,
are deleted. The vector table information present in low memory is
searched for references to the code segment of the deallocated block.
These vectors are replaced with the original values. In this way, the
resident utility is effectively removed and the memory freed for
further use. The program then recycles until the specified number
(1-9) of utilities are removed.
A brief help message is displayed if no entry is made on the command
line or if an incorrect command is given. If "\0" is entered, only the
-1-
resdel.exe
title message is displayed. No action is taken regarding the vector
table or the utilities in low memory.
GETTING STARTED:
Boot your system from its basic configuration without any memory
resident utilities in place. This should be the DOS itself running
with the correct number of files and buffers and any device drivers
that you want to have installed.
Then run TABLEV.EXE from the DOS command line. This program will
create a file called VECTOR.TBL in the current directory. Copy this
file to the root directory of drive "A:". This is the default vector
table that RESDEL.EXE looks for. The instructions below show how this
default location can be changed.
Once this is done, you are ready to load your memory resident utilities
and then remove them when desired by running RESDEL.EXE from the DOS
command line. RESDEL.EXE will not work as a child process to another
program other than DOS itself. For example, it will not run as a child
process under DEBUG.COM. The program thinks that the parent segment is
DOS. It is really DEBUG instead and you will get an error message.
Caution: Be very careful if the vectors are redirected more than once.
Utilities often redirect a vector that a previously loaded utility has
already redirected. In this situation, you will probably have to
replace the entire vector table and start over or keep a special copy
of the table for a particular situation. Instead of running TABLEV.EXE
with clean memory, run it with the utility already loaded that you want
to keep after a subsequent utility is removed. This will give the
program the correct vector to replace when you delete a subsequent
utility that also redirects the vector. Otherwise the program replaces
the vector for a clean memory and the remaining memory resident utility
then cannot function properly. You may get system lock-up. You could
have several copies of VECTOR.TBL stored under different names and then
copied to the name VECTOR.TBL in a batch file prior to running
RESDEL.EXE.
I will try to keep the bugs fixed if I know about them. I wrote this
program on an IBM PC model 5150 which has a 1982 ROM upgrade and a 20
meg. hard drive. I am including the source code with the program so
that you may adjust the code for your particular situation if this is
needed.
A helpful program called MAP.COM (by Dorn W. Stickle) is included with
this archive. This program will give you a memory map which will tell
you which vectors point to which programs. Using MAP you can see the
vectors assigned to each program as you load successive utilities.
RIGHTS:
This program is contributed to the public domain. It may be
distributed. No charge is to be made for these programs although costs
for magnetic media may be recuperated. No warranty expressed or
otherwise is provided with this software. It is provided as is.
Defects may be present which can prevent it from working on your
particular computer.
-2-
resdel.exe
This group of programs is included:
TABLEV.ASM version 1a
TABLEV.EXE
RESDEL.DOC
RESDEL.EXE
RESDEL.ASM version 4.1
PATCH.BAT
PATCH.INS
For those who do not have an assembler and want to change the default
drive for VECTOR.TBL:
ren resdel.exe resdel.123<cr>
debug resdel.123<cr>
ecs:06fb<cr>
41.43<cr> ( to make drive C )
w<cr>
q<cr>
ren resdel.123 resdel.exe<cr>
A short batch file which provides this patch is included in the
archive. Enter "PATCH" to patch the program for drive C. You may edit
PATCH.INS to change this patch for a different drive. Note: VECTOR.TBL
can be located in a subdirectory. Supply the correct path name in the
PATCH.INS file that is provided. The path and program name must end in
a binary zero (asciiz format). A correct example is provided in the
PATCH.INS file. In addition, it is possible to change the name of
VECTOR.TBL using the same patch and supplying a different name. Be
sure that you keep the archive file in a safe place so that you do not
accidentally ruin the only copy of these programs that you have.
To run PATCH.BAT you will need to have DEBUG.COM in your path and
RESDEL.EXE will need to be in the current directory.
TABLEV.EXE has been revised. A user of a TANDY 1000 experienced
difficulty using the earlier version. I hope that the change has
corrected the problem. DEBUG.COM cannot be used to make a copy of the
vector table because it redirects vectors just like a memory resident
utility.
RESDEL.EXE ERROR MESSAGES:
** Please do not try to delete DOS
The program has not found any memory resident utilities between itself
in memory and the segment of its parent program. This is DOS if the
program is run from the DOS command line.
** Unrecognized command
There are two command line switches. "\n" and "\r" where n is a
number between 1 and 9. See the text above.
** Insufficient memory
The program allocates 1024 bytes to be used as a buffer to store the
default memory table. This program should run in 64K of memory.
-3-
resdel.exe
** Warning: Vector not located
Should the program try to remove a utility from memory and yet not find
a vector in the table that points to that memory block, this message
will be displayed. A memory block is removed but vectors have not been
redirected. I have seen this message when a utility has redirected all
of the vectors that a previously loaded utility had captured.
** Error freeing allocated memory block
An error occurred when DOS tried to return a block of memory to the
system pool.
** VECTOR.TBL not found.
The default copy of the vector table could not be located. Run
TABLEV.EXE from the command line with DOS in its clean configuration.
No memory resident utilities installed. See text above.
** Warning: SHARE.EXE installed
Do you wish to proceed? (Y/N)
SHARE.EXE changes some of DOS below COMMAND.COM in low memory. It is
best to reboot if you see this message. To continue may redirect
interrupt 2F which is used by SHARE.EXE but it does not correct the
other changes. Your system may not function correctly in this
situation. Note: interrupt 2F is supported by DOS 3.0
-4-