X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=csrc%2Fpfcompil.c;h=c4f7365889f99fa17148c60eb1f16a300e9af648;hb=ab730a3ddcc9083b31865278279ae9c941913629;hp=937e39ef831ff12d1483e2a5ca3fabe76b2440e2;hpb=529bb4e23b94186596ca0e3f5d295b0be95d4fad;p=debian%2Fpforth diff --git a/csrc/pfcompil.c b/csrc/pfcompil.c index 937e39e..c4f7365 100644 --- a/csrc/pfcompil.c +++ b/csrc/pfcompil.c @@ -7,14 +7,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. ** **************************************************************** ** 941004 PLB Extracted IO calls from pforth_main.c @@ -341,6 +344,7 @@ PForthDictionary pfBuildDictionary( cell_t HeaderSize, cell_t CodeSize ) CreateDicEntryC( ID_SAVE_FORTH_P, "(SAVE-FORTH)", 0 ); CreateDicEntryC( ID_SCAN, "SCAN", 0 ); CreateDicEntryC( ID_SKIP, "SKIP", 0 ); + CreateDicEntryC( ID_SLEEP_P, "(SLEEP)", 0 ); CreateDicEntryC( ID_SOURCE, "SOURCE", 0 ); CreateDicEntryC( ID_SOURCE_SET, "SET-SOURCE", 0 ); CreateDicEntryC( ID_SOURCE_ID, "SOURCE-ID", 0 ); @@ -357,6 +361,7 @@ PForthDictionary pfBuildDictionary( cell_t HeaderSize, cell_t CodeSize ) CreateDicEntryC( ID_TO_R, ">R", 0 ); CreateDicEntryC( ID_TYPE, "TYPE", 0 ); CreateDicEntryC( ID_VAR_BASE, "BASE", 0 ); + CreateDicEntryC( ID_VAR_BYE_CODE, "BYE-CODE", 0 ); CreateDicEntryC( ID_VAR_CODE_BASE, "CODE-BASE", 0 ); CreateDicEntryC( ID_VAR_CODE_LIMIT, "CODE-LIMIT", 0 ); CreateDicEntryC( ID_VAR_CONTEXT, "CONTEXT", 0 ); @@ -373,6 +378,7 @@ PForthDictionary pfBuildDictionary( cell_t HeaderSize, cell_t CodeSize ) CreateDicEntryC( ID_VAR_OUT, "OUT", 0 ); CreateDicEntryC( ID_VAR_STATE, "STATE", 0 ); CreateDicEntryC( ID_VAR_TO_IN, ">IN", 0 ); + CreateDicEntryC( ID_VERSION_CODE, "VERSION_CODE", 0 ); CreateDicEntryC( ID_WORD, "WORD", 0 ); CreateDicEntryC( ID_WORD_FETCH, "W@", 0 ); CreateDicEntryC( ID_WORD_STORE, "W!", 0 ); @@ -719,7 +725,7 @@ void ffLiteral( cell_t Num ) #ifdef PF_SUPPORT_FP void ffFPLiteral( PF_FLOAT fnum ) { - /* Hack for Metrowerks complier which won't compile the + /* Hack for Metrowerks compiler which won't compile the * original expression. */ PF_FLOAT *temp; @@ -1156,9 +1162,14 @@ cell_t ffRefill( void ) if( gCurrentTask->td_InputStream == PF_STDIN ) { /* ACCEPT is deferred so we call it through the dictionary. */ + ThrowCode throwCode; PUSH_DATA_STACK( gCurrentTask->td_SourcePtr ); PUSH_DATA_STACK( TIB_SIZE ); - pfCatch( gAcceptP_XT ); + throwCode = pfCatch( gAcceptP_XT ); + if (throwCode) { + Result = throwCode; + goto error; + } Num = POP_DATA_STACK; if( Num < 0 ) {