Jump to content

Sinclair ZX Spectrum Memory Timing

From RetroTechCollection
Ferranti Archives SPEC-FER-REP-050 detail, RAS, A0 and CAS Polaroids of a 6C001-6 cold, hot and with 150 pF on CAS
Ferranti's photographs of RAS (top), A0 and CAS on an Issue 2 board with a 6C001-6 ULA that "fails cold": below 0 °C, at about 70 °C, and with 150 pF added on CAS (10 August 1983)[1]

Sinclair ZX Spectrum memory timing is the timing between the Sinclair ZX Spectrum ULA, the Z80A and the dynamic RAM of the 16K and 48K Sinclair ZX Spectrum. The lower 16K of RAM is shared between the ULA, which reads the display from it, and the processor, so the ULA's RAS and CAS strobes, the address multiplexers and the RAM's own limits all have to fit together. Ferranti's files of 1981 to 1984, released as the Ferranti Archives 2026, record how that fit was designed, how it went wrong in production at Timex in Dundee in 1983, and what was changed on the ULA and on the boards. Sinclair's service manual records the board side of the same changes.[2][3]

These are period factory documents about manufacturing problems. They explain faults a repairer may meet and parts that may be found on a board, but they do not mean that every Spectrum has these faults. A memory fault on a Spectrum today still calls for the RAM to be checked first; see the last section.

How the memory is arranged

[edit | edit source]

Sinclair's service manual describes the arrangement:[2]

  • Lower 16K (addresses 4000 to 7FFF): eight 16K by 1 dynamic RAMs, IC6 to IC13, type 4116 at 150 ns, organised as 128 rows by 128 columns. The ULA drives RAS, CAS, the write enable and its own seven address lines directly. The CPU's addresses reach the RAM through the 74LS157 multiplexers IC3 and IC4 and the series resistors R17 to R23, so that where both drive the address lines the ULA wins; R1 to R8 do the same on the data bus. The multiplexers select the low address bits as the row address while the ULA's RAS output is high, and switch to the high bits when RAS goes low. When the CPU wants this RAM while the ULA is fetching the display, the ULA stops the CPU clock.
  • Upper 32K (8000 to FFFF, 48K models only): eight parts sold as 32K by 1 (TI 4532 or OKI MSM3732), which are 64K devices with one half not working; links select the maker and the working half. They have their own multiplexers (IC25, IC26) and their RAS, CAS and write timing comes from IC23 (74LS32) and IC24 (74LS00) with two RC delays.
  • Refresh: the Z80's built-in refresh "only applies to the optional 32k expansion RAM". The lower 16K is refreshed "during normal read cycles": most rows each time the ULA reads the display, the rest by other reads that occur regularly.

From the Issue 5 board, and on Issue 6A, a single chip (IC27) replaces the TTL multiplexers and the upper-RAM timing logic; Sinclair's supplement calls it the "Mullard ZX 84/01" and Timex's drawing calls it the ZX8401.[4][5]

The ULA's display fetch

[edit | edit source]

The fetch was already drawn on the timing sheet "ZX81C-2" of 10 November 1981: one RAS, then two CAS cycles in page mode, the first reading the bitmap byte into a latch (DLATCH) and the second the attribute byte (ALATCH). Read from the sheet, the design called for RAS low for at least 200 ns, each CAS low for at least 150 ns with at least 65 ns between them, and RAS precharge of at least 80 ns, with "typically 75pF loading on RAS, CAS" and 35 pF on the address lines.[6] The 5C102 timing diagrams of January 1982 show two such RAS cycles in every 16-pixel window, with a shift-register load (SLOAD) for each eight pixels.[7] Outside the display the ULA's address and RAS outputs go to high impedance; the November 1981 design sheet notes "This allows refresh during non-active portion of frame".[8]

Two undated Ferranti sheets set the fetch against the RAM's limits. One is a hand-lettered "Typical system timing (internal memory request)" diagram with a printed dynamic RAM table pasted beneath it; the other is a page of pencil notes on the 4116 and the 74LS157:[9][10]

Dynamic RAM limits on Ferranti's timing sheets
Parameter Value on the sheet Sheet
tRCD, RAS to CAS delay 20 ns min, 50 ns max SPEC-FER-SCH-051
tCAC, CAS to data valid 100 ns SPEC-FER-SCH-051
tASR, row address set-up to RAS 0 ns min SPEC-FER-SCH-051
tASC, column address set-up to CAS −10 ns min SPEC-FER-SCH-051
tRAH, row address hold from RAS 20 ns min (20 ns for the NEC 4116 in the pencil notes) Both
tCAH, column address hold from CAS 45 ns min SPEC-FER-SCH-051
tCP, CAS precharge in page mode 60 ns min SPEC-FER-SCH-051
tRP, RAS precharge 100 ns min SPEC-FER-SCH-051
Page-mode cycle drawn for the 4116 (150 ns) RAS low 450 ns; each CAS low 200 ns; CAS high 70 to 90 ns between; RAS to CAS 40 to 42 ns SPEC-FER-NOT-052
74LS157 select to output National 16 ns typical, 23 ns max (low to high), 15 ns typical, 27 ns max (high to low); Signetics 23 and 27 ns max; Texas Instruments 74S157 8 ns and 74ALS157 6.5 ns SPEC-FER-NOT-052

The multiplexer's select-to-output delay matters because the 74LS157s switch from row to column address when RAS falls, and the RAM needs the row address held for at least 20 ns after RAS. The pencil notes compare the makers' figures for exactly this.[10][2]

R57 and the refresh problem of early 1983

[edit | edit source]

Where R57 is

[edit | edit source]

On Sinclair's Issue Two circuit diagram of 16 August 1982, R57 runs from the Z80's RFSH output (pin 28) to the RAS line of the lower RAM at IC6 pin 4 (read from the drawing).[11] Ferranti's memo of early 1983 draws the same arrangement: the ULA's RAS output (pin 35) goes directly to the 4116s and through R32 (100 Ω) to the two 74LS157s, and the Z80's RFSH reaches the RAM RAS line through R57, drawn as 300 Ω.[12] ITT's drawing gives 330 Ω, with 470 pF to ground on the RFSH side.[13] The idea, as Ferranti understood it, was that during each Z80 refresh cycle the ULA lets its RAS output float and RFSH pulls RAS low through R57, so that the Z80's refresh address is strobed into the RAMs.[12]

Sinclair's service manual settles which boards have it. Its parts list gives R57 as 330R on Issue 2 and not fitted on Issue 3, and the supplement lists it as "not used" on Issues 4A, 4B, 5 and 6A.[14][4] Its list of Issue 1 modifications says that where the RAMs are of National manufacture, "R57 (330R) must be removed", with other changes.[3] Timex's Issue 3 drawing of June 1983 has no resistor at that point on the RAS line (read from the drawing).[15] So R57 belongs to Issue 1 and Issue 2 boards, and on those it may have been removed in the factory.

The same Issue 1 modification list has two related parts: a 100 pF capacitor from RAS to ground, "necessary only when using ULA 5C102", and a 470 pF capacitor from Z80 pin 28 to ground, "required only when IC2 and RAM ICs are all of NEC manufacture".[3] The parts list also gives C54 as 470 pF on Issue 2 boards only, without saying where it sits.[16] An undated Ferranti note records one board's state as "R57 in / C54 out", "100pF RAS out" and "Clock mod in": boards of the time were seen in different combinations.[17]

What went wrong

[edit | edit source]

In January 1983 Spectrums at Timex were corrupting memory. ITT, then supplying 4116 RAMs, described the problem in a memo of 27 January 1983: "When program executes, the memory is corrupted giving spurious characters on the screen and leading to program crash." ITT found every signal at the RAMs fairly clean except RAS, which rose only to about 3.5 V where the other clocks reached 4 to 4.5 V, and had a poor edge. Because the RFSH pulse is much wider than the intended RAS pulse, the RFSH line pulled RAS down earlier than intended, and ITT thought the poor edge was mis-clocking the row address. It listed six possible fixes:[13]

ITT's six candidate fixes, 27 January 1983[13]
No. Fix ITT's comment, and Ferranti's marks on its copy
1 A TTL gate on the ULA's RAS output Gave the drive needed, but ITT had not known that the ULA's output goes to high impedance, so RFSH no longer worked
2 Remove R57 "It is not known whether some RAM row addresses are refreshed with this resistor removal"
3 An emitter-follower buffer on the ULA's RAS output A trade-off in the emitter resistor, which must be much more than 330 Ω for RFSH to hold RAS high. Ferranti marked it with a question mark and a cross
4 A gate buffering RAS just before the RAM inputs, allowing a larger resistor in place of R57 (drawn as 680 Ω) Ferranti wrote "extra delay" against the gate
5 Gate MREQ with RFSH in a 7432 (drawn with 470 Ω gating and 82 Ω into the RAM RAS), using the other gates to buffer RAS and add about 30 ns A buffer is needed: "a buffer before the RAS inputs to the 4116 is essential to clean up the waveform"
6 Delay MREQ into the ULA with 470 Ω in series and 22 pF to ground ITT thought this would let the system work although RAS would still have a poor edge. Ferranti put a question mark by it

Ferranti's report of a meeting at Timex on 2 February 1983 adds that ITT would guarantee its RAMs only to the 2 ms maximum refresh time, not to the 8 ms that results with R57 removed ("the same for all other suppliers incidentally"), and that Timex hoped fix six, the simplest, would "do the trick". The ITT engineer "fully supports our feeling that it is a system design fault and not a ULA reliability problem", suggested that batch variation in the Z80's RFSH could be part of it, and looked surprised to hear that ULAs which failed in one board worked in another.[13] On 11 February 1983 Sinclair, Timex and Ferranti met; the agenda notes 48 Spectrum 5C112 rejects at Dundee.[18] The documents do not show whether any of ITT's six fixes went into production.

Ferranti's tests

[edit | edit source]

The 48 rejects were 5C112-2 ULAs with the date code 8301, out of a sample of 135 taken at Timex's incoming inspection. Ferranti's tests on a Spectrum board and on its Membrain tester failed five of them outright. Of the other 43, five more failed only with R57 fitted. Timex said it had tested the batch with R57 removed. Ferranti then ran all 43 again on an Issue 2 board with R57 out, each loading and running a program for at least five minutes: one had a dead Symbol Shift, one crashed once and not again, one had a noisy speaker and one poor colours, and the rest worked.[12] The bench notes of 22 February 1983 log the soak test (games such as "Invaders", "Horace" and "Kong", 5 to 25 minutes per chip) and a list of nine chips that failed with R57 fitted:[19]

5C112-2 returns with and without R57 (Ferranti notes, 22 February 1983)[19]
Chip With R57 fitted With R57 removed
1 Won't load, garbage on screen when loading OK
2 Won't load, garbage on screen when loading OK
3 Garbage at switch-on OK
4 Garbage at switch-on Washed-out colours
5 Program crash Program crash
6 Garbage at switch-on Loaded garbage
7 Won't load "GOSOL" (as written; not explained)
8 Garbage at switch-on "GOSOSO" (as written; not explained)
9 "GOSOSO" (as written) OK

The notes sum up "28 tested, 9 failed (48 total rec[eived])", tested with Timex's program on an Issue 2 board. Ferranti's memo on the same returns explains what it found:[19][12]

  • With R57 fitted, the Z80's RFSH goes low before the ULA's RAS output goes to high impedance, so RAS falls with a step; the Z80 drives about 100 pF of RAM input through R57, so the edges are slow; and during some refresh sequences the ULA holds RAS high instead of floating it, so the line sits at about 2.5 V. The 4116's minimum high input level on RAS is 2.7 V.
  • With a variable resistor in place of R57, every sampled 5C112-2 return failed when the RAS high level was pulled down to 2.3 to 2.5 V (just under 300 Ω). Three older 5C112-1 chips, date code 8234, worked with it below 2.0 V.
  • The returns' on-chip resistors were high: an equivalent input resistance averaging 20.6 kΩ, against 16.5 kΩ on the 5C112-1s and a nominal 16K ±30 per cent (20.8 kΩ maximum). That means weaker drive.
  • With R57 disconnected, a diode clamp on RAS showed the RAMs actually worked down to about 2.0 V, the same with either batch, so the low level alone did not explain the failures.
  • The memo's "highly probable" cause, not proven, was RAS precharge. At the end of an op-code fetch RAS rises slowly towards 2.5 V and is driven low again almost at once; the 4116-15 needs 100 ns of RAS precharge at 2.7 V, and with the 5C112-2s the pulse at the 2.0 V level was barely 100 ns wide.
  • On the multiplexed address lines (the 74LS157 path) the 5C112-2s gave high levels below 2.3 V, against the RAM's 2.4 V minimum. The memo also notes reports that "some ULA's will function with RAM's from one manufacturer but not another".

Sinclair's recommendation was to leave R57 out. The RAMs are then refreshed only by the ULA's display reads, every 8 ms by the memo's account, which it calls well outside the specification, adding that "the memory suppliers are obviously unhappy about this situation". Samples of 6C material, with a 100 Ω totem-pole pull-up against 200 Ω on the 5C, gave much cleaner RAS; whether the 6C001 would stay in specification "needs to be investigated - by FERRANTI or SINCLAIR?". The memo ends by asking for a directive on whether R57 should be in or out on Ferranti's own TV test boxes, which were a mixture.[12]

Timex's timing budget for the upper 32K (May 1983)

[edit | edit source]

With its letter of 24 May 1983 Timex sent Ferranti a RAS and CAS timing chain for the upper 32K RAM (4532 type), as figure C:[20]

  • MREQ to RAS: one gate, 3 to 15 ns.
  • RAS to the switch-over of the 74LS157 select (S2 in the figure): an RC delay (RC1) plus 3 to 15 ns. The 4532 needs at least 25 ns here.
  • S2 to a valid column address: 16 to 27 ns for the 74LS157; the column address must be valid before CAS.
  • S2 to CAS: a second RC delay (RC2) plus 3 to 15 ns. RAS to CAS must be 30 to 90 ns by the 4532 specification.
  • CAS to data valid: 110 ns maximum for the -200 part, 160 ns for the -250. The Z80 allows 520 ns from MREQ to valid data.

Timex worked out that RC1 must be at least 22 ns and RC2 at least 24 ns, with the two together under 60 ns, and chose RC1 of 29 ns and RC2 of 31 ns at most.[20] The boards carry two such RC networks in the upper-RAM logic: R70 (220R) with C64 (100 pF) and R71 (220R) with C63 (47 pF) on Timex's Issue 3 drawing, and the same values on Sinclair's plug-in 32K board.[15][21]

The 32K memory board

[edit | edit source]

Sinclair's manual says that on the Issue 1 board the 32K extension was a subsidiary board plugged into special DIL connectors, with TI 4532-3 or 4532-4 RAMs, all of one type; from Issue 2 the extra RAM went on the main board, with a link giving 0 V to select the -3 parts and +5 V for the -4.[3][2] Ferranti's file holds full-size layout sketches, a connection list, photocopies of a real board and a pencil circuit of the plug-in board, marked "RAM 32 Issue 1" and © 1982:[21]

  • eight TMS4532-20NL4 RAMs, two 74LS157 multiplexers, a 74LS32 and a 74LS00, 0.047 µF decoupling per RAM, and RC delays of 220R with 100 pF and 220R with 47 pF;
  • two 16-way sockets carrying A0 to A15, D0 to D7, MREQ, RD, WR, +5 V and 0 V only, with no ULA signals and no +12 V or −5 V;
  • one multiplexer input tied to +5 V, paired with A10.

The layout sketches are on Ferranti Wythenshawe sketch forms; the file does not say why Ferranti drew the board.[21]

Cold and warm failures and the mark 7 ULA (1983)

[edit | edit source]

The later 1983 documents concern the timing of RAS, the address lines and CAS on 6C001 ULAs. An undated set of Ferranti Polaroids compares RAS and CAS on 6C001-5 ULAs with a 5C112-3: one 6C001-5 is labelled "crashes cold", another "memory fail when warm".[22] On 10 August 1983 Ferranti photographed RAS, A0 and CAS on 6C001-6 samples from material marked "Low R (3.8K)", in Issue 2 and Issue 3 boards. Sample 4 "fails cold", and its traces were recorded at a case temperature at or below 0 °C, at about 70 °C, and with 150 pF added on CAS. The documents do not explain the "Low R" label.[1][23]

Ferranti Archives SPEC-FER-SCH-018 detail, gates added on the 6C001 mark 7 for ADSEL and CAS
The 6C001 logic diagram, issue 3, marked up for the mark 7: two inverters added in the address-select line and four in the CAS line[24]

Six weeks later, on 23 September 1983, Ferranti asked Sinclair to confirm two changes to the 6C001: four inverters in the N.CAS line, adding typically 22 ns at 25 °C, and two in ADSEL, the line that switches the ULA's own address outputs from row to column address,[8] adding typically 11 ns; worst case, the delays could be 1.7 times those figures. Sinclair agreed on 29 September 1983.[25] Issue 2 of the logic diagram (14 February 1983) already has an "EXTRA DELAY" box pencilled into ADSEL, and issue 3 (10 October 1983) has the gates drawn in, marked on one print "added on MK7".[26][24] The documents do not state the reasoning in words, but the sequence is fast Mark 6 parts failing cold in August and delay added to CAS and address select in September. The NTSC 6C011 was brought to the same timing in 1984.[25][27]

The boards changed too. From Issue 4A, Sinclair's supplement says, R32 was deleted and "two spare gates from IC24 have been used to improve ULA timing", in series between the ULA's RAS output and the display RAM multiplexers, and "it is important that ULA 6C001-7 or later issues" are used.[4] On Issue 5 an inverter chip, IC28, "is used in the decoupling of the RAS/CAS function".[4]

Issue 6A and the ZX8401 gate array (1984)

[edit | edit source]

Sinclair's specification for the ZX8401, revision 3 of April 1984, describes a 40-pin chip that "performs the functions of display address multiplexer, 32k dRAM address multiplexer and 32k dRAM timing generator for the ZX Spectrum personal computer".[28] Timex's Issue 6A drawing of 25 September 1984 ("Ferranti version") shows it as IC27 in place of the 74LS157s, with a 74LS04 (IC28) whose inverters sit in pairs in the timing lines between link points marked C in, C out, R in and R out, and a 180 pF capacitor (C105) on the ZX8401's CAS output.[5]

ZX8401 pin-out (Sinclair specification, revision 3)[28]
Pin Signal Pin Signal Pin Signal Pin Signal
1 DRASL 11 A3 21 A6 31 MA2
2 A0 12 A10 22 A13 32 MA1
3 A7 13 DMA3 23 DMA6 33 MA0
4 DMA0 14 A4 24 TS1 34 CASL
5 A1 15 A11 25 TS2 35 MREQDL
6 A8 16 DMA4 26 MA7 36 MREQL
7 DMA1 17 A5 27 MA6 37 A15
8 A2 18 A12 28 MA5 38 RDL
9 A9 19 DMA5 29 MA4 39 WRL
10 DMA2 20 VSS (0 V) 30 MA3 40 VDD (+5 V)

DMA0 to DMA6 are the multiplexed addresses for the lower 16K, which reach the RAM through series resistors with the Ferranti ULA on the other side; MA0 to MA7 address the upper 32K; TS1 and TS2 select the RAM type; CASL is the upper RAM's CAS. The specification asks for VDD of 5 V ±5% and 0 to 70 °C, and gives these timings among others:[28]

  • address change to multiplexed address change, 50 ns maximum; MREQL to multiplexed address, 80 ns maximum; WRL, RDL or A15 to CASL, 120 ns maximum;
  • multiplexed address change to CASL low, 5 ns minimum and 35 ns maximum;
  • TCAR 60 ns maximum and TRAH 20 ns minimum, with the series resistor RC 330 Ω ±5%, RP 680 Ω ±5% and the load CL between 25 and 60 pF; "An optional external delay using LS04 inverters and an R-C network may be used to help achieve the minimum timing spec";
  • a load on CASL of 25 to 100 pF, always more than on any MA line. Beside this line on the archive copy someone has written "180pF in circuit".

The specification's series resistor is 330 Ω; Sinclair's parts list and Timex's Issue 6A drawing give R17 to R23 as 470R on the Issue 5 and 6A boards.[28][4][5]

Ferranti's study of three gate arrays (November 1984)

[edit | edit source]

In November 1984 Ferranti examined three Issue 6A boards, each with a new gate array from a different maker, against an Issue 3 board with TTL multiplexers. The memo describes the gate array as replacing IC3, IC4 and IC23 to IC26 to generate the row and column addresses for both RAMs, which is the job of the ZX8401. The same 6C001 Mk 7 ULA was used on every board, and RAS, A0 and CAS were photographed on each.[29][30]

Issue 6A gate arrays compared with TTL (Ferranti memo, 7 November 1984)[29]
Board Gate array marking Result
A Issue 3, TTL logic Reference
B Texas Instruments CF70001 Virtually identical to the TTL logic
C Signetics PCF1306P About 20 ns slower
D "fela", attributed in the memo to "Norsem?" Over 30 ns slower. Worked with the ULA used for the tests, but failed with other Mk 7 ULAs about 10 ns faster

The memo's findings:[29]

  • The critical figure appeared to be the column address set-up time to CAS, tsu(CA). Sinclair had specified 5 ns minimum; Texas Instruments specifies −5 ns minimum for its 4164.
  • The positive-going edge on A0 about 50 ns after RAS falls comes from the ULA and is the same on every board; the other transitions come from the gate array.
  • All three 6A boards had the 74LS04's two-gate delay linked into the address-select line, which makes tsu(CA) worse; the links could put it in the address-select or the CAS line. Removing it gained about 10 ns on the "fela" board, which the author still thought could give problems.
  • The 32K RAM's address timing "looked quite poor on all boards, but especially so on the NORSEM one", and a 180 pF capacitor hung on its CAS line, presumably to add delay, was "poor design practise".
  • Only one sample of each was examined, and only at room temperature, so the results are only an approximate guide.

Sinclair's supplement names the Issue 5 and 6A chip as the "Mullard ZX 84/01".[4] So a 6A board may carry any of several makes of IC27, and in Ferranti's tests they did not have the same timing.

What this means when repairing a Spectrum

[edit | edit source]

The archive does not change the usual order of work on a Spectrum with memory faults. It adds reasons why a board can misbehave with parts that each test good.

  • Check the RAM first. Sinclair's own procedure for a machine that does not initialise changes the lower RAMs from IC13 down to IC6 before the ULA and then the Z80.[31] See Sinclair ZX Spectrum Troubleshooting Guide.
  • Then consider timing. If the RAM tests good and faults remain, especially garbage on the screen, crashes or failure to load, the ULA-to-RAM timing is a candidate. Those were the symptoms recorded on the 1983 rejects.[19][13]
  • Note whether the fault depends on temperature. Ferranti's 1983 notes record ULAs that crashed only cold and others with memory failures only when warm, and photographed timing below 0 °C and at about 70 °C.[22][1] Sinclair's supplement says to test "at elevated temperature to show up faults" in picture quality and RAM, and the Thorn EMI servicing manual's repair data blames the heatsink and then the ULA for faults that appear only when warm.[32][33]
  • Expect mixed makes to interact. The documents record ULAs that worked with one RAM maker's chips and not another's, board modifications that depend on the RAM and Z80 maker, ULAs that failed in one board and worked in another, and Issue 6A gate arrays whose timing differed by over 30 ns.[12][3][13][29] A replacement ULA, RAM or IC27 of a different make or mark can therefore cure or cause a fault. Fit the mark the board was built for where possible; from Issue 4A that means 6C001-7 or later.[4]
  • Measure what Ferranti measured. It compared RAS, A0 and CAS on three channels at 10 ns per division. On Issue 6A boards the A0 edge about 50 ns after RAS falls comes from the ULA and can be ignored.[1][29] On Issue 1 and 2 boards look at the RAS high level and edges during refresh as well.[12]

Parts a repairer may find on early boards, and what the documents say about them:

Factory modifications and possible bodges around the memory timing
Part Boards What the documents say
R57, 330R from Z80 RFSH (pin 28) to the lower RAM's RAS Issue 1 and Issue 2 Fitted on Issue 2 in Sinclair's parts list, not fitted from Issue 3. Removed on Issue 1 boards with National RAMs, and Sinclair recommended leaving it out in early 1983. Its absence from an early board can be a factory decision[14][3][12]
100 pF from RAS to ground Issue 1 "Necessary only when using ULA 5C102"[3]
470 pF from Z80 pin 28 to ground Issue 1 "Required only when IC2 and RAM ICs are all of NEC manufacture"; not required where R57 is removed for National RAMs[3]
C54, 470 pF Issue 2 only Position not given in the manual; Sinclair's fault list says "Random dynamic squares: change C54"[16]
74LS00 on a small board wired to Z80 pins 4, 5 and 20 and ULA pins 36 and 37 Issue 1 and early Issue 2 with the 5C102 Factory "spider" modification for the 5C102's timing fault, about 40,000 units[3][34]
Transistor (TR6) or diode and resistor from Z80 A0 to ULA IORQ (pin 33) Issue 2 with the 5C112; TR6 is on the layout from Issue 3 Factory modification for the 5C112[3]
A TTL buffer on RAS, 470 Ω and 22 pF on MREQ into the ULA, or a 7432 gating MREQ with RFSH Early boards, if anywhere ITT's candidate fixes of January 1983. The documents do not show that any was used in production[13]
Two gates of IC24 in series with the ULA's RAS output; R32 deleted Issue 4A onwards Factory change; needs a 6C001-7 or later[4]
74LS04 (IC28) with link points C in, C out, R in and R out Issue 6A Puts a two-gate delay in the address-select or CAS line. In Ferranti's November 1984 study all three boards had it in the address-select line, which made the set-up time worse[5][29]
180 pF (C105) on the ZX8401's CAS output Issue 6A Outside the 25 to 100 pF in the ZX8401 specification; Ferranti called it "poor design practise"[5][28][29]
[edit | edit source]

References

[edit | edit source]
  1. ↑ 1.0 1.1 1.2 1.3 Ferranti record of RAS, A0 and CAS Polaroids of 6C001-6 ULAs on Issue 2 and Issue 3 boards, cold, hot and with 150 pF on CAS, 10 August 1983, Ferranti Archives 2026 (SPEC-FER-REP-050). Source for sample 4 "fails cold", the test temperatures and the 10 ns per division set-up.
  2. ↑ 2.0 2.1 2.2 2.3 ZX Spectrum Service Manual, Sinclair Research Ltd, sections 1.3.5 "Dynamic Memory Refresh", 1.4 "Memory Organisation", 1.5.2 "Standard 16k RAM" and 1.5.3 "32k Expansion RAM", and section 4.5 "32K Extension Memory" (pp. 9–11, 23–24). Hosted as Sinclair ZX Spectrum Service Manual (PDF). Source for the memory map, the multiplexers and series resistors, contention, refresh and the 32K board and links.
  3. ↑ 3.00 3.01 3.02 3.03 3.04 3.05 3.06 3.07 3.08 3.09 ZX Spectrum Service Manual, Sinclair Research Ltd, section 4.1.2 "Modification History" and section 4.2 "Modifications – Issue 1 Board" (pp. 21–22). Hosted as Sinclair ZX Spectrum Service Manual (PDF). Source for R57 removal with National RAMs, the 100 pF and 470 pF capacitors, the 5C102 spider and the 5C112 modifications.
  4. ↑ 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 ZX Spectrum Service Manual, Sinclair Research Ltd, Supplement No. 1, sections 9.5 (Issue 4A), 9.7 (Issue 5), 9.9 (Issue 6A), 9.17 (resistors) and 9.19 (integrated circuits) (pp. 50–55). Hosted as Sinclair ZX Spectrum Service Manual (PDF). Source for the IC24 gates and the 6C001-7 requirement, IC27 and IC28, R57 "not used" and R17 to R23 on Issues 4A to 6A.
  5. ↑ 5.0 5.1 5.2 5.3 5.4 Timex Corporation (Dundee) "ZX Spectrum Circuit Diag. Issue 6A", Ferranti version, drawing 356-280106-01, 25 September 1984, Ferranti Archives 2026 (SPEC-TMX-SCH-069). Source for IC27 ZX8401, IC28 74LS04 and its link points, C105 180 pF and R17 to R23 470R.
  6. ↑ Timing sheet "ZX81C-2", video cycle, CPU memory cycle and CPU clock skew, 10 November 1981, Ferranti Archives 2026 (SPEC-FER-SCH-073). Source for the page-mode fetch, the minimum RAS and CAS times read from the sheet, and the loading figures.
  7. ↑ 5C102 timing diagram sheet 1, display memory fetch, probably 4 January 1982, Ferranti Archives 2026 (SPEC-FER-NOT-077). Source for two RAS cycles of two CAS each in every 16-pixel window.
  8. ↑ 8.0 8.1 Hand-lettered logic design "SRL81C-1", 6 November 1981, Ferranti Archives 2026 (SPEC-UNK-SCH-070). Source for the high-impedance RAS and address outputs outside the display.
  9. ↑ "Typical system timing (internal memory request)", hand-lettered diagram with a printed dynamic RAM timing table, undated, Ferranti Archives 2026 (SPEC-FER-SCH-051). Source for the RAM AC limits in the table.
  10. ↑ 10.0 10.1 Ferranti pencil notes on 4116 (150 ns) page-mode timing and 74LS157 delays, undated, Ferranti Archives 2026 (SPEC-FER-NOT-052). Source for the page-mode cycle figures, tRAH for the NEC 4116 and the makers' 74LS157 delays.
  11. ↑ Sinclair Research "ZX Spectrum Circuit Diagram – Issue Two", SRC 102, 16 August 1982, Ferranti Archives 2026 (SPEC-SIN-SCH-071). Source for R57 between Z80 pin 28 (RFSH) and the RAS line at IC6 pin 4, traced on the drawing.
  12. ↑ 12.0 12.1 12.2 12.3 12.4 12.5 12.6 12.7 Ferranti memo "Timex 5C112-2 returns (date coded 8301)", about February 1983, with Polaroids, Ferranti Archives 2026 (SPEC-FER-MEM-058). Source for the R57 drawing, the 2.5 V RAS level against the 4116's 2.7 V minimum, the precharge analysis, the resistor measurements, Sinclair's recommendation and the 8 ms refresh.
  13. ↑ 13.0 13.1 13.2 13.3 13.4 13.5 13.6 Ferranti customer report on a call at Timex, 2 February 1983, with the ITT Semiconductors memo of 27 January 1983 attached, Ferranti Archives 2026 (SPEC-FER-REP-059). Source for the memory corruption symptom, the RAS measurements, ITT's six fixes, the 2 ms guarantee and the "system design fault" view.
  14. ↑ 14.0 14.1 ZX Spectrum Service Manual, Sinclair Research Ltd, section 8.11 "Resistors" (p. 45): R57 330R on Issue 2 and not fitted on Issue 3. Hosted as Sinclair ZX Spectrum Service Manual (PDF).
  15. ↑ 15.0 15.1 Timex Corporation (Dundee) "ZX Spectrum Circuit Diag. Issue 3", drawing 356-201891-02, 10 June 1983, Ferranti Archives 2026 (SPEC-TMX-SCH-074). Source for the RAS line at IC6 with no R57, and R70, C64, R71 and C63.
  16. ↑ 16.0 16.1 ZX Spectrum Service Manual, Sinclair Research Ltd, section 6.4.5 "Random dynamic squares" (p. 32) and section 8.5 "Capacitors" (p. 43): C54 470 pF on Issue 2, not fitted on Issue 3. Hosted as Sinclair ZX Spectrum Service Manual (PDF).
  17. ↑ Ferranti handwritten note on a Spectrum board's modifications, undated, Ferranti Archives 2026 (SPEC-FER-NOT-062). Source for "R57 in / C54 out", "100pF RAS out" and "Clock mod in".
  18. ↑ Agenda for the Sinclair, Timex and Ferranti meeting of 11 February 1983, Ferranti Archives 2026 (SPEC-UNK-AGN-061). Source for the 48 Spectrum 5C112 rejects at Dundee.
  19. ↑ 19.0 19.1 19.2 19.3 Ferranti test notes on 5C112-2 ULAs returned by Timex, run with and without R57, 22 February 1983, Ferranti Archives 2026 (SPEC-FER-NOT-057). Source for the soak test and the R57 in and out table.
  20. ↑ 20.0 20.1 Timex Corporation (Dundee) letter to Ferranti, "ZX Spectrum ULA modification", 24 May 1983, figure C, Ferranti Archives 2026 (SPEC-TMX-LET-049). Source for the upper 32K timing chain and the RC1 and RC2 values.
  21. ↑ 21.0 21.1 21.2 Sinclair "RAM 32 Issue 1" 32K memory board: Ferranti layout sketches, connection list, board photocopies and pencil circuit, Ferranti Archives 2026 (SPEC-FER-DRW-072). Source for the plug-in board's parts, sockets and RC delays.
  22. ↑ 22.0 22.1 Ferranti envelope and Polaroids comparing RAS and CAS timing of 6C001-5 and 5C112-3 ULAs, undated, Ferranti Archives 2026 (SPEC-FER-POL-065). Source for "crashes cold" and "memory fail when warm".
  23. ↑ Ferranti envelope and Polaroids of 6C001-6 "Low R" ULAs on Issue 2 and Issue 3 boards, 10 August 1983, Ferranti Archives 2026 (SPEC-FER-POL-066).
  24. ↑ 24.0 24.1 Ferranti logic diagram LD6790/ULA6C001/1, issue 3, 10 October 1983, marked up in red for the mark 7, Ferranti Archives 2026 (SPEC-FER-SCH-018). Source for the gates added on the mark 7.
  25. ↑ 25.0 25.1 Ferranti lineage chart, Ferranti telex of 23 September 1983, Sinclair telex of 29 September 1983 and Ferranti memo of 22 May 1984, Ferranti Archives 2026 (SPEC-FER-FAX-MEM-048). Source for the mark 7 delays and the 6C011 timing order.
  26. ↑ Ferranti logic diagram LD6790/ULA6C001/1, issue 2, 14 February 1983, Ferranti Archives 2026 (SPEC-FER-FOL-020). Source for the pencilled "extra delay" in ADSEL.
  27. ↑ Ferranti comparison of 6C011 Mk 4 and Mk 3 ULAs, 31 July 1984, Ferranti Archives 2026 (SPEC-FER-MEM-047). Source for the Mk 4 delays being similar to the 6C001 Mk 7.
  28. ↑ 28.0 28.1 28.2 28.3 28.4 "Specification of the Sinclair ZX8401 integrated circuit", revision 3, April 1984 (received 4 May 1984), Ferranti Archives 2026 (SPEC-SIN-DAT-046). Source for the ZX8401's function, pin-out, supply, timings, loads and the handwritten "180pF in circuit".
  29. ↑ 29.0 29.1 29.2 29.3 29.4 29.5 29.6 Ferranti memo "Spectum Iss.6A memory timing", 7 November 1984, Ferranti Archives 2026 (SPEC-FER-MEM-044). Source for the gate-array comparison, tsu(CA), the 74LS04 links and the 180 pF on the 32K CAS line.
  30. ↑ Ferranti Polaroids of RAS, A0 and CAS on Issue 3 and Issue 6A boards with Texas, Signetics and "fela" gate arrays, November 1984, Ferranti Archives 2026 (SPEC-FER-POL-045).
  31. ↑ ZX Spectrum Service Manual, Sinclair Research Ltd, section 5.3 "Initialization" (pp. 26–27): the order of IC changes, IC13 to IC6, then IC1 and IC2. Hosted as Sinclair ZX Spectrum Service Manual (PDF).
  32. ↑ ZX Spectrum Service Manual, Sinclair Research Ltd, Supplement No. 1, section 9.10 "Fault Finding – Servicing Addenda" (p. 51). Hosted as Sinclair ZX Spectrum Service Manual (PDF).
  33. ↑ ZX Spectrum Servicing Manual, prepared by Thorn (EMI) Datatech Ltd for Sinclair Research Ltd, March 1984, T.I.S. "Repair Data" symptom 8, "Various faults which appear only when warm". Hosted as ZX Spectrum Servicing Manual (Thorn EMI Datatech, 1984) (PDF). The T.I.S. section is third-party field-service material.
  34. ↑ Pen sketch of a 74LS00 patch gating A14 and A15 with IORQ for the 5C102 ULA, undated, Ferranti Archives 2026 (SPEC-FER-SCH-075). Source for the patch wiring to Z80 pins 4, 5 and 20 and ULA pins 36 and 37.