[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Direct access to disk drive in DOS 3.3?
- Subject: Re: Direct access to disk drive in DOS 3.3?
- From: "josephoswaldgg@hotmail.com" <josephoswaldgg@hotmail.com>
- Date: 14 Sep 2004 07:34:49 -0700
- In-reply-to: <F081d.53980$Np2.19386@bignews4.bellsouth.net>
- Newsgroups: comp.sys.apple2
- Organization: http://groups.google.com
- User-agent: G2/0.1
- Xref: g2news1.google.com comp.sys.apple2:4228
There are many ways to approach this problem, depending on the details
of the copy protection scheme, and what you are looking for in
entertainment value.
One approach is to disassemble the DOS RWTS, figure out how to patch it
to write the format you wish, and then write a short Applesoft program
which POKES the patched values for the special sectors. Ideally, you
also PEEK beforehand to make sure the DOS is valid, and restore the
proper values afterward. The most extreme case of this is to BLOAD your
own hand-assembled RWTS substitute.
This is easiest if the scheme changes some of the magic values for
prolog/epilog or checksums. Way back when, there was a program called
"Super IOB" which allowed for these patches to be standardized and
swapped as "softkeys"
http://www.apple2.org.za/mirrors/ground.icaen.uiowa.edu/MiscInfo/Programming/meccopy.dasm
contains some discussion of this approach.
Another approach, which was very common in the days of BBS pirating,
was to find the code in the program which checks for the protection
scheme and disable it by changing the 6502 machine code in the
program. There is probably a dedicated routine that checks for the
protection and returns a flag (perhaps carry set or carry clear). You
can replace that routine with a simple SEC RTS or CLC RTS depending.
This strategy also works with disks that use a modified RWTS. You can
undo the modifications, allowing the program to run on fully standard
DOS disks.
The only argument against this is aesthetic: it feels nice to have the
pristine application instead of a hacked version.
The easiest way to make this change is Copy II+. Its sector editor has
a disassemble function to inspect the code before you alter it.
Another approach is to use a patched RWTS that ignores errors on read
and writes out standard format, and then using a track editor to put
the "error" back in by hand.
All of these can be made to work, and several of them can lead to lots
of fun exploration and puzzle solving. Have fun!