Author: | Lord Crass (guest: search) | |
Date: | Sun, Mar 20th, 2011 @ 23:16 ( . ) |
This string of bytes appears to be written at a different density level, that's why it's coming in incorrectly. Here's the drive code that switches density and reads them: .8:0493 LDA $1C00 .8:0496 PHA ; Push original $1C00 values (density specifically) to stack .8:0497 AND #$9F .8:0499 STA $1C00 ; switch to density %00, lowest density (same as track 31-35) .8:049c LDY #$19 ; read up to $20 gap bytes before giving up .8:049e BVC $049E ; wait for byte ready .8:04a0 CLV .8:04a1 LDA $1C01 ; read GCR byte .8:04a4 CMP #$6A .8:04a6 BEQ $04AB ; branch if found a $6A byte .8:04a8 DEY .8:04a9 BNE $049E ; loop until we find $6A or exceed number of tries .8:04ab STA $0309 ; Store the byte in the $300 buffer .8:04ae LDY #$03 ; Read 4 more bytes .8:04b0 BVC $04B0 ; wait for byte .8:04b2 CLV .8:04b3 LDA $1C01 ; read GCR byte .8:04b6 STA $0305,Y ; store at $308 down to $305 .8:04b9 DEY .8:04ba BPL $04B0 .8:04bc PLA ; Pull original density level .8:04bd STA $1C00 ; Set it |
--- 0 Users Online --- 0 Recent Unique Posters |