Home Sensors Software Contact Us 
JDForth - Included Code
Compiled Interactive Forth Environment
Compilers.JD4 - Interactive compiler extension.

These words support the interactive environment, and allow the forth dictionary to be extended by adding new words.

Interactive.JDP - Demo Project.

The Interactive project demonstrates how to compile an interactive forth.
FAT16 and SDDriver
SDDriver.JD4 - Low-level SD card driver.

This low level driver provides words for reading and writing sectors to an SD card.

FAT16.JD4 - SD card as disk-drive.

FAT16 is derived from Thomas Rokicki's fsrw.spin. It provides facilities for reading from, writing as well as appending to files. It also provides the ability to delete files and traverse the root directory.
I2C.JD4 - Generic low-level driver.

This low level driver uses only forth code to bit bash an I2C connection up to about 80kbps. I2C provides a hardware abstraction layer that may be used to build higher level I2C device drivers.


Access an I2C EEPROM device, including the boot EEPROM. This driver has words for reading and writing single bytes as well as blocks of I2C data from the connected EEPROM device.
SimplexSerial (bit bash at 2MBaud)
SimplexSerial.JD4 - Not "Simple"Serial.

SimplexSerial is exactly the same concept as SimpleSerial, but supports bit-bash baud rates up to 2MBaud with an 80MHz crystal. It uses lots of tricky inline assembly language!
SimpleSerial (bit bash at 57600 baud)
You've seen SimpleSerial.spin.

It allows a simplex bit-bash serial connection at a baudrate of 19200.
What makes is handy is that it is programmed entirely in spin, and does not require an extra cog!

Now try the JDForth equivalent!

It allows a simplex bit-bash serial connection at a baudrate of 57600.
It's programmed entirely in Forth without using any tricky inline assembly language!
FloatMath and FloatString (32bit IEEE754 floating point)
A JDForth variant of some spin favourites.

FloatMath and FloatString provide a set of functions that may be used to do floating point maths on the Propeller. The floating point numbers are 32-bits and IEEE 754 compliant. These libraries have a similar limitation to their spin counterparts - undefined operation for -0, NaN and Infinity.

The JDForth libraries are a little more than 3x faster than the spin counterparts that are supplied with the Propeller Tool. Two of the words have been written in PASM - more to demonstrate the mixing of forth and assembly than as a performance enhancement.

FloatMath provides a basic set of floating point words:
F+ F- F* F/The basic four function calculators
F-1* FAbsNegate and absolute value functions
FSqrSquare-root for values greater than zero
I>FInteger to FLoat Conversion
FRound FTruncFloat to Integer Conversion

FloatString provides words for converting floating point numbers to their text equivalent:
FloatToStringBasic float to string conversion eg "123456"
FloatToMetricConversion expressed in metric with eg "123.456km"
FloatToScientificConversion expressed in scientific notation eg "1.23456e5"