[Color Computer] [Coco] 6809 Test and Set instruction?
Brett K Heath
hcmth019 at csun.edu
Tue Jul 11 20:15:37 EDT 2006
On Tue, 11 Jul 2006, James Diffendaffer wrote:
> >Don't hold me to the specifics of how it was implemented but I
> >believe the
> >6809 designers used CPU handshaking on dedicated pins to get atomic
> >read-modify-write cycles.
> >There are two main differences between the 6809 and the 6809E. One is
> >the
> >clock generator built in to the 6809, the other is the definition of
> >two of those pins that aren't connected in the coco.
> >As I said I'm a little vague on the specifics but since
> >multiprocessing
> >was implemented by having two CPUs share memory and access it during
> >opposite phases of the clock all that they needed to do to keep one
> >CPU
> >from stepping on a read-modify-write cycle initiated by the other was
> >to
> >signal it not to mess with memory during that cycle.
> >If memory serves there was a Busy/*BusAvailable pin on the master
> >(6809)
> >and a corresponding pin on the slave (6809E) used to arbitrate this,
> >with
> >read-modify-write instructions locking the bus until they were done
> >(typically 2-3 machine cycles).
> >If you really need to know exactly how it was done look at the
> >Motorola 6809 Programmers manual.
> >HTH
> >Brett K.Heath
> Hah! I knew I saved this link for a reason!
> http://www.zetetics.com/bj/papers/6809cpu.htm
Yahbut. Brad creates his own bus arbitration logic, he doesn't actually
use the handshaking that was designed in with slightly different pin
functions on the 09 and the 09E.
As it happens I dug out the 6809 refs recently and so have them handy.
I'll check the Programmers manual tonight to refresh myself on the
details.
Brett K. Heath
More information about the Coco
mailing list