C key and hit RETURN. The sector is now changed on the disk. We
have just changed the boot address to $0801, which places it in
Basic memory. The boot will not run properly, but we may load
and examine it.
2) Turn your computer off and insert the reset button assembly into
the cartridge port. Turn on the computer and load the $8000
monitor from the utility disk <> LOAD "32768",8,1 <>. Type SYS
32768 and hit RETURN. With the monitor active, place the altered
backup in your drive and load the boot file <> L "BOOT",08 <>.
disassemble code at $0801 (D 0801) and scroll down through the
code. The code from $0838 to $0853 is a loader routine that
loads in the file LOADER and then jumps to $C000. This gives us
the information we need to trace the program flow. Take this
backup out of the drive and put the other backup in its place.
(Remember, we altered the boot file on this backup.)
3) Load the LOADER file <> L "LOADER",08 <>. When the load is
complete, interpret memory at $C000 (I C000). Scroll down
through the code watching the left hand screen. At address $ClA3
you'll find the block read command: U1 2,0,32,8. This is the
command to read Track 32 Sector 8. Our error scan has shown a 21
error in this location. Now let's disassemble and locate the
protection code.
4) This protection scheme is written as a series of JSR (GOSUB in
Basic). Remember each JSR ends with a RTS (RETURN). Code will be
explained in segments. Try to follow the program flow.
A) Starting at $C000 in the DISASSEMBLE mode, scroll down to
$C017 : JSR C116.
B) Disassemble $C116 : JSR C14B.
C) Disassemble $C14B : JSR C172.
D) Disassemble $C172 : Opens a channel to the drive then RTS.
E) Disassemble $C14E : JSR C188.
F) Disassemble $C188 : Sends Block Read command to the drive
then RTS.
G) Disassemble $C151 : JSR C1AF.
H) Disassemble $ClAF : Inputs two characters from the error
channel and stores them at $C1CA and $C1CB then RTS.
I) Disassemble $C154 : The accumulator is loaded with the error
character placed in $C1CA and compared with a $32. The
K.J. REVEALED TRILOGY PAGE [5] (C)1990 K.J.P.B.
<<previous page -
next page>>