OSDN Git Service

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