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 cctech
mailing list