Anonymous

ZX Spectrum ULA: Difference between revisions

From Sinclair Wiki
Add ULA pinouts
m (Proper name of Spectrum 128)
(Add ULA pinouts)
Line 86: Line 86:
== 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.
== Pinouts ==
=== 5C and 6C ULAs ===
<div style="font-family:'Lucida Console', monospace">
{|
| style="text-align:right;" |
{{overline|CAS}}<br>
{{overline|WR}}<br>
{{overline|RD}}<br>
{{overline|WE}}<br>
A<sub>0</sub><br>
A<sub>1</sub><br>
A<sub>2</sub><br>
A<sub>3</sub><br>
A<sub>4</sub><br>
A<sub>5</sub><br>
A<sub>6</sub><br>
{{overline|INT}} 12<br>
(+5V) V<sub>CC-Logic</sub><br>
(+5V) V<sub>CC-IO</sub><br>
U<br>
V<br>
{{overline|Y}}<br>
D<sub>0</sub><br>
KB<sub>0</sub><br>
KB<sub>1</sub>
| style="border: 1px solid black" |
1&nbsp;°&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;40<br>
2&nbsp;°&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;39<br>
3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;38<br>
4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;37<br>
5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;36<br>
6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;35<br>
7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;34<br>
8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;33<br>
9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;32<br>
10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;31<br>
11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;30<br>
12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;29<br>
13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;28<br>
14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;27<br>
15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;26<br>
16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;25<br>
17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;24<br>
18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;23<br>
19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;22<br>
20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;21
||
GND (0V)<br>
OSC<br>
{{overline|MREQ}}<br>
A<sub>15</sub><br>
A<sub>14</sub><br>
{{overline|RAS}}<br>
{{overline|ROMCS}}<br>
{{overline|IOREQ}}<br>
CLOCK<br>
D<sub>7</sub><br>
D<sub>6</sub><br>
D<sub>5</sub><br>
SOUND<br>
D<sub>4</sub><br>
KB<sub>4</sub><br>
D<sub>3</sub><br>
KB<sub>3</sub><br>
KB<sub>2</sub><br>
D<sub>2</sub><br>
D<sub>1</sub>
|}
</div>
=== 7C ULA ===
<div style="font-family:'Lucida Console', monospace">
{|
| style="text-align:right;" |
17M<br>
{{overline|CAS}}<br>
C<br>
DMA<sub>0</sub><br>
DMA<sub>1</sub><br>
DMA<sub>2</sub><br>
DMA<sub>3</sub><br>
DMA<sub>4</sub><br>
DMA<sub>5</sub><br>
DMA<sub>6</sub><br>
DMA<sub>7</sub><br>
VB<br>
(+5V) V<sub>CC-Logic</sub><br>
(+5V) V<sub>CC-IO</sub><br>
{{overline|RD}}<br>
{{overline|WR}}<br>
{{overline|INT}}<br>
{{overline|DRAMWE}}<br>
B<br>
G<br>
R<br>
BRIGHT<br>
SYNC<br>
D<sub>0</sub>
| style="border: 1px solid black" |
1&nbsp;°&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;48<br>
2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;47<br>
3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;46<br>
4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;45<br>
5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;44<br>
6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;43<br>
7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;42<br>
8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;41<br>
9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;40<br>
10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;39<br>
11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;38<br>
12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;37<br>
13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;36<br>
14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;35<br>
15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;34<br>
16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;33<br>
17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;32<br>
18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;31<br>
19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;30<br>
20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;29<br>
21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;28<br>
22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;27<br>
23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;26<br>
24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;25
||
GND (0V)<br>
8.8M<br>
{{overline|8.8M}}<br>
{{overline|MREQ}}<br>
A<sub>15</sub><br>
A<sub>14</sub><br>
{{overline|RAS}}<br>
ROMS<br>
{{overline|IORQ}}<br>
PHICPU<br>
D<sub>7</sub><br>
D<sub>6</sub><br>
D<sub>5</sub><br>
MIC<br>
EAR<br>
D<sub>4</sub><br>
KB<sub>0</sub><br>
D<sub>3</sub><br>
KB<sub>1</sub><br>
KB<sub>2</sub><br>
D<sub>2</sub><br>
D<sub>1</sub><br>
KB<sub>3</sub><br>
KB<sub>4</sub>
|}
</div>