From da312e375eb0a0758a4dd72e287d3aba86c04d99 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 10 Jun 2017 23:18:31 +0200 Subject: Add FIRST & THIRD almost FORTH --- buzzard/help.th | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 buzzard/help.th (limited to 'buzzard/help.th') diff --git a/buzzard/help.th b/buzzard/help.th new file mode 100644 index 0000000..7afab27 --- /dev/null +++ b/buzzard/help.th @@ -0,0 +1,54 @@ +: help key ( flush the carriage return form the input buffer ) + +" The following are the standard known words; words marked with (*) are +immediate words, which cannot be used from command mode, but only in +word definitions. Words marked by (**) declare new words, so are always +followed by the new word. + + ! @ fetch, store + + - * / mod standard arithmetic operations + = < > <= >= standard comparison operations + + not boolean not of top of stack + logical turn top of stack into 0 or 1 + + dup over duplicate the top of stack or second of stack + swap drop reverse top two elements or drop topmost + + inc dec increment/decrement the value at address from stack + add add a value from 2nd of stack into address from top + + echo key output character from, or input to, top of stack + . # print out number on top of stack without/with cr + cr print a carriage return + +[more]" key +" (**) var declare variable with initial value taken from stack +(**) constant declare constant with initial value taken from stack +(**) array declare an array with size taken from stack + +(*) if...else...then FORTH branching construct +(*) do...loop FORTH looping construct + i j loop values (not variables) + + print print the string pointed to on screen + +(*)(**) : declare a new THIRD word +(*) declare a data types compile-time and run-time +(*) ; terminate a word definition + +[more]" key +" Advanced words: + here current location in dictionary + h pointer into dictionary + r pointer to return stack + fromr tor pop a value from or to the return stack + + , write the top of stack to dictionary + ' store the address of the following word on the stack + allot leave space on the dictionary + + :: compile a ':' header + [ switch into command mode + ] continue doing : definitions +" ; -- cgit v1.2.3