OSDN Git Service

Merge branch 'master' of https://framagit.org/Jean-Mi/FAST-FORTH
[fast-forth/master.git] / FastForthWords.txt
1
2 RETURN-STACK-CELLS  = 48            maximum size of the return stack, in cells
3 STACK-CELLS         = 48            maximum size of the data stack, in cells
4 /COUNTED-STRING     = 255           maximum size of a counted string, in characters
5 /HOLD               = 34            size of the pictured numeric output string buffer, in characters
6 /PAD                = 84            size of the scratch area pointed to by PAD, in characters
7 ADDRESS-UNIT-BITS   = 16            size of one address unit, in bits
8 FLOORED             = true          true if floored division is the default
9 MAX-CHAR                = 255           maximum value of any character in the implementation-defined character set
10 MAX-N               = 32767         largest usable signed integer
11 MAX-U               = 65535         largest usable unsigned integer
12 MAX-D               = 2147483647    largest usable signed double number
13 MAX-UD              = 4294967295    largest usable unsigned double number
14 WoRdS aRe CaSe-InSeNsItIvE
15
16 FORTH word-set
17 ----------------
18 RST_HERE        PWR_HERE        RST_STATE       PWR_STATE       CREATE          ;               :               IMMEDIATE       
19 POSTPONE        ]               [               \               '               [']             ABORT"          INTERPRET       
20 COUNT           LITERAL         ALLOT           ,               >NUMBER         FIND            WORD            ."              
21 S"              .               U.              SIGN            HOLD            #>              #S              #               
22 <#              !               @               CR              TYPE            NOECHO          ECHO            EMIT            
23 KEY             ACCEPT          COLD            WARM            WIPE            
24
25 RST_HERE        defines the bound of the program memory protected against COLD or hardware reset.
26 PWR_HERE        defines the bound of the program memory protected against ON/OFF and also against any error occurring.
27 RST_STATE       removes all words defined after RST_HERE (COLD or <reset> have same effet)
28 PWR_STATE       removes all words defined after PWR_HERE (an error has same effect)
29 INTERPRET       text interpreter, common part of EVALUATE and QUIT.
30 NOECHO          stop display on output 
31 ECHO            start display on output
32 CREATE          https://forth-standard.org/standard/core/CREATE
33 ;               https://forth-standard.org/standard/core/Semi
34 :               https://forth-standard.org/standard/core/Colon
35 IMMEDIATE       https://forth-standard.org/standard/core/IMMEDIATE
36 POSTPONE        https://forth-standard.org/standard/core/POSTPONE
37 ]               https://forth-standard.org/standard/core/right-bracket
38 [               https://forth-standard.org/standard/core/Bracket
39 \               https://forth-standard.org/standard/block/bs
40 [']             https://forth-standard.org/standard/core/BracketTick
41 '               https://forth-standard.org/standard/core/Tick
42 ABORT"          https://forth-standard.org/standard/core/ABORTq
43 COUNT           https://forth-standard.org/standard/core/COUNT
44 LITERAL         https://forth-standard.org/standard/core/LITERAL
45 ALLOT           https://forth-standard.org/standard/core/ALLOT
46 ,               https://forth-standard.org/standard/core/Comma
47 >NUMBER         https://forth-standard.org/standard/core/toNUMBER
48 FIND            https://forth-standard.org/standard/core/FIND
49 WORD            https://forth-standard.org/standard/core/WORD
50 ."              https://forth-standard.org/standard/core/Dotq
51 S"              https://forth-standard.org/standard/core/Sq
52 .               https://forth-standard.org/standard/core/d
53 U.              https://forth-standard.org/standard/core/Ud
54 SIGN            https://forth-standard.org/standard/core/SIGN
55 HOLD            https://forth-standard.org/standard/core/HOLD
56 #>              https://forth-standard.org/standard/core/num-end
57 #S              https://forth-standard.org/standard/core/numS
58 #               https://forth-standard.org/standard/core/num
59 <#              https://forth-standard.org/standard/core/num-start
60 !               https://forth-standard.org/standard/core/Store
61 @               https://forth-standard.org/standard/core/Fetch
62 CR              DEFERed word, https://forth-standard.org/standard/core/CR
63 TYPE            https://forth-standard.org/standard/core/TYPE
64 EMIT            DEFERed word, https://forth-standard.org/standard/core/EMIT
65 KEY             DEFERed word, https://forth-standard.org/standard/core/KEY
66 ACCEPT          DEFERed word, https://forth-standard.org/standard/core/ACCEPT
67 COLD            PFA of COLD content = STOP_APP subroutine address, by default --> STOP_TERM
68 WARM            PFA of WARM content = INI_APP subroutine address, by default --> ENABLE_IO
69 WIPE            resets the program memory to its original state (Deep_RST have same effect).
70
71 words added by the option MSP430ASSEMBLER:
72
73 ASM             CODE            HI2LO
74
75 CODE <word>     creates a word written in assembler. 
76                 this defined <word> must be ended with ENDCODE unless COLON or LO2HI use.
77 ASM <word>      creates a word written in assembler but not interpretable by FORTH (because ended by RET instr.).
78                 this defined <word> must be ended with ENDASM. Visible only from assembler
79 HI2LO           used to switch compilation from high level (FORTH) to low level (assembler).
80
81 Other words are useable via the preprocessor GEMA and they address is in \inc\device.pat file :
82
83 SLEEP               CODE_WITHOUT_RETURN: CPU shutdown
84 LIT                 CODE compiled by LITERAL
85 XSQUOTE             CODE compiled by S" and S_
86 HEREXEC             CODE HERE and BEGIN execute address
87 QFBRAN              CODE compiled by IF UNTIL
88 BRAN                CODE compiled by ELSE REPEAT AGAIN
89 NEXT_ADR            CODE NEXT instruction (MOV @IP+,PC)
90 XDO                 CODE compiled by DO
91 XPLOOP              CODE compiled by +LOOP
92 XLOOP               CODE compiled by LOOP
93 MUSMOD              ASM 32/16 unsigned division, used by ?NUMBER, UM/MOD
94 MDIV1DIV2           ASM input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
95 MDIV1               ASM input for 48/16 unsigned division, see DOUBLE M*/
96 RET_ADR             ASM content of INI_FORTH_PFA and MARKER+8 definitions,
97 SETIB               CODE Set Input Buffer with org & len values, reset >IN pointer
98 REFILL              CODE accept one line from input and leave org len of input buffer
99 CIB_ADR             [CIB_ADR] = TIB_ORG by default; may be redirected to SDIB_ORG
100 XDODOES             restore rDODOES: MOV #XDODOES,rDODOES
101 XDOCON              restore rDOCON: MOV #XDOCON,rDOCON
102 XDOVAR              restore rDOVAR: MOV #XDOVAR,rDOVAR
103 !to find DTC value, download \MSP430-FORTH\FF_SPECS.4th
104 !XDOCOL             if DTC = 1, restore rDOCOL as this: MOV #TYPE+-16,rDOCOL
105 !XDOCOL             if DTC = 2, restore rDOCOL as this: MOV ##S+16,rDOCOL
106 !                   if DTC = 3, nothing to do, R7 is free for use.
107 INI_FORTH           CODE_WITHOUT_RETURN common part of RST and QABORT, starts FORTH engine
108 QABORT              CODE_WITHOUT_RETURN run-time part of ABORT"
109 3DROP               CODE 
110 ABORT_TERM          CODE_WITHOUT_RETURN called by QREVEAL and INTERPRET   
111 !-------------------------------------------------------------------------------
112 UART_COLD_TERM      ASM, content of COLD_PFA by default
113 UART_INIT_TERM      ASM, content of WARM_PFA by default
114 UART_RXON           ASM, content of SLEEP_PFA by default
115 UART_RXOFF          ASM, called by ACCEPT before RX char LF.
116 !-------------------------------------------------------------------------------
117 I2C_COLD_TERM       ASM, content of COLD_PFA by default
118 I2C_INIT_TERM       ASM, content of WARM_PFA by default
119 I2C_RXON            ASM, content of SLEEP_PFA by default
120 I2C_CTRL_CH         ASM, used as is: MOV.B #CTRL_CHAR,Y
121 !                                    CALL #I2C_CTRL_CH
122 !-------------------------------------------------------------------------------
123
124 MSP430ASSEMBLER word-set
125 --------------------
126
127 ?GOTO           GOTO            FW3             FW2             FW1             BW3             BW2             
128 BW1             REPEAT          WHILE           AGAIN           UNTIL           ELSE            THEN            
129 IF              0=              0<>             U>=             U<              0<              0>=             
130 S<              S>=             RRUM            RLAM            RRAM            RRCM            POPM            
131 PUSHM           CALL            PUSH.B          PUSH            SXT             RRA.B           RRA             
132 SWPB            RRC.B           RRC             AND.B           AND             XOR.B           XOR             
133 BIS.B           BIS             BIC.B           BIC             BIT.B           BIT             DADD.B          
134 DADD            CMP.B           CMP             SUB.B           SUB             SUBC.B          SUBC            
135 ADDC.B          ADDC            ADD.B           ADD             MOV.B           MOV             RETI            
136 LO2HI           COLON           ENDASM          ENDCODE
137
138 see: http://www.ece.utep.edu/courses/web3376/Notes_files/ee3376-isa.pdf
139      readme.md for symbolic alias of registers, symbolic jumps (IF ELSE THEN...),..
140
141 ?GOTO           used after a conditionnal (0=,0<>,U>=,U<,0<,S<,S>=) to branch to a label FWx or BWx
142 GOTO            used as unconditionnal branch to a label FWx or BWx
143 BW3             BACKWARD branch destination n°3
144 BW2                                         n°2
145 BW1                                         n°1
146 FW3             FORWARD branch destination  n°3
147 FW2                                         n°2
148 FW1                                         n°1
149 REPEAT          assembler version of the FORTH word REPEAT
150 WHILE           idem
151 AGAIN           idem
152 UNTIL           idem
153 ELSE            idem
154 THEN            idem
155 IF              idem
156 0=              conditionnal     
157 0<>             conditionnal
158 U>=             conditionnal
159 U<              conditionnal
160 0<              conditionnal, to use only with ?GOTO
161 0>=             conditionnal, to use only with IF UNTIL WHILE
162 S<              conditionnal
163 S>=             conditionnal
164 LO2HI           switches compilation between low level and high level modes without saving IP register.
165 COLON           pushes IP then performs LO2HI, used as: CODE <word> ... assembler instr ... COLON ... FORTH words ... ;
166 ENDASM          to end an ASM definition.
167 ENDCODE         to end a CODE definition.
168
169 ADD     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=135
170 ADDC    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=136
171 AND     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=137
172 BIC     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=138
173 BIS     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=139
174 BIT     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=140
175 CALL    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=142
176 CMP     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=147
177 DADD    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=149
178 MOV     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=165
179 PUSH    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=168
180 RETI    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=170
181 RRA     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=173
182 RRC     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=174
183 SUB     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=179
184 SUBC    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=180
185 SWPB    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=181
186 SXT     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=182
187 XOR     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=184
188
189 RRUM    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=218
190 RLAM    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=208
191 RRAM    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=211
192 RRCM    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=214
193 POPM    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=204
194 PUSHM   http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=205
195
196 EXTENDED_MEM WORDS set:
197
198 POPM.A  http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=204
199 PUSHM.A http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=205
200 ADDA    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=229
201 CALLA   http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=232
202 CMPA    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=235
203 MOVA    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=238
204 SUBA    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=241
205
206 EXTENDED_ASM WORDS set:
207
208 ADDX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=187
209 ADDCX   http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=188
210 ANDX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=189
211 BICX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=190
212 BISX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=191
213 BITX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=192
214 CMPX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=194
215 DADDX   http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=196
216 MOVX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=202
217 PUSHX   http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=207
218 RRAX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=212
219 RRCX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=216
220 RRUX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=219
221 SUBX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=221
222 SUBCX   http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=222
223 SWPBX   http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=223
224 SXTX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=225
225 XORX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=227
226
227 RPT     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=219
228
229 CONDCOMP ADD-ON
230 ---------------
231 MARKER          [DEFINED]       [UNDEFINED]     [IF]            [ELSE]          [THEN]        
232
233 MARKER          https://forth-standard.org/standard/core/MARKER
234 [DEFINED]       https://forth-standard.org/standard/tools/BracketDEFINED
235 [UNDEFINED]     https://forth-standard.org/standard/tools/BracketUNDEFINED
236 [IF]            https://forth-standard.org/standard/tools/BracketIF
237 [ELSE]          https://forth-standard.org/standard/tools/BracketELSE
238 [THEN]          https://forth-standard.org/standard/tools/BracketTHEN
239
240
241 VOCABULARY ADD-ON
242 -----------------
243 DEFINITIONS     ONLY            PREVIOUS        ALSO            ASSEMBLER       FORTH           VOCABULARY
244
245 DEFINITIONS     https://forth-standard.org/standard/search/DEFINITIONS
246 ONLY            https://forth-standard.org/standard/search/ONLY
247 PREVIOUS        https://forth-standard.org/standard/search/PREVIOUS
248 ALSO            https://forth-standard.org/standard/search/ALSO
249 ASSEMBLER       assembler VOCABULARY
250 FORTH           FORTH VOCABULARY
251 VOCABULARY <word>     creates a new VOCABULARY named word
252
253
254 NONAME ADD-ON
255 -------------
256 CODENNM         IS              DEFER           :NONAME         
257
258 :NONAME         https://forth-standard.org/standard/core/ColonNONAME 
259 CODENNM         assembly counterpart of :NONAME
260 DEFER           https://forth-standard.org/standard/core/DEFER
261 IS              https://forth-standard.org/standard/core/IS
262
263
264 SD_CARD_LOADER ADD-ON
265 ---------------------
266 LOAD"
267
268 LOAD"           LOAD" SD_TEST.4TH" loads source file SD_TEST.4TH from SD_Card and compile it.
269
270 ACCEPT becomes a DEFERed word
271
272
273 SD_CARD_READ_WRITE ADD-ON
274 -------------------------
275 TERM2SD"        SD_EMIT         WRITE           READ            CLOSE           DEL"            WRITE"          
276 READ"
277
278 TERM2SD"        TERM2SD" SD_TEST.4TH" copy input file to SD_CARD (use CopySourceFileToTarget_SD_Card.bat to do)
279 SD_EMIT         sends output stream at the end of last opened as write file.
280 WRITE           write sequentially BUFFER content to a sector
281 READ            read sequentially a sector to BUFFER
282 CLOSE           close last opened file.
283 DEL"            DEL" SD_TEST.4TH" remove this file from SD_CARD.
284 WRITE"          WRITE" TRUC" open or create TRUC file ready to write to the end of this file
285 READ"           READ" TRUC" open TRUC and load its first sector in BUFFER
286
287
288
289 BOOTLOADER
290 ----------
291 BOOT
292
293 QUIT becomes a DEFERed word
294
295
296 ; when ADD-ONs are compiled into the kernel, their respective MARKER word identified with braces {} does nothing.
297 ; when ADD-ONs are downloaded, their respective MARKER word identified with braces {} removes all ADD-ONs words.
298
299
300 ANS_COMPLEMENT ADD-ON
301 ---------------------
302 VALUE           TO              SPACES          SPACE           BL              PAD             >IN             
303 BASE            STATE           CONSTANT        VARIABLE        SOURCE          RECURSE         EVALUATE        
304 EXECUTE         >BODY           .(              (               DECIMAL         HEX             HERE            
305 FILL            MOVE            +!              [CHAR]          CHAR            CELL+           CELLS           
306 CHAR+           CHARS           ALIGN           ALIGNED         2OVER           2SWAP           2DROP           
307 2DUP            2!              2@              R@              ROT             OVER            */              
308 */MOD           MOD             /               /MOD            *               FM/MOD          ABS             
309 NEGATE          SM/REM          UM/MOD          M*              UM*             2/              2*              
310 MIN             MAX             RSHIFT          LSHIFT          INVERT          1-              1+              
311 S>D             XOR             OR              AND             LEAVE           UNLOOP          J               
312 I               +LOOP           LOOP            DO              REPEAT          WHILE           AGAIN           
313 UNTIL           ELSE            THEN            IF              >               <               U<              
314 =               0<              0=              C,              C!              C@              R>              
315 >R              NIP             DROP            SWAP            DEPTH           EXIT            ?DUP            
316 DUP             -               +               DOES>           BEGIN           {CORE_COMP}
317
318 VALUE           https://forth-standard.org/standard/core/VALUE
319 TO              https://forth-standard.org/standard/core/TO
320 BEGIN           https://forth-standard.org/standard/core/BEGIN
321 DOES>           https://forth-standard.org/standard/core/DOES
322 SPACES          https://forth-standard.org/standard/core/SPACES
323 SPACE           https://forth-standard.org/standard/core/SPACE
324 BL              https://forth-standard.org/standard/core/BL
325 PAD             https://forth-standard.org/standard/core/PAD            
326 >IN             https://forth-standard.org/standard/core/toIN
327 BASE            https://forth-standard.org/standard/core/BASE
328 STATE           https://forth-standard.org/standard/core/STATE
329 CONSTANT        https://forth-standard.org/standard/core/CONSTANT
330 VARIABLE        https://forth-standard.org/standard/core/VARIABLE
331 SOURCE          https://forth-standard.org/standard/core/SOURCE
332 RECURSE         https://forth-standard.org/standard/core/RECURSE
333 EVALUATE        https://forth-standard.org/standard/core/EVALUATE
334 EXECUTE         https://forth-standard.org/standard/core/EXECUTE
335 >BODY           https://forth-standard.org/standard/core/toBODY
336 .(              https://forth-standard.org/standard/core/Dotp
337 (               https://forth-standard.org/standard/core/p
338 DECIMAL         https://forth-standard.org/standard/core/DECIMAL
339 HEX             https://forth-standard.org/standard/core/HEX
340 HERE            https://forth-standard.org/standard/core/HERE
341 FILL            https://forth-standard.org/standard/core/FILL
342 MOVE            https://forth-standard.org/standard/core/MOVE
343 +!              https://forth-standard.org/standard/core/PlusStore
344 [CHAR]          https://forth-standard.org/standard/core/BracketCHAR
345 CHAR            https://forth-standard.org/standard/core/CHAR
346 CELL+           https://forth-standard.org/standard/core/CELLPlus
347 CELLS           https://forth-standard.org/standard/core/CELLS
348 CHAR+           https://forth-standard.org/standard/core/CHARPlus
349 CHARS           https://forth-standard.org/standard/core/CHARS
350 ALIGN           https://forth-standard.org/standard/core/ALIGN
351 ALIGNED         https://forth-standard.org/standard/core/ALIGNED
352 2OVER           https://forth-standard.org/standard/core/TwoOVER
353 2SWAP           https://forth-standard.org/standard/core/TwoSWAP
354 2DROP           https://forth-standard.org/standard/core/TwoDROP
355 2DUP            https://forth-standard.org/standard/core/TwoDUP
356 2!              https://forth-standard.org/standard/core/TwoStore
357 2@              https://forth-standard.org/standard/core/TwoFetch
358 R@              https://forth-standard.org/standard/core/RFetch
359 ROT             https://forth-standard.org/standard/core/ROT
360 OVER            https://forth-standard.org/standard/core/OVER
361 */              https://forth-standard.org/standard/core/TimesDiv
362 */MOD           https://forth-standard.org/standard/core/TimesDivMOD
363 MOD             https://forth-standard.org/standard/core/MOD
364 /               https://forth-standard.org/standard/core/Div
365 /MOD            https://forth-standard.org/standard/core/DivMOD
366 *               https://forth-standard.org/standard/core/Times
367 FM/MOD          https://forth-standard.org/standard/core/FMDivMOD
368 ABS             https://forth-standard.org/standard/core/ABS
369 NEGATE          https://forth-standard.org/standard/core/NEGATE
370 SM/REM          https://forth-standard.org/standard/core/SMDivREM
371 UM/MOD          https://forth-standard.org/standard/core/UMDivMOD
372 M*              https://forth-standard.org/standard/core/MTimes
373 UM*             https://forth-standard.org/standard/core/UMTimes
374 2/              https://forth-standard.org/standard/core/TwoDiv
375 2*              https://forth-standard.org/standard/core/TwoTimes
376 MIN             https://forth-standard.org/standard/core/MIN
377 MAX             https://forth-standard.org/standard/core/MAX
378 RSHIFT          https://forth-standard.org/standard/core/RSHIFT
379 LSHIFT          https://forth-standard.org/standard/core/LSHIFT
380 INVERT          https://forth-standard.org/standard/core/INVERT
381 1-              https://forth-standard.org/standard/core/OneMinus
382 1+              https://forth-standard.org/standard/core/OnePlus
383 S>D             https://forth-standard.org/standard/core/StoD
384 XOR             https://forth-standard.org/standard/core/XOR
385 OR              https://forth-standard.org/standard/core/OR
386 AND             https://forth-standard.org/standard/core/AND
387 LEAVE           https://forth-standard.org/standard/core/LEAVE
388 UNLOOP          https://forth-standard.org/standard/core/UNLOOP
389 J               https://forth-standard.org/standard/core/J
390 I               https://forth-standard.org/standard/core/I
391 +LOOP           https://forth-standard.org/standard/core/PlusLOOP
392 LOOP            https://forth-standard.org/standard/core/LOOP
393 DO              https://forth-standard.org/standard/core/DO        
394 REPEAT          https://forth-standard.org/standard/core/REPEAT
395 WHILE           https://forth-standard.org/standard/core/WHILE
396 AGAIN           https://forth-standard.org/standard/core/AGAIN
397 UNTIL           https://forth-standard.org/standard/core/UNTIL
398 THEN            https://forth-standard.org/standard/core/THEN
399 ELSE            https://forth-standard.org/standard/core/ELSE
400 IF              https://forth-standard.org/standard/core/IF
401 >               https://forth-standard.org/standard/core/more
402 <               https://forth-standard.org/standard/core/less
403 U<              https://forth-standard.org/standard/core/Uless
404 =               https://forth-standard.org/standard/core/Equal
405 0<              https://forth-standard.org/standard/core/Zeroless
406 0=              https://forth-standard.org/standard/core/ZeroEqual
407 C,              https://forth-standard.org/standard/core/CComma
408 C!              https://forth-standard.org/standard/core/CStore
409 C@              https://forth-standard.org/standard/core/CFetch
410 R>              https://forth-standard.org/standard/core/Rfrom
411 >R              https://forth-standard.org/standard/core/toR
412 NIP             https://forth-standard.org/standard/core/NIP
413 DROP            https://forth-standard.org/standard/core/DROP
414 SWAP            https://forth-standard.org/standard/core/SWAP
415 DEPTH           https://forth-standard.org/standard/core/DEPTH
416 EXIT            https://forth-standard.org/standard/core/EXIT
417 ?DUP            https://forth-standard.org/standard/core/qDUP
418 DUP             https://forth-standard.org/standard/core/DUP
419 -               https://forth-standard.org/standard/core/Minus
420 +               https://forth-standard.org/standard/core/Plus
421 {CORE_COMP}
422
423
424 DOUBLE word set
425 ---------------
426 D.R             2LITERAL        2VALUE          2CONSTANT       2VARIABLE       M*/             DMIN            
427 DMAX            D2*             D2/             DABS            DNEGATE         D-              M+              
428 D+              DU<             D<              D=              D0<             D0=             D>S             
429 2ROT            D.              2R>             2R@             2>R             {DOUBLE}
430
431
432 D.R             https://forth-standard.org/standard/double/DDotR
433 2LITERAL        https://forth-standard.org/standard/double/TwoLITERAL
434 2VALUE          https://forth-standard.org/standard/double/TwoVALUE
435 2CONSTANT       https://forth-standard.org/standard/double/TwoCONSTANT
436 2VARIABLE       https://forth-standard.org/standard/double/TwoVARIABLE
437 M*/             https://forth-standard.org/standard/double/MTimesDiv
438 DMIN            https://forth-standard.org/standard/double/DMIN
439 DMAX            https://forth-standard.org/standard/double/DMAX
440 D2*             https://forth-standard.org/standard/double/DTwoTimes
441 D2/             https://forth-standard.org/standard/double/DTwoDiv
442 DABS            https://forth-standard.org/standard/double/DABS
443 DNEGATE         https://forth-standard.org/standard/double/DNEGATE
444 D-              https://forth-standard.org/standard/double/DMinus
445 M+              https://forth-standard.org/standard/double/MPlus
446 D+              https://forth-standard.org/standard/double/DPlus
447 DU<             https://forth-standard.org/standard/double/DUless
448 D<              https://forth-standard.org/standard/double/Dless
449 D=              https://forth-standard.org/standard/double/DEqual
450 D0<             https://forth-standard.org/standard/double/DZeroless
451 D0=             https://forth-standard.org/standard/double/DZeroEqual
452 D>S             https://forth-standard.org/standard/double/DtoS
453 2ROT            https://forth-standard.org/standard/double/TwoROT
454 D.              https://forth-standard.org/standard/double/Dd
455 2R>             https://forth-standard.org/standard/core/TwoRfrom
456 2R@             https://forth-standard.org/standard/core/TwoRFetch
457 2>R             https://forth-standard.org/standard/core/TwotoR
458 {DOUBLE}        if you type {DOUBLE}, it and all subsequent words are removed
459
460
461 FIXPOINT ADD-ON
462 ---------------
463
464 S>F             F.              F*              F#S             F/              F-              F+              
465 HOLDS           {FIXPOINT}
466
467 S>F             u/n -- Qlo Qhi       convert u/n in a s15.16 value
468 F.              display a s15.16 value
469 F*              s15.16 multiplication  
470 F#S             Qlo Qhi u -- Qhi 0    
471                 convert fractionnal part of a s15.16 value displaying u digits
472 F/              s15.16 division        
473 F-              s15.16 soustraction
474 F+              s15.16 addition
475 HOLDS           https://forth-standard.org/standard/core/HOLDS
476 {FIXPOINT}      do nothing if compiled in core, else it and all subsequent loaded words are removed
477
478 UTILITY ADD-ON
479 --------------
480
481 DUMP            U.R             WORDS           ?               .RS             .S              {TOOLS}
482
483 DUMP            https://forth-standard.org/standard/tools/DUMP  
484 U.R   u z --    display unsigned number u with size z
485 WORDS           https://forth-standard.org/standard/tools/WORDS 
486 ?               https://forth-standard.org/standard/tools/q
487 .RS             displays return stack content
488 .S              https://forth-standard.org/standard/tools/DotS
489 {TOOLS}         do nothing if compiled in core.
490
491
492 SD_TOOLS ADD-ON
493 ---------------
494
495 DIR             FAT             CLUSTER         SECTOR          {SD_TOOLS}
496
497 DIR             dump first sector of current directory
498 FAT             dump first sector of FAT1
499 CLUSTER         .123 CLUSTER displays first sector of cluster 123
500 SECTOR          .123456789 SECTOR displays sector 123456789
501 {SD_TOOLS}      if you type {SD_TOOLS}, it and all subsequent words are removed
502
503