Image Map Image Map
Page 1 of 14 1234511 ... LastLast
Results 1 to 10 of 135

Thread: Frustrating Problem

  1. #1
    Join Date
    Dec 2013
    Location
    Near Milwaukee Wisconsin
    Posts
    1,226

    Default Frustrating Problem

    I have a home made 8080 CPM 2.2 machine, with 2 eight inch floppy disk drives. All the circuits and boards are of my own design and manufacture. I started making this machine in the late 1970's and have been using it off and on since then. Since I retired about 10 years ago, I started to use this machine much more. The Forum has helped me greatly in getting installing CPM 2.2. Anyway, I ran into a problem that is rather frustrating. Occasionally, I will get CPM disk errors. That doesn't tell you much. Sometimes I'd get a few errors and then everything would be OK again. I blamed it on old media. During the past week or so, the errors came back. This time they were so constant that CPM would not load at all. I checked the disk drives. I have an interface to a DOS machine that allows my testing the drives and the media. I could not find anything wrong with drives or media or the 50 pin cable between the drives and the 8080 machine. With this eliminated, I looked at the 8080. First I verified that all my EEPROM memory was OK. I have a hot patch set up and sometimes I screw up the memory accidentally, but this was not the case. I added some logic traps to see what was happening. I found that my boot was working, it was selecting the A: drive and reading a few sectors to memory, but not always the same amount of sectors. Sometimes 5 sometimes 20, but never the total 49 sectors to completely load CPM. The traps told me that the machine was hanging up in a MSR polling loop, during the Command Phase of the FDC. For some reason, the loop was looking to see if the FDC was ready to received, but the FDC was ready to send. I was puzzled, so I figured I needed to look at the signals between the FDC(8272), DMA controller(8237) and the CPU (8080A). I have an old HP logic analyzer that is very handy for this. I decided to look at the DREQ, DACK, EOP/TC and the interrupt line. My FDC card was fitted onto the extender card and the LA was connected. I started with a short sampling period. I found 3.6 uSec DREQ pulse followed by a 1.4 uSec DACK pulse. This repeated after 31.6 uSec. Then after 128 bytes of transfer, I saw a 575 nSec EOP/TC pulse followed by an interrupt pulse 125 uSec later. The short sampling time only allowed me to see the transfer of one sector. I increased the sample time, which lengthened the observable period. I found that there was 173 mSec between sector transfers, which seems correct considering the RPM of the drive. I had to increase the sample time to 7 uSec to see the entire spread. 173 mSec x 49 sectors = 8.48 seconds. Then I realized, to be able to see this, CPM must be loading. I turned on the monitor and sure enough, there it was! I'm glad it is working, but what is the problem, how did it fix itself?

    Here is what I think
    1. Did the Logic analyzer loading on the monitored lines change something. I do not have any pull up resistors on any of these lines except the EOP of the DMA controller. I removed one LA line at a time and CPM loaded every time.

    2. Could the extender card have caused an intermittent connection to change? The ribbon cable from the FDC card to the back of the computer box is in a different position. Maybe some different stress on it caused a better connection?

    3. Could the extender card made a better connection to the motherboard?

    4. Could the extender card cause a different stress pattern on the FDC card causing an intermittent connection change on the FDC card? In the past I have had a problem with some wire wrap connections where the insulation of the wire did not come right up to the pin and made connect with something else. I have stared at all the connections for a long time and have found nothing that looked like this. I also reseated all the IC's and changed the 8272 chip.

    5. I don't think that there is a thermo problem. I have had the cover off the machine while it was failing to work and then again when it was. I have a heat sensor gun that I pointed at each chip and connection, but did not find any spots that were hotter than anything else.

    These problems that are on again and off again are frustrating. I'd rather have something catch fire and burn up. Does anyone have any other ideas that may help? Thanks

    Mike

  2. #2
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    33,123
    Blog Entries
    18

    Default

    Well, we have no construction or circuit details (e.g. schematic would be nice). It's hard to say.

  3. #3
    Join Date
    Dec 2013
    Location
    Near Milwaukee Wisconsin
    Posts
    1,226

    Default

    It sure is hard to say. But I don't think the trouble is with the circuitry design. The machine has worked for many years, but occasionally has a problem. It would be great to say that it always fails this particular way, but sometimes would read 5 sectors and then other maybe 20, but never the full 49. Then when it did fail it would get stuck in the MSR sense loop waiting for one thing and the FDC was offering the other. Here is a copy of my FDC card, it that helps. I think I really just had to write about this to help me better understand what was going one. Since I did nothing, other than some testing, I expect to see the problem again at a later date.

    I think this is my FDC file.
    8272_FDC.pdf

    Thanks Mike

  4. #4
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    33,123
    Blog Entries
    18

    Default

    Okay, that tells me something--you're using DMA and interrupts. Not all of these designs do.

    What does your code look like?

  5. #5

    Default

    I'm guess from what you said that you have wire wrapped your pcb's with wire wrap IC sockets with the usual long rectangular pins. While the wire wrap itself is pretty reliable as a long term connection, the IC pins in the IC sockets are definitely not.

    I found in my own vintage computer (in this case a SOL-20) that the connections between the socket claws and the IC pins, which are dissimilar metals, develop oxidation, go high resistance or even open intermittently and like many corroded connections can even exhibit junction or semiconductor like behavior. They can look ok to the naked eye too, but with magnification if you see a grey or a dark line where the socket claw was in contact with the IC pin, its a sign of a poor connection.

    Re-seating the IC's is only a temporary fix, the oxides must be physically scraped off the IC pin with a rectangular edged tool and finished if required with 2000 grade paper, also its best if you get an IC pin from a defunct IC, solder it to a small wire "handle" and use it with a probe with some contact cleaner to feel the tension of all the IC socket claws.

    I could only get reliability from my computer and all my S-100 cards after every IC pin's contact surface was cleaned and every IC socket cleaned and checked for tension. Its a very long process.

    It seems to take about 30-40 years or more for the IC pins and sockets to play up, but it might depend on environmental conditions, so it could be slower or faster.

    The other source of intermittent behavior I found was in gold plated DIP switches, that do not have sliding (self cleaning contacts) and these go intermittent too as the gold appears to acquire an insulating surface film which does not break down at low voltages & currents.

    So if I was dealing with an intermittent condition, in a vintage computer (home made or not) that once was known to work, I would go through and deal with these issues first, prior to trying to hunt down other hardware, or software causes of intermittent behavior.

  6. #6
    Join Date
    Oct 2016
    Location
    Dutchess County, New York, USA
    Posts
    65

    Default

    Don't forget to clean the S-100 connectors on the mobo too. Lots of dust and dirt falls into those things. Plus if it doesn't have active termination you might be seeing noise spikes, but then again you would have most likely had that problem years ago, I guess.
    Crazy old guy with a basement full of Pentium 1 laptops and parts

  7. #7
    Join Date
    Mar 2017
    Location
    New Jersey, USA
    Posts
    546

    Default

    Things don't work forever, not even things you made yourself. the 8" floppy drives for my late father's H-11 worked fine for years, then one day drive 0 started acting up. It would work just long enough to boot from, then it would become unresponsive. We figured there was probably some component going bad that worked when cool but failed as soon as it warmed up (which didn't take long). We never got around to investigating further.

    The problem here might be the same -- some component works when it's cold, but fails when it warms up. A thermal camera might help you identify the hot component. Or you try spraying each component with something very cold (and non-conductive) and see if that helps any. It's very much a trial-and-error proposition if you don't have schematics and test points that you can use to narrow down the options.

  8. #8

    Default

    Years ago, I did some experiments. While at Intel, I was often reseating things. In some cases, we found that things like using an orange eraser would actually cause later corrosion. It was from the rubber used. I believe this was from sulfur in the rubber.
    In looking at thinks, I took a scrap connector, gold plated, and a card edge, also gold plated, and did a careful 4 point ohm measurement of the contacts. I found the typical resistance to be on the order of 10-20 milliohms. My brother who worked for PG&E would use silicon grease on things like tail lamps to protect them from corrosion and moisture. So, I tried it on my connectors. After measuring, I found that the resistance was less than 2 milliohms ( the limit of the J Fluke meter I was using ).
    A few years later I had put together a ZX81 and used a RAM expansion. I found that even the slightest bump would kill the code. I applied some of the grease to the connection. After doing so, I could bounce the computer off the table from 3 feet without the code being trashed.
    Over the years, I've used various silicon grease products. The one problem I've had was that the oil would eventually leave, leaving a hard to remove scum. Still, a little fresh grease and it would come back to normal.
    Today we have a similar product specifically designed for connections, unlike that that I used. It is automotive dielectric grease. I suggest this be tried.
    Dwight

  9. #9
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    33,123
    Blog Entries
    18

    Default

    Yup, I use dielectric grease on connectors of all sorts. Great stuff.

    I think one of the chemical vendors (Kaig?) makes a spray that leaves a similar coating.

    The last time that I recommended that people not use pink pencil erasers on gold-plated edge connectors, I was pounced on by people saying "That's BS--I've been doing that for years and haven't had any problems". Forget that the connector manufacturers themselves specifically recommend against this.

    Feh, if you want to use orange marmalade on your edge connectors after cleaning them with 400 grit emery paper, go ahead--it's not my equipment.

    FWIW, for silver-plated connectors, I use "Cool Amp" powder.

  10. #10

    Default

    Notice the words, "I've been doing that for years". Most likely over and over and over.
    I wish there was something one could use on the silver coated mica used in the miniature IF filters. The silver gets sulfated, I think. It becomes shorted and ruins the IF transformer. I've cleaned them in the past but that is only temporary.
    Dwight

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •