[BBC-Micro] Reversing the Tube ULA (destructively)
mfirth at firths.org
Wed Oct 27 21:31:30 BST 2010
On 26/10/2010 09:31, Mark Haysman wrote:
> Have to agree that an "exact" clone would be preferable. I'm working with Ed
> and Richard on his open source tube code to try and get it 100%, but there
> seem to be odd quirks in there that would be a lot easier to solve if Ed
> could have success with a proper RE of the original chip.
I think there are at least 5 classes of function in the Tube ULA:
1) Functions that are "core" - i.e. used by all parasite
implementations, and have to be implemented precisely to work correctly
2) Functions that are used by only some implementations, so may not be
needed for some specific re-implementations (e.g. the DMA functions used
on the 80186 Co-Pro)
3) Functions that are in the ULA, but not used by the standard software
implementation. This category is hard to be definitive about, but I
think it includes the ULA "soft reset" and the "parasite reset" bits in
the control register
4) Functions that are in the ULA, and not usable in any of the existing
implementations. I think the "Host IRQ" feature and control logic is in
this class, as the pin is not (by default) connected to the host on all
implementations I've seen.
5) Functions that the software can live with a varied implementation of.
The specific case here is the VDU FIFO - the software will work with any
size of FIFO, with a small performance hit.
There are now several different Tube ULA implementations, some open,
some closed, some software (e.g. BeebEm) and some firmware.
I agree that a full reverse engineer of the Tube ULA would be useful to
have, but I suspect that, if people were willing to share the
information, then there is enough experience in the BBC Micro community
of how it works from an external perspective for it not to be essential.
More information about the bbc-micro