I'm not sure to understand correctly
the problem (if there's one).
There isn't exactly a problem (I tried to be clear about that) - but there appears to be some behaviour I did not expect to see and I'm trying to figure out if it makes sense or not.
I don't know what you're testing, so I try to guess.
You write a first value into the DSP host ---> to the 68030
Then you write a second one (this one shouldn't be writen into the
internal HI register as long as the 68030 has read the first one)
...
Here is something closely resembling what I see (as far as I can tell, anyway - it is somewhat indirect):
DSP->WRITE [ok]
DSP->WRITE [ok]
DSP->WRITE [blocked]
.....etc
[unblocked] [ok] READ->CPU
DSP->WRITE [ok] [ok] READ->CPU
So I was really expecting to be able to write 1 value (into a completely clear port) before the port blocks, not 2. However this is not a complaint / something broken. I'm just curious about the behaviour implemented in Hatari.
i.e. If Hatari does not implement 2 levels of buffering, I need to find another explanation for what I'm seeing.
Maybe if you have a little test program that I could run on my
falcon we could verify if there's a problem ?
Unfortunately I don't - at least not yet. I'm seeing this in quite a complex bit of code, based on excessive spinning activity measured the 3rd of of 6 exchanges made close together (with a long delay until the next 6).
I could try to write a separate test to see if the same thing happens when simplified, but it will probably have to wait a bit longer - then I'll do a few tests at once and report.
Thanks,
D.