OSDN Git Service

V3.5 ABORT messages display I2C address
[fast-forth/master.git] / MSP430-FORTH / MSP_EXP430FR5994 / SD_TOOLS.4TH
1
2 ; ---------------------------------------------------------------
3 ; SD_TOOLS.4th for MSP_EXP430FR5994 : BASIC TOOLS for SD Card : DIR FAT SECTOR CLUSTER
4 ; ---------------------------------------------------------------
5
6 PWR_STATE
7
8 [DEFINED] {SD_TOOLS} [IF]  {SD_TOOLS} [THEN]
9
10 [UNDEFINED] {SD_TOOLS} [IF]
11
12 MARKER {SD_TOOLS}
13
14 [UNDEFINED] + [IF]
15 CODE +
16 ADD @R15+,R14
17 MOV @R13+,R0
18 ENDCODE
19 [THEN]
20
21 [UNDEFINED] MAX [IF]
22
23 CODE MAX
24     CMP @R15,R14
25     S<  ?GOTO FW1
26 BW1 ADD #2,R15
27     MOV @R13+,R0
28 ENDCODE
29
30 CODE MIN
31     CMP @R15,R14
32     S<  ?GOTO BW1
33 FW1 MOV @R15+,R14
34     MOV @R13+,R0
35 ENDCODE
36
37 [THEN]
38
39 [UNDEFINED] C@ [IF]
40 CODE C@
41 MOV.B @R14,R14
42 MOV @R13+,R0
43 ENDCODE
44 [THEN]
45
46 [UNDEFINED] ! [IF]
47 CODE !
48 MOV @R15+,0(R14)
49 MOV @R15+,R14
50 MOV @R13+,R0
51 ENDCODE
52 [THEN]
53
54 [UNDEFINED] SPACE [IF]
55 : SPACE
56 $20 EMIT ;
57 [THEN]
58
59 [UNDEFINED] SPACES [IF]
60 CODE SPACES
61 CMP #0,R14
62 0<> IF
63     PUSH R13
64     BEGIN
65         LO2HI
66         $20 EMIT
67         HI2LO
68         SUB #2,R13 
69         SUB #1,R14
70     0= UNTIL
71     MOV @R1+,R13
72 THEN
73 MOV @R15+,R14
74 MOV @R13+,R0              
75 ENDCODE
76 [THEN]
77
78 [UNDEFINED] SWAP [IF]
79 CODE SWAP
80 MOV @R15,R10
81 MOV R14,0(R15)
82 MOV R10,R14
83 MOV @R13+,R0
84 ENDCODE
85 [THEN]
86
87 [UNDEFINED] OVER [IF]
88 CODE OVER
89 MOV R14,-2(R15)
90 MOV @R15,R14
91 SUB #2,R15
92 MOV @R13+,R0
93 ENDCODE
94 [THEN]
95
96 [UNDEFINED] >R [IF]
97 CODE >R
98 PUSH R14
99 MOV @R15+,R14
100 MOV @R13+,R0
101 ENDCODE
102 [THEN]
103
104 [UNDEFINED] R> [IF]
105 CODE R>
106 SUB #2,R15
107 MOV R14,0(R15)
108 MOV @R1+,R14
109 MOV @R13+,R0
110 ENDCODE
111 [THEN]
112
113 [UNDEFINED] - [IF]
114 CODE -
115 SUB @R15+,R14
116 XOR #-1,R14
117 ADD #1,R14
118 MOV @R13+,R0
119 ENDCODE
120 [THEN]
121
122 [UNDEFINED] U.R [IF]
123 : U.R
124   >R  <# 0 # #S #>  
125   R> OVER - 0 MAX SPACES TYPE
126 ;
127 [THEN]
128
129 [UNDEFINED] DO [IF]
130 CODE DO
131 SUB #2,R15
132 MOV R14,0(R15)
133 ADD #2,&$1DC6
134 MOV &$1DC6,R14
135 MOV #$404C,-2(R14)
136 ADD #2,&$1C00
137 MOV &$1C00,R10
138 MOV #0,0(R10)
139 MOV @R13+,R0
140 ENDCODE IMMEDIATE
141
142 CODE LOOP
143     MOV #$406E,R9
144 BW1 ADD #4,&$1DC6
145     MOV &$1DC6,R10
146     MOV R9,-4(R10)
147     MOV R14,-2(R10)
148 BEGIN
149     MOV &$1C00,R14
150     SUB #2,&$1C00
151     MOV @R14,R14
152     CMP #0,R14
153 0<> WHILE
154     MOV R10,0(R14)
155 REPEAT
156     MOV @R15+,R14
157     MOV @R13+,R0
158 ENDCODE IMMEDIATE
159
160 CODE +LOOP
161 MOV #$405C,R9
162 GOTO BW1
163 ENDCODE IMMEDIATE
164 [THEN]
165
166 [UNDEFINED] I [IF]
167 CODE I
168 SUB #2,R15
169 MOV R14,0(R15)
170 MOV @R1,R14
171 SUB 2(R1),R14
172 MOV @R13+,R0
173 ENDCODE
174 [THEN]
175
176 [UNDEFINED] DUMP [IF]
177 CODE DUMP
178 PUSH R13
179 PUSH &$1DDC
180 MOV #$10,&$1DDC
181 ADD @R15,R14
182 LO2HI
183   SWAP
184   DO  CR
185     I 4 U.R SPACE
186       I 8 + I
187       DO I C@ 3 U.R LOOP
188       SPACE
189       I $10 + I 8 +
190       DO I C@ 3 U.R LOOP  
191       SPACE SPACE
192       I $10 + I
193       DO I C@ $7E MIN $20 MAX EMIT LOOP
194   $10 +LOOP
195   R> $1DDC !
196 ;
197 [THEN]
198
199 CODE SECTOR
200 BW1 MOV     R14,R9
201     MOV     @R15,R10
202     CALL    &$1818
203 COLON
204     <# #S #> TYPE SPACE
205     $1E00 $200 DUMP CR ;
206
207 CODE CLUSTER
208 BW2 BIT.B   #4,&$260
209     0<> IF
210         MOV #COLD,R0
211     THEN
212     MOV.B &$2012,R10
213     MOV @R15,R9
214     GOTO FW1
215     BEGIN
216         ADD R9,R9
217         ADDC R14,R14
218 FW1     RRA R10
219     U>= UNTIL
220     ADD     &$2010,R9
221     MOV     R9,0(R15)      
222     ADDC    #0,R14
223     GOTO    BW1
224 ENDCODE
225
226 CODE FAT
227     SUB     #4,R15
228     MOV     R14,2(R15)
229     MOV     &$2008,0(R15)
230     MOV     #0,R14
231     GOTO    BW1
232 ENDCODE
233
234 CODE DIR
235     SUB     #4,R15
236     MOV     R14,2(R15)
237     MOV     &$202C,0(R15)
238     MOV     &$202E,R14
239     CMP     #0,R14
240     0<>     ?GOTO BW2
241     CMP     #1,0(R15)
242     0<>     ?GOTO BW2
243     MOV     &$200E,0(R15)
244     GOTO    BW1
245 ENDCODE
246
247
248 RST_HERE
249
250 [THEN]
251 ECHO
252