TITLE BOUT : AVALON HILL
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 backup made with a nybbler
also produces a non-working copy. Before starting to work on this
program, please make a non-working backup of the original.
Working with your backup:
1) Start by validating the BAM <> OPEN15,8,15,"V":CLOSE15 <> to
make room for a new file we will be adding later. Scratch the
first file from your backup <> OPEN15,8,15,"S0:AH":CLOSE15 <>.
Working with your original:
2) Place a write protect tab on the original to ensure its safety
during the breaking process.
3) Turn off your computer and insert your reset assembly into the
cartridge port. Turn the computer on again and load the boot
file and start the load process <> LOAD"AH",8,1 <> . Allow the
program to load until the screen turns black and the words
LOADING DATA appear in the middle of the screen. At this point,
reset the computer.
4) Remove the original disk from your drive and insert the utility
disk. Load the $C000 monitor <> LOAD"49152",8,l <>. When the
load is complete, sys the monitor in with SYS 49152. The monitor
should be active now. Remove the utility disk from the drive and
replace it with the backup work disk.
5) Interpret memory starting at $0801 (I 0801). Scroll through
memory and notice the Basic program. Our task is to repair the
pointers and save the program to your backup (see Scheme B
Intro). Using the memory command (N 0801) inspect code at 0801.
Notice that the first two bytes are 00 00. These two bytes
represent the start of the next line in this Basic program.
Obviously, these bytes have been destroyed by the reset because
the next line couldn't be zero. To find the correct bytes to
replace the two zeros, follow this procedure. We know the first
four bytes are pointer bytes ($0801-$0804). we also know that
the next time a zero byte appears in memory ($0811), it signals
a new line. The next address is the address that the pointer
will point to ($0812). Therefore, the first two bytes in this
program should be 12 08 because all addresses are read in
K.J. REVEALED TRILOGY PAGE [15] (C)1990 K.J.P.B.
<<previous page -
next page>>