Files in SW/FORTH/ :
- 01.zacatek
- FORTH_doc
- FORTH_doc_01
- FORTH_doc_02
- FORTH_etc
- FORTH_etc_01
- FORTH_etc_02
- FORTH_log
- FORTH_log_01
- FORTH_log_02
- index
End of index
Nápady:
- Arduino bootloader - mohl by mít navíc rutinu/funkci, která dostane adresu hlavičky v RAM, kde bude Adresa v RAM, Adresa ve Flash, délka a adresa ve Flash, kam se vrátit/skočit
- program by odněkud načetl overlay, nebo zcela jiný program, skočil by do bootloaderu, ten by to přeflašnul a skočil na dané místo (často v nově flašnutém bloku) (nebo ve starém programu, který by natáhnul další část, protože je omezen velikostí RAM) - a na atmega2560 by to mohlo fungovat i s externí pamětí (tedy celkem 64kB RAM - 4 slova na hlavičku, stack netřeba)
- 24bit FORTH s 24bit adresama i cells, takže Double vlastně netřeba (kromě vědeckých výpoštů, kde bude i Float a tak)
- pro asemblování se dá použít trik s dummy hlavičkami a jejich přepsání z "avr-objdump exe.elf" - /home/gilhad/GIT-ghub/Arduino/Video/MegaHomeFORTH/SW/tools
- PRIMITIVUM slovo napsané ve strojáku, nutně ve FLASH
- složené/kompozitní slovo typicky : name some thing ... ;
- FRÁZE složené/kompozitní slovo, které je ale zapsáno v asembleru/C takže nepotřebuje (pomalý) NEXT mezi jednotlivými prvky. Je nezbytně uloženo ve FLASH (1+ 2/ 2* ale i složitější)
- FOG word - označí slovo word jako fog, vyhledávání a vypisovaní se na něm zastaví. opštovné označení to odznačí.
- poor man's local variables:
- a poor man's local variable approach I've occasionally used in Forth (it's not a true local variable thing, since pointers to the variables don't work that way, it just pushes and pops old values on and off the return stack). First, set up a couple of ordinary global variables, say A and B. Then code like this:
: DEMO ( maybe some code ) A @ >R ( pushing value of A to return stack ) B @ >R ( pushing value of B to return stack ) ( do some work with A and B as though they were local ) R> B ! ( popping value of B from return stack ) R> A ! ( popping value of A from return stack ) ( maybe some more code ) ;
SW/FORTH