Date : Sun, 27 Sep 2009 22:51:30 +0100
From : mfirth@... (Michael Firth)
Subject: Couple of Tube operation queries
A couple of specific technical questions about the operation of the Tube
ULA, which aren't clear in App Note 04 (and indeed some of which are contradictory
in it):
The Tube "T" bit (sort of a soft reset):
1) Is it used by the actual software implementation? - the BeebEm code for
emulating this bit looks very broken, so I think that if it was used by the
Tube host code implemented by Acorn then it wouldn't work properly.
2) Is this bit a set / reset flag (as implied by page 13 of the App Note),
or is it self-clearing (as implied by page 12 of the App note)?
Register 3 operation:
Does this register operate exactly as per the "Register 3" section of page
13 of the App Note? - this section is contradicted by other areas of the
App Note - e.g.:
1) The register 3 section says "In two byte mode the data available flag
will only be asserted when two bytes have been entered", while the Control
and Status Flags section earlier on the same page says "In the case of the
FIFO registers, data is available when there is one or more valid byte in
the register"
2) The register 3 section says "Not full ... will remain active until both
bytes have been entered", while the reset operation says "register 3 has
one valid but insignificant byte in the parasite to host FIFO to prevent
an immediate PNMI state" - If the register 3 section is true, then when the
V bit is set it should be needed to have two bytes in the FIFO to prevent an NMI.
The latter case probably becomes a non-issue if the "T" bit isn't used, as
for a hard reset the V bit will be cleared (as indeed will the M bit, preventing
the problem NMI from happening), making the number of bytes in the parasite
to host R3 irrelevant.
Thanks for any advice that anyone can give on this, and apologies to everyone
who hasn't read App Note 4, to which most of this will seem to be gibberish!
Regards
Michael