Main Index Routine Index Memory Index
Previous Page Next Page


Routine $0700:   Track 36 handler ($D0-Job)

This routine gets executed when Track 36 is reached. First Interrupts are disabled again and Job #4 result is set to 9. The value is positive, so inside the $0558 routine the $057C-BPL will branch to $0587 when we return. The $06E8 routine sets the Bit rate to "10 = 285714 Bit/s". The $0489 routine then reads the 35 key bytes from the Key Sector and decrypts them. It returns with CF=0 (SYNC mark found; result of the $050D-routine). So the $0713-BCS will not branch. Finally [$01]:=[$01]/2=$D0/2=$68 and RTS back into the 1541 Kernal which is left by two RTI's to $057A in the $0558 routine.

$D0-Execute Job #4 from $06B4: 0700: 78 SEI 0701: A9 09 LDA #$09 0703: 85 04 STA $04 ; set Job #4 result to positive value 0705: 85 C6 STA $C6 0707: A9 DB LDA #$DB ; $DB=11011011b control byte for head recalibration onto Track 0709: 85 BB STA $BB 070B: A9 4E LDA #$4E ; $4E=01001110b 070D: 20 E8 06 JSR $06E8 ; set Bit rate to "10 = 285714 Bit/s" 0710: 20 89 04 JSR $0489 ; Retrieve 35 keys from Track 36 Key Sector -> [$0153-$0174], CF:=0 if SYNC found 0713: B0 6E BCS $0783 ; CF=1 is error: branches to end of RapidLok - Avoid this! 0715: 46 01 LSR $01 0717: 60 RTS ; "return" to $057A Previous Page / Next Page