X-Git-Url: http://git.subgeniuskitty.com/pforth/.git/blobdiff_plain/8e9db35f299d8f606ba003d3cd8fa9e2c868c880..28475a0fb13a35d275694e98c8cf7fa935386e10:/csrc/pf_core.c diff --git a/csrc/pf_core.c b/csrc/pf_core.c index 1736aa9..3bc115a 100644 --- a/csrc/pf_core.c +++ b/csrc/pf_core.c @@ -39,18 +39,18 @@ ** Global Data ***************************************************************/ -char gScratch[TIB_SIZE]; +char gScratch[TIB_SIZE]; pfTaskData_t *gCurrentTask = NULL; pfDictionary_t *gCurrentDictionary; -cell_t gNumPrimitives; +cell_t gNumPrimitives; -ExecToken gLocalCompiler_XT; /* custom compiler for local variables */ -ExecToken gNumberQ_XT; /* XT of NUMBER? */ -ExecToken gQuitP_XT; /* XT of (QUIT) */ -ExecToken gAcceptP_XT; /* XT of ACCEPT */ +ExecToken gLocalCompiler_XT; /* custom compiler for local variables */ +ExecToken gNumberQ_XT; /* XT of NUMBER? */ +ExecToken gQuitP_XT; /* XT of (QUIT) */ +ExecToken gAcceptP_XT; /* XT of ACCEPT */ /* Depth of data stack when colon called. */ -cell_t gDepthAtColon; +cell_t gDepthAtColon; /* Global Forth variables. */ cell_t gVarContext; /* Points to last name field. */ @@ -64,18 +64,23 @@ cell_t gVarQuiet; /* Suppress unnecessary messages, OK, etc. */ cell_t gVarReturnCode; /* Returned to caller of Forth, eg. UNIX shell. */ /* data for INCLUDE that allows multiple nested files. */ -IncludeFrame gIncludeStack[MAX_INCLUDE_DEPTH]; -cell_t gIncludeIndex; +IncludeFrame gIncludeStack[MAX_INCLUDE_DEPTH]; +cell_t gIncludeIndex; static void pfResetForthTask( void ); static void pfInit( void ); static void pfTerm( void ); -/* TODO move to pf_config.h header. */ #define DEFAULT_RETURN_DEPTH (512) #define DEFAULT_USER_DEPTH (512) + +#ifndef PF_DEFAULT_HEADER_SIZE #define DEFAULT_HEADER_SIZE (120000) -#define DEFAULT_CODE_SIZE (300000) +#endif + +#ifndef PF_DEFAULT_CODE_SIZE +#define PF_DEFAULT_CODE_SIZE (300000) +#endif /* Initialize globals in a function to simplify loading on * embedded systems which may not support initialization of data section. @@ -170,9 +175,9 @@ nomem: ** Dictionary Management ***************************************************************/ -cell_t pfExecIfDefined( const char *CString ) +ThrowCode pfExecIfDefined( const char *CString ) { - int result = 0; + ThrowCode result = 0; if( NAME_BASE != (cell_t)NULL) { ExecToken XT; @@ -427,11 +432,11 @@ void pfMessage( const char *CString ) /************************************************************************** ** Main entry point for pForth. */ -cell_t pfDoForth( const char *DicFileName, const char *SourceName, cell_t IfInit ) +ThrowCode pfDoForth( const char *DicFileName, const char *SourceName, cell_t IfInit ) { pfTaskData_t *cftd; pfDictionary_t *dic = NULL; - cell_t Result = 0; + ThrowCode Result = 0; ExecToken EntryPoint = 0; #ifdef PF_USER_INIT @@ -486,7 +491,7 @@ cell_t pfDoForth( const char *DicFileName, const char *SourceName, cell_t IfInit if( IfInit ) { pfDebugMessage("Build dictionary from scratch.\n"); - dic = pfBuildDictionary( DEFAULT_HEADER_SIZE, DEFAULT_CODE_SIZE ); + dic = pfBuildDictionary( PF_DEFAULT_HEADER_SIZE, PF_DEFAULT_CODE_SIZE ); } else #else