Appendix A

Quick Reference


A B C D E F G H I K L M N O P Q R S T U V W X


! ( n addr --- )
" ( --- 'string )
# (ud1 --- ud2)
#> (d --- addr len)
#s (ud --- 00)
#tib ( --- 'tib )
' ( --- 'word )
( ( parens (--- )
* (n1 n2 --- n1*n2 )
*/ (n1 n2 n3 --- quot )
*/mod ( n1 n2 n3 --- quot rem )
+ ( n1 n2 --- n1+n2 )
+! ( n addr --- )
+loop ( n --- )
, ( n --- )
- ( n1 n2 --- n3 )
-find ( 'string --- addr flag )
-rot ( n1 n2 n3 --- n3 n1 n2)
-trailing ( addr len --- addr' len')
. ( n --- )
." ( --- )
. ( ( --- )
.move_string High level (addr len 'destination --- )
.quote ( --- )
.s dot_s ( --- )
.strap .strap High level (addr len 'destination --- )
/ ( n1 n2 --- quot )
/mod ( n1 n2 --- quotient remainder )
0 ( --- 0 )
0< ( n --- tf )
0= ( n --- tf )
0> ( n --- tf )
0bran Internal Use Only
1 ( --- 1 )
1+ ( n --- n+1 )
1+! ( addr --- )
1- ( n --- n-1)
2 ( --- 2 )
2+ ( n --- n+2 )
2- ( n --- n-2 )
2/ ( n --- n/2)
2dup ( n1 n2 --- n1 n2 n1 n2 )
3 ( --- 3 )
: ( --- )
; ( --- )
< ( n1 n2 --- tf )
<# ( d --- d )
<builds ( --- )
<outer> Internal Use Only
= ( n1 n2 --- tf )
> ( n1 n2 --- tf )
>counted ( 'null --- addr len)
>here High level ( 'string --- )
>in ( --- 'IN)
>null ( 'null 'counted --- )
>r ( n --- )
? ( addr --- )
?dup ( n --- n | n n )
?terminal ( --- tf)
@ ( addr --- n )

A

abort ( --- )
abort" ( ? --- )
abort_quote Internal Use Only
abs ( n --- |n| )
align ( --- )
allot ( n --- )
and ( n1 n2 --- n3 )
APPEND ( --- 'APPEND )
argc ( --- argc )
argv ( --- argv )
ascii ( --- c )
atol ( 'string --- n )

B

base ( --- base )
begin ( --- )
binary ( --- )
BINARY ( --- 'BINARY )
bold_off ( --- )
bold_on ( --- )
branch Internal Use Only
bye ( --- )
c! ( c addr --- )

C

c, ( c --- )
c@ ( addr --- c )
center ( 'string --- )
clear_temp ( --- )
cls ( --- )
cmove ( 'from 'to n --- )
cmove> ( 'from 'to n --- )
cold ( --- )
comma_offset ( --- 'comma_offset)
compile ( --- )
constant ( --- n )
convert ( d 'numeric_string --- d2 'end )
count ( 'addr --- addr+1 len )
cr ( --- )
create ( --- )

D

d+ ( d1 d2 --- d1+d2 )
d- ( d1 d2 --- d1-d2 )
d< ( d1 d2 --- tf )
decimal ( --- )
definitions ( --- )
depth ( --- n )
dir ( --- )
dnegate ( d --- d2 )
do ( limit start --- )
does> ( --- )
do_compile ( --- )
do_definitions ( --- )
do_do Internal Use Only
do_loop Internal Use Only
do_vocabulary ( --- )
drop ( n --- )
dump ( addr len --- )
dup ( n --- n n )

E

edit ( 'filename --- )
else ( --- )
emit ( c --- )
endif ( --- )
execute ( 'word --- )
exit ( --- )
expect ( addr len --- )

F

fclose ( fd --- )
fcr ( fd --- status )
feof ( fd --- 0|eof )
ferror ( fd --- tf )
fence ( --- )
fflush ( fd --- )
fgetc ( fd --- c )
fgets ( addr size fd --- count )
fill ( addr len byte --- )
fload ( --- )
fopen ( 'filename 'fmode --- fd )
forget ( --- )
forth ( --- )
forth-83 ( --- )
fputc ( ch fd --- status)
fputline ( 'string fd --- status )
fputs ( 'buffer fd --- status )
fread ( addr len fd --- status )
free ( addr --- )
fseek ( whence offset fd --- status)
ftell ( fd --- offset)
fwrite ( addr len fd --- status )

G

gotoxy ( col row --- )
gsub ( 'string 'search 'replace --- #matches )

H

help ( --- )
here ( --- 'here )
hex ( --- )
hold ( char --- )

I

i ( --- i )
if ( tf --- )
immediate ( --- )
include ( --- )
insert ( 'string 'new-string --- 'string )
j ( --- j )

K

k ( --- k )
key ( --- c )

L

list ( --- )
lit ( --- n ) Internal??
literal ( n --- )
load ( --- )
loop ( --- )

M

malloc ( n --- addr )
max ( n1 n2 --- n3 )
min ( n1 n2 --- n3 )
mod ( n1 n2 --- mod )
msg High Level ( 'string --- )
move_string High level ('source 'destination --- )

N

negate ( n1 --- n2 )
not ( n1 --- n2 )
null_strings ( tf --- )
null->counted ('null 'counted --- )

O

or ( n1 n2 --- tf)
over ( n1 n2 --- n1 n2 n1 )

P

pad ( --- 'pad )
pfa_list ( --- 'pfa_list )
pfa_offset ( --- 'pfa_offset )
pick ( n --- value )
plus_loop Internal Use Only

Q

quote Internal Use Only

R

r> ( --- n )
r@ ( --- n )
READ ( --- 'READ )
realloc ( 'memory-block --- addr )
repeat ( --- )
replace ( 'string 'new_str 'sub_str --- 'string )
roll ( n --- )
rot ( n1 n2 n3 --- n2 n3 n1 )

S

seal ( --- )
search ( 'string 'search --- f|'match )
search&insert ( 'string 'search 'insert --- f|'match )
SEEK_CUR ( --- 1 )
SEEK_END ( --- 2 )
SEEK_SET ( --- 0 )
shell ( --- )
show_stack ( tf --- )
sign ( n --- )
smudge ( 'word --- )
space ( --- )
spaces ( n --- )
span ( --- 'span )
state ( --- 'state)
stab High level (char 'destination --- )
strap High level ('source 'destination --- )
strcat ( 'dest 'source --- 'dest )
strcmp ( 'string1 'string2 --- <1|0|>1 )
strcpy ( 'dest 'source --- 'dest )
strncat ( 'dest 'source len --- )
strncmp ( 'string1 'string2 len --- )
strncpy ( 'dest 'source len --- )
string ( len --- )
strret ( --- return-value )
strupr ( 'string --- 'STRING )
sub ( 'string 'search 'replace --- tf )
swap ( n1 n2 --- n2 n1 )
system ( --- )

T

then ( --- )
tib ( --- 'tib )
time ( --- )
tolower ( CH --- ch )
toupper ( ch --- CH )
type ( addr len --- )

U

u. ( u --- )
u< ( u1 u2 --- tf)
u> ( u1 u2 --- tf)
um* ( d1 u1 --- d1*u1 )
um/mod ( d1 u2 --- rem quot )
until ( tf --- )

V

variable ( --- addr )
vocabulary ( --- )

W

while ( tf --- )
word ( delimiter --- 'token )
words ( --- )
WRITE ( --- 'WRITE )

X

xor ( n1 n2 --- n3 )
[ ( --- )
['] ( --- )
[compile] ( --- )
\ backslash ( --- )
] ( --- )
{ ( --- )

Appendix B

Bibliography

The following is a bibliography of related works:

[PRATT85] C-Coded figFORTH, 16-bit Fig Forth implementation that is specific to Unix. Alan Pratt. 1985

[BRADLEY] CForth-83, Mitch Bradley, Bradley Forthware, P.O. Box 4444, Mountain View, Calif. 94040

[LOELIGER] Threaded Interpretive Languages, ISBN 0-07-038360-X, Byte Books, 1981.

[SMITH1] Write Your Own Programming Language Using C++, Norman E. Smith, ISBN 1-55622-264-5, Wordware Publishing, 1992.

[SMITH2] Programming Output Drivers Using Borland C++, Norman E. Smith, ISBN 1-55622-309-9, Wordware Publishing, 1992.

[BRODIE1] Thinking Forth, Leo Brodie, ISBN 0-13-917568-7, Prentice-Hall, Inc. 1984.

[BRODIE2] Starting Forth, First Edition Leo Brodie, ISBN 0-13-???, Prentice-Hall, Inc. 198?.

[WOEHR] Forth: The New Model, Jack Woehr ISBN 1-55851-277-2, M&T Books, 1992.

[SGML] Standard Generalized Markup Language ISO Standard 8879, 1986.

[STOIC] STack Oriented Interactive Compiler. VMS version by Roger Hauck, June 1980.

[K&R1] The C Programming Language, Brian W. Kernighan and Dennis M. Ritchie, ISBN 0-13-110163-3, Prentice-Hall 1978.