[Coco] Re: Technical: PIA Help

Brad Grier bradgrier at cox.net
Mon Dec 5 23:58:43 EST 2005

I added a few println calls to Mocha at the memory locations in 
question. This is what happens at those addresses during a Tetris 

I'm guessing some of the peek return values aren't right but I'm 
displaying what Mocha thinks the result should be.

The big question: What's going on with the peek and pokes at $ff03?

fire interrupt
poke ff02: ff
peek ff00= ff
poke ff02: 0
peek ff03= b5
poke ff03: b1 (ff02 data direction bit=0)
poke ff02: ff
peek ff00= ff
poke ff02: ff
peek ff03= 31
poke ff03: 35 (ff02 data direction bit=1)
poke ff02: ff
peek ff02= resets field sync IRQ flag
fire interrupt
etc, etc, etc, etc

Maybe I need to hook up my coco and figure out how to use EDTASM again.


Torsten Dittel wrote:
> Hi Brad,
> just some thoughts produced by a blurry remembrance (might be pure
> nonsense): I guess before writing and reading the keyboard you have to
> programm the corresponding PIA registers as inputs or outputs. I guess
> it's possible to "inverse" the input/output configuration. Maybe one
> even could mix it and make some PIA lines read and others write (no idea
> what this would be good for).
> I remember darkly on first Motorola "CoCo" board designs (using two PIAS
> 6821) it was even possible to programm both PIAS as outputs and "burn"
> the PIA lines by pressing the corresponding keys (kind of short
> circuit). Those lines would work only in one direction after being
> killed that way. Some software would still work (e.g. BASIC) but other
> using the "inverse" PIA setting wouldn't recognize the keys any longer).
> AFAIR this was a know problem and Motorola replaced the 6821 by the 6822
> which had kind of protection against this (I wonder if it's possible to
> kill PIAs in one of the CoCo1 emulators, it would win a price for
> accurate emulation... ;-)).
> I'd enjoy some comments by all you gurus out there! :-)
> Best regards,
> Torsten

More information about the Coco mailing list