home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Between Heaven & Hell 2
/
BetweenHeavenHell.cdr
/
500
/
488
/
dskcpy20.mod
< prev
next >
Wrap
Text File
|
1984-01-16
|
7KB
|
236 lines
DISKCOPY MODIFICATION
THIS DEBUG DESCRIPTION IS FOR THE EXPERIENCED PROGRAMMER.
THIS WILL ELIMINATE THE QUESTIONS AT THE START AND END OF DISKCOPY.COM
TO ALLOW THE PROGRAM TO RUN WITHOUT OPERATOR INTERVENTION.
USING DOS DEBUG:
A>DEBUG DISKCOPY.COM
-E 1A2
07F0:01A2 CD.90 21.90 <ENTER>
-E 234
07F0:0234 BA.C3 A6.90 05.90 <ENTER>
-E 1E0
07F0:01E0 BA.CD 33.20 07.90 <ENTER>
-W
WRITING 07D8 BYTES
-Q
DISKCOPY MODIFICATION
This DEBUG modification will eliminate the messages related to
inserting the source and destination and response at setup time for
DISKCOPY.COM. It also tells you how to take out the termination in-
quiry asking if you have another disk to copy. All of this allows
for DISKCOPY to run without operator intervention. [NOTE: The
comments on the unassembled code instructions are mine and will not
appear when the -U commands are typed in.]
FIRST: use DEBUG to read in DISKCOPY.COM...
A>DEBUG DISKCOPY.COM
*****************************************************************
TO ELIMINATE THE 'INSERT SOURCE DISKETTE .....' MESSAGE:
TYPE:
-U 19D 1A2 <ENTER> [This will unassemble the instructions:
MOV DX,057F POINT TO THE 'SOURCE DISK MSG'
MOV AH,09
INT 21 SHOW IT ON THE SCREEN
NOW WE WILL 'NOP' THE -INT 21- WHICH PRINTS OUT THE MESSAGE:
TYPE:
-E 1A2 <ENTER>
[THIS WILL SHOW YOU THE LOCATION YOU ARE CHANGING AND THE
DATA THAT IS IN THOSE LOCATIONS. WE WILL BE TYPING THE
CHARACTERS HEX(90) TO REPLACE THE CHARACTERS HEX(CD) AND
HEX(21)..(REFERENCE DEBUG SECTION OF DOS MANUAL IF NEC-
ESSARY.)
07F0:01A2 CD.90 21.90 <ENTER>
******************************************************************
TO ELIMINATE THE MESSAGE FOR 'INSERT DESTINATION DISKETTE......'
AND 'PRESS ANY KEY......'
TYPE:
-U 234 246 <ENTER> [THIS WILL UNASSEMBLE THE CODE THAT PRINTS OUT
THE TWO MESSAGES THAT WE ARE INTERESTED IN AND
WHERE THEY WAIT FOR THE RESPONSE.
RESPONSE:
MOV DX,05A6 DESTINATION DISKETTE MSG
MOV AH,09
INT 21 SHOW IT ON THE SCREEN
MOV DX,05CD STRIKE ANY KEY MESSAGE
INT 21 SHOW IT ON THE SCREEN
MOV AH,0C
MOV AL,01
INT 21 WAIT FOR RESPONSE
RET END OF THIS ROUTINE.
WE WILL MOVE THE `RET` UP TO WHERE THE DESTINATION DISKETTE MSG
STARTS. THIS WILL EXIT THIS CODE BEFORE THE MESSAGES AND RESPONSE
IS ASKED. WE WILL REPLACE THE HEX CHARACTERS (BAA605) WITH THE
HEX CHARACTERS (C39090).
TYPE:
-E 234 <ENTER>
[COMPUTER WILL RESPOND WITH LOCATION AND CHARACTERS THAT ARE PRESENTLY
LOCATED IN THE APPROPRIATE LOCATIONS - TYPE REPLACEMENT CHARACTERS AND
TERMINATE OPERATIONS WITH THE 'ENTER' KEY.
07F0:0234 BA.C3 A6.90 05.90 <ENTER>
********************************************************************
NOW WE HAVE TO GET RID OF THE MESSAGE(S) AND RESPONSE CONCERNING:
'COPY ANOTHER DISKETTE' AND 'Y OR N' RESPONSE.
-U 1D9 1EA <ENTER> [THIS WILL UNASSEMBLE THE INSTRUCTIONS THAT SHOW
THE COPY ANOTHER DISKETTE MESSAGE AND RESPONSE.]
MOV DX,05EB THIS IS THE 'COPY COMPLETE MESSAGE'
MOV AH,09
INT 21 SHOW IT ON THE SCREEN
MOV DX,0733 THIS IS THE 'COPY ANOTHER ???? MSG'
MOV AH,09
INT 21 SHOW IT ON THE SCREEN
MOV AX,0C01 SET UP 'Y OR N' QUESTION
INT 21 WAIT..
TYPE:
-E 1E0 <ENTER>
[THE COMPUTER WILL RESPOND WITH THE MEMORY LOCATION AND THE CHARACTERS
THAT ARE PRESENTLY LOCATED THERE. REPLACE HEX (BA3307) WITH HEX CHAR-
ACTERS (CD2090). WE ARE GOING TO LEAVE THE 'COPY COMPLETE' MESSAGE -
WE ARE JUST GOING TO TERMINATE THE PROGRAM BEFORE THE 'COPY ANOTHER'
QUESTION IS ASKED.
07F0:01E0 BA.CD 33.20 07.90 <ENTER>
**********************************************************************
IF YOU DON'T WANT TO DESTROY YOUR DISKCOPY.COM FILE TYPE:
-N ANYNAME.COM <ENTER>
NOW WRITE OUT THE CHANGES TO THE DISK FILE.
-W <ENTER>
RESPONSE:
WRITING 07D8 BYTES
THEN TYPE:
-Q <ENTER> [THIS WILL EXIT THE DEBUG PROGRAM...]
GOOD LUCK....
**********************************************************************
***** DISKCOPY BUG FIX ** by DAVE BROWNING *****
This article provides a fix for a bug in the
IBM DISKCOPY program provided with DOS 1.1.
The bug only appears in systems having more
than 320K memory. I found it when I upgraded one
of our machines to 384K. On machines of this or
larger memory sizes there is sufficient available
memory for the diskcopy program to read an entire
double-sided disk into memory before writing to the
other disk. The bug is that DISKCOPY tries to read
beyond the end of the disk, causing an error, not
to mention some disturbing noises from the disk
drive. The bug is only there for double-sided
diskettes - single-sides copy OK even though of
smaller size.
The version of DISKCOPY that this fix will
repair was provided with DOS 1.1, and the
DISKCOPY.COM file is dated 05/07/82, with a size of
2008 bytes. This fix may or may not work on other
versions - probably not.
The overall repair is to use DEBUG to update
the DISKCOPY.COM as follows:
1. Using the ENTER command change these locations:
LOC New value
0861 E8 74 00
08D8 3D 51 00 72 02 B0 50 A2 36 05 C3
2. Change the CX register to 07E3
3. Save the file.
For those with little or no experience with
using DEBUG, the following step-by-step procedure
is provided:
1. Format a blank diskette using the FORMAT B:/S
command. (If you don't have two disk drives, make
appropriate changes to this procedure to do it on
the A: drive.)
2. Use the COPY command to copy DISKCOPY.COM from
your DOS disk to the newly formatted disk. (e.g.
A>COPY DISKCOPY.COM B:)
3. With the DOS disk in A: and the new disk in B:,
type A>DEBUG B:DISKCOPY.COM
4. You will get a minus sign which is the DEBUG
prompt.
5. Now type the following:
-E 0861 E8 74 00 <enter>
-E 08D8 3D 51 00 72 02 B0 50 A2 36 05 C3 <enter>
-R CX <enter>
the DEBUG program will respond with CX 07D8 and a
colon, where you start typing again (you type 07E3)
CX 07D8 (DEBUG types this)
:07E3 <enter>
-W <enter>
the DEBUG program will now respond:
Writing 07E3 bytes
-Q <enter> AND YOU'RE DONE!
MOST IMPORTANT: TEST THE NEW DISKCOPY PROGRAM
USING A SECOND SCRATCH DISK BEFORE YOU REPLACE YOUR
CURRENT VERSION.
Many thanks to DAVIS McCARN of DMcC who tracked
down the fix from HARRY LIPKIND and passed it on
to me.
If you have made it this far, you should also fix
the DISKCOMP program which has the same bug. The
procedure is the same, only the locations and CX
register sizes are different:
For DISKCOMP.COM of 05/07/82:
LOC New value
06EC E8 79 00
0768 3D 51 00 72 02 B0 50 A2 95 04 C3
CX 0673
This was also provided by Davis McCarn.
8 79 00
0768 3D 51 00 72 02 B0 50 A2 95 04 C3
CX 0673
This was also