[BBC-Micro] Reversing the Tube ULA (destructively)

Michael Firth 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.
> Mark.
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 mailing list