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.
|
|||
|
|
|||
|
|