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
;
[UNDEFINED] CR [IF]
CODE CR
- MOV #$409E,R0
+ MOV #[THEN],R0
ENDCODE
:NONAME
CODE U/
SUB #2,R15
MOV #0,0(R15)
- CALL #$4028
+ CALL #<#+8
MOV @R15,R14
ADD #4,R15
MOV @R13+,R0
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
[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
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
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
: 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
$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