completed its other duties? This would leave the data in $0400 as
described above and the protection check would be satisfied.
Reboot TK and allow it to load until the drive motor turns off.
Press the reset button and load in the $8000 monitor. Examine the
auto-boot code at $010E. This routine outputs a Block-Execute
command (backwards at $0191 - 'B-E 2 0 18 02') that starts up drive
code located on T/S 18/2 ($12/$02).
Insert your backup copy of TK, initialize the drive and use the
drivemon to load this sector into drive buffer $0300 using the job
queue. Disassemble the code in the drive at $0300. This code, when
executed, loads T/S $12/$12 (18/18) into drive buffer $0600 and
decrypts it. Control is then passed back to the computer, where a
memory-execute (M-E) command of $0693 is sent to the drive. This
initializes the drive side of the loader. To view the decrypted
code at $0600, insert your backup copy of TK and do the
following:
1) Use the job queue to read T/S $12/$12 into drive memory $0600
(T/S $12/$02 should already be present at $0300).
2) Assemble the following at $0400:
A 0400 JSR $0314
0403 JMP $F969
3) Execute our routine at $0400 by placing the value $12 into
drive memory $08 and $09, then place the value $E0 (job queue
execute command) into $01.
After a short period of drive activity, you may disassemble the
decrypted code at $0600. The entry point of the loader is $0693,
where some setup is done. Then a loop is executed to load and
transmit each sector. After the load is completed, the code
exits by JMP'ing to $D048, which re-initializes the drive. This
is the ideal place for us to "wedge" ourselves into the loader.
We can execute a job queue read of our sector at $12/$06 THEN
jump to $D048. The drive code from $06E0 - $06FF is filled with
zeroes and is available for our use. Assemble the following code
at $06E0:
A 06E0 LDA #$12
06E2 STA $08
06E4 LDA #$06
06E6 STA $09
06E8 LDA #$80
06EA STA $01
06EC LDA $01
06EE BMI $06EC
06F0 JMP $D048
And the following at $06C4:
K.J. REVEALED TRILOGY PAGE [122] (C)1990 K.J.P.B.
<<previous page -
next page>>