Re: Question about UNTALK

From: Spiro Trikaliotis <ml-cbmhackers_at_trikaliotis.net>
Date: Wed, 29 Aug 2012 20:25:46 +0200
Message-ID: <20120829182545.GG7442@trikaliotis.net>
Hello Ruud,

* On Wed, Aug 29, 2012 at 10:19:54AM +0200 Baltissen, GJPAA (Ruud) wrote:

> I first wanted to ask why on the C64 UNTALK is sent with ATN = (L) and
> UNLISTEN isn't. Please see from $EDEF on. But then I noticed the JSR
> $ED11 at $EE00. $ED11 first checks if there is a byte in the queue and,
> if so, sends it first. Then it sets ATN (L) and sends the command byte.
> So setting ATN = (L) at $EDF3 isn't needed anyway IMHO.
> 
> But what will happen now if a TALK needs to be sent and there is still a
                               ^^^^^^
                               TALK or UNTALK?

> byte in the queue? This byte will be sent with ATN = (L) and IMHO will
> confuse the attached device ????

I am a little confused. Are you asking about what will be done if a TALK
is to be sent, or if an UNTALK is to be sent?

In the case of the UNTALK, it is simple: 

The UNTALK does not make sense if no TALK was sent before.

With another device in the TALK state, the C64 is not allowed to sent,
anyway, as this would confuse the IEC protocol.

Thus, when UNTALK is executed, there cannot be a byte to be sent in the
queue, or this would be a protocol error, anyway.


In the case of the TALK, the same as with LISTEN happens, thus, this is
not a problem, too, as $ED11 is executed, too.

Regards,
Spiro.

-- 
Spiro R. Trikaliotis
http://www.trikaliotis.net/

       Message was sent through the cbm-hackers mailing list
Received on 2012-08-29 20:00:06

Archive generated by hypermail 2.2.0.