home: hub: 9ficl

Download patch

ref: 1e19b99e18494baf943329c1d205d1d2c98e9b75
parent: 38a9f000997a9c1e3731e40cf918cffafa61c0b0
author: jsadler <jsadler@ficl.sf.net>
date: Wed May 16 09:56:19 CDT 2001

bug fixes and debugger extensions

--- a/ReadMe.txt
+++ b/ReadMe.txt
@@ -1,3 +1,8 @@
+to do:
+fix dorky key handling in ficlwin
+debugger out command
+debugger breakpoints
+
 rel -- May 2001 (feast or famine around here)
 
 - Debugger changes:
@@ -4,8 +9,9 @@
   New debugger command "x" to execute the rest of the command line as ficl
   New debugger command "l" lists the source of the innermost word being debugged
   If you attempt to debug a primitive, it gets executed rather than doing nothing
-  .R displays the stack contents symbolically
+  r.s displays the stack contents symbolically
 - Debugger now runs correctly under ficlwin.
+- SEE listing enhanced for use with the debugger
 - Added Guy Carver's changes to oo.fr for VTABLE support
 - float.c words f> and >f to move floats to and from the param stack, analogous to >r and r>
 - LOOKUP - Surrogate precompiled parse step for ficlParseWord (this step is hard 
--- a/dict.c
+++ b/dict.c
@@ -3,7 +3,7 @@
 ** Forth Inspired Command Language - dictionary methods
 ** Author: John Sadler (john_sadler@alum.mit.edu)
 ** Created: 19 July 1997
-** $Id: dict.c,v 1.8 2001/04/27 04:41:45 jsadler Exp $
+** $Id: dict.c,v 1.9 2001/05/16 14:56:17 jsadler Exp $
 *******************************************************************/
 /*
 ** This file implements the dictionary -- FICL's model of 
@@ -22,6 +22,11 @@
 **
 ** Get the latest Ficl release at http://ficl.sourceforge.net
 **
+** I am interested in hearing from anyone who uses ficl. If you have
+** a problem, a success story, a defect, an enhancement request, or
+** if you would like to contribute to the ficl release, please
+** contact me by email at the address above.
+**
 ** L I C E N S E  and  D I S C L A I M E R
 ** 
 ** Redistribution and use in source and binary forms, with or without
@@ -44,13 +49,6 @@
 ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 ** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 ** SUCH DAMAGE.
-**
-** I am interested in hearing from anyone who uses ficl. If you have
-** a problem, a success story, a defect, an enhancement request, or
-** if you would like to contribute to the ficl release, please send
-** contact me by email at the address above.
-**
-** $Id: dict.c,v 1.8 2001/04/27 04:41:45 jsadler Exp $
 */
 
 #include <stdlib.h>
--- a/ficl.h
+++ b/ficl.h
@@ -3,7 +3,7 @@
 ** Forth Inspired Command Language
 ** Author: John Sadler (john_sadler@alum.mit.edu)
 ** Created: 19 July 1997
-** $Id: ficl.h,v 1.12 2001/04/28 19:01:18 jsadler Exp $
+** $Id: ficl.h,v 1.13 2001/05/16 14:56:19 jsadler Exp $
 *******************************************************************/
 /*
 ** Copyright (c) 1997-2001 John Sadler (john_sadler@alum.mit.edu)
@@ -11,6 +11,11 @@
 **
 ** Get the latest Ficl release at http://ficl.sourceforge.net
 **
+** I am interested in hearing from anyone who uses ficl. If you have
+** a problem, a success story, a defect, an enhancement request, or
+** if you would like to contribute to the ficl release, please
+** contact me by email at the address above.
+**
 ** L I C E N S E  and  D I S C L A I M E R
 ** 
 ** Redistribution and use in source and binary forms, with or without
@@ -33,13 +38,6 @@
 ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 ** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 ** SUCH DAMAGE.
-**
-** I am interested in hearing from anyone who uses ficl. If you have
-** a problem, a success story, a defect, an enhancement request, or
-** if you would like to contribute to the ficl release, please send
-** contact me by email at the address above.
-**
-** $Id: ficl.h,v 1.12 2001/04/28 19:01:18 jsadler Exp $
 */
 
 #if !defined (__FICL_H__)
@@ -234,7 +232,7 @@
 /* 
 ** the Good Stuff starts here...
 */
-#define FICL_VER    "2.05"
+#define FICL_VER    "2.06"
 #if !defined (FICL_PROMPT)
 #define FICL_PROMPT "ok> "
 #endif
--- a/math64.c
+++ b/math64.c
@@ -5,7 +5,7 @@
 ** Created: 25 January 1998
 ** Rev 2.03: Support for 128 bit DP math. This file really ouught to
 ** be renamed!
-** $Id: math64.c,v 1.5 2001/04/27 04:41:36 jsadler Exp $
+** $Id: math64.c,v 1.6 2001/05/16 14:56:16 jsadler Exp $
 *******************************************************************/
 /*
 ** Copyright (c) 1997-2001 John Sadler (john_sadler@alum.mit.edu)
@@ -13,6 +13,11 @@
 **
 ** Get the latest Ficl release at http://ficl.sourceforge.net
 **
+** I am interested in hearing from anyone who uses ficl. If you have
+** a problem, a success story, a defect, an enhancement request, or
+** if you would like to contribute to the ficl release, please
+** contact me by email at the address above.
+**
 ** L I C E N S E  and  D I S C L A I M E R
 ** 
 ** Redistribution and use in source and binary forms, with or without
@@ -35,13 +40,6 @@
 ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 ** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 ** SUCH DAMAGE.
-**
-** I am interested in hearing from anyone who uses ficl. If you have
-** a problem, a success story, a defect, an enhancement request, or
-** if you would like to contribute to the ficl release, please send
-** contact me by email at the address above.
-**
-** $Id: math64.c,v 1.5 2001/04/27 04:41:36 jsadler Exp $
 */
 
 #include "ficl.h"
--- a/math64.h
+++ b/math64.h
@@ -3,12 +3,17 @@
 ** Forth Inspired Command Language - 64 bit math support routines
 ** Author: John Sadler (john_sadler@alum.mit.edu)
 ** Created: 25 January 1998
-** $Id: math64.h,v 1.5 2001/04/27 04:41:53 jsadler Exp $
+** $Id: math64.h,v 1.6 2001/05/16 14:56:19 jsadler Exp $
 *******************************************************************/
 /*
 ** Copyright (c) 1997-2001 John Sadler (john_sadler@alum.mit.edu)
 ** All rights reserved.
 **
+** I am interested in hearing from anyone who uses ficl. If you have
+** a problem, a success story, a defect, an enhancement request, or
+** if you would like to contribute to the ficl release, please 
+** contact me by email at the address above.
+**
 ** Get the latest Ficl release at http://ficl.sourceforge.net
 **
 ** L I C E N S E  and  D I S C L A I M E R
@@ -33,13 +38,6 @@
 ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 ** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 ** SUCH DAMAGE.
-**
-** I am interested in hearing from anyone who uses ficl. If you have
-** a problem, a success story, a defect, an enhancement request, or
-** if you would like to contribute to the ficl release, please send
-** contact me by email at the address above.
-**
-** $Id: math64.h,v 1.5 2001/04/27 04:41:53 jsadler Exp $
 */
 
 #if !defined (__MATH64_H__)
--- a/search.c
+++ b/search.c
@@ -4,7 +4,7 @@
 ** ANS Forth SEARCH and SEARCH-EXT word-set written in C
 ** Author: John Sadler (john_sadler@alum.mit.edu)
 ** Created: 6 June 2000
-** $Id: search.c,v 1.4 2001/04/27 04:41:31 jsadler Exp $
+** $Id: search.c,v 1.5 2001/05/16 14:56:15 jsadler Exp $
 *******************************************************************/
 /*
 ** Copyright (c) 1997-2001 John Sadler (john_sadler@alum.mit.edu)
@@ -12,6 +12,11 @@
 **
 ** Get the latest Ficl release at http://ficl.sourceforge.net
 **
+** I am interested in hearing from anyone who uses ficl. If you have
+** a problem, a success story, a defect, an enhancement request, or
+** if you would like to contribute to the ficl release, please
+** contact me by email at the address above.
+**
 ** L I C E N S E  and  D I S C L A I M E R
 ** 
 ** Redistribution and use in source and binary forms, with or without
@@ -34,13 +39,6 @@
 ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 ** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 ** SUCH DAMAGE.
-**
-** I am interested in hearing from anyone who uses ficl. If you have
-** a problem, a success story, a defect, an enhancement request, or
-** if you would like to contribute to the ficl release, please send
-** contact me by email at the address above.
-**
-** $Id: search.c,v 1.4 2001/04/27 04:41:31 jsadler Exp $
 */
 
 #include <string.h>
--- a/softwords/softcore.pl
+++ b/softwords/softcore.pl
@@ -25,6 +25,11 @@
 **
 ** Get the latest Ficl release at http://ficl.sourceforge.net
 **
+** I am interested in hearing from anyone who uses ficl. If you have
+** a problem, a success story, a defect, an enhancement request, or
+** if you would like to contribute to the ficl release, please send
+** contact me by email at the address above.
+**
 ** L I C E N S E  and  D I S C L A I M E R
 ** 
 ** Redistribution and use in source and binary forms, with or without
@@ -47,12 +52,6 @@
 ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 ** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 ** SUCH DAMAGE.
-**
-** I am interested in hearing from anyone who uses ficl. If you have
-** a problem, a success story, a defect, an enhancement request, or
-** if you would like to contribute to the ficl release, please send
-** contact me by email at the address above.
-**
 */
 
 
--- a/stack.c
+++ b/stack.c
@@ -3,7 +3,7 @@
 ** Forth Inspired Command Language
 ** Author: John Sadler (john_sadler@alum.mit.edu)
 ** Created: 16 Oct 1997
-** $Id: stack.c,v 1.5 2001/04/27 04:41:29 jsadler Exp $
+** $Id: stack.c,v 1.6 2001/05/16 14:56:15 jsadler Exp $
 *******************************************************************/
 /*
 ** Copyright (c) 1997-2001 John Sadler (john_sadler@alum.mit.edu)
@@ -11,6 +11,11 @@
 **
 ** Get the latest Ficl release at http://ficl.sourceforge.net
 **
+** I am interested in hearing from anyone who uses ficl. If you have
+** a problem, a success story, a defect, an enhancement request, or
+** if you would like to contribute to the ficl release, please
+** contact me by email at the address above.
+**
 ** L I C E N S E  and  D I S C L A I M E R
 ** 
 ** Redistribution and use in source and binary forms, with or without
@@ -33,13 +38,6 @@
 ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 ** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 ** SUCH DAMAGE.
-**
-** I am interested in hearing from anyone who uses ficl. If you have
-** a problem, a success story, a defect, an enhancement request, or
-** if you would like to contribute to the ficl release, please send
-** contact me by email at the address above.
-**
-** $Id: stack.c,v 1.5 2001/04/27 04:41:29 jsadler Exp $
 */
 
 #include <stdlib.h>
--- a/sysdep.c
+++ b/sysdep.c
@@ -6,7 +6,7 @@
 ** Implementations of FICL external interface functions... 
 **
 ** (simple) port to Linux, Skip Carter 26 March 1998
-** $Id: sysdep.c,v 1.6 2001/04/27 04:41:27 jsadler Exp $
+** $Id: sysdep.c,v 1.7 2001/05/16 14:56:14 jsadler Exp $
 *******************************************************************/
 /*
 ** Copyright (c) 1997-2001 John Sadler (john_sadler@alum.mit.edu)
@@ -14,6 +14,11 @@
 **
 ** Get the latest Ficl release at http://ficl.sourceforge.net
 **
+** I am interested in hearing from anyone who uses ficl. If you have
+** a problem, a success story, a defect, an enhancement request, or
+** if you would like to contribute to the ficl release, please
+** contact me by email at the address above.
+**
 ** L I C E N S E  and  D I S C L A I M E R
 ** 
 ** Redistribution and use in source and binary forms, with or without
@@ -36,13 +41,6 @@
 ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 ** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 ** SUCH DAMAGE.
-**
-** I am interested in hearing from anyone who uses ficl. If you have
-** a problem, a success story, a defect, an enhancement request, or
-** if you would like to contribute to the ficl release, please send
-** contact me by email at the address above.
-**
-** $Id: sysdep.c,v 1.6 2001/04/27 04:41:27 jsadler Exp $
 */
 
 #include <stdlib.h>
--- a/sysdep.h
+++ b/sysdep.h
@@ -9,7 +9,7 @@
 ** FICL_ROBUST is enabled. This may require some consideration
 ** in firmware systems since assert often
 ** assumes stderr/stdout.  
-** $Id: sysdep.h,v 1.6 2001/04/27 04:41:55 jsadler Exp $
+** $Id: sysdep.h,v 1.7 2001/05/16 14:56:18 jsadler Exp $
 *******************************************************************/
 /*
 ** Copyright (c) 1997-2001 John Sadler (john_sadler@alum.mit.edu)
@@ -17,6 +17,11 @@
 **
 ** Get the latest Ficl release at http://ficl.sourceforge.net
 **
+** I am interested in hearing from anyone who uses ficl. If you have
+** a problem, a success story, a defect, an enhancement request, or
+** if you would like to contribute to the ficl release, please
+** contact me by email at the address above.
+**
 ** L I C E N S E  and  D I S C L A I M E R
 ** 
 ** Redistribution and use in source and binary forms, with or without
@@ -39,13 +44,6 @@
 ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 ** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 ** SUCH DAMAGE.
-**
-** I am interested in hearing from anyone who uses ficl. If you have
-** a problem, a success story, a defect, an enhancement request, or
-** if you would like to contribute to the ficl release, please send
-** contact me by email at the address above.
-**
-** $Id: sysdep.h,v 1.6 2001/04/27 04:41:55 jsadler Exp $
 */
 
 #if !defined (__SYSDEP_H__)
--- a/tools.c
+++ b/tools.c
@@ -3,7 +3,7 @@
 ** Forth Inspired Command Language - programming tools
 ** Author: John Sadler (john_sadler@alum.mit.edu)
 ** Created: 20 June 2000
-** $Id: tools.c,v 1.6 2001/05/10 13:58:05 jsadler Exp $
+** $Id: tools.c,v 1.7 2001/05/16 14:56:06 jsadler Exp $
 *******************************************************************/
 /*
 ** Copyright (c) 1997-2001 John Sadler (john_sadler@alum.mit.edu)
@@ -187,10 +187,8 @@
 */
 static void seeColon(FICL_VM *pVM, CELL *pc)
 {
-    static FICL_WORD *pSemiParen = NULL;
-
-    if (!pSemiParen)
-        pSemiParen = ficlLookup("(;)");
+	char *cp = pVM->pad + 1;
+	FICL_WORD *pSemiParen = ficlLookup("(;)");
     assert(pSemiParen);
 
     for (; pc->p != pSemiParen; pc++)
@@ -202,6 +200,8 @@
             WORDKIND kind = ficlWordClassify(pFW);
             CELL c;
 
+			cp[-1] = ((void *)pc == (void *)pVM->ip) ? '>' : ' ';
+
             switch (kind)
             {
             case LITERAL:
@@ -209,62 +209,62 @@
                 if (isAFiclWord(c.p))
                 {
                     FICL_WORD *pLit = (FICL_WORD *)c.p;
-                    sprintf(pVM->pad, "    literal %.*s (%#lx)", 
+                    sprintf(cp, "    literal %.*s (%#lx)", 
                         pLit->nName, pLit->name, c.u);
                 }
                 else
-                    sprintf(pVM->pad, "    literal %ld (%#lx)", c.i, c.u);
+                    sprintf(cp, "    literal %ld (%#lx)", c.i, c.u);
                 break;
             case STRINGLIT:
                 {
                     FICL_STRING *sp = (FICL_STRING *)(void *)++pc;
                     pc = (CELL *)alignPtr(sp->text + sp->count + 1) - 1;
-                    sprintf(pVM->pad, "    s\" %.*s\"", sp->count, sp->text);
+                    sprintf(cp, "    s\" %.*s\"", sp->count, sp->text);
                 }
                 break;
             case IF:
                 c = *++pc;
                 if (c.i > 0)
-                    sprintf(pVM->pad, "    if / while (branch rel %ld)", c.i);
+                    sprintf(cp, "    if / while (branch rel %ld)", c.i);
                 else
-                    sprintf(pVM->pad, "    until (branch rel %ld)", c.i);
+                    sprintf(cp, "    until (branch rel %ld)", c.i);
                 break;
             case BRANCH:
                 c = *++pc;
                 if (c.i > 0)
-                    sprintf(pVM->pad, "    else (branch rel %ld)", c.i);
+                    sprintf(cp, "    else (branch rel %ld)", c.i);
                 else
-                    sprintf(pVM->pad, "    repeat (branch rel %ld)", c.i);
+                    sprintf(cp, "    repeat (branch rel %ld)", c.i);
                 break;
 
             case QDO:
                 c = *++pc;
-                sprintf(pVM->pad, "    ?do (leave abs %#lx)", c.u);
+                sprintf(cp, "    ?do (leave abs %#lx)", c.u);
                 break;
             case DO:
                 c = *++pc;
-                sprintf(pVM->pad, "    do (leave abs %#lx)", c.u);
+                sprintf(cp, "    do (leave abs %#lx)", c.u);
                 break;
             case LOOP:
                 c = *++pc;
-                sprintf(pVM->pad, "    loop (branch rel %#ld)", c.i);
+                sprintf(cp, "    loop (branch rel %#ld)", c.i);
                 break;
             case PLOOP:
                 c = *++pc;
-                sprintf(pVM->pad, "    +loop (branch rel %#ld)", c.i);
+                sprintf(cp, "    +loop (branch rel %#ld)", c.i);
                 break;
             default:
-                sprintf(pVM->pad, "    %.*s", pFW->nName, pFW->name);
+                sprintf(cp, "    %.*s", pFW->nName, pFW->name);
                 break;
             }
  
-            vmTextOut(pVM, pVM->pad, 1);
         }
         else /* probably not a word - punt and print value */
         {
-            sprintf(pVM->pad, "    %ld (%#lx)", pc->i, pc->u);
-            vmTextOut(pVM, pVM->pad, 1);
+            sprintf(cp, "    %ld (%#lx)", pc->i, pc->u);
         }
+
+		vmTextOut(pVM, pVM->pad, 1);
     }
 
     vmTextOut(pVM, ";", 1);
@@ -318,7 +318,8 @@
         vmTextOut(pVM, pVM->pad, 1);
 
     default:
-        vmTextOut(pVM, "primitive", 1);
+        sprintf(pVM->pad, "%.*s is a primitive", pFW->nName, pFW->name);
+        vmTextOut(pVM, pVM->pad, 1);
         break;
     }
 
@@ -356,10 +357,7 @@
 {
     FICL_WORD *xt    = stackPopPtr(pVM->pStack);
     WORDKIND   wk    = ficlWordClassify(xt);
-    FICL_WORD *pStep = ficlLookup("step-break");
 
-    assert(pStep);
-
     stackPushPtr(pVM->pStack, xt);
     seeXT(pVM);
 
@@ -650,7 +648,7 @@
                     int offset = (CELL *)c.p - &pFW->param[0];
                     sprintf(pVM->pad, "%s+%d ", pFW->name, offset);
                     vmTextOut(pVM, pVM->pad, 0);
-                    continue;
+                    continue;  /* no need to print the numeric value */
                 }
             }
             vmTextOut(pVM, ltoa(c.i, pVM->pad, pVM->base), 0);
@@ -843,7 +841,7 @@
     /*
     ** TOOLS and TOOLS EXT
     */
-    dictAppendWord(dp, ".r",        displayRStack,  FW_DEFAULT); /* guy carver */
+    dictAppendWord(dp, "r.s",       displayRStack,  FW_DEFAULT); /* guy carver */
     dictAppendWord(dp, ".s",        displayPStack,  FW_DEFAULT);
     dictAppendWord(dp, "bye",       bye,            FW_DEFAULT);
     dictAppendWord(dp, "forget",    forget,         FW_DEFAULT);
--- a/vm.c
+++ b/vm.c
@@ -3,7 +3,7 @@
 ** Forth Inspired Command Language - virtual machine methods
 ** Author: John Sadler (john_sadler@alum.mit.edu)
 ** Created: 19 July 1997
-** $Id: vm.c,v 1.8 2001/04/27 04:41:23 jsadler Exp $
+** $Id: vm.c,v 1.9 2001/05/16 14:56:13 jsadler Exp $
 *******************************************************************/
 /*
 ** This file implements the virtual machine of FICL. Each virtual
@@ -18,6 +18,11 @@
 **
 ** Get the latest Ficl release at http://ficl.sourceforge.net
 **
+** I am interested in hearing from anyone who uses ficl. If you have
+** a problem, a success story, a defect, an enhancement request, or
+** if you would like to contribute to the ficl release, please
+** contact me by email at the address above.
+**
 ** L I C E N S E  and  D I S C L A I M E R
 ** 
 ** Redistribution and use in source and binary forms, with or without
@@ -40,13 +45,6 @@
 ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 ** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 ** SUCH DAMAGE.
-**
-** I am interested in hearing from anyone who uses ficl. If you have
-** a problem, a success story, a defect, an enhancement request, or
-** if you would like to contribute to the ficl release, please send
-** contact me by email at the address above.
-**
-** $Id: vm.c,v 1.8 2001/04/27 04:41:23 jsadler Exp $
 */
 
 #include <stdlib.h>
--- a/words.c
+++ b/words.c
@@ -4,7 +4,7 @@
 ** ANS Forth CORE word-set written in C
 ** Author: John Sadler (john_sadler@alum.mit.edu)
 ** Created: 19 July 1997
-** $Id: words.c,v 1.12 2001/04/28 19:01:28 jsadler Exp $
+** $Id: words.c,v 1.13 2001/05/16 14:56:08 jsadler Exp $
 *******************************************************************/
 /*
 ** Copyright (c) 1997-2001 John Sadler (john_sadler@alum.mit.edu)
@@ -12,6 +12,11 @@
 **
 ** Get the latest Ficl release at http://ficl.sourceforge.net
 **
+** I am interested in hearing from anyone who uses ficl. If you have
+** a problem, a success story, a defect, an enhancement request, or
+** if you would like to contribute to the ficl release, please
+** contact me by email at the address above.
+**
 ** L I C E N S E  and  D I S C L A I M E R
 ** 
 ** Redistribution and use in source and binary forms, with or without
@@ -34,13 +39,6 @@
 ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 ** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 ** SUCH DAMAGE.
-**
-** I am interested in hearing from anyone who uses ficl. If you have
-** a problem, a success story, a defect, an enhancement request, or
-** if you would like to contribute to the ficl release, please send
-** contact me by email at the address above.
-**
-** $Id: words.c,v 1.12 2001/04/28 19:01:28 jsadler Exp $
 */
 
 #include <stdlib.h>
@@ -74,7 +72,6 @@
 ** simple-minded...
 */
 static FICL_WORD *pBranchParen  = NULL;
-static FICL_WORD *pComma        = NULL;
 static FICL_WORD *pDoParen      = NULL;
 static FICL_WORD *pDoesParen    = NULL;
 static FICL_WORD *pExitParen    = NULL;
@@ -89,7 +86,6 @@
 static FICL_WORD *pSemiParen    = NULL;
 static FICL_WORD *pStore        = NULL;
 static FICL_WORD *pStringLit    = NULL;
-static FICL_WORD *pType         = NULL;
 
 #if FICL_WANT_LOCALS
 static FICL_WORD *pGetLocalParen= NULL;
@@ -1340,6 +1336,10 @@
 }
 
 
+/*
+** Surrogate precompiled parse step for ficlParseWord (this step is hard coded in 
+** INTERPRET)
+*/
 static void lookup(FICL_VM *pVM)
 {
     STRINGINFO si;
@@ -1944,8 +1944,9 @@
 	vmCheckStack(pVM, 0, 1);
 #endif
 
-	pBase = (CELL *)(&pVM->base);
-	PUSH(*pBase);
+    pBase = (CELL *)(&pVM->base);
+    stackPush(pVM->pStack, LVALUEtoCELL(pBase));
+    return;
 }
 
 
@@ -2100,6 +2101,7 @@
 {
     FICL_DICT *dp  = ficlGetDict();
     FICL_WORD *pFW;
+    FICL_WORD *pComma = ficlLookup(",");
     assert(pComma);
 
     ficlTick(pVM);
@@ -2195,6 +2197,8 @@
 static void dotQuoteCoIm(FICL_VM *pVM)
 {
     FICL_DICT *dp = ficlGetDict();
+    FICL_WORD *pType = ficlLookup("type");
+    assert(pType);
     dictAppendCell(dp, LVALUEtoCELL(pStringLit));
     dp->here = PTRtoCELL vmGetString(pVM, (FICL_STRING *)dp->here, '\"');
     dictAlign(dp);
@@ -4274,19 +4278,19 @@
 
     static CODEtoKIND codeMap[] =
     {
-        {BRANCH, branchParen},
-        {COLON, colonParen},
+        {BRANCH,     branchParen},
+        {COLON,       colonParen},
         {CONSTANT, constantParen},
-        {CREATE, createParen},
-        {DO, doParen},
-        {DOES, doDoes},
-        {IF, ifParen},
-        {LITERAL, literalParen},
-        {LOOP, loopParen},
-        {PLOOP, plusLoopParen},
-        {QDO, qDoParen},
-        {STRINGLIT, stringLit},
-        {USER, userParen},
+        {CREATE,     createParen},
+        {DO,             doParen},
+        {DOES,            doDoes},
+        {IF,             ifParen},
+        {LITERAL,   literalParen},
+        {LOOP,         loopParen},
+        {PLOOP,    plusLoopParen},
+        {QDO,           qDoParen},
+        {STRINGLIT,    stringLit},
+        {USER,         userParen},
         {VARIABLE, variableParen},
     };
 
@@ -4332,7 +4336,6 @@
     dictAppendWord(dp, "+",         add,            FW_DEFAULT);
     dictAppendWord(dp, "+!",        plusStore,      FW_DEFAULT);
     dictAppendWord(dp, "+loop",     plusLoopCoIm,   FW_COMPIMMED);
-    pComma =
     dictAppendWord(dp, ",",         comma,          FW_DEFAULT);
     dictAppendWord(dp, "-",         sub,            FW_DEFAULT);
     dictAppendWord(dp, ".",         displayCell,    FW_DEFAULT);
@@ -4436,7 +4439,6 @@
     dictAppendWord(dp, "state",     state,          FW_DEFAULT);
     dictAppendWord(dp, "swap",      swap,           FW_DEFAULT);
     dictAppendWord(dp, "then",      endifCoIm,      FW_COMPIMMED);
-    pType =
     dictAppendWord(dp, "type",      type,           FW_DEFAULT);
     dictAppendWord(dp, "u.",        uDot,           FW_DEFAULT);
     dictAppendWord(dp, "u<",        uIsLess,        FW_DEFAULT);
@@ -4454,7 +4456,7 @@
     dictAppendWord(dp, "]",         rbracket,       FW_DEFAULT);
     /* 
     ** CORE EXT word set...
-    ** see softcore.c for other definitions
+    ** see softcore.fr for other definitions
     */
     dictAppendWord(dp, ".(",        dotParen,       FW_DEFAULT);
     dictAppendWord(dp, ":noname",   colonNoName,    FW_DEFAULT);