aboutsummaryrefslogtreecommitdiff
path: root/buzzard/help.th
blob: 7afab271a792f5fa595b033e7ecf240234ee0d50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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
(*)	<build does>	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
" ;