JSR's and then a JMP to $4000. Look at the code in the first
      subroutine at $C9F1. Careful tracing will reveal that this routine
      boots the fast loader code in the drive by issuing a
      'Block-Execute' command to the drive. The command string is located
      at $C955 and the drive code is stored on track/sector (T/S) 18/6
      ($12/$06). We'll look at that in a moment. The second subroutine is
      the computer side of the loader that communicates with the drive
      and retrieves the data. After the load has completed, the JMP to
      $4000 is executed.
      
      Let's stop the program after the load. Replace the JMP to $4000
      with JMP $CA16. This creates an endless loop that we can interrupt
      with RUN/STOP-RESTORE. Then, fill memory from $4000 - $BFFF with an
      oddball value (I use $99). Make sure the ORIGINAL LAC disk is in
      the drive and then execute the code at $CA00. The screen should
      blank, followed by a flurry of disk activity. When the screen
      re-appears (full of garbage) press RUN/STOP-RESTORE and re-enter
      the monitor (SYS 4096). Switch in the RAM underneath BASIC (place a
      $36 at location $02 if you are using Kracker-Mon) and look for the
      start of your filler bytes. You should find them at $A900. The data
      loaded from $4000 to $A8FF.
      
      If you try to execute the code at $4000, the computer will lock
      up. Why? Because the fast loader in the drive is still running and
      it polls the serial bus constantly, waiting for the next load
      command. Only a complete reset of the drive will re-establish
      communication. What we must do is start up the drive code before
      executing the code at $4000. Recall that the routine at $C9F1 was
      the routine that activated the drive code. Turn the drive off for
      three seconds, then back on. Place a JSR $C9F1 at $3FFD and save
      the code from $4000 - $A900 to your work disk. Re-insert the
      ORIGINAL LAC diskette and again load the "(C) 1988 EPYX" file, then
      execute the code at $3FFD. If the title screen appears after a
      moment, you've done everything right. The code from $4000 - $A900
      CAN be saved from memory, reloaded and started back up if the "(C)
      1988 EPYX" file is also loaded.

      Now let's look at the drive code on T/S 18/6 ($12/$06). Reload
      "MON1000", insert the ORIGINAL LAC, and initialize the drive. Use
      the drive monitor to load the sector into drive buffer $02 ($0500
      in drive memory) so we can disassemble it. Please refer to the Rad
      Warrior section elsewhere in this manual. The $0500 buffer is
      accessed at drive locations $OA (Track) and $OB (Sector). Use
      location $02 to execute the command byte $80. The code from $0500 -
      $051F is a decryption routine. It then JMP's to $0160. If we let it
      JMP, we will lose control of the drive to the fast loader. To view
      the decrypted code at $0160, place a 'JMP $F969' (job completed) at
      $0522 and $E0 (execute) in drive job queue $02. After the drive
      motor shuts down, disassemble the code at $0160. This routine reads
      and decrypts the drive code located in the protected sectors on

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

<<previous page - next page>>