OSDN Git Service

V 3.2
[fast-forth/master.git] / MSP430-FORTH / LAST.4TH
1
2 ; ------------------
3 ; FF_SPECS.4th
4 ; ------------------
5 ; displays all FastForth specifications
6 PWR_STATE
7
8 [UNDEFINED] AND [IF]
9 CODE AND
10 AND @R15+,R14
11 MOV @R13+,R0
12 ENDCODE
13 [THEN]
14
15 [UNDEFINED] DUP [IF]
16 CODE DUP
17 BW1 SUB #2,R15
18     MOV R14,0(R15)
19     MOV @R13+,R0
20 ENDCODE
21
22 CODE ?DUP
23 CMP #0,R14
24 0<> ?GOTO BW1
25 MOV @R13+,R0
26 ENDCODE
27 [THEN]
28
29 [UNDEFINED] OVER [IF]
30 CODE OVER
31 MOV R14,-2(R15)
32 MOV @R15,R14
33 SUB #2,R15
34 MOV @R13+,R0
35 ENDCODE
36 [THEN]
37
38 [UNDEFINED] DROP [IF]
39 CODE DROP
40 MOV @R15+,R14
41 MOV @R13+,R0
42 ENDCODE
43 [THEN]
44
45 [UNDEFINED] SWAP [IF]
46 CODE SWAP
47 MOV @R15,R10
48 MOV R14,0(R15)
49 MOV R10,R14
50 MOV @R13+,R0
51 ENDCODE
52 [THEN]
53
54 [UNDEFINED] ROT [IF]
55 CODE ROT
56 MOV @R15,R10
57 MOV R14,0(R15)
58 MOV 2(R15),R14
59 MOV R10,2(R15)
60 MOV @R13+,R0
61 ENDCODE
62 [THEN]
63
64 [UNDEFINED] >R [IF]
65 CODE >R
66 PUSH R14
67 MOV @R15+,R14
68 MOV @R13+,R0
69 ENDCODE
70 [THEN]
71
72 [UNDEFINED] R> [IF]
73 CODE R>
74 SUB #2,R15
75 MOV R14,0(R15)
76 MOV @R1+,R14
77 MOV @R13+,R0
78 ENDCODE
79 [THEN]
80
81 [UNDEFINED] 0< [IF]
82 CODE 0<
83 ADD R14,R14
84 SUBC R14,R14
85 XOR #-1,R14
86 MOV @R13+,R0
87 ENDCODE
88 [THEN]
89
90 [UNDEFINED] = [IF]
91 CODE =
92 SUB @R15+,R14
93 0<> IF
94     AND #0,R14
95     MOV @R13+,R0
96 THEN
97 XOR #-1,R14
98 MOV @R13+,R0
99 ENDCODE
100 [THEN]
101
102 [UNDEFINED] U< [IF]
103 CODE U<
104 SUB @R15+,R14
105 0<> IF
106     MOV #-1,R14
107     U< IF
108         AND #0,R14
109     THEN
110 THEN
111 MOV @R13+,R0
112 ENDCODE
113 [THEN]
114
115 [UNDEFINED] IF [IF]
116 CODE IF
117 SUB #2,R15
118 MOV R14,0(R15)
119 MOV &$1DC6,R14
120 ADD #4,&$1DC6
121 MOV #$404C,0(R14)
122 ADD #2,R14
123 MOV @R13+,R0
124 ENDCODE IMMEDIATE
125 [THEN]
126
127 [UNDEFINED] ELSE [IF]
128 CODE ELSE
129 ADD #4,&$1DC6
130 MOV &$1DC6,R10
131 MOV #$4048,-4(R10)
132 MOV R10,0(R14)
133 SUB #2,R10
134 MOV R10,R14
135 MOV @R13+,R0
136 ENDCODE IMMEDIATE
137 [THEN]
138
139 [UNDEFINED] THEN [IF]
140 CODE THEN
141 MOV &$1DC6,0(R14)
142 MOV @R15+,R14
143 MOV @R13+,R0
144 ENDCODE IMMEDIATE
145 [THEN]
146
147 [UNDEFINED] UNTIL [IF]
148 CODE UNTIL
149     MOV #$404C,R9
150 BW1 ADD #4,&$1DC6
151     MOV &$1DC6,R10
152     MOV R9,-4(R10)
153     MOV R14,-2(R10)
154     MOV @R15+,R14
155     MOV @R13+,R0
156 ENDCODE IMMEDIATE
157 [THEN]
158
159 [UNDEFINED] AGAIN [IF]
160 CODE AGAIN
161 MOV #$4048,R9
162 GOTO BW1
163 ENDCODE IMMEDIATE
164 [THEN]
165
166 [UNDEFINED] WHILE [IF]
167 : WHILE
168 POSTPONE IF SWAP
169 ; IMMEDIATE
170 [THEN]
171
172 [UNDEFINED] REPEAT [IF]
173 : REPEAT
174 POSTPONE AGAIN POSTPONE THEN
175 ; IMMEDIATE
176 [THEN]
177
178 [UNDEFINED] DO [IF]
179 CODE DO
180 SUB #2,R15
181 MOV R14,0(R15)
182 ADD #2,&$1DC6
183 MOV &$1DC6,R14
184 MOV #$4056,-2(R14)
185 ADD #2,&$1C00
186 MOV &$1C00,R10
187 MOV #0,0(R10)
188 MOV @R13+,R0
189 ENDCODE IMMEDIATE
190 [THEN]
191
192 [UNDEFINED] I [IF]
193 CODE I
194 SUB #2,R15
195 MOV R14,0(R15)
196 MOV @R1,R14
197 SUB 2(R1),R14
198 MOV @R13+,R0
199 ENDCODE
200 [THEN]
201
202 [UNDEFINED] LOOP [IF]
203 CODE LOOP
204     MOV #$4078,R9
205 BW1 ADD #4,&$1DC6
206     MOV &$1DC6,R10
207     MOV R9,-4(R10)
208     MOV R14,-2(R10)
209 BEGIN
210     MOV &$1C00,R14
211     SUB #2,&$1C00
212     MOV @R14,R14
213     CMP #0,R14
214 0<> WHILE
215     MOV R10,0(R14)
216 REPEAT
217     MOV @R15+,R14
218     MOV @R13+,R0
219 ENDCODE IMMEDIATE
220 [THEN]
221
222 [UNDEFINED] +LOOP [IF]
223 CODE +LOOP
224 MOV #$4066,R9
225 GOTO BW1
226 ENDCODE IMMEDIATE
227 [THEN]
228
229 [UNDEFINED] HERE [IF]
230 CODE HERE
231 MOV #BEGIN,R0
232 ENDCODE
233 [THEN]
234
235 [UNDEFINED] @ [IF]
236 CODE @
237 MOV @R14,R14
238 MOV @R13+,R0
239 ENDCODE
240 [THEN]
241
242 [UNDEFINED] ! [IF]
243 CODE !
244 MOV @R15+,0(R14)
245 MOV @R15+,R14
246 MOV @R13+,R0
247 ENDCODE
248 [THEN]
249
250 [UNDEFINED] C@ [IF]
251 CODE C@
252 MOV.B @R14,R14
253 MOV @R13+,R0
254 ENDCODE
255 [THEN]
256
257 [UNDEFINED] SPACES [IF]
258 CODE SPACES
259 CMP #0,R14
260 0<> IF
261     PUSH R13
262     BEGIN
263         LO2HI
264         $20 EMIT
265         HI2LO
266         SUB #2,R13 
267         SUB #1,R14
268     0= UNTIL
269     MOV @R1+,R13
270 THEN
271 MOV @R15+,R14
272 MOV @R13+,R0
273 ENDCODE
274 [THEN]
275
276 [UNDEFINED] 1+ [IF]
277 CODE 1+
278 ADD #1,R14
279 MOV @R13+,R0
280 ENDCODE
281 [THEN]
282
283 [UNDEFINED] + [IF]
284 CODE +
285 ADD @R15+,R14
286 MOV @R13+,R0
287 ENDCODE
288 [THEN]
289
290 [UNDEFINED] - [IF]
291 CODE -
292 SUB @R15+,R14
293 XOR #-1,R14
294 ADD #1,R14
295 MOV @R13+,R0
296 ENDCODE
297 [THEN]
298
299 [UNDEFINED] 2* [IF]
300 CODE 2*
301 ADD R14,R14
302 MOV @R13+,R0
303 ENDCODE
304 [THEN]
305
306 [UNDEFINED] UM/MOD [IF]
307 CODE UM/MOD
308     PUSH #DROP
309     MOV #$407E,R0
310 ENDCODE
311 [THEN]
312
313 [UNDEFINED] MOVE [IF]
314 CODE MOVE
315 MOV R14,R10
316 MOV @R15+,R8
317 MOV @R15+,R9
318 MOV @R15+,R14
319 CMP #0,R10
320 0<> IF
321     CMP R9,R8
322     0<> IF
323         U< IF
324             BEGIN
325                 MOV.B @R9+,0(R8)
326                 ADD #1,R8
327                 SUB #1,R10
328             0= UNTIL
329             MOV @R13+,R0
330         THEN
331         ADD R10,R8
332         ADD R10,R9
333         BEGIN
334             SUB #1,R9
335             SUB #1,R8
336             MOV.B @R9,0(R8)
337             SUB #1,R10
338         0= UNTIL
339     THEN
340 THEN
341 MOV @R13+,R0
342 ENDCODE
343 [THEN]
344
345 [UNDEFINED] WORDS [IF]
346 : WORDS
347 CR 
348 $1DCA @ $1CE4
349 $1800 @ 2*
350 MOVE
351 BEGIN
352     0 DUP
353     $1800 @ 2* 0
354         DO
355         DUP I $1CE4 + @
356             U< IF
357                 DROP DROP
358                 I DUP $1CE4 + @
359             THEN
360         2 +LOOP
361     ?DUP
362 WHILE
363     DUP
364     2 - @
365     ROT
366     $1CE4 +
367     !
368     DUP
369     COUNT $7F AND
370     TYPE
371     C@ $0F AND
372     $10 SWAP - SPACES
373 REPEAT
374 DROP
375 ;
376 [THEN]
377
378 [UNDEFINED] CASE [IF]
379 : CASE 0 ; IMMEDIATE
380 [THEN]
381
382 [UNDEFINED] OF [IF]
383 : OF
384 1+      
385 >R      
386 POSTPONE OVER POSTPONE =
387 POSTPONE IF     
388 POSTPONE DROP   
389 R>      
390 ; IMMEDIATE 
391 [THEN]
392
393 [UNDEFINED] ENDOF [IF]
394 : ENDOF
395 >R      
396 POSTPONE ELSE 
397 R>      
398 ; IMMEDIATE 
399 [THEN]
400
401 [UNDEFINED] ENDCASE [IF]
402 : ENDCASE
403 POSTPONE DROP
404 0 DO 
405     POSTPONE THEN 
406 LOOP 
407 ; IMMEDIATE 
408 [THEN]
409
410 [UNDEFINED] ESC" [IF]
411 : ESC"
412 $1B
413 POSTPONE LITERAL
414 POSTPONE EMIT
415 POSTPONE S"
416 POSTPONE TYPE
417 ; IMMEDIATE
418 [THEN]
419
420 : SPECS
421 PWR_STATE
422 HERE
423 ECHO
424
425 42 0 DO CR LOOP
426 ESC" [H"
427
428 ESC" [7m"
429 CR ." FastForth V"
430 $1810 @         
431 0 <# #  8 HOLD # 46 HOLD #S #> TYPE
432 ."  for MSP430FR"
433 $1A04 @
434 CASE
435     $8102     OF      ." 5738,"   $C200   ENDOF
436     $8103     OF      ." 5739,"   $C200   ENDOF
437     $8160     OF      ." 5948,"   $4400   ENDOF
438     $8169     OF      ." 5969,"   $4400   ENDOF
439     $81A8     OF      ." 6989,"   $4400   ENDOF
440     $81F0     OF      ." 4133,"   $C400   ENDOF
441     $8240     OF      ." 2433,"   $C400   ENDOF
442     $82A1     OF      ." 5994,"   $4000   ENDOF
443     $830C     OF      ." 2355,"   $8000   ENDOF
444     $8328     OF      ." 2476,"   $8000   ENDOF
445     ABORT" xxxx <-- unrecognized device!"
446 ENDCASE
447 $20 EMIT 
448 ['] ['] DUP @ $1287 =
449 IF ." DTC=1," DROP
450 ELSE 2 + @ $1287 =
451     IF ." DTC=2,"
452     ELSE ." DTC=3,"
453     THEN
454 THEN
455 $20 EMIT 
456 $1800 @ U. #8 EMIT ." -Entry word sets, "
457 $1806 @ 0 1000 UM/MOD U.
458 ?DUP IF #8 EMIT ." ," U.
459 THEN ." MHz, "
460 - U. ." bytes"
461 ESC" [0m"
462
463 CR ." /COUNTED-STRING   = 255"
464 CR ." /HOLD             = 34"
465 CR ." /PAD              = 84"
466 CR ." ADDRESS-UNIT-BITS = 16"
467 CR ." FLOORED           = true"
468 CR ." MAX-CHAR          = 255"
469 CR ." MAX-N             = 32767"
470 CR ." MAX-U             = 65535"
471 CR ." MAX-D             = 2147483647"
472 CR ." MAX-UD            = 4294967295"
473 CR ." STACK-CELLS       = 48"
474 CR ." RETURN-STACK-CELLS= 48"
475
476 CR CR 
477
478 ESC" [7m"
479 ." KERNEL ADDONS"
480 ESC" [0m"
481 $1812 @
482     DUP 0< IF CR ." 32.768kHz XTAL" THEN
483 2*  DUP 0< IF 2* CR ." 5 WIRES (RTS/CTS) UART TERMINAL"
484         ELSE 2* DUP
485             0< IF CR ." 4 WIRES (RTS) UART TERMINAL" 
486             THEN
487         THEN
488 2*  DUP 0< IF CR ." 3 WIRES (XON/XOFF) UART TERMINAL" THEN
489 2*  DUP 0< IF CR ." HALF-DUPLEX TERMINAL" THEN
490 2*  DUP 0< IF CR ." ASM DATA ACCESS BEYOND $FFFF" THEN
491 2*  DUP 0< IF CR ." BOOTLOADER" THEN
492 2*  DUP 0< IF CR ." SD_CARD READ/WRITE" THEN
493 2*  DUP 0< IF CR ." SD_CARD LOADER" THEN
494 2*  DUP 0< IF CR ." FIXPOINT INPUT" THEN
495 2*  DUP 0< IF CR ." DOUBLE INPUT" THEN
496 2*  DUP 0< IF CR ." VOCABULARY SET" THEN
497 2*  DUP 0< IF CR ." NONAME" THEN
498 2*  DUP 0< IF CR ." EXTENDED ASSEMBLER" THEN
499 2*  DUP 0< IF CR ." ASSEMBLER" THEN
500 2*  DUP 0< IF CR ." CONDITIONNAL COMPILATION" THEN
501 0< IF
502     CR CR ESC" [7m" 
503     ." OPTIONS"
504     ESC" [0m" CR
505     [DEFINED] {CORE_COMP} [IF] ." CORE COMPLEMENT" CR [THEN]
506     [DEFINED] {TOOLS}     [IF] ." UTILITY" CR [THEN]
507     [DEFINED] {FIXPOINT}  [IF] ." FIXPOINT" CR [THEN]
508     [DEFINED] {CORDIC}    [IF] ." CORDIC engine" CR [THEN]
509     [DEFINED] {SD_TOOLS}  [IF] ." SD_TOOLS" CR [THEN]
510     [DEFINED] {RTC}       [IF] ." RTC utilities" CR [THEN]
511     CR
512     [DEFINED] VOCABULARY [IF]
513     ESC" [7m"
514     ." ASSEMBLER word set"
515     ESC" [0m"
516     ALSO ASSEMBLER WORDS PREVIOUS CR
517     [THEN]
518 THEN
519     ESC" [7m"
520     ." FORTH word set"
521     ESC" [0m"
522     WORDS
523
524 CR WARM
525 ;
526
527 SPECS