MPE Logo
MicroProcessor Engineering,
Limited
"More real, less time."

Main page & What's new?
Information and Services 
MPE Software 
MPE Hardware 
Development Hardware 
Free Downloads  
Pricelist 
Contact Us or Place an Order 



Forth 6 VFXCode Generators
Interactive Compilation, Debug and Test

MPE Forth 6 cross compilers are Windows tools with a wide range of features designed to emphasise rapid production of embedded systems. They all feature fast compilation, interactive debug and test even for single chip targets, and on-line source management. All Forth 6 compilers have the features described below.

Last updated: 11 April 2005


SideBar Features System Requirements

Windows 98/Millenium/NT/2000/XP running on a Pentium class processor

Documentation

  • Forth 6 manual
  • CPU/Target-specific manual
  • AIDE Cross compiler shell manual
  • On-line help files
  • Forth ANS Specification

The full Forth 6.3 cross compiler manual is available for download from here. CPU and target manuals are available on request.

Support Services 

  • Technical support via telephone, fax and e-mail
  • Free upgrades within 90 days of purchase
  • New v6.3 Cross Compiler

    The following are the major changes from the previous release of the cross compiler. Upgrades are available from previous releases of the compiler.

    NEW PowerView Embedded GUI

    PowerView provides facilities for displaying menus, buttons, text and images on monochrome or colour screens. Sample drivers are provided for LCD panels.

    NEW PowerFile system

    PowerFile has been updated to be smaller and faster. It includes an ANS Forth wordset that controls a complete filing system with sample drivers for serial EEPROM and Compact Flash or IDE drives.

    A single configuration file permits nearly all aspects of PowerFile to be configured. The filing system is suitable for use most applications, including data logging and web servering. A simple interface API links it to almost any form of mass storage, whether it be Flash memory, Disk-on-Chip, hard-disk or serial Data Flash or EEPROM. A USB host interface to memory sticks can be provided.

    NEW PowerNet

    The PowerNet TCP/IP stack and web server (available at extra charge) has been reworked to reduce memory usage. It now runs comfortably on the new generation of single chip ARMs and ColdFires. The full installation with Ethernet, Telnet and web server requires less than 16k bytes of RAM.

    N.B. The combination of PowerNet, PowerView and PowerFile permits the construction of fully web enabled controllers that have low memory requirements and low power consumption.

    NEW NetBoot and SerBoot

    Initially developed for ARM systems with Ethernet, the NetBoot code permits an embedded system with Flash to be remotely reprogrammed over over TFTP and Ethernet or a serial line. NetBoot has been in daily use at MPE for some time and we love it!

    SerBoot provides similar facilities but uses serial communications, e.g. RS232 or USB, with an XModem transfer protocol as provided by Aide, HyperTerminal and most serial comms packages.

    NEW More examples

    Fuzzy Logic package

    More Flash memory drivers

    Embedded Forth benchmark suite

    NEW AIDE enhanced

    Improvements in AIDE include file transfer tools for SerBoot and general purpose use, and additional support for USB serial ports which may appear as ports outside the range COM1..4.

    Changes up to v6.2

    FSM - Finite State Machines

    Finite State Machines (FSMs) are a convenient way of describing state driven systems that are otherwise difficult to program. The MPE FSM implementation allows for multitasked operation and nested state machines.

    This package has been in use for some years now for defining communications protocols in safety critical systems such as lifts (elevators) and train control.

    PID - Process Control Loops

    Initially developed for an MPE client, this implementation of a PID controller is now part of the Forth 6 cross compilers.

    Flash drivers

    The Forth interface to Flash memeory has been standardised at MPE, so the target code includes a range of programming interfaces to standard Flash memories. These can be used with almost no changes with a range of Flash devices on a range of CPUs.

    Compiler core

    The Forth 6 compiler itself has many detail improvements, including better code generation for structures, better LOCATE facilities, more facilities for code reduction, more facilities for importing C header files, test code handling and the DATA-FILE directive for loading binary data such as font tables and web pages. More external tools are provided, including the multi-channel Probe2 serial terminal emulator/analyser, file splitters, source file tab changers.

    Kernel code

    More support for TCP/IP streams such as Telnet, faster heap, new DOCGENned target glossary, cold boot chain, more cache support, enhanced stack protection, and many detail changes. The EXAMPLES folder includes improved I2C support and more I2C devices have been added.

    AIDE enhanced

    Improvements in AIDE include Windows XP enhancements and a configurable editor facility for finding the source code of a word through LOCATE.

    Changes up to v6.1

    Click here for the changes from Forth 6.0 to 6.1.

    Some targets are now available in three versions, Professional, IRTC, and Forth Stamp.

    Professional.

    The full compiler with all tools, compiler source code, all target source code, floating point, multitasker(s), TIMEBASE system, heap, automated test code, standalone and Umbilical Forth targets and Forth Stamp hardware drivers (if available).

    IRTC

    The same compiler and hardware but without compiler source code, and with Umbilical Forth only. TIMEBASE, floating point, PID, FSM, PowerFile and PowerView, automated test code, and bank switched targets are not supported.

    Forth Stamp

    As the IRTC compiler, but with code space restricted to the standard hardware. No cross reference facilities are available. PID, FSM, PowerFile and PowerView, automated test code, and bank switched targets are not supported.

    Forth 6 Cross Compilers


    AIDE

    The AIDE front end integrates a number of useful tools as standard:

    • ForthEd multi-file editor
    • PowerTerm teminal emulator for serial communications
    • Tool Capture window
    • Text macro system for build management
    • Make utility
    • Users can add additional tools at any time using the tool configuration system.
    Click here for screenshot of AIDE

    Fast Compilation

    The Forth 6 cross compilers are native 32 bit Windows applications that use a fast symbol search system for optimum performance and features. Additional time can be saved by configuring the compiler to place its output directly into an EPROM emulator.


    Standalone Forth

    Forth was designed as an interactive language, which is one reason why Forth permits embedded systems to be constructed and debugged very rapidly. Many designers like to retain that facility on their targets, so MPE compilers permit you to do this. The standalone target contains a complete Forth compiler and interpreter which can be used for debugging, and can also be used for communications, runtime configuration scripts, remote monitoring and even for accepting software updates in the field.


    Umbilical Forth

    Where memory is at a premium, Forth 6 provides the Umbilical Forth option. The normal Forth interactivity is retained, but is provided by the cross compiler, so avoiding the need for the full Forth compiler and interpreter on the target. This reduces the memory requirements of a fully interactive Forth to about 2k bytes for 8 bit CPUs. In this mode all the host tools are available as if on the target, making Umbilical Forth ideal for single chip target development.


    VFX Code Generator VFX

    Compilers for suitable target CPUs use MPE's VFX optimising code generator, which provides excellent code quality and code density. The VFX technology eliminates redundant memory moves caused by stack manipulations, and merges many common Forth operations, as well as using compiler techniques more common in other languages to enhance runtime performance. Inlining of procedures below a user definable size is also supported.

    VFX compilers also include a disassembler that is very useful for checking code generation efficiency, and for making performance analyses and decisions.

    The following targets incorporate the VFX code generator:

    • 386/486/Pentium
    • H8/300H and H8S
    • 68xxx
    • Coldfire
    • ARM/StrongARM/XScale
    • 68HC12
    • MSP430

    The VFX code generator produces code that is between 5 and 15 times faster than traditional Forth direct threaded code, somewhat dependent of course on the CPU architecture. A separate paper is available that has figures for several benchmarks. The MPE cross compiler benchmark code may also be downloaded (approx 40kb).


    Source Management

    The cross compiler provides facilities enabling you to see the source code of any target word at any time, and to find out where it is used in the code. Typing LOCATE <name> will display the source code for that word or put you in an editor at the start of the definition. XREF <name> will give you a list of all the words that use <name> - a cross-reference. XREF-ALL cross references all the words you have defined, whereas XREF-UNUSED produces a list of any words that have been defined but are unused.

    If you have to build several versions of a project, use the text macro facilities built into AIDE and the cross compilers. These allow you to change directories, file names and text globally within a project.


    Standard Hardware Configurations

    Each compiler comes complete with configuration files for one or more commercially available hardware systems such as manufacturers evaluation boards or MPE’s own hardware products. Configuration for custom hardware is usually just a matter of redefining the memory map of the processor.

    If you want the easiest possible start up route, MPE has a hardware porting service that will configure the compiler for your own hardware and will supply you with a tested configuration file.


    Multitasking

    The fast and efficient MPE multitasker provides the usual task management facilities, including semaphores, interprocess messaging and event handling.

    TIMEBASE time and delay management system. Using a single periodic clock interrupt, you can generate delays, wake/suspend tasks, timeouts and periodic execution very simply, using phrases such as:
      ' <action> <ms> AFTER \ once after <ms> ms
      ' <action> <ms> EVERY \ every <ms> ms

    Timers can be cancelled at any time.

    A task-safe heap system for memory management is supplied. The 32 bit implementation is optimised for performance, and the 16 bit implementation is optimised for code size.


    Integrated Assembler

    All compilers include an integrated cross assembler. There is no need to place assembly code in separate files. The assemblers are fast, easy to use, and are fully integrated into the cross compiler. VFX targets also include a disassembler.

    Assemblers support macros, conditional structures, named labels with forward referencing and local labels.


    Library Files With Multi-Pass Reference Resolution

    Library files are source files that can be scanned at the end of compilation. If a procedure in a library file satisfies a forward reference, the procedure is compiled and the reference resolved. A group of library files is scanned until no more references can be resolved.

    This procedure allows you to minimise the size of your code by only including words if they are actually needed.


    Direct Compilation to Flash and EPROM Emulators

    Forth 6 supports memory emulators and drivers. Use of an EPROM emulator avoids time lost to device programming, and gets you testing and debugging almost instantaneously after compilation.


    User Definable Communications Links And Memory Drivers

    For Umbilical Forth development, the compiler needs a communications link to the target. The protocol for this link has been factored in such a way that you can add your own drivers to the compiler.

    Forth 6 compilers support output of memory SECTIONs to files or to memory drivers, the most common of which is a Flash or EPROM emulator driver. You can add your own memory drivers if you need to, for example to drive a JTAG programmer or in-circuit emulator.


    Flexible Target Memory Management

    As microcontrollers gain more peripheral blocks and mixes of on-chip memory, efficient applications must make best use of these areas. Forth 6 compilers allow you to define any number of areas of memory called SECTIONs, which may be for code (CDATA), memory that is initialised at power up (IDATA), or unitialised memory (UDATA).

    $0000 $7FFF CDATA SECTION UE31
    $8000 $9FFF IDATA SECTION UE31I
    $C000 $DFFF UDATA SECTION UE31U
    $F000 $FFFF UDATA SECTION EEPROM

    Targets that require more memory than the CPU normally addresses, for example when an 8051 needs to access more than 64k bytes of memory, can define banks of memory that are split into pages.

    $A000 $BFFF CDATA BANK ROMBANK
      1 PAGES ROMB1
      2 PAGES ROMB2
      ...

    $E000 $EFFF UDATA BANK RAMBANK
      $100 PAGES RAMB1
      $200 PAGES RAMB2
      ...

    The flexible and efficient memory definition scheme provides complete control of target memory.


    Optional Extensions

    PowerNet TCP/IP stack

    A Forth implementation of popular IP based network protocols. Includes Telnet and a Web server. See the PowerNet page for more information. A major new version has been released.

    One user desribes the web server performance as "like s**t off a shovel".


    Cross Compiler Target CPUs

    Forth v6.3 compilers

    VFX Compilers for: ARM/StrongARM/XScale, 386/486/Pentium, H8S and H8/300H, 68xxx/683xx, Coldfire, 68HC12 and MSP430.

    STC+ v6.1 compilers: 8051 (includes free Forth Stamp hardware) and Rabbit R2000/3000.

    IRTC and Forth Stamp compilers AVR and 8051 (with free Forth Stamp hardware).

    Forth 6.3 Windows compilers with VFX code generators

    CPU family Comments Order code
    386/486/Pentium Fabulous code generation from the VFX compiler. XC386/63
    H8/300H & H8S Good code, good performance and excellent value for money CPU with wonderful but sometimes quirky peripherals. XCH8300H/63
    ARM/StrongARM/Xscale Amazing performance at insanely low prices. The compiler supports both big and little endian code. Our most popular compiler in recent years. The comp.arch.embedded newsgroup rates it "the 8051 of the 32 bit world". Wonderful insruction set! Still Stephen's favourite CPU. Compatible with MPE's new JTAG Widget USB JTAG debugger. XCARM/63
    68xxx/683xx Excellent code, a perennial favourite. XC68K/63
    Coldfire Great performance for the money. The MCF5282 is to drool over! XCCF/63
    68HC12 High speed upgrade to 68HC11; superb maths performance and excellent peripherals. XC68HC12/63
    MSP430 Excellent low power CPU with a good instruction set that makes small CPUs fun again. Good access to the TI JTAG facilities. XCMSP430/63

    Forth 6.3 STC+ Windows compilers

    CPU family Comments Order code
    8051/C5xx Suitable for all 8051 derivatives such as Intel, Philips, Atmel, Cygnal, Siemens, Dallas, Analog Devices etc. XC8051/63
    Rabbit R2000/3000 A modified and enhanced Z80/Z180 upgrade with interesting features and good pricing. XCRABBIT/63

    Forth 6 Windows compilers source compatible with the earlier v5 targets.

    CPU family Comments Order code
    80x86/88 A fast 32 bit system for real-mode x86 systems. Best of class for real-mode x86 Forth systems considering speed/size trade-offs. XC3216/59
    Intel 80C196 Good 16 bit workhorse. XC196/60
    68HC11 Goes on and on … XC68HC11/60
    Z80/Z180/84Cxx Excellent 8 bit performance; easy to expand memory, interesting new EZ80 cores XC180/60
    H8/500 Ideal for TDS2020 target boards that have run out of memory or speed. XCH8500/60
    M37700 Excellent peripheral mix. XC37700/60
    Mitsubishi M74xx/38xxx … For all Mitsubishi, Rockwell, and other derivatives of the 6502 core. XC6502/60
    6502/C02 For all 6502 and 65C02 compatible cores XC6502/60

    Forth 5 DOS compilers

    CPU family Comments Order code
    68HC16 Good performance. XC68HC16/51
    RTX2010RH The official Intersil development tool for this radiation hardened processor, and now the RTXcore VHDL/FPGA close is available with extra performance ... XCRTX2010/51
    TMS320C3x/4x A highly efficient DSP family XCTMS3x/51
    R3000/4000 Special order  

    Forth 4 DOS compilers

    Note that Forth 4 cross compilers have been reduced in price to GBP 195.

    CPU family Comments Order code
    Z8/Super8 Has recently had a new lease of life as the Z8 Encore XCZ8/43
    80x86/v5 uE188 MicroEngine target board XC8086/43
    6809/6309   XC6809/42
    TMS7000   XCTMS7000/42
    8085, 6801/3, 1802 and more Special orders  
     

    If the CPU family you are looking for is not here, please ask. We have a number of compilers that were developed as custom targets, and have not yet been documented to production standard.



    TopReturn to Top HomeReturn to HomePage