projects
/
pforth
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
V25 with 64-bit support
[pforth]
/
csrc
/
pf_inner.c
diff --git
a/csrc/pf_inner.c
b/csrc/pf_inner.c
index
15f764f
..
87c8613
100644
(file)
--- a/
csrc/pf_inner.c
+++ b/
csrc/pf_inner.c
@@
-41,7
+41,7
@@
\r
#define STKPTR (DataStackPtr)
\r
#define M_POP (*(STKPTR++))
\r
\r
#define STKPTR (DataStackPtr)
\r
#define M_POP (*(STKPTR++))
\r
-#define M_PUSH(n) {*(--(STKPTR)) = (cell) (n);}
\r
+#define M_PUSH(n) {*(--(STKPTR)) = (cell
_t
) (n);}
\r
#define M_STACK(n) (STKPTR[n])
\r
\r
#define TOS (TopOfStack)
\r
#define M_STACK(n) (STKPTR[n])
\r
\r
#define TOS (TopOfStack)
\r
@@
-74,13
+74,13
@@
#define M_R_DROP {TORPTR++;}
\r
#define M_R_POP (*(TORPTR++))
\r
#define M_R_PICK(n) (TORPTR[n])
\r
#define M_R_DROP {TORPTR++;}
\r
#define M_R_POP (*(TORPTR++))
\r
#define M_R_PICK(n) (TORPTR[n])
\r
-#define M_R_PUSH(n) {*(--(TORPTR)) = (cell) (n);}
\r
+#define M_R_PUSH(n) {*(--(TORPTR)) = (cell
_t
) (n);}
\r
\r
/***************************************************************
\r
** Misc Forth macros
\r
***************************************************************/
\r
\r
\r
/***************************************************************
\r
** Misc Forth macros
\r
***************************************************************/
\r
\r
-#define M_BRANCH { InsPtr = (cell
*) (((uint8 *) InsPtr) + READ_LONG
_DIC(InsPtr)); }
\r
+#define M_BRANCH { InsPtr = (cell
_t *) (((uint8_t *) InsPtr) + READ_CELL
_DIC(InsPtr)); }
\r
\r
/* Cache top of data stack like in JForth. */
\r
#ifdef PF_SUPPORT_FP
\r
\r
/* Cache top of data stack like in JForth. */
\r
#ifdef PF_SUPPORT_FP
\r
@@
-124,7
+124,7
@@
ffDotS( ); \
\r
LOAD_REGISTERS;
\r
\r
ffDotS( ); \
\r
LOAD_REGISTERS;
\r
\r
-#define DO_VAR(varname) { PUSH_TOS; TOS = (cell) &varname; }
\r
+#define DO_VAR(varname) { PUSH_TOS; TOS = (cell
_t
) &varname; }
\r
\r
#ifdef PF_SUPPORT_FP
\r
#define M_THROW(err) \
\r
\r
#ifdef PF_SUPPORT_FP
\r
#define M_THROW(err) \
\r
@@
-154,14
+154,14
@@
#define TRACENAMES /* no names */
\r
#else
\r
/* Display name of executing routine. */
\r
#define TRACENAMES /* no names */
\r
#else
\r
/* Display name of executing routine. */
\r
-static void TraceNames( ExecToken Token,
int32
Level )
\r
+static void TraceNames( ExecToken Token,
cell_t
Level )
\r
{
\r
char *DebugName;
\r
{
\r
char *DebugName;
\r
-
int32
i;
\r
+
cell_t
i;
\r
\r
if( ffTokenToName( Token, &DebugName ) )
\r
{
\r
\r
if( ffTokenToName( Token, &DebugName ) )
\r
{
\r
- cell NumSpaces;
\r
+ cell
_t
NumSpaces;
\r
if( gCurrentTask->td_OUT > 0 ) EMIT_CR;
\r
EMIT( '>' );
\r
for( i=0; i<Level; i++ )
\r
if( gCurrentTask->td_OUT > 0 ) EMIT_CR;
\r
EMIT( '>' );
\r
for( i=0; i<Level; i++ )
\r
@@
-191,7
+191,7
@@
static void TraceNames( ExecToken Token, int32 Level )
#endif /* PF_NO_SHELL */
\r
\r
/* Use local copy of CODE_BASE for speed. */
\r
#endif /* PF_NO_SHELL */
\r
\r
/* Use local copy of CODE_BASE for speed. */
\r
-#define LOCAL_CODEREL_TO_ABS( a ) ((cell
*) (((int32
) a) + CodeBase))
\r
+#define LOCAL_CODEREL_TO_ABS( a ) ((cell
_t *) (((cell_t
) a) + CodeBase))
\r
\r
static const char *pfSelectFileModeCreate( int fam );
\r
static const char *pfSelectFileModeOpen( int fam );
\r
\r
static const char *pfSelectFileModeCreate( int fam );
\r
static const char *pfSelectFileModeOpen( int fam );
\r
@@
-253,12
+253,12
@@
static const char *pfSelectFileModeOpen( int fam )
/**************************************************************/
\r
int pfCatch( ExecToken XT )
\r
{
\r
/**************************************************************/
\r
int pfCatch( ExecToken XT )
\r
{
\r
- register cell TopOfStack; /* Cache for faster execution. */
\r
- register cell *DataStackPtr;
\r
- register cell *ReturnStackPtr;
\r
- register cell *InsPtr = NULL;
\r
- register cell Token;
\r
- cell Scratch;
\r
+ register cell
_t
TopOfStack; /* Cache for faster execution. */
\r
+ register cell
_t
*DataStackPtr;
\r
+ register cell
_t
*ReturnStackPtr;
\r
+ register cell
_t
*InsPtr = NULL;
\r
+ register cell
_t
Token;
\r
+ cell
_t
Scratch;
\r
\r
#ifdef PF_SUPPORT_FP
\r
PF_FLOAT fpTopOfStack;
\r
\r
#ifdef PF_SUPPORT_FP
\r
PF_FLOAT fpTopOfStack;
\r
@@
-268,17
+268,17
@@
int pfCatch( ExecToken XT )
PF_FLOAT *InitialFloatStack;
\r
#endif
\r
#ifdef PF_SUPPORT_TRACE
\r
PF_FLOAT *InitialFloatStack;
\r
#endif
\r
#ifdef PF_SUPPORT_TRACE
\r
-
int32
Level = 0;
\r
+
cell_t
Level = 0;
\r
#endif
\r
#endif
\r
- cell
*LocalsPtr = NULL;
\r
- cell
Temp;
\r
- cell
*InitialReturnStack;
\r
- cell
*InitialDataStack;
\r
- cell
FakeSecondary[2];
\r
+ cell
_t
*LocalsPtr = NULL;
\r
+ cell
_t
Temp;
\r
+ cell
_t
*InitialReturnStack;
\r
+ cell
_t
*InitialDataStack;
\r
+ cell
_t
FakeSecondary[2];
\r
char *CharPtr;
\r
char *CharPtr;
\r
- cell
*CellPtr;
\r
+ cell
_t
*CellPtr;
\r
FileStream *FileID;
\r
FileStream *FileID;
\r
- uint8 *CodeBase = CODE_BASE;
\r
+ uint8
_t
*CodeBase = CODE_BASE;
\r
ThrowCode ExceptionReturnCode = 0;
\r
\r
/* FIXME
\r
ThrowCode ExceptionReturnCode = 0;
\r
\r
/* FIXME
\r
@@
-327,10
+327,10
@@
DBUG(("pfCatch: Token = 0x%x\n", Token ));
M_R_PUSH( InsPtr );
\r
\r
/* Convert execution token to absolute address. */
\r
M_R_PUSH( InsPtr );
\r
\r
/* Convert execution token to absolute address. */
\r
- InsPtr = (cell *) ( LOCAL_CODEREL_TO_ABS(Token) );
\r
+ InsPtr = (cell
_t
*) ( LOCAL_CODEREL_TO_ABS(Token) );
\r
\r
/* Fetch token at IP. */
\r
\r
/* Fetch token at IP. */
\r
- Token = READ_
LONG
_DIC(InsPtr++);
\r
+ Token = READ_
CELL
_DIC(InsPtr++);
\r
\r
#ifdef PF_SUPPORT_TRACE
\r
/* Bump level for trace display */
\r
\r
#ifdef PF_SUPPORT_TRACE
\r
/* Bump level for trace display */
\r
@@
-351,7
+351,7
@@
DBUG(("pfCatch: Token = 0x%x\n", Token ));
** Used to implement semicolon.
\r
** Put first in switch because ID_EXIT==0 */
\r
case ID_EXIT:
\r
** Used to implement semicolon.
\r
** Put first in switch because ID_EXIT==0 */
\r
case ID_EXIT:
\r
- InsPtr = ( cell *) M_R_POP;
\r
+ InsPtr = ( cell
_t
*) M_R_POP;
\r
#ifdef PF_SUPPORT_TRACE
\r
Level--;
\r
#endif
\r
#ifdef PF_SUPPORT_TRACE
\r
Level--;
\r
#endif
\r
@@
-371,8
+371,8
@@
DBUG(("pfCatch: Token = 0x%x\n", Token ));
case ID_2LITERAL_P:
\r
/* hi part stored first, put on top of stack */
\r
PUSH_TOS;
\r
case ID_2LITERAL_P:
\r
/* hi part stored first, put on top of stack */
\r
PUSH_TOS;
\r
- TOS = READ_
LONG
_DIC(InsPtr++);
\r
- M_PUSH(READ_
LONG
_DIC(InsPtr++));
\r
+ TOS = READ_
CELL
_DIC(InsPtr++);
\r
+ M_PUSH(READ_
CELL
_DIC(InsPtr++));
\r
endcase;
\r
\r
case ID_2MINUS: TOS -= 2; endcase;
\r
endcase;
\r
\r
case ID_2MINUS: TOS -= 2; endcase;
\r
@@
-434,30
+434,30
@@
DBUG(("pfCatch: Token = 0x%x\n", Token ));
\r
case ID_ALITERAL_P:
\r
PUSH_TOS;
\r
\r
case ID_ALITERAL_P:
\r
PUSH_TOS;
\r
- TOS = (cell
) LOCAL_CODEREL_TO_ABS( READ_LONG
_DIC(InsPtr++) );
\r
+ TOS = (cell
_t) LOCAL_CODEREL_TO_ABS( READ_CELL
_DIC(InsPtr++) );
\r
endcase;
\r
\r
/* Allocate some extra and put validation identifier at base */
\r
#define PF_MEMORY_VALIDATOR (0xA81B4D69)
\r
case ID_ALLOCATE:
\r
/* Allocate at least one cell's worth because we clobber first cell. */
\r
endcase;
\r
\r
/* Allocate some extra and put validation identifier at base */
\r
#define PF_MEMORY_VALIDATOR (0xA81B4D69)
\r
case ID_ALLOCATE:
\r
/* Allocate at least one cell's worth because we clobber first cell. */
\r
- if ( TOS < sizeof(cell) )
\r
+ if ( TOS < sizeof(cell
_t
) )
\r
{
\r
{
\r
- Temp = sizeof(cell);
\r
+ Temp = sizeof(cell
_t
);
\r
}
\r
else
\r
{
\r
Temp = TOS;
\r
}
\r
/* Allocate extra cells worth because we store validation info. */
\r
}
\r
else
\r
{
\r
Temp = TOS;
\r
}
\r
/* Allocate extra cells worth because we store validation info. */
\r
- CellPtr = (cell
*) pfAllocMem( Temp + sizeof(cell
) );
\r
+ CellPtr = (cell
_t *) pfAllocMem( Temp + sizeof(cell_t
) );
\r
if( CellPtr )
\r
{
\r
/* This was broken into two steps because different compilers incremented
\r
** CellPtr before or after the XOR step. */
\r
if( CellPtr )
\r
{
\r
/* This was broken into two steps because different compilers incremented
\r
** CellPtr before or after the XOR step. */
\r
- Temp = (
int32
)CellPtr ^ PF_MEMORY_VALIDATOR;
\r
+ Temp = (
cell_t
)CellPtr ^ PF_MEMORY_VALIDATOR;
\r
*CellPtr++ = Temp;
\r
*CellPtr++ = Temp;
\r
- M_PUSH( (cell) CellPtr );
\r
+ M_PUSH( (cell
_t
) CellPtr );
\r
TOS = 0;
\r
}
\r
else
\r
TOS = 0;
\r
}
\r
else
\r
@@
-504,20
+504,30
@@
DBUGX(("After Branch: IP = 0x%x\n", InsPtr ));
\r
case ID_CALL_C:
\r
SAVE_REGISTERS;
\r
\r
case ID_CALL_C:
\r
SAVE_REGISTERS;
\r
- Scratch = READ_
LONG
_DIC(InsPtr++);
\r
+ Scratch = READ_
CELL
_DIC(InsPtr++);
\r
CallUserFunction( Scratch & 0xFFFF,
\r
(Scratch >> 31) & 1,
\r
(Scratch >> 24) & 0x7F );
\r
LOAD_REGISTERS;
\r
endcase;
\r
CallUserFunction( Scratch & 0xFFFF,
\r
(Scratch >> 31) & 1,
\r
(Scratch >> 24) & 0x7F );
\r
LOAD_REGISTERS;
\r
endcase;
\r
-
\r
- case ID_CFETCH: TOS = *((uint8 *) TOS); endcase;
\r
+
\r
+ /* Support 32/64 bit operation. */
\r
+ case ID_CELL:
\r
+ M_PUSH( TOS );
\r
+ TOS = sizeof(cell_t);
\r
+ endcase;
\r
+
\r
+ case ID_CELLS:
\r
+ TOS = TOS * sizeof(cell_t);
\r
+ endcase;
\r
+
\r
+ case ID_CFETCH: TOS = *((uint8_t *) TOS); endcase;
\r
\r
case ID_CMOVE: /* ( src dst n -- ) */
\r
{
\r
register char *DstPtr = (char *) M_POP; /* dst */
\r
CharPtr = (char *) M_POP; /* src */
\r
\r
case ID_CMOVE: /* ( src dst n -- ) */
\r
{
\r
register char *DstPtr = (char *) M_POP; /* dst */
\r
CharPtr = (char *) M_POP; /* src */
\r
- for( Scratch=0; (u
int32) Scratch < (uint32
) TOS ; Scratch++ )
\r
+ for( Scratch=0; (u
cell_t) Scratch < (ucell_t
) TOS ; Scratch++ )
\r
{
\r
*DstPtr++ = *CharPtr++;
\r
}
\r
{
\r
*DstPtr++ = *CharPtr++;
\r
}
\r
@@
-529,7
+539,7
@@
DBUGX(("After Branch: IP = 0x%x\n", InsPtr ));
{
\r
register char *DstPtr = ((char *) M_POP) + TOS; /* dst */
\r
CharPtr = ((char *) M_POP) + TOS;; /* src */
\r
{
\r
register char *DstPtr = ((char *) M_POP) + TOS; /* dst */
\r
CharPtr = ((char *) M_POP) + TOS;; /* src */
\r
- for( Scratch=0; (u
int32) Scratch < (uint32
) TOS ; Scratch++ )
\r
+ for( Scratch=0; (u
cell_t) Scratch < (ucell_t
) TOS ; Scratch++ )
\r
{
\r
*(--DstPtr) = *(--CharPtr);
\r
}
\r
{
\r
*(--DstPtr) = *(--CharPtr);
\r
}
\r
@@
-552,7
+562,7
@@
DBUGX(("After Branch: IP = 0x%x\n", InsPtr ));
case ID_COMPARE:
\r
{
\r
const char *s1, *s2;
\r
case ID_COMPARE:
\r
{
\r
const char *s1, *s2;
\r
-
int32
len1;
\r
+
cell_t
len1;
\r
s2 = (const char *) M_POP;
\r
len1 = M_POP;
\r
s1 = (const char *) M_POP;
\r
s2 = (const char *) M_POP;
\r
len1 = M_POP;
\r
s1 = (const char *) M_POP;
\r
@@
-574,10
+584,10
@@
DBUGX(("After Branch: IP = 0x%x\n", InsPtr ));
TOS = ( M_POP < TOS ) ? FTRUE : FFALSE ;
\r
endcase;
\r
case ID_COMP_U_GREATERTHAN:
\r
TOS = ( M_POP < TOS ) ? FTRUE : FFALSE ;
\r
endcase;
\r
case ID_COMP_U_GREATERTHAN:
\r
- TOS = ( ((u
int32)M_POP) > ((uint32
)TOS) ) ? FTRUE : FFALSE ;
\r
+ TOS = ( ((u
cell_t)M_POP) > ((ucell_t
)TOS) ) ? FTRUE : FFALSE ;
\r
endcase;
\r
case ID_COMP_U_LESSTHAN:
\r
endcase;
\r
case ID_COMP_U_LESSTHAN:
\r
- TOS = ( ((u
int32)M_POP) < ((uint32
)TOS) ) ? FTRUE : FFALSE ;
\r
+ TOS = ( ((u
cell_t)M_POP) < ((ucell_t
)TOS) ) ? FTRUE : FFALSE ;
\r
endcase;
\r
case ID_COMP_ZERO_EQUAL:
\r
TOS = ( TOS == 0 ) ? FTRUE : FFALSE ;
\r
endcase;
\r
case ID_COMP_ZERO_EQUAL:
\r
TOS = ( TOS == 0 ) ? FTRUE : FFALSE ;
\r
@@
-607,18
+617,18
@@
DBUGX(("After Branch: IP = 0x%x\n", InsPtr ));
case ID_CREATE_P:
\r
PUSH_TOS;
\r
/* Put address of body on stack. Insptr points after code start. */
\r
case ID_CREATE_P:
\r
PUSH_TOS;
\r
/* Put address of body on stack. Insptr points after code start. */
\r
- TOS = (cell
) ((char *)InsPtr - sizeof(cell
) + CREATE_BODY_OFFSET );
\r
+ TOS = (cell
_t) ((char *)InsPtr - sizeof(cell_t
) + CREATE_BODY_OFFSET );
\r
endcase;
\r
\r
case ID_CSTORE: /* ( c caddr -- ) */
\r
endcase;
\r
\r
case ID_CSTORE: /* ( c caddr -- ) */
\r
- *((uint8
*) TOS) = (uint8
) M_POP;
\r
+ *((uint8
_t *) TOS) = (uint8_t
) M_POP;
\r
M_DROP;
\r
endcase;
\r
\r
/* Double precision add. */
\r
case ID_D_PLUS: /* D+ ( al ah bl bh -- sl sh ) */
\r
{
\r
M_DROP;
\r
endcase;
\r
\r
/* Double precision add. */
\r
case ID_D_PLUS: /* D+ ( al ah bl bh -- sl sh ) */
\r
{
\r
- register ucell ah,al,bl,sh,sl;
\r
+ register ucell
_t
ah,al,bl,sh,sl;
\r
#define bh TOS
\r
bl = M_POP;
\r
ah = M_POP;
\r
#define bh TOS
\r
bl = M_POP;
\r
ah = M_POP;
\r
@@
-636,7
+646,7
@@
DBUGX(("After Branch: IP = 0x%x\n", InsPtr ));
/* Double precision subtract. */
\r
case ID_D_MINUS: /* D- ( al ah bl bh -- sl sh ) */
\r
{
\r
/* Double precision subtract. */
\r
case ID_D_MINUS: /* D- ( al ah bl bh -- sl sh ) */
\r
{
\r
- register ucell ah,al,bl,sh,sl;
\r
+ register ucell
_t
ah,al,bl,sh,sl;
\r
#define bh TOS
\r
bl = M_POP;
\r
ah = M_POP;
\r
#define bh TOS
\r
bl = M_POP;
\r
ah = M_POP;
\r
@@
-653,10
+663,10
@@
DBUGX(("After Branch: IP = 0x%x\n", InsPtr ));
\r
/* Perform 32*32 bit multiply for 64 bit result, by factoring into 16 bit quantities. */
\r
/* Using an improved algorithm suggested by Steve Green. */
\r
\r
/* Perform 32*32 bit multiply for 64 bit result, by factoring into 16 bit quantities. */
\r
/* Using an improved algorithm suggested by Steve Green. */
\r
- case ID_D_UMTIMES: /* M* ( a b -- pl ph ) */
\r
+ case ID_D_UMTIMES: /*
U
M* ( a b -- pl ph ) */
\r
{
\r
{
\r
- ucell ahi, alo, bhi, blo, temp;
\r
- ucell pl, ph;
\r
+ ucell
_t
ahi, alo, bhi, blo, temp;
\r
+ ucell
_t
pl, ph;
\r
/* Get values from stack. */
\r
ahi = M_POP;
\r
bhi = TOS;
\r
/* Get values from stack. */
\r
ahi = M_POP;
\r
bhi = TOS;
\r
@@
-693,9
+703,9
@@
DBUGX(("After Branch: IP = 0x%x\n", InsPtr ));
/* Perform 32*32 bit multiply for 64 bit result, using shift and add. */
\r
case ID_D_MTIMES: /* M* ( a b -- pl ph ) */
\r
{
\r
/* Perform 32*32 bit multiply for 64 bit result, using shift and add. */
\r
case ID_D_MTIMES: /* M* ( a b -- pl ph ) */
\r
{
\r
- cell a,b;
\r
- ucell ap,bp, ahi, alo, bhi, blo, temp;
\r
- ucell pl, ph;
\r
+ cell
_t
a,b;
\r
+ ucell
_t
ap,bp, ahi, alo, bhi, blo, temp;
\r
+ ucell
_t
pl, ph;
\r
/* Get values from stack. */
\r
a = M_POP;
\r
b = TOS;
\r
/* Get values from stack. */
\r
a = M_POP;
\r
b = TOS;
\r
@@
-749,7
+759,7
@@
DBUGX(("After Branch: IP = 0x%x\n", InsPtr ));
/* Perform 64/32 bit divide for 32 bit result, using shift and subtract. */
\r
case ID_D_UMSMOD: /* UM/MOD ( al ah bdiv -- rem q ) */
\r
{
\r
/* Perform 64/32 bit divide for 32 bit result, using shift and subtract. */
\r
case ID_D_UMSMOD: /* UM/MOD ( al ah bdiv -- rem q ) */
\r
{
\r
- ucell ah,al, q,di, bl,bh, sl,sh;
\r
+ ucell
_t
ah,al, q,di, bl,bh, sl,sh;
\r
ah = M_POP;
\r
al = M_POP;
\r
bh = TOS;
\r
ah = M_POP;
\r
al = M_POP;
\r
bh = TOS;
\r
@@
-785,23
+795,24
@@
DBUGX(("After Branch: IP = 0x%x\n", InsPtr ));
/* Perform 64/32 bit divide for 64 bit result, using shift and subtract. */
\r
case ID_D_MUSMOD: /* MU/MOD ( al am bdiv -- rem ql qh ) */
\r
{
\r
/* Perform 64/32 bit divide for 64 bit result, using shift and subtract. */
\r
case ID_D_MUSMOD: /* MU/MOD ( al am bdiv -- rem ql qh ) */
\r
{
\r
- register ucell ah,am,al,ql,qh,di;
\r
-#define bdiv ((ucell)TOS)
\r
+ register ucell
_t
ah,am,al,ql,qh,di;
\r
+#define bdiv ((ucell
_t
)TOS)
\r
ah = 0;
\r
am = M_POP;
\r
al = M_POP;
\r
qh = ql = 0;
\r
ah = 0;
\r
am = M_POP;
\r
al = M_POP;
\r
qh = ql = 0;
\r
- for( di=0; di<64; di++ )
\r
+#define NBITS (sizeof(cell_t)*8)
\r
+ for( di=0; di<2*NBITS; di++ )
\r
{
\r
if( bdiv <= ah )
\r
{
\r
ah = ah - bdiv;
\r
ql |= 1;
\r
}
\r
{
\r
if( bdiv <= ah )
\r
{
\r
ah = ah - bdiv;
\r
ql |= 1;
\r
}
\r
- qh = (qh << 1) | (ql >>
31
);
\r
+ qh = (qh << 1) | (ql >>
(NBITS-1)
);
\r
ql = ql << 1;
\r
ql = ql << 1;
\r
- ah = (ah << 1) | (am >>
31
);
\r
- am = (am << 1) | (al >>
31
);
\r
+ ah = (ah << 1) | (am >>
(NBITS-1)
);
\r
+ am = (am << 1) | (al >>
(NBITS-1)
);
\r
al = al << 1;
\r
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
\r
}
\r
al = al << 1;
\r
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
\r
}
\r
@@
-860,7
+871,7
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
\r
case ID_EOL: /* ( -- end_of_line_char ) */
\r
PUSH_TOS;
\r
\r
case ID_EOL: /* ( -- end_of_line_char ) */
\r
PUSH_TOS;
\r
- TOS = (cell) '\n';
\r
+ TOS = (cell
_t
) '\n';
\r
endcase;
\r
\r
case ID_ERRORQ_P: /* ( flag num -- , quit if flag true ) */
\r
endcase;
\r
\r
case ID_ERRORQ_P: /* ( flag num -- , quit if flag true ) */
\r
@@
-890,12
+901,12
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
#endif
\r
if( IsTokenPrimitive( TOS ) )
\r
{
\r
#endif
\r
if( IsTokenPrimitive( TOS ) )
\r
{
\r
- WRITE_
LONG_DIC( (cell
*) &FakeSecondary[0], TOS); /* Build a fake secondary and execute it. */
\r
+ WRITE_
CELL_DIC( (cell_t
*) &FakeSecondary[0], TOS); /* Build a fake secondary and execute it. */
\r
InsPtr = &FakeSecondary[0];
\r
}
\r
else
\r
{
\r
InsPtr = &FakeSecondary[0];
\r
}
\r
else
\r
{
\r
- InsPtr = (cell *) LOCAL_CODEREL_TO_ABS(TOS);
\r
+ InsPtr = (cell
_t
*) LOCAL_CODEREL_TO_ABS(TOS);
\r
}
\r
M_DROP;
\r
endcase;
\r
}
\r
M_DROP;
\r
endcase;
\r
@@
-904,14
+915,14
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
#if (defined(PF_BIG_ENDIAN_DIC) || defined(PF_LITTLE_ENDIAN_DIC))
\r
if( IN_DICS( TOS ) )
\r
{
\r
#if (defined(PF_BIG_ENDIAN_DIC) || defined(PF_LITTLE_ENDIAN_DIC))
\r
if( IN_DICS( TOS ) )
\r
{
\r
- TOS = (cell
) READ_LONG_DIC((cell
*)TOS);
\r
+ TOS = (cell
_t) READ_CELL_DIC((cell_t
*)TOS);
\r
}
\r
else
\r
{
\r
}
\r
else
\r
{
\r
- TOS = *((cell *)TOS);
\r
+ TOS = *((cell
_t
*)TOS);
\r
}
\r
#else
\r
}
\r
#else
\r
- TOS = *((cell *)TOS);
\r
+ TOS = *((cell
_t
*)TOS);
\r
#endif
\r
endcase;
\r
\r
#endif
\r
endcase;
\r
\r
@@
-922,12
+933,12
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
if( Scratch < TIB_SIZE-2 )
\r
{
\r
const char *famText = pfSelectFileModeCreate( TOS );
\r
if( Scratch < TIB_SIZE-2 )
\r
{
\r
const char *famText = pfSelectFileModeCreate( TOS );
\r
- pfCopyMemory( gScratch, (char *) Temp, (u
int32
) Scratch );
\r
+ pfCopyMemory( gScratch, (char *) Temp, (u
cell_t
) Scratch );
\r
gScratch[Scratch] = '\0';
\r
DBUG(("Create file = %s with famTxt %s\n", gScratch, famText ));
\r
FileID = sdOpenFile( gScratch, famText );
\r
TOS = ( FileID == NULL ) ? -1 : 0 ;
\r
gScratch[Scratch] = '\0';
\r
DBUG(("Create file = %s with famTxt %s\n", gScratch, famText ));
\r
FileID = sdOpenFile( gScratch, famText );
\r
TOS = ( FileID == NULL ) ? -1 : 0 ;
\r
- M_PUSH( (cell) FileID );
\r
+ M_PUSH( (cell
_t
) FileID );
\r
}
\r
else
\r
{
\r
}
\r
else
\r
{
\r
@@
-944,13
+955,13
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
if( Scratch < TIB_SIZE-2 )
\r
{
\r
const char *famText = pfSelectFileModeOpen( TOS );
\r
if( Scratch < TIB_SIZE-2 )
\r
{
\r
const char *famText = pfSelectFileModeOpen( TOS );
\r
- pfCopyMemory( gScratch, (char *) Temp, (u
int32
) Scratch );
\r
+ pfCopyMemory( gScratch, (char *) Temp, (u
cell_t
) Scratch );
\r
gScratch[Scratch] = '\0';
\r
DBUG(("Open file = %s\n", gScratch ));
\r
FileID = sdOpenFile( gScratch, famText );
\r
\r
TOS = ( FileID == NULL ) ? -1 : 0 ;
\r
gScratch[Scratch] = '\0';
\r
DBUG(("Open file = %s\n", gScratch ));
\r
FileID = sdOpenFile( gScratch, famText );
\r
\r
TOS = ( FileID == NULL ) ? -1 : 0 ;
\r
- M_PUSH( (cell) FileID );
\r
+ M_PUSH( (cell
_t
) FileID );
\r
}
\r
else
\r
{
\r
}
\r
else
\r
{
\r
@@
-1026,7
+1037,7
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
register char *DstPtr;
\r
Temp = M_POP; /* num */
\r
DstPtr = (char *) M_POP; /* dst */
\r
register char *DstPtr;
\r
Temp = M_POP; /* num */
\r
DstPtr = (char *) M_POP; /* dst */
\r
- for( Scratch=0; (u
int32) Scratch < (uint32
) Temp ; Scratch++ )
\r
+ for( Scratch=0; (u
cell_t) Scratch < (ucell_t
) Temp ; Scratch++ )
\r
{
\r
*DstPtr++ = (char) TOS;
\r
}
\r
{
\r
*DstPtr++ = (char) TOS;
\r
}
\r
@@
-1042,7
+1053,7
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
\r
case ID_FINDNFA:
\r
TOS = ffFindNFA( (const ForthString *) TOS, (const ForthString **) &Temp );
\r
\r
case ID_FINDNFA:
\r
TOS = ffFindNFA( (const ForthString *) TOS, (const ForthString **) &Temp );
\r
- M_PUSH( (cell) Temp );
\r
+ M_PUSH( (cell
_t
) Temp );
\r
endcase;
\r
#endif /* !PF_NO_SHELL */
\r
\r
endcase;
\r
#endif /* !PF_NO_SHELL */
\r
\r
@@
-1059,9
+1070,9
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
}
\r
else
\r
{
\r
}
\r
else
\r
{
\r
- CellPtr = (cell *) TOS;
\r
+ CellPtr = (cell
_t
*) TOS;
\r
CellPtr--;
\r
CellPtr--;
\r
- if( ((u
int32)*CellPtr) != ((uint32
)CellPtr ^ PF_MEMORY_VALIDATOR))
\r
+ if( ((u
cell_t)*CellPtr) != ((ucell_t
)CellPtr ^ PF_MEMORY_VALIDATOR))
\r
{
\r
TOS = -2; /* FIXME error code */
\r
}
\r
{
\r
TOS = -2; /* FIXME error code */
\r
}
\r
@@
-1078,14
+1089,14
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
\r
case ID_HERE:
\r
PUSH_TOS;
\r
\r
case ID_HERE:
\r
PUSH_TOS;
\r
- TOS = (cell)CODE_HERE;
\r
+ TOS = (cell
_t
)CODE_HERE;
\r
endcase;
\r
\r
case ID_NUMBERQ_P: /* ( addr -- 0 | n 1 ) */
\r
/* Convert using number converter in 'C'.
\r
** Only supports single precision for bootstrap.
\r
*/
\r
endcase;
\r
\r
case ID_NUMBERQ_P: /* ( addr -- 0 | n 1 ) */
\r
/* Convert using number converter in 'C'.
\r
** Only supports single precision for bootstrap.
\r
*/
\r
- TOS = (cell) ffNumberQ( (char *) TOS, &Temp );
\r
+ TOS = (cell
_t
) ffNumberQ( (char *) TOS, &Temp );
\r
if( TOS == NUM_TYPE_SINGLE)
\r
{
\r
M_PUSH( Temp ); /* Push single number */
\r
if( TOS == NUM_TYPE_SINGLE)
\r
{
\r
M_PUSH( Temp ); /* Push single number */
\r
@@
-1137,7
+1148,7
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
case ID_LITERAL_P:
\r
DBUG(("ID_LITERAL_P: InsPtr = 0x%x, *InsPtr = 0x%x\n", InsPtr, *InsPtr ));
\r
PUSH_TOS;
\r
case ID_LITERAL_P:
\r
DBUG(("ID_LITERAL_P: InsPtr = 0x%x, *InsPtr = 0x%x\n", InsPtr, *InsPtr ));
\r
PUSH_TOS;
\r
- TOS = READ_
LONG
_DIC(InsPtr++);
\r
+ TOS = READ_
CELL
_DIC(InsPtr++);
\r
endcase;
\r
\r
#ifndef PF_NO_SHELL
\r
endcase;
\r
\r
#ifndef PF_NO_SHELL
\r
@@
-1191,8
+1202,8
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
case ID_LOCAL_ENTRY: /* ( x0 x1 ... xn n -- ) */
\r
/* create local stack frame */
\r
{
\r
case ID_LOCAL_ENTRY: /* ( x0 x1 ... xn n -- ) */
\r
/* create local stack frame */
\r
{
\r
-
int32
i = TOS;
\r
- cell *lp;
\r
+
cell_t
i = TOS;
\r
+ cell
_t
*lp;
\r
DBUG(("LocalEntry: n = %d\n", TOS));
\r
/* End of locals. Create stack frame */
\r
DBUG(("LocalEntry: before RP@ = 0x%x, LP = 0x%x\n",
\r
DBUG(("LocalEntry: n = %d\n", TOS));
\r
/* End of locals. Create stack frame */
\r
DBUG(("LocalEntry: before RP@ = 0x%x, LP = 0x%x\n",
\r
@@
-1215,7
+1226,7
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
DBUG(("LocalExit: before RP@ = 0x%x, LP = 0x%x\n",
\r
TORPTR, LocalsPtr));
\r
TORPTR = LocalsPtr;
\r
DBUG(("LocalExit: before RP@ = 0x%x, LP = 0x%x\n",
\r
TORPTR, LocalsPtr));
\r
TORPTR = LocalsPtr;
\r
- LocalsPtr = (cell *) M_R_POP;
\r
+ LocalsPtr = (cell
_t
*) M_R_POP;
\r
DBUG(("LocalExit: after RP@ = 0x%x, LP = 0x%x\n",
\r
TORPTR, LocalsPtr));
\r
endcase;
\r
DBUG(("LocalExit: after RP@ = 0x%x, LP = 0x%x\n",
\r
TORPTR, LocalsPtr));
\r
endcase;
\r
@@
-1278,11
+1289,11
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
\r
#ifndef PF_NO_SHELL
\r
case ID_NAME_TO_TOKEN:
\r
\r
#ifndef PF_NO_SHELL
\r
case ID_NAME_TO_TOKEN:
\r
- TOS = (cell) NameToToken((ForthString *)TOS);
\r
+ TOS = (cell
_t
) NameToToken((ForthString *)TOS);
\r
endcase;
\r
\r
case ID_NAME_TO_PREVIOUS:
\r
endcase;
\r
\r
case ID_NAME_TO_PREVIOUS:
\r
- TOS = (cell) NameToPrevious((ForthString *)TOS);
\r
+ TOS = (cell
_t
) NameToPrevious((ForthString *)TOS);
\r
endcase;
\r
#endif
\r
\r
endcase;
\r
#endif
\r
\r
@@
-1306,23
+1317,23
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
#if (defined(PF_BIG_ENDIAN_DIC) || defined(PF_LITTLE_ENDIAN_DIC))
\r
if( IN_DICS( TOS ) )
\r
{
\r
#if (defined(PF_BIG_ENDIAN_DIC) || defined(PF_LITTLE_ENDIAN_DIC))
\r
if( IN_DICS( TOS ) )
\r
{
\r
- Scratch = READ_
LONG_DIC((cell
*)TOS);
\r
+ Scratch = READ_
CELL_DIC((cell_t
*)TOS);
\r
Scratch += M_POP;
\r
Scratch += M_POP;
\r
- WRITE_
LONG_DIC((cell
*)TOS,Scratch);
\r
+ WRITE_
CELL_DIC((cell_t
*)TOS,Scratch);
\r
}
\r
else
\r
{
\r
}
\r
else
\r
{
\r
- *((cell *)TOS) += M_POP;
\r
+ *((cell
_t
*)TOS) += M_POP;
\r
}
\r
#else
\r
}
\r
#else
\r
- *((cell *)TOS) += M_POP;
\r
+ *((cell
_t
*)TOS) += M_POP;
\r
#endif
\r
M_DROP;
\r
endcase;
\r
\r
case ID_PLUSLOOP_P: /* ( delta -- ) ( R: index limit -- | index limit ) */
\r
{
\r
#endif
\r
M_DROP;
\r
endcase;
\r
\r
case ID_PLUSLOOP_P: /* ( delta -- ) ( R: index limit -- | index limit ) */
\r
{
\r
- ucell OldIndex, NewIndex, Limit;
\r
+ ucell
_t
OldIndex, NewIndex, Limit;
\r
\r
Limit = M_R_POP;
\r
OldIndex = M_R_POP;
\r
\r
Limit = M_R_POP;
\r
OldIndex = M_R_POP;
\r
@@
-1397,10
+1408,10
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
/* Resize memory allocated by ALLOCATE. */
\r
case ID_RESIZE: /* ( addr1 u -- addr2 result ) */
\r
{
\r
/* Resize memory allocated by ALLOCATE. */
\r
case ID_RESIZE: /* ( addr1 u -- addr2 result ) */
\r
{
\r
- cell
*Addr1 = (cell
*) M_POP;
\r
+ cell
_t *Addr1 = (cell_t
*) M_POP;
\r
// Point to validator below users address.
\r
// Point to validator below users address.
\r
- cell *FreePtr = Addr1 - 1;
\r
- if( ((u
int32)*FreePtr) != ((uint32
)FreePtr ^ PF_MEMORY_VALIDATOR))
\r
+ cell
_t
*FreePtr = Addr1 - 1;
\r
+ if( ((u
cell_t)*FreePtr) != ((ucell_t
)FreePtr ^ PF_MEMORY_VALIDATOR))
\r
{
\r
// 090218 - Fixed bug, was returning zero.
\r
M_PUSH( Addr1 );
\r
{
\r
// 090218 - Fixed bug, was returning zero.
\r
M_PUSH( Addr1 );
\r
@@
-1409,15
+1420,15
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
else
\r
{
\r
/* Try to allocate. */
\r
else
\r
{
\r
/* Try to allocate. */
\r
- CellPtr = (cell
*) pfAllocMem( TOS + sizeof(cell
) );
\r
+ CellPtr = (cell
_t *) pfAllocMem( TOS + sizeof(cell_t
) );
\r
if( CellPtr )
\r
{
\r
/* Copy memory including validation. */
\r
if( CellPtr )
\r
{
\r
/* Copy memory including validation. */
\r
- pfCopyMemory( (char *) CellPtr, (char *) FreePtr, TOS + sizeof(cell) );
\r
- *CellPtr = (cell
)(((uint32)CellPtr) ^ (uint32
)PF_MEMORY_VALIDATOR);
\r
+ pfCopyMemory( (char *) CellPtr, (char *) FreePtr, TOS + sizeof(cell
_t
) );
\r
+ *CellPtr = (cell
_t)(((ucell_t)CellPtr) ^ (ucell_t
)PF_MEMORY_VALIDATOR);
\r
// 090218 - Fixed bug that was incrementing the address twice. Thanks Reinhold Straub.
\r
// Increment past validator to user address.
\r
// 090218 - Fixed bug that was incrementing the address twice. Thanks Reinhold Straub.
\r
// Increment past validator to user address.
\r
- M_PUSH( (cell) (CellPtr + 1) );
\r
+ M_PUSH( (cell
_t
) (CellPtr + 1) );
\r
TOS = 0; // Result code.
\r
// Mark old cell as dead so we can't free it twice.
\r
FreePtr[0] = 0xDeadBeef;
\r
TOS = 0; // Result code.
\r
// Mark old cell as dead so we can't free it twice.
\r
FreePtr[0] = 0xDeadBeef;
\r
@@
-1439,18
+1450,18
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
*/
\r
case ID_RP_FETCH: /* ( -- rp , address of top of return stack ) */
\r
PUSH_TOS;
\r
*/
\r
case ID_RP_FETCH: /* ( -- rp , address of top of return stack ) */
\r
PUSH_TOS;
\r
- TOS = (cell)TORPTR; /* value before calling RP@ */
\r
+ TOS = (cell
_t
)TORPTR; /* value before calling RP@ */
\r
endcase;
\r
\r
case ID_RP_STORE: /* ( rp -- , address of top of return stack ) */
\r
endcase;
\r
\r
case ID_RP_STORE: /* ( rp -- , address of top of return stack ) */
\r
- TORPTR = (cell *) TOS;
\r
+ TORPTR = (cell
_t
*) TOS;
\r
M_DROP;
\r
endcase;
\r
\r
case ID_ROLL: /* ( xu xu-1 xu-1 ... x0 u -- xu-1 xu-1 ... x0 xu ) */
\r
{
\r
M_DROP;
\r
endcase;
\r
\r
case ID_ROLL: /* ( xu xu-1 xu-1 ... x0 u -- xu-1 xu-1 ... x0 xu ) */
\r
{
\r
-
int32
ri;
\r
- cell *srcPtr, *dstPtr;
\r
+
cell_t
ri;
\r
+ cell
_t
*srcPtr, *dstPtr;
\r
Scratch = M_STACK(TOS);
\r
srcPtr = &M_STACK(TOS-1);
\r
dstPtr = &M_STACK(TOS);
\r
Scratch = M_STACK(TOS);
\r
srcPtr = &M_STACK(TOS-1);
\r
dstPtr = &M_STACK(TOS);
\r
@@
-1472,12
+1483,12
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
endcase;
\r
\r
/* Logical right shift */
\r
endcase;
\r
\r
/* Logical right shift */
\r
- case ID_RSHIFT: { TOS = ((u
int32
)M_POP) >> TOS; } endcase;
\r
+ case ID_RSHIFT: { TOS = ((u
cell_t
)M_POP) >> TOS; } endcase;
\r
\r
#ifndef PF_NO_SHELL
\r
case ID_SAVE_FORTH_P: /* ( $name Entry NameSize CodeSize -- err ) */
\r
{
\r
\r
#ifndef PF_NO_SHELL
\r
case ID_SAVE_FORTH_P: /* ( $name Entry NameSize CodeSize -- err ) */
\r
{
\r
-
int32
NameSize, CodeSize, EntryPoint;
\r
+
cell_t
NameSize, CodeSize, EntryPoint;
\r
CodeSize = TOS;
\r
NameSize = M_POP;
\r
EntryPoint = M_POP;
\r
CodeSize = TOS;
\r
NameSize = M_POP;
\r
EntryPoint = M_POP;
\r
@@
-1499,11
+1510,11
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
\r
case ID_SP_FETCH: /* ( -- sp , address of top of stack, sorta ) */
\r
PUSH_TOS;
\r
\r
case ID_SP_FETCH: /* ( -- sp , address of top of stack, sorta ) */
\r
PUSH_TOS;
\r
- TOS = (cell)STKPTR;
\r
+ TOS = (cell
_t
)STKPTR;
\r
endcase;
\r
\r
case ID_SP_STORE: /* ( sp -- , address of top of stack, sorta ) */
\r
endcase;
\r
\r
case ID_SP_STORE: /* ( sp -- , address of top of stack, sorta ) */
\r
- STKPTR = (cell *) TOS;
\r
+ STKPTR = (cell
_t
*) TOS;
\r
M_DROP;
\r
endcase;
\r
\r
M_DROP;
\r
endcase;
\r
\r
@@
-1511,14
+1522,14
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
#if (defined(PF_BIG_ENDIAN_DIC) || defined(PF_LITTLE_ENDIAN_DIC))
\r
if( IN_DICS( TOS ) )
\r
{
\r
#if (defined(PF_BIG_ENDIAN_DIC) || defined(PF_LITTLE_ENDIAN_DIC))
\r
if( IN_DICS( TOS ) )
\r
{
\r
- WRITE_
LONG_DIC((cell *)
TOS,M_POP);
\r
+ WRITE_
CELL_DIC(
TOS,M_POP);
\r
}
\r
else
\r
{
\r
}
\r
else
\r
{
\r
- *((cell *)TOS) = M_POP;
\r
+ *((cell
_t
*)TOS) = M_POP;
\r
}
\r
#else
\r
}
\r
#else
\r
- *((cell *)TOS) = M_POP;
\r
+ *((cell
_t
*)TOS) = M_POP;
\r
#endif
\r
M_DROP;
\r
endcase;
\r
#endif
\r
M_DROP;
\r
endcase;
\r
@@
-1527,7
+1538,7
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
Scratch = M_POP; /* cnt */
\r
Temp = M_POP; /* addr */
\r
TOS = ffScan( (char *) Temp, Scratch, (char) TOS, &CharPtr );
\r
Scratch = M_POP; /* cnt */
\r
Temp = M_POP; /* addr */
\r
TOS = ffScan( (char *) Temp, Scratch, (char) TOS, &CharPtr );
\r
- M_PUSH((cell) CharPtr);
\r
+ M_PUSH((cell
_t
) CharPtr);
\r
endcase;
\r
\r
#ifndef PF_NO_SHELL
\r
endcase;
\r
\r
#ifndef PF_NO_SHELL
\r
@@
-1543,13
+1554,13
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
Scratch = M_POP; /* cnt */
\r
Temp = M_POP; /* addr */
\r
TOS = ffSkip( (char *) Temp, Scratch, (char) TOS, &CharPtr );
\r
Scratch = M_POP; /* cnt */
\r
Temp = M_POP; /* addr */
\r
TOS = ffSkip( (char *) Temp, Scratch, (char) TOS, &CharPtr );
\r
- M_PUSH((cell) CharPtr);
\r
+ M_PUSH((cell
_t
) CharPtr);
\r
endcase;
\r
\r
case ID_SOURCE: /* ( -- c-addr num ) */
\r
PUSH_TOS;
\r
endcase;
\r
\r
case ID_SOURCE: /* ( -- c-addr num ) */
\r
PUSH_TOS;
\r
- M_PUSH( (cell) gCurrentTask->td_SourcePtr );
\r
- TOS = (cell) gCurrentTask->td_SourceNum;
\r
+ M_PUSH( (cell
_t
) gCurrentTask->td_SourcePtr );
\r
+ TOS = (cell
_t
) gCurrentTask->td_SourceNum;
\r
endcase;
\r
\r
case ID_SOURCE_SET: /* ( c-addr num -- ) */
\r
endcase;
\r
\r
case ID_SOURCE_SET: /* ( c-addr num -- ) */
\r
@@
-1569,7
+1580,7
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
endcase;
\r
\r
case ID_SOURCE_ID_PUSH: /* ( source-id -- ) */
\r
endcase;
\r
\r
case ID_SOURCE_ID_PUSH: /* ( source-id -- ) */
\r
- TOS = (cell)ffConvertSourceIDToStream( TOS );
\r
+ TOS = (cell
_t
)ffConvertSourceIDToStream( TOS );
\r
Scratch = ffPushInputStream((FileStream *) TOS );
\r
if( Scratch )
\r
{
\r
Scratch = ffPushInputStream((FileStream *) TOS );
\r
if( Scratch )
\r
{
\r
@@
-1652,21
+1663,21
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
case ID_VAR_RETURN_CODE: DO_VAR(gVarReturnCode); endcase;
\r
\r
case ID_WORD:
\r
case ID_VAR_RETURN_CODE: DO_VAR(gVarReturnCode); endcase;
\r
\r
case ID_WORD:
\r
- TOS = (cell) ffWord( (char) TOS );
\r
+ TOS = (cell
_t
) ffWord( (char) TOS );
\r
endcase;
\r
\r
case ID_WORD_FETCH: /* ( waddr -- w ) */
\r
#if (defined(PF_BIG_ENDIAN_DIC) || defined(PF_LITTLE_ENDIAN_DIC))
\r
if( IN_DICS( TOS ) )
\r
{
\r
endcase;
\r
\r
case ID_WORD_FETCH: /* ( waddr -- w ) */
\r
#if (defined(PF_BIG_ENDIAN_DIC) || defined(PF_LITTLE_ENDIAN_DIC))
\r
if( IN_DICS( TOS ) )
\r
{
\r
- TOS = (uint16
) READ_SHORT_DIC((uint16
*)TOS);
\r
+ TOS = (uint16
_t) READ_SHORT_DIC((uint8_t
*)TOS);
\r
}
\r
else
\r
{
\r
}
\r
else
\r
{
\r
- TOS = *((uint16 *)TOS);
\r
+ TOS = *((uint16
_t
*)TOS);
\r
}
\r
#else
\r
}
\r
#else
\r
- TOS = *((uint16 *)TOS);
\r
+ TOS = *((uint16
_t
*)TOS);
\r
#endif
\r
endcase;
\r
\r
#endif
\r
endcase;
\r
\r
@@
-1675,14
+1686,14
@@
DBUG(("XX ah,m,l = 0x%8x,%8x,%8x - qh,l = 0x%8x,%8x\n", ah,am,al, qh,ql ));
#if (defined(PF_BIG_ENDIAN_DIC) || defined(PF_LITTLE_ENDIAN_DIC))
\r
if( IN_DICS( TOS ) )
\r
{
\r
#if (defined(PF_BIG_ENDIAN_DIC) || defined(PF_LITTLE_ENDIAN_DIC))
\r
if( IN_DICS( TOS ) )
\r
{
\r
- WRITE_SHORT_DIC(
(uint16 *)TOS,(uint16)
M_POP);
\r
+ WRITE_SHORT_DIC(
TOS,
M_POP);
\r
}
\r
else
\r
{
\r
}
\r
else
\r
{
\r
- *((uint16
*)TOS) = (uint16
) M_POP;
\r
+ *((uint16
_t *)TOS) = (uint16_t
) M_POP;
\r
}
\r
#else
\r
}
\r
#else
\r
- *((uint16
*)TOS) = (uint16
) M_POP;
\r
+ *((uint16
_t *)TOS) = (uint16_t
) M_POP;
\r
#endif
\r
M_DROP;
\r
endcase;
\r
#endif
\r
M_DROP;
\r
endcase;
\r
@@
-1709,13
+1720,13
@@
DBUGX(("After 0Branch: IP = 0x%x\n", InsPtr ));
ERR("pfCatch: Unrecognised token = 0x");
\r
ffDotHex(Token);
\r
ERR(" at 0x");
\r
ERR("pfCatch: Unrecognised token = 0x");
\r
ffDotHex(Token);
\r
ERR(" at 0x");
\r
- ffDotHex((
int32
) InsPtr);
\r
+ ffDotHex((
cell_t
) InsPtr);
\r
EMIT_CR;
\r
InsPtr = 0;
\r
endcase;
\r
}
\r
\r
EMIT_CR;
\r
InsPtr = 0;
\r
endcase;
\r
}
\r
\r
- if(InsPtr) Token = READ_
LONG
_DIC(InsPtr++); /* Traverse to next token in secondary. */
\r
+ if(InsPtr) Token = READ_
CELL
_DIC(InsPtr++); /* Traverse to next token in secondary. */
\r
\r
#ifdef PF_DEBUG
\r
M_DOTS;
\r
\r
#ifdef PF_DEBUG
\r
M_DOTS;
\r