[PicForth] 2K program memory limitation?

David McNab david at rebirthing.co.nz
Sat Nov 20 12:43:28 CET 2004


Alex Holden wrote:
> I was reading picforth.fs trying to fathom out how it works, when I came 
> across this bit:
> 
> \ We are not being strict here. At this time, we assume that all the
> \ code fits in 2kwords (11 bits addressing) and that main data fits in
> \ one bank (except special registers).
> 2000 constant code-size
> 
> Does this mean that picforth is only capable of using the first 2K 
> instructions

At that stage in picforth.fs, the radix has been set to hex.
'2000' means 8192 bytes.

The comments in picforth.fs refer to the fact that PICs such as the 
16F88, 16F873[A] etc only have 4096 words of program flash, so someone 
programming to those chips needs to keep an eye on program memory usage, 
while someone using 16F877s etc can blithly use up the full 8k.

I've been using PicForth for over a month, and recommend it wholeheartedly.

I suggest you commit to using PicForth, at least for a while.

Try it with lots of tiny programs, and make a few steps at a time, and 
you'll realise the genius behind PicForth.

For one thing, it has considerable inbuilt intelligence that recognise a 
lot of forth idioms and optimises the generated code to the max. For 
another thing, its bugs are very scarce - it's very possible you won't 
even hit any of them.

And also, with its disassembly output, you'll quickly get a very clear 
grasp of how the Forth code is translated down to machine code, and 
you'll get a feel for how to write the best possible code (ie, knowing 
which forth constructs are faster/smaller/cheaper than others).

Lastly - yes, reading picforth.fs is like putting your brain into a 
blender. A lot of the code is unfathomable (to me anyway, as someone 
with a Python/C background). But I have grasped bits of it, and have 
succeeded in writing some useful and powerful extensions. You don't have 
to understand everything in picforth.fs to get great benefit from the 
language.

-- 
Cheers
David


More information about the PicForth mailing list