B) Place a 30 at $OBlA and at $081D. This will allow the drive
to send back an OK condition and pass protection because we
will now be comparing to NO error.
C) Place a 60 (RTS) at $0844 which will cause the routine that
checks protection to be short circuited.
When your changes have been made, this title may be file copied.
INTRO : PROTECTION SCHEME TYPE B
This protection scheme has allowed software publishers a means
of protecting their programs from the finest nybblers on today's
market. It employs a loader that resides in RAM at $C000. This
loader does the protection check and then proceeds to gather a
Basic boot from the program disk. This boot is placed in RAM at the
beginning of Basic ($0801-). Our task in each of these schemes will
be to let the original disk pass protection and then place the boot
in memory. At this point we can retrieve the boot and from then on
use it to load our back-up, leaving the protection check completely
behind.
Before starting, you must understand the way a Basic program is
placed in memory and how the pointers affect it. The reason for
this is that most of the time upon reset, the beginning pointers
will be destroyed and we will have to repair them ourselves.
The pointers used by Basic are very specific, and if not
correct, the Basic program will fail to operate properly. To show
you how a Basic program looks in memory, let's inspect the example
on your work disk.
First, load the $C000 monitor from your Utility disk
<> Load "49152",8,1 <> and sys it in by typing SYS 49152 and
hitting RETURN. You should be in the monitor now so load again
from your work disk the file called BASIC EXAMPLE
<> L "BASIC EXAMPLE",08 <>. After the load, examine memory from
$0801-$0890 (M 0801) Scroll up and down through the code. You
should be looking at the same code as shown below. Please note
that the example below has all pointer bytes underlined for ease
of viewing.
K.J. REVEALED TRILOGY PAGE [13] (C)1990 K.J.P.B.
<<previous page -
next page>>