CamelForth is a Forth implementation for embedded microprocessors (8051, 8086, Z80, and 6809, with more to come). It is compatible with ANS Forth. It was originally developed as an educational project for The Computer Journal, but has since become popular for embedded systems programming.
Custom Ports/Embedded Programming: Custom ports of CamelForth to new processors can be done for a fee. I'm also available for embedded programming on a contract basis. Reach me via the Contact page. - Brad
CamelForth user Raymond (channelmaniac AT yahoo.com) reports,
I built an 8031 based kit last year for VCF (Vintage Computer Festival) Southwest and for this year I built a module that would run CamelForth at A000 with dual-space RAM at E000.
I extended BASIC-52 v.1.2a (stripped down version for the 8031/8051) to add in a "camel" key word to start CamelForth and thought I'd share it with you. Feel free to include it on your site if you wish, no attribution necessary. It's simple code that came from sample in the BASIC-52 documentation from Intel. Note that you cannot use "forth" as a key word as that conflicts with the BASIC command "for"
He adds,
The only troubleshooting note I'd say that goes with that code is "If the 80xx CPU does not see the ROM and a CBY(2000H) returns a 00 then try a different part number EPROM." I had trouble with AM2764A-10DC not being seen.
On Saturday 14 May, I will be speaking again at the Forth2020 virtual meeting. The topic: "Breaking the 64K Limit: handling Extended Memory in Forth."
This refers to the days when many Forths were limited to a 16-bit address space. You can think of this as a "historical" talk, though it it still relevant to some microcontrollers today (such as the MSP430X).
The meeting begins at 14:00 UTC (10:00 EDT). I am scheduled to be the first presenter. The full agenda is here.
For those who might be interested, I will be participating in the Forth2020 virtual meeting on Saturday, February 12 March 12, where I will make a short presentation on "Token Threading on the MSP430." I've been tinkering with this for a while, and it's almost ready for release.
I do not yet have the day's agenda, so I don't yet know what time I'll be speaking.Update: Presentations begin at 14:00 UTC, which is 09:00 EST. There are two scheduled presentations; I don't know if I go first or second. Social gathering begins at 13:00 UTC (08:00 EST).
Update #2: This presentation has been rescheduled to Saturday, March 12, at 9:00 am EST (14:00 UTC).
Chris H. has ported CamelForth in C to the Raspberry Pi "Pico" microcontroller board (RP2040 processor). You can find it here on GitHub. Thanks, Chris!
Misc: Brad R @ Thursday 17 September 2020 - 21:11:22
I received this email from Dr. Bruce McFarling, and am sharing it with his permission.
I am working on a port of Forth for the 65C02 based Commander X16 project. I started with Camel Forth for the Z80 but got bogged down, and switched to eForth v1.0 for the Z80, which I've got up and running with substantial ANS Forth alignment based on some Camel Forth words.
A few days back I was asked for recommendations of Forth books. I always start with the two classics by Leo Brodie: Starting Forth as a primer, and Thinking Forth for advanced programmers. On further investigation I discovered that both are now available as free downloads.
Starting Forth is owned and published by Forth, Inc. (who, as I recall, commissioned the original book many years ago). Both the original edition (as PDF) and the updated online edition are available for download, but not for redistribution, at their website.
Thinking Forth now exists as a SourceForge project, and is published under a Creative Commons license (attribute, non-commercial, share-alike). I have added a local archive of the "book" PDF format, but this and three other formats can be downloaded from their project page.
Continuing thanks to Forth, Inc. and Leo Brodie for making these works available!
Thanks to the extremely dedicated efforts of Forth enthuiast Juergen Pintaske, "Moving Forth" -- the series of articles that led to the creation of CamelForth -- is now available as an Amazon Kindle e-book!
Juergen writes:
In 2018 we have 50 Years of Forth. When I looked for a new project for an eBook I realized that one area is not very well covered: How do the Forth internals work? How can you build a Minimal Processor executing Forth directly? How do you write an Assembler in Forth? When I looked around for some documentation, I remembered this series of articles again. They seem to fit very well together. I contacted Brad and asked for permission to publish them as part of the Forth Bookshelf. He liked the idea so I started formatting. I did not change any of the original material. The only part I added was an appendix, where I redid some of the pictures, so I could understand them better. As in many cases, additional material can be found on the Forth-eV.de Wiki, and we will start with the appendix added here, and what else we might come up.
This is just the latest addition to Juergen's Forth Bookshelf project. He has been diligently resurrecting and preserving historic Forth works, such as Leo Brodie's Starting Forth, Chuck Moore's Forth - The Early Years, and C. H. Ting's eForth Overview, to name just three. I am delighted to see this achievement, and happy that I could offer my own small contribution. Go see it all!
About two years ago I set out to write a version of CamelForth entirely in the C language. This was mainly so that I could run Forth on my Texas Instruments TM4C129 Launchpad board -- I didn't want to get bogged down in the specifics of one particular ARM processor. I had much of the kernel implemented in early 2016, but then got sidetracked by more mundane concerns.
But I kept tinkering with it, and it has now reached a state where I'm willing to let others tinker with it. So, newly added to the Downloads section, you will find CamelForth in C, version 0.1.
Please note that this is very much an "alpha test" release. I have compiled this for 32-bit Linux (using gcc), and successfully run the Hayes validation suite on that platform. I have also compiled this for the TM4C129 Launchpad, but have done practically no testing there. So please try it out, but expect to find some lingering bugs. And note that I haven't tried it on either 16-bit or 64-bit CPUs.
Questions, comments, and bug reports can be addressed to me here on the forum, or by email.
"Moving Forth," the series of articles that led to CamelForth, is now available as an Amazon Kindle e-Book. All thanks to Juergen Pintaske and his Forth Bookshelf project!
AmForth for the AVR8 A small, open-source, ANS compatible Forth for AVR8/ATMega microcontrollers.
naken_asm Assembler A multi-CPU assembler for MSP430, ARM, AVR, dsPIC, 65xx, Z80, and others (more on the way). This is the preferred tool for MSP430 CamelForth.
Latest Forum Posts Posted by Zbiggy They developed interesting new little 8-bit comput[more ...] 31 Oct : 16:57
Posted by Zbiggy Thank you! I believe I can handle it, just I wante[more ...] 12 Oct : 11:28
Posted by Brad R The last 64K of chromium.scr holds an image of the[more ...] 10 Oct : 11:05
Posted by Zbiggy Brad R wrote ...Yes, I've heard of the 6309, but I[more ...] 06 Oct : 18:51