On 26 Oct 2020 at 19:39, Christian Zietz wrote:
Roger Burrows schrieb:
Quite possibly the documentation is just wrong. However, in TOS4, there
are
manipulations of 'mystery bits' that are not documented in the development
notes or the Compendium. Specifically:
. bit 3 of $ff8937 is toggled
. bit 2 of $ff8938 is toggled
. bit 3 of $ff8938 is cleared (only)
[...]
But meanwhile I would be interested to hear comments from the smart
hardware
people about those mystery bits.
There is this collection of technical documents that among other things
covers the Falcon. Unfortunately, just the document that would contain
these registers is damaged, so that only the text version (without
formatting) survives, which is a bit hard to interpret.
There, I can see:
...
Hence bit 3 of $FF8937 should be "Global Sound Reset". And...
Thanks! That's a big help and expands on what I found by a test program (which
I have attached). In the ZIP, Hatari developers please find the C source,
Lattice C .PRJ file, and binary for DMASOUND.TTP.
Also there is FALCONHW.TXT which shows the results of running the program on
real Falcon hardware, and HATARI.TXT which shows the output from the same
program run on Hatari 2.2.1. As you can see, toggling bit3 of $ff8937 on real
hardware resets a lot of dmasound registers.
I haven't tried running DMASOUND.TTP with the latest Hatari source in the repo,
but since the routines that handle that area of the hardware emulation do not
pay attention to that bit, I would be extremely surprised if the results were
different.
I think that now would be a great time to fix this in Hatari, before the
upcoming 2.3, although I realise that there may be some concern about changing
the code at a late stage. In any case, I will fix this on the EmuTOS side
shortly and see how that helps on real Falcon hardware. There may be other
things I need to do, but this definitely needs doing.
...
Thus, bit 3 of $FF8938 would be "Expand" (whatever that is) and bit 2
would be "mute". No idea why one would toggle "mute", though. Also, I
don't know if everything is actually implemented in hardware or some
bits were only planned for future revisions of the Falcon that never
came to be.
I will see if I can determine what toggling bit 2 does and what setting bit 3
to 1 might do, but that's likely to be difficult. The toggling of bit 2 is
done in conjunction with setting and resetting values in the attenuation
register, so it might be possible to figure it out logically. If anyone would
like to see the relevant TOS4 disassembly, I can post it here (it's very
short).
Thanks again,
Roger