424 lines
17 KiB
Plaintext
424 lines
17 KiB
Plaintext
ADVANCED DEMUFFIN ver 1.1
|
||
A new version of that terrible program
|
||
Demuffin.
|
||
|
||
Written By:
|
||
|
||
The Stack
|
||
|
||
Documentation By:
|
||
The Inspector
|
||
|
||
Copyright February 8, 1983
|
||
|
||
Corrupt Computing
|
||
|
||
Advanced Demuffin is available on
|
||
THE TWILIGHT PHONE
|
||
A non-Net Works system
|
||
(313)-775-1649
|
||
|
||
If you want Corrupt Computing's line of utilities on your board,
|
||
just contact THE INSPECTOR on THE TWILIGHT PHONE. Under NO
|
||
circumstances will selling or otherwise distributing Corrupt
|
||
Computing's programs on a bulletin-board be permitted without
|
||
prior permission from either THE STACK or THE INSPECTOR.
|
||
|
||
Corrupt Computing and the Twilight Phone make NO warranties,
|
||
either expressed or implied, with respect to this manual and the
|
||
software described in this manual, its quality, performance,
|
||
merchantability, or fitness for any particular purpose. This
|
||
product is GIVEN AWAY "as is". In NO event will Corrupt Computing
|
||
or The Twilight Phone be liable for direct, indirect, incidental,
|
||
or consequential damages resulting from used of this product.
|
||
|
||
Corrupt Computing and The Twilight Phone do NOT support software
|
||
pirating, this product is for back-up, research, and educational
|
||
purposes only. (HA HA HA)
|
||
|
||
|
||
What is Advanced Demuffin? Advanced demuffin will allow you to
|
||
copy a disk that is in non-standard format to DOS 3.3 format.
|
||
It will also allow you to copy from DOS 3.3 to DOS 3.3.
|
||
|
||
To use Advanced Demuffin you should be familiar with "THE BASIC
|
||
OF KRAKING BY KRAKOWICZ". (These tips are available on apple trek
|
||
systems.) You should also have a track-sector editor like The
|
||
Inspector, Disk Fixer, Nibbles Away II, or Disk Driver.
|
||
|
||
To crack some programs a integer card or crack-rom is necessary.
|
||
|
||
Advanced Demuffin will only work on some programs.
|
||
|
||
|
||
|
||
Uses of Advanced Demuffin:
|
||
|
||
1) Advanced Demuffin is the only program that I know of, that
|
||
will allow you to copy selected tracks AND sectors from one disk
|
||
to another. 2) Advanced Demuffin's main purpose was to copy disks
|
||
from a non-standard DOS to DOS 3.3. By Copying a disk from a
|
||
non-standard format to DOS 3.3 you will NOT completely un-protect
|
||
a disk. You will merely copy the program from their DOS to DOS
|
||
3.3, any checksums, nibble counts, etc. that were in the program
|
||
will still be there. To complete the un-protection process on
|
||
most disks you will have to change a byte or two, to take out the
|
||
"checks". Occasionally you will find a disk that will not
|
||
require any changes. This will most likely will only happen with
|
||
a old disk, and/or a stupid company.
|
||
|
||
Differences between Demuffin and Advanced Demuffin: Demuffin can
|
||
only copy a disk if it has a directory. Because Advanced
|
||
Demuffin copies the disk, regardless of what data is on it, you
|
||
will not have this problem.
|
||
|
||
|
||
Here is a summary of Advanced Demuffin's options.
|
||
|
||
1) CONVERT DISK: Does the actual copying of the disk. Allows
|
||
you to change different parameters, like start track,
|
||
start sector, etc...
|
||
|
||
2) LOAD NEW RWTS MODULE: Will load an RWTS for the source
|
||
disk (the disk you are converting to DOS 3.3) from a DOS
|
||
3.3 disk.
|
||
|
||
3) LOAD NEW IOB MODULE: Will load a new interface for the
|
||
source disk's RWTS from a DOS 3.3 disk.
|
||
|
||
4) FORMAT TARGET DISK: Initializing a disk in either drive,
|
||
in DOS 3.3 format.
|
||
|
||
5) EXIT TO MONITOR: Gee, I wonder what this does? (If you
|
||
don't know, you probably should not be using Advanced
|
||
Demuffin.)
|
||
|
||
To use the options, move the "light bar" with the arrow keys.
|
||
The left arrow moves the bar up and the right arrow moves the bar
|
||
down. To execute an option, just move the bar to it and press
|
||
RETURN.
|
||
|
||
The CONVERT DISK option will do the actual converting of the
|
||
disk. To use the convert option move the light bar to "CONVERT
|
||
DISK" and press RETURN. When you access the convert option, make
|
||
sure that you already have the source RWTS in memory and have the
|
||
IOB module pointing to it. (The IOB module normally points to
|
||
$BD00.)
|
||
|
||
|
||
Advanced Demuffin will then ask you: "CHANGE DEFAULT VALUES?" If
|
||
you want to copy from track $0, sector $00 to Track $22, sector
|
||
$0F, by 1, with 1 retry and to drive two, then answer "N" for no
|
||
to this question. If you answer "Y" for yes then Advanced
|
||
Demuffin will ask you: "SECTORS PER TRACK? (13/16)" The first
|
||
digit of has to be a 1. You should then enter a "3" for a
|
||
thirteen sector disk (DOS 3.2) or a "6" for a sixteen sector disk
|
||
(DOS 3.3). If you don't know if the disk has 13 or 16 sectors
|
||
try to convert it with 16 sectors, and if you get errors on all
|
||
sectors past sector "C", then it is most probably a 13 sector
|
||
disk.
|
||
|
||
All the option "SECTORS PER TRACK" does is tell Advanced Demuffin
|
||
at what sector to change to a new track.
|
||
|
||
Then Advanced Demuffin will ask you to enter the "START TRACK",
|
||
enter the track (normally $0) in hex. You may enter half tracks,
|
||
just type a "." after you enter the track and Advanced Demuffin
|
||
will automatically tack a ".5" on the end of the track.
|
||
|
||
Then enter the start sector number in hex when Advanced Demuffin
|
||
prompts you to.
|
||
|
||
Advanced Demuffin will then ask you to enter the end track and
|
||
sector.
|
||
|
||
NOTE: The start track and sector must come before the end track
|
||
and sector. EX:
|
||
|
||
Start track: $00 Start track: $22
|
||
Start sector: $00 Start sector: $0F
|
||
End track: $22 End track: $00
|
||
End sector : $0F End sector: $00
|
||
|
||
This is fine. But this is illegal. If you enter
|
||
it this way Advanced Demuffin
|
||
will give you the message:
|
||
"BACKWARDS COPYING NOT SUPPORTED!"
|
||
|
||
After entering the track and sectors, Advanced Demuffin will ask
|
||
you what increment what you want to go by. (Usually 1) Anybody
|
||
that wants to change the increment (to anything other than one),
|
||
should already know what increment is, so I won't explain it.
|
||
|
||
You will then be asked "MAX # OF RETRIES?". You should then enter
|
||
the number of times (usually 1) you want Advanced Demuffin to try
|
||
to read/write a sector if it gets an error on it.
|
||
|
||
Then you should enter the drive to be copied to.
|
||
NOTE: The source drive must always be drive 1 because of
|
||
limitations of the IOB module.
|
||
|
||
|
||
|
||
If you specified two drives then Advanced Demuffin will prompt
|
||
you to:
|
||
|
||
"INSERT DISKS AND PRESS RETURN"
|
||
|
||
You should then insert the source in drive 1 and the target in
|
||
drive 2 and press RETURN. Advanced Demuffin will the proceed to
|
||
convert the disk to DOS 3.3.
|
||
|
||
If you specified one drive, Advanced Demuffin will ask you to:
|
||
|
||
"INSERT SOURCE DISK AND PRESS RETURN"
|
||
|
||
You should then insert the source disk and press RETURN.
|
||
Advanced Demuffin will then read 7 tracks off source and ask you
|
||
to insert the target, you should then insert the target, Advanced
|
||
Demuffin will then write those 7 tracks. It will take 5 passes to
|
||
copy the whole disk.
|
||
|
||
After the disk is copied, Advanced Demuffin will display the
|
||
message "PRESS ANY KEY TO CONTINUE". If you press 1-7 Advanced
|
||
Demuffin will then do a "screen dump to printer" in the slot of
|
||
the number that you pressed. Any other key will return you to
|
||
the main menu.
|
||
|
||
The Display
|
||
|
||
ADVANCED DEMUFFIN 1.1 - COPYRIGHT 1983
|
||
WRITTEN BY THE STACK - CORRUPT COMPUTING
|
||
========================================
|
||
TRK:
|
||
+.5:
|
||
0123456789ABCDEF0123456789ABCDEF0123
|
||
SC0:
|
||
SC1:
|
||
SC2:
|
||
SC3:
|
||
SC4:
|
||
SC5:
|
||
SC6:
|
||
SC7:
|
||
SC8:
|
||
SC9:
|
||
SCA:
|
||
SCB:
|
||
SCC:
|
||
SCD:
|
||
SCE:
|
||
SCF:
|
||
========================================
|
||
16 SC $00,$00 TO $22,$0F BY 1.0 TO DRV 2
|
||
|
||
|
||
|
||
The top 2 lines are just the title lines. Then comes the status
|
||
display. The first two lines contain the track list. Each track
|
||
number is displayed here, starting at $00 and ending at $23 (note
|
||
that the all values are displayed in HEX format, not DECIMAL).
|
||
Although the APPLE II DISK usually uses only tracks $00-$22,
|
||
occasionally some software uses track $23. For this reason,
|
||
track $23 has been included. The first line of the status
|
||
display (marked with "TRK" on the left side of the screen) is for
|
||
normal tracks. The next line is for half tracks (marked with a
|
||
"+.5"). The next line is the actual track numbers. After this is
|
||
a "map" of the disk.
|
||
|
||
After the disk map there is another display. It shows what
|
||
format the disk is in (13 or 16 sector), then it shows the start
|
||
track and sector, and the end track and sector. The next thing
|
||
on the status line is the track increment. The last thing is the
|
||
drive to copy to.
|
||
|
||
There are a number of status codes that appear in these displays.
|
||
An inverse "R" on the disk map shows a sector being read in. An
|
||
inverse "W" in the disk map shows a sector being written out to
|
||
disk. An inverse "R" or "W" on track list shows which track is
|
||
being read or written. A "." on either the disk map or the track
|
||
display shows the sector or track copied correctly.
|
||
|
||
Error codes and messages:
|
||
|
||
"R" on the track list - Some sectors on the track could not be
|
||
read.
|
||
|
||
"W" on the track list - Advanced Demuffin could not write out
|
||
some sectors on that track.
|
||
|
||
"R" on the disk map --- That sector could not be read.
|
||
|
||
"W" on the disk map --- That sector could not be written.
|
||
|
||
When Advanced Demuffin detects that the target disk is "write
|
||
protected", it will replace the title lines with this message:
|
||
|
||
DISK WRITE-PROTECTED!
|
||
PRESS "S" TO START OVER, "C" TO CONTINUE
|
||
|
||
You should then remove the write protect tab or insert another
|
||
disk. If you want Advanced Demuffin to start copying from the
|
||
start sector and track press 'S'. If you want it to continue
|
||
copying from where it is press 'C'.
|
||
|
||
|
||
What is a RWTS module? A RWTS module is the RWTS will be used to
|
||
copy the source disk. When you access the "LOAD NEW RWTS MODULE"
|
||
Advanced Demuffin will prompt you to "PAGE TO LOAD AT (MUST BE A
|
||
2 DIGIT HEX NUMBER):" You must then enter the page number of the
|
||
address that you want to load RWTS at. i.e. $B8 would load it at
|
||
$B800. Advanced Demuffin will only allow you to load the RWTS
|
||
between $20 and $BF. (Usually the RWTS is loaded at $B800.)
|
||
Advanced Demuffin will then ask you to "PLEASE TYPE THE NAME OF
|
||
THE FILE TO LOAD". You should then enter the file name. When
|
||
you press RETURN, Advanced Demuffin will ask you what drive to
|
||
load it from. You should then enter a 1 or a 2. Possible
|
||
errors:
|
||
1) NO SUCH BINARY FILE EXISTS! This message is the same
|
||
as a "FILE NOT FOUND" error.
|
||
|
||
2) PLEASE INSERT THE CORRECT DISK CORRECTLY
|
||
IN CORRECT THE DRIVE AND PRESS <RETURN>
|
||
This means that Advanced Demuffin had problems
|
||
reading your RWTS.
|
||
|
||
IOB modules: To load an IOB module, all you have to enter the
|
||
file name and the drive. What is an IOB module? An IOB module
|
||
is an interface for the source RWTS. Advanced Demuffin uses the
|
||
IOB module to set up the IOB table and jump to RWTS. The IOB
|
||
module is stored from $1400-$14FB. When Advanced Demuffin loads
|
||
in a IOB module, it reads the first sector of the file off the
|
||
track-sector list and stores it at $13FC-$14FB. When Advanced
|
||
Demuffin wants to read a sector it JSRs to the IOB module with
|
||
the phase number, sector number, and the page number stored in
|
||
the A, Y and X registers respectively. Since the source drive
|
||
always has to be drive one, Advanced Demuffin can make the IOB
|
||
module very compact. After it gets the page,track and sector
|
||
Advanced Demuffin sets up the IOB for RWTS using this
|
||
information, and JMPs to RWTS. (It jumps instead of JSRing,
|
||
because it lets the RWTS do the RTS.) Here is a list of the IOB
|
||
module that is built in to Advanced Demuffin:
|
||
|
||
|
||
*1400L
|
||
|
||
1400- 4A LSR ; Convert phase # to track #
|
||
1401- 8D 22 0F STA $0F22 ; Store track number
|
||
1404- 8C 23 0F STY $0F23 ; Store sector number
|
||
1407- 8D 27 0F STX $0F27 ; Store page number
|
||
140A- A9 01 LDA #$01
|
||
140C- 8D 20 0F STA $0F20 ; Store the drive number
|
||
140F- 8D 2a 0F STA $0F2a ; Store the read code
|
||
1412- A9 0F LDA #$0F ; With high byte of IOB
|
||
1414- A0 1E LDY #$1E ; With low byte of IOB
|
||
1416- 4C 00 BD JMP $BD00 ; Goto RWTS
|
||
1419- 00 BRK
|
||
141A- 00 BRK
|
||
|
||
Unless you want to read half tracks, you need the LSR to convert
|
||
the phases to tracks. (If you want to read half tracks, make sure
|
||
the source RWTS can read half tracks!)
|
||
|
||
|
||
|
||
Here is a list of reasons that one might need a different IOB
|
||
module:
|
||
|
||
1) If the source RWTS uses the some of the same zero page
|
||
locations as Advanced Demuffin, the IOB module would have
|
||
to swap those out before the read, and swap them back in
|
||
after the read.
|
||
|
||
2) The source RWTS resides within the text window, or over
|
||
part of Advanced Demuffin. You would then have to write an
|
||
IOB module to swap Advanced Demuffin or the text screen out
|
||
and the RWTS in. Then you JSR to the RWTS. When the RWTS
|
||
does the RTS, it will return to the IOB module. The IOB
|
||
module can then swap the text screen or Advanced Demuffin
|
||
back in.
|
||
|
||
3) The RWTS's IOB module is different from a normal IOB.
|
||
|
||
You should make sure that you JSR to the RWTS instead of JMPing
|
||
to it, so that it can move the things back to their right place.
|
||
|
||
You may also need to modify the IOB module to read half tracks.
|
||
Or if the RWTS is in a different place, you will have to change
|
||
the IOB module.
|
||
|
||
There are two ways to Demuffin a disk; the way you have to do it
|
||
with Demuffin and the way that Advanced Demuffin allows you to do
|
||
it. I will only discuss the second method. (For additional
|
||
information on Demuffin, see Pirates Harbor cracking tips.)
|
||
|
||
|
||
MISCELLANEOUS FEATURES:
|
||
|
||
To return to the menu from any point just press "ESC".
|
||
|
||
You can change the starting and ending page number of the buffer
|
||
by changing locations $1cf0 and $1cf1 (Normally a $20 and $70 are
|
||
stored in these locations). When you change these, make sure
|
||
that the start page is stored in $1cf0 and the end page is stored
|
||
in $1cf1. If you store these numbers in reverse then Advanced
|
||
Demuffin will only use a one page buffer. This is explained in
|
||
full in the Advanced Demuffin TECH-NOTES.
|
||
|
||
|
||
Differences between Advanced Demuffin ver 1.0 and ver 1.1:
|
||
|
||
All options work including LOAD RWTS MODULE & LOAD IOB MODULE.
|
||
Does not require a DOS or an RWTS to function properly,
|
||
however, if you don't have an RWTS in memory you either have
|
||
to load one with 'LOAD NEW RWTS MODULE' or change the JMP in
|
||
the IOB module to point to $1A00 instead of $BD00.
|
||
Default is to read in $7000 bytes per pass meaning that the
|
||
entire disk can be converted in 5 passes (especially useful
|
||
with only one drive.)
|
||
The buffer start, end and (meaning size, also) can easily be
|
||
changed by changing locations $13F9 (start page of buffer)
|
||
and $13FA (end page of buffer.) The defaults for these
|
||
locations are $20 and $90, respectively giving a buffer size
|
||
of $7000 bytes as mentioned above.
|
||
CTRL-Y and & will get you back into the program in case of
|
||
accidental or purposeful exit.
|
||
Will do a screen dump to the printer at the 'PRESS ANY KEY TO
|
||
CONTINUE' message that you get after the conversion is done.
|
||
At this time, typing a number from 1-7 will do a screen dump
|
||
to the specified slot in which a printer is recommended to be
|
||
in. Before printing, however, the program will print a
|
||
"CTRL-I80n" so that the output will not go to the screen
|
||
during print causing the screen to scroll up and the printout
|
||
to be all messed up, etc. Also, even though the screen will
|
||
say "PRESS ANY KEY TO CONTINUE" at the top, the printout
|
||
won't as this is the one and only modification the screen
|
||
dump routine makes to the text as it goes to the printer.
|
||
Note also that 1-7 may be typed during copy and it will be
|
||
remembered until the conversion is completed. Any other key
|
||
(besides 1-7 or ESC) will clear the 1-7 key though. (ESC at
|
||
any time should bring you back to the main menu.)
|
||
The left-arrow key <- works as a backspace-delete in inputs
|
||
allowing multiple characters such as track number inputting.
|
||
The maximum number of retries per sector may be specified if
|
||
you decide to change the default values. This number may be
|
||
from 0 (only one try - no retries) to $F (15) in which it
|
||
would it try 15 more times to read in an unsuccessfully read
|
||
sector until it got it. The default for this, although the
|
||
program does not mention it anywhere, is one retry.
|
||
If backwards copying is attempted, you will be given an error
|
||
message instead of it incorrectly copying only the first
|
||
sector.
|
||
You don't have to do the $1318 modification - The IOB module
|
||
(which is now at $1400 instead of $1300) now points to $bd00
|
||
instead of $1900 or whatever.
|
||
It asks for the "INCREMENT" when changing the default values
|
||
instead of asking "BY".
|
||
It does not print through DOS.
|
||
|
||
================================================================
|
||
If you have any questions, problems, or concerns just contact
|
||
THE INSPECTOR on THE TWILIGHT PHONE.
|
||
|
||
|