ZX Spectrum ULA: Difference between revisions

Jump to navigation Jump to search
Add AMI SAGA section
(Document the flash attribute timing bug)
(Add AMI SAGA section)
Line 9: Line 9:


The ZX Spectrum +2A/2B, +3/3B machines use an entirely different gate array. See [[The Amstrad ASIC]]
The ZX Spectrum +2A/2B, +3/3B machines use an entirely different gate array. See [[The Amstrad ASIC]]
Sinclair also experimented with an alternative [[#AMI SAGA|AMI SAGA]] chip in a special batch.


== ULA Functions ==
== ULA Functions ==
Line 79: Line 81:
== Flash attribute timing bug ==
== Flash attribute timing bug ==
The flash attribute suffers from a timing bug, in that the flash signal is not in sync with the pixel with which it is XORed.  On frames where the flash signal is inactive, this bug is not apparent, but where the flash signal is active, and used within an attribute block, flash will also affect the very right-hand edge of the preceding block, and in attribute blocks where flash is not set, flash will fail to affect the very right-hand edge of the preceding block.  This bug only affects instances where there is a transition in pixel value between one character block and the next, but the flash attribute reverses that transition.  As such, this does not affect the Spectrum's flashing cursor, as its graphic has edges matching the surrounding "paper" and not the ink.  No existing emulator known to implement this display artifact.
The flash attribute suffers from a timing bug, in that the flash signal is not in sync with the pixel with which it is XORed.  On frames where the flash signal is inactive, this bug is not apparent, but where the flash signal is active, and used within an attribute block, flash will also affect the very right-hand edge of the preceding block, and in attribute blocks where flash is not set, flash will fail to affect the very right-hand edge of the preceding block.  This bug only affects instances where there is a transition in pixel value between one character block and the next, but the flash attribute reverses that transition.  As such, this does not affect the Spectrum's flashing cursor, as its graphic has edges matching the surrounding "paper" and not the ink.  No existing emulator known to implement this display artifact.
== AMI SAGA ==
Sinclair produced a special batch of Spectrums with an AMI SAGA instead of the Ferranti ULA.  Only one machine belonging to this batch has been found and confirmed as having a genuine AMI SAGA board.  The board was of Issue 6A, mounted in a Spectrum+ case, with a sticker instructing that the machine should be sent back to Sinclair Research should it require repair, marked for the attention of the QA manager.  The AMI SAGA was found to run at a much lower temperature than the ULA, and does not require the Spectrum's chroma bias circuitry which was absent from the aforementioned board.  The clock signal is clean enough to drive the Z80 directly, without any amplification, as this is also absent from the special batch board.  One other machine has been reported to be found, but no photographs of this machine have yet been released.

Navigation menu