Forth V4.0/V4.2 Function Summary
This page provides subject sorted lists of the library routines, called "Words" in FORTH, found in the Forth glossaries:
All of these functions except those in the source-form glossary are provided in firmware on the QVGA Controller, Panel-Touch Controller, and QED-4 Board (aka QED-Flash Board).
To fully understand the definitions found in the glossaries, consult the description of stack symbols, abbreviations and naming conventions.
In addition to the subject sorted lists here, there is also a list of words that disable interrupts.
Software development in v4 Forth uses the Mosaic IDE Integrated Development Environment; this is the same IDE used for software development in C. While Forth programmers will not use the IDE's C compiler, the IDE provides a full-featured text editor and customized terminal for rapid Forth code downloads and interactive Forth debugging sessions with the 68HC11 microcontroller board.
Categorized Word List
Word Categories |
---|
ARRAY |
ASSEMBLER |
C DEBUGGING |
COMPARISON |
CONTROL STRUCTURES |
DEBUG, TRACE, AND BENCHMARK |
DEFINITION |
DEVICE DRIVERS |
Analog I/O Drivers |
Digital I/O Drivers |
High Current Drivers |
Keypad and Display Drivers |
Real-Time Clock |
Serial I/O Drivers |
Stepper Motor Drivers |
DICTIONARY |
FLASH MANAGEMENT |
FLOATING POINT COMPARISON |
FLOATING POINT CONSTANTS |
FLOATING POINT MATH |
FLOATING POINT STRING CONVERSION AND I/O |
HEADERLESS FUNCTIONS |
HEAP |
INTERPRETER AND COMPILER |
INTERRUPTS |
LOGICAL |
MASS MEMORY |
MATH |
MATRIX DIMENSIONING AND ACCESS |
MATRIX EDITING |
MATRIX I/O |
MATRIX MATH |
MATRIX ROW/COL OPERATIONS |
MEMORY |
MEMORY MAP |
MULTITASKING AND TIME-KEEPING |
NUMERIC CONVERSION |
OPERATING SYSTEM |
SERIAL I/O ROUTINES (Character, String, and Number I/O) |
SOURCE FORM ROUTINES |
STACK |
STRING |
STRUCTURES |
VECTOR |
ARRAY
2ARRAY.FETCH | COPY.ARRAY | MAX#DIMENSIONS |
2ARRAY.STORE | DELETED | PF.STACK.FRAME |
?ARRAY.SIZE | DIM.CONSTANT.ARRAY: | SWAP.ARRAYS |
?DIMENSIONS | DIMENSIONED | ZERO.ARRAY |
ARRAY.PF | FILL.ARRAY | [0] |
ARRAY: | BLANK.ARRAY | [] |
ASSEMBLER (SEE ASSEMBLER GLOSSARY)
>ASSM | BLT | DIR | LSLA | SBCA |
>FORTH | BMI | ELSE, | LSLB | SBCB |
ABA | BNE | END-CODE | LSLD | SEC |
ABX | BPL | END.CODE | LSR | SEI |
ABY | BRA | ENDIF, | LSRA | SEV |
ADCA | BRCLR | EORA | LSRB | STAA |
ADCB | BRN | EORB | LSRD | STAB |
ADDA | BRSET | EQ | LT | STD |
ADDB | BSET | EXT | MI | STOP |
ADDD | BSR | FDIV | MUL | STS |
AGAIN, | BVC | GE | NE | STX |
ALWAYS | BVS | GT | NEG | STY |
ANDA | CALL | HI | NEGA | SUBA |
ANDB | CBA | HS | NEGB | SUBB |
ANY.BITS.CLR | CC | IDIV | NEVER | SUBD |
ANY.BITS.SET | CLC | IF, | NOP | SWI |
ASL | CLI | IMM | ORAA | TAB |
ASLA | CLR | INC | ORAB | TAP |
ASLB | CLRA | INCA | PL | TBA |
ASLD | CLRB | INCB | PSHA | TEST |
ASR | CLV | IND,X | PSHB | THEN, |
ASRA | CMPA | IND,Y | PSHX | TPA |
ASRB | CMPB | INH | PSHY | TST |
ASSEMBLER | CODE | INS | PULA | TSTA |
BCC | COM | INX | PULB | TSTB |
BCLR | COMA | INY | PULX | TSX |
BCS | COMB | JMP | PULY | TSY |
BEGIN, | CPD | JSR | REL | TXS |
BEQ | CPX | LDAA | REPEAT, | TYS |
BGE | CPY | LDAB | ROL | UNTIL, |
BGT | CS | LDD | ROLA | VC |
BHI | DAA | LDS | ROLB | VS |
BHS | DEC | LDX | ROR | WAI |
BITA | DECA | LDY | RORA | WHILE, |
BITB | DECB | LE | RORB | XGDX |
BLE | DES | LO | RTI | XGDY |
BLO | DEX | LS | RTS | |
BLS | DEY | LSL | SBA | |
C DEBUGGING (SEE C DEBUGGER GLOSSARY)
=CHAR | CHAR | FP_QtoC | MAIN |
=FLOAT | CHAR* | FPtoString | PrintFP |
=INT | DO[] | INT | |
=LONG | FLOAT | INT* | |
C$>COUNTED$ | FLOAT* | LONG | |
CALL.CFN | FP_CtoQ | LONG* | |
COMPARISON
< | 0= | DMAX | U< | XU< |
<> | 0> | DMIN | U> | XU> |
<= | D< | DRANGE | UMAX | |
= | D<> | DU< | UMIN | |
> | D= | DU> | URANGE | |
>= | D> | MAX | X<> | |
0< | D0<> | MIN | X= | |
0<> | D0= | RANGE | XRANGE | |
CONSTANTS
CONTROL STRUCTURES
+LOOP | ENDIFTRUE | I+ | J\I | REPEAT |
AGAIN | ENDOF | IF | K | THEN |
BEGIN | EXIT | IFTRUE | LEAVE | UNLOOP |
CASE | FOR | IXN- | LOOP | UNTIL |
DO | I | IXN+ | NEXT | URANGE.OF |
ELSE | I' | IXU- | OF | WHILE |
ENDCASE | I- | IXU+ | OTHERWISE | |
ENDIF | I\J | J | RANGE.OF | |
DEBUG, TRACE, AND BENCHMARK
(BENCHMARK:) | DEFAULT.TRACE.ACTION | IS.TRACE.ACTION |
BENCHMARK: | DUMP.REGISTERS | SINGLE.STEP |
BREAK | F*/COUNTER | TRACE |
DEBUG | F+COUNTER | |
DEFINITION
: | CODE | INTEGER: | VARIABLE |
; | CONSTANT | LOCALS{ | XADDR: |
<DBUILDS | DOES> | MATRIX: | XCONSTANT |
<VBUILDS | DOUBLE: | NO.OP | XVARIABLE |
2CONSTANT | END.CODE | REAL: | |
2VARIABLE | END-CODE | REDEFINE | |
ADDR: | FCONSTANT | REGISTER: | |
ARRAY: | FVARIABLE | USER | |
DEVICE DRIVERS
Analog I/O Drivers
(>DAC) | A/D12.MULTIPLE | A/D8.SAMPLE |
(A/D12.MULTIPLE) | A/D12.SAMPLE | INIT.A/D12&DAC |
(A/D12.SAMPLE) | A/D8.MULTIPLE | INIT.SPI |
(A/D8.MULTIPLE) | A/D8.OFF | SPI.OFF |
(A/D8.SAMPLE) | A/D8.ON | SPI.RESOURCE |
>DAC | A/D8.RESOURCE | |
Digital I/O Drivers
INIT.PIA | PIA.TOGGLE.BITS | PPA |
PIA.C! | PORTA | PPB |
PIA.C@ | PORTA.DIRECTION | PPC |
PIA.CHANGE.BITS | PORTD | |
PIA.CLEAR.BITS | PORTD.DIRECTION | |
PIA.SET.BITS | PORTE | |
High Current Drivers
CLEAR.HIGH.CURRENT | SET.HIGH.CURRENT |
Keypad and Display Drivers
$>DISPLAY | COMMAND>DISPLAY | KEYPAD |
(UPDATE.DISPLAY) | DISPLAY.BUFFER | LINES/DISPLAY |
?KEYPAD | DISPLAY.HEAP | PUT.CURSOR |
?KEYPRESS | DISPLAY.OPTIONS | UPDATE.DISPLAY |
BUFFER.POSITION | GARRAY.XPFA | UPDATE.DISPLAY.LINE |
CHAR>DISPLAY | INIT.DISPLAY | |
CHARS/DISPLAY.LINE | IS.DISPLAY | |
CLEAR.DISPLAY | IS.DISPLAY.ADDRESS | |
Real-Time Clock
Serial I/O Drivers (See also SERIAL I/O ROUTINES)
#INPUT.CHARS | INIT.RS485 | SERIAL1.AT.STARTUP |
#OUTPUT.CHARS | INIT.SERIAL2 | SERIAL1.RESOURCE |
?KEY1 | KEY1 | SERIAL2.AT.STARTUP |
?KEY2 | KEY2 | SERIAL2.RESOURCE |
BAUD1.AT.STARTUP | PARITY | TRANSMITTING |
BAUD2 | PARITY.IN | USE.SERIAL1 |
DISABLE.SERIAL2 | PARITY.OUT | USE.SERIAL2 |
EMIT1 | RS485.RECEIVE | |
EMIT2 | RS485.TRANSMIT | |
Stepper Motor Drivers
CREATE.RAMP | SPEED.TO.DUTY | STEP.MANAGER |
DICTIONARY
' | CFA.PTR | FORTH | NP | VOCABULARY |
(HERE) | CFA>NAME | HERE | NPAGE | VP |
, | CFA>NFA | ID. | ON.FORGET | WIDTH |
?HAS.PFA | CFA>PFA | LATEST | PFA>NAME | WORDS |
ALLOT | CONTEXT | LINK | PFA>NFA | |
ANEW | CURRENT | NFA.FOR | V, | |
ASSEMBLER | DEFINITIONS | NFA>CFA | VALLOT | |
AXE | DP | NFA>LFA | VC, | |
C, | DPAGE | NFA>PFA | VFORTH | |
CFA.FOR | FORGET | NHERE | VHERE | |
FLASH MANAGEMENT
DOWNLOAD.MAP | PAGE.TO.RAM | TO.FLASH |
PAGE.TO.FLASH | STANDARD.MAP | WHICH.MAP |
FLOATING POINT COMPARISON
F< | F= | F0<> | F0> | FMIN |
F<> | F> | F0<= | F0>= | |
F<= | F0< | F0= | FMAX | |
FLOATING POINT CONSTANTS
1/INFINITY | 1/PI | 360/2PI | LOG10(2) | SQRT(2) |
-1/INFINITY | 1/SQRT(2) | INFINITY | ONE | TEN |
1/LN(2) | 1/TEN | -INFINITY | PI | ZERO |
1/LOG10(2) | 2PI/360 | LN(2) | PI/2 | |
FLOATING POINT MATH
>DEGREES | F** | FALOG2 | FLOT | FTAN |
>RADIANS | F/ | FASIN | FNEGATE | INT.FLOOR |
1/F | F^N | FATAN | FP.ERROR | INT.PART |
10^N | F+ | FCOS | FP.POP | OVERFLOW |
DFIXX | F2* | FINT | FP.PUSH | RANDOM# |
DFLOT | F2/ | FIXX | FRANDOM | RANDOM.GAUSSIAN |
DINT | FABS | FLN | FRTI | UFIXX |
DINT.FLOOR | FACOS | FLOG10 | FSCALE | UFLOT |
F- | FALN | FLOG2 | FSIN | UNDERFLOW |
F* | FALOG10 | FLOOR | FSQRT | |
FLOATING POINT STRING CONVERSION AND I/O
$>F | FILL.FIELD | FP&STRING.POP | NO.SPACES |
ASK.FNUMBER | FIXED | FP&STRING.PUSH | RIGHT.PLACES |
F. | FIXED. | FP.DEFAULTS | SCIENTIFIC |
F>FIXED$ | FLOATING | LEFT.PLACES | SCIENTIFIC. |
F>FLOATING$ | FLOATING. | MANTISSA.PLACES | TRAILING.ZEROS |
F>SCIENTIFIC$ | FNUMBER | NEXT.NUMBER | |
HEAP
.HANDLES | CURRENT.HEAP | HANDLE.PTR | ROOM |
?HANDLE.SIZE | DEALLOCATED | HEAP.PTR | START.HEAP |
+CURRENT.HEAP | DUP.HEAP.ITEM | HEAP.STRUCTURE.PF | TO.HEAP |
+HEAP.HANDLE | FREE.HANDLE | IS.HEAP | TRANSFER.HEAP.ITEM |
+HEAP.PAGE | FROM.HEAP | RECOVER.HANDLE | |
ALLOCATED | H.INSTANCE: | RESIZE.HANDLE | |
INTERPRETER AND COMPILER
#FIND | ; | 2LITERAL | EXECUTE | QUERY |
#TIB | ?IMMEDIATE | ASCII | FIND | QUIT |
( | [ | BACKTRACK | HAS.PFA | RECURSE |
(#FIND) | [COMPILE] | BLK | IMMEDIATE | SMUDGE |
(COMPILE.CALL) | \ | CALL | INTERPRET | TIB |
(CREATE) | ] | COMPILE | LITERAL | UNIQUE.MSG |
(EXECUTE) | >ASSM | COMPILE.CALL | LOCALS{ | WORD |
(FIND) | >FORTH | CREATE | PARSE | |
: | >IN | EVALUATE | POCKET | |
INTERRUPTS
ATTACH | IC1.ID | OC4.ID |
CLOCK.MONITOR.ID | IC2.ID | PULSE.EDGE.ID |
COP.ID | IC3.ID | PULSE.OVERFLOW.ID |
DISABLE.INTERRUPTS | IC4/OC5.ID | RTI.ID |
ENABLE.INTERRUPTS | ILLEGAL.OPCODE.ID | SCI.ID |
FP&STRING.POP | IRQ.ID | SPI.ID |
FP&STRING.PUSH | OC1.ID | SWI.ID |
FP.POP | OC2.ID | TIMER.OVERFLOW.ID |
FP.PUSH | OC3.ID | XIRQ.ID |
LOGICAL
AND | COMPLEMENT | NOT | TRUE |
BOOLEAN | FALSE | OR | XOR |
MASS MEMORY
BLOCK | LIMIT | PREV | UFIRST | UREAD/WRITE |
BUFFER | LINK_FILE_IO | READ/WRITE | ULIMIT | USE |
FIRST | OFFSET | SCR | UPDATE | |
MATH
- | 1XN+ | 4XN- | DABS | SIGNED.D>S | XALIGN |
* | 2- | 4XN+ | DNEGATE | U*/MOD | XD- |
*/ | 2* | 8* | DSCALE | U/ | XD+ |
*/MOD | 2/ | 8/ | LOG2 | U/MOD | XN- |
/ | 2+ | 8XN+ | M* | U>D | XN+ |
/MOD | 2XN- | ABS | M/MOD | U2/ | XU- |
|X1-X2|>U | 2XN+ | D- | MOD | UD*S | XU+ |
+ | 3* | D+ | NEGATE | UM* | |
1- | 4- | D>S | RANDOM | UM/MOD | |
1+ | 4* | D>S? | RANDOM# | UMOD | |
10* | 4/ | D2* | S>D | X1-X2>D | |
1XN- | 4+ | D2/ | SCALE | X1-X2>N | |
MATRIX DIMENSIONING AND ACCESS
?DIM.MATRIX | M[] | MATRIX->V |
?MATRIX.SIZE | M[]! | PF.STACK.FRAME |
DELETED | M[]@ | REDIMMED |
DIM.CONSTANT.MATRIX: | MATRIX.PF | |
DIMMED | MATRIX: | |
MATRIX EDITING
COLUMN.CONCATENATE | ROW.CONCATENATE | ROW/COL.INSERTED |
COLUMN.TRUNCATE | ROW/COL.DELETED | SELECT.COLUMNS |
MATRIX I/O
LOAD.MATRIX | M.. | MATRIX |
M. | M.PARTIAL | |
MATRIX MATH
?DETERMINANT | M*MT | S*MATRIX |
ALL.COLUMNS.SCALED | MATRIX- | S/MATRIX |
ALL.ROWS.SCALED | MATRIX* | S+MATRIX |
COPY.MATRIX | MATRIX.ELEMENT* | S-MATRIX |
FFT | MATRIX.ELEMENT/ | SOLVE.EQUATIONS |
IFFT | MATRIX.MAX | SWAP.MATRIX |
INVERTED | MATRIX.MIN | TRANSFORM.MATRIX |
IS.IDENTITY | MATRIX.SUM | TRANSPOSED |
L.INVERTED | MATRIX.VARIANCE | U.INVERTED |
LEAST.SQUARES | MATRIX+ | ZERO.MATRIX |
LU.BACKSUBSTITUTION | MT*M | |
LU.DECOMPOSITION | RANDOMIZED | |
MATRIX ROW/COL OPERATIONS
ROW/COL- | ROW/COL.FILL | ROW/COL/ |
ROW/COL* | ROW/COL.INSERTED | ROW/COL+ |
ROW/COL*+ | ROW/COL.IS.UNITY.LENGTH | ROW/COL->V |
ROW/COL.ALL= | ROW/COL.MAX | S.ROW/COL- |
ROW/COL.ANY= | ROW/COL.MIN | S.ROW/COL* |
ROW/COL.CENTERED | ROW/COL.SUM | S.ROW/COL/ |
ROW/COL.COPY | ROW/COL.SWAP | S.ROW/COL+ |
ROW/COL.DELETED | ROW/COL.TRANSFORMED | S.ROW/COL< |
ROW/COL.DOT.PRODUCT | ROW/COL.VARIANCE | S.ROW/COL> |
MEMORY
! | (EE2!) | |2!| | CHANGE.BITS | MOVE.MANY |
(!) | (EEC!) | |2@| | CLEAR.BITS | OFF |
(@) | (EEF!) | |F!| | CMOVE | ON |
(+!) | (EEX!) | |F@| | CMOVE.IN.PAGE | SET.BITS |
(+C!) | (F!) | |X!| | CMOVE.MANY | THIS.PAGE |
(2!) | (F@) | |X@| | DEFAULT.PAGE | TO |
(2@) | (MOVE) | +! | ERASE | TOGGLE.BITS |
(C!) | (PAGE.LATCH) | +C! | F! | X! |
(C@) | (SET.BITS) | 2! | F@ | X@ |
(CHANGE.BITS) | (TOGGLE.BITS) | 2@ | FILL | |
(CLEAR.BITS) | (X!) | BLANK | FILL.MANY | |
(CMOVE) | (X@) | C! | MOVE | |
(EE!) | @ | C@ | MOVE.IN.PAGE | |
MEMORY MAP
DP | S0 | USE.PAGE |
NP | UPAD | UTIB |
R0 | UPOCKET | VP |
MULTITASKING AND TIME-KEEPING
(STATUS) | INSTALL.MULTITASKER | RESOURCE.VARIABLE: |
*100US=TIMESLICE.PERIOD | KILL | SEND |
?GET | MAILBOX: | SERIAL |
?RECEIVE | MICROSEC.DELAY | SERIAL.ACCESS |
?SEND | NEXT.TASK | SET.WATCH |
ACTIVATE |