OSDN Git Service

la der de der
[fast-forth/master.git] / MSP430-FORTH / SD_430FR5994 / CHNGBAUD.4TH
index 916f6ee..cda3422 100644 (file)
     0<> IF MOV #0,R14 THEN
     MOV R14,0(R15)
     MOV &$180A,R14
-    SUB #400,R14
+    SUB #401,R14
     COLON
     $0D EMIT
-    ABORT" FastForth V4.0 please!"
+    ABORT" FastForth V4.1 please!"
     ABORT" <-- Ouch! unexpected I2C_FastForth target!"
     RST_RET
     ;
@@ -58,7 +58,7 @@ BW1 SUB #2,R15
     [UNDEFINED] CR [IF]
 
     CODE CR
-    MOV #$409E,R0
+    MOV #[THEN],R0
     ENDCODE
 
     :NONAME
@@ -77,7 +77,7 @@ BW1 SUB #2,R15
     CODE U/
     SUB #2,R15
     MOV #0,0(R15)
-    CALL #$4028
+    CALL #<#+8
     MOV @R15,R14
     ADD #4,R15
     MOV @R13+,R0
@@ -135,15 +135,15 @@ FW1 AND #0,R14
     CODE IF
     SUB #2,R15
     MOV R14,0(R15)
-    MOV &$1DC0,R14
-    ADD #4,&$1DC0
-    MOV #$4096,0(R14)
+    MOV &$1DBE,R14
+    ADD #4,&$1DBE
+    MOV #[THEN]+$52,0(R14)
     ADD #2,R14
     MOV @R13+,R0
     ENDCODE IMMEDIATE
 
     CODE THEN
-    MOV &$1DC0,0(R14)
+    MOV &$1DBE,0(R14)
     MOV @R15+,R14
     MOV @R13+,R0
     ENDCODE IMMEDIATE
@@ -151,9 +151,9 @@ FW1 AND #0,R14
 
     [UNDEFINED] ELSE [IF]
     CODE ELSE
-    ADD #4,&$1DC0
-    MOV &$1DC0,R10
-    MOV #$409C,-4(R10)
+    ADD #4,&$1DBE
+    MOV &$1DBE,R10
+    MOV #[THEN]+$58,-4(R10)
     MOV R10,0(R14)
     SUB #2,R10
     MOV R10,R14
@@ -175,8 +175,8 @@ FW1 AND #0,R14
     CODE DO
     SUB #2,R15
     MOV R14,0(R15)
-    ADD #2,&$1DC0
-    MOV &$1DC0,R14
+    ADD #2,&$1DBE
+    MOV &$1DBE,R14
     MOV #XDO,-2(R14)
     ADD #2,&$1C00
     MOV &$1C00,R10
@@ -198,8 +198,8 @@ BW1 BIT #$100,R2
 
     CODE LOOP
     MOV #XLOOP,R9
-BW2 ADD #4,&$1DC0
-    MOV &$1DC0,R10
+BW2 ADD #4,&$1DBE
+    MOV &$1DBE,R10
     MOV R9,-4(R10)
     MOV R14,-2(R10)
     BEGIN
@@ -281,13 +281,13 @@ BW2 ADD #4,&$1DC0
 
     : BAD_MHz
     $20 DUP EMIT
-            ABORT" only for 1,4,8,16,24 MHz MCLK!"
+            ABORT" only for 1, 2, 4, 8, 12, 16, 20, 24 MHz MCLK!"
     ;
 
-    : OVR_BAUDS
+    : OVER_BDS
     $20 DUP EMIT ESC [7m
-            ." with MCLK = " $1800 @ 1000 U/ .
-            ABORT" MHz? don't dream!"
+                ." with MCLK = " $1800 @ 1000 U/ .
+            ABORT" MHz ? don't dream!"
     ;
 
     : CHNGBAUD
@@ -300,168 +300,217 @@ BW2 ADD #4,&$1DC0
     $1800 @ DUP >R
     ." target MCLK = " 1000 U/ . ." MHz" CR
     ." choose your baudrate:" CR
-    ."  0 --> 6 MBds" CR
-    ."  1 --> 5 MBds" CR
-    ."  2 --> 4 MBds" CR
-    ."  3 --> 3 MBds" CR
-    ."  4 --> 1843200 Bds" CR
-    ."  5 --> 921600 Bds" CR
-    ."  6 --> 460800 Bds" CR
-    ."  7 --> 230400 Bds" CR
-    ."  8 --> 115200 Bds" CR
-    ."  9 --> 38400 Bds" CR
-    ."  A --> 19200 Bds" CR
-    ."  B --> 9600 Bds" CR
-    ." other --> abort" CR
+    ."   0 --> 6 MBds" CR
+    ."   1 --> 5 MBds" CR
+    ."   2 --> 4 MBds" CR
+    ."   3 --> 3 MBds" CR
+    ."   4 --> 1843200 Bds" CR
+    ."   5 --> 921600 Bds" CR
+    ."   6 --> 460800 Bds" CR
+    ."   7 --> 230400 Bds" CR
+    ."   8 --> 115200 Bds" CR
+    ."   9 --> 57600 Bds" CR
+    ."   A --> 38400 Bds" CR
+    ."   B --> 19200 Bds" CR
+    ."   C --> 9600 Bds" CR
+    ."   D --> DMX interface (250000 Bds)" CR
+    ."   M --> MIDI interface (31250 Bds)" CR
+    ." other --> quit" CR
     ." your choice: "
     KEY
     CASE
-    #48 OF  ." 6 MBds"
+    #'0' OF  ." 6 MBds"
             R> CASE
-                #24000 OF $4 $0
-                    ENDOF
-                24000 <
-                IF OVR_BAUDS
+                #24000  OF $4  $0       ENDOF
+                #20000  OF $3  $4900    ENDOF
+                20000 <
+                IF OVER_BDS
                 THEN BAD_MHz
             ENDCASE
         ENDOF
-    #49 OF  ." 5 MBds"
+    #'1' OF  ." 5 MBds"
             R> CASE
-                #24000 OF $4 $EE00  ENDOF
-                #20000 OF $4 $0     ENDOF
+                #24000  OF $4  $EE00    ENDOF
+                #20000  OF $4  $0       ENDOF
                 20000 <
-                IF OVR_BAUDS
+                IF OVER_BDS
                 THEN BAD_MHz
             ENDCASE
         ENDOF
-    #50 OF  ." 4 MBds"
+    #'2' OF  ." 4 MBds"
             R> CASE
-                #24000 OF $6 $0     ENDOF
-                #20000 OF $5 $0     ENDOF
-                #16000 OF $4 $0     ENDOF
+                #24000  OF $6  $0       ENDOF
+                #20000  OF $5  $0       ENDOF
+                #16000  OF $4  $0       ENDOF
                 16000 <
-                IF OVR_BAUDS
+                IF OVER_BDS
                 THEN BAD_MHz
             ENDCASE
         ENDOF
-    #51 OF  ." 3 MBds"
+    #'3' OF  ." 3 MBds"
             R> CASE
-                #24000 OF $8 $0     ENDOF
-                #20000 OF $6 $D600  ENDOF
-                #16000 OF $5 $4900  ENDOF
-                #12000 OF $4 $0     ENDOF
+                #24000  OF $8  $0       ENDOF
+                #20000  OF $6  $D600    ENDOF
+                #16000  OF $5  $4900    ENDOF
+                #12000  OF $4  $0       ENDOF
                 12000 <
-                IF OVR_BAUDS
+                IF OVER_BDS
                 THEN BAD_MHz
             ENDCASE
         ENDOF
-    #52 OF  ." 1843200 Bds"
+    #'4' OF  ." 1843200 Bds"
             R> CASE
-                #24000 OF $0D $0200 ENDOF
-                #20000 OF $0A $DF00 ENDOF
-                #16000 OF $8 $D600  ENDOF
-                #12000 OF $6 $AA00  ENDOF
-                #8000  OF $5 $9200  ENDOF
+                #24000  OF $0D $0200    ENDOF
+                #20000  OF $0A $DF00    ENDOF
+                #16000  OF $8  $D600    ENDOF
+                #12000  OF $6  $AA00    ENDOF
+                #8000   OF $5  $9200    ENDOF
                 8000 <
-                IF OVR_BAUDS
+                IF OVER_BDS
                 THEN BAD_MHz
             ENDCASE
         ENDOF
-    #53 OF  ." 921600 Bds"
+    #'5' OF  ." 921600 Bds"
             R> CASE
-                #24000 OF $1 $00A1  ENDOF
-                #20000 OF $1 $B751  ENDOF
-                #16000 OF $11 $4A00 ENDOF
-                #12000 OF $0D $0200  ENDOF
-                #8000  OF $8 $D600  ENDOF
-                #4000  OF $4 $4900  ENDOF
+                #24000  OF $1  $00A1    ENDOF
+                #20000  OF $1  $B751    ENDOF
+                #16000  OF $11 $4A00    ENDOF
+                #12000  OF $0D $0200    ENDOF
+                #8000   OF $8  $D600    ENDOF
+                #4000   OF $4  $4900    ENDOF
                 4000 <
-                IF OVR_BAUDS
+                IF OVER_BDS
                 THEN BAD_MHz
             ENDCASE
         ENDOF
-    #54 OF  ." 460800 Bds"
+    #'6' OF  ." 460800 Bds"
             R> CASE
-                #24000 OF $3 $0241  ENDOF
-                #20000 OF $2 $92B1  ENDOF
-                #16000 OF $2 $BB21  ENDOF
-                #12000 OF $1 $00A1  ENDOF
-                #8000  OF $11 $4A00 ENDOF
-                #4000  OF $8 $D600  ENDOF
-                #2000  OF $4 $4900  ENDOF
+                #24000  OF $3  $0241    ENDOF
+                #20000  OF $2  $92B1    ENDOF
+                #16000  OF $2  $BB21    ENDOF
+                #12000  OF $1  $00A1    ENDOF
+                #8000   OF $11 $4A00    ENDOF
+                #4000   OF $8  $D600    ENDOF
+                #2000   OF $4  $4900    ENDOF
                 2000 <
-                IF OVR_BAUDS
+                IF OVER_BDS
                 THEN BAD_MHz
             ENDCASE
         ENDOF
-    #55 OF  ." 230400 Bds"
+    #'7' OF  ." 230400 Bds"
             R> CASE
-                #24000 OF $6 $2081  ENDOF
-                #20000 OF $5 $EE61  ENDOF
-                #16000 OF $4 $5551  ENDOF
-                #12000 OF $3 $0241  ENDOF
-                #8000  OF $2 $BB21  ENDOF
-                #4000  OF $11 $4A00 ENDOF
-                #2000  OF $8 $D600  ENDOF
-                #1000  OF $4 $4900  ENDOF
-                1000 <
-                IF OVR_BAUDS
-                THEN BAD_MHz
+                #24000  OF $6  $2081    ENDOF
+                #20000  OF $5  $EE61    ENDOF
+                #16000  OF $4  $5551    ENDOF
+                #12000  OF $3  $0241    ENDOF
+                #8000   OF $2  $BB21    ENDOF
+                #4000   OF $11 $4A00    ENDOF
+                #2000   OF $8  $D600    ENDOF
+                #1000   OF $4  $4900    ENDOF
+                BAD_MHz
             ENDCASE
         ENDOF
-    #56 OF  ." 115200 Bds"
+    #'8' OF  ." 115200 Bds"
             R> CASE
-                #24000 OF $0D $4901 ENDOF
-                #20000 OF $0A $AD01 ENDOF
-                #16000 OF $8 $F7A1  ENDOF
-                #12000 OF $6 $2081  ENDOF
-                #8000  OF $4 $5551  ENDOF
-                #4000  OF $2 $BB21  ENDOF
-                #2000  OF $11 $4A00 ENDOF
-                #1000  OF $8 $D600  ENDOF
-                #500   OF $4 $4900  ENDOF
-                500 <
-                IF OVR_BAUDS
-                THEN BAD_MHz
+                #24000  OF $0D $4901    ENDOF
+                #20000  OF $0A $AD01    ENDOF
+                #16000  OF $8  $F7A1    ENDOF
+                #12000  OF $6  $2081    ENDOF
+                #8000   OF $4  $5551    ENDOF
+                #4000   OF $2  $BB21    ENDOF
+                #2000   OF $11 $4A00    ENDOF
+                #1000   OF $8  $D600    ENDOF
+                BAD_MHz
+            ENDCASE
+        ENDOF
+    #'9' OF  ." 57600 Bds"
+            R> CASE
+                #24000  OF $1A $D601    ENDOF
+                #20000  OF $15 $00A1    ENDOF
+                #16000  OF $11 $DD51    ENDOF
+                #12000  OF $0D $4901    ENDOF
+                #8000   OF $8  $F7A1    ENDOF
+                #4000   OF $4  $5551    ENDOF
+                #2000   OF $2  $BB21    ENDOF
+                #1000   OF $11 $4A00    ENDOF
+                BAD_MHz
             ENDCASE
         ENDOF
-    #57 OF  ." 38400 Bds"
+    #'A' OF  ." 38400 Bds"
             R> CASE
                 #24000  OF $27 $0011    ENDOF
+                #20000  OF $20 $BF01    ENDOF
                 #16000  OF $1A $D601    ENDOF
+                #12000  OF $13 $5581    ENDOF
                 #8000   OF $0D $4901    ENDOF
-                #4000   OF $6 $2081     ENDOF
-                #1000   OF $1 $00A1     ENDOF
+                #4000   OF $6  $2081    ENDOF
+                #2000   OF $3  $0241    ENDOF
+                #1000   OF $1  $00A1    ENDOF
                 BAD_MHz
             ENDCASE
         ENDOF
-    #65 OF  ." 19200 Bds"
+    #'B' OF  ." 19200 Bds"
             R> CASE
                 #24000  OF $4E $0021    ENDOF
+                #20000  OF $41 $D611    ENDOF
                 #16000  OF $34 $4911    ENDOF
+                #12000  OF $27 $0011    ENDOF
                 #8000   OF $1A $D601    ENDOF
                 #4000   OF $0D $4901    ENDOF
-                #1000   OF $3 $0241     ENDOF
+                #2000   OF $6  $2081    ENDOF
+                #1000   OF $3  $0241    ENDOF
                 BAD_MHz
             ENDCASE
         ENDOF
-    #66 OF  ." 9600 Bds"
+    #'C' OF  ." 9600 Bds"
             R> CASE
                 #24000  OF $9C $0041    ENDOF
+                #20000  OF $82 $2531    ENDOF
                 #16000  OF $68 $D621    ENDOF
+                #12000  OF $4E $0021    ENDOF
                 #8000   OF $34 $4911    ENDOF
                 #4000   OF $1A $D601    ENDOF
-                #1000   OF $6 $2081     ENDOF
+                #2000   OF $13 $4901    ENDOF
+                #1000   OF $6  $2081    ENDOF
                 BAD_MHz
             ENDCASE
         ENDOF
-        ." abort" ABORT" "
+    #'D' OF  ." DMX interface (250000 Bds)"
+            R> CASE
+                #24000  OF $6  $1       ENDOF
+                #20000  OF $5  $1       ENDOF
+                #16000  OF $4  $1       ENDOF
+                #12000  OF $3  $1       ENDOF
+                #8000   OF $2  $1       ENDOF
+                #4000   OF $10 $0       ENDOF
+                #2000   OF $8  $0       ENDOF
+                #1000   OF $4  $0       ENDOF
+                BAD_MHz
+            ENDCASE
+        ENDOF
+    #'M' OF  ." MIDI interface (31250 Bds)"
+            R> CASE
+                #24000  OF $30 $1       ENDOF
+                #20000  OF $28 $1       ENDOF
+                #16000  OF $20 $1       ENDOF
+                #12000  OF $18 $1       ENDOF
+                #8000   OF $10 $1       ENDOF
+                #4000   OF $8  $1       ENDOF
+                #2000   OF $4  $1       ENDOF
+                #1000   OF $2  $1       ENDOF
+                BAD_MHz
+            ENDCASE
+        ENDOF
+        ABORT" "
     ENDCASE
     $1804 !
     $1802 !
     CR ESC [7m
-    ." Change baudrate in Teraterm, save its setup, then reset target."
+    ." Change baudrate in Teraterm, save its setup, then hit a key."
     ESC [0m
+    CR
+    KEY
+    0 SYS
     ;
 
     CHNGBAUD