OSDN Git Service

Merge framagit.org:Jean-Mi/FAST-FORTH
[fast-forth/master.git] / MSP430-FORTH / SD_for_FR5994 / CHNGBAUD.4th
1
2 ; ------------
3 ; CHNGBAUD.4th
4 ; ------------
5
6 : BAD_MHz
7     1 ABORT"  only for 1,4,8,16,24 MHz MCLK!"
8 ;
9
10 : MCLK.
11 0 1000 UM/MOD .
12 ;
13
14 : BAD_SPEED
15 SPACE 27 EMIT ." [7m"
16 ." with MCLK = " MCLK. 1 ABORT" MHz? don't dream! "
17 ;
18
19 : <> = 0= ;
20
21 : CHNGBAUD
22 PWR_STATE
23 $1806 @ >R
24 ." target MCLK = " R@ MCLK. ." MHz" CR
25 ."    choose your baudrate:" CR
26 ."    0 --> 6 MBds" CR
27 ."    1 --> 5 MBds" CR
28 ."    2 --> 4 MBds" CR
29 ."    3 --> 2457600 Bds" CR
30 ."    4 --> 921600 Bds" CR
31 ."    5 --> 460800 Bds" CR
32 ."    6 --> 230400 Bds" CR
33 ."    7 --> 115200 Bds" CR
34 ."    other --> abort" CR
35 ."    your choice: "
36 KEY
37
38 #48 - ?DUP 0=
39 IF  ." 6 MBds"
40     R@ #24000 <
41     IF  R@ BAD_SPEED
42     THEN
43     R@ #24000 <>
44     IF  BAD_MHz
45     THEN                
46     $4
47     $0
48 ELSE 1 - ?DUP 0=
49     IF  ." 5 MBds"
50         R@ #16000 <
51         IF  R@ BAD_SPEED
52         THEN
53         R@ #16000 =
54         IF  $3
55             $2100
56         ELSE R@ #24000 <>
57             IF  BAD_MHz
58             THEN
59             $4
60             $EE00
61         THEN
62     ELSE 1 - ?DUP 0=
63         IF  ." 4 MBds"
64             R@ #16000 <
65             IF  R@ BAD_SPEED
66             THEN
67             R@ #16000 =
68                 IF  $4
69                     $0
70                 ELSE R@ #24000 <>
71                     IF  BAD_MHz
72                     THEN
73                     $6
74                     $0
75                 THEN
76         ELSE 1 - ?DUP 0=
77             IF  ." 2457600 Bds"
78                 R@ #8000 <
79                 IF  R@ BAD_SPEED
80                 THEN
81                 R@ #8000 =
82                 IF  $3
83                     $4400
84                 ELSE R@ #16000 =
85                     IF  $6
86                         $AA00
87                     ELSE R@ #24000 <>
88                         IF  BAD_MHz
89                         THEN
90                         $9
91                         $DD00
92                     THEN
93                 THEN
94             ELSE 1 - ?DUP 0=
95                 IF  ." 921600 Bds"
96                     R@ #4000 <
97                     IF  R@ BAD_SPEED
98                     THEN
99                     R@ #4000 =
100                     IF  4
101                         $4900
102                     ELSE
103                         R@ #8000 =
104                         IF  8
105                             $D600
106                         ELSE R@ #16000 =
107                             IF  $11
108                                 $4A00
109                             ELSE R@ #24000 <>
110                                 IF  BAD_MHz
111                                 THEN
112                                 $1
113                                 $00A1
114                             THEN
115                         THEN
116                     THEN
117                 ELSE 1 - ?DUP 0=
118                     IF  ." 460800 Bds"
119                         R@ #4000 <
120                         IF  R@ BAD_SPEED
121                         THEN
122                         R@ #4000  =
123                         IF  8
124                             $D600
125                         ELSE
126                             R@ #8000  =
127                             IF  17
128                                 $4A00
129                             ELSE R@ #16000 =
130                                 IF  2
131                                     $BB21
132                                 ELSE R@ #24000 <>
133                                     IF  BAD_MHz
134                                     THEN
135                                     6
136                                     $0001
137                                 THEN
138                             THEN
139                         THEN
140                     ELSE 1 - ?DUP 0=
141                         IF  ." 230400 Bds"
142                             R@ #1000 <
143                             IF  R@ BAD_SPEED
144                             THEN
145                             R@ #1000 =
146                             IF  4
147                                 $4900
148                             ELSE
149                                 R@ #4000  =
150                                 IF  17
151                                     $4A00
152                                 ELSE
153                                     R@ #8000  =
154                                     IF  2
155                                         $BB21
156                                     ELSE R@ #16000 =
157                                         IF  4
158                                             $5551
159                                         ELSE R@ #24000 <>
160                                             IF  BAD_MHz
161                                             THEN
162                                             3
163                                             $0241
164                                         THEN
165                                     THEN
166                                 THEN
167                             THEN
168                         ELSE 1 - ?DUP 0=
169                             IF  ." 115200 Bds"
170                                 R@ #1000  =
171                                 IF  8
172                                     $D600
173                                 ELSE
174                                     R@ #4000  =
175                                     IF  2
176                                         $BB21
177                                     ELSE
178                                         R@ #8000  =
179                                         IF  4
180                                             $5551
181                                         ELSE R@ #16000 =
182                                             IF  8
183                                                 $F7A1
184                                             ELSE R@ #24000 <>
185                                                 IF  BAD_MHz
186                                                 THEN
187                                                 $0D
188                                                 $4901
189                                             THEN
190                                         THEN
191                                     THEN
192                                 THEN
193                             ELSE
194                                 ." abort" CR ABORT
195                             THEN
196                         THEN
197                     THEN
198                 THEN
199             THEN
200         THEN
201     THEN
202 THEN
203 $1804 !
204 $1802 !
205 R> DROP
206 CR ."    Change baudrate in Teraterm, save its setup then reset target."
207 ;
208 ECHO
209 CHNGBAUD