Main Index Routine Index Memory Index
Previous Page Next Page


Routine $0745:   Wait for next sector start, set Job #1, set [$1D], set [$11], get Track Key.

If call to $0745: Wait for next sector start, set Job #1 to execute, set [$1D], set [$11], get Key for current Track. If call to $075D: Set [$1D], set [$11], get Key for current Track. If jump to $0764: Set [$11], get Key for current Track. If jump to $0769: Get Key for current Track.

JSR from $068E: 0745: A5 0A LDA $0A 0747: 30 2D BMI $0776 0749: 20 26 07 JSR $0726 ; Counts the data bytes (returned in A,Y) until next SYNC is detected. CF:=1. 074C: C0 18 CPY #$18 ; compare number of data bytes with $18 074E: 90 26 BCC $0776 ; branch if <$18 0750: A2 D0 LDX #$D0 0752: 86 01 STX $01 ; set Job #1 to $D0 (execute $0400) again 0754: 20 3F 07 JSR $073F ; measure length of next following SYNC mark (in X) 0757: E0 2A CPX #$2A ; compare SYNC length with $2A 0759: 90 22 BCC $077D ; branch if <$2A 075B: 86 11 STX $11 ; [$11]:= SYNC length JSR from $058C: 075D: AD 50 01 LDA $0150 0760: 85 1D STA $1D ; [$1D]:= [$0150] 0762: A5 11 LDA $11 Jump from $0555: 0764: 38 SEC 0765: E5 1D SBC $1D 0767: 85 11 STA $11 ; [$11]:= A - [$1D] Jump from $06F0: 0769: A6 22 LDX $22 076B: E0 13 CPX #$13 ; compare [$22] with 19 076D: 90 02 BCC $0771 ; branch if <19 076F: CA DEX 0770: CA DEX Jump from $076D: 0771: BD 52 01 LDA $0152,X ; get Key for current Track (read from Track 36 Key Sector) 0774: 85 0E STA $0E ; [$0E]:= Key (~number of #$7B's in extra sector) Jump from $0747, $074E, $0781: 0776: A9 EE LDA #$EE ; set [$1C0C]:= 11101110b (111 = CA2+CB2 High output, 0778: 8D 0C 1C STA $1C0C ; 0 = CA1+CB1 Negative active edge ) 077B: 18 CLC 077C: 60 RTS Jump from $076D: 077D: 66 12 ROR $12 077F: C6 D4 DEC $D4 0781: 10 F3 BPL $0776 Jump from $0713: 0783: 4C D5 07 JMP $07D5 ; error: branch to exit of RapidLok - Avoid this!!! Previous Page / Next Page