• Please review our updated Terms and Rules here

SOL 20 restoration

mhamilton

Member
Joined
May 21, 2026
Messages
11
Hi all, I'm working on a SOL 20 that belongs to a friend. I've got it a lot further than where it started (completely non-functional), but I'm not sure what the best next steps are for diagnosis.

Quick recap of the system:
1. As-found there was no video output, traced to a failed flipflop in the video gen section
2. Keyboard non-functional, traced to a failed IC and failed SRAM. Also repalced the key contacts. Now that is fully functional.

I can power up the unit and get the test pattern (square-9) by jumping. If I power it up normally I just get a blank screen. No cursor, nothing. It does have a personality module, and the ROMs have data, but not sure what version/if it's functional.

There's activity on all the CPU data pins. I currently have all the expansion cards removed. All the ICs have been removed, pins cleaned, reseated.

Couple of paths come to mind. I'm unsure where to go next. Open to any suggestions.
1. Bad RAM? Just remove all the chips and test/replace as needed? I'm also assuming the computer will function with just the onboard ram, or does it require the memory expansion card to boot a prompt?
2. Bad personality ROM--reflash two new ROMs with SOLOS or something to get a working baseline?
3. Other tests? I can get a logic analyzer if that is more practical than scoping around the board.

Thanks!
Michael
 

Attachments

  • SOL20.jpg
    SOL20.jpg
    669.8 KB · Views: 23
  • test pattern 1.jpg
    test pattern 1.jpg
    497.7 KB · Views: 23
SOLOS will run and display a prompt without any RAM boards in the S100 slots.

The 2102 RAMs are very unreliable in old age. At quick glance, the video RAMs appear good, so I’d swap the two columns of 8 RAM chips and see if you get a prompt. Some bad video RAM won’t keep the processor from running like bad RAM can as CPU RAM.

Mike D
 
I swapped the video and system ram chips. No difference, blank screen on boot or I can get the test pattern by jumping U2 pin 1 to gnd. All the main board chips appear to be original AMD 1024x1 with date code from 1976.

Unfortunately the ram chips on the expansion board are 256x1 so I can't swap any of those to the main board.

Since the video still displays properly when swapped, does that confirm the ram is all okay? Or is that inconclusive?

Oh, forgot to mention, I did check all the system clocks and they are spot on. System voltages are good and no ripple on the p/s rails.
 
The pattern on the screen is a good sign that the RAM is probably OK, but of course, that pattern is not testing all possible bit patterns in the RAM.

Having a completely blank screen sounds like the processor actually is running and wrote blanks to all of video memory during initialization, but for some reason, you’re not then getting the prompt. What happens if you press Return a few times after getting the blank screen?

Is it just an artifact of the picture you took, or do you only have 15 lines of characters instead of 16?

Mike D
 
Also... reading the OP entry I see he got that display by tinkering - and it is not necessarily a bad thing depending on how he got there.
But a completely blank display on normal power up is covered in section 6:

1779439303485.png
 
The pattern on the screen is a good sign that the RAM is probably OK, but of course, that pattern is not testing all possible bit patterns in the RAM.

Having a completely blank screen sounds like the processor actually is running and wrote blanks to all of video memory during initialization, but for some reason, you’re not then getting the prompt. What happens if you press Return a few times after getting the blank screen?

Is it just an artifact of the picture you took, or do you only have 15 lines of characters instead of 16?

Mike D

Okay this morning I'm getting some very different results. I (obviously) have been paying close enough attention to what is on the screen. You are correct--there are only 15 lines of text not 16! I never would have noticed that. Scratching my head on that, because I know the video timing signals are correct.

And now that I've swapped the video/system ram I see the bottom row has some of the nulls replaced with "B" or "8" or some other character.

When I boot to a blank screen, pressing return or any other keys does nothing.

I also stumbled into this new failure mode... I was checking the reset circuit for correct operation and got the null-nine screen but with lots of characters flashing incorrectly. Short video:

Seems that all the fingers are pointing at RAM failure at this point? Practical question: is it cheaper/easier to just buy 16 new RAM chips? Or should I get a tester to go through them more methodically?

Also... reading the OP entry I see he got that display by tinkering - and it is not necessarily a bad thing depending on how he got there.
But a completely blank display on normal power up is covered in section 6:

View attachment 1322326

I did some more checking here. I know the video circuitry itself works, I always get sync pulses out. There's just no video data when the screen is blank.

The supply voltages are all good, and ripple free. The reset line is not held low by the keyboard. I checked directly at the CPU pin 12, when normally operating reset pin is 0v. When reset is asserted by either the keyboard UC+REPEAT or if I jumper the reset pin on the PCB, the reset circuit goes to 5v for the duration of the reset being asserted.

Re: COMMON SYMPTOMS OF FAILURE.

Okay I totally missed this section in the manual... I will go back and review it more carefully.

This is great info--I noticed some other symptoms. On some cold boots, the system will go directly to the "null-nine" flickering display without me jumping U2 pin 1 to gnd. This aligns with the info that this is a stack crash. No amount of resetting will resolve this. I have to hard power the machine and then it will boot to a blank screen.
 

Attachments

  • test pattern after ram swap.jpg
    test pattern after ram swap.jpg
    525.3 KB · Views: 1
If ROM issues appear to remain after the RAM is sorted: There are a few versions of the personality module. Looking at your initial photo you have the one with the two 2708's and the 74LS08 missing from its socket. I'm not sure why that is, unless you took it out for testing or something, because the module was unplugged too. But obviously the module cannot run without that because the 74LS08 is used for the ROM's chip select pins.

There is not much to fail on the module but, if you don't have a spare known good one to exclude it, the next best thing is to read the ROM contents. That is awkward for the version using the four MM5204's or the two 2708's. The MM5204's can be read & programmed with the wonderful Eberhard Programmer. Not many programmers/readers out there will support the 2708 either, it is because of the negative voltage rail requirement, though I have read and programmed these with the Cromemco Bytesaver board, but that S-100 board obvously requires a working S-100 computer to do it. Most programmers support the 2716.

Another verification option is to have your module tested in a working SOL, or try a known good module in yours. A while back replica modules (of a sort) were on ebay (photo attached)

On the whole though, with the SOL, many faults, gate failures, poor socket connections can cause the sort of symptoms you are seeing. It takes much more than reseating the IC's to help the connection problems in the sockets in the SOL. Often there is a lot of corrosion between the dissimilar metals of the IC pins and socket claws, and more often than not, some of the sockets have damaged claws from rough insertion of IC's during the initial assembly and they are the horrible TI sockets, that grab the pin from side to side.

If you look on the sides of many of the IC pins where the socket claws made contact, you will see a grey or a black line of oxidation (oxides are insulators). This needs to be removed from both sides of all the IC pins

(it is a very long job, I scrape it off first with the back rectangular edge of a number 11 scalpel blade, not the sharp side, then finish the surface with 2000 paper, on both sides of every pin of every IC. Then clean with contact cleaner and apply some lubrication, Inox mx-3 works well, it takes at least a day to do them all in the SOL)

And the socket claws; every IC socket need to be individually tested for each claw. This is done by soldering an IC pin (from a defunct IC) to a small wire handle and inserting the pin (on the correct axis) into every socket claw one by one, with some contact cleaner helps, to feel the spring tension. You will get a horrible surprise on a few and find that there is none to virtually none in some cases. Interestingly though, the plastic shrouds can be lifted off the socket claw array with these TI sockets and the claws can in most cases be re-tensioned if bent and damaged. Unless both the IC pin corrosion and the socket claw tensions are individually attended to, the SOL will not be reliable, nor in fact will any S-100 boardwith these aged TI sockets. One other issue is, the pale blue DIP switches (typically CTS types) are unreliable now due to films on the gold contacts and they cannot be cleaned properly, this can cause intermittent problems on S-100 boards and on the SOL for the serial port etc, I replace these with a machine pin sockets and fit low profile Omron DIP switches.
 

Attachments

  • solos.jpg
    solos.jpg
    114.1 KB · Views: 1
Oh wow... I didn't even notice that U3 was missing. The socket has a jumper wire between pins 5-6, I saw that SOL did similar jumpers on the main board so did not look closely enough at the schematic to see that U3 should be an AND gate. Looking at the schematic from the manual--that is definitely not going to work to keep both ROMs from being selected at the same time. Even if there was some non-standard code, I don't expect that would function since both chips share the same address bus.

Unfortunately I do not have the ROM contents to examine. My friend (who this SOL belongs to) did a ROM dump a year or two ago and it looked like SOLOS, but I want to go back to scratch and do my own to validate. Depending on what the next best steps are, I'll get a ROM programmer. Alternates, test this module in another SOL, or get a known good personality module.

The other concern is that the stickers over the windows on the ROMs were long gone when this machine was found. The module was inside the machine, but don't know how long it was exposed to light/if there's bit rot, etc.

(Aside: in my earlier photo of the main board the ROM module was unplugged, but yes I did plug it into the main board when attempting to get a boot prompt.)

The advice on the pin sockets makes sense. We did clean each IC pin with a fiberglass brush, but did not go as far as to check pin fitment at each pin. I will go back and start working on that. Or alternately price replacing all the sockets outright.
 

Attachments

  • rom module.jpg
    rom module.jpg
    352.2 KB · Views: 5
Last edited:
It is possible that the personality module could still work without the 74LS08 AND gate they have simply bypassed it. The chip selects may still work, I would have to check the logic. Certainly SOLOS requires a full 2K of ROM, memory to operate, so its hard to imagine that someone did this if it didn't once work. It also looks like there was another mod on the board. Still I am a great believer of having things as original as possible......Edit: I justchecked and it looks like it can work without the 74LS08, somebody must have figured that out. So it seems the absence of that part is not a wory, but it makes you wonder why PT had it on the board unless it was useful for the in circuit programming.

I had considered replacing all the sockets in my Sol, but ultimately considered it a bad idea as it risks thermal damage and damage to the pads and tracks, and in the light of the fact I'm particularly good at doing without damage too, but I still thought it a bad idea, so instead what I did was repaired the defective sockets that were there. For one or two of the worst ones, I replaced them, but what I did was removed the plastic shroud, this is done by levering it off ( but don't do that with the levering direcly agaist the pcb, you need to use a piece or cardbaord or similar to protect the pcb surface) then the pins can be removed one by one. Add fresh solder first helps, solder suck the holes and clean up with IPA and inspect. But the thing is, don't throw those socket claws away, quite a few will be good. Then when you come across another socket with just one or two damaged claws, you can lever off the shround and use those as doner claws to avoid having to replace the whole socket.

There are 4 ways the socket claws get damaged, one as mentioned is by forceful incorret insertion at the time the initial IC's were fitted, this happens when the pin array was not properly formed and each side was splayed apart and , another is corrosion , another is that if anything wider in size other than an IC pin width, which is about 0.45mm across, has been pushed into them at any stage it forces the two arms of the claw apart and they don't have wonderful spring memory (so check the diameter of that link pushed ito the 74LS08's socket and those claws) and another thing, in some cases if you look you will see what looks like round semi circles in each claw half, caused by relentless insertion and disinsertion of IC's. This is one reason it pays to add a small amount of lubricant like MX-3, just in case any IC's need to be removed/replaced a few times in a fault finding process.

I once wrote an article about the SOL personality module, but it was not the same version as yours, it was the one with the four MM5204 ROMs :

 

Attachments

  • module2.jpg
    module2.jpg
    158.1 KB · Views: 5
Last edited:
Agree--it may have worked (presumably it did), but I've got some 74LS08's on order, so will put it back to OE. On the upside, I scoped the chip select lines and there is activity on both. I'm hopeful more of the system is working than not.

The area circled is the R5 pullup resistor. It appears this board may have been configured originally for some other ROM chips. As it's wired now it is correct--R5 pulls up pin 5 of U3.

Good advice on the pins and sockets. I will start cleaning and testing those.

My plan of action is as follows:
1. Replace U3 on the personality module
2. Check and clean all IC sockets and pins
3. I will start checking the character row count circuits to see why my 16th line is missing (while I wait for parts to arrive). This should be reasonably do-able with the scope, or may be the excuse I need to get a logic analyzer.
4. Test RAM chips and replace as needed

Anyone have recommendations on a RAM tester for these 2102 chips? I think it makes the most sense to be able to test the chips, that way when I get replacements I can confirm they work as well. I see there are some Arduino options, which would be great if I could breadboard a tester for this project. Most of the ones I'm finding on a quick search are from 6-7 years ago and links are dead :(

Open to any other advice/suggestions. I will post back when I make some headway or interesting discoveries (or get stumped)
 

Attachments

  • module2.jpg
    module2.jpg
    182.3 KB · Views: 3
Last edited:
Quick update:

I built a ram tester for the 2102 chips. Happily, only one tests bad. This tracks with what I was seeing on the screen. Marked the bad chip and put it back in the video ram section until I get a replacement.

Slowly making progress on the socket cleaning.

WIth regard to the ROM and personality module programming, since the board can be jumpered for either 2708, 9216, or 8316 ROMs, would it be easier to program one of the latter 2k ROMs that don't require the -5v rail with a fresh copy of SOLOS?
 

Attachments

  • ram test.jpg
    ram test.jpg
    111.9 KB · Views: 2
  • ramtestresult.jpg
    ramtestresult.jpg
    181.9 KB · Views: 2
Quick update:


WIth regard to the ROM and personality module programming, since the board can be jumpered for either 2708, 9216, or 8316 ROMs, would it be easier to program one of the latter 2k ROMs that don't require the -5v rail with a fresh copy of SOLOS?
Yes, the 2716 would be fine and just need the+5V supply (unless programming) . Buy an NOS unprogrammed one and you won't need an eraser and likely it will be good. Practically all programmers can program these too. A while back I bought some mil-spec European (Tesla made ) purple ceramic and Gold 2716's with gigantic dies in them. Every one I have used has been perfect. I have had trouble with ROM's like this of late manufacture with really tiny dies.

( My favorite module remains the one with the four MM5204's because they are are really vintage "classic parts" but very awkward to program without Martin's progammer, though there was a magazine article on how to make a home built programmer for these, but it is a painful way to do it)
 

Attachments

  • mm5204.jpg
    mm5204.jpg
    179 KB · Views: 6
  • ME5204.jpg
    ME5204.jpg
    100.7 KB · Views: 6
That brings up another question I had (forgive these novice question)--with the 2x 2708 ROMs, these are not used as an even-odd configuration, correct? The program is just broken across the two 1k chips, with U1 being enabled during the lower address calls, and U2 being used for the upper address calls? It looks like PT did the same thing with the 4x 5204 chips using a bit more logic to select the appropriate chip enable.

Is there anything special to do when programming SOLOS across multiple chips? I have not tried programming a ROM yet, maybe this is really a basic operation of the programmer? Or do I need to find the binary files already configured for multiple chips?

Separate question, looking at some of the less expensive logic analyzers. Is it worth getting a unit that can monitor both the 8 bit data bus + the 16 bit address but simultaneously? Or is a 16 channel analyzer sufficient for troubleshooting purposes? If anyone has any recommendations I'd be open to suggestions.
 
You can just paste the bytes from any of the versions of Solos into the Hex editor. If you find the one broken into 4 files for the MM5204's, you just have to make sure to put them in the correct order. The total file byte count fills the 2k space.

When I made the personality module replicas with the four MM5204's , I did that copying one original ROM file at a time, but I checked that they matched the other online files for Solos, to be sure there was no data corruption, and fortunately it was ok and matched, despite the fact that the stickers over the windows on the original ROMs were fairly thin and didn't block all the light. I replaced these with sticky Alfoil (builder's insulation foil) so no light can get in and I use a Brother label machine to label them, so I never forget which one is which and for programmed ones.

Later on for fun, I used some of my replica modules to create a ROM S-100 card to put various programs on, one of the most useful isthe MEMTEST program. Of course the personality module has its own unique interface with the SOL, so to get these to work on the S-100 bus, requires additional chips:


My SOL had a number of faults (as did my PET computer) but I have never had to deploy a logic analyser to fix them , a two channel scope is usually more than enough, though on occasions I have used the 3 or 4 channel option on my Tek 2465B scope. This is more than enough to confirm that the IC's are obeying their logic tables. In the PET though, there are some very narrow pulses called NEXT pulses with a low repetition rate, hard to see on a conventional scope, for that one a Digital scope helps, but I use my vintage Tek 464 storage scope to image them instead, I don't actually own a digital scope or a logic analyser. On occasions I have built things like custom decoders (by using TTL logic or programming a ROM) to detect specific logic states on the address or data lines and using that to synchronize one scope channel can help to create a specific time window, to look for a specific event in the circuitry with the other scope channel. I have attached an example of this sort of thing that plugs into the CPU socket I made for the PET which produce an output over specific address ranges to sync a scope to. Also it has the usual NOP generator on it and some helpful scope test points. I generaly tend to solve most problems on the hardware side of things because I'm not so good with the software, but I have managed to make some simple assembly programs work,
 

Attachments

  • PETDIAG.jpg
    PETDIAG.jpg
    384.5 KB · Views: 4
Last edited:
That makes sense... I guess most of the issues are diagnosable with a scope.

Having probed around some more, and re-read a lot of the theory of operation, I checked the CPU status pins. They all look fine. The control pins (with exception to reset, hold, & interrupt) are showing normal looking data activity. Previously I checked the data bus and address bus which are also showing normal looking data. So it seems the processor is indeed doing something. It appears the only unknown at this point is whether there's any valid code on the ROMs. This is while the screen is blank (not the null-nine crash pattern). They all appear to be symmetrical repeats, so perhaps the code has it stuck in a loop.

The only pin that was slightly odd is the "Ready" pin 23, which is overlayed with a lot of noise. Looking at it now, it appears this may just be from the adjacent clock pin 22. I'm assuming this noise is not a concern since it's above the threshold for state transition?

Instead of the logic analyzer I'll make a ROM programmer my next purchase.
 

Attachments

  • ready1.jpg
    ready1.jpg
    383.6 KB · Views: 1
  • ready2.jpg
    ready2.jpg
    383.5 KB · Views: 1
Received the replacement SRAM chip, now with a full set of working RAM the characters on screen are back to normal null-nines. I started digging back into the missing 16th character line. I did some math to confirm my understanding of the video display circuit (character dots, dots per horizontal line, time per line of characters, as shown in my notes on figure 8-4). So the active vertical time is 13.3 ms, followed by 3.3ms of blank time. This is reflected in the VDISP signal which I measured and is spot on with these times.

Long story short, I realized I could look at the VDISP signal and the composite output, and sure enough the missing row is the first row of characters. The horizontal sync signals are there so it appears that all of the video gen and count timings are working correctly. So this is some fault where the video display is not pulling display data from the video RAM? Possibly something wrong with addressing to row 0? Still parsing through this in my mind, open to suggestions/guidance on this.
 

Attachments

  • comp w VDISP 2.jpg
    comp w VDISP 2.jpg
    329.3 KB · Views: 1
  • comp w VDISP 3.jpg
    comp w VDISP 3.jpg
    329 KB · Views: 0
  • composite w VDISP.jpg
    composite w VDISP.jpg
    371.2 KB · Views: 1
  • Figure 8-4.png
    Figure 8-4.png
    1.7 MB · Views: 1
Back
Top