-FORTH vocabulary
+RETURN-STACK-CELLS = 48 maximum size of the return stack, in cells
+STACK-CELLS = 48 maximum size of the data stack, in cells
+/COUNTED-STRING = 255 maximum size of a counted string, in characters
+/HOLD = 34 size of the pictured numeric output string buffer, in characters
+/PAD = 84 size of the scratch area pointed to by PAD, in characters
+ADDRESS-UNIT-BITS = 16 size of one address unit, in bits
+FLOORED = true true if floored division is the default
+MAX-CHAR = 255 maximum value of any character in the implementation-defined character set
+MAX-N = 32767 largest usable signed integer
+MAX-U = 65535 largest usable unsigned integer
+MAX-D = 2147483647 largest usable signed double number
+MAX-UD = 4294967295 largest usable unsigned double number
+WoRdS aRe CaSe-InSeNsItIvE
+
+FORTH word-set
----------------
-COLD WARM WIPE RST_HERE PWR_HERE RST_STATE PWR_STATE
-MOVE LEAVE +LOOP LOOP DO REPEAT WHILE
-AGAIN UNTIL BEGIN THEN ELSE IF >BODY
-DEFER DOES> CREATE CONSTANT VARIABLE : ;
-POSTPONE RECURSE IMMEDIATE IS ['] ] [
-\ ' ABORT" ABORT QUIT EVALUATE COUNT
-LITERAL , EXECUTE >NUMBER FIND WORD ."
-S" CR TYPE SPACES SPACE NOECHO ECHO
-EMIT ACCEPT KEY C, ALLOT HERE .
-D. U. SIGN HOLD #> #S #
-UM/MOD <# STATE BASE BL J I
-UNLOOP U< > < = 0< 0=
-DABS 1- 1+ 1- 1+ - +
-C! C@ ! @ DEPTH R@ R>
->R ROT OVER SWAP NIP DROP ?DUP
-DUP LIT EXIT
-
-COLD Software reset
-
-WARM DEFERed word, by default executes ABORT" <WARM_message>"
-
-WIPE resets the program memory to its original state (Deep_RST adds same effect to COLD).
+RST_HERE PWR_HERE RST_STATE PWR_STATE CREATE ; : IMMEDIATE
+POSTPONE ] [ \ ' ['] ABORT" INTERPRET
+COUNT LITERAL ALLOT , >NUMBER FIND WORD ."
+S" . U. SIGN HOLD #> #S #
+<# ! @ CR TYPE NOECHO ECHO EMIT
+KEY ACCEPT COLD WARM WIPE
RST_HERE defines the bound of the program memory protected against COLD or hardware reset.
-
PWR_HERE defines the bound of the program memory protected against ON/OFF and also against any error occurring.
-
RST_STATE removes all words defined after RST_HERE (COLD or <reset> have same effet)
-
-PWR_STATE removes all words defined after PWR_HERE (an occurring error has same effect)
-
-MOVE https://forth-standard.org/standard/core/MOVE
-LEAVE https://forth-standard.org/standard/core/LEAVE
-+LOOP https://forth-standard.org/standard/core/PlusLOOP
-LOOP https://forth-standard.org/standard/core/LOOP
-DO https://forth-standard.org/standard/core/DO
-REPEAT https://forth-standard.org/standard/core/REPEAT
-WHILE https://forth-standard.org/standard/core/WHILE
-AGAIN https://forth-standard.org/standard/core/AGAIN
-UNTIL https://forth-standard.org/standard/core/UNTIL
-BEGIN https://forth-standard.org/standard/core/BEGIN
-THEN https://forth-standard.org/standard/core/THEN
-ELSE https://forth-standard.org/standard/core/ELSE
-IF https://forth-standard.org/standard/core/IF
+PWR_STATE removes all words defined after PWR_HERE (an error has same effect)
+INTERPRET text interpreter, common part of EVALUATE and QUIT.
+NOECHO stop display on output
+ECHO start display on output
+CREATE https://forth-standard.org/standard/core/CREATE
; https://forth-standard.org/standard/core/Semi
: https://forth-standard.org/standard/core/Colon
-DEFER https://forth-standard.org/standard/core/DEFER
-DOES> https://forth-standard.org/standard/core/DOES
-CREATE https://forth-standard.org/standard/core/CREATE
-CONSTANT https://forth-standard.org/standard/core/CONSTANT
-VARIABLE https://forth-standard.org/standard/core/VARIABLE
-POSTPONE https://forth-standard.org/standard/core/POSTPONE
-RECURSE https://forth-standard.org/standard/core/RECURSE
IMMEDIATE https://forth-standard.org/standard/core/IMMEDIATE
-IS https://forth-standard.org/standard/core/IS
-['] https://forth-standard.org/standard/core/BracketTick
+POSTPONE https://forth-standard.org/standard/core/POSTPONE
] https://forth-standard.org/standard/core/right-bracket
[ https://forth-standard.org/standard/core/Bracket
\ https://forth-standard.org/standard/block/bs
+['] https://forth-standard.org/standard/core/BracketTick
' https://forth-standard.org/standard/core/Tick
ABORT" https://forth-standard.org/standard/core/ABORTq
-ABORT https://forth-standard.org/standard/core/ABORT
-QUIT https://forth-standard.org/standard/core/QUIT
-EVALUATE https://forth-standard.org/standard/core/EVALUATE
COUNT https://forth-standard.org/standard/core/COUNT
LITERAL https://forth-standard.org/standard/core/LITERAL
+ALLOT https://forth-standard.org/standard/core/ALLOT
, https://forth-standard.org/standard/core/Comma
-EXECUTE https://forth-standard.org/standard/core/EXECUTE
>NUMBER https://forth-standard.org/standard/core/toNUMBER
FIND https://forth-standard.org/standard/core/FIND
WORD https://forth-standard.org/standard/core/WORD
." https://forth-standard.org/standard/core/Dotq
S" https://forth-standard.org/standard/core/Sq
-TYPE https://forth-standard.org/standard/core/TYPE
-SPACES https://forth-standard.org/standard/core/SPACES
-SPACE https://forth-standard.org/standard/core/SPACE
-CR DEFERed word, https://forth-standard.org/standard/core/CR
-NOECHO stop display on output
-ECHO start display on output
-EMIT DEFERed word, https://forth-standard.org/standard/core/EMIT
-ACCEPT DEFERed word, https://forth-standard.org/standard/core/ACCEPT
-KEY DEFERed word, https://forth-standard.org/standard/core/KEY
-C, https://forth-standard.org/standard/core/CComma
-ALLOT https://forth-standard.org/standard/core/ALLOT
-HERE https://forth-standard.org/standard/core/HERE
. https://forth-standard.org/standard/core/d
-D. https://forth-standard.org/standard/double/Dd
U. https://forth-standard.org/standard/core/Ud
SIGN https://forth-standard.org/standard/core/SIGN
HOLD https://forth-standard.org/standard/core/HOLD
#> https://forth-standard.org/standard/core/num-end
#S https://forth-standard.org/standard/core/numS
# https://forth-standard.org/standard/core/num
-UM/MOD https://forth-standard.org/standard/core/UMDivMOD
<# https://forth-standard.org/standard/core/num-start
-BL https://forth-standard.org/standard/core/BL
-STATE https://forth-standard.org/standard/core/STATE
-BASE https://forth-standard.org/standard/core/BASE
-J https://forth-standard.org/standard/core/J
-I https://forth-standard.org/standard/core/I
-UNLOOP https://forth-standard.org/standard/core/UNLOOP
-U< https://forth-standard.org/standard/core/Uless
-> https://forth-standard.org/standard/core/more
-< https://forth-standard.org/standard/core/less
-= https://forth-standard.org/standard/core/Equal
-0< https://forth-standard.org/standard/core/Zeroless
-0= https://forth-standard.org/standard/core/ZeroEqual
-DABS https://forth-standard.org/standard/double/DABS
-ABS https://forth-standard.org/standard/core/ABS
-NEGATE https://forth-standard.org/standard/core/NEGATE
-1- https://forth-standard.org/standard/core/OneMinus
-1+ https://forth-standard.org/standard/core/OnePlus
-- https://forth-standard.org/standard/core/Minus
-+ https://forth-standard.org/standard/core/Plus
-C! https://forth-standard.org/standard/core/CStore
-C@ https://forth-standard.org/standard/core/CFetch
! https://forth-standard.org/standard/core/Store
@ https://forth-standard.org/standard/core/Fetch
-DEPTH https://forth-standard.org/standard/core/DEPTH
-R@ https://forth-standard.org/standard/core/RFetch
-R> https://forth-standard.org/standard/core/Rfrom
->R https://forth-standard.org/standard/core/toR
-ROT https://forth-standard.org/standard/core/ROT
-OVER https://forth-standard.org/standard/core/OVER
-SWAP https://forth-standard.org/standard/core/SWAP
-NIP https://forth-standard.org/standard/core/NIP
-DROP https://forth-standard.org/standard/core/DROP
-?DUP https://forth-standard.org/standard/core/qDUP
-DUP https://forth-standard.org/standard/core/DUP
-LIT execution part of LITERAL
-EXIT https://forth-standard.org/standard/core/EXIT
+CR DEFERed word, https://forth-standard.org/standard/core/CR
+TYPE https://forth-standard.org/standard/core/TYPE
+EMIT DEFERed word, https://forth-standard.org/standard/core/EMIT
+KEY DEFERed word, https://forth-standard.org/standard/core/KEY
+ACCEPT DEFERed word, https://forth-standard.org/standard/core/ACCEPT
+COLD PFA of COLD content = STOP_APP subroutine address, by default --> STOP_TERM
+WARM PFA of WARM content = INI_APP subroutine address, by default --> ENABLE_IO
+WIPE resets the program memory to its original state (Deep_RST have same effect).
+
+words added by the option MSP430ASSEMBLER:
+
+ASM CODE HI2LO
+CODE <word> creates a word written in assembler.
+ this defined <word> must be ended with ENDCODE unless COLON or LO2HI use.
+ASM <word> creates a word written in assembler but not interpretable by FORTH (because ended by RET instr.).
+ this defined <word> must be ended with ENDASM. Visible only from assembler
+HI2LO used to switch compilation from high level (FORTH) to low level (assembler).
-ASSEMBLER vocabulary
+Other words are useable via the preprocessor GEMA and they address is in \inc\device.pat file :
+
+SLEEP CODE_WITHOUT_RETURN: CPU shutdown
+LIT CODE compiled by LITERAL
+XSQUOTE CODE compiled by S" and S_
+HEREXEC CODE HERE and BEGIN execute address
+QFBRAN CODE compiled by IF UNTIL
+BRAN CODE compiled by ELSE REPEAT AGAIN
+NEXT_ADR CODE NEXT instruction (MOV @IP+,PC)
+XDO CODE compiled by DO
+XPLOOP CODE compiled by +LOOP
+XLOOP CODE compiled by LOOP
+MUSMOD ASM 32/16 unsigned division, used by ?NUMBER, UM/MOD
+MDIV1DIV2 ASM input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
+MDIV1 ASM input for 48/16 unsigned division, see DOUBLE M*/
+RET_ADR ASM content of INI_FORTH_PFA and MARKER+8 definitions,
+SETIB CODE Set Input Buffer with org & len values, reset >IN pointer
+REFILL CODE accept one line from input and leave org len of input buffer
+CIB_ADR [CIB_ADR] = TIB_ORG by default; may be redirected to SDIB_ORG
+XDODOES restore rDODOES: MOV #XDODOES,rDODOES
+XDOCON restore rDOCON: MOV #XDOCON,rDOCON
+XDOVAR restore rDOVAR: MOV #XDOVAR,rDOVAR
+!to find DTC value, download \MSP430-FORTH\FF_SPECS.4th
+!XDOCOL if DTC = 1, restore rDOCOL as this: MOV #TYPE+-16,rDOCOL
+!XDOCOL if DTC = 2, restore rDOCOL as this: MOV ##S+16,rDOCOL
+! if DTC = 3, nothing to do, R7 is free for use.
+INI_FORTH CODE_WITHOUT_RETURN common part of RST and QABORT, starts FORTH engine
+QABORT CODE_WITHOUT_RETURN run-time part of ABORT"
+3DROP CODE
+ABORT_TERM CODE_WITHOUT_RETURN called by QREVEAL and INTERPRET
+!-------------------------------------------------------------------------------
+UART_COLD_TERM ASM, content of COLD_PFA by default
+UART_INIT_TERM ASM, content of WARM_PFA by default
+UART_RXON ASM, content of SLEEP_PFA by default
+UART_RXOFF ASM, called by ACCEPT before RX char LF.
+!-------------------------------------------------------------------------------
+I2C_COLD_TERM ASM, content of COLD_PFA by default
+I2C_INIT_TERM ASM, content of WARM_PFA by default
+I2C_RXON ASM, content of SLEEP_PFA by default
+I2C_CTRL_CH ASM, used as is: MOV.B #CTRL_CHAR,Y
+! CALL #I2C_CTRL_CH
+!-------------------------------------------------------------------------------
+
+MSP430ASSEMBLER word-set
--------------------
?GOTO GOTO FW3 FW2 FW1 BW3 BW2
-BW1 ?JMP JMP REPEAT WHILE AGAIN UNTIL
-ELSE THEN IF 0= 0<> U>= U<
-0< 0>= S< S>= RRUM RLAM RRAM
-RRCM POPM PUSHM CALL PUSH.B PUSH SXT
-RRA.B RRA SWPB RRC.B RRC AND.B AND
-XOR.B XOR BIS.B BIS BIC.B BIC BIT.B
-BIT DADD.B DADD CMP.B CMP SUB.B SUB
-SUBC.B SUBC ADDC.B ADDC ADD.B ADD MOV.B
-MOV RETI LO2HI COLON ENDASM ENDCODE SLEEP
-
-ASM CODE HI2LO (added in forth vocabulary)
+BW1 REPEAT WHILE AGAIN UNTIL ELSE THEN
+IF 0= 0<> U>= U< 0< 0>=
+S< S>= RRUM RLAM RRAM RRCM POPM
+PUSHM CALL PUSH.B PUSH SXT RRA.B RRA
+SWPB RRC.B RRC AND.B AND XOR.B XOR
+BIS.B BIS BIC.B BIC BIT.B BIT DADD.B
+DADD CMP.B CMP SUB.B SUB SUBC.B SUBC
+ADDC.B ADDC ADD.B ADD MOV.B MOV RETI
+LO2HI COLON ENDASM ENDCODE
see: http://www.ece.utep.edu/courses/web3376/Notes_files/ee3376-isa.pdf
readme.md for symbolic alias of registers, symbolic jumps (IF ELSE THEN...),..
?GOTO used after a conditionnal (0=,0<>,U>=,U<,0<,S<,S>=) to branch to a label FWx or BWx
GOTO used as unconditionnal branch to a label FWx or BWx
-
-BW3 BACKWARD branch destination n°3
-BW2 n°2
-BW1 N°1
-
-FW3 FORWARD branch destination n°3
-FW2 n°2
-FW1 n°1
-
-?JMP used after a conditionnal (0=,0<>,U>=,U<,0<,S<,S>=) to jump to a predefined word
-JMP unconditionnal jump to a predefined word
-
+BW3 BACKWARD branch destination n°3
+BW2 n°2
+BW1 n°1
+FW3 FORWARD branch destination n°3
+FW2 n°2
+FW1 n°1
REPEAT assembler version of the FORTH word REPEAT
WHILE idem
AGAIN idem
ELSE idem
THEN idem
IF idem
-
0= conditionnal
0<> conditionnal
U>= conditionnal
U< conditionnal
-0< conditionnal, to use only with ?JMP ?GOTO
+0< conditionnal, to use only with ?GOTO
0>= conditionnal, to use only with IF UNTIL WHILE
S< conditionnal
S>= conditionnal
-
LO2HI switches compilation between low level and high level modes without saving IP register.
COLON pushes IP then performs LO2HI, used as: CODE <word> ... assembler instr ... COLON ... FORTH words ... ;
ENDASM to end an ASM definition.
ENDCODE to end a CODE definition.
-SLEEP DEFERed word which enables to create a background task, default SLEEP definition: MOV #GIE+LPM0,SR
-
-next assembler words are set in FORTH vocabulary:
-
-CODE <word> creates a word written in assembler.
- this defined <word> must be ended with ENDCODE unless COLON or LO2HI use.
-
-ASM <word> creates a word written in assembler but not interpretable by FORTH (because ended by RET instr.).
- this defined <word> must be ended with ENDASM.
- This word will be recognized only in assembler mode.
-
-HI2LO used to switch compilation from high level (FORTH) to low level (assembler).
-
-
-ASSEMBLER WORDS set:
-
-RRUM http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=218
-RLAM http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=208
-RRAM http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=211
-RRCM http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=214
-POPM http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=204
-PUSHM http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=205
-
-CALL http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=142
-PUSH.B PUSH http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=168
-SXT http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=182
-RRA.B RRA http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=173
-SWPB http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=181
-RRC.B RRC http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=174
-AND.B AND http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=137
-XOR.B XOR http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=184
-BIS.B BIS http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=139
-BIC.B BIC http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=138
-BIT.B BIT http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=140
-DADD.B DADD http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=149
-CMP.B CMP http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=147
-SUB.B SUB http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=179
-SUBC.B SUBC http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=180
-ADDC.B ADDC http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=136
-ADD.B ADD http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=135
-MOV.B MOV http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=165
-RETI http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=170
+ADD http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=135
+ADDC http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=136
+AND http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=137
+BIC http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=138
+BIS http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=139
+BIT http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=140
+CALL http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=142
+CMP http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=147
+DADD http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=149
+MOV http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=165
+PUSH http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=168
+RETI http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=170
+RRA http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=173
+RRC http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=174
+SUB http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=179
+SUBC http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=180
+SWPB http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=181
+SXT http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=182
+XOR http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=184
+
+RRUM http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=218
+RLAM http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=208
+RRAM http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=211
+RRCM http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=214
+POPM http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=204
+PUSHM http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=205
+
+EXTENDED_MEM WORDS set:
+
+POPM.A http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=204
+PUSHM.A http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=205
+ADDA http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=229
+CALLA http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=232
+CMPA http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=235
+MOVA http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=238
+SUBA http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=241
+
+EXTENDED_ASM WORDS set:
+
+ADDX http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=187
+ADDCX http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=188
+ANDX http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=189
+BICX http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=190
+BISX http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=191
+BITX http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=192
+CMPX http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=194
+DADDX http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=196
+MOVX http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=202
+PUSHX http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=207
+RRAX http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=212
+RRCX http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=216
+RRUX http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=219
+SUBX http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=221
+SUBCX http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=222
+SWPBX http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=223
+SXTX http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=225
+XORX http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=227
+
+RPT http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=219
CONDCOMP ADD-ON
---------------
-MARKER [DEFINED] [UNDEFINED] [IF] [ELSE] [THEN] COMPARE
+MARKER [DEFINED] [UNDEFINED] [IF] [ELSE] [THEN]
+MARKER https://forth-standard.org/standard/core/MARKER
[DEFINED] https://forth-standard.org/standard/tools/BracketDEFINED
[UNDEFINED] https://forth-standard.org/standard/tools/BracketUNDEFINED
[IF] https://forth-standard.org/standard/tools/BracketIF
[ELSE] https://forth-standard.org/standard/tools/BracketELSE
[THEN] https://forth-standard.org/standard/tools/BracketTHEN
-COMPARE https://forth-standard.org/standard/string/COMPARE
-MARKER https://forth-standard.org/standard/core/MARKER
VOCABULARY ADD-ON
NONAME ADD-ON
----------------------
-:NONAME CODENNM
+-------------
+CODENNM IS DEFER :NONAME
:NONAME https://forth-standard.org/standard/core/ColonNONAME
CODENNM assembly counterpart of :NONAME
+DEFER https://forth-standard.org/standard/core/DEFER
+IS https://forth-standard.org/standard/core/IS
SD_CARD_LOADER ADD-ON
---------------------
-LOAD" CIB
+LOAD"
-LOAD" LOAD" SD_TEST.4TH" loads and compile source file SD_TEST.4TH.
-CIB Currrent Input Buffer, TIB by default.
+LOAD" LOAD" SD_TEST.4TH" loads source file SD_TEST.4TH from SD_Card and compile it.
ACCEPT becomes a DEFERed word
ANS_COMPLEMENT ADD-ON
---------------------
-PAD SOURCE .( ( DECIMAL HEX
-FILL [CHAR] CHAR +! MIN MAX 2/
-2* RSHIFT LSHIFT XOR OR AND INVERT
-2OVER 2SWAP 2DROP 2DUP 2! 2@ S>D
-CELL+ CELLS CHAR+ CHARS ALIGN ALIGNED */
-*/MOD MOD / /MOD * FM/MOD SM/REM
-M* UM* {ANS_COMP}
-
+VALUE TO SPACES SPACE BL PAD >IN
+BASE STATE CONSTANT VARIABLE SOURCE RECURSE EVALUATE
+EXECUTE >BODY .( ( DECIMAL HEX HERE
+FILL MOVE +! [CHAR] CHAR CELL+ CELLS
+CHAR+ CHARS ALIGN ALIGNED 2OVER 2SWAP 2DROP
+2DUP 2! 2@ R@ ROT OVER */
+*/MOD MOD / /MOD * FM/MOD ABS
+NEGATE SM/REM UM/MOD M* UM* 2/ 2*
+MIN MAX RSHIFT LSHIFT INVERT 1- 1+
+S>D XOR OR AND LEAVE UNLOOP J
+I +LOOP LOOP DO REPEAT WHILE AGAIN
+UNTIL ELSE THEN IF > < U<
+= 0< 0= C, C! C@ R>
+>R NIP DROP SWAP DEPTH EXIT ?DUP
+DUP - + DOES> BEGIN {CORE_COMP}
+
+VALUE https://forth-standard.org/standard/core/VALUE
+TO https://forth-standard.org/standard/core/TO
+BEGIN https://forth-standard.org/standard/core/BEGIN
+DOES> https://forth-standard.org/standard/core/DOES
+SPACES https://forth-standard.org/standard/core/SPACES
+SPACE https://forth-standard.org/standard/core/SPACE
+BL https://forth-standard.org/standard/core/BL
PAD https://forth-standard.org/standard/core/PAD
>IN https://forth-standard.org/standard/core/toIN
->BODY https://forth-standard.org/standard/core/toBODY
+BASE https://forth-standard.org/standard/core/BASE
+STATE https://forth-standard.org/standard/core/STATE
+CONSTANT https://forth-standard.org/standard/core/CONSTANT
+VARIABLE https://forth-standard.org/standard/core/VARIABLE
SOURCE https://forth-standard.org/standard/core/SOURCE
+RECURSE https://forth-standard.org/standard/core/RECURSE
+EVALUATE https://forth-standard.org/standard/core/EVALUATE
+EXECUTE https://forth-standard.org/standard/core/EXECUTE
+>BODY https://forth-standard.org/standard/core/toBODY
.( https://forth-standard.org/standard/core/Dotp
( https://forth-standard.org/standard/core/p
DECIMAL https://forth-standard.org/standard/core/DECIMAL
HEX https://forth-standard.org/standard/core/HEX
+HERE https://forth-standard.org/standard/core/HERE
FILL https://forth-standard.org/standard/core/FILL
+MOVE https://forth-standard.org/standard/core/MOVE
++! https://forth-standard.org/standard/core/PlusStore
[CHAR] https://forth-standard.org/standard/core/BracketCHAR
CHAR https://forth-standard.org/standard/core/CHAR
-+! https://forth-standard.org/standard/core/PlusStore
-2/ https://forth-standard.org/standard/core/TwoDiv
-2* https://forth-standard.org/standard/core/TwoTimes
-MIN https://forth-standard.org/standard/core/MIN
-MAX https://forth-standard.org/standard/core/MAX
-RSHIFT https://forth-standard.org/standard/core/RSHIFT
-LSHIFT https://forth-standard.org/standard/core/LSHIFT
-INVERT https://forth-standard.org/standard/core/INVERT
-XOR https://forth-standard.org/standard/core/XOR
-OR https://forth-standard.org/standard/core/OR
-AND https://forth-standard.org/standard/core/AND
-2OVER https://forth-standard.org/standard/core/TwoOVER
-2SWAP https://forth-standard.org/standard/core/TwoSWAP
-2DROP https://forth-standard.org/standard/core/TwoDROP
-2DUP https://forth-standard.org/standard/core/TwoDUP
-2! https://forth-standard.org/standard/core/TwoStore
-2@ https://forth-standard.org/standard/core/TwoFetch
-S>D https://forth-standard.org/standard/core/StoD
CELL+ https://forth-standard.org/standard/core/CELLPlus
CELLS https://forth-standard.org/standard/core/CELLS
CHAR+ https://forth-standard.org/standard/core/CHARPlus
CHARS https://forth-standard.org/standard/core/CHARS
ALIGN https://forth-standard.org/standard/core/ALIGN
ALIGNED https://forth-standard.org/standard/core/ALIGNED
+2OVER https://forth-standard.org/standard/core/TwoOVER
+2SWAP https://forth-standard.org/standard/core/TwoSWAP
+2DROP https://forth-standard.org/standard/core/TwoDROP
+2DUP https://forth-standard.org/standard/core/TwoDUP
+2! https://forth-standard.org/standard/core/TwoStore
+2@ https://forth-standard.org/standard/core/TwoFetch
+R@ https://forth-standard.org/standard/core/RFetch
+ROT https://forth-standard.org/standard/core/ROT
+OVER https://forth-standard.org/standard/core/OVER
*/ https://forth-standard.org/standard/core/TimesDiv
*/MOD https://forth-standard.org/standard/core/TimesDivMOD
MOD https://forth-standard.org/standard/core/MOD
/MOD https://forth-standard.org/standard/core/DivMOD
* https://forth-standard.org/standard/core/Times
FM/MOD https://forth-standard.org/standard/core/FMDivMOD
+ABS https://forth-standard.org/standard/core/ABS
+NEGATE https://forth-standard.org/standard/core/NEGATE
SM/REM https://forth-standard.org/standard/core/SMDivREM
+UM/MOD https://forth-standard.org/standard/core/UMDivMOD
M* https://forth-standard.org/standard/core/MTimes
UM* https://forth-standard.org/standard/core/UMTimes
-{ANS_COMP}
+2/ https://forth-standard.org/standard/core/TwoDiv
+2* https://forth-standard.org/standard/core/TwoTimes
+MIN https://forth-standard.org/standard/core/MIN
+MAX https://forth-standard.org/standard/core/MAX
+RSHIFT https://forth-standard.org/standard/core/RSHIFT
+LSHIFT https://forth-standard.org/standard/core/LSHIFT
+INVERT https://forth-standard.org/standard/core/INVERT
+1- https://forth-standard.org/standard/core/OneMinus
+1+ https://forth-standard.org/standard/core/OnePlus
+S>D https://forth-standard.org/standard/core/StoD
+XOR https://forth-standard.org/standard/core/XOR
+OR https://forth-standard.org/standard/core/OR
+AND https://forth-standard.org/standard/core/AND
+LEAVE https://forth-standard.org/standard/core/LEAVE
+UNLOOP https://forth-standard.org/standard/core/UNLOOP
+J https://forth-standard.org/standard/core/J
+I https://forth-standard.org/standard/core/I
++LOOP https://forth-standard.org/standard/core/PlusLOOP
+LOOP https://forth-standard.org/standard/core/LOOP
+DO https://forth-standard.org/standard/core/DO
+REPEAT https://forth-standard.org/standard/core/REPEAT
+WHILE https://forth-standard.org/standard/core/WHILE
+AGAIN https://forth-standard.org/standard/core/AGAIN
+UNTIL https://forth-standard.org/standard/core/UNTIL
+THEN https://forth-standard.org/standard/core/THEN
+ELSE https://forth-standard.org/standard/core/ELSE
+IF https://forth-standard.org/standard/core/IF
+> https://forth-standard.org/standard/core/more
+< https://forth-standard.org/standard/core/less
+U< https://forth-standard.org/standard/core/Uless
+= https://forth-standard.org/standard/core/Equal
+0< https://forth-standard.org/standard/core/Zeroless
+0= https://forth-standard.org/standard/core/ZeroEqual
+C, https://forth-standard.org/standard/core/CComma
+C! https://forth-standard.org/standard/core/CStore
+C@ https://forth-standard.org/standard/core/CFetch
+R> https://forth-standard.org/standard/core/Rfrom
+>R https://forth-standard.org/standard/core/toR
+NIP https://forth-standard.org/standard/core/NIP
+DROP https://forth-standard.org/standard/core/DROP
+SWAP https://forth-standard.org/standard/core/SWAP
+DEPTH https://forth-standard.org/standard/core/DEPTH
+EXIT https://forth-standard.org/standard/core/EXIT
+?DUP https://forth-standard.org/standard/core/qDUP
+DUP https://forth-standard.org/standard/core/DUP
+- https://forth-standard.org/standard/core/Minus
++ https://forth-standard.org/standard/core/Plus
+{CORE_COMP}
-FIXPOINT ADD-ON
+DOUBLE word set
---------------
+D.R 2LITERAL 2VALUE 2CONSTANT 2VARIABLE M*/ DMIN
+DMAX D2* D2/ DABS DNEGATE D- M+
+D+ DU< D< D= D0< D0= D>S
+2ROT D. 2R> 2R@ 2>R {DOUBLE}
-2CONSTANT S>F F. F* F#S
-F/ F- F+ HOLDS {FIXPOINT}
+D.R https://forth-standard.org/standard/double/DDotR
+2LITERAL https://forth-standard.org/standard/double/TwoLITERAL
+2VALUE https://forth-standard.org/standard/double/TwoVALUE
2CONSTANT https://forth-standard.org/standard/double/TwoCONSTANT
+2VARIABLE https://forth-standard.org/standard/double/TwoVARIABLE
+M*/ https://forth-standard.org/standard/double/MTimesDiv
+DMIN https://forth-standard.org/standard/double/DMIN
+DMAX https://forth-standard.org/standard/double/DMAX
+D2* https://forth-standard.org/standard/double/DTwoTimes
+D2/ https://forth-standard.org/standard/double/DTwoDiv
+DABS https://forth-standard.org/standard/double/DABS
+DNEGATE https://forth-standard.org/standard/double/DNEGATE
+D- https://forth-standard.org/standard/double/DMinus
+M+ https://forth-standard.org/standard/double/MPlus
+D+ https://forth-standard.org/standard/double/DPlus
+DU< https://forth-standard.org/standard/double/DUless
+D< https://forth-standard.org/standard/double/Dless
+D= https://forth-standard.org/standard/double/DEqual
+D0< https://forth-standard.org/standard/double/DZeroless
+D0= https://forth-standard.org/standard/double/DZeroEqual
+D>S https://forth-standard.org/standard/double/DtoS
+2ROT https://forth-standard.org/standard/double/TwoROT
+D. https://forth-standard.org/standard/double/Dd
+2R> https://forth-standard.org/standard/core/TwoRfrom
+2R@ https://forth-standard.org/standard/core/TwoRFetch
+2>R https://forth-standard.org/standard/core/TwotoR
+{DOUBLE} if you type {DOUBLE}, it and all subsequent words are removed
+
+
+FIXPOINT ADD-ON
+---------------
+
+S>F F. F* F#S F/ F- F+
+HOLDS {FIXPOINT}
+
S>F u/n -- Qlo Qhi convert u/n in a s15.16 value
F. display a s15.16 value
F* s15.16 multiplication
F- s15.16 soustraction
F+ s15.16 addition
HOLDS https://forth-standard.org/standard/core/HOLDS
-{FIXPOINT} do nothing if compiled in core, else remove all FIXPOINT add-on.
+{FIXPOINT} do nothing if compiled in core, else it and all subsequent loaded words are removed
UTILITY ADD-ON
--------------
FAT dump first sector of FAT1
CLUSTER .123 CLUSTER displays first sector of cluster 123
SECTOR .123456789 SECTOR displays sector 123456789
-{SD_TOOLS} if you type {SD_TOOLS} all subsequent loaded words are removed
+{SD_TOOLS} if you type {SD_TOOLS}, it and all subsequent words are removed