from the Utility disk, load the $C000 monitor
< LOAD "49152",8,1 > and after the load sys it in < SYS 49152 >.
2) If you have performed the previous breaks in Section E, you
will remember that we are looking for a decrypter that hides the
protection check. That decrypter ALWAYS begins with A0 00 A9. So
we can search most of memory, flip out the BASIC interpreter by
changing memory location $0001 from a $37 to a $36 ($76 on the
C-128) < M 0001 >. Now do a hunt for the key bytes in memory
< H 0800 BFFF A0 00 A9 >. If you have reset out at the proper
time, the following addresses will be returned: 0F13 B4ED B9E8
Start by disassembling $0F13 < D 0F13 > and inspecting the code
below that address. If the code is clean, it is not what we are
looking for. Inspect all the returned addresses and look for
programming that has code beneath it that does not disassemble
properly (usually you'll find a lot of ?) You'll find that
$0F13 fits the bill exactly. Here you'll find the decrypter with
about a sector of encrypted code beneath it.
3) Because of the no directory files problem, this break poses
a slight inconvenience. We will have to search the disk for the
proper place to lay down the break code. This type of loader
uses a Track & Sector method of loading. You'll find that each
page in memory occupies its own sector on the disk. Because the
break code is between $0F00 and $1100, we need to record the
first 5 or 6 bytes from $0F00 and $1000 to make it easier to
locate these on the disk. (Remember these will be the first
bytes in the sectors they occupy. Using the Memory command,
inspect and record the first few bytes in each: $0F00= 8D 5A 0D
A9 81 85 02/$1000= 00 00 00 00 00 00 00. Again disassemble
memory at the decrypter and use the cursor key to scroll down
through memory < D 0F13 >. You must scroll down at least a full
sector ($1013) and a bit more, until you see clean code again.
From $1013-$1041 you'll find all zero bytes. Record this
information for later reference.
Working with your original:
4) Power off and on again to clear memory. Load the original
disk until the game has started up and again hit the reset button.
From the Utility Disk, again load and activate the $C000 monitor
as before. Start disassembly at $0F13 < D 0F13 >. You'll find
new code has replaced the previous encrypted code. The key to
breaking this type of protection is to replace the encrypted
code with this new code. Disassemble again at $0F13 and cursor
down through memory. At $1013-$1041, you'll find the same zero
bytes as we recorded earlier. This tells us that the code from
here on is the same as it was in the unrun and encrypted state.
Place your formatted work disk in the drive and save the new
code < S "BLOCK",08,0F13,1014 >.
K.J. REVEALED TRILOGY PAGE [62] (C)1990 K.J.P.B.
<<previous page -
next page>>