At 12:10 -0800 12/5/12, Pablo Vasquez wrote: , and I snipped most of it to keep 
the archive size down.
>Thank you very much Doug! Your comments are very refreshing. Below I answer 
>your questions.

Your pictures show what appears to be a least squares fit of a decaying 
exponential curve that is adjusted to fit 10 measured points. The x coordinate 
is "Air mass" and the y is probably a measure of incoming energy from a remote 
galaxy. You seem to be correcting for attenuation in the Earth's atmosphere.

Values shown are
TAUS = -.3420
TAUI = 0.1136
tauv = 84.805 +/- 918 986  749 452 309 441 200 000 000 000 ...
    ... with more zeros extending well off the right side of the page.
eta = 0.946 +/- 0.0
Twat = -3260.552 +/ 0.000
AZ = 185 deg
Date 10/10/2012 15:57:46 UT

The plotted curve is a horizontal straight line at y = 1.15, clearly nonsense.

The results are obviously wrong and are nothing like the earlier plot of very 
similar data some nine months before. There the values were reasonable and the 
plotted curve fit the observed points very well. That points to a hardware 
problem and it's quite possible that leaking capacitors are the culprit.

It's pretty clear that you are choosing some initial parameters for an 
exponential curve that might show up in the C source code as:

y = k1 + k2 * exp ( - k3 * x);  // or
y = k1 + k2 * pow(e ,  - k3 * x );  // with a constant e set to 2.7182838

The exponentials are calculated hundreds of times in a tight loop while each 
point is evaluated, the result is subtracted from the observation and then 
squared and added to a figure of merit. The loop continues with changes to the 
kx values to achieve a minimum figure of merit. That's a lot of work for the 
floating point processor which is a Motorola 68882 FPU and is not part of the 
68030 main processor.

That output with too many zeros looks a lot like a floating point infinity 
value.  The decimal conversion shows more than 16 digits which is impossible in 
the 52 bits of a floating double. It's likely a decimal value of about +10 ** 
307 (10^307 except in C, FORTRAN, and perl) and ought to be diagnosed as an 
error whenever it occurs. I'm surprised that it can happen in a long-used exp 
function which I believe is in the 68882 hardware where it ought to throw an 
exception that would result in an error message.  If the code uses the pow( ) 
approach that might be bypassed. Any divisions ought to be checked for a 
possible near zero denominator.

Before blaming the FPU some attention should be paid to those constants kx 
which are actually being varied to obtain the fit. They have to be stored in 
memory and an error in reading them using a memory bus can be disastrous. A 
test, deep in the loop, for reasonable values with a printf when something is 
funny would help with the diagnosis. Of course it would slow things down. The 
ks here are really tauw, eta, and Twat but there are probably some conversions 
to reasonable units. (And why is that last one capitalized? I don't want to be 
rejected as US spam here.) A bad memory read might also originate from dirty 
connections where memory is plugged in but there is a cache in the 68030 that 
would mitigate.

It's possible that temperature is involved in the FPU. It, like the '030, is a 
CMOS design which gets hot with usage. Those gates dissipate power only as the 
outputs change state. Faster clocks make for more heat. It's possible that some 
fan is allowing the FPU chip to heat up now when it didn't nine months ago. It 
would be interesting to see if the bad results still occur when, say, only 
every fifth measurement is processed.

I have a couple of IIci motherboards here that haven't had power applied for a 
decade but they are noted "working when removed". They show dark rings around 
several of the surface mounted aluminum electrolytic capacitors but they are 
all in the audio section of the board.  Some caps elsewhere are tantalum which 
do not leak. It wouldn't take too much to swab around the aluminum caps with a 
wet brush and clean water. Alcohol has been mentioned and is good for removing 
the water but water is best at removing the acid leakage. Isopropyl alcohol is 
good but the rubbing alcohol from most drug stores can be 50 % water. Dry 
isopropanol comes from commercial cleaning stores. 200 proof ethanol is great 
but it requires a license around here. Circuit boards are typically washed 
after initial assembly in a washing machine that looks a lot like a dishwasher. 
Water is used at temperatures near boiling. Deionized water but never 
dishwasher detergent or soap. Some parts, like a dry cell or trimming resistors 
have to be added afterward.

A look at the 5 volt DC power with an oscilloscope might be revealing. It 
should not show much ripple and it must not show dropouts or evidence of the 
main clock frequency which I think is about 50 MHz. It's pointless to try 
looking at the digital signal lines for rise time or interferences. Apple 
doesn't tell us enough for that to be helpful

The largest connector on the motherboard is the 10 pin power connector. I have 
been told that the most common problem in all of electronics is the bad solder 
joint. I agree. When Apple's boards are soldered all at once with a wave 
machine or in an oven the main consideration is getting hot enough but not too 
hot for the smallest items. That leaves the biggest solder lumps with a high 
probability of cracking. A lot of Macs have been repaired by reflowing solder 
joints on those connectors both on the motherboard and in the power supply.

Are you using MacLinux or another form of UNIX on this machine? If so you might 
have a memory management problem.  The IIFx had to have a Motorola 68881 (or 
something like that) to make UNIX possible. Otherwise C code for Macs has to be 
compiled with special compilers that use Pascal stack conventions for 
subroutine calls. But that kind of thing could never be intermittent the way 
you see it now.

Keep us posted. It's an interesting problem.

-- 
--> Use vowels every day or you'll get consonated <--

-- 
-----
You received this message because you are a member of the Vintage Macs group.
The list FAQ is at http://lowendmac.com/lists/vintagemacs.shtml and our 
netiquette guide is at http://www.lowendmac.com/lists/netiquette.shtml
To post to this group, send email to vintage-macs@googlegroups.com
To leave this group, send email to vintage-macs+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/vintage-macs

Support for older Macs: http://lowendmac.com/services/

Reply via email to