Portable 32-bit Forth for the 65C816.
Go to file
mgcaret f09f5e0da0 update test to reflect case-preserved dictionary 2020-11-04 21:02:21 -08:00
asm make dictionary names mixed-case, matching still case-insensitive 2020-11-04 20:37:08 -08:00
docs update forth dictionary doc 2020-10-31 15:02:41 -07:00
fcode-modules optimize unit tester to use clear as EMPTY-STACK 2019-12-27 11:05:26 -08:00
inc fix flags description 2020-11-04 20:37:45 -08:00
platforms gosxb updates 2020-10-29 23:20:03 -07:00
test update test to reflect case-preserved dictionary 2020-11-04 21:02:21 -08:00
utils update utils to support indexing of headerless words 2020-10-21 23:24:29 -07:00
.gitignore GoSXB: more romfs stuff 2020-05-03 14:51:42 -07:00
LICENSE initial full commit 2019-07-01 10:33:44 -07:00
README.md add C256 mention/minor reorg README, minor GoSXB romfs changes 2020-06-21 18:10:25 -07:00
build.sh initial full commit 2019-07-01 10:33:44 -07:00
config.inc initial full commit 2019-07-01 10:33:44 -07:00
forth.s initial full commit 2019-07-01 10:33:44 -07:00

README.md

OF816

OF816 is a 65C816 Forth implementation heavily inspired by Open Firmware (IEEE 1275-1994).

Note that OF816 is not an Open Firmware implementation (yet), but it has the potential (and groundwork has been done) for it to become one.

Features

Among its many features are:

  • Mostly platform-independent. OF816 can be ported easily to new systems.
    • Ports currently exist for the following platforms:
    • New ports require the implementation of a handful of routines.
    • Simple instantiation of one or more Forths in a system.
  • 32-bit cells.
  • ROM-able.
    • The core system does not write outside of data space, except to the 65816 direct page and stack.
    • System variables are provisioned at the start of data space when the sytem is initialized.
  • Optional FCode support (less Device Tree and Package functions).
  • ANS Forth
    • Core, most of Core Ext, Exception, Search Order, and Search Order Ext word sets.
    • Smattering of words from other sets.
    • Good conformance test coverage.

Goal

The goal of OF816 is to help get 65C816-based projects off the ground in terms of development and testing. With a little effort it can be brought up on a new system and used to play around with new hardware.

OF816 is not designed for speed. While reasonably performant, the primary goal was compatibility with 32-bit Open Firmware's core word set, cell size, and FCode. This allows the possibility of re-using existing Forth source and FCode to develop hardware drivers, and potentially developing OF816 into a full Open Firmware implementation.

Resources

In addition to the links above, please see the LICENSE file, docs\, and the directories under platforms\.

OF816 is licensed under a two-clause BSD license.