Floating point math in FORTRAN IV on PDP-8

Rick Murphy rick at rickmurphy.net
Mon Sep 24 04:59:29 CDT 2018


On 9/23/2018 9:59 PM, Kyle Owen wrote:
> I've been informed that "set cpu noeae" will disable the EAE.

I just tried that:
Simulation stopped, PC: 01210 (JMP 1207)
sim> show cpu
CPU, idle enabled, stability wait = 20s, 32KW, no EAE
sim> c
R F4
*FLOAT/G$
     1.000002    1.000002    0.000000
     2.000002    1.414215    0.693147
     3.000002    1.732053    1.098614
     4.000002    2.000002    1.386296
     5.000002    2.236070    1.609439
     6.000002    2.449491    1.791761
     7.000002    2.645753    1.945912
     8.000001    2.828429    2.079443
     9.000002    3.000002    2.197226
  (Deleted)

> Just tried it with that...and there's the problem. No FPP or EAE seems 
> like a bad combination for running FORTRAN IV code that does any bit 
> of math operations.
>
> From SIMH (with EAE and FPP disabled):
>
> .R F4
> *FLOAT/G$
>     1.000002    1.000002    0.000000
>     2.000002    1.000031    0.693147
>     3.000002    1.224747    1.098614
>     4.000002    2.000002    1.386296
>     5.000002    5.798176    1.609439
>     6.000002    4.015202    1.791761
>     7.000002    3.522211    1.837092
>     8.000001    2.000061   -1.920560
>     9.000002    2.121345   -1.802777
...
> So, in summary, either EAE or FPP (or both) works fine. Without at 
> least one, don't count on any floating point math to be right (based 
> on my limited assessment).
>
> Surely this must've been known about 40+ years ago...right?

Since it's (apparently) working for me, it seems like your FRTS.SV is 
probably a version with a bug in the EAE-disabled FP emulator. Note that 
getting the parts of the compiler right is hard, which is why the PiDP-8 
project has put a lot of work into building their OS/8 distro from known 
good parts, mostly starting from source.
     -Rick



More information about the cctalk mailing list