Appendix F

Words by Function


Address Conversion

>ABS >REL IF>ABS IF>REL CALL>ABS

AMIGA Library Access

ARGS CALL CALL>ABS CALLVOID CALLVOID>ABS CLOSEALLLIBS CLOSELIB DCALL LIB? LIBRARY
LIBVERSION OPENLIB

Arithmetic

* */ */MOD + +! +- - / /MOD 1+ 1- 2* 2+ 2- 2/ 4* 4+ 4- 4/ << @BITS ABS ASHIFT 
BIT-SET? BYTE-SWAP CLR-BIT COMP D+ D- D2* D2/ DABS DNEGATE DU2* DU2/ EVEN-UP
FIG-NOT M* M/ M/MOD MAX MIN MOD NEGATE SQRT U* U/ U2* U2/ W/

Conditional Compiling

.ELSE .IF .NEED .THEN EXISTS? INCLUDE?

Conditional Operators

0< 0= 0> < <= = > >= D< D= DU< FALSE NOT TRUE U< U> WITHIN?

'C' Structures from JU:CSTRUCT

..! ..@ :STRUCT ;STRUCT APTR ARRAYOF BYTE BYTES DST GETMODULE LONG OB.STATS? S@ S! 
SHORT SIZEOF() STRUCT UBYTE ULONG UNION{ USHORT }UNION }UNION{

Compiler Support

!CSP >INLINE >PARENT ?COMP ?CSP ?EXEC ?PAIRS BOTH BSR-CODE CALLADR, CARRAY 
CFA, COMPILE COMPILING? CREATECHAR DLIT DLITERAL DO-DOES-SIZE DOES> IMMEDIATE
INLINE INLINEOK? INTERPRETING? JSR-CODE LIT LITERAL LONGCFA, RECOGNIZE RTS-CODE
SMUDGE STATE UNSMUDGE [ [COMPILE] ]

Debugging Aids

&CHARS; .FROM .FROM-OR.  .VOC 1010-EMULATE 1111-EMULATE }DEBUG BEST-GUESS DEBUG 
DEBUG{ DEBUG.ON DEF DO-TRACE DST DUMP FILE? FIND-DATA FIND-WDATA FREE-TRAP FROM-ADR
FROM-VOC FROM-WORD GET-TCB GET-TRAP H. IF-DEBUG IF-TESTING MAP MEMCELLS?
NO-EMULATION NOTRAPS STACK-HOLD STACK.CHECK STACK.MARK START.UNRAVEL.QUIT
STOP.UNRAVEL.QUIT SYSUSER# TIB.DUMP TRAPS UNRAVEL VALID-NAME? WORD.DUMP

Dictionary Address Conversion

'>BODY '>NAME >BODY >LINK >NAME BODY> LINK> N>LINK NAME>

Dictionary Management

' , ALIGN ALLOT C, CRID.  DP DPLIMIT HERE ID.  IMMEDIATE? INITVOCS MAX-INLINE PAD 
ROMABLE ROOT W, [']

DOS Commands from JU:DOSCOMMANDS

+DOS >DOS ASSIGN AVAIL CD COPY DATE DELETE DIR DOS DOS0 DOSCOMMAND DOSSTRING INFO 
LIST NEWCLI PATH RENAME RUN STATUS

Disassembler from JU:DISM

ADISM DEF DISM DISM-CYCLES DISM-NAMES DISM-WORD? INIT-DISM RISM SELECT-DISM-DEFAULTS SEE

Defining Words

#VOCS : :CREATE ; ARRAY CONSTANT CREATE REVERTVOC USER VARIABLE VALUE { }

Error Reporting

.ERR ?ABORT" ?ERROR ABORT ABORT" ERROR MSG QUIT WARNING WARNING"

Forth Screen Support

BLK BLKERR LIST LOAD R# SCRED

Flow of Control

+LOOP -DO -LOOP 0BRANCH ?EXIT ?LEAVE ?RETURN ?STAY AGAIN BACK BEGIN BRANCH CASE 
CASE_FLAG CONDITION DO DO-LOOP-NEST ELSE END END-SELECT ENDCASE ENDCOND ENDOF
EXIT FORWARD I IF IF-NOT IK J LEAVE LOOP LOOP-BACK LOOP-FORWARD NOT0BRANCH OF
REPEAT RETURN SELECT THEN TIMES UNTIL UNTIL-NOT WHILE WHILE-NOT

FILE I/O

$FOPEN +DOS @&CLOSEFILES; ACCESS_READ ACCESS_WRITE BLOCK CLOSEFILES EOF EOL F@, F@,? 
FCLOSE FCLOSEATBYE FCLOSEVAR FEMIT FERROR FILEMODE FKEY FDUMP FOPEN FREAD FREAD?
FSEEK FSEEK? FTYPE FWRITE MARKFCLOSE MODE_NEWFILE MODE_OLDFILE NEW
OFFSET_BEGINNING OFFSET_CURRENT OFFSET_END OLD TEMPBUFF TEMPF, TEMPFILE
TYPEFILE UNMARKFCLOSE

Floating Point

F.  F* FLOAT FNUMBER FNUMBER? FSIN see chapter on Floating Point

Forth System

BYE COLD INTERPRET QUIT

Host Portability

'C CELL CELL* CELL+ CELL- CELL/ CELLS CFA->PFA HO.FIND.CFA HO.FIND.PFA HOST"
HO_MAX_INT HO_MIN_INT INLINE+ INLINE> INLINE@ PFA->NFA PICK79 PICK83 REL->USE
USE->REL

INPUT

#TIB >IN ?PAUSE ?TERMINAL BSIN EXPECT FILEWORD HISTORY KEY PARSE PARSE-WORD QUERY 
SKIP-WORD? SOURCE SPAN TIB TIB0 TIBEND UNWORD WORD Y/N

I/O General

#CHARS ?LETTER ?VISIBLE ASCII BL CONSOLE EMPTYCHAR HICASE LINELIMIT LOCASE LPLACE 
LWORD NOCASE OFFSET PLACE

Logging to a File from JU:LOGTO

$LOGTO LOGEND LOGGED? LOGSTART LOGSTOP LOGTO

Logical

!BITS +SHIFT -SHIFT AND OR SET-BIT SHIFT WORD-SWAP XOR |

Memory Access

! +! -> 2! 2@ ? @ ABS! ABS@ ABSC! ABSC@ ABSW! ABSW@ C! C@ CMOVE CMOVE> D! D@ 
ERASE FILL MOVE ODD! ODD@ ODDD! ODDD@ ODDW! OFF ON SPARE TOGGLE W! W@ WMOVE X! X@

Memory Allocation

+STACK -STACK @&FREEBLOCKS; ALLOCBLOCK ALLOCBLOCK? ALLOCSTRUCT FREEATBYE FREEBLOCK
FREEBLOCKS FREEBYTE FREEBYTEA FREECELL FREEMEM MARKFREEBLOCK MEMF_CHIP MEMF_CLEAR
MEMF_FAST MEMF_LARGEST MEMF_PUBLIC NEXTMEM NEXTMEMA POP PUSH SIZEMEM UNMARKFREEBLOCK
XALLOCBLK XFREEBLK

Numeric Conversion

# #> #DIGS #DIGITS #S $ (NUMBER) .  .HEX .HX .R <# BASE BINARY COMMAS CONVERT D.
D.R DECIMAL DIGIT DIGS/, DPL HEX HLD HOLD N>TEXT NO-COMMAS NUMBER NUMBER? SIGN U.

Output

+OUT ." .S <FASTEMIT> <FASTKEY> <FLUSHEMIT> >NEWLINE ?MORE 
?WRAP BELL BSOUT CLRCHAR CLS CR CR? EMIT EMIT-TO-COLUMN FAST FLUSHEMIT MAX-TYPE
OUT OUTBUF OUTPUT-CASE SLOW SPACE SPACES TAB TAB-WIDTH TYPE TYPE-HERE WTYPE

Random Numbers from JU:RANDOM

CHOOSE RAND-SEED RANDOM WCHOOSE

Return Stack

.RS .RSTACK 0RP >R DUP>R MYRP R R0 R> R@ RDEPTH RDROP RP! RP@ RP+! RPICK 
SET-RP X>R XR> XRDROP

Saving and Loading

#K #RELOCS #U .IMAGE .RELOCS ?FORGOTTEN ABSRELOCS CLONE FBLK FILEHEADERS HEADTAIL
IFOPTIMIZE INCLUDE INCLUDE? LOAD-FILE PUSHRELOC REDEF? RELOCSADR SAVE-FORTH SAVE-IMAGE
SCR-FILE SCREDING TURNKEY TURNKEYING?

Stack Manipulation

-2SORT -DUP -ROT 0SP 2DROP 2DUP 2OVER 2SORT 2SWAP ?DUP ?STACK CSP DDROP DDUP DEPTH
DROP DSWAP DUP MYDSP MYTOS NIP OVER PICK ROT S0 SET-SP SP! SP@ SWAP TUCK XDROP XDUP
XPICK

Strings

" $" $, $- $.  $= $ACCUM $APPEND $CLR $CONCAT $LEN $MOVE $N>S $SIZE $TYPE
$VARIABLE -TRAILING /STRING 0" COMPARE COUNT MAKEUCASE MATCH? MCASE-SENSITIVE SCAN
SKIP SKIP-WORD SKIPWORD TEXT=? UPPER UPPERC@

Timers

BENCH BENCH.WITH MEASURE MSEC PROFILE

Unused Words Analysis from JU:UNUSED

CLEAR.MARKS MARK.UNUSED MARK.USED START.MARKING.WORDS STOP.MARKING.WORDS UNUSED.WORDS
USED.WORDS USED_BIT

User Stack

>US 'USP> INIT-USP US-DEPTH US-PICK US> US@ USP! USP@ UP0 USP

Vectored Execution

>IS @EXECUTE COLDEXEC DEFER DEFER-EXECUTE EXECUTE 
GLOBAL-DEFER IS ISDEFUSER? WHAT'S

Virtual File I/O

BUFFERADR CLOSEFVREAD CLOSEFVWRITE F, FFLUSH? LINESFILLV OPENFV READLINE VIRTBUFFSIZE

Vocabulary Management

ANEW CONTEXT CURRENT FENCE FIND FORGET FREEZE LATEST MAXVOCS SCAN-ALL-VOCS SCAN-VOC 
SCAN-WORDS VALLOT VLATEST>VLINK VLINK>' VLINK>VLATEST VLIST VOC-LINK
VOCABULARY WHEN-SCANNED WHEN-VOC-SCANNED WORDS WORDS-LIKE

Word Sizing

B->S S->D W->S




© 1998-2023 Martin Randall