4) An error scan of the original SB disk.
5) A reset button that will reset the screen.
Examining the disk map shows that the disk appears to be
completely normal. This is common to many Epyx releases: they have
an impressive fast loader routine that requires a slight
modification to the sector headers. A fast copier will ignore
these eccentricities but a nybbler can reproduce them well enough to
fool the fast loader. Obviously, this is not where the protection
lies.
Load the nybbled copy of SB and observe what happens: when the
"Maxx-OUT" screen appears, the disk drive hangs. If you listen
closely to the drive when this happens, you'll hear the drive head
move a long way across the disk before it gets spindizzy. This,
then, is where the protection check occurs.
Load the $C000 monitor and the SB boot file1 which resides from
$02A7 - $0303. The program start address can be found in the BASIC
warm start vector at $0302 - $0303. The entry point is $02C1. This
routine does little more than load the only other file in the
directory "(C) 1987 EPYX" and then jumps to $7F06. This file
resides from $7D09 to $7F73. Most of this routine is the fast
loader initialization code and drive-to-computer transfer
routines.
At $7D2C, you can see the text for the Block-Execute (B-E) command
that starts up the drive code on track/sector (T/S) 18/6
($12/$06).
The drive code is interesting to study (see "L. A. Crackdown"
elsewhere in this manual for all the gory details) but, if there's
an easier way, why bother?
Begin disassembly at the entry point of $7F06. You should be
looking at a short routine that ends with a JMP to $67E9 at $7F24.
Examine the other subroutine calls to $7EF1 and $7EF4. These are
the initialization routines referred to above. A logical place to
stop the loading process is the JMP $67E9. Change this instruction
so that it JMP's to itself (JMP $7F24). Execute the code at $7F06
(G 7F06). The program should freeze up. Press your reset button and
load the $C000 monitor.
Disassemble the code at $67E9. The subroutine call to $6909
reveals several calls to the load routines we saw earlier,
followed by a comparison to a byte value at $6925. If the byte
doesn't match, the code branches to $692E, where it
executes an undocumented opcode ($02) that sends the computer into
an infinite loop. What would happen if we just bypassed this code
altogether?
Again, we'll have to patch the backup disk.
But where is this code? Try to find it with the Byte Pattern
Searcher. Good luck! Epyx' fast load routine requires the disk
data
K.J. REVEALED TRILOGY PAGE [119] (C)1990 K.J.P.B.
<<previous page -
next page>>