• Please review our updated Terms and Rules here

SCELBI Data Bus Oddities and Debug

The 8008-1 is a 'faster' CPU than the 8008 (https://datasheets.chipdb.org/upload/wepwawet/8008_(1978) Datasheet.pdf). This may be for a number of reasons.

One possibility is that early CPUs would only run reliably at 500 kHz. They may have run faster - but this is early over-clocking!

Over time, intel may have improved their processes, or slightly redesigned the 8008 to make it 'faster', and gave it the code 8008-1.

It may also be that the 8008 CPU was tested at 800 kHz (plus a margin) and (if it passed) it was classified as an 8008-1. If it failed, but reliably passed at 500 kHz (plus a margin), it was classified as an 8008. If it failed, it was either destroyed - or sent to a country to be destroyed which may (or may not) have happened (if you get my meaning)...

Over time, even 8008-1 devices may have 'aged', so they do not reliably work at 800 kHz. Either that, or unscrupulous companies may have remarked an 8008 as an 8008-1. In the latter case, it will not reliably run at 800 kHz either.

Note that there is also a minimum clock frequency of 333 kHz - implying that the internals of the CPU registers are 'dynamic' in nature and require a minimum clock frequency to hold their values (otherwise the register contents evaporate).

Early designs also 'scrimped' on decoupling capacitors. Switching noise from the logic ends up propagating across the power rails and upset logic operations - especially as the clock frequency increases. You can add additional decoupling capacitors if you wish. The recommendation is one decoupling capacitor per logic device. You can use an oscilloscope to check the power rails for high-frequency noise to see if this is a problem.

The "serial" vs "parallel" is partially a red herring. You can "bit bang" a digital bit to make a serial stream for a TTY. This will work - but does have significant limitations. Or, you can add a dedicated hardware UART to do all the 'magic' for converting parallel to serial and serial to parallel. The UART hardware solution is preferred - especially if you want higher bitrates...

Looking at the delay codes for the bit-bang method, I calculate the following delay values (by scaling from 500 kHz to 800 kHz):

Half bit (68 decimal) scales to 109 (decimal).
Full bit (139 decimal) scales to 222 (decimal).
One and a half bits (204 decimal) scales to 326 (decimal)...

The last example is larger than a byte (255 decimal) - so the code (as written) cannot accommodate this change. In order to accommodate this change, the code will have to be modified to implement two (2) consecutive delays (say a full bit plus half a bit).

>>> I have other responsibilities

Tell me about it :)...

It is sometimes good to have deadlines to work to. An exhibition is a fixed deadline - and you made it...

Are you planning on getting SCELBAL operational?

Dave
 
Ahh you just described my job, margin, binning and all. I do system level testing of CPUs for a living!

To clarify, the 8008-1 I have was being a problem even at 500kHz. So while I suspect it's just defective, I was pondering if maybe something else was at play. But I doubt it.

I was confused by the parallel vs serial thing because they were saying it was different versions of the 8008 itself. Which I'm taking with a grain of salt because it doesn't really seem right.

100% if I hadn't had the deadline of VCF, I would not have the SCELBI or the Altair working anytime soon. So true that on the deadline. I just also need to make sure I'm able to fully focus on my work during the work day and that I'm making progress on home renovations as well. But I fully intend to get SCELBAL working at least within the next month or two. Mostly I need to get the tape interface built.
 
>>> I was confused by the parallel vs serial thing because they were saying it was different versions of the 8008 itself.

Unlikely. Intel either improved their manufacturing process / yield, or went with a slightly different manufacturing process (smaller features).

Since both used +5V and -9V, it is unlikely that they changed the technology either.

The National Semiconductor SC/MP started off as 1 MHz in PMOS (funny power supplies of +5V and -7V) and then went to 4 MHz in NMOS (single +5V supply).

Dave
 
I was told by a book-writing 8008 expert that by the mid-late 70’s date codes, most if not all Intel 8008’s could operate at -1 speeds (attributable to process improvements, not a die shrink or technology change, like from PMOS to NMOS). Of course, Intel would not guarantee this. I will test that statement (I have some late 70’s 8008’s) although I can only go to 750 khz. These chips run mighty warm and I will have to give them torture tests to their highest rated temps.
 
Slob:

That is what I think also.

AgentOrange96:

Is the attached of any use to your girlfriend to avoid her typing lots of meaningless text in? It probably changes the task into one of proof reading and correcting?

If this is OK, I could convert some of the other manuals...

Dave
 

Attachments

Slob:

That is what I think also.

AgentOrange96:

Is the attached of any use to your girlfriend to avoid her typing lots of meaningless text in? It probably changes the task into one of proof reading and correcting?

If this is OK, I could convert some of the other manuals...

Dave

Ooh that looks great! I see some lines on the side that are odd. Was this typed or OCR'd? Or AI? If so, I'd imagine those are from the scan artifacts. The formatting is very good though!
I had tried OCR at one point but it was not working very well. Although AI might do a better job.

Also, I just got another 8008-1 in yesterday. I will try to test it either this weekend or during the week, at least at 500kHz. I have this next week off, but also I have to spend this weekend tearing down and replacing a ceiling, so we'll see when I have time.
 
They upgraded my works laptop and I got a new version of Adobe Pro - and the OCR feature is way better than it ever was. I suspect they are using some form of AI...

Happy to convert the other documents also.

Dave
 
I put another D8008-1 in the SCELBI and it behaves identically to my other D8008-1.
The C8008 works fine. I believe C/D is just the package material so that shouldn't matter.
All are running at 500kHz. I wouldn't expect that an 8008-1 couldn't run at 500kHz.
So this will require further exploration.

Per the datasheet, there should be no difference in minimum speed:
1751207302268.png
Meaning it should be able to handle 500kHz just fine. And I feel it's unlikely that two 8008-1's I have are both bad in exactly the same way.

TFW I can swap out an Intel 8080 in my Altair for an AMD 9080 and it works perfectly, but I can't even swap out an Intel 8008 for an Intel 8008-1. 😂
 
Last edited:
I assume you have setup the clock signals correctly?

Yes, the initial C/D is the package type (so you should be able to ignore it).

What other markings are on the two chips? There should be a 'lot' or 'date' code.

There is one horrible possibility. This is where an entire batch of devices failed due to a manufacturing defect and were sent abroad for destruction. They were never destroyed, and have found their way back into the supply chain.

Dave
 
The clocks are, to a tee, set as described in the SCELBI manual. I'll take a look in a bit to see if that varies from the datasheet any, but I doubt it.

Comapring them side by side, they are definitely different lots. Left is the one I've had for ages and right is the one I just got.

1000023408.jpg
1000023407.jpg

If those are date codes on the bottom of YYWW, then those are very late. The second one would be the same year as my 8088 powered IBM PC XT as well as my C64 even.
 
The clock on the SCELBI appears to be JUST in spec for the 8008:

SCELBI's clock:
1751213995048.png

Intel's Spec:
1751214010559.png

As a comparison, I've made this table:
ParameterIntel 8008Intel 8008-1SCELBI
Φ1 Pulse Width700ns+350ns+850ns
Φ2 Pulse Width550ns+350ns+550ns
Φ1-Φ2 delay200ns+200ns+200ns
Φ2-Φ1 delay400ns+350ns+400ns

If anything, I'd expect less stability on a regular 8008 due to marginality. An 8008-1 should be more forgiving here.

EDIT: Actually, tD1 for the 8008 is specified as between 900ns and 1100ns, but the SCELBI seems to use 750ns. This seems out of spec for the 8008, but a lower bound isn't defined for the 8008-1. And again, I'd expect it to be lower for the 8008-1. So again, if anything I'd expect the 8008-1 to run better.
 
A missing timing value indicates either that it doesn't exist, or someone forgot to include it in the datasheet...

I would, however, make sure that the errant value (tD1) falls within the specified Intel values.

An 8008-1 should work in place of an 8008 for the same clock frequency.

It is interesting that both of your 8008-1 devices were manufactured in Barbados. I see Intel did have a manufacturing plant in Barbados, but it seems to have had a bit of a 'checkered' history and seemed to have been closed after a wage dispute.

Dave
 
The only 8008x that I ever had that did NOT function at 500kHz was the East German 8008 copy. To be fair, maybe it did work but none of my 8008 machines have “strictly by the book” clocks and maybe it wasn’t as tolerant.

I have at least two ceramic Intel -1 chips from Barbados that work in my machines at 500 kHz. Haven’t done my 750 kHz tests yet.
 
It seems the D8008-1 was made only in Barbados and the Philippines with most in the US being from Barbados from what I can find on eBay, which makes sense. I just purchased a Filipino one for science though.

I have a slight preference toward the D8008-1 over C8008-1 for this project since it matches the other chips better aesthetically. Also being cheaper because it's not as pretty on its own helps.
 
Makes sense. A SMPS produces way more noise than a linear one.

Check for 50/60/100/120 Hz ripple (indicating lack of smoothing) and then increase the timebase to look at high-frequency switching noise.

Don't forget to set your oscilloscope to AC coupling and increase the gain util you actually see some noise. There will always be noise, the question is "how much"?

Dave
 
I haven't messed with the clocks or checked for noise yet. (Been real busy elsewhere) but I did just pop in a Filipino 8008-1 and got the same result.

1000023496.jpg
1000023495.jpg
 
I had mentioned earlier that I wanted to test out some 8008's and 8008-1's at 750 kHz speeds. Here are the conditions and results:

Equipment and Conditions:

An expanded version of Jim Loos' 8008 SBC was used, with additional serial ports, larger ROM, and the capability to operate at 500 or 750 kHz clock speeds. This is near the 800 kHz limit of the 8008-1. It has been thought that the 8008-1 CPU, originally "selected", probably was just re-marked later in the product lifecycle due to incremental process improvements at Intel (note that here, process improvements do not include die shrinks or technology changes (like NMOS, CMOS), just "incremental improvements" like better mask alignment, purer wafers and dopants, etc. This was likely true after the mid-70's). This mattered back then because the price difference between the 8008 and 8008-1 was substantial particularly to hobbyists. Supposedly, when released, the 8008 disappointed the designers at Intel because of low clock speeds and the 8008-1 speed (800 kHz) was more like the original design goal. Embarrassingly, the earlier, four-bit 4004 and 4040 have been shown to outperform the 8008 computationally at their respective factory rated clock speeds.

I have an unconnected socket for a spare oscillator package on the board that is exchanged with the operational oscillator. A jumper selects the clock from the oscillator or from the 4040 chip. I had a temptation to add a "TURBO" switch to the computer instead of this jumper and package switch.

These tests don't duplicate all the environmental and electrical factors of Intel's spec sheets. Firstly, my 8008's voltages are +5.15 volts and -7.5 volts; the -7.5 is not in spec at all (long story why). Also, although I allowed the chips to get fairly warm in temperature in ambient (72-75 F) I did not go to the full +70 degree C spec from Intel. To those retrocomputing, this probably won't matter, no one operates their machines under hot conditions like that; certainly, no one is using these machines for any critical processes in this century anyway - or are they?

A ROMmable version of Mark Arnold/Mike Willegal's RAM test (now tests from page 001 through 037) was customized to boot the machine and operate serially at 1200 bit-banged baud under the new clock speed, in an endless loop with a counter that goes up to 255 and rolls over. I chose this program because it has a good mix of external access (ROM,RAM) and CPU use and if an error was found it was thought that it would show it and possibly halt. This test was allowed to run for at least 25 (decimal, ha ha) passes as the temperature of the chip (measured by thermocouple) got up to low-mid 50's degrees C under conditions of limited air flow and stayed there. Ordinarily, I have two fans operating in this machine.

Tests were not done at 8008 speeds. I had given them cursory tests earlier and they had all passed.

Here are the results at 750 kHz:

8008-1 Worked, metal lid, terminal temperature 54 C. Code 1619A; Date code 7632 Philippines
8008-1 Worked, metal lid, terminal temperature 54 C. Code 1299B; Date code 7745 Malaysia
8008-1 Worked, ceramic, terminal temperature 53 C. Code 0460F; Date code 8036 Barbados
8008-1 Worked, metal lid, terminal temperature 53 C. Code 2926A; Date code 7701 Malaysia
8008-1 Worked, metal lid, terminal temperature 54 C. Code P0750; Date code 7530 Malaysia

8008-1 Worked, metal lid, terminal temperature 52 C, Code S2402-3228A Date code 7708 Malaysia
8008-1 Worked, metal lid, terminal temperature 52 C, Code S2402-3228A Date code 7708 Malaysia
8008-1 Worked, ceramic, terminal temperature 53 C, Code 3087C, Date code 7830 Philippines
8008-1 Worked, metal lid, terminal temperature 52 C, Code P1625, Date code 7537 Malaysia (borrowed from an HP Terminal)

8008 Worked, metal lid, terminal temperature 52 C. Code 0380A; Date code 7611 Philippines (not a "dup", I have three of these)
8008 Worked, metal lid, terminal temperature 53 C. Code 0380A; Date code 7611 Philippines (not a "dup", I have three of these)
8008 Worked, metal lid, terminal temperature 52 C. Code 0380A; Date code 7611 Philippines (not a "dup", I have three of these)

8008 Failed immediately, ceramic, terminal temperature 23 C. Code 0293F; Date code 8029 Philippines (same wafer, packaged on diff. weeks?)
8008 Failed immediately, ceramic, terminal temperature 22 C. Code 0293F; Date code 8028 Philippines (same wafer, packaged on diff. weeks?)
8008 Failed immediately, Metal lid, terminal temperature 23 C. Code 5165A; Date code 7730 Hong Kong
8008-1 Failed immediately(!), ceramic, terminal temperature 24 C. Code 0543F; Date code 8038 Barbados
8008-1 Failed immediately(!), Metal lid, terminal temperature 22 C. Code 1443C; Date code 7807 Malaysia

Observations:

The failure mode was the same for ALL of the flunked chips, -1's and straight, and I have some theories as to why. The bit-banged serial output was garbled, and yet, the front panel lights showed me that the code was still running properly (and not halted) in the CPU. I could not directly see if there were any program errors (there is an error counter) but I suspect not.

So, is the I/O select and read/write timing more sensitive to speed than the rest of the chip circuitry? Or, is there something in the external support circuitry - maybe the speed of the GAL's, iffy negative voltage, bus loading, wire wrapping - that is marginal? Remember, all of these chips worked just fine at 8008 speeds in the same computer. I simply don't know, but the 8008-1's definitely seem to be less sensitive to this than the straight 8008's. It might be worth trying this experiment out in an all-LSTTL/CMOS design on a PCB.

Also interesting would be testing on a board with a 100% phase adjustable non-crystal controlled clock (like a Scelbi or Intellec, but you better have a good oscilloscope because it wouldn't take much to get "lost").

There never was AFAIK a dedicated clock chip for the 8008 (unlike the 4004/40 and 8080)

Conclusion:

1. I would say that my test results are inconclusive and evidence can be found to support just about any conclusion. SOME 8008's seemed to work fine at these speeds, but some didn't; a few 8008-1's didn't want to run at these speeds either although all of these chips worked fine at 8008 speeds. There didn't seem to be much of a relationship between date code and capability, or even country of manufacture. The ceramic no lid packages seemed to fail at high speeds more often. Note that this was not a temperature issue because failures were immediately obvious.

2. It probably is worth trying to "overclock" an 8008 (but beware of my I/O findings). However, will the memory (RAM or ROM) on the target machine support that speed without extending the "ready" state? I didn't worry about that much on my machine with its "modern" UVEPROM and blistering 45ns RAM. The downside is, of course, that if you have bit banged serial I/O, you will need to recompute the delays. All of the software that I have seen published for the 8008 assumed a 500 kHz clock (at least where it mattered, in timing or timing loops).

Because there never was a standard 8008 design, each program has its own custom I/O (no BIOS available). Reasons for this IMO was that at least for the early part of the 8008 era, (UV)EPROMS were very small, very expensive, and required amazingly complex and expensive machines with which to program.

3. If you have 8008 0380A chips from the 11th week of 1976 made in the Philippines, hang on to them!
 
That's a very thorough testing and analysis! I still need to figure out about the discrepancies between the SCELBI and Intel specified clocks. But that tells me if my 8008-1's end up not handling the speed my 8008 might! XD

Incidentally, even today fab process improvements can happen during bringup or even during a product lifecycle which either improve yield or lead to faster variants.
 
Back
Top