• Hello MLAers! We've re-enabled auto-approval for accounts. If you are still waiting on account approval, please check this thread for more information.

Centris with D39H 68LC040

I am nearly done repairing a Centris 610 of unknown provenance, literally pulled from the trash. I thought to look at the CPU and it's a D39H mask LC040 (20MHz). I can't be certain it shipped with that CPU.

I had a spare E23G (25MHz) and swapped it in, if only for cooler temps. So the D39H is now my spare.

I did a few quick searches, but have no answer to whether or not the FPU errata on D39H / E23G has a software workaround. Not sure one can recover from lost writes, but, I'm asking.

I presume there must be a workaround, else I need to find another 040. The Centris was running lots of disk I/O to shake it out, but possibly never hit an FPU instruction. So I don't know empirically what happens when it does.

IMG_5532.jpeg
 
Last edited:
As far as I know, all XC68LC040 have the errata and none can support a FPU emulator to run regular 68k FPU code. You want to use either a full '040 (to get the hardware FPU, best option), or a newer MC68LC040 that can support FPU emulation (why do that if you can get a full '040 instead, I don't know)

There is a way to make FPU emulation "work" on such CPU in theory, but practically speaking it is useless: add a NOP before every FPU instruction to avoid the issue altogether (see https://gnats.netbsd.org/13078). Of course, it means no "normal" software with FPU instructions would actually work, only recompiled ones, hence useless.

Many (most) Mac software of the era didn't use FPU instructions as they weren't supported out-of-the-box on some popular machines like the various LC and IIsi, so the FPU errata isn't much of a problem in practice. And i case you have/need such software, see above: full '040 is the best answer IMHO.
 
Not sure what you're asking, but only a few specific applications needed the FPU do having an LC040 without or full fat 040 switched over is seamless to the OS.
 
To clarify, I found only sketchy descriptions of the early 68LC040 mask FPU errata, and they all made it sound unrecoverable. But I also found that these masks were common in many Centris and LC lines of the day. I found an E23G in an LC 475. So, the problem is not insurmountable.

I like what @Melkhior said. There are ways that the Toolkit, the OS, and even developer apps could portably and efficiently dodge this errata. Just wanted to better understand how it is done.

So the D39H LC040 I pulled is a reliable Mac CPU, and I should hang on to it in case I need it in any future repairs.
 
Back
Top