610  Open a channel to the drive.
      
         620  Send a Block Execute command to the drive.  CHR$(66)=B,
              CHR$(44)=-, CHR$(69)=E. In other words read Track 34, Sector
              8 from the disk and send it to a buffer in the drive.
              Execute that code starting at the first byte.
      
         630  Close channels: RETURN to GOSUB that called the check in
              line 65.
      
      3) Let's examine the Block Execute code. From the utility disk,
         load the program called BLOCK READ. < LOAD "BLOCK READ",8,1 >.
         list the code and in line 10 set the TRack to 34 and the Sector
         to 8. Place the backup in the drive and type RUN. The drive will
         read the proper block and transfer the code to $C000 in the
         computer  memory. When the READY prompt comes up, hit
         RUNSTOP/RESTORE to enter the monitor.
      
      4) Begin disassembly at $C000 < D C000 >. Examine the code from
         $C015-$C02A. The drive reads Track 35/Sector 0 through the job
         Queue. The Error message is read at position $00 and if equal
         to $02 (header block not found), the code falls through and
         places a value of $7F at $003B in the drive and returns to the
         BASIC program that called the B-E in the first place.  If the
         check is not satisfied, a Branch is taken to $C038 which causes
         the head to go to track one and go in an endless loop.
      
      5) The break is now quite simple.  If we place two NOPs at $C029
         and $C030, the code will not be able to Branch and must fall
         through even if the protection doesn't pass.  The changes can be
         made with Disk Dr. Power down and remove your Hesmon cartridge.
         Power up and with the Utility Disk in the drive,
         < LOAD "DISK D*",8,1 >. Use the < b > command to read in Track
         34/Sector 8 from the backup. At pos $29 (decimal 41) you'll
         find the BNE command. Using the <@> key, change position 41 and
         42 to 234 ($EA=NOP).
      
      6) This title is now broken and can be fast copied with any data 
         copier. Because it still uses the B-E command, you will not be
         able to file copy.  One way to possibly break the B-E code might
         be to store the $7F at $3B in the drive using a M-W
         (Memory-Write) command.  Replace the B-E in the ME file with a
         M-W (Line 620). We will leave this to you as an exercise for
         further practice.

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

<<previous page - next page>>