version 1.206, 2007/02/09 17:53:54
|
version 1.209, 2007/03/31 19:43:54
|
Line 851 DCell d = (DCell)n1 * (DCell)n2;
|
Line 851 DCell d = (DCell)n1 * (DCell)n2;
|
#endif |
#endif |
#ifdef ASM_SM_SLASH_REM |
#ifdef ASM_SM_SLASH_REM |
ASM_SM_SLASH_REM(DLO(d), DHI(d), n3, n4, n5); |
ASM_SM_SLASH_REM(DLO(d), DHI(d), n3, n4, n5); |
if (((DHI(d)^n3)<0) && n4!=0) { |
if (FLOORED_DIV && ((DHI(d)^n3)<0) && n4!=0) { |
if (CHECK_DIVISION && n5 == CELL_MIN) |
if (CHECK_DIVISION && n5 == CELL_MIN) |
throw(BALL_RESULTRANGE); |
throw(BALL_RESULTRANGE); |
n5--; |
n5--; |
n4+=n3; |
n4+=n3; |
} |
} |
#else |
#else |
DCell r = fmdiv(d,n3); |
DCell r = FLOORED_DIV ? fmdiv(d,n3) : smdiv(d,n3); |
n4=DHI(r); |
n4=DHI(r); |
n5=DLO(r); |
n5=DLO(r); |
#endif |
#endif |
Line 875 DCell d = (DCell)n1 * (DCell)n2;
|
Line 875 DCell d = (DCell)n1 * (DCell)n2;
|
#ifdef ASM_SM_SLASH_REM |
#ifdef ASM_SM_SLASH_REM |
Cell remainder; |
Cell remainder; |
ASM_SM_SLASH_REM(DLO(d), DHI(d), n3, remainder, n4); |
ASM_SM_SLASH_REM(DLO(d), DHI(d), n3, remainder, n4); |
if (((DHI(d)^n3)<0) && remainder!=0) { |
if (FLOORED_DIV && ((DHI(d)^n3)<0) && remainder!=0) { |
if (CHECK_DIVISION && n4 == CELL_MIN) |
if (CHECK_DIVISION && n4 == CELL_MIN) |
throw(BALL_RESULTRANGE); |
throw(BALL_RESULTRANGE); |
n4--; |
n4--; |
} |
} |
#else |
#else |
DCell r = fmdiv(d,n3); |
DCell r = FLOORED_DIV ? fmdiv(d,n3) : smdiv(d,n3); |
n4=DLO(r); |
n4=DLO(r); |
#endif |
#endif |
: |
: |
Line 1642 f = key_query((FILE*)wfileid);
|
Line 1642 f = key_query((FILE*)wfileid);
|
f = key_query(stdin); |
f = key_query(stdin); |
#endif |
#endif |
|
|
\+os |
|
|
|
stdin ( -- wfileid ) gforth |
stdin ( -- wfileid ) gforth |
""The standard input file of the Gforth process."" |
""The standard input file of the Gforth process."" |
wfileid = (Cell)stdin; |
wfileid = (Cell)stdin; |
Line 1656 stderr ( -- wfileid ) gforth
|
Line 1654 stderr ( -- wfileid ) gforth
|
""The standard error output file of the Gforth process."" |
""The standard error output file of the Gforth process."" |
wfileid = (Cell)stderr; |
wfileid = (Cell)stderr; |
|
|
|
\+os |
|
|
form ( -- urows ucols ) gforth |
form ( -- urows ucols ) gforth |
""The number of lines and columns in the terminal. These numbers may change |
""The number of lines and columns in the terminal. These numbers may |
with the window size."" |
change with the window size. Note that it depends on the OS whether |
|
this reflects the actual size and changes with the window size |
|
(currently only on Unix-like OSs). On other OSs you just get a |
|
default, and can tell Gforth the terminal size by setting the |
|
environment variables @code{COLUMNS} and @code{LINES} before starting |
|
Gforth."" |
/* we could block SIGWINCH here to get a consistent size, but I don't |
/* we could block SIGWINCH here to get a consistent size, but I don't |
think this is necessary or always beneficial */ |
think this is necessary or always beneficial */ |
urows=rows; |
urows=rows; |