Re: Microdrive Unit Design
Posted: Sat Nov 25, 2017 9:17 pm
Hi Tomas
After a bit more reading and also looking closely at some digital traces I took during a FORMAT, I agree with you - seems we are using Diferential ME.
EDIT: I should have added that the above trace represents a section of alternating 1/0 (FORMAT writes $AA $55 in to its 'special' extended sector format. Each DATA line is therefore either %10101010 or $01010101 as the two bytes are split alternately across the two DATA lines.) Furthermore, the two DATA lines will be slightly out of phase based on the time taken to write each consecutive byte to pc_tdata. The sequence of 2 or more 0x00s at the beginning of each header (sector or block) before then 1 0xFF apparently allows the 8302 to find the start of each independent DATA stream thus 'synchronisng the PLL and setting the read-registers to a byte boundary', as described in Dickens' mighty, but sometimes confusing reference...
We see the DATA lines remain HIGH when idle, which matches the ME standard too.
As for decoding, it doesn't seem too tricky with a microcontroller to hand, though a little more complicated than the simple XOR of CLK and signal needed for straight ME.
After a bit more reading and also looking closely at some digital traces I took during a FORMAT, I agree with you - seems we are using Diferential ME.
EDIT: I should have added that the above trace represents a section of alternating 1/0 (FORMAT writes $AA $55 in to its 'special' extended sector format. Each DATA line is therefore either %10101010 or $01010101 as the two bytes are split alternately across the two DATA lines.) Furthermore, the two DATA lines will be slightly out of phase based on the time taken to write each consecutive byte to pc_tdata. The sequence of 2 or more 0x00s at the beginning of each header (sector or block) before then 1 0xFF apparently allows the 8302 to find the start of each independent DATA stream thus 'synchronisng the PLL and setting the read-registers to a byte boundary', as described in Dickens' mighty, but sometimes confusing reference...
We see the DATA lines remain HIGH when idle, which matches the ME standard too.
As for decoding, it doesn't seem too tricky with a microcontroller to hand, though a little more complicated than the simple XOR of CLK and signal needed for straight ME.