COUNTDOWN TO SHUTDOWN : ACTIVISION
Procedure:
Loading the original produces a rattle free load, and an error
scan shows no standard errors. A backup made with the C-64 Fast
Copier produces a non-working copy. A nybbled backup produces the
same non-working copy. Before starting to work on this program,
please make a (non-working) backup of the original, and a disk log
to log the file addresses.
1) Turn off your computer and insert your reset button
assembly into the cartridge port. Turn the computer on again. Load
the $C000 monitor from your utility disk <> LOAD"49152",8,1 <>. At
the completion of the load, type SYS 49152 and hit RETURN. The
monitor should be active now.
Working with your backup:
2) With your backup in the drive and the monitor active, load
the boot file <> L "1C0P*",08 <>. When the load is complete,
disassemble memory at $02A0. You'll find a loader routine that
loads in the 1985 file and jumps to $0B79.
3) Load the 1985 file into memory <> L " 19*",08 <>. After
the load, start disassembly of code at $0B79 (D 0B79). The code is
as follows: $0B79-$0BCB sets up a fast loader and loads in the
logo screen. $0BCC is a JSR (GOSUB in BASIC) to the logo screen.
$0BCF is the start of the main program load. It is this code
that is of interest to us.
4) The code at $0C40-$0C61 is a decryption routine. Examine
it because it is the key to the de-protection. This routine allows
decryption and examination of the protection code. At the end of
this decryption routine is a RTS ($0C61). Using the Memory
command (M 0C61), change the 60 to a 00. This will allow a
normal operation of code until the 00 (Break or Stop) is
encountered. The program, once started, will stop right after
the decryption, allowing us to examine the protection routine.
5) For our purposes, we will skip over the fast loader and
logo screens. Let's start the program after the logo screen is run
($0BCF). Type G 0BCF and hit RETURN. The screen should turn
black. Wait for about five seconds and reset the computer.
Return to the monitor with SYS 49152. Using the INTERPRET
command, examine code from $0A00 on (I 0A00). Code at $0AEF
reveals a Block Execute (executes a protection check routine
placed in drive memory) and code at $0B72 reveals a Memory Read
K.J. REVEALED TRILOGY PAGE [22] (C)1990 K.J.P.B.
<<previous page -
next page>>