Hello Juergen,
>> Sorry if this has been answered before.
>> Is this Forth Code ANS compatible?
>>
>> IF NOT, WHAT ARE THE EXCEPTIONS?
>> VIDEO anyway, but the rest?
As Mark says, FIGnition is really built upon FIG-Forth, rather than
ANS Forth (which is built upon Forth-79 / Forth-83). It borrows some
ideas from Jupiter-Ace Forth. There are some superficial differences
and some deeper differences.
* FIGnition Forth uses words such as << and >> for shifting values.
* FIGnition Forth number entry uses '.' for decimal/scientific
notation numbers (not for double-length numbers); to denote double
numbers you end a number with 'd'. You can directly enter hexadecimal
numbers by prefixing them with '$'.
* FIGnition Forth's leave word merely sets i to i', it doesn't abort
the do loop.
* FIGnition Forth uses neg instead of negate.
* FIGnition Forth doesn't have ?terminal . It uses inkey and key (like
a Jupiter Ace) instead.
* FIGnition Forth doesn't have words to support the abstraction of
cell sizes, for example, the word cell doesn't exist.
* Logical 'true' on FIGnition Forth is -1, instead of 1.
* FIGnition Forth doesn't use tick ' to find words and return an
execution token. Instead it uses the word 'find' to find words and
returns the link address.
* FIGnition Forth dictionary linkage is simpler than most Forths, and
consists of a link cell, then a flags byte, then the name as a string,
then the code itself.
* FIGnition Forth is a hybrid byte-code/execution address version of
Forth. It uses x, to compile execution tokens.
* FIGnition Forth is written in lower-case.
* 2! and d@ are d! and d@ on FIGnition Forth 1.0 and later.
* FIGnition Forth strings are 'C' style zero-terminated strings, not
length-byte, text strings.
* J is R on FIGnition Forth.
* I and I' are not stored on the return stack (they are machine registers).
* There is no case / of / endcase built into FIGnition Forth.
* There is no direct task support in FIGnition Forth, though
user-interrupts are supported.
* i@, i!, ic@, ic! and >port> are used to access internal I/O addresses.
This makes it sound like FIGnition Forth is very different to ANS
Forth. Nevertheless, for many embedded applications, conversion to
FIGnition Forth will be fairly straight-forward.
>> We have started an Educational Project called MMT for MiniMultiTool,
>>
>> defining
>> 4 Input Bits, 4 Output Bits, 2 Analog Inputs, 1 PWM output to simulate a
>> D/A, Frequency OUT
>> Controlling 4 RC Servos
>> ALL based on 4 bits - one nibble, for now running on MSP430G2553, 20 pin
>> Dual in Line package
>> For details see www.forth-ev,de look under MMT
I've just had a look at MMT and it looks nice :-)
FIGnition is really a stand-alone computer rather than a controller.
This means that user-code can be written on the machine itself and
goes straight into its external RAM rather than being programmed into
its internal Flash.
This explains much about the reasons for why FIGnition Forth is
different to ANS Forth. FIGnition is really trying to be a self-hosted
80s home computer (like a Jupiter-Ace) rather than an embedded
controller and has similar limitations in terms of the language and
its capabilities. For example, it's geared to writing simple UDG or
bitmapped games and the entire OS and firmware fits into 16Kb of
Flash, which limits the number of words it can support.
The two main problems with supporting MMT on FIGnition is the lack of
available I/O and the lack of real-time behaviour owing to the video
display. It's theoretically possible to disable the keyboard and video
to gain up to 12 I/O ports (including proper serial I/O and at least
one or two PWMs), but then FIGnition would becoming more like an
Arduino.
If what you're really looking for is a controller that runs an ANS
version of Forth (why is ANS a requirement?) then perhaps AmForth
would be a better match IMO.
Another possibility, looking at it the other way would be to port the
FIGnition VM to the MSP430 (and running Forth code only from internal
Flash) and then, according to the application you want to run,
downloading the correct set of words to support the application. Since
the FIGnition VM uses a combination of byte codes and proper
addresses, you would gain better Forth code density than would be the
case with AmForth.
-Best regards from Julz
>> Could this project run as well under Fignition?
>> If YES, I would immediately buy one to check it out.
>> MMT now runs under 4e4th, MPE 430 LITE, probably eForth.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "FIGnition" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to
fignition+...@googlegroups.com.
>> For more options, visit
https://groups.google.com/d/optout.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "FIGnition" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to
fignition+...@googlegroups.com.
> For more options, visit
https://groups.google.com/d/optout.
>
--
The DIY 8-bit computer from nichemachines™