I just finished adding two new web pages to the 8008/SCELBI area of my website. Take a look, if you want to see what can be done with 256 bytes in an 8008 and how to add a monitor and EPROM to your SCELBI-8H.
Archive for the ‘8008’ Category
I did add a silk screen/legend to the front panel. Some original boards had it, and some didn’t. I figured I’d add it on this batch.
Only other difference from first batch is slightly large holes for Zener diodes.
While working on the SCELBI cassette write board, I found some issues which were reported in this blog post. I found that I had detailed images of a second cassette write board, and it looks like the problems on that first board that I looked at, were corrected on the second board.
The first board is the one found at the CHM, and was photographed a while back by Jack Rubin. The serial numbers on the SCELBI associated with that unit are in the single digits, so that unit was apparently a very early unit. The second, corrected board, was part of the collection of Nat Wadsworth. I am only aware of one other cassette interface, but I don’t have images of that unit. I don’t know how many were made before the corrections were made.
Here are partial images of the front and back of relevant sections of both boards. Red arrows on images of the Nat Wadsworth unit show where visible changes were made.
Note that the changes are somewhat different than the what was done in rework on the CHM unit. These changes don’t match the schematics, but I was able to piece together what was done and why.
First, let’s talk a bit about what is going on, by reviewing this section of the schematics.
The chip associated with all these changes is a 7475, a part that has 4 bi-stable latches. Here is the key part of the data sheet – the truth table and the pinout.
The function of this chip is pretty simple. Whenever clock input 13 is high, the chip’s output pins, 16 and 15 follow the input on pins 2 and 3, respecitively. Also, output pins 10 and 9 follow inputs 6 and 7, respectively, when clock input 4 is high. When inputs 4 or 13 go low, the associated pair of outputs, are “frozen” or are “latched” into their current state at the time the clocks inputs go low. Note that there are normal and inverted outputs for each latch.
In the schematics, three inputs are connected from a SCELBI output port to this chip. There are two data bits and the port’s output strobe. The output strobe is a high going pulse that occurs when an 8008 OUT instruction addressed to this port. The data bits are connected to the SCELBI write data bus, so will change rapidly, as the 8008 writes to memory or output ports. The strobe is connected to the clock input (pin 13) of the 7475 latches 1 and 2. This circuit allows the 7475 chip to capture 2 bits of the SCELBI output data onto latches 1 and 2 whenever an out instruction is directed to the output port connected to the cassette interface.
What about the two other latches of the 7475? In the schematics, the clock (on pin 4) for outputs 3 and 4 is not connected. What usually happens on unconnected inputs of 74XX series logic is that the input will “float” high. As mentioned before, if the clock inputs are high on the 7475, then the outputs will simply track the state of the inputs. The 3rd latch of this chip is not connected or used. However the 4th latch (pin 7) is connected to the strobe input, so the output will follow the strobe all the time. The inverted output on pin 8 is used as a clock elsewhere on the board. The function is a buffer and inverter of the strobe input to the board. Note that letting an input “float” high is not a good design practice and it’s possible that clock input on pin 4 was directly tied to +5 volts, which is connected to pin 5. It is not connected on the bottom of the board, but could be connected on the top of the board, which is obscured by the chip. The only way to know for sure, would be to use an ohm meter to determine if pin 4 is connected somewhere by a trace that is obscured by the chip. I don’t presently have access to this board, which is in storage at the CHM, so I can’t do this. My best guess, based on the extensive use of pull up’s elsewhere on the SCEBLI boards, and lack of a connection in the schematics, is that it was left to float high and was not connected.
As mentioned in the previous blog post, the first version of the layout has two significant problems.
1) The strobe output wasn’t connected to pin 7 of the 7475. This is rectified with a jumper wire.
2) The output on pin 8 (which is the inverted strobe signal), is not correctly connected to the rest of the circuit. This is rectified by a cut and jumper as can be seen in the image of the back of the board.
So what did the people at SCELBI do, to fix the problems in revised layout.
1) Power and ground connections to the chip were rerouted to make room for signal traces that needed to be added.
2) The inverted strobe output which was supposed to be on pin 8 was moved to pin 11, which is the inverted latch 3 output. This was done to make it easier to connect to the rest of the circuit. It was also disconnected from the strobe input connection.
3) The floating clock input on pin 4 was tied to an existing pull up resistor.
4) The latch 3 input was connected to strobe input by running a trace under the chip to pin 13, which was already connected to strobe. I actually can’t verify this change, but I can be fairly certain that it exists, since the circuit would not work without this trace.
Note that this change to use latch 3 instead of latch 4 for buffering and inverting the strobe is not reflected in any schematics that I have seen. The schematics actually don’t match either of the boards described in this description.
If you look at CAD images of this section of the board, you can see how the changes were made. Blue traces are on the bottom layer and red traces are on the top layer of the PCB.
I have repeated this sort of exercise numberous times over the years to solve various inconsistencies in schematics and PCB layouts in a number of vintage computers. Understanding a vintage design frequently requires detailed detective work, but with time and patience, most mysteries can be solved.
One last comment about the nature of the problems with this board. Of the thirteen SCELBI boards that I have investigated in detail, this is the first significant layout problem I have run across. There is an issue on the DBB board with a single missing trace. In this case, the connections to the 7475 were botched and had to be redone. This is a very unusual and unexpected mistake from the engineers at SCELBI.
More progress on the SCELBI cassette write board. I have figured out the reason for the rework seen on at least one board.
There are two wires and a cut on this board. In both these cases, the PCB didn’t follow the schematics. Both changes are related to chip Z1 connections.
In case 1, pin Z1-7 should have been connected to Port A, pin T. Port A, pin T is already correctly connected to Z1-13 and Z2-13 and Z2-4. I’m not sure if this omission was on purpose or not. Routing to Z1, pin 7 would require running a trace on the top of board, from Z1-13 out the top of Z1 around the outside of Z1 to Z1-7. This would also require re-routing a couple of other traces on the top side of the board to make room for this new trace. It’s very unlikely, but possible the layout person didn’t want to mess with this and decided to just require the board builder to add a wire.
In the second case, Z1-8 is not connected to Z11-3. Instead Z11-3 is connected to Port A, pin T. The fix requires cutting the trace from Port A, pin T, after it splits and runs through a via to go to Z2. Then a wire can be soldered from the cut trace to Z1-8. This is clearly a layout error.
I still have at least one more mystery to solve on the cassette write board, before I’m done with it, but the layout is shaping up real well.
I finally sold my 19th set of SCELBI boards. There were 20 sets made in the original batch for the 8H that were made in January of 2013. There were about an even number of 8H and 8B sets sold, and the boards I’m reordering are common between the sets, as I still have plenty of the boards that are unique to each system. There are only two differences between these new boards and the original set of boards.
1) The size of the holes for the zener diodes is being made a little bigger. Note that if you can find them, the leads for the original style zeners in the cans will fit in the original holes, but more modern zeners have thicker leads may not. Older boards will work fine with the more modern zeners, but the holes will have to be reamed out a bit and the leads soldered on both sides of the PCB.
2) This time around, I’m adding a silkscreened legend on the front panel board. The original SCELBI front panel boards came both with and without the legend, but I see more original units with the legend. This is why I’m adding the legend to this batch. When I made the first set, I thought that only early boards that were made before the advent of the aluminum front bezel had the legend. Later on, I discovered that a number of systems with the front bezel, also had a front panel board with a legend silk-screened onto it.
The CHM has the chassis of a SCELBI-8B on display in their micro-computer room. This chassis has 2 4K SRAM cards and 1 PROM card installed in 3 of the 4 memory slots. The PROM card has the standard EPROMs for MEA (monitor, editor, assembler) installed. For the longest time, that PROM card was in slot 8 of 9. This is incorrect, because of fixed addressing of the slots, MEA can only run out of slot 9.
Earlier this month, they moved the PROM card to the correct slot, slot 9. It was interesting from to hear from their curators about how carefully they documented this simple move for their archives. They told me, “We have a note in the permanent record for the SCELBI, including photographs.”
I’m working on a 8008 amateur radio project for the VCF east. This project needs 2 input and 3 output ports, plus a serial input port for boot loading.
I have a working SCELBI 8B. The 8B has a memory editor in PROM, which makes entering a bootloader much easier than on an 8H. However, my SCELBI 8B is mounted on a temporary chassis that still only has a minimal number of I/O ports connected. When I build the final reproduction 8B chassis, I plan on connecting the full array of I/O ports. Until then, the port requirements for this VCF project dictate that I use my 8H for that application.
At this point, I have no PROM on the 8H. Downloading is through a 37 byte bit banged serial I/O driver that must be toggled in one byte at a time, using the front panel. It typically takes me about 30 minutes to initially toggle in the bootloader and boot the chassis with an application. What follows, are some tips that make booting the SCELBI 8H less troublesome.
I frequently make mistakes toggling in the bootloader. Troubleshooting a mistake can be difficult on the SCELBI. It used to take me quite a bit of time to correct these toggling errors. I have developed some approaches that make troubleshooting the bootloader fairly quick and very straight forward.
After toggling in the loader, I set the “L” register to a known location past the end of the boot loader, but in the same “H” page. This saves the time of having to toggle in a new value into the “H” register. I’ll connect the serial device that will be used to download the application, which is my case is usually a laptop computer. I start the terminal emulation program, and run the boot loader and enter a few characters using the keyboard. After typing in a few characters, I’ll interrupt the SCELBI and use the decrement L instruction (061) to back up the L pointer. Then I’ll use the load A from memory instruction (307) to read the contents of what I’ve written and verify that the character that I typed went into memory correctly. Entering a few characters with the keyboard before downloading the full application, allows you to skip changing the H register to point to the start of the application, while verifying correctness of the bootloader.
If the data doesn’t look right or isn’t making it to memory at all, I’ll toggle in the jump instruction (104 XXX XXX) to jump to the start of the bootloader. I can then single step through the bootloader to make sure I’ve toggled in the correct code. When you enter a loop, just verify one pass of the loop. After verifying by stepping through one pass, toggle in the jump (104 XXX XXX) instruction to go to the next part of the bootloader. This is much faster than stepping through the loop until it exits or reading back all of the program by reading memory indirectly with the HL registers and the front panel.
If I find a mistake, I’ll toggle in the load L immediate instruction (066 XXX) to point HL to that location. I’ll then use the load A from memory (307) to double check the contents of that location. If it is wrong, I use the load memory, immediate instruction (076 XXX) to correct it.
Next, reset L to somewhere other than the middle of your bootloader, run the bootloader and try typing in a few more characters. Once you are able to enter characters correctly, then point HL to the starting address of your program and download it. Be aware that if you forget to move the HL pointer, you may overwrite the some part of the bootloader. I have found that if you make this mistake, all is not lost. The SCELBI usually halts after destroying just a few locations of the bootloader, not the entire thing.
After sending the program down to the SCELBI, I do two checks. First, I check that the HL registers are one past the end of the program by loading A from memory (307) and monitoring the address read. If it is correct, I’ll decrement L (061) and load A from memory (307). The data read should match the last byte of the downloaded program.
Once the bootloader is in memory, try to avoid overwriting it. If your application doesn’t touch that part of memory and you don’t power off, it can be used to load a new application or a different version of the bootloader that can be located elsewhere in memory.
One of the things that I have been hoping that I’d have time to do was to fully digitize the SCELBI manuals and add notes for the “modern” recreater. One of the main obstacles has been the extremely poor results from OCR software that I have used in the past. Well, I finally bit the bullet and spent some money on dedicated OCR software and am getting somewhat better results.
I’ve been working on the card assembly portion of the 8B build manual. So far, I haven’t added any modern reproduction notes, but have worked on getting the original manual transcribed. Here is what I have done so far.
Let me know what you think of this draft.
This is follow up to my previous post about building a Martin Eberhard 1702/A EPROM programmer.
In this post, I will share some more details about this project. This is not a kit, but Martin occasionally sells a PCB with a programmed PIC micro controller. Extensive instructions, including a parts list with recommend suppliers can be downloaded. Martin has sold several batches of these PCBs over the last couple of years, and I purchased a PCB and PIC from his most recent batch.
The programmer has a built in RS232 interface and can be controlled by any computer with terminal emulation software that supports capturing text to a file and sending text files. I use CoolTerm on a Macintosh for this functionality
All the parts have either Allied or Digikey parts numbers, so it is a pretty simple process of ordering your parts using Martin’s bill of materials. In my case, I found that I had some of the more vanilla parts already on hand, and I saved a few bucks by using what I already had. There are quite a number of different parts required. Usually when I order parts, I order spares of everything, but in this case, I ordered exact quantities of most parts, as I figured paying the postage for one or two damaged parts would be cheaper than ordering spares. In my initial order, I forgot to order one part and didn’t order enough quanity of a second part. These were my mistakes, as Martin’s bill of materials are right on.
I also made a couple of substitutions, one that didn’t work out so well. In the case of the DB-9, I purchased a male connecter instead of female. This is because most of my other devices with DB-9’s, use male connectors and this would allow me to use existing cables. In the case of the MAX232, I substituted a MAX202. The MAX202 has the same pinout as the MAX232, but uses .1uF capacitors. I had both the MAX202 and .1uF capacitors on hand, so this was a no brainer substitution.
The one that didn’t work out so perfectly, was the power supply plug, the Apple 1 uses the same form factor .156″ 6 pin header, so I used a connector from my stash of Apple 1 parts. Unfortunately the Apple 1 is a slightly different style, so the pins I bought, using the 1702/A BOM were not correct for the Apple 1 connector. I would have used Apple 1 pins, but I was out of them. I should have refered to my Apple 1 BOM in order to get the correct pins for my connectors. I was able to make do with the combination of connector and pins, but it’s not as secure as it should be. For now I have used silicon glue to secure the connecters to the housing. Next time I put in an order, I’ll get the correct connector and fix this issue.
I only have three colors of 18 gauge wire, so my color coding is not optimal. I used black for black, red for white and green for everything else. For the wires that go to multiple locations, I recommend running a pigtail and connecting multiple wires to the pigtail and covering the connection with heat shrink tubing.
Cutting the case openings was pretty time consuming. I made the cut outs by drilling holes in the corners of each cut out using the template from the manual. I then used a coping saw to connect each hole. This was followed by a lot of hand filing and tweaking with a dremel type tool with a cut off wheel attachment. The cut off wheel really helped me keep the straight edges, straight. Keeping edges straight would have been much more difficult with a regular grinding bit. For my first round of 1702 programming, I had borrowed a unit that had been painted MITS blue. That looked pretty nice, so I had to fill the sprue location in the front of my chassis and slap some paint on it. I’d guess that an expert could do it faster and better, and the paint job is pretty crusty, but I’m fairly happy with the result. I’m considering improving the paint job and making some decals or screen printing the chassis with a logo and lettering in the future.
One of the more time consuming parts of this project was wiring the transformers. Anyone that has done an Apple 1, will immediately recognize what is going on and be able to figure it out. During assembly, I made one mistake, and that was wiring the six pin .156″ power connector. That caused a blown fuse, but apparently no other damage. Make sure you know which end of that connector is pin 1 – the description is clear in the manual, but I guess I didn’t read it closely enough.
The instructions include rather detailed checkout instructions, and I recommend following them. My unit has two voltages that are a bit higher then specified in the manual. The first was found during Step 10, “Test High-Voltage Power Supply Control”. The voltage on the right side of R95 was just a shade over 75 volts. It is supposed be the combination of the drop over two zeners, 15 and 58 volts, which should have made the result about 73 volts. In my system, the drop over the 58 volt, 4758 volt zener, was just over 60 volts. This added to the 15 volt drop of the other zener resulted in the >75 volt reading. It could be that zener was out of spec, but I decided that it was probably close enough and moved on.
The other slightly high voltage was found in step 14, “Test High-Voltage Logic Signals”, where I found that logic low on the data signals was around .84 volts, when the manual said it should be under .7 volts. I looked at the schematics and measured voltages at several points in that circuit and couldn’t find any obvious issue. Looking at the 1702 spec, it looks like programming data low is -46 to -48 volts. Since the supply is 48 volts, that gives 2 volts of margin, so it should be fine. I decided to move ahead and try programming some actual devices.
I started with a part that probably had a burned out data bit. I did a number of experiments and could read the part and program each bit (except the bad one) and address successfully. Then I moved onto another part and proved out the bit I couldn’t test with the first part.
My Martin Eberhard 1702/A programmer appears to be working perfectly. I don’t have much mileage on this newly built 1702A programmer, but I can comment on the experience of using my friends, a few months back. At the time, I needed to program 16 devices for the SCELBI PROM board. I had very few issues during that session. I found two parts that didn’t blank check. Since I don’t yet have an erasing light, I don’t know if these parts are bad or just have been programmed before they got to me. I was able to program 16 parts that did blank check correctly with only one hiccup. That was one part that apparently hung the programmer, or was just taking a very long time to program. I power cycled and repeated the operation with the same part and it completed normally. I’m very impressed with this programmer, as well as the reliability of the 40 year old NOS 1702 EPROMs that I have had such good luck with.
Looking forward, I now have the capability to program the SCELBI keyboard and oscilloscope interfaces without having to borrow friends equipment. I expect I’ll have to go through several iterations of those drivers, since we haven’t found the original SCELBI software. I’m interested to find how these old devices will stand up to reprogramming.
I consider that building this programmer a medium sized project. Except for my own projects, I haven’t built any micro-controller based kits before. This one was really fun. I wouldn’t recommend it for a beginner, but someone who has been restoring or reproducing 70’s era computer systems for a while should have a lot of fun building this very useful device.
The cost will vary depending upon what you can find in your stash, but I think you should be able to build one of these units for $160-$180.
I’m in process of building one of Martin Eberhard’s 1702/A programmers. I just finished soldering the PCB. and here is what it looks like.
The ZIF connector and three LEDs are mounted on the back side of this board, which will be mounted upside down in the enclosure. Martin did a great job with the layout – the overall structure of the layout reminds me of the Apple II’s layout, which, in my opinion, was a masterpiece in it’s day.
There are a lot of discrete components, but that is because of the high programming voltages required. At one point, I searched and couldn’t find any suitable integrated circuits that will handle the 50+ volts required to program this part.
I also have made the cutouts in the case and have painted it. The case is a plain black styrene plastic, so the paint really improves the look. Here it is, along with the two transformers and the power entry module. I have everything I need to finish it, except for the DB-9 serial port connector, which is still on order.
I need to go back and check the detailed manual, but I think the next steps will be wiring the transformers and testing the power supplies.