As with most NMOS processors, the NMOS versions of the 6502 (and even earlier CMOS versions) do not have a static core.
Neither is true. Being static or not is not a feature of NMOS vs. CMOS design, but the way individual chips are designed. In case of the NMOS 6502 it's non static nature is due the way line precharge is used to generate constant values used for certain operations. See this answer for more details.
This never applied to CMOS version, as there a precharge can not be used the same way. After all, switching both ways instant, without running much current, is the primary idea here. All CMOS versions feature full fledged constant value generators active during the whole cycle.
Thus, if you run the clock too slowly or stop the clock for too long while doing clock stretching, internal latches will lose their data and the 6502 won't work properly.
It's not about latches, but precharged lines, as the NMOS 6502 design simply spares dedicated latches wherever possible.
For how long could you stop the clock on a 6502 without running into problems?
This depends on internal bus design as well as manufacturing process, its improvement over time - plus a rather wide variety per unit - as the main influence is the quality of the charging resistors (*1).
Basically each data sheets value for clock duration can be used as guideline (*2).
(Taken from the MOS May 1976 data sheet)
For the NMOS 6500 the cycle duration is specified as 1 µs minimum and 10 µs maximum. At first sight this could mean that it can be held for 10 µs (*3). But since the critical stretch is the PHI2 high section (Rising edge to falling of PHI2), and no further qualifier is given for that, it may depend on the signal assumed. While the manual refers multiple times to a symmetric clock, the datasheet doesn't give a direct description it- But all NMOS data sheets define PHI1 high and PHI2 high is of the same Length as PHI0 high, with only a small variation allowed. Together this would allow either interpretation, whereas staying on the safe side means the clock is only within spec if held in either state for a maximum 5 µs (half the cycle time).
And this is were Woz went wrong about timing and Synertek's 40 µs. Here the April 1979 data sheet states:
The sheet doesn't say it can be stopped for 40 µs, but the maximum cycle time to be 40 µs. Like with the MOS manuals Synertek ones assume a symmetric 50/50 duty cycle for the clock. But unlike the MOS data sheet, the Synertek one links PHI1 and PHI2 pulse width directly to PHI0 puls length, thus requiring a symmetric clock. Woz' clock circuit, as used in the Apple II does not hold up to this. Based on these values, the maximum guaranteed duration to stop the clock in either state is 20 µs, not 40 as Woz assumed. There was no reason for Synertek to change the date sheet values, as his application was out of spec.
Next, Rockwell didn't change the data sheet as implied, but the 10 µs are stated already in the very first Rockwell data sheets (although I say this part is more of a misunderstanding how the interview went).
Lastly, the Z80 Softcard does not let the 6502 go for a cycle every few (5-6) cycles, but every M1 cycle, which can be anywhere between four Z80 (two 6502 (*4)) cycles in case of a
NOP or 19 cycles for
EX (SP),HL (*5). The 6502 thus will therefore be stopped at a varying rate between 2 and and 10 cycles.
While this is technically already outside the spec, it makes the Z80 card a great empirical evidence that any NMOS 6502 can be held for 9 µs (*6), as it did work quite well in millions of Apple II or clones.
Lessons to learn here:
- Simple numbers often so not convey the whole information
- Datasheets are called religious documents for a reason
- And like any religious script, interpretation can create schism
- Secondary literature may add to confusion
- Otherwise good books (as well as conclusions from great engineers) do need to be fact checked.
- Empiric research has a hard time when trying to overwrite the scripture
*1 - Nicely shown due the fact that the minimum clock period is the same for 1, 2 or 3 MHz parts.
*2 - Interestingly the very first data sheet and manuals don't give a maximum clock duration, only a minimum, which could lead to the false assumption of a static CPU. Likewise Rockwell's papers.
*3 - Which for all practical use can be done without problems.
*4 - The Softcard runs at double the 6502 clock speed, so two Z80 cycles will make a 6502 cycle, with them being synchronized at every memory cycle (including refresh), so effective speed varies.
*5 - For Z80 specialists: Yes, the
EX (SP),IX takes 23 cycles, but there also 'only' 19 cycles between M1, as its prefix is its own M1 cycle, letting the 6502 go for a cycle. In fakt, the rather weird double prefix instructions with offset like
RRC (IX+d) feature three M1 cycles, thus turning off the 6502 only for a maximum of 6 cycles.
*6 - Followed by a full 1 µs cycle. It effectively creating a a 1:19 (0,5µs:19,5µs) signal form at 100 kHz, which does work reliable.