X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=csrc%2Fpf_guts.h;h=a671e2052a00b7fd022926ea47bbc8b32a5a5425;hb=eaa66646ab0ebe6671c66014467485908b255cbb;hp=4fa4bd0d1db970f5e0bb985ef8231f36e3628666;hpb=8bf2fe25c2d6ed80c3d41cc664d13da865d6be6c;p=debian%2Fpforth diff --git a/csrc/pf_guts.h b/csrc/pf_guts.h index 4fa4bd0..a671e20 100644 --- a/csrc/pf_guts.h +++ b/csrc/pf_guts.h @@ -8,14 +8,17 @@ ** Author: Phil Burk ** Copyright 1994 3DO, Phil Burk, Larry Polansky, David Rosenboom ** -** The pForth software code is dedicated to the public domain, -** and any third party may reproduce, distribute and modify -** the pForth software code or any derivative works thereof -** without any compensation or license. The pForth software -** code is provided on an "as is" basis without any warranty -** of any kind, including, without limitation, the implied -** warranties of merchantability and fitness for a particular -** purpose and their equivalents under the laws of any jurisdiction. +** Permission to use, copy, modify, and/or distribute this +** software for any purpose with or without fee is hereby granted. +** +** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL +** THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +** CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING +** FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF +** CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ** ***************************************************************/ @@ -23,7 +26,7 @@ ** PFORTH_VERSION changes when PForth is modified and released. ** See README file for version info. */ -#define PFORTH_VERSION "27" +#define PFORTH_VERSION "28" /* ** PFORTH_FILE_VERSION changes when incompatible changes are made @@ -36,8 +39,9 @@ ** FV7 - 971203 - Added ID_FILL, (1LOCAL@), etc., ran out of reserved, resorted. ** FV8 - 980818 - Added Endian flag. ** FV9 - 20100503 - Added support for 64-bit CELL. +** FV10 - 20170103 - Added ID_FILE_FLUSH ID_FILE_RENAME ID_FILE_RESIZE */ -#define PF_FILE_VERSION (9) /* Bump this whenever primitives added. */ +#define PF_FILE_VERSION (10) /* Bump this whenever primitives added. */ #define PF_EARLIEST_FILE_VERSION (9) /* earliest one still compatible */ /*************************************************************** @@ -281,13 +285,16 @@ enum cforth_primitive_ids ID_CELLS, /* DELETE-FILE */ ID_FILE_DELETE, - ID_FILE_FLUSH, /* FLUSH-FILE */ -/* If you add a word here, take away one reserved word below. */ + ID_FILE_FLUSH, /* FLUSH-FILE */ + ID_FILE_RENAME, /* (RENAME-FILE) */ + ID_FILE_RESIZE, /* RESIZE-FILE */ + ID_SLEEP_P, /* (SLEEP) V2.0.0 */ + ID_VAR_BYE_CODE, /* BYE-CODE */ + /* If you add a word here, take away one reserved word below. */ #ifdef PF_SUPPORT_FP /* Only reserve space if we are adding FP so that we can detect ** unsupported primitives when loading dictionary. */ - ID_RESERVED01, ID_RESERVED02, ID_RESERVED03, ID_RESERVED04, @@ -296,9 +303,6 @@ enum cforth_primitive_ids ID_RESERVED07, ID_RESERVED08, ID_RESERVED09, - ID_RESERVED10, - ID_RESERVED11, - ID_RESERVED12, ID_FP_D_TO_F, ID_FP_FSTORE, ID_FP_FTIMES, @@ -369,6 +373,7 @@ enum cforth_primitive_ids #define THROW_FLOAT_STACK_UNDERFLOW ( -45) #define THROW_QUIT (-56) #define THROW_FLUSH_FILE (-68) +#define THROW_RESIZE_FILE (-74) /* THROW codes unique to pForth */ #define THROW_BYE (-256) /* Exit program. */ @@ -460,7 +465,7 @@ typedef struct IncludeFrame extern "C" { #endif -int pfCatch( ExecToken XT ); +ThrowCode pfCatch( ExecToken XT ); #ifdef __cplusplus } @@ -486,6 +491,7 @@ extern cell_t gDepthAtColon; extern cell_t gVarContext; /* Points to last name field. */ extern cell_t gVarState; /* 1 if compiling. */ extern cell_t gVarBase; /* Numeric Base. */ +extern cell_t gVarByeCode; /* BYE-CODE returned on exit */ extern cell_t gVarEcho; /* Echo input from file. */ extern cell_t gVarEchoAccept; /* Echo input from ACCEPT. */ extern cell_t gVarTraceLevel; @@ -569,9 +575,12 @@ extern cell_t gIncludeIndex; /* Force Quad alignment. */ #define QUADUP(x) (((x)+3)&~3) +#ifndef MIN #define MIN(a,b) ( ((a)<(b)) ? (a) : (b) ) +#endif +#ifndef MAX #define MAX(a,b) ( ((a)>(b)) ? (a) : (b) ) - +#endif #ifndef TOUCH #define TOUCH(argument) ((void)argument)