number to be corrupted. One way to repair it is as follows:
Cursor to position 144 and type for text mode. In this mode
type COLOSSUS followed by shifted spaces (decimal 160) to
position 162. Now type CHESS and hit RETURN. Write these changes
to the backup by typing followed by a . Lastly while at
this sector hit to go to the next sector in the directory.
You'll find that it goes to Track 18/Sector 1. Continue hitting
n to go to each linked sector in the directory. You'll find
every sector to be normal with the last directory sector at
Track 18) Sector 5. Now power down and load and check the
directory. The file names should be present. Validate the disk
and then using the disk logger, log the file addresses.
2) With Hesmon in the cartridge port, load the boot file
< L "Firebird",08 >. At the end of the load, Disassemble code at
$02A7 and using the cursor down key, scroll down
through memory. The code highlights are:
A) D 02C6 : JSR FF90 (control load messages)
B) D 02CF : JSR FFBA (set logical addresses)
C) D 02D8 : JSR FFBD (set file name: 3 characters located at
$02C1. Use Interpret command to see the
file name GM1.
D) D 02F1 : JSR FFD5 (load into ram)
E) D 02FD : JMP 0334 (Jump to location $0334.)
3) We now know that the next file loaded in is GM1 and that the
code at $0334 is the jump link. Load the GM1 file as
< L "GM1",08 >. Notice that the code fills the screen. This is
because it is loaded into screen memory. Cursor down and start
disassembly of code at $0334.
A) Disassemble code at $0334 . You'll find a jump to
$034B. Cursor down and inspect the code from $034B-$036B.
This code represents the key to the protection.
This particular code can be found in many similar titles
and the break for all is about the same. This code sets up
a load of the actual protection check code within the GMA3
file. (Those of you interested in the drive code for the
protection should load and inspect GMA3.) A JSR to $C800
within this code checks protection, and if the check is
successful, a value of $97 is place at computer location
$0002. Upon return from the JSR C800, the value in
location $0002 is loaded into the accumulator and EORed
with a value of $97. Lastly the code Branches if Equal
(to 0) to $036C. Remember, if protection WAS satisfied, a
value of $97 was placed at $0002. The EOR Truth Table in
the back of the book tells us that $97 EORed with
K.J. REVEALED TRILOGY PAGE [69] (C)1990 K.J.P.B.
<<previous page -
next page>>