Disk Space Assignment

The 1440 blocks of arrayForth are roughly divided into two sections. 0-144 are public domain colorforth. They include the colorforth kernel and utilities. 144-1440 comprise arrayForth, though there is some overlap as the IDE sits below 144 and the html utility sits above.

Most of the blocks from about 200 up to about 1200 are empty and free for you to use for arrayForth programs. There are some exceptions. Leave blocks 648, 890-896, 900, 940-944 as they are. You might just want to start your code at block 200 and have more than 400 consecutive empty blocks to work with.

Where to Look

You will find examples of arrayForth source code in blocks 1300 and up. The arrayForth compiler source occupies blocks 1400-1414. The ROM load blocks are 1418-1440. From the command line type, for example, '705 @rom' to see what block number has the source code for node 705's ROM. Then type 'edit' or 'list' to view that source code. The blocks at 1418-1440 load ROM source code from blocks 1304-1400 as well. These are examples of highly optimized arrayForth. They are optimized to take as little space in memory as possible.

942 is the load block for softsim, the software simulator, which is invoked by typing 'so'. The source code for softsim is between 1250 and 1300. An advanced arrayForth programmer might want to change the display or write another testbed in order to help debug a program, but most programmers will use it as is.

Getting your arrayForth™ Program Compiled

The arrayForth compiler first compiles all the ROM code and then uses 1300 as the RAM load block. 1300 in turn loads 1302 and this should be the load block for your custom code. If you've edited some test code for node 0 into block 200 for example, then on 1302 you say '0 node 200 load exit'.