Another benefit of this particular break is the fact that now you
may file copy this program.
BUCKAROO BANZAI : ADVENTURE INTERNATIONAL
Procedure:
Loading the original produces a drive rattle early in the load.
An error scan shows write errors on the original. A backup made
with the C-64 Fast copier produces a non-working copy.
Working with your backup:
1) The disk log shows us that the boot file SAGA resides in Basic
memory, so let's begin by loading the boot and examining it
<> LOAD "SAGA",8: <>. List it out and notice it loads the file
SAGA.OBJ and does a SYS to 4863 ($1300).
2) Turn your computer off and insert the reset button assembly.
Turn the computer on again and, from your utility disk, load the
$C000 monitor <> LOAD "49152",8,1 <>. When the load is complete,
sys the monitor in with SYS 49152. Now load the SAGA.OBJ file
from your backup, and follow the program flow
<> L "SAGA.OBJ",08 <>. Start your disassembly at $1300 (D 1300).
We will break the code down into sections for you. Try to follow
along and inspect the code as we go through it.
A) $1300-$1323 : Loads the SAGA.C64 file.
B) $1324 : Does a JSR to $137A which IS the protection check
routine.
C) $137A-$13BE : Opens the error channel to the drive and sends
the Block Read command to check Track 34, Sector 4. Interpret
memory at $13BF to see the U1 (I 13BF). Then a jump to $13CE
is taken.
D) $13CE-$13FE : Two bytes are received from the error channel
and stored at $1556 and $1557. Then a check of these two
addresses for the proper error bytes is done. The bytes are
compared to $32 (2 in decimal) and a $31 (1 in decimal).
These bytes correspond to a 21 error in decimal. If the
comparison is incorrect, the program branches to $13FF. Do a
GO 13FF (G 13FF) to see what happens. (You'll have to reload
your monitor and SAGA.OBJ file again). If the comparison is
correct, the program continues along until it encounters the
RTS at $13FE. This will branch the code back to $1327, and
the program load will continue.
K.J. REVEALED TRILOGY PAGE [7] (C)1990 K.J.P.B.
<<previous page -
next page>>