:000E 12 0D
:0004 80
Disassemble the code at $0700 (D 0700). The first thing the code
does is move the drive read/write head forward two tracks to track
20. It then initializes a set of pointers to start the load process
at buffer $0300 and starts reading bytes from the drive. There are
no sync marks on the track: the routine reads until it finds a GCR
byte with the value $5A, of which there is a long series. When the
$5A byte sequence ends, the code reads and EOR's each successive
pair of bytes together and stores the result byte to buffers
$0300 - $06FF. This produces the custom fast loader code.
You can now understand how a normal nybbler is dead in the water
if it can't reproduce this track. But we can trap the code easily.
Bypass the JMP instruction at $0797 by entering:
]A 078E LDA #$01
], 0790 JMP $F969
This will return control to the drive-mon when the code has
finished execution. To execute it, enter
:0004 E0
When the monitor returns you will be able to look at V-MAX! in all
its glory. We first must make a minor modification to the code in
case your work copy is not perfect. There is a sector checksum
verification routine at $03F3 that will fail if the sector checksum
is not zero. This can be defeated by entering:
:03F5 A9 00
Now we need to re-write the loader code at $0700. Start with a
fresh copy by re-loading T/S $12/$0D like we did above.
Directory sectors $04, $07, $OA, and $0C will contain the code
from $0300 - $06FF. Beginning at $0700, re-write the drive code as
follows:
0700 SEI ;disable interrupts
0701 LDX #$0D
0703 LDA $071A,X ;store read data to job queue
0706 STA $00,X
0708 DEX
0709 BPL $0703
070B CLI
070C LDA $00 ;wait for read to complete
070E ORA $01
K.J. REVEALED TRILOGY PAGE [136] (C)1990 K.J.P.B.
<<previous page -
next page>>