OSDN Git Service

V300 beautified
[fast-forth/master.git] / MSP430-FORTH / MSP_EXP430FR5994 / SD_TOOLS.4TH
1
2 ; ---------------------------------------------------------------
3 ; SD_TOOLS.4th : BASIC TOOLS for SD Card : DIR FAT SECTOR CLUSTER
4 ; ---------------------------------------------------------------
5
6 PWR_STATE
7
8 : DEFINED! ECHO 1 ABORT" already loaded!" ;
9
10 [DEFINED] {SD_TOOLS} [IF] DEFINED!
11
12 [ELSE]
13
14 MARKER {SD_TOOLS}
15
16 [UNDEFINED] MAX [IF]
17
18 CODE MAX
19     CMP @R15,R14
20     S<  ?GOTO FW1
21 BW1 ADD #2,R15
22     MOV @R13+,R0
23 ENDCODE
24
25 CODE MIN
26     CMP @R15,R14
27     S<  ?GOTO BW1
28 FW1 MOV @R15+,R14
29     MOV @R13+,R0
30 ENDCODE
31
32 [THEN]
33
34 [UNDEFINED] U.R [IF]
35 : U.R
36   >R  <# 0 # #S #>  
37   R> OVER - 0 MAX SPACES TYPE
38 ;
39 [THEN]
40
41 [UNDEFINED] AND [IF]
42
43 CODE AND
44 AND @R15+,R14
45 MOV @R13+,R0
46 ENDCODE
47
48 [THEN]
49
50 [UNDEFINED] DUMP [IF]
51 CODE DUMP
52 PUSH R13
53 PUSH &BASE
54 MOV #$10,&BASE
55 ADD @R15,R14
56 LO2HI
57   SWAP OVER OVER
58   U. U.
59   $FFF0 AND
60   DO  CR
61     I 7 U.R SPACE
62       I $10 + I
63       DO I C@ 3 U.R LOOP  
64       SPACE SPACE
65       I $10 + I
66       DO I C@ $7E MIN BL MAX EMIT LOOP
67   $10 +LOOP
68   R> BASE !
69 ;
70 [THEN]
71
72 CODE SECTOR
73     MOV     R14,R9
74     MOV     @R15,R10
75     CALL    &$1818
76 COLON
77     <# #S #> TYPE SPACE
78     $1E00 $200 DUMP CR ;
79
80 CODE FAT
81     SUB     #4,R15
82     MOV     R14,2(R15)
83     MOV     &$2008,0(R15)
84     MOV     #0,R14
85     JMP     SECTOR
86 ENDCODE
87
88 CODE CLUSTER
89     MOV.B &$2012,R10
90     MOV @R15,R9
91     RRA R10
92     U< IF
93         BEGIN
94             ADD R9,R9
95             ADDC R14,R14
96             RRA R10
97         U>= UNTIL
98     THEN
99     ADD     &$2010,R9
100     MOV     R9,0(R15)      
101     ADDC    #0,R14
102     JMP     SECTOR
103 ENDCODE
104
105 CODE DIR
106     SUB     #4,R15
107     MOV     R14,2(R15)
108     MOV     &$202C,0(R15)
109     MOV     &$202E,R14
110     JMP     CLUSTER
111 ENDCODE
112
113
114 RST_HERE
115
116 [THEN]
117 ECHO
118 ; added : FAT to DUMP first sector of FAT1 and DIR for that of current DIRectory.
119 ; added : SECTOR to DUMP a sector and CLUSTER for first sector of a cluster:
120 ;         include a decimal point to force 32 bits number, example : .2 CLUSTER
121