SwiftX Release Archive

This page is the archive of older SwiftX release notes. Recent releases are on the SwiftX Release History page.

SwiftX-3.12.2 (20-Dec-2020)

ARM

  • Updated to latest J-LINK SDK version 6.92.
  • Fixed bug in 2ROT
  • Added empty /PINS in pins.f for NHS3152 project
  • Added DEVICE= for J-LINK in FRDM-K64F config.f

MSP430

  • Minor update to improved detection of illegal index operands in assembler

SwiftX-3.12.1 (26-Sep-2020)

ARM

  • Updated to latest J-LINK SDK version 6.86.
  • Updated API call to JLINKARM_BeginDownload to include new argument

MSP430

  • Improved detection of illegal index operands in assembler
  • Improved detection of illegal immediate values in assembler

SwiftX-3.12.0 (21-Aug-2020)

ALL

  • Built on latest version of SwiftForth.
  • Updated app and folder icons to match new SwiftForth icon style.
  • Updated GUI menus to match latest SwiftForth practice.

ARM

  • Removed SysTick_BASE from the Cortex-M series register definition files. SysTick is actually part of the SCS_BASE group.
  • Set current count in /SYSTICK to prevent long startup delay in systems with slow clocks.
  • Removed unnecessary read of Systick STCTRL in system millisecond interrupt handler.
  • Improved mapping of registers in J-Link interface for Cortex-R parts.
  • Added support for the NXP NHS3152 eval board. This is in the LPC family of Cortex-M series parts.
  • Added LPC family GPIO support.
  • Added support for PMU access in different clock domain.
  • Added support for RTC32 clock.

ColdFire

  • Updated size range check in v1 FLASHBLOCK.

SwiftX-3.11.9 (19-Jun-2020)

ALL

ARM

  • Update to latest J-LINK SDK version 6.80c.
  • Fixed an issue with JTAG turnaround time for KEY? test. (Thanks to John Tse for the good detective work in solving this issue.)
  • Reorganized the ELF header for SwiftX-ARM-Linux so it loads correctly under Debian Buster, the latest OS for the RPi. (Thanks to Mike Ghan for helping track this down.)

SwiftX-3.11.8 (26-May-2020)

ALL

  • Built on latest version of SwiftForth

ARM

  • Update to latest J-LINK SDK version 6.80
  • Build literal pools on the fly as needed instead of just at the end of colon definitions to prevent the dreaded “Can’t reference literal value” error.

ColdFire

  • Add port enumeration at startup so DLL unloads without error. (This is a workaround for a bug in the UNIT_CFZ library used by SwiftX to access P&E BDM debug modules.)

SwiftX-3.11.7 (19-May-2020)

ALL

  • Added mixed-precision divide operator M/ to common mixed.f
    (Thanks to Chris Huntley for spotting this long-standing omission.)
  • Built on latest version of SwiftForth.

ARM

  • Fixed operands to LSRS instruction in D2/
    (More thanks to Chris Huntley.)
  • Corrected wrapper.f usage comments
  • Added RBIT to assembler and disassembler
  • Update to latest J-LINK SDK version 6.7.2d

MSP430

  • Improved xmem.f ‘X’ operators
  • Added EXT prefix to assembler and disassembler in support of ‘X’ words.
    (Thanks to glasmacher electronic GmbH for these two improvements.)

SwiftX-3.11.6 (05-May-2020)

ARM

  • Update to latest J-LINK SDK version 6.7.2a
  • Add RBIT instruction for v7-M and higher cores
  • Correctly decode MRC, MCR, and RBIT opcodes

SwiftX-3.11.5 (22-Dec-2019)

ARM

  • Defer JLINK-SPEED setting until after connection is established. JLINK-SPEED saves the new speed in a variable and the speed is set in connect sequence.
  • Removed 12 MHz speed restriction from JLINK-SPEED to support new faster core JTAG speeds.
  • Updated to latest J-LINK SDK version 6.6.0b.

SwiftX-3.11.4 (21-Nov-2019)

ARM

  • Fixed Segger J-Link initialization sequence register identification for Cortex-M targets.
  • Changed 2! to use STR instead of STM to prevent alignment issues on Cortex-R5 targets.
  • Fixed DOES> so it resets the optimizer for the run-time portion.

SwiftX-3.11.3 (06-Sep-2019)

ALL

  • Fixed object file output so APPEND-CODE works for .exe and .elf files.

ARM

  • Added the full set of Segger J-Link drivers and driver installers. This results in bigger SwiftX-ARM installers. (Sorry!)

SwiftX-3.11.2 (05-Aug-2019)

ARM

  • Updated to Segger v6.48b for Segger J-Link modules.

SwiftX-3.11.1 (24-Jul-2019)

ARM

  • Updated to Segger v6.46k for Segger J-Link debug modules.

AVR

  • Updated to AVRDUDE 6.3. Adds support for newer parts and UPDI programmer interfaces.

SwiftX-3.11.0 (28-May-2019)

ALL

  • Built on latest version of SwiftForth.

ARM

  • Updated to Segger J-Link SDK V6.46.
  • Added single-step debug support for Cortex-M parts. Note: If you wish to add this to your custom projects, please see kernel.f in any of the sample projects and look for the addition of stepper.f.
  • Corrected some truncated register names in reg_xxx.f files (e.g., PIT_MCR).
  • Added simple in-system flash programming for ATSAM4S.
  • Removed unused ATSAM4S BOOTCODE section in config.f.

AVR

  • Changed “Atmel” references to “Microchip” following the transition in the AVR vendor documentation.
  • Added register definition file and updated avrdude.conf for the ATmega328PB.

SwiftX-3.10.7 (18-Jun-2018)

ColdFire

  • Changed BDM-SPEED so it only applies to FX modules (which have default clock 25x faster than the other BDM modules).

ARM

  • Changed the Kinetis RTC interface to support continuous operation on battery. No longer resets on init, doesn’t require SRAM variable for origin date.
  • Restored UART initialization and demo startup in the FRDM-K64F project.
  • Fixed name PIT_MCR in reg_mk60f12.f (previously missing “PIT_” prefix).

SwiftX-3.10.6 (03-Dec-2017)

68HC12

  • Fixed the serial XTL baud rate setting in sci0xtl.f.

ARM

  • Fixed rollback of literals in optimizer for legacy ARM targets.
  • Added CPS, MRC, and MCR opcodes for ARM Cortex targets.
  • Added special case imm8 LR PC SUBS opcode for ARM Cortex targets.
  • Improved support for register mapping and register dumps when using J-Link.
  • Added support for custom J-Link scripts. Contact support if you need to add a custom J-Link script.

SwiftX-3.10.5 (01-Oct-2017)

ARM

  • Updated Segger J-Link library to the latest version (6.20d)
  • Added register definition file for NXP LPC5460x (in SwiftX/src/arm-cm/lpc/reg_lpc5460x.f).
  • Added register definition file for NXP Kinetis KL03 (in SwiftX/src/arm-cm/kinetis/reg_kl03z4.f).

 MSP430

  • Updated extended memory operators (X@, X!, and friends) to use double-number addresses. These are now included in the kernels for parts with memory above $FFFF.

Swiftx-3.10.4 (20-Sep-2017)

ARM

  • Updated Segger J-Link library to the latest version (6.20a)

MSP430

  • Added target project directory for MSP-EXP430FR5969 LaunchPad board.
  • Added target project directory for MSP-EXP430FR5994 LaunchPad board.
  • Updated MSP430FR596x register definition file
  • Added MSP430FR599x register definition file
  • Updated SwiftX-MSP430 Target Reference Manual

SwiftX-3.10.3 (08-Aug-2017)

ARM

  • Updated Segger J-Link library, drivers, and installer to the latest version (6.18)
  • Updated ADC0 and ADC1 register names for Kinetis K64F in reg_mk64f12.f
  • Fixed cache enable for Cirrus CS-E9302

SwiftX-3.10.2 (14-Jun-2017)

ARM

  • Updated Segger J-Link library, drivers, and installer to the latest version (6.16b)
  • Reorganized all legacy ARM kernel.f files to load CATCH/THROW exception handling before UM/MOD is defined. Be sure to make this same one-line move to your own projects’ kernel.f files.

SwiftX-3.10.1 (14-Apr-2017)

ARM

  • Corrected a long-standing bug in UM/MOD (both 32-bit and Cortex-M versions).
  • Added test for divide by 0, which now results in -10 THROW (per the Forth Standard).
  • Reorganized all ARM-CM kernel.f files to load CATCH/THROW exception handling before UM/MOD is defined. Be sure to make this same one-line move to your own projects’ kernel.f files.

MSP430

  • TI changed the name of their driver installer and we missed that in one of the lines in our install script. If you select the option to install the TI drivers, it should now correctly launch the TI installer. Be sure you run the SwiftX installer with administrative privileges.

SwiftX-3.10.0 (09-Apr-2017)

ALL

  • Removed obsolete DriverX from install

ARM

  • Updated the J-Link libraries.
  • Added missing registers for ST EFM32ZG in reg_efm32zg.f.
  • Fixed JTAG debug port display to prevent crash in port selection dialog box.

ColdFire

  • Updated the P&E driver libraries and driver installer.

MSP430

  • Moved the definitions of the Information Memory pages (and page size) to the register definition files. (This is for flash parts only.) LOCATE INFO_SEGMENTA to see this group of base addresses. These replace the old (and incorrect) SegmentA and SegmentB.
  • Updated the TI MSP430 libraries and driver installer.

SwiftX-3.9.5 (23-Oct-2016)

MSP430

  • Corrected exception on connect for EZ430 debug adapters

SwiftX-3.9.4 (09-Oct-2016)

ALL

  • Restored EXPIRED test (used by MS) to COUNTER – 0< to handle wrap correctly

MSP430

  • Updated MSP430.DLL to latest version from TI
  • Added optimizer rule (SwiftX-Pro only) for 2R> 2DROP

SwiftX-3.9.3 (19-Aug-2016)

Coldfire

  • Added /CLOCK in start.f to initialize the MCG for PLL use with the external 12 MHz crystal on the EVB51JM128 board. This replaces the FLL initialization in POWER-UP.
  • Made a new target project for the DEMOJM128 board. The older EVBJM128 is no longer available.

 MSP430

  • Added NOP after DINT in XTL REPLY as suggested by TI/
  • Prevent interrupts during *, M*, and UM* for targets with the hardware multiplier. This allows the multiplier to be used in interrupt service routines.

SwiftX 3.9.2 (19-Jul-2016)

ARM

  • Updated to latest version of J-Link DLL.
  • Added support for Silicon Labs EFM32 series Cortex-M microcontrollers.
  • Added target board project for Silicon Labs EFM32ZG-STK3200 board.Updated Atmel SAM4S-XPro to use the Segger J-Link instead of a COM port. Requires target board EDBG firmware update from Segger. The entire debug/flash connection is now done by a single USB connection direct to the board.
  • Added target board project for the STEVAL-PCC009V4 board from ST with the STM32F103 (Cortex-M3). This board requires an external Segger J-Link debug probe with standard 20-pin ARM JTAG connector.

ColdFire

  • Set NVPROT bits to all ones in start.f for EVB51JM128 project.

MSP430

  • Updated to latest MSP430.DLL from TI.
  • Added missing TIB memory allocation to TERMINAL task definition.

SwiftX 3.9.1 (16-Feb-2016)

AVR

  • Invoke flash programming shell scripts with three fuse bytes to support AVR devices with extended fuse bits.
  • Added device support for ATtiny1634.

ARM

  • Updated to Segger 5.10m driver library.

SwiftX 3.9.0 (06-Feb-2016)

ALL

  • Software updates are now being delivered from our new server dl.forth.com.
  • Due to security issues with public link expanders, we have abandoned the fth.link download links.
  • Front matter trademark notices updated in the SwiftX reference manuals.
  • New P&E driver installer 12.0.0 included in packages that support USB Multilink interfaces (ColdFire, ARM, S12). Important: This update improves support for Windows 10.

AVR

  • Updated AVRDUDE utility to version 6.2
  • Replaced AVRDUD documentation with version 6.2.

SwiftX 3.8.9 (08-Dec-2015)

ALL

  • Our notification emails now contain shortened URLs for the download links. A number of people had issues with their email clients splitting the long links in plaintext emails. This should solve that problem.
  • Updated to the released version of the Forth-2012 standard (PDF file in doc directory).
  • Updated all binaries with new GlobalSign code signing certificate.
  • Changed CONFIGURE-TCP to CONFIGURE-IP to support TCP and UDP XTL connections.
  • Added CDATA-CHECKSUM to run a CRC32 across all declared CDATA sections at compile time.

ARM

  • Changed to UDP for XTL in the SwiftX-ARM-Linux target for improved performance.
  • Added SEGGER debug module support for some ARM Cortex-M targets.
  • Added decode of SVC calls to the disassembler.
  • Added high-level interrupt wrapper for Cortex-M targets. See wrapper.f for usage rules.

ColdFire

  • Added high-level interrupt wrapper for ColdFire targets. See wrapper.f for usage rules.

68HC12

  • Added paged target memory support to the BDM XTL.

MSP430

  • Added register definition files for MSP430FR596x series of FRAM microcontrollers.
  • Expanded interrupt vector support for parts with more vectors (now starting at FFC0).

AVR

  • Added register definition file for the ATmega165A.

SwiftX 3.8.8 (05-Feb-2015)

ALL

  • Reworked the CRC32 “checksum” calculation to include all declared CDATA sections (not just the main one).

ARM

  • Added P&E JTAG library support for the SwiftX Evaluation version. (Thanks to Roger de Quincey.)

ColdFire

  • Uncommented the timer and serial initialization in START for the DEMOAC256 project. (Thanks to John Tse.)

SwiftX 3.8.7 (23-Jan-2015)

ALL

  • All executables, drivers, libraries, and installers released under new GlobalSign code signing certificate.

ColdFire

  • Added timer_rti.f to support parts with the RTI timer module.
  • Added support for the MCF51AC256 on the Freescale DEMOAC256 board.

SwiftX 3.8.6 (30-Dec-2014)

ARM

  • Updated LOOP and +LOOP to correctly handle long branches.
  • Updated SRAM allocation in new TWR-K60F120M project.
  • Minor updates to SwiftX ARM Target Reference Manual.

SwiftX 3.8.5 (18-Dec-2014)

ALL

  • Updated TCP/IP XTL close on exit. (Thanks to Mike Ghan.)

ARM

  • Added Freescale TWR-K60F120M project.
  • Updated SwiftX ARM Target Reference Manual.

SwiftX 3.8.4 (18-Nov-2014)

68HC12

  • Restored missing project.swx for DEMO9S12EXP100 board project folder.
  • Added a few more 16-bit CPU12X opcodes to the assembler. Thanks to Stefano Bizzari.
  • Added decode of those CPU12X opcodes to disassembler. Also thanks to Stefano.

ARM

  • Added sample “distress” application for LPCXpresso-LPC1114/5.
  • Fixed D- and D< kernel primitives.

SwiftX 3.8.3 (26-Oct-2014)

68HC12

  • Added 16-bit CPU12X opcodes to the assembler. Thanks to Stefano Bizzari.
  • Added decode of CPU12X opcodes to disassembler. Also thanks to Stefano.

ARM

  • Added Freescale Kinetis FRDM-K64F project. The K64 in our version runs at full speed (120 MHz).
  • Updated SwiftX-ARM reference manual.
  • Updated debug interface driver libraries for Kinetis parts.
  • Fixed paths in Kinetis sample “distress” project.swx files. Thanks to John Tse.

SwiftX 3.8.2 (19-Oct-2014)

ALL

  • Fixed the SwiftX-Lite swx project file loader so the command line
    option passed by the Windows explorer shell is case insensitive.
    (Thanks to John Tse.)

68HC12

  • Added ‘G’ operators for S12X CPU cores to permit access to entire
    23-bit linear address space. Includes memory read, write for byte, cell,
    and double cells along with a memory dump and words to define variable
    and buffers in extended memory.
  • Replaced paged code memory operators with these easier-to-use ‘G’ operators in the DEMO9S12XEXP100 project.

ARM

  • Added UART initialization and serial demo task launch for the Kinetis projects.

SwiftX 3.8.1 (14-Oct-2014)

ARM

  • Merged serial and PE/JTAG SwiftX-Pro load files.
  • Use merged load file to generate SwiftX-Lite executable.

SwiftX 3.8.0 (09-Oct-2014)

ARM

  • Added support for Freescale Kinetis parts. Initial target boards include the TWR-K60D100M and FRDM-KL25Z.
  • Added OpenSDA and OSBDM/OSJTAG debug interface support using PE Micro UNITACMP libraries.
  • Updated the SwiftX-ARM Target Reference Manual.
  • Extended USER optimizer rules for the ARM Cortex-M to allow user offsets above 128.
  • Forced longword alignment of download image size in LPC and STM32F bootloader interfaces.
  • Added support for Cortex-M0+ cores.

ColdFire

  • Remove critical error check from BDM UPLOAD function to prevent spurious errors.

SwiftX 3.7.3 (04-Sep-2014)

ALL

ARM

  • Refactored counter/timer and clock/calendar code to use system
    monotonic counter for COUNTER and uCOUNTER and use the system clock
    for clock and calendar only. Thanks to Mike Ghan.

AVR

  • Optimized flash programming scripts for Arduino boards. The
    auto-verify function is disabled to support the many ISP modules that
    have very slow readback. See comments in the flash scripts (flash.bat
    for Windows and flash.sh for Linux and macOS hosts).

ColdFire

  • Corrected SOPT1 and SOPT2 addresses in reg_51jm128.f source.
  • Added BDM-SPEED (takes value 0-31 and sets BDM clock divisor to n+1, default is 0.)
  • Corrected the STOP decode in the disassembler.

SwiftX 3.7.2 (13-Apr-2014)

ALL

  • Removed object file host memory buffering to better support appending object files.

ARM

  • Improved TCP/IP XTL speeds.
  • Corrected BKPT operand display in Cortex-M disassembler.

AVR

  • Update to version 6.0.1 of the AVRDUDE programming utility.
  • Update AVRDUDE documentation.
  • Removed CYCLECOUNT (no longer supported by AVRDUDE).
  • Removed redundant PAGESIZE definition in reg_m1280.f.
  • Corrected register offsets in reg_tn84.f.

SwiftX 3.7.1 (09-Feb-2014)

ALL

  • All SwiftX versions have been rebuilt on the
    latest SwiftForth (3.5.3).
  • Improved serial bootloader support for LPC and STM32F bootloaders.

ARM

  • Updated SwiftX ARM Target Reference Manual. Added sections for Nuvoton NuMicro-SDK and NXP LPCXpresso-LPC111x boards.
  • Improved compatibility with non-Windows SwiftX host environments (Linux and OSX).

AVR

  • Improved compatibility with non-Windows SwiftX host environments (Linux and OSX).
  • Correct flash.sh script for AVRDUDE programming under Linux and OSX.

ColdFire

  • Added IAP (in-application programming) for 1k flash block on ColdFire V1 parts.

SwiftX 3.7.0 (01-Jan-2014)

ALL

  • All SwiftX versions have been rebuilt on the
    latest SwiftForth (3.5.2).
  • Updated serial bootloader support (only applies to targets with serial bootloaders).
  • Make sure target CONSTANT defines words with heads when preceded by ~ (tilde) while heads are turned off.

ARM

  • Add FLUSH-CACHE in support of resident interpreter compiler in ARM-Linux target.
  • Use mmap() to allocate executable memory for ARM-Linux terminal tasks.
  • Clean up project.swx and kernel.f include files for most ARM targets.

MSP430

  • Add support for new LaunchPad MSP-EXP430F5529LP board. Split
    original LaunchPad directories each into two subdirectories, one per board.
  • Updated MSP430.DLL to latest version from TI.
  • Updated MSP430.DLL debug interface layer to correctly support eZ-FET JTAG interface.

SwiftX 3.6.8 (01-Dec-2013)

ALL

  • All SwiftX versions have been rebuilt on the
    latest SwiftForth (3.5.1).
  • Corrected the generation of record type 04 extended linear address records in HEX object files.
  • Added Set IP Address to tools menu for TCP/IP XTL targets.
  • Added 30-bit fix-point fraction and fractional angle support for 32-bit targets.
  • Extended linked task list debug tool to append the name of the task in the target memory image.
  • Fixed possible stack underflow condition in VT100 terminal personality.

68HC12

  • Simplified EE2! in eet.f.

ARM

  • Updated socket management in ip.f for ARM-Linux targets.
  • Added caught signal counter to TRACEBACK display in Linux trap.f handler.
  • Corrected the request for for (X-ACCEPT) in xtl-tcp.f.
  • Added ZPLACE and ZAPPEND to zstrings.f support in ARM Linux target.
  • Correct the comparison operation in D< code in legacy ARM kernel.
  • Added N>R and NR> for legacy ARM kernel.
  • Added Atmel SAM4S support (Cortex-M4 part) with the Atmel SAM4S Xplained Pro eval board.
  • Corrected +RIE and -RIE in STM32F1 xtl_usart.f XTL driver.
  • Simplified the code for – (“minus”) in the Cortex-M kernel.
  • Added double square-root support for the Cortex-M in support of extended fractional arithmetic.
  • Added code to mask off all interrupts in /INTERRUPTS in the Cortex-M kernel.
  • Fixed optimizer rules for R@_X! and DUP_LIT_CMP_WHILE in the Cortex-M code optimizer.
  • Cortex-M compiler data space alignment now aligns based on the size being reserved (instead of always keeping mod4 alignment).
  • Removed parallel port JTAG “wiggler” support from legacy ARM cross compiler.
  • Corrected the block erase calculation in the STM32F bootloader interface.

AVR

  • Added register definition files for the ATmega1280, tiny26, tiny84, xmega128a1u parts.
  • Updated the flash.bat script to use USB as the port passed to AVRDUDE for AVRISP II programming.

SwiftX 3.6.7 (01-Jul-2013)

ARM

  • Added appendix to SwiftX-ARM target manual for STM3241G-EVAL. Use this same section for the STM3240G-EVAL; they’re nearly identical.
  • Added display of PID to the GREET message in Swiftx-ARM-Linux.
  • Fixed the setting of HLIM in CONSTRUCT.
  • Added EXIT-THREAD and DEFER PRE-DOWNLOAD in SwiftX-ARM-Linux.
  • Fixed the reversed parameters in 2W! (Cortex-M version).

SwiftX 3.6.6 (16-Jun-2013)

ALL

  • All SwiftX versions have been rebuilt on the
    latest SwiftForth (3.4.6).
  • Fixed COM port mode settings in serial XTL.
  • Expanded serial XTL port selection dialog box.
  • Added receive timeout to TCP/IP XTL host side.
  • New P&E v11 drivers. Run the driver install at the end of our
    SwiftX installation. (Only applies to targets that use P&E debug
    interfaces.

ARM

  • Added SKIP-OPT to skip push/pop tail recursion optimization on the next defition only.
  • Updated disassembler register display to show Forth register name aliases.
  • Added detailed decodes for some common push and pop instructions.

ARM-Linux

  • Added pthread condition variables support.
  • Invalidate CFD when there’s no TCP connection.

ColdFire

  • Fixed LINK and UNLK opcodes.
  • Fixed disassembler decode of LINK operands.

MSP430

  • Update register definitions.

SwiftX 3.6.5 (13-Mar-2013)

68HC12

  • Added ev-flash.f as an alternative to ev-ram.f for implementations with exception vectors in flash only.
  • Updated project build.f files so they exit with the correct base and context.

ARM

  • Updated Cortex-M3 core register definition file.
  • Updated Cortex-M4 core register definition file.

SwiftX 3.6.4 (28-Jan-2013)

ALL

  • Added task list debug aid. See SwiftX/src/tasklist.f for details.

68HC12

  • Added support for Adapt9S12DP512 board with BDM debug interface.
  • Updated BDM flash loader to support multiple code pages.

ARM

  • Multiple enhancements to IP, UDP, and TCP support in ARM-Linux.
  • Added support for arrays of threads and sockets in ARM-Linux.
  • Updated sample LED driver for STM32F4-Discovery board.
  • Fixed code alignment issue in ARM Classic DOES>.

MSP430

  • Added more register definition files.
  • Fixed USB FET firmware update routine to work with newest TI DLL.
  • Updated to newest TI DLL.

SwiftX 3.6.3 (07-Nov-2012)

ARM

  • Updated SwiftX ARM Target Reference Manual with new boards.
  • Fixed thread activation in ARM-Linux target.
  • Moved pin configuration into its own file (pins.f) per project for most Cortex-M targets.
  • Fixed U< and U> in Cortex-M core words.
  • Added signal handler to force a THROW on certain signals.

SwiftX 3.6.2 (03-Oct-2012)

ALL

ARM

  • Improved code for 0<> (thanks to Mike Ghan).
  • Added support for ST boards STM32F4-Discovery and STM3241EVAL (STM3240EVAL).
  • Moved STM32F directory to STM32F1 to split Cortex-M3 and Cortex-M4
    variants, which have incompatible peripheral register sets.
  • Added MASK! and OR! to arm-cm/extra.f to facilitate Cortex-M
    peripheral register initialization.
  • Changed 1+ to 1 OR in Cortex-M INTERRUPT vector words to be sure
    we are really setting the “T” bit in the address (thanks to Jach
    Fong).
  • Added near/far branch capability to the Cortex-M version of UNTIL
    (and all its related optimizer rules).
  • Refactored the serial port selection in serial.demo.f. Each
    project now supplies its own COMX to select the demo serial port.
  • Extended generic STM32F bootloader to work with Cortex-M3 and Cortex-M4 versions of the ST parts.

AVR

  • Corrected long/short call anomoly in DOES>. (Thanks to Tony Ware.)

MSP430

  • Updated JTAG interface to latest TI MSP430.DLL (3.5.4). Some of
    the DLL functions we relied on in the SwiftX debug interface have been
    remove, so this SwiftX version now uses the EEM for debug functions.
    Please report any issues with this ASAP to support@forth.com.
  • Added more register definition files to the burgeoning list of support MSP430 variants.

SwiftX 3.6.1 (31-Jul-2012

ALL

ARM

  • Updated SwiftX-ARM Target Reference Manual.
  • Added command-line argument and environment variable access words.
  • Reorganized TCP XTL source in cross compiler.
  • Fixed short length bugs (read and write) in TCP XTL.

MSP430

  • Updated to latest MSP430.DLL version 3.2.4.5 from TI.
  • Restored the lost RESET word for the JTAG DLL interface in the cross compiler.

SwiftX 3.6.0 (12-Jul-2012)

ALL

  • All installers and executable files (including drivers) are now
    signed with AutheniCode certificates. This should cut down on false
    positives from shoddy anti-virus programs.
  • The main executable in the SwiftX/bin directory is now sfx.exe,
    which is a special SwiftForth Turnkey just for launching SwiftX
    compilers, including the Lite and Eval versions.
  • Lite and Eval versions now use the same Project.swx files to
    launch SwiftX (using sfx.exe as a “helper” app). The old shorcut .lnk
    files are no longer needed.
  • Updates to SwiftX reference manual.
  • Added shortcut LOC (synonym for LOCATE).

68HC12

  • Improved the BDM flash loader.
  • Added some new optimizer rules.

8051

  • Added a project directory for the SiLabs F120DK.

ARM

  • Added support for ARM Cortex-M series. This core has an entirely different instruction set from the ARM Classic, so the source and cross compiler are on new directories named “arm-cm” (for “ARM Cortex-M”).
  • Added a project directory for embedded ARM Linux targets. This is in the ARM Classic source tree: SwiftX/src/arm/linux. Details are on the SwiftX-ARM Target Refernece Manual.
  • Changed instances of “LR PC MOV” to the preferred “LR BX” in the ARM Classic source files,
  • Replaced the target-resident compiler with a new version that works better across split memory spaces.
  • Added optimizations for user @ and user ! operations.
  • Extended tasks’ user area and multitasker to hold empty return stack address in a user variable. This supports systems in which the user area and return stack are not contiguous.
  • Updated CrossConnect DLL and drivers.

AVR

  • Updated Arduino serial drivers.
  • Updated version of AVRDUDE.

ColdFire

  • Updated P&E BDM DLLs and drivers.
  • Improved stack comments in source files.
  • Added some new optimzer rules.

MSP430

  • Updated MSP430 DLL and drivers from TI. We are now using the v3 DLL. The first time you connect a GET430-UIF, you will be prompted to perform a two-stage UIF firmware update.
  • Added register definition files for many newer MSP430 parts.
  • Added support for LaunchPad and FRAM Experimenter’s boards.
  • We are now passing the $AAAA (“booted from BDM”) flag in R14 instead of R15. The value is still also in R15 for legacy support, but we prefer R14 as it is less likely to be clobbered on reset as we have seen in some of the newer parts.
  • The source tree under SwiftX/src/msp430/fet430 has been reorganized. Several new sample project directories have been added.

SwiftX 3.5.9 (12-Apr-2011)

ALL

68HC12

  • Updated SwiftX 68HC12 Target Reference Manual.
  • Added support for P&E Micro BDM interactive debug (XTL) and flash programming.
  • Added support for S12X parts (flash programming, PLL calculations).
  • Added sample project for Freescale DEMO9S12XEP100 board.
  • Removed sample project for obsolete B32EVB.

AVR

  • Updated SwiftX AVR Target Reference Manual.
  • Updated register definition files to include standard “data memory declarations” sections.

SwiftX 3.5.8 (03-Mar-2011)

ALL

  • Added SwiftX/samples directory with some simple sample projects.
    More samples to come in subsequent releases.

AVR

  • Added support for Arduino Uno and Diecimila boards.
  • Added drivers for Arduino boards and Pololu ISP programmer to installer.
  • Updated SwiftX AVR Target Reference Manual with section on Arduino boards.
  • Added AVRDUDE for flash programming some target boards. More to come in subsequent releases.

MSP430

  • Added &LPM to lpm.f.

SwiftX 3.5.7 (22-Feb-2011)

ALL

  • All SwiftX versions have been rebuilt on the
    latest SwiftForth (3.2.5).
  • Corrected processing of Windows message to fix broken “Break” button.
  • DEFER .OK in target-resident interpreter so it can be extended or replaced by application code.

AVR

  • Added suport for ATmega328p part on STK200 board.
  • Removed support for obsolete Atmel EVB target board.
  • Moved STK200 AT90S8515 files into their own subdirectories.
  • Added definition FUSEBYTES to ATmega projects’ config.f files.

MSP430

  • Added several register definition files for more MSP430 parts.

SwiftX 3.5.6 (11-Jan-2011)

ALL

AVR

  • Reduced common return stack size |R| to 48 so devices with limited memory can load the full kernel.

SwiftX 3.5.5 (05-Jan-2011)

ALL

  • Updated SwiftX Reference Manual.
  • All SwiftX versions have been rebuilt on the
    latest SwiftForth (3.2.3).
  • Updated Help menu.
  • Added CRC32 kernel checksum to Lite versions.

68hc11

  • Updated SwiftX 68HC11 Target Reference Manual.

68HC12

  • Updated SwiftX 68HC12 Target Reference Manual.

68HCS08

  • Updated SwiftX 68HCS08 Target Reference Manual.

8051

  • Updated SwiftX 8051 Target Reference Manual.

ARM

  • Updated SwiftX ARM Target Reference Manual.

AVR

  • Updated SwiftX AVR Target Reference Manual.

ColdFire

  • Updated SwiftX ColdFire Target Reference Manual.
  • Extend pin initialization for CMM52259 to include QSPI for onboard serial flash.
  • Added input pin registers for MCF52259 in reg_52259.f source file.

MSP430

  • New MSP430 DLLs and drivers from TI.
  • Updated SwiftX MSP430 Target Reference Manual.
  • Changed installation procedure for MSP430 to use TI-supplied driver installer. This is run as an option at the end of the SwiftX installer.

SwiftX 3.5.4 (07-Sep-2010)

ALL

  • Updated SwiftX Reference Manual.
  • Replaced VALUE, TO, and IS with simplified versions.

ARM

  • Correct runtime code for ?DO in target-resident compiler.

AVR

  • Inline code for >R.

ColdFire

  • Corrected documentation for MMOV in SwiftX ColdFire Target Reference Manual.
  • Added support for MCF52259 on Axiom CMM52259 board.
  • Added support for MCF51JM128 on Freescale EVB51JM128 board.

SwiftX 3.5.3 (14-Jun-2010)

ALL

  • Replaced simple checksum calculation in SAVE-CHECKSUM (used in most targets) with a CRC.

68HCS08

  • New P&E BDM drivers and DLLs. If you use a 64-bit version of Windows, you need this update.
  • Updated flashloader to use DEFCLK (default clock rate) supplied by config.f for all projects.
  • Write $FF to FPROT in flashloader for compatibility with QE128 parts.
  • Renamed rti.f as timer_rti.f for consistency with other targets.
  • Added support for MC9S08QE128 on DEMOQE128 board.

ARM

  • Corrected definition of EMCStaticExtendedWaitTime in reg_lpc2468.f register definitions.

AVR

  • Added support for ATmega168 on Arduino Diecimila board.

ColdFire

  • New P&E BDM drivers and DLLs. If you use a 64-bit version of Windows, you need this update.
  • Corrected definition of SCI2C3 in reg_51qe128.f register definitions.
  • Renamed S-TERMINAL to SCI-TERMINAL in sciterm_v1.f for consistency with other targets.

SwiftX 3.5.2 (30-Mar-2010)

8051

  • Added target directory for Silicon Labs C8051F340DK.

ColdFire

  • Added new optimizer rules for LIT_@_ALU.
  • Corrected name SCI2C3 in reg_51qe128 register defs.

SwiftX 3.5.1 (12-Mar-2010)

ALL

  • Updated SwiftX Reference Manual. Details on host SwiftForth
    environment source browsing tools have been corrected to match the
    current host implementation.
  • Corrected a bug in the single stepper that resulted in a host
    memory access error.
  • Changed the order of the elements displayed in the SwiftX window’s
    title bar (which is also reflected in the task bar) so the
    project-specific part of the title is displayed first. This is very
    helpful if you have multiple SwiftX windows open at the same
    time.
  • Added a deferred BREAK-ACTION function inside the remote execution
    behavior of target words. If you “break” out of a target definition
    that “hangs”, BREAK-ACTION is always called. Default BREAK-ACTION is
    null. Add your own like this: ‘ MyBreakAction IS BREAK-ACTION .

68HC12

  • Restore missing THEN in SCI0 and SCI1 non-paged XTL serial interrupts.

8051

  • Added C8051F02x target-resident flash programming and erasing functions.

ColdFire

  • Added SCI serial port driver for V1.
  • Added support for ROM-only exception vectors (i.e., not vectored through RAM) for parts with limited RAM.
  • Added exception vector names to Reg_51qe128.f.
  • Correct some bad block comments in cross-compiler source files.

MSP430

  • Updated MSP430 Target Reference Manual.
  • Added -DEBUG to all target START routines. If you are using the
    single-stepper, add -DEBUG to your START, just before GO.
  • Removed optimizer rules that use BIS, which does not set flags (so
    can’t be used to substitute things like OR IF ). SwiftX-Pro-MSP430
    users are stronly advised to update to 3.5.1 for this important code
    optimizer fix.
  • Added all the ‘SEL2’ registers to reg_241x.f.

SwiftX 3.5.0 (29-Dec-2009)

ALL

  • All SwiftX versions have been rebuilt on the
    latest SwiftForth (3.2.1).
  • Launching a SwiftX-Pro project from a path that contains spaces is
    now supported correctly, so go ahead and put those project folders on
    the desktop if you feel like it.
  • Added support for setting the HEX file format object “width”. Use
    n WIDE (where n is 2 or 4) before SAVE-CODE for Intel HEX object
    files. The default is 1 for standard HEX files.

68HC12

  • Extended serial XTL to include code page value for PPAGE.
  • Fixed external SRAM code page mapping for DP256/DP512 board.

8051

  • Updated interrupt vectors in reg_f34x for the C8051F34x parts.

ARM

  • Updated CrossConnect JTAG libraries from Rowley.
  • Wrapped TARGET and INTERPRETER around the OPERATOR task memory
    allocations in the ARM project config.f files.
  • Added SCS register for LPC2103.
  • Added support for MC1322x parts.

AVR

  • Added register files and sample STK200 projects for M88P and M644P
    parts.
  • Modified serial and timer code to use LDS and STS instructions
    instead of IN and OUT to support parts with extended port
    addresses.

ColdFire

  • Updated UNIT_CFZ BDM libraries from P&E.
  • Added support for IPextreme CFV1CORE_ALTERA on the Altera Cyclone
    III FPGA Starter Kit.
    Download the app note.
  • Updated memory map, clock configuration, and initialization code
    for the MCF51QE128.
  • Added support for the MCF5213 on the M5213BADGE development board.
  • Fixed optimizations for some pairs of literals.
  • Corrected DLL interface for reading and setting VBR via the BDM.

MSP430

  • Updated MSP430 JTAG libraries from TI.
  • Added support for target-resident interpreter. If you want to add
    this to one of your MSP430 projects, please use the additional lines
    in one of the sample project’s kernel.f as a template.
  • Set correct default (0) for TARGET-INTERP in MDP430 config.f
    files. Several of these had been set to 1, which is incorrect for the
    default. Please check your MSP430 projects’ config.f files that
    were copied from one of these sample projects and ensure that you have
    TARGET-INTERP set correctly.
  • Updated code for DEPTH.
  • Updated host/target stack passing for correct stack depth.

SwiftX 3.4.9 (10-Apr-2009)

ARM

  • Fixed flash sector counts in reg files and flashloader.f for LPC parts.
  • Added target-resident IAP flash programming for LPC parts. See SwiftX/src/arm/lpc/flash.f for details.
  • Added reg_lpc2368 for LPC2368 parts.

MSP430

  • Updated support for FET430 board with F2619.
  • Added ref_241x.f to support F241x and F261x parts.
  • New MSP430 DLLs and drivers from TI.

SwiftX 3.4.8 (05-Mar-2009)

ALL

  • All SwiftX versions have been rebuilt on the latest SwiftForth (3.1.11).
  • P&E BDM drivers are now installed by the P&E Driver Installer, which is run after the SwiftX installer.

AVR

  • Add support for target-resident interpreter to most targets.
  • Fix word alignment in (FIND), which provides the inner working of FIND in the AVR target-resident interpreter.

ColdFire

  • Added timer_rtc.f source file for MCF51QE128.

MSP430

  • Added support for FET430P240 board with F247.
  • Added ref_24x.f to support F24x parts.
  • New MSP430 DLLs and drivers from TI.
  • Improved support for TI USB JTAG interface.

ColdFire

  • Faster downloads using long-word BDM block transfers.

SwiftX 3.4.7 (07-Jan-2009)

ALL

  • All SwiftX versions have been rebuilt on the latest SwiftForth (3.1.9).
  • Fixed generic high-level SKIP and SCAN for length=0 case.

AVR

  • Add PCMASK to register definition files, used by the
    single-stepper to mask off unused PC bits. Some AVR variants have
    garbage in the unused stacked PC bits.

ColdFire

  • Updated MCF51QE128 register definition file.
  • Updated MCF5373 register definition file.
  • Added [NODIV] compiler switch to generate correct kernel for cores
    without hardware divide. Previously, this was based on range check
    with CPU value, but with new 5-digit CPU numbers (esp. the V1 core
    members with no DIV), that no longer applies.
  • Fixed DEMOQE128 board power-up code.
  • Update flashloader.f to handle multiple ColdFire variants correctly.

MSP430

  • Added 2C@ to extra.f.
  • Corrected stack comments for FLASH-PROGRAM.

SwiftX 3.4.6 (09-Oct-2008)

ALL

  • All SwiftX versions have been rebuilt on the latest SwiftForth (3.1.8).
  • Fixed serial XTL initialization code to clear XON/XOFF setting for COM ports.

68HCS08

  • Added a stripped-down generic project for 1321x boards. Runs in self-clocked mode, no RTI, no SCIs.

AVR

  • Correct fuse-progamming options for STK-300 board.
  • Fix (FIND) parameter order passed to =NAME. This change is
    required if you use the target-resident interpreter on the AVR.
  • Added initialization value for LAST to the end of the OPERATOR
    list. This change is required if you use the target-resident
    interpreter on the AVR.

ColdFire

  • Added compiler BDM support for V1 core. Initial target is the
    Freescale DEMOQE128 board, which features a built-in USB BDM
    interface. Many thanks to John Ulyate.
  • Added register definition file for MCF5373.

MSP430

  • Made JTAG DLL interface more robust.

SwiftX 3.4.5 (24-Jun-2008)

ALL

  • All SwiftX versions have been rebuilt on the latest SwiftForth (3.1.6).
  • Updated license agreement.
  • Target-resident interpereter functions made ANS-compliant.
  • Factored out .OK in target QUIT loop.
  • Added string operators SKIP and SCAN. Generic versions in common
    string support are excluded if the kernel supplies its own optimized
    versions.

ARM

  • Fixed ICache enable for asynch bus mode in EP9302 low-level initialization.

AVR

  • Changed STK300 CPUCLOCK to 8 MHz.

ColdFire

  • Added dummy BDM XTL functions 240-243. Host run-time behaviors
    can be installed with =FUN ( xt n).
  • Updated target reference manual.

i386

  • Moved SKIP and SCAN code definitions from stringz.f to extra.f due to load order.

MSP430

  • Updated JTAG interface drivers to latest MSP430.DLL from TI.
  • Fix flash erase DLL call address ranges to get rid of spurious
    “Can’t erase flash” error messages.
  • Added support for eZ430-RF2500 kit.
  • Modified UART driver to handle errors correctly. If you use
    MSP430 UARTs, you need this update.
  • Corrected program space starting address in FET430P140/F169 target directory.

SwiftX 3.4.4 (15-Apr-2008)

8051

  • Added support for SiLabs C8051F930DK board, supporting F92x and F93x low-voltage microncontrollers.
  • Updated to latest SiLabs debug and flash programming interface DLLs.

ARM

  • Corrected comments in various LPC config.f files.
  • Fixed reference to wrong receive queue in LPC UART1 interrupt handler.

MSP430

  • Updated to latest MSP430.DLL JTAG interface library.

SwiftX 3.4.3 (28-Mar-2008)

We strongly recommend ARM and ColdFire users update to this release.

ALL

  • All SwiftX versions have been rebuilt on the latest SwiftForth (3.1.4).
  • Updated SwiftX/doc/handbook.pdf to the new 3rd Edition of Forth Programmer’s Handbook.

ARM

  • Removed assembler optimization in THEN which can conflict with
    high-level IF ELSE as well as some high-level optimization rules.

ColdFire

  • Removed assembler optimization for IF BRA THEN which can conflict with
    some high-level optimization rules.

SwiftX 3.4.2 (05-Mar-2008)

ALL

  • All SwiftX versions have been rebuilt on the latest SwiftForth (3.1.3).
  • Updated installer graphics, icons, and “about” box images.
  • Reorganized cross compiler source tree to support development in
    SwiftForth-Linux host environment.
  • “Flattened” directory and file names to all lower case for Linux
    host compatibility.
  • Changed INCLUDE path names in many target platform directories for
    Linux host compatiblity. This is a work in progress.
  • Fixed the PRUNE behvior for protection of GLOBALS in the
    cross compiler.
  • The host memory image for a target CDATA or IDATA section is
    allocated in external memory only if it is 1.25 MB or greater. Images
    smaller than that are in the host dictionary space.
  • Added =FUN to set the serial XTL “user defined” function codes
    240-246. Locate =FUN (in INTERPRETER scope) for details

AVR

  • Added device SIGNATURE constant to all reg_xxx.f definition files.
  • Flash programming (RELOAD! in each project’s start.f) checks
    SIGNATURE on device before programming the device.

ColdFire

  • Fixed reference to %D0 in the flashloader for flash-resident
    targets (like the MCF52235).
  • Added assembler optimization to fold the two-instruction sequence
    ‘cc IF  addr BRA  THEN’ into a single
    conditional branch to addr.

i386

  • Restored <ORIGIN> subroutine for kernel data space origin calculation.

SwiftX 3.4.1 (01-Feb-2008)

ALL

  • Corrected problem in interface to cross-reference table used by
    the Code Stripper. If you use the Code Stripper tool, you need
    this update.

SwiftX 3.4.0 (29-Jan-2008)

ALL

  • All SwiftX versions have been rebuilt on the latest SwiftForth (3.1.2).
  • Single-step debug utility has been updated to be compatible with the latest SwiftForth.
  • Updated SwiftX reference manual.
  • This release notes file has been updated to use a less ambiguous date format.

SwiftX 3.3.9 (15-Jan-2008)

ALL

  • All SwiftX versions have been rebuilt on the latest SwiftForth (3.0.13).

AVR

  • Set CPUCLOCK to 8 MHz in Config.f for all STK200 board targets.
    If you have an older STK200 board with a 4 MHz crystal, you’ll need
    to edit Config.f and change the value of CPUCLOCK.

i386

  • Removed ‘ORG to remove dependency on its location for ORIGIN calculation.

MSP430

  • Added call to MSP430_Secure in the JTAG DLL interface. WARNING:
    MSP430_Secure blows the JTAG security fuse (if the programmer supports
    it). This will PERMANENTLY disable all JTAG communications with the
    MSP430!

SwiftX 3.3.8 (19-Nov-2007)

68HCS08

  • Updated target reference manual artwork.

ARM

  • Use DUMB terminal personality for all targets in serial port Conical Piles demo.

RTX-2010

  • Corrected file name for Eval version.

SwiftX 3.3.7 (09-Nov-2007)

ALL

  • All SwiftX versions have been rebuilt on the latest SwiftForth (3.0.12).

68K

  • Extended BDM target throw code display in the debug window’s interpreter.

ARM

  • NEW! ARM9 target: Cirrus Logic EP9302 on the Olimex CS-E9302 development board.
  • Reorganized most Kernel.f files for new load order to supoport timed XLT TYPE buffer flush.
  • Extended MRC and MCR instructions in LPC flashloader with the optional Opc2 fields to prevent a conflict with @SECTIONS stack item count.
  • Extended serial port task demo to run on ports other than COM0.
  • Extended JTAG ICE target throw code display in the debug window’s interpreter.

ColdFire

  • Extended BDM target throw code display in the debug window’s interpreter.

MSP430

  • Implemented target .’ (“dot-tick”) operator to pass addresses to host for address illumination without sign extending.

SwiftX 3.3.6 (17-Oct-2007)

ALL

  • All SwiftX versions have been rebuilt on the latest SwiftForth (3.0.11).
  • Updated SwiftX reference manual.
  • Extended target throw code display in the debug window’s interpreter.

68HC12

  • Added ‘G’ instructions (GLDAA, GLDAB, etc.) for Global access (S12X parts only) to the assembler and disassembler.

68K

  • Removed assembler substitution of indirect in place of indexed
    addressing mode when offset is 0 (introduced in SwiftX 3.3.0) as this is
    incompatible with some instances of +X indexing modes.
  • Restore ;CODE and DOES> to their original SwiftX implementations for
    compatibility with legacy application code.

ARM

  • Added support for Rowley Associates CrossConnect Lite USB JTAG debug
    interface. This replaces the older parallel-port “wiggler” cable as the
    primary SwiftX debug interface. The CrossConnect Lite is available for
    sale on our web site.
  • Added support for the NXP LPC2103 family (Olimex LPC-P2103 board).
  • Added support for the NXP LPC2106 family (Olimex LPC-P2106 board).
  • Added support for LPC2468 (Embedded Artists LPC2468-OEM board).
  • Updated SwiftX ARM Target Reference Manual.
  • Removed superfluous serial XTL support from the SwiftX ARM host environment.
  • Replaced serial XTL command codes with cell-sized codes the better utilize the JTAG comms debug channel.Remove the following two lines from your Kernel.f file(s):INCLUDE %SWIFTX\SRC\XTLCTRLINCLUDE %SWIFTX\SRC\XTL
  • Buffered TYPE and EMIT output in the XTL to improve performance with the USB JTAG interface.
  • Added U< comparison to ARM assembler.
  • Optimized IF…THEN code sequences with exactly one instruction in
    between to use a single conditional instruction instead of a conditional
    branch around the instruction.
  • Added over 50 new ARM optimizer rules (Pro version only) to optimize
    conditional branches and some arithmetic and logical operations.
  • Extended MCR and MRC opcodes in assembler to permit optional leading ‘opc2’ field.

ColdFire

  • Updated BDM drivers from P&E.
  • Removed assembler substitution of indirect in place of indexed
    addressing mode when offset is 0 (introduced in SwiftX 3.3.0) as this is
    incompatible with some instances of +X indexing modes.
  • Fixed LITERAL LITERAL AND and LITERAL LITERAL OR optimizer rules.

MSP430

  • Updated JTAG drivers from TI.
  • Added compatibility versions of some UART interrupt vector names in Reg_16x.f.
  • Made conditional loading of UART driver code dependent on UxBAUD rate words which are defined in Config.f.

SwiftX 3.3.5 (05-Jun-2007)

ALL

  • All SwiftX versions have been rebuilt on top of the latest SwiftForth (3.0.10).
  • Replaced ANS forth reference DPANS94.pdf with an updated PDF. The original had a problem displaying pages past 25. This has been corrected.

68HC12

  • Added memory write operators to ExtCode.f for systems with code and/or data mapped via PPAGE.

ColdFire

  • Uncommented /DEMO in M52235EVB\Debug.f.
  • Changed interrupt priority (IP) settings in PSC.f and Timer_SLT.f to prevent conflict with external IRQ interrupts that have fixed IP=0.

MSP430

  • Added USPIE1 bit mask to Reg_16x.f.

SwiftX 3.3.4 (26-Feb-2007)

ALL

  • All SwiftX versions have been rebuilt on top of the latest SwiftForth (3.0.8).
  • Extended APPEND-CODE and APPEND-DATA to also work with binary
    object files. Previously, these were implemented for text formats
    (e.g. S-Records) only.

68HC11

  • Added support for New Micros NMIY-0020 board plus LCD display and keypad interface.
  • Updated SwiftX 68HC11 Target Reference Manual.
  • Disable interrupts during EEPROM erase and write sequences.

ColdFire

  • Updated UNIT_CFZ driver library used by P&E BDM modules.
  • Corrected disassembly of left and right arithmetic and logical shift opcodes.

MSP430

  • Updated DOES> to inline code instead of calling (DOES>). Removed
    (DOES>) from the kernel. This provides faster execution of words with
    behavior assigned by DOES> and resolves an issue that caused a target
    crash in the case of an empty DOES> (i.e. followed immediately by
    semicolon with no code.).

SwiftX 3.3.3 (05-Jan-2007)

ALL

  • All SwiftX versions have been rebuilt on top of the newest SwiftForth (3.0.7).
  • The Memory Allocation and Defining Words sections of the SwiftX Reference Manual have been updated
    with a cautionary note about allocation order.
  • Host memory images for CDATA and IDATA sections are now allocated directly from Windows, rather then in the host dictionary space.
    This is critical in appications where very large sections are defined for things like font tables and embedded graphic images.

ARM

  • Force cell alignment for all memory allocation and structure defining words in all three section types.

ColdFire

  • Changed SUBA and ADDA in disassembler to SUB and ADD to be consistent with assembler.

H8H

  • Added missing SCI2 interrupt vectors to Reg_3069.f.

i386

  • Added missing file PEHEAD.IMG to Win32 install script.
  • Added deletion of target object file from DOS32A project directory for cleaner uninstall.
  • Added missing file SwiftX-i386.pdf to Evaluation Version installer.

SwiftX 3.3.2 (20-Dec-2006)

ColdFire

  • Fixed disassembly of MTSR opcode with immediate operand.

H8H

  • Updated register definition file for H8/3069 to include memory sections for flash programming, and small subset of flash parameters.

SwiftX 3.3.1 (15-Dec-2006)

ALL

  • All SwiftX versions have been rebuilt on top of the newest SwiftForth (3.0.6).
  • Added appendix on P&E BDM driver installation to SwiftX Reference
    Manual. This applies to multiple targets, but only those that use P&E
    BDM modules.
  • Modified object file generation to write output file on the fly
    instead of building the entire image in host RAM which could cause a memory
    exception in the case of very large output files.

68HCS08

  • Removed diagnostic output from ; and END-CODE.

H8H

  • Added support for 0.18um device flash progamming in XComp\Bootload.f.
  • Added support for H8/3069 targets (register file and ROM-resident boot loader).

i386

  • Increased size of target object file for Evaluation Version.
  • Updated installer script to include correct SwiftX-i386.exe for Evaluation and Lite versions.

SwiftX 3.3.0 (03-Nov-2006)

ALL

  • All SwiftX versions have been rebuilt on top of the newest SwiftForth (3.0.4).
  • Revised and reformatted SwiftX Reference Manual. Please report any errors, omissions, or discrepancies to support@forth.com.
  • Added COMPILER-CODE scope. See SwiftX Reference Manual for details.
  • Provide generic high-level versions of -TRALING and COMPARE in Src\String.f when the underlying platform does not.
  • Added dummy placeholders (zero cells) to the end of the serial XTL dispatch table in the host to provide for custom XTL functions. See XComp\Serial.f for details (Pro version only).

68HCS08 (New!)

  • Added support for the HCS08 family. The first target board supported is the Axiom CMS8GB60. Requires the P&E USB-ML-12 BDM module for the XTL interface.

68K

  • Extended assembler indexed addressing mode to substitute indirect when offset is 0.

8051

  • Made @EXECUTE consistent with other platform implementations such that it does nothing if the vector contains 0.

ARM

  • Corrected XTI_BASE address in Reg_STR71x.f.
  • Improved code for SWAP (thanks, Mike G).
  • Corrected target code for R@.
  • Added new optimizer rules for LITERAL * and LITERAL PICK (Pro version only).
  • Fixed alignment calculation in ((“)) which is common to compiled string words like S”, C” and .”.
  • Modified the XTL ICE request codes to be 32-bit instead of 8-bit to allow the printing of extended characters in text strings.
  • Fixed ; (semicolon) to stop short of the appended long literal table when optimizing for LR save/restore.
  • Improved host JTAG initialization to better take control of a target that happens to be in Thumb mode.

AVR

  • Changed STK200+ board default clock frequency to match latest boards from Kanda.
  • Fixed initialization sequence for Timer 1 (thanks, Mike Z).
  • Added SPM instruction to assembler (not used by SwiftX, but available for application programming).

ColdFire

  • Added support for the M52235EVB board (MCF5223x targets).
  • Extended ColdFire Flash Module (CFM) support to provide for multiple CFM sizes.
  • Added and improved several code optimizer rules.
  • Extended assembler indexed addressing mode to substitute indirect when offset is 0.
  • Corrected disassembly of ADDA and SUBA opcodes.

RTX-2010

  • Added several core primitives, mostly to support unsigned operations.
  • Extended interrupt support to provide for enabling and disabling of discrete interrupt sources.
  • Added some new optimizer rules.
  • Added WRITEUKA instruction to the assembler.

SwiftX 3.2.19 (11-Apr-2006)

68K

  • Fixed CONSTANT run-time code and host address emplacement with optimizer turned off.
  • Changed CREATE run-time code to follow the improved ColdFire model (uses a single MOV instruction to push PFA).

ARM

  • Fixed SQRT function in Fraction.f.

AVR

  • Added support for ATmega8515 on STK200+ board.
  • Restored missing /SWITCHER initialization in GO on the ATmega8 STK200 platform.

ColdFire

  • Simplified SQRT function in Fraction.f.

SwiftX 3.2.18 (31-Mar-2006)

ColdFire

  • Updated ColdFire Reference Manual (minor corrections from the one included in 3.2.17).
  • Swapped the OK and CANCEL keys in the BDM selection dialog box.
  • Fixed the Lite and Eval version installer scripts so there is only one SwiftX-ColdFire.exe (which uses the P&
    E UNIT_CFZ BDM library and drivers).

SwiftX 3.2.17 (20-Mar-2006)

ALL

  • Modified XTL port selection dialog boxes such that OK is on the left, the port list scrolls, and double-click selects a list item.

ColdFire

  • Added support for the Axiom CML-5485 board.
  • The BDM interface now uses the P&E UNIT_CFZ library, which supports parallel and USB BDM modules.
  • Corrected cell count in M5484LITE boot code.
  • Added buffered TYPE data to compensate (a little) for the much slower interaction with USB BDM interface.
  • Removed 68K-only arithmetic optimizations from Opt.f.
  • Serial driver KEY? functions now all end in PAUSE.
  • Completely replaced the disassembler with one that is more specific to the ColdFire and easier to extend. The old one was based on the 68K and didn’t quite fit the newer ColdFire cores.
  • Updated ColdFire Target Reference Manual.
  • Modified BDM interface so it is less intrusive.

ARM

  • Added support for the Olimex STR-P711 board.
  • Fixed display of relative addresses in disassembler.

SwiftX 3.2.16 (09-Dec-2005)

ALL

  • Added (AT-XY) to dumb terminal personality.

ARM

  • Optimized the JTAG/ICE write function for 25% speed improvement.

AVR

  • Fixed bug in optimizer for sequence of two literals followed by arithmetic operation (Pro version only).
  • Added functions to read back EEPROM via ISP connection.
  • Added delay to fuse programming algorithm.

ColdFire

  • Added comments to the Debug.f files.
  • Clear spurious interrupt counter #SI in /EXCEPTIONS.
  • Added comments to PSC input source code.
  • Cleaned up Reg_5484.f comments and definitions
  • Removed some unused stuff from the assembler.
  • Fixed a race condition in the BDM memory and register write procedures.
  • Fixed the register list display for MMOV in the disassembler.
  • Various spelling, comment, and stack comment corrections.

H8H

  • Fixed bug in optimizer for sequence of two literals followed by arithmetic operation (Pro version only).

SwiftX 3.2.15 (12-Oct-2005)

ALL

  • Moved position of ANS Forth Standard in the Help menu.
  • Updated SwiftX Reference Manual to include details about RELOAD and RELOAD!

8051

  • Updated to latest DLL for Silicon Labs parts. COM port selection for the serial programming adapter is now automatic. Also supports the USB programming adapter if its presence is detected.
  • Updated all instances of “Cygnal” to “Silicon Labs”.
  • Moved definition of TRAP vector from Vectors.f (common to all) to individual REG_<mcu>.f register and vector definition files. The number of interrupt dispatchers assembled in Vectors.f is based on TRAP which is always the last vector. This is to support the different number of interrupt vectors in the newer 8051 variants.

ARM

  • Added ‘TIB user variable to support interpreting text from any memory location. Only affects systems with target-resident interpreter enabled.

SwiftX 3.2.14 (16-Sep-2005)

ALL

  • Fixed bug CONSTANT which resulted in a “DISCONNECTED” error message when the optimizer was turned off or not present.

SwiftX 3.2.13 (07-Sep-2005)

ARM

  • Fixed bug in DEPTH (missing sign extend in negative depth calculation)

ColdFire

  • Changed name of flash base address in M5484LITE to ‘FLASH, consistent with other implementations.
  • Added BDM download progress bar.

SwiftX 3.2.12 (15-Aug-2005)

ColdFire

  • Added support for M5484LITE board.
  • Updated SwiftX-Coldfire.pdf manual.

SwiftX 3.2.11 (29-Jul-2005)

8051

  • Updated documentation.

ColdFire

  • Added register def file for MCF5484.
  • Update register def file for MCF5282.

MSP430

  • Added JTAG port select list.

SwiftX 3.2.10 (12-Apr-2005)

68HC12

  • Cleaned up register definition files and added one for DJ64 part.

ARM

  • Fixed bug in CONSTANT which compiled incorrect values when optimizer is turned off or not present.

SwiftX 3.2.9 (22-Mar-2005)

ALL

  • Added ANS Forth Standard final draft, accessible through the SwiftX Help menu or in SwiftX\Doc\DPANS94.pdf.

68K

  • Fixed race condition in BDM XTL (only affects CPU32 targets with BDM).

8051

  • Fixed optimizer rules for LITERAL followed by logical or arithmetic operator (Pro version only). You need this bug fix if you use the optimizer.

AVR

  • Improved ISP flash programming algorithm for non-paged devices (like the AT90S8515).

ColdFire

  • Set CFM configuration region in image programmed to internal flash ($400-$417). Without this, the MCF5282 can’t boot from internal flash. You need this bug fix if you boot from internal flash.

SwiftX 3.2.8 (08-Feb-2005)

ALL

  • Modified serial port XTL to handle both CR and LF codes correctly in the debug window.
  • Factored out common XTL functions.
  • Corrected stack comments in numeric output operators.

ARM

SwiftX/ARM has undergone extensive improvements. Please read this
list carefully for notes on updating your existing projects.

  • Updated SwiftX/ARM target reference manual.
  • Added support for STMicroelectronics STR7 (ARM7 based) microcontrollers on the STR710 EVAL board.
  • XTL debug interface to all ARM targets is now via JTAG. This frees up the serial port and no longer requires preserving the manufacturer’s monitor program in flash. An inexpensive ($30) JTAG cable is available from us.
  • Improved LDRI assembler macro to load the literal value using a PC+ Rd LDR instruction. END-CODE has been extended to compile the list of literals and update the references in the LDR instructions). This means that LR is no longer used (so doesn’t need to be preserved just for LDRI) and each literal reference requires one less instruction. Further, multiple loads of the same literal value within the same code definition or subroutine will all reference a single copy of the literal. Note that LDRI now assembles a simple MOV instruction if the literal value can fit in the (possibly shifted) 8-bit literal field of the opcode.
  • The improved LDRI has been incorporated into LITERAL which similarly improves high-level definitions. The table of literals is compiled by ; (just as END-CODE does for code definitions and subroutines).
  • The disassembler has been extended to display these literal values as ‘<lit> LDRI’ instead of the less meaningful ‘<offs> PC+; Rd; LDR’.
  • With the addition of the ST ARM family, the ARM source code has been reorganized. An additional level of source subdirectories has been inserted below SwiftX\Src\ARM for the vendor-specific source code. At present, these include Atmel AT91 and STMicroelectroncs STR7 families. The board-specific project directories are now subordinate to their respective vendor-specific directories. Important: Your project files may need to be updated to reflect this change in source code organization. Please use the Kernel.f files in the board-level project directories as a reference.

AVR

  • Updated source for latest rev of STK300+ board from Kanda (4 MHz clock, fuse settings).

ColdFire

  • Re-organized BDM XTL source code in Xcomp\ColdFire.

8051

  • Fixed bug in internal RAM operator IC!.
  • Fixed optimizer rules for LITERAL followed by AND, OR, or XOR.
  • Added optional configuration parameter |STR| for size of string output buffer. If absent, defaults to 256.
  • Updated (LITERAL) reference in target-resident interpreter to use (LIT16).

MSP430

  • Updated F148 project directory to load correct register definition file.

SwiftX 3.2.7 (15-Sep-2004)

AVR

  • Added support for ATmega16 part on STK200 board.

SwiftX 3.2.6 (10-Sep-2004)

All (Pro)

  • Fixed bug in installer script which prevented SwiftX\Bin\SF.EXE from being installed on some Windows systems.

SwiftX 3.2.5 (31-Aug-2004)

ALL

  • Updated SwiftX Reference Manual.

ColdFire

  • Added support for MCF5282 on CML-5282 board.

SwiftX 3.2.4 (13-Jul-2004)

ARM

  • Added target-resident interpreter.
  • Added terminal support for second serial port.
  • Added platform for Atmel EB40A board.
  • Update Target Reference Manual.

SwiftX 3.2.3 (7-Jul-2004)

68K

  • Corrected comments in SBC2000 board initialization code.
  • Changed default 68332 SCI port board rate to 57600.

8051

  • Changed LOOP to correct DJNZ mnemonic in disassembler.

ColdFire

  • Fixed bug in ALIGNED
  • Corrected comment in Reg_5407 register definition file header.

H8

  • Added optimizer rules.
  • Updated serial bootloader for newer parts with signature string in loader program.
  • Optimized serial bootloader so it uses block operations and runs much faster.
  • Added support for H8/3062B parts.

i386

  • Fixed bug in BUILD.

MSP430

  • Corrected comments in millisecond timer initialization.

SwiftX 3.2.2 (31-Dec-2003)

ALL

  • Added S\” group of string compiling words (ala SwiftForth) to standard string library.
  • Defined TARGET with DEFER to permit custom extension of TARGET behavior. Caution: For advanced users only!

ARM

  • New target CPU in the SwiftX family. Includes initial support for Atmel AT91x40 parts on EB40 board.

AVR

  • Updated documentation.
  • Added support for ATmega8 and ATmega16 on STK500.
  • Corrected register list for ATmega128 in Reg_M128.f.
  • Corrected PAGESIZE for ATmega103 in Reg_M103.f.

8051

  • Added support for Cygnal C8051F02x and 32x parts.
  • Added register alias PGSEL for compatibility with newer CPUs that don’t use P2 for memory page select.

i386

  • Extended forward branches in ?DO and LEAVE.
  • Improved store operators, now shorter by one instruction.
  • Improved serial XTL implementation so it is less intrusive while debugging a real-time system.
  • Fixed optimization for LITERAL -ORIGIN.
  • Updated documentation

68K

  • Fixed -TRAILING to always check for zero length first.
  • Updated documentation.

ColdFire

  • Updated BDM XTL to be less intrusive for better support of real-time system debugging.
  • Corrected optimizations for LITERAL AND AND and LITERAL OR OR.
  • Fixed CMOVE>

H8

  • Updated Reg_3052 to include parameters for flash erasing.
  • Added Ref_3062 for H8/3062 variants.

MSP430

  • Replaced native JTAG debug interface with DLL’s supplied by TI. This allows us to support more MSP430 variants and permits incremental code development directly into flash instead of SRAM. All target reference projects have been updated with the PRAM code sections removed. Important: Load your test code between SET-DOWNLOAD and DOWNLOAD-ALL so it is correctly downloaded to target flash. Entering flash-resident definitions on the command line is not recommended.
  • Added support for the FET430P120 tool with the MSP430F1232 part installed.
  • Modified the Reg_<mcu>.f files to eliminate name conflicts with Forth words CHAR and WAIT.

TMS320C3x

  • Fixed bug in COMPARE.
  • Extended parallel port bootloader to full XTL debug interface.

SwiftX 3.2.1 (23-Jun-2003)

ALL

  • Updated SwiftX reference manual.
  • Implemented buffered serial XTL output. Improves serial XTL response time when using external (e.g. USB, network) COM ports.

AVR

  • Corrected PAGESIZE for ATmega128 flash programming
  • Changed STK300 project for new ATK300+ boards with 8 MHz ATmega128
  • All register definition files now have the new bit name DOR for the UART/USART data overrun status bit.

TMS320C3x

  • Fixed bug in ACTIVATE.
  • Corrected optimizer rules with U< (e.g. U< IF ).
  • Completed code ending for F2DUP.

SwiftX 3.2.0 (28-May-2003)

NEW FEATURES

  • IDATA sections are now optional. If no IDATA section is declared, all accesses to IDATA will use the current CDATA section instead. This is especially useful for systems that boot into RAM and do not have separate code and data spaces. This feature may not be used for targets that have separate code and data spaces (e.g. 8051, AVR).
  • Manual port selection is not provided on the Tools menu for targets that connect to the host parallel port. Used by ColdFire (BDM cable), 68K (CPU32 parallel BDM cable), MSP430 (parallel JTAG cable), AVR (parallel ‘dongle’ ISP cable), and TMS32C3x (parallel boot loader cable).

ALL

  • Added floating point constants to INTERPRETER words to support targets with floating point instruction sets.
  • Improved support for word- and cell-addressed targets.
  • Fixed INTERPRETER COMPARE and added SEARCH string functions.
  • Optimize around embedded comments (Pro versions only).
  • Scan PCI configuration space also performed to locate parallel and miscellaneous I/O boards for auto and manual parallel port configuration.

TMS320C3x

  • New target CPU in the SwiftX family.

AVR

  • Fixed LITERAL C! optimization (Pro versions only).
  • Corrected PAGESIZE in Reg_M163.f for ATmega163 for correct ISP programming via parallel dongle on STK200.
  • Added missing compatibility registers to Reg_M32.f for ATmega32.
  • Corrected address of UCSRC/UBRRH in Reg_M8.f for ATmega8.
  • Extended ADIW and SBIW to accept X, Y, and Z as register (equivalent to XL, YL, ZL).

ColdFire

  • Corrected race condition in BDM XTL interface.

H8

  • Included flash erase time constants in Reg_<mcu>.f.
  • Preserve current section and section type across definition of special BOOTCODE and BOOTDATA sections.
  • Support error vectors in XTL interrupt for microcontrollers that have them.
  • Correctly disassemble BST and BIST opcodes.

69R000

  • Fixed error in 2OVER.

SwiftX 3.1.13

ALL

  • Added APPEND-CODE and APPEND-DATA which may be called subsequent to SAVE-CODE and SAVE-DATA to append records to object files. Available for record-oriented formats only (HEX, TXT, and S-record files). This feature is described in the SwiftX Reference Manual Section 4.8.
  • Updated SwiftX Reference Manual.

68HC11

  • Added runtime code for 8- and 16-bit literals, reducing the size used by inline literals.

68HC12

  • Corrected EEPROM base address in 9S12DP256 register definition file. Note that in the 9S12DP256, only 3K of the total 4K EEPROM is accessible. The first 1K is overlayed by the I/O register space.
  • Added support for downloading to the Motorola D-Bug12 serial bootloader. This only applies to parts with the D-Bug12 serial bootloader resident in the flash. The host function PROGRAM-BOOTLOADER can be called to download the most recently generated S-record file to the target. Follow the prompts for the download procedure. This is best done immediately after a BUILD.

68K

  • Fixed bug in RESUME function used by single-step debug interface.

AVR

  • Added support for ATmega8, ATmega16, ATmega161, and ATmega32/323 parts.
  • Added subdirectories in STK200 for boards equipped with ATmega163 and ATmega8. These can serve as models for installing other ATmega parts on the STK200 board. Simply make a copy of one of these project directories and change the Reg_<mcu> file included in Kernel.f and the memory map in Config.f.
  • Combined Int.f and Int_m.f into Int.f using conditional compilation and deleted Int_m.f.
  • Added MOVW to assembler macro which assembles either the MOVW instruction or a pair of MOV opcodes on targets without the MOVW instruction. Reg_<mcu> definition file includes [MOVW] directive for cores with the MOVW opcode implemented. The kernel source has been retrofitted to use MOVW wherever possible.
  • Added optimizer rules for return stack operations DUP >R and R> DROP.

H8

  • Extended boot loader flash programming for parts with split FLMCR1/FLMCR2 flash control.
  • Updated H8/3052 register definition file to include FLMCR2.

RTX2010

  • Added fractional arithmetic support.

SwiftX 3.1.12

ALL

  • Factored out common XTL source code from most targets with serial XTL. Common code is in SwiftX\Src\XTL.f and must be included in your target’s KERNEL.F if you use the serial XTL code in the SwiftX\Src\<mcu> directory. See one of the sample target board KERNEL.F files for an example. Does not apply to systems with BDM or JTAG debug interfaces.
  • Added .’ (“dot-tick”) and data logging functions to the common serial XTL source. .’ is described in the SwiftX Reference Manual Section 2.4.3. The target can pass buffers of binary data to the host to be written to the file TARGET.LOG in the working project directory. See the SwiftX Reference Manual Section 4.9.3 or LOCATE X-LOG for more details on this XTL extension.
  • Generate Motorola S-record files for object files with the “.M*” extension in addition to the existing “.S*”. This has been done primarily to support the Hitachi FDT utility which uses “.MOT” as the file extension for Motorola S-record object files.
  • Generate TI “text” files for object files with the “.T*” extension. This output file format is compatible with TI tools.
  • Fixed INTERPRETER COMPARE function.
  • Updated SwiftX reference manual.
  • Added commands to the Help menu in the Debug Window to display the revision history (the file you are reading right now) as well as to go online to check for newer versions and revision history.

68K, ColdFire, MSP430

  • Changed the installation procedure for GiveIO driver (Windows NT, 2000, and XP systems only) such that the driver is installed as a kernel service which always starts at boot time. This is handled completely by the SwiftX installer. You must have Administration priviliges to install SwiftX. LOADDRV.F (Pro systems only) is no longer needed and has been removed from the Xcomp directory.

ColdFire

  • Added internal I/O device vector names for MCF5272 to Reg_5272.f after register definitions.

H8

SwiftX for the H8/300H and H8S has undergone extensive
improvements. Please read this list carefully for notes on updating
your existing projects.

  • Added support for the H8/3664F evaluation kit (EDK3664F). Modified all Reg_<mcu>.f files to support this change. Notably, the vector size, operating mode, type of SCI, and flash programming parameters have been added.
  • Added support for both normal and advanced mode processor cores. Reg<mcu>.f must declare [NORMAL-MODE] or [ADVANCED-MODE]. The load order for all KERNEL.F files has been changed so the Reg file is loaded much earlier due to the mode setting requirement. You must declare the mode before compiling any kernel code! Include the Reg<mcu>.f file early in Kernel.f.
  • Added assembler macros POP.A and PUSH.A which assemble the correct form (.L for advanced mode or .W for normal mode) based on the CPU mode declaration.
  • Replaced the various combinations of SCI support for XTL debug interface use the generic SCIXTL.F driver which supplies the port-independent XTL debug interface. Select which SCI port is to be used as the XTL in your CONFIG.F file. See the H8 SwiftX manual, Section 3.4 plus any of the supplied target board CONFIG.F files for examples. You must specify the SCI port to use for the debug interface.
  • Replaced the various combinations of SCI support for terminal task I/O with the generic SCITERM.F driver which supplies the port-independent terminal I/O routines. Please read the H8 SwiftX manual, Section 3.4 and the documentation header block of SCITERM.F for notes on using this driver.
  • Added user code to program the SwiftX kernel into target flash memory using the H8 bootloader. It is necessary to reset the CPU in BOOT mode before using this facility; see the H8 SwiftX manual section A.3.2 for the procedure for the EDK3664F. You must have access to the MD and FEW (or FWP) settings when you reset the CPU in order to enter and exit BOOT mode. The file SwiftX\Src\H8H\BOOT.F must be included in your KERNEL.F load file. See SwiftX\Src\H8H\EDK3664F\KERNEL.F for an example. Please read the documentation header block of BOOT.F for notes on using the flash programming feature. The only two end-user accessible words are RELOAD and RELOAD! which perform conditional and unconditional flash updates.
  • Reduced the common stack and user area allocations (|S|, |R|, and |U|) to better support the H8 Tiny devices.
  • Modified LITERAL such that it assembles a call to (LITERAL) which gets the in-line literal data that follows the call. This conserves code space when compared to the previous method of in-line code for literals.
  • Recoded the double return stack operators (2>R, etc.) to save space.
  • Added the Distress Signal (“S.O.S.”) demo for the H8/3664F board which does not have enough resources to support the standard “Conical Piles” demo. This demo is described in the H8 SwiftX manual section 4.4.
  • Fixed SHLL.L opcode in assembler.
  • Generate Motorola S-record files for object files with the “.M*” extension in addition to the existing “.S*”. This has been done primarily to support the Hitachi FDT utility which uses “.MOT” as the file extension for Motorola S-record object files.

MSP430

  • Fixed address range check in test for substitution of <addr> # BR with JMP. If the address passed to # BR is within relative branch range, it is substituted with the shorter JMP instruction.
  • Added UART terminal I/O drivers in SwiftX\Src\MSP430.Uarts.f. Read the documentation at the start of the file for details on how to use it.
  • Generate TI “text” files for object files with the “.T*” extension. This output file format is compatible with TI and SoftBaugh tools.

SwiftX 3.1.11

ALL

  • Added option to display the list of stripped words at the end of code stripping operation. To use this feature, type .STRIP BUILD on the command line instead of using the STRIP button. (Pro versions only) See the SwiftX Reference Manual Section 3.2.2.
  • Changed THROW code in target-resident interpreter from -80 (incorrect value) to -8 (per ANS spec) on dictionary full. (Pro versions only)
  • Extended disassembler/decompiler to display hex dump of inline data

68HC12

  • Retrofitted older targets for ECLK def in CONFIG.F
  • Added base VECTOR0 to all Reg_<mcu> files

68K

  • Added FNOP instruction to assembler floating-point extensions.
  • Initialize assembler state machine before first use

H8

  • Added target-resident interpreter source files.
  • Modified POWER-UP code such that first instruction sets stack pointer.
  • Fixed DEPTH calculation and host/target data stack transfer for correct stack base address, including T register.
  • Added save/restore of ER2 to SCI0 and SCI1 terminal interrupt handlers
  • Corrected opcode mask combinations in disassembler

MSP430

  • Added support for MSP430F44x parts using TI FET430P440 board.
  • Modified assembler parameter specifiers such that they survive transfer to/from target data stack while assembling code on the fly while connected to target via XTL.
  • Assembler now forces absolute address mode for all memory and I/O references. Use of & is optional.

SwiftX 3.1.10

ALL

  • Modified initialization sequence in serial XTL to allow delay for COM port to initialize. This is in response to a race condition observed on some very fast Dell machines running Windows 2000 Professional.

68HC12

  • Added support for Axiom CML-9S12DP256
  • Added support for 9S12DP256 PLL operation for much faster core and bus clock rates. All 9S12DP256 kernels should incorporate these changes.
  • Modified all 68CH12 target CONFIG.F files to contain explicit definitions of OSCCLK and ECLK

8051

  • Set master interrupt enable (bit 7 of IE register) in POWER-UP for all 8051 targets
  • Added source file IRAM.F in Src/8051 directory to provide indirect access to internal RAM. This file is not normally included in the kernel, but may prove useful during debugging.
  • Corrected setting of TMOD register (high vs. low nibble) in TIMER0.F and SERIAL.F initialization routines
  • Extended disassembler to provide better display of SFR names when SFR addresses conflict with other named locations in code and data space

ColdFire

  • Added comments to long division routine
  • Change UART interrupt source to use named interrupt vector

RTX2010

  • Added interrupt mask numbers in comments next to interrupt vector names

SwiftX 3.1.9

68K

  • Modified branch instructions (BRA, BSR, etc.) to allow 8-, 16-, and 32-bit displacements.
  • Assembler now requires NEVER instead of 0 (zero) for IF, UNTIL, and WHILE.
  • Installer requires admin privileges for installation on NT-style systems.

ColdFire

  • Installer requires admin privileges for installation on NT-style systems.
  • Updated comments in M5272C3\Flash.f flash driver.

AVR

  • Installer requires admin privileges for installation on NT-style systems.
  • Updated Reg_128.f (ATmega128 register definition file) to include some missing registers.

MSP430

  • Installer requires admin privileges for installation on NT-style systems.

SwiftX 3.1.8

68HC12

  • Corrected optimization of LITERAL AND and LITERAL OR combinations (Pro version only).
  • Added support for 68CH912D60, 68HC912DG128, and 9S12DP256 parts on Axiom CMD912 boards.

SwiftX 3.1.7

All (Pro Only)

  • Code stripper now clips upper code space address while stripper is running to allow initial code size greater than allocated space
  • Number of stripped definitions is reported at the end of the code stripper run
  • Object files are not generated until the final pass of the code stripper

MSP430

  • Fixed C+! for memory byte update

ColdFire

  • Added target-resident interpreter files (Pro only)

SwiftX 3.1.6

ColdFire

  • Updated target reference manual
  • Added support for M5307C3 board
  • Corrected SDRAM controller register names in Reg_5307.f

SwiftX 3.1.5

ALL

  • Added CR before string output in run-time code for ABORT”

68K

  • Updated target reference manual
  • Added combined cell and literal arithmetic optimizations
  • Added BYTE/WORD designations for registers defined in Reg_332.f
  • Changed SBC2000-332 SYNCR initial values from 25.166 MHz to 24.117 MHz which divides more closely into common baud rates
  • Extended SBC2000-332 initialization code to set PEPAR for alternate functions (required for correct bus operation)
  • Added SAVE-SECTIONS and RESTORE-SECTIONS to common 68K Start.f to provide for applications with different default section types

69R000

  • Removed comparison optimizations using CMP which does not set the C flag

AVR

  • Updated target reference manual
  • Updated Reg_8535 to resolve name conflict and missing comment delimiter

ColdFire

  • Updated target reference manual
  • Added combined cell and literal arithmetic optimizations

MSP430

  • Updated target reference manual
  • Added support for MSP430F133, F135, F147, and F148 parts, all of which work with the FET430P140 Flash Emulation Tool
  • Added software multiply for chips without hardware multiplier
  • Added a version of interrupt vectoring for devices with limited RAM
  • Moved “Distress” application to the Projects directory

H8

  • Fixed tail recursion offset calculation
  • Compiler now uses BSR and BRA only for short calls and branches
  • Added support for H8S/2633 parts
  • Changed Reg_<mcu>.f files for compatibility between MCU’s
  • Added EEPMOV to assembler
  • Removed CALL macro from assembler

68HC11

  • Updated target reference manual
  • Added optimizer rules
  • Added initialization of BPROT to POWER-UP code for all targets

RTX2010

  • Updated target reference manual
  • Added optional multitasker support
  • Improved +LOOP

SwiftX 3.1.4

68K

  • Added optimization for >R R@ (same as DUP >R)

ColdFire

  • Added optimization for >R R@ (same as DUP >R)
  • Added support for MCF5272 (Motorola M5272C3 board)
  • Changed UART and TIMER initialization code to accommodate MCF5272. Note: System power-up initialization code for 5206 and 5307 must initialize IMR and ICR registers to allow UART and TIMER interrupts. Setting IMR and ICRn has been removed from /TIMER and /UART functions.

SwiftX 3.1.3

ALL

  • Added GET-XY for end-user applications
  • Added ASCII formatted output to DUMP
  • Added ,” (compile string)
  • Added :NONAME for compiling headless code
  • Added .SECTIONS to display current sections
  • Extended INCLUDE to warn if section type, number base, or stack depth changes
  • Fixed minor problem in RESTORE-SECTIONS
  • Fixed search order after ;CODE … END-CODE
  • Added target >BODY
  • Added @CFA which returns most recent target CFA for use in compiler extensions

68K

  • Added N>R, NR>, 2C@, and 2C! to Extra.f application support functions
  • Changed SBC2000-332 base address assignments
  • Added kernel support for 68882 stack
  • Changed PIT332 interrupt rate to 1024 Hz
  • Added N>R, NR>, 2C@, and 2C! to Extra.f application support functions
  • Changed SBC2000-332 SYNCR initial values for 25.166 MHz operation
  • Fixed SBC2000 FLASH-SECTOR-ERASE completion test

ColdFire

  • Added N>R, NR>, 2C@, and 2C! to Extra.f application support functions
  • Added support for MCF5272 (M5272C# board)
  • Changed UART and TIMER initialization code to accommodate MCF5272. Note: System power-up initialization code for 5206 and 5307 must initialize IMR and ICR registers to allow UART and TIMER interrupts. Setting IMR and ICRn has been removed from /TIMER and /UART functions.

AVR

  • I/O registers return absolute addresses suitable for use with IN, OUT, LDS, etc.
  • Changed IN and OUT to take absolute address instead of I/O relative address

MSP430

  • Fixed LEAVE so it drops index and limit from return stack

69R000

  • A workaround has been implemented for a hardware anomaly which prevented saving 2 of the 6 condition codes from register SW in interrupt service routines

SwiftX 3.1.2

ALL

  • Latest SwiftForth host (2.2.3)
  • Resident DUMPC for all targets
  • Corrected INTERPRETER alias for G command

MSP430

  • Low Power Mode support
  • Updated target user manual
  • Distress Signal demo application
  • Test for chip derivative via JTAG connection
  • Disable interrupts during flash programming
  • Disable XTL debug loop when JTAG session not active
  • Fixed assembler bug in unary opcodes with immediate operand
  • Added host RESET command to reset target under test

SwiftX 3.1.1

ALL

  • Added upgrade info link for non-Pro versions

MSP430

  • Removed serial XTL config from Tools menu

8051

  • Added register definition file for DS87C550

SwiftX 3.1.0

ALL

  • Latest SwiftForth host (2.2.2.9)
  • Added provision for host serial ports higher than COM4
  • Improved replacement of literals in optimizers

MSP430

  • New processor in the SwiftX family

AVR

  • Modified STK200 & STK300 dongle interface timing for fast parallel port access
  • Fixed DOES> in Code version for compatibility with ATmega
  • Fixed double number operators 2ROT, D<, DU<, D- in 32-bit token-threaded implementation
  • Coded CATCH and THROW for faster operation in 32-bit token-threaded implementation
  • Extended compiler to handle CODE definitions beyond 256-token limit

ColdFire

  • Modified SBC5307 chip select code and Reg_5307 register definitions for new “J” mask of the MCF5307. Code is backward compatible with older “H” mask

SwiftX 3.0.3

ColdFire

  • Updated 5206 register definition file
  • Added provision for SBC5206 board to use P&E BDM driver

SwiftX 3.0.2

ALL

  • Added COMPILER versions of [DEBUG and DEBUG] to provide debug mode switching within definitions.
  • Fixed parallel port driver installation procedure for Windows NT and Windows 2000 systems.
  • Comment for D/Y corrected

AVR

  • Added single stepper support to Code version
  • Added support for STK500 target configured with AT90S8515 (default) or optional ATmega163.
  • Corrected STK200 dongle flash programming algorithm
  • Coded WITHIN in assembler on Code and Token32 versions

SwiftX 3.0.1

ALL

  • Optimizer not turned off during code strip.
  • Fixed replacement literal optimizations

ColdFire

  • Using native BDM interface instead of P&E driver
  • Moved UART baud rate settings to Config.f
  • Improved generic error exception handlers
  • Added missing DMA registers to Reg_5307.f
  • Fixed EXCEPTION assembler macro
  • In-line code for CREATE instead of call to (CREATE)

68K

  • Using native port I/O for BDM interface instead of TVICHW.

AVR

  • Added interface for AVR in-system programming dongles.

SwiftX 3.0.0

ALL

  • Updated to latest SwiftForth host
  • Made numerous improvements and additions to manuals.
  • Factored product line into “SwiftX” and “SwiftX Pro”.
  • Fixed IS (sets run-time of DEFER words) for INTERPRETER and COMPILER scopes.
  • Moved setting of COM port settings (for targets using it) from installation to first use. Pro users may have a different COM port settings for each project.
  • Provided simplified way to set XTL baud rate for targets using a serial XTL; see
  • Added Project management (Pro only).
  • Moved optimizer macros to Src directory for each applicable MCU family (Pro only).
  • Added numerous additional optimizations (Pro only)
  • Added host compiler source (Pro only)
  • Added target-resident compiler (Pro only; not yet available for AVR, ColdFire, H8/300H targets)

68HC11

  • Added host baud rate calculation of the value to write to the target’s BAUD register.
  • Renamed Reg_E9.f to Reg_E1.f for common base MCU type.

68HC12

  • Fixed number wrap in +LOOP.
  • Faster +LOOP.

68K

  • Updated code optimizations (Pro only).
  • Added Axiom CMM-332 target directory.
  • Added flash erase and program support for SBC2000.
  • Added COMPILER macros to inline I and J primitives for faster loops.
  • Fixed number wrap in +LOOP.
  • Faster +LOOP.

69R000

  • Faster LOOP and +LOOP.
  • Fixed branch operations in loops.

8051

  • Added ROLL
  • Fixed DEPTH
  • Improved multitasker
  • Added support for Axiom CME-552 target. Uses same code as CME-562.
  • Removed some shared code endings for code stripper.
  • Fixed /STACKS for multitasked applications

AVR

  • Added C@C and @C for code space access. These operators take byte addresses!
  • Fixed CMOVE> loop count.
  • Added support for ATmega MCU types.
  • Added ELPM instruction to assembler.
  • Added Reg_M103.f register definition file for ATmega parts.
  • Added Atmel STK300 ATmega development starter kit target directory.
  • Added 24-bit tokenized VM implementation. Addresses may decode 24 bits with bank switching hardware.
  • Added 32-bit tokenized VM implementation. Addresses may decode 24 bits with bank switching hardware.

ColdFire

  • Corrected MBA and MBAR name ambiguity. MBAR is the register, MBA is its initial value.
  • Enabled cache in POWER-UP code.
  • Fixed number wrap in +LOOP.
  • Faster +LOOP.
  • Moved CREG definitions to the Reg_xxx.f register definition file.

PSC1000

  • Added support for single-step debugger