Hi Mikael,
FlashForth on Arduino Uno was my entry into the world of Forth and the
interactive programming and testing of microcontrollers. When comming
from assembler only (as I did) its a pleasure to have the direct access
and the modular building and testing capabilities. Well done. Many
thanks for that!
I'm working with FlashForth for a bit more than a year now, changed some
things to make it work faster and merged it with an OptiBoot-like
bootloader. Meanwhile I have some minor bugs to report:
a) '<', '>', 'min', 'max', 'd<' and 'd>' deliver wrong results, when the
(signed) space overflows e.g.
20.000 -20.000 < ok<#,ram> 65535
b) 'digit?' accepts : ; < = > ? X Y Z [ \ ] ^ _ ` as regular digits e.g.
1[ ^ ` ok<#,ram> 14 7 9
c) 'ms' (u -- ) is counting u+1 milliseconds, e.g. 100 loops of 1 ms
last 200 ms
: testms ticks #100 begin 1 ms 1- dup 0= until drop ticks swap - ;
testms ok<#,ram> 200
d) it's not a bug, but ...
by initializing all registers and RAM to zero the internal
oscillator (as the time basis
for FLASH and EEPROM programming) is set to the slowest possible
frequency, thereby almost
doubling the programming time, this can be avoided by saving the
value of OSCCAL
e) also not a bug, but ...
DP_TO_EEPROM is done wordwise, in many cases half the EEPROM writes
could be saved by
doing it bytewise, because the hi-bytes of the pointers are unchanged
with best regards
bitflipser
PS: If you want to test my OptiForth328 called version, please let me know.
|