[Flashforth-devel] minor bugs in 328-16MHz-38400?
Brought to you by:
oh2aun
From: Stefan <fli...@gm...> - 2020-11-16 08:22:22
|
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. |