New features for PropellerForth 8.02
The main new features at this time:
- Block word set for reading/writing block devices and loading source code from storage
- EEPROM Block backend, for treating the program EEPROM as a block device
- SPI-mode SD/MMC card Block backend
The SD support is a traditional Forth disk layer: it doesn't implement FAT or any other filesystem. Instead, it lets you directly address blocks on the disk. By default you can use this to save and edit source code directly on the card, but it could also allow an enterprising individual to implement filesystem support.
Because source is stored in raw disk sectors instead of files, getting at it from a "real" computer will require a tool like
dd. Since this is an embedded system, that doesn't bother me too much, but I wouldn't complain if someone implemented FAT16! :-)
The actual interface code is a direct port of Tom Rokicki's FSRW SPIN implementation. It's about 1KiB and currently gets about 5-6KiBps at 80MHz, twice the throughput of the SPIN version, despite being a pretty literal port. I hope to optimize it further before release.
Now, to work on a target compiler -- so that users of 8.02 can recompile their whole system from sources stored on EEPROM or SD.