I was wrong about zero-extending addresses when pushing!
I was wrong about zero-extending addresses when pushing!

Since literal (lit) and @ both sign-extend, there is now a semantic
difference between pushing an address (of a variable, say, in a does
word) and fetching its address, or pushing its address from a literal.
This is totally unworkable! The following code fails:

  variable foo
  variable bar

  foo bar !  ( so bar now points to foo; it contains foo's address)

  bar @  foo =

returns false!

@ is sign-extending, but just saying "foo" pushes an _address_ which
internal was zero-extended. No good.

Now everything sign-extends.

nickhen/muforth,nickhen/muforth