OSDN Git Service

V300, la Der de Der
[fast-forth/master.git] / MSP430-FORTH / MSP_EXP430FR5994 / UTILITY.4TH
1
2 ; ------------------------------------------------------------------------------
3 ; UTILITY.4th
4 ; ------------------------------------------------------------------------------
5
6
7 : DEFINED! ECHO 1 ABORT" already loaded!" ;
8
9 [DEFINED] {TOOLS} [IF] DEFINED!
10
11 [ELSE]
12
13 PWR_STATE
14
15 MARKER {TOOLS} 
16
17 [UNDEFINED] ? [IF]
18 CODE ?          
19     MOV @R14,R14
20     MOV #U.,R0
21 ENDCODE
22 [THEN]
23
24 [UNDEFINED] .S [IF]
25 CODE .S
26     MOV     R14,-2(R15)
27     MOV     R15,R14
28     SUB     #2,R14
29     MOV     R14,-6(R15)
30     MOV     #$1C80,R14
31     SUB     #2,R14
32 BW1 MOV     R14,-4(R15)
33     SUB     #6,R15
34     SUB     @R15,R14
35     RRA     R14
36 COLON
37     $3C EMIT
38     .
39     $08 EMIT
40     $3E EMIT SPACE
41     OVER OVER >
42     0= IF 
43         DROP DROP EXIT
44     THEN
45     BASE @ >R
46     $10 BASE !
47     DO 
48         I @ U.
49     2 +LOOP
50     R> BASE !
51 ;
52 [THEN]
53
54 [UNDEFINED] .RS [IF]
55 CODE .RS
56     MOV     R14,-2(R15)
57     MOV     R1,-6(R15)
58     MOV     #$1CE0,R14
59     GOTO    BW1
60 ENDCODE
61 [THEN]
62
63 [UNDEFINED] AND [IF]
64
65 CODE AND
66 AND @R15+,R14
67 MOV @R13+,R0
68 ENDCODE
69
70 [THEN]
71
72 [UNDEFINED] PAD [IF]
73
74 $1CE4 CONSTANT PAD
75
76 [THEN]
77
78
79 [UNDEFINED] WORDS [IF]
80 : WORDS
81 CR 
82 $1DCA @ PAD
83 $1800 @ DUP +
84 MOVE
85 BEGIN
86     0 DUP
87     $1800 @ DUP + 0
88         DO
89         DUP I PAD + @
90             U< IF
91                 DROP DROP
92                 I DUP PAD + @
93             THEN
94         2 +LOOP
95     ?DUP
96 WHILE
97     DUP
98     2 - @
99     ROT
100     PAD +
101     !
102     DUP
103     COUNT $7F AND
104     TYPE
105     C@ $0F AND
106     $10 SWAP - SPACES
107 REPEAT
108 DROP
109 ;
110 [THEN]
111
112 [UNDEFINED] MAX [IF]
113     CODE MAX
114         CMP @R15,R14
115         S< ?GOTO FW1
116     BW1 ADD #2,R15
117         MOV @R13+,R0
118     ENDCODE
119
120     CODE MIN
121         CMP @R15,R14
122         S< ?GOTO BW1
123     FW1 MOV @R15+,R14
124         MOV @R13+,R0
125     ENDCODE
126 [THEN]
127
128 [UNDEFINED] U.R [IF]
129 : U.R
130 >R  <# 0 # #S #>  
131 R> OVER - 0 MAX SPACES TYPE
132 ;
133 [THEN]
134
135 [UNDEFINED] DUMP [IF]
136 CODE DUMP
137 PUSH R13
138 PUSH &BASE
139 MOV #$10,&BASE
140 ADD @R15,R14
141 LO2HI
142   SWAP OVER OVER
143   U. U.
144   $FFF0 AND
145   DO  CR
146     I 4 U.R SPACE
147       I 8 + I
148       DO I C@ 3 U.R LOOP
149       SPACE
150       I $10 + I 8 +
151       DO I C@ 3 U.R LOOP  
152       SPACE SPACE
153       I $10 + I
154       DO I C@ $7E MIN BL MAX EMIT LOOP
155   $10 +LOOP
156   R> BASE !
157 ;
158 [THEN]
159
160 RST_HERE
161
162 [THEN]
163 ECHO