"Double number + extensions"

double
Double Numbers use two cells per number.

The forth text interpreter' number is conversion is changed to
see numbers immediatly followed by a decimal point as a two-cell
number. Entering decimal 1234 leaves a single-cell number
1234 on the stack, and entering decimal 1234. leaves the
double cell number 1234 0 on the stack.
Tektronix CTE %version: bln_mpt1!5.11 % GNU LGPL
[ANS]
* 2CONSTANT ( x1 x2 "name" -- )

create a word that contains the specified twocell number in its body.
when the name is executed, these numbers are left on the stack
   12. 2CONSTANT X .s 
    ok
   X .s
   0 12 ok

double defining primitive

* 2VARIABLE ( -- )

CREATE a new variable definition. When executed leave
the >BODY address on stack. In pfe, the data area
of a 2VARIABLE is ERASEd initially.

double defining primitive

* 2LITERAL ( x1 x2 -- ) immediate

compile a double-cell number to the current definition. When
run, the doubele-cell is left on the stack for execution.
   ( -- x1 x2 )
(in most configurations this word is statesmart and it will do nothing
in interpret-mode. See 2LITERAL, for a non-immediate variant)

double compiling primitive

* D+ ( d1.ud1 d2.ud2 -- d3.ud3 )

the double-cell sum operation ( + )

double ordinary primitive

[ANS] D-

no special info, see general notes

double ordinary primitive

* D. ( d1.d1 -- )

freefield output for a double-cell number ( . )

double ordinary primitive

* D.R ( d1.d1 n -- )

aligned output for a double-cell number ( .R )

double ordinary primitive

* D0< ( d1.d1 -- flag )

the double-cell less-than-zero operation ( 0< )

double ordinary primitive

* D0= ( d1.d1 -- flag )

the double-cell equal-to-zero operation ( 0= )

double ordinary primitive

* D2* ( d1.d1 -- d1.d1' )

the double-cell arithmetic shiftleft-by-1 operation ( 2* )

double ordinary primitive

* D2/ ( d1.d1 -- d1.d1' )

the double-cell arithmetic shiftright-by-1 operation ( 2/ )

double ordinary primitive

* D< ( d1.d1 d2.d2 -- flag )

the double-cell is-less operation ( < )

double ordinary primitive

* D= ( d1.d1 d2.d2 -- flag )

the double-cell is-equal operation ( = )

double ordinary primitive

* D>S ( d.d -- n )

result is the numeric equivalent of d. If the double number was
greater than what could fit into a single cell number, the
modulo cellsize will be left since the higher-significant bits
are just DROPed

double ordinary primitive

* DABS ( d1.d1 -- d1.d1' )

the double-cell abs operation ( ABS )

double ordinary primitive

* DMAX ( d1.d1 d2.d2 -- d1.d1|d2.d2 )

the double-cell max operation ( MAX )

double ordinary primitive

* DMIN ( d1.d1 d2.d2 -- d1.d1|d2.d2 )

the double-cell max operation ( MIN )

double ordinary primitive

* DNEGATE ( d1.d1 -- d1.d1' )

the double-cell arithmetic negate operation ( NEGATE )

double ordinary primitive

[ANS] M*/

no special info, see general notes

double ordinary primitive

* M+ ( d1.d1 n1 -- d2.d2 )

the double-cell mixed-operand sum operation ( + / D+ )

double ordinary primitive

ENVIRONMENT ENVIRONMENT DOUBLE-EXT

no special info, see general notes

double ordinary constant

* ENVIRONMENT MAX-D ( -- d.d )

ENVIRONMENT definition to check with ENVIRONMENT?
if the double-cell wordset is present, the signed-max
number is left.

double ordinary primitive

ENVIRONMENT MAX-UD

no special info, see general notes

double ordinary primitive