OSDN Git Service

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