this way: <> LOAD "BOOT",8 <>. When the load is complete (you
         may have to hit RUNSTOP/RESTORE), sys the monitor in with SYS
         32768 and hit RETURN. You can now find the boot file in BASIC
         memory at $0801. Interpret memory and scroll down from $0801 . Notice the INTRO. Disassembly of memory at $0801 
         and scrolling down reveals a loader file that loads the INTRO
         file and jumps to $2015.

      2) Load the INTRO file <> L "INTRO",08 <>. Start by disassembling
         memory at $2015 (D 2015). Scroll down through memory, and at
         $201A note the JSR $26B9. Disassemble $26B9 (D 26B9). Here we
         find the decryption routine that is the heart of this protection
         scheme. Refer to the Introduction for general information on
         this. Our task is to replace the encrypted data with valid
         program data. This is relatively easy. Be sure you have a write
         protect on your original and that the ORIGINAL is in the drive.
         Type G 26B9 to start the program up. The drive will run for a
         short time, and then stall. When the drive stops, reset the
         computer and re-SYS the monitor back in (SYS 32768). Disassemble
         memory at $26B9 again and notice that the code has indeed
         changed. This is the valid program code we needed for the break.

      Working with your backup:

      3) Now, all that's left is to save the retrieved data back to the
         backup. Checking the disk log provides the start and end
         addresses of $2000-2A00. Be sure to add one byte to the end
         address and save it to the backup
         <> S "@0:INTRO",08,2000,2A01 <>.

      4) Turn the computer off and on, and boot up your backup. It should
         load past the point that it loaded before our break.
         Unfortunately, it still refuses to load fully. Remember, we did
         find two separate number twenty errors on the original. We have
         disabled half of the protection, now let's do the rest.

      5) Reload the $8000 monitor <> LOAD "32768",8,1 <>. Sys it in with
         SYS 32768. From the half broken BACKUP, reload the INTRO file
         <> L "INTRO",08 <>. Again, start your disassembly at $2015
         . Scroll down, and try to follow the program flow. At
         $2140 you'll find a JUMP $C000. Using the MEMORY command change
         the 4C at $2140 (M 2140) to 00 and hit RETURN. This will stop or
         BREAK the program flow just before it jumps to $C000, allowing
         us to inspect memory in the LOADER file. Activate the INTRO file
         by typing GO 2015.

      6) When the drive stops, reset the computer and reload your $8000
         monitor <> LOAD "32768",8,1 <>. Sys it in with SYS 32768. Start
         by disassembling the code at $C000 . You'll find a jump
         to $C024. Disassembly of $C024 reveals another decryption

            K.J. REVEALED TRILOGY    PAGE [46]     (C)1990 K.J.P.B.

<<previous page - next page>>