Re: Calling all DOS-heads

From: Ingo Korb <ml_at_akana.de>
Date: Fri, 30 Mar 2012 14:29:19 +0200
Message-ID: <uy5qi1dcw.fsf@dragon.akana.de>
Jim Brain <brain@jbrain.com> writes:

> load"$",9
> http://s15.postimage.org/pym7z9i23/with_ACK.png

A bit small, but workable unless you need to decipher the timing marks.

> http://s15.postimage.org/ar68ewq7b/without_ACK.png

180x100? Did you accidentally upload/link a thumbnail of the image you
wanted to show?

>    * At 7.4ms, ATN_IN goes high again
>    * ATNACK is already low, so DATA_ACK goes high
>    * DATA_OUT is already hi, so all is well

A bit more detail for clarification/matching the events in the trace to
the drive ROM:

* the drive receives one command byte (0x3f - UNLISTEN) via E9C9
* at EA28 it sets DATA_OUT high
  (I hope I don't confuse high/low in here anywhere, I usually look at
   the serial bus instead of the driver inputs and sd2iec is also
   written in "bus level" style)
* the received command byte is processed
* at E902 the drive waits until ATN_IN is low
* host sets ATN_IN low
* ATNACK is set low at E8E0
* the LISTENER and TALKER flags are both not set,
  so the code skips to EA4E
* DATA_OUT, CLOCK_OUT and ATNACK are all set to low there
* EBE7 notices that a command or file name was received and starts to
  process it - which means the drive needs to read data from the disk to
  create a directory listing

>    * Than, at 9.443mS, ATN goes high again
>    * DATA never goes high, ever
(which of the at least four DATA signals?)

DATA_OUT won't move until the drive is actively looking at the serial
bus again, but the hardware-acknowledge handles that case. DATA_IN and
DATA_ACK both jump high at that point, so DATA_bus does go low.

>    * ATN_IN cycles a few times (zoomFLoppy), trying to get a response.

I don't see that in the screenshot? Besides, why would it have any
reason to wiggle ATN? It can tell that there is at least one drive on
the bus because DATA_bus went low within 1ms of ATN_bus low and there is
no timeout for any further response from the drive at that point because
it may currently work on a very long command (e.g. N or V).

> I don't understand why the DOS never notices ATN at 9.443ms

It's busy reading data from the disk to create the directory listing the
host just asked for.

-ik

       Message was sent through the cbm-hackers mailing list
Received on 2012-03-30 13:00:05

Archive generated by hypermail 2.2.0.