|Re: HP41 Translator Pac for the 71|
Message #6 Posted by Garth Wilson on 10 Oct 2006, 1:38 p.m.,
in response to message #5 by GE
Yes, not unlimited depth. FP numbers are stored the same as they are in BASIC, with 64 bits each. L is at address 2FBC0, X at 2FBD0, Y at 2FBE0, Z at 2FBF0, and T at 2FC00. Just using the name puts the address on the data stack, like normal Forth variables. There's a set of FP words including a few for FP stack manipulation, like RDN, RUP, X<>Y, and RCL.
Is it X, Y, Z, T + L
In general, this is true of Forth; but remember that the HP-71's processor with its 64-bit registers was optimized for the big floating-point numbers, and going down to the shorter integers won't yield as much speed increase as you might expect. In BASIC, the HP-71 with the math module in 1983 could do a floating-point 1024-point complex FFT twice as fast as the IBM PC running GWBASIC, in spite of doing it with more digits than the PC, but the 71's speed at running an empty FOR-NEXT loop was not impressive. It's clear however that if someone wanted to make a new HP-71 Forth module and really optimize it, they could make it a much, much hotter performer than HP's Forth/Assembler module. Of course the user could get some of that advantage by re-writing a bunch of secondaries as primitives and maybe even re-writing some primitives himself too, but I myself didn't go to the extent of getting into the 71's assembly language.
I'm convinced great things can be done with Forth. My next attempts will be factoring 'big' (less than 40 bits) integers, should run very fast.
wilsonmineszdslextremez (replace the z's with @ and .com )
Edited: 10 Oct 2006, 1:43 p.m.