program to load until the game menu is on 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,1 <>. 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 (H 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 that 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 0B because all addresses are read in
reverse order. Now we can scroll to the two zeros at $0801 and
type over them 12 08 and hit RETURN. The first four bytes
starting at $0801 should now be 12 08 00 00 (the 00 D0 bytes
represent the current line number in reverse D0 00=00 D0; yes,
we CAN have a line number 0!). Our BASIC program is now repaired
and all that is left is to locate the end of the program and
save it to our backup disk. To find the program end, use the
HUNT command in your monitor. We'll hunt for the three zero
bytes that signal the end of Basic. <>H 0801 8000 D0 D0 D0 <>.
As the first bytes begin to be reported, hit the number 1 key to
stop the hunt. We are only interested in the first address
reported. In this case it should be $0A6E. Using the memory
command, inspect memory around the address $0A6E. You will
notice that the third zero is at the location $0A70. We now have
all the information needed to save the new boot to our backup.
The start address is $0801 (beginning of Basic) and the end
address is $0A71 (all monitors require us to save the actual
address plus one: $0A70+1=$0A71). Make sure your backup is in
the drive and save the memory from $0801-$0A70
<> S"START",08,0801,0A71 <>.
When the save is complete, you will have a broken copy that will
no longer do a protection check. We have essentially replaced
the auto boot and the protection check with the result, a Basic
boot.
K.J. REVEALED TRILOGY PAGE [17] (C)1990 K.J.P.B.
<<previous page -
next page>>