Guys, I don't have Spectre GCR schematics or code anymore.
There's a D to A converter that sets a voltage controlled oscillator to determine the frequency the GCR reads Mac floppy data at.
The Mac used 5 different speeds, changing every 16 tracks, so I had to dance with it to change read/write speed..
The PAL decodes Mac GCR to an 8 bit register I'd read/write. GCR uses 6 bits encoded into 8 bits to ensure clock transitions. Then you take 4 bytes of raw data from the GCR hardware, shift and mask, you get out 24 bits total, that produces 3 8 bit bytes. The trick is doing it on the fly, so no interrupts allowed, so you could handle 1:1 interleave, pick up a whole track's sectors one by one.
Believe me, shutting off the keyboard and mouse was a nightmare! You can't just go IPL 7. The keyboard chip keeps sending data, there's some hassle about edge vs. Level triggering, and it hangs. Finally found totally undocumented that you can ask the keyboard to be quiet a bit. Much like X-on, X-off. Then you do the GCR stuff, wake up the keyboard, and procrss all ghe interrupts. I think wild mouse movement during GCR made it still lock up.
The rest of the hardware mapped the two ROMs one at a time into one 64K window of the cartridge, then the other. The upper 64K was control and I/O for the GCR stuff.
I just don't have this stuff anymore. You know how it goes. You move, stuff gets lost. Ive moved several times.
Youre welcome to email me at:
[email protected]
-- Dave Small