File:  [gforth] / gforth / model
Revision 1.4: download - view: text, annotated - select for diffs
Wed Sep 6 21:00:25 1995 UTC (28 years, 6 months ago) by pazsan
Branches: MAIN
CVS tags: HEAD
Removed BUGS, tried to clean up.

    1: $Id: model,v 1.4 1995/09/06 21:00:25 pazsan Exp $
    2: Copyright 1992 by the ANSI figForth Development Group
    3: 
    4: This file describes the implementation model of ANSI figForth. The things
    5: described herein are valid in all implementations of ANSI figForth.
    6: 
    7: The instruction pointer (ip) is post-incremented.
    8: 
    9: Branches are relative:
   10: 	branch
   11: offset:	target - offset
   12: 	...
   13: target:	...
   14: 
   15: The top-of return stack is in memory
   16: 
   17: The top of data stack need not be in memory. Other data stack items
   18: are in memory.
   19: 
   20: The stacks grow downward
   21: 
   22: flags are represtented by 0 and -1
   23: 
   24: The loop control parameters are the index on the top of return stack
   25: and the limit on the second item.
   26: 
   27: Everything except the virtual machine registers (ip, sp, etc.) is
   28: addressable.
   29: 
   30: The return address on the return stack occupies one cell.
   31: 
   32: There is a floating point stack
   33: The floating point numbers are the same as C's double numbers
   34: 
   35: The error returns of the file word set are FALSE or TRUE. (or should
   36: we use errno? Does this work with stdio functions?)
   37: 
   38: No assumptions can be made about the order of fetching the xt of the
   39: next word wrt the other operations in a forth word. This makes a
   40: difference only if you want to execute code lying on the stack or if
   41: you store into the very next word that is executed.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>