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.
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.
EEPROM.JD4 - I2C EEPROM driver.
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.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!
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!
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* FAbs||Negate and absolute value functions|
|FSqr||Square-root for values greater than zero|
|I>F||Integer to FLoat Conversion|
|FRound FTrunc||Float to Integer Conversion|
FloatString provides words for converting floating point numbers to their text equivalent:
|FloatToString||Basic float to string conversion eg "123456"|
|FloatToMetric||Conversion expressed in metric with eg "123.456km"|
|FloatToScientific||Conversion expressed in scientific notation eg "1.23456e5"|