Re: C64 IEEE interface

From: Michał Pleban <>
Date: Sun, 09 Nov 2014 15:32:51 +0100
Message-ID: <>
Hello! wrote:

> If a device is present, send device number. All devices not having 
> this number, will release NDAC and NRFD. So if both NRFD and NDAC 
> become (H), the wanted device is not present. Only after the device 
> has shown its present, you start with TALK, LISTEN or what ever. 

No you don't. It's a common misconception I also shared before I started
implementing this stuff. In fact there are even two important
misconceptions here:

* The NDAC signal is _not_ used to signal whether the device is preent
or not. It is simply a signal to _acknowledge_ that a device has seen
the byte placed on the bus. And the important thig is that _all_ devices
are required to acknowledge all bytes placed on the bus. So this signal
does not indicate whether the device understood the data or not, only
that it has seen it. So if you have a device on #8 on the  bus and you
send LISTEN to device #9, the device #8 is still required by the
standard to use NDAC whe seeing this command.

* There is no anything like "send device number" on the bus by itself.
By placing the device number on the bus, you are _already_ sending TALK
or LISTEN command, because that's exactly what these commands are - a
device number is placed on the bus with ATN signal asserted.

In fact, all this information comes from the document posted on your own
site ;-)

Se also this document where this handshaking operation is nicely explained:

There is no provision in the IEEE protocol itself for detecting the
presence or non-presence of a device on the bus. You can only learn if
the device is present or not using some higher level protocol. Just like
I am doing in my code (opening a file and waiting for a response from
the drive).


       Message was sent through the cbm-hackers mailing list
Received on 2014-11-09 15:00:03

Archive generated by hypermail 2.2.0.