OSDN Git Service

V309
[fast-forth/master.git] / MSP430-FORTH / SD_430FR5994 / CORE_ANS.4TH
1
2     CODE ABORT_CORE_ANS
3     SUB #2,R15
4     MOV R14,0(R15)
5     MOV &$180A,R14
6     SUB #309,R14
7     COLON
8     $0D EMIT
9     ABORT" FastForth V3.9 please!"
10     ;
11
12     ABORT_CORE_ANS
13
14     [UNDEFINED] BC!
15     [IF]
16     CODE BC!
17     BIC @R15+,0(R14)
18     MOV @R15+,R14
19     MOV @R13+,R0
20     ENDCODE
21     [THEN]
22
23     [UNDEFINED] BS!
24     [IF]
25     CODE BS!
26     BIS @R15+,0(R14)
27     MOV @R15+,R14
28     MOV @R13+,R0
29     ENDCODE
30     [THEN]
31
32     $8000 $180E BC!
33
34     RST_RET
35
36 ; ----------------------------------
37 ; CORE_ANS.4th for MSP_EXP430FR5994
38 ; ----------------------------------
39
40     MARKER {CORE_ANS}
41
42     [UNDEFINED] HERE
43     [IF]
44     CODE HERE
45     MOV #$4032,R0
46     ENDCODE
47     [THEN]
48
49     [UNDEFINED] +
50     [IF]
51     CODE +
52     ADD @R15+,R14
53     MOV @R13+,R0
54     ENDCODE
55     [THEN]
56
57     [UNDEFINED] -
58     [IF]
59     CODE -
60     SUB @R15+,R14
61     XOR #-1,R14
62     ADD #1,R14
63     MOV @R13+,R0
64     ENDCODE
65     [THEN]
66
67     [UNDEFINED] DUP
68     [IF]
69     CODE DUP
70 BW1 SUB #2,R15
71     MOV R14,0(R15)
72     MOV @R13+,R0
73     ENDCODE
74
75     CODE ?DUP
76     CMP #0,R14
77     0<> ?GOTO BW1
78     MOV @R13+,R0
79     ENDCODE
80     [THEN]
81
82     [UNDEFINED] EXIT
83     [IF]
84     CODE EXIT
85     MOV @R1+,R13
86     MOV @R13+,R0
87     ENDCODE
88     [THEN]
89
90     [UNDEFINED] DEPTH
91     [IF]
92     CODE DEPTH
93     MOV R14,-2(R15)
94     MOV #$1C80,R14
95     SUB R15,R14
96     RRA R14
97     SUB #2,R15
98     MOV @R13+,R0
99     ENDCODE
100     [THEN]
101
102     [UNDEFINED] SWAP
103     [IF]
104     CODE SWAP
105     PUSH R14
106     MOV @R15,R14
107     MOV @R1+,0(R15)
108     MOV @R13+,R0
109     ENDCODE
110     [THEN]
111
112     [UNDEFINED] DROP
113     [IF]
114     CODE DROP
115     MOV @R15+,R14
116     MOV @R13+,R0
117     ENDCODE
118     [THEN]
119
120     [UNDEFINED] OVER
121     [IF]
122     CODE OVER
123     MOV R14,-2(R15)
124     MOV @R15,R14
125     SUB #2,R15
126     MOV @R13+,R0
127     ENDCODE
128     [THEN]
129
130     [UNDEFINED] NIP
131     [IF]
132     CODE NIP
133     ADD #2,R15
134     MOV @R13+,R0
135     ENDCODE
136     [THEN]
137
138     [UNDEFINED] >R
139     [IF]
140     CODE >R
141     PUSH R14
142     MOV @R15+,R14
143     MOV @R13+,R0
144     ENDCODE
145     [THEN]
146
147     [UNDEFINED] R>
148     [IF]
149     CODE R>
150     SUB #2,R15
151     MOV R14,0(R15)
152     MOV @R1+,R14
153     MOV @R13+,R0
154     ENDCODE
155     [THEN]
156
157     [UNDEFINED] @
158     [IF]
159     CODE @
160     MOV @R14,R14
161     MOV @R13+,R0
162     ENDCODE
163     [THEN]
164
165     [UNDEFINED] !
166     [IF]
167     CODE !
168     MOV @R15+,0(R14)
169     MOV @R15+,R14
170     MOV @R13+,R0
171     ENDCODE
172     [THEN]
173
174     [UNDEFINED] C@
175     [IF]
176     CODE C@
177     MOV.B @R14,R14
178     MOV @R13+,R0
179     ENDCODE
180     [THEN]
181
182     [UNDEFINED] C!
183     [IF]
184     CODE C!
185     MOV.B @R15+,0(R14)
186     ADD #1,R15
187     MOV @R15+,R14
188     MOV @R13+,R0
189     ENDCODE
190     [THEN]
191
192     [UNDEFINED] C,
193     [IF]
194     CODE C,
195     MOV &$1DC8,R10
196     MOV.B R14,0(R10)
197     ADD #1,&$1DC8
198     MOV @R15+,R14
199     MOV @R13+,R0
200     ENDCODE
201     [THEN]
202
203     [UNDEFINED] 0=
204     [IF]
205     CODE 0=
206     SUB #1,R14
207     SUBC R14,R14
208     MOV @R13+,R0
209     ENDCODE
210     [THEN]
211
212     [UNDEFINED] 0<>
213     [IF]
214     CODE 0<>
215     SUB #1,R14
216     SUBC R14,R14
217     XOR #-1,R14
218     MOV @R13+,R0
219     ENDCODE
220     [THEN]
221
222     [UNDEFINED] 0<
223     [IF]
224     CODE 0<
225 BW1 ADD R14,R14
226     SUBC R14,R14
227     XOR #-1,R14
228     MOV @R13+,R0
229     ENDCODE
230     [THEN]
231
232
233     [UNDEFINED] S>D
234     [IF]
235     : S>D
236     DUP 0<
237     ;
238     [THEN]
239
240     [UNDEFINED] =
241     [IF]
242     CODE =
243     SUB @R15+,R14
244     SUB #1,R14
245     SUBC R14,R14
246     MOV @R13+,R0
247     ENDCODE
248     [THEN]
249
250     [UNDEFINED] U<
251     [IF]
252
253     CODE U<
254     SUB @R15+,R14
255     U< ?GOTO FW1
256     0<> IF
257 BW1 MOV #-1,R14
258     THEN
259     MOV @R13+,R0
260     ENDCODE
261
262     CODE U>
263     SUB @R15+,R14
264     U< ?GOTO BW1
265 FW1 AND #0,R14
266     MOV @R13+,R0
267     ENDCODE
268     [THEN]
269
270     [UNDEFINED] <
271     [IF]
272
273     CODE <
274     SUB @R15+,R14
275     S< ?GOTO FW1
276     0<> IF
277 BW1 MOV #-1,R14
278     THEN
279     MOV @R13+,R0
280     ENDCODE
281
282     CODE >
283     SUB @R15+,R14
284     S< ?GOTO BW1
285 FW1 AND #0,R14
286     MOV @R13+,R0
287     ENDCODE
288     [THEN]
289
290     [UNDEFINED] IF
291     [IF]
292
293     CODE IF
294     SUB #2,R15
295     MOV R14,0(R15)
296     MOV &$1DC8,R14
297     ADD #4,&$1DC8
298     MOV #$40AC,0(R14)
299     ADD #2,R14
300     MOV @R13+,R0
301     ENDCODE IMMEDIATE
302
303     CODE THEN
304     MOV &$1DC8,0(R14)
305     MOV @R15+,R14
306     MOV @R13+,R0
307     ENDCODE IMMEDIATE
308     [THEN]
309
310     [UNDEFINED] ELSE
311     [IF]
312     CODE ELSE
313     ADD #4,&$1DC8
314     MOV &$1DC8,R10
315     MOV #$40B2,-4(R10)
316     MOV R10,0(R14)
317     SUB #2,R10
318     MOV R10,R14
319     MOV @R13+,R0
320     ENDCODE IMMEDIATE
321     [THEN]
322
323     [UNDEFINED] BEGIN
324     [IF]
325
326     CODE BEGIN
327     MOV #$4032,R0
328     ENDCODE IMMEDIATE
329
330     CODE UNTIL
331     MOV #$40AC,R9
332 BW1 ADD #4,&$1DC8
333     MOV &$1DC8,R10
334     MOV R9,-4(R10)
335     MOV R14,-2(R10)
336     MOV @R15+,R14
337     MOV @R13+,R0
338     ENDCODE IMMEDIATE
339
340     CODE AGAIN
341     MOV #$40B2,R9
342     GOTO BW1
343     ENDCODE IMMEDIATE
344
345     : WHILE
346     POSTPONE IF SWAP
347     ; IMMEDIATE
348
349     : REPEAT
350     POSTPONE AGAIN POSTPONE THEN
351     ; IMMEDIATE
352     [THEN]
353
354     [UNDEFINED] DO
355     [IF]
356
357     HDNCODE XDO
358     MOV #$8000,R9
359     SUB @R15+,R9
360     MOV R14,R8
361     ADD R9,R8
362     PUSHM #2,R9
363     MOV @R15+,R14
364     MOV @R13+,R0
365     ENDCODE
366
367     CODE DO
368     SUB #2,R15
369     MOV R14,0(R15)
370     ADD #2,&$1DC8
371     MOV &$1DC8,R14
372     MOV #XDO,-2(R14)
373     ADD #2,&$1C00
374     MOV &$1C00,R10
375     MOV #0,0(R10)
376     MOV @R13+,R0
377     ENDCODE IMMEDIATE
378
379     HDNCODE XLOOP
380     ADD #1,0(R1)
381 BW1 BIT #$100,R2
382     0= IF
383         MOV @R13,R13
384         MOV @R13+,R0
385     THEN
386     ADD #4,R1
387     ADD #2,R13
388     MOV @R13+,R0
389     ENDCODE
390
391     CODE LOOP
392     MOV #XLOOP,R9
393 BW2 ADD #4,&$1DC8
394     MOV &$1DC8,R10
395     MOV R9,-4(R10)
396     MOV R14,-2(R10)
397     BEGIN
398         MOV &$1C00,R14
399         SUB #2,&$1C00
400         MOV @R14,R14
401         CMP #0,R14
402     0<> WHILE
403         MOV R10,0(R14)
404     REPEAT
405     MOV @R15+,R14
406     MOV @R13+,R0
407     ENDCODE IMMEDIATE
408
409     HDNCODE XPLOO
410     ADD R14,0(R1)
411     MOV @R15+,R14
412     GOTO BW1
413     ENDCODE
414
415     CODE +LOOP
416     MOV #XPLOO,R9
417     GOTO BW2
418     ENDCODE IMMEDIATE
419     [THEN]
420
421     [UNDEFINED] I
422     [IF]
423     CODE I
424     SUB #2,R15
425     MOV R14,0(R15)
426     MOV @R1,R14
427     SUB 2(R1),R14
428     MOV @R13+,R0
429     ENDCODE
430     [THEN]
431
432     [UNDEFINED] J
433     [IF]
434     CODE J
435     SUB #2,R15
436     MOV R14,0(R15)
437     MOV 4(R1),R14
438     SUB 6(R1),R14
439     MOV @R13+,R0
440     ENDCODE
441     [THEN]
442
443     [UNDEFINED] UNLOOP
444     [IF]
445     CODE UNLOOP
446     ADD #4,R1
447     MOV @R13+,R0
448     ENDCODE
449     [THEN]
450
451     [UNDEFINED] LEAVE
452     [IF]
453     CODE LEAVE
454     MOV &$1DC8,R10
455     MOV #UNLOOP,0(R10)
456     MOV #$40B2,2(R10)
457     ADD #6,&$1DC8
458     ADD #2,&$1C00
459     ADD #4,R10
460     MOV &$1C00,R9
461     MOV R10,0(R9)
462     MOV @R13+,R0
463     ENDCODE IMMEDIATE
464     [THEN]
465
466     [UNDEFINED] AND
467     [IF]
468     CODE AND
469     AND @R15+,R14
470     MOV @R13+,R0
471     ENDCODE
472     [THEN]
473
474     [UNDEFINED] OR
475     [IF]
476     CODE OR
477     BIS @R15+,R14
478     AND #-1,R14
479     MOV @R13+,R0
480     ENDCODE
481     [THEN]
482
483     [UNDEFINED] XOR
484     [IF]
485     CODE XOR
486     XOR @R15+,R14
487     MOV @R13+,R0
488     ENDCODE
489     [THEN]
490
491     [UNDEFINED] 1+
492     [IF]
493     CODE 1+
494     ADD #1,R14
495     MOV @R13+,R0
496     ENDCODE
497     [THEN]
498
499     [UNDEFINED] 1-
500     [IF]
501     CODE 1-
502     SUB #1,R14
503     MOV @R13+,R0
504     ENDCODE
505     [THEN]
506
507     [UNDEFINED] INVERT
508     [IF]
509     CODE INVERT
510     XOR #-1,R14
511     MOV @R13+,R0
512     ENDCODE
513     [THEN]
514
515     [UNDEFINED] NEGATE
516     [IF]
517     CODE NEGATE
518     XOR #-1,R14
519     ADD #1,R14
520     MOV @R13+,R0
521     ENDCODE
522     [THEN]
523
524     [UNDEFINED] ABS
525     [IF]
526     CODE ABS
527     CMP #0,R14
528     0>= IF
529         MOV @R13+,R0
530     THEN
531     MOV #NEGATE,R0
532     ENDCODE
533     [THEN]
534
535     [UNDEFINED] LSHIFT
536     [IF]
537     CODE LSHIFT
538     MOV @R15+,R10
539     AND #$1F,R14
540     0<> IF
541         BEGIN
542             ADD R10,R10
543             SUB #1,R14
544         0= UNTIL
545     THEN
546     MOV R10,R14
547     MOV @R13+,R0
548     ENDCODE
549     [THEN]
550
551     [UNDEFINED] RSHIFT
552     [IF]
553     CODE RSHIFT
554     MOV @R15+,R10
555     AND #$1F,R14
556     0<> IF
557         BEGIN
558             BIC #1,R2
559             RRC R10
560             SUB #1,R14
561         0= UNTIL
562     THEN
563     MOV R10,R14
564     MOV @R13+,R0
565     ENDCODE
566     [THEN]
567
568     [UNDEFINED] MAX
569     [IF]
570
571     CODE MAX
572     CMP @R15,R14
573     S<  ?GOTO FW1
574 BW1 ADD #2,R15
575     MOV @R13+,R0
576     ENDCODE
577
578     CODE MIN
579     CMP @R15,R14
580     S< ?GOTO BW1
581 FW1 MOV @R15+,R14
582     MOV @R13+,R0
583     ENDCODE
584     [THEN]
585
586     [UNDEFINED] 2*
587     [IF]
588     CODE 2*
589     ADD R14,R14
590     MOV @R13+,R0
591     ENDCODE
592     [THEN]
593
594     [UNDEFINED] 2/
595     [IF]
596     CODE 2/
597     RRA R14
598     MOV @R13+,R0
599     ENDCODE
600     [THEN]
601
602     RST_SET
603
604     CODE TSTBIT
605     MOV @R15+,R9
606     AND @R9,R14
607     MOV @R13+,R0
608     ENDCODE
609
610     $180E 1 TSTBIT
611     RST_RET
612
613     [IF]
614     CODE UM*
615     MOV @R15,&$4C0
616 BW1 MOV R14,&$4C8
617     MOV &$4E4,0(R15)
618     MOV &$4E6,R14
619     MOV @R13+,R0
620     ENDCODE
621
622     CODE M*
623     MOV @R15,&$4C2
624     GOTO BW1
625     ENDCODE
626
627     [ELSE]  ; MSP430FRxxxx with hardware_MPY
628         [UNDEFINED] M* [IF]
629     CODE M*
630     MOV @R15,R12
631     CMP #0,R12
632     S< IF
633         XOR #-1,0(R15)
634         ADD #1,0(R15)
635     THEN
636     XOR R14,R12
637     CMP #0,R14
638     S< IF
639         XOR #-1,R14
640         ADD #1,R14
641     THEN
642     PUSHM #2,R13
643     LO2HI
644     UM*
645     HI2LO
646     POPM #2,R13
647     CMP #0,R12
648     S< IF
649         XOR #-1,0(R15)
650         XOR #-1,R14
651         ADD #1,0(R15)
652         ADDC #0,R14
653     THEN
654     MOV @R13+,R0
655     ENDCODE
656         [THEN]
657     [THEN]  ;  endof hardware_MPY
658
659
660     [UNDEFINED] UM/MOD
661     [IF]
662     CODE UM/MOD
663     PUSH #DROP
664     MOV #$403E,R0
665     ENDCODE
666     [THEN]
667
668
669
670     $180E @ 0<  ; test the switch: $8000 / SYMETRIC DIVISION
671     [IF]
672         [UNDEFINED] FM/MOD
673         [IF]
674         CODE FM/MOD
675         MOV R14,R12
676         MOV @R15,R11
677         CMP #0,R14
678         S< IF
679             XOR #-1,R14
680             ADD #1,R14
681         THEN
682         CMP #0,0(R15)
683         S< IF
684             XOR #-1,2(R15)
685             XOR #-1,0(R15)
686             ADD #1,2(R15)
687             ADDC #0,0(R15)
688         THEN
689         PUSHM  #2,R12
690         CALL #$403E
691         MOV @R15+,R14
692         POPM  #2,R12
693         CMP #0,R11
694         S< IF
695             XOR #-1,0(R15)
696             ADD #1,0(R15)
697         THEN
698         XOR R12,R11
699         CMP #0,R11
700         S< IF
701             XOR #-1,R14
702             ADD #1,R14
703         THEN
704
705         CMP #0,0(R15)
706         0<> IF
707             CMP #1,R14
708             S< IF
709             ADD R12,0(R15)
710             SUB #1,R14
711             THEN
712         THEN
713         MOV @R13+,R0
714         ENDCODE
715         [THEN]
716     [ELSE]
717         [UNDEFINED] SM/REM
718         [IF]
719         CODE SM/REM
720         MOV R14,R12
721         MOV @R15,R11
722         CMP #0,R14
723         S< IF
724             XOR #-1,R14
725             ADD #1,R14
726         THEN
727         CMP #0,0(R15)
728         S< IF
729             XOR #-1,2(R15)
730             XOR #-1,0(R15)
731             ADD #1,2(R15)
732             ADDC #0,0(R15)
733         THEN
734         PUSHM  #2,R12
735         CALL #$403E
736         MOV @R15+,R14
737         POPM  #2,R12
738         CMP #0,R11
739         S< IF
740             XOR #-1,0(R15)
741             ADD #1,0(R15)
742         THEN
743         XOR R12,R11
744         CMP #0,R11
745         S< IF
746             XOR #-1,R14
747             ADD #1,R14
748         THEN
749         MOV @R13+,R0
750         ENDCODE
751         [THEN]
752     [THEN]
753
754     [UNDEFINED] *
755     [IF]
756     : *
757     M* DROP
758     ;
759     [THEN]
760
761     [UNDEFINED] /MOD
762     [IF]
763     : /MOD
764     >R DUP 0< R>
765         [ $180E @ 0< ]
766         [IF]    FM/MOD
767         [ELSE]  SM/REM
768         [THEN]
769     ;
770     [THEN]
771
772     [UNDEFINED] /
773     [IF]
774     : /
775     >R DUP 0< R>
776         [ $180E @ 0< ]
777         [IF]    FM/MOD
778         [ELSE]  SM/REM
779         [THEN]
780     NIP
781     ;
782     [THEN]
783
784     [UNDEFINED] MOD
785     [IF]
786     : MOD
787     >R DUP 0< R>
788         [ $180E @ 0< ]
789         [IF]    FM/MOD
790         [ELSE]  SM/REM
791         [THEN]
792     DROP
793     ;
794     [THEN]
795
796     [UNDEFINED] */MOD
797     [IF]
798     : */MOD
799     >R M* R>
800         [ $180E @ 0< ]
801         [IF]    FM/MOD
802         [ELSE]  SM/REM
803         [THEN]
804     ;
805     [THEN]
806
807     [UNDEFINED] */
808     [IF]
809     : */
810     >R M* R>
811         [ $180E @ 0< ]
812         [IF]    FM/MOD
813         [ELSE]  SM/REM
814         [THEN]
815     NIP
816     ;
817     [THEN]
818
819     [UNDEFINED] ROT
820     [IF]
821     CODE ROT
822     MOV @R15,R10
823     MOV R14,0(R15)
824     MOV 2(R15),R14
825     MOV R10,2(R15)
826     MOV @R13+,R0
827     ENDCODE
828     [THEN]
829
830     [UNDEFINED] R@
831     [IF]
832     CODE R@
833     SUB #2,R15
834     MOV R14,0(R15)
835     MOV @R1,R14
836     MOV @R13+,R0
837     ENDCODE
838     [THEN]
839
840     [UNDEFINED] TUCK
841     [IF]
842     : TUCK SWAP OVER ;
843     [THEN]
844
845     [UNDEFINED] 2@
846     [IF]
847     CODE 2@
848     SUB #2,R15
849     MOV 2(R14),0(R15)
850     MOV @R14,R14
851     MOV @R13+,R0
852     ENDCODE
853     [THEN]
854
855     [UNDEFINED] 2!
856     [IF]
857     CODE 2!
858     MOV @R15+,0(R14)
859     MOV @R15+,2(R14)
860     MOV @R15+,R14
861     MOV @R13+,R0
862     ENDCODE
863     [THEN]
864
865     [UNDEFINED] 2DUP
866     [IF]
867     CODE 2DUP
868     MOV R14,-2(R15)
869     MOV @R15,-4(R15)
870     SUB #4,R15
871     MOV @R13+,R0
872     ENDCODE
873     [THEN]
874
875     [UNDEFINED] 2DROP
876     [IF]
877     CODE 2DROP
878     ADD #2,R15
879     MOV @R15+,R14
880     MOV @R13+,R0
881     ENDCODE
882     [THEN]
883
884     [UNDEFINED] 2SWAP
885     [IF]
886     CODE 2SWAP
887     MOV @R15,R10
888     MOV 4(R15),0(R15)
889     MOV R10,4(R15)
890     MOV R14,R10
891     MOV 2(R15),R14
892     MOV R10,2(R15)
893     MOV @R13+,R0
894     ENDCODE
895     [THEN]
896
897     [UNDEFINED] 2OVER
898     [IF]
899     CODE 2OVER
900     SUB #4,R15
901     MOV R14,2(R15)
902     MOV 8(R15),0(R15)
903     MOV 6(R15),R14
904     MOV @R13+,R0
905     ENDCODE
906     [THEN]
907
908     [UNDEFINED] ALIGNED
909     [IF]
910     CODE ALIGNED
911     BIT #1,R14
912     ADDC #0,R14
913     MOV @R13+,R0
914     ENDCODE
915     [THEN]
916
917     [UNDEFINED] ALIGN
918     [IF]
919     CODE ALIGN
920     BIT #1,&$1DC8
921     ADDC #0,&$1DC8
922     MOV @R13+,R0
923     ENDCODE
924     [THEN]
925
926     [UNDEFINED] CHARS
927     [IF]
928     CODE CHARS
929     MOV @R13+,R0
930     ENDCODE
931     [THEN]
932
933     [UNDEFINED] CHAR+
934     [IF]
935     CODE CHAR+
936     ADD #1,R14
937     MOV @R13+,R0
938     ENDCODE
939     [THEN]
940
941     [UNDEFINED] CELLS
942     [IF]
943     CODE CELLS
944     ADD R14,R14
945     MOV @R13+,R0
946     ENDCODE
947     [THEN]
948
949     [UNDEFINED] CELL+
950     [IF]
951     CODE CELL+
952     ADD #2,R14
953     MOV @R13+,R0
954     ENDCODE
955     [THEN]
956
957     [UNDEFINED] CHAR
958     [IF]
959     : CHAR
960     $20 WORD 1+ C@
961     ;
962     [THEN]
963
964     [UNDEFINED] [CHAR]
965     [IF]
966     : [CHAR]
967     CHAR POSTPONE LITERAL
968     ; IMMEDIATE
969     [THEN]
970
971     [UNDEFINED] +!
972     [IF]
973     CODE +!
974     ADD @R15+,0(R14)
975     MOV @R15+,R14
976     MOV @R13+,R0
977     ENDCODE
978     [THEN]
979
980     [UNDEFINED] MOVE
981     [IF]
982     CODE MOVE
983     MOV R14,R10
984     MOV @R15+,R8
985     MOV @R15+,R9
986     MOV @R15+,R14
987     CMP #0,R10
988     0<> IF
989         CMP R9,R8
990         0<> IF
991             U< IF
992                 BEGIN
993                     MOV.B @R9+,0(R8)
994                     ADD #1,R8
995                     SUB #1,R10
996                 0= UNTIL
997                 MOV @R13+,R0
998             THEN
999             ADD R10,R8
1000             ADD R10,R9
1001             BEGIN
1002                 SUB #1,R9
1003                 SUB #1,R8
1004                 MOV.B @R9,0(R8)
1005                 SUB #1,R10
1006             0= UNTIL
1007         THEN
1008     THEN
1009     MOV @R13+,R0
1010     ENDCODE
1011     [THEN]
1012
1013     [UNDEFINED] FILL
1014     [IF]
1015     CODE FILL
1016     MOV @R15+,R9
1017     MOV @R15+,R10
1018     CMP #0,R9
1019     0<> IF
1020         BEGIN
1021             MOV.B R14,0(R10)
1022             ADD #1,R10
1023             SUB #1,R9
1024         0= UNTIL
1025     THEN
1026     MOV @R15+,R14
1027     MOV @R13+,R0
1028     ENDCODE
1029     [THEN]
1030
1031     [UNDEFINED] HEX
1032     [IF]
1033     CODE HEX
1034     MOV #$10,&$1DBE
1035     MOV @R13+,R0
1036     ENDCODE
1037     [THEN]
1038
1039
1040     [UNDEFINED] DECIMAL
1041     [IF]
1042     CODE DECIMAL
1043     MOV #$0A,&$1DBE
1044     MOV @R13+,R0
1045     ENDCODE
1046     [THEN]
1047
1048     [UNDEFINED] (   ; )
1049     [IF]
1050     : (
1051     ')' WORD DROP
1052     ; IMMEDIATE
1053     [THEN]
1054
1055     [UNDEFINED] .(  ; "
1056     [IF]
1057     CODE .(         ; "
1058     MOV #0,&$1DC0
1059     COLON
1060     ')' WORD
1061     COUNT TYPE
1062     HI2LO
1063     MOV #$20,&$1DC0
1064     MOV @R1+,R13
1065     MOV @R13+,R0
1066     ENDCODE IMMEDIATE
1067     [THEN]
1068
1069     [UNDEFINED] >BODY
1070     [IF]
1071     CODE >BODY
1072     ADD #4,R14
1073     MOV @R13+,R0
1074     ENDCODE
1075     [THEN]
1076
1077     [UNDEFINED] EXECUTE
1078     [IF]
1079     CODE EXECUTE
1080     PUSH R14
1081     MOV @R15+,R14
1082     MOV @R1+,R0
1083     ENDCODE
1084     [THEN]
1085
1086     [UNDEFINED] EVALUATE
1087     [IF]
1088     CODE EVALUATE
1089     MOV #$1DC2,R9
1090     MOV @R9+,R12
1091     MOV @R9+,R11
1092     MOV @R9+,R10
1093     PUSHM #4,R13
1094     LO2HI
1095     [ ' \ 8 + , ]
1096     HI2LO
1097     MOV @R1+,&$1DC6
1098     MOV @R1+,&$1DC4
1099     MOV @R1+,&$1DC2
1100     MOV @R1+,R13
1101     MOV @R13+,R0
1102     ENDCODE
1103     [THEN]
1104
1105     [UNDEFINED] RECURSE
1106     [IF]
1107     CODE RECURSE
1108     MOV &$1DC8,R9
1109     MOV &$1DB8,0(R9)
1110     ADD #2,&$1DC8
1111     MOV @R13+,R0
1112     ENDCODE IMMEDIATE
1113     [THEN]
1114
1115     [UNDEFINED] SOURCE
1116     [IF]
1117     CODE SOURCE
1118     SUB #4,R15
1119     MOV R14,2(R15)
1120     MOV &$1DC2,R14
1121     MOV &$1DC4,0(R15)
1122     MOV @R13+,R0
1123     ENDCODE
1124     [THEN]
1125
1126     [UNDEFINED] VARIABLE
1127     [IF]
1128     : VARIABLE
1129     CREATE
1130     HI2LO
1131     MOV #$1287,-4(R10)
1132     MOV @R1+,R13
1133     MOV @R13+,R0
1134     ENDCODE
1135     [THEN]
1136
1137     [UNDEFINED] CONSTANT
1138     [IF]
1139     : CONSTANT
1140     CREATE
1141     HI2LO
1142     MOV R14,-2(R10)
1143     MOV @R15+,R14
1144     MOV @R1+,R13
1145     MOV @R13+,R0
1146     ENDCODE
1147     [THEN]
1148
1149     [UNDEFINED] STATE
1150     [IF]
1151     $1DBC CONSTANT STATE
1152     [THEN]
1153
1154     [UNDEFINED] BASE
1155     [IF]
1156     $1DBE  CONSTANT BASE
1157     [THEN]
1158
1159     [UNDEFINED] >IN
1160     [IF]
1161     $1DC6 CONSTANT >IN
1162     [THEN]
1163
1164     [UNDEFINED] PAD
1165     [IF]
1166     $1CE4 CONSTANT PAD
1167     [THEN]
1168
1169     [UNDEFINED] BL
1170     [IF]
1171     $20 CONSTANT BL
1172     [THEN]
1173
1174     [UNDEFINED] SPACE
1175     [IF]
1176     : SPACE
1177     $20 EMIT ;
1178     [THEN]
1179
1180     [UNDEFINED] SPACES
1181     [IF]
1182     : SPACES
1183     BEGIN
1184         ?DUP
1185     WHILE
1186         $20 EMIT
1187         1-
1188     REPEAT
1189     ;
1190     [THEN]
1191
1192     [UNDEFINED] DEFER
1193     [IF]
1194     : DEFER
1195     CREATE
1196     HI2LO
1197     MOV #$4030,-4(R10)
1198     MOV #$40B4,-2(R10)
1199     MOV @R1+,R13
1200     MOV @R13+,R0
1201     ENDCODE
1202     [THEN]
1203
1204     [UNDEFINED] CR
1205     [IF]
1206
1207     CODE CR
1208     MOV #$40B4,R0
1209     ENDCODE
1210
1211     :NONAME
1212     $0D EMIT $0A EMIT
1213     ; IS CR
1214     [THEN]
1215
1216     [UNDEFINED] TO
1217     [IF]
1218     CODE TO
1219     BIS #$200,R2
1220     MOV @R13+,R0
1221     ENDCODE
1222     [THEN]
1223
1224     [UNDEFINED] VALUE
1225     [IF]
1226     : VALUE
1227     CREATE ,
1228     DOES>
1229     HI2LO
1230     MOV @R1+,R13
1231     BIT #$200,R2
1232     0= IF
1233         MOV @R14,R14
1234         MOV @R13+,R0
1235     THEN
1236     BIC #$200,R2
1237     MOV #!,R0
1238     ENDCODE
1239     [THEN]
1240
1241     [UNDEFINED] CASE
1242     [IF]
1243
1244     : CASE 0
1245     ; IMMEDIATE
1246
1247     : OF
1248     1+
1249     >R
1250     POSTPONE OVER POSTPONE =
1251     POSTPONE IF
1252     POSTPONE DROP
1253     R>
1254     ; IMMEDIATE
1255
1256     : ENDOF
1257     >R
1258     POSTPONE ELSE
1259     R>
1260     ; IMMEDIATE
1261
1262     : ENDCASE
1263     POSTPONE DROP
1264     0 DO POSTPONE THEN
1265     LOOP
1266     ; IMMEDIATE
1267     [THEN]
1268
1269     RST_SET
1270
1271     ECHO
1272 ; CORE_ANS.4th for MSP_EXP430FR5994 is loaded
1273