version 1.25, 1999/03/23 20:24:18
|
version 1.26, 1999/05/06 21:33:32
|
Line 43
|
Line 43
|
\ [THEN] |
\ [THEN] |
|
|
: sfalign ( -- ) \ float-ext s-f-align |
: sfalign ( -- ) \ float-ext s-f-align |
|
\G If the data-space pointer is not single-float-aligned, reserve |
|
\G enough space to align it. |
here dup sfaligned swap ?DO bl c, LOOP ; |
here dup sfaligned swap ?DO bl c, LOOP ; |
: dfalign ( -- ) \ float-ext d-f-align |
: dfalign ( -- ) \ float-ext d-f-align |
|
\G If the data-space pointer is not double-float-aligned, reserve |
|
\G enough space to align it. |
here dup dfaligned swap ?DO bl c, LOOP ; |
here dup dfaligned swap ?DO bl c, LOOP ; |
|
|
1 sfloats constant sfloat+ ( sf-addr1 -- sf-addr2 ) \ float-ext s-float-plus |
1 sfloats constant sfloat+ ( sf-addr1 -- sf-addr2 ) \ float-ext s-float-plus |
|
\G Increment @i{sf-addr1} by the number of address units corresponding to the size of |
|
\G a single-precision IEEE floating-point number, to give @i{sf-addr2}."" |
dofield: lastxt code-address! \ change the constant into a field |
dofield: lastxt code-address! \ change the constant into a field |
|
|
1 dfloats constant dfloat+ ( df-addr1 -- df-addr2 ) \ float-ext d-float-plus |
1 dfloats constant dfloat+ ( df-addr1 -- df-addr2 ) \ float-ext d-float-plus |
|
\G Increment @i{df-addr1} by the number of address units corresponding to the size of |
|
\G a double-precision IEEE floating-point number, to give @i{df-addr2}."" |
dofield: lastxt code-address! \ change the constant into a field |
dofield: lastxt code-address! \ change the constant into a field |
|
|
: f, ( f -- ) here 1 floats allot f! ; |
: f, ( f -- ) \ gforth |
|
\G Reserve data space for one floating-point number and store |
|
\G @i{f} in the space. |
|
here 1 floats allot f! ; |
|
|
: fconstant ( r "name" -- ) \ float |
: fconstant ( r "name" -- ) \ float |
Create f, |
Create f, |