OSDN Git Service

la der de der
[fast-forth/master.git] / MSP430-FORTH / SD_430FR5994 / RTC.4TH
index 9cbec52..b176bc5 100644 (file)
@@ -1,4 +1,8 @@
 
+; --------------------
+; RTC.4th for MSP_EXP430FR5994
+; --------------------
+
     CODE ABORT_RTC
     SUB #4,R15
     MOV R14,2(R15)
     0<> IF MOV #0,R14 THEN
     MOV R14,0(R15)
     MOV &$180A,R14
-    SUB #309,R14
+    SUB #401,R14
     COLON
     $0D EMIT
-    ABORT" FastForth V3.9 please!"
+    ABORT" FastForth V4.1 please!"
     ABORT" target without LF_XTAL !"
     RST_RET
     ;
 
     ABORT_RTC
 
-; --------------------
-; RTC.4th for MSP_EXP430FR5994
-; --------------------
-
-
     MARKER {RTC}
 
-    [UNDEFINED] OR 
-    [IF]
+; ------------------------------------------------------------------
+; first we download the set of definitions we need (from CORE_ANS.4th for MSP_EXP430FR5994)
+; ------------------------------------------------------------------
+
+    [UNDEFINED] OR [IF]
     CODE OR
     BIS @R15+,R14
     MOV @R13+,R0
     ENDCODE
     [THEN]
 
-    [UNDEFINED] C@ 
-    [IF]
+    [UNDEFINED] C@ [IF]
     CODE C@
     MOV.B @R14,R14
     MOV @R13+,R0
     ENDCODE
     [THEN]
 
-    [UNDEFINED] C! 
-    [IF]
+    [UNDEFINED] C! [IF]
     CODE C!
     MOV.B @R15+,0(R14)
     ADD #1,R15
@@ -50,8 +50,7 @@
     ENDCODE
     [THEN]
 
-    [UNDEFINED] SWAP 
-    [IF]
+    [UNDEFINED] SWAP [IF]
     CODE SWAP
     MOV @R15,R10
     MOV R14,0(R15)
@@ -60,8 +59,7 @@
     ENDCODE
     [THEN]
 
-    [UNDEFINED] OVER 
-    [IF]
+    [UNDEFINED] OVER [IF]
     CODE OVER
     MOV R14,-2(R15)
     MOV @R15,R14
@@ -70,8 +68,7 @@
     ENDCODE
     [THEN]
 
-    [UNDEFINED] DUP 
-    [IF]
+    [UNDEFINED] DUP [IF]
     CODE DUP
 BW1 SUB #2,R15
     MOV R14,0(R15)
@@ -85,16 +82,14 @@ BW1 SUB #2,R15
     ENDCODE
     [THEN]
 
-    [UNDEFINED] DROP 
-    [IF]
+    [UNDEFINED] DROP [IF]
     CODE DROP
     MOV @R15+,R14
     MOV @R13+,R0
     ENDCODE
     [THEN]
 
-    [UNDEFINED] DEPTH 
-    [IF]
+    [UNDEFINED] DEPTH [IF]
     CODE DEPTH
     MOV R14,-2(R15)
     MOV #$1C80,R14
@@ -105,8 +100,7 @@ BW1 SUB #2,R15
     ENDCODE
     [THEN]
 
-    [UNDEFINED] >R 
-    [IF]
+    [UNDEFINED] >R [IF]
     CODE >R
     PUSH R14
     MOV @R15+,R14
@@ -114,8 +108,7 @@ BW1 SUB #2,R15
     ENDCODE
     [THEN]
 
-    [UNDEFINED] R> 
-    [IF]
+    [UNDEFINED] R> [IF]
     CODE R>
     SUB #2,R15
     MOV R14,0(R15)
@@ -124,23 +117,21 @@ BW1 SUB #2,R15
     ENDCODE
     [THEN]
 
-    [UNDEFINED] 1+ 
-    [IF]
+    [UNDEFINED] 1+ [IF]
     CODE 1+
     ADD #1,R14
     MOV @R13+,R0
     ENDCODE
     [THEN]
 
-    [UNDEFINED] 1- 
-    [IF]
+    [UNDEFINED] 1- [IF]
     CODE 1-
     SUB #1,R14
     MOV @R13+,R0
     ENDCODE
     [THEN]
 
-    [UNDEFINED] U< 
+    [UNDEFINED] U<
     [IF]
     CODE U<
     SUB @R15+,R14
@@ -154,8 +145,7 @@ BW1 SUB #2,R15
     ENDCODE
     [THEN]
 
-    [UNDEFINED] = 
-    [IF]
+    [UNDEFINED] = [IF]
     CODE =
     SUB @R15+,R14
     0<> IF
@@ -167,40 +157,40 @@ BW1 SUB #2,R15
     ENDCODE
     [THEN]
 
-    [UNDEFINED] IF 
-    [IF]
+    [UNDEFINED] IF [IF]
+
     CODE IF
     SUB #2,R15
     MOV R14,0(R15)
-    MOV &$1DC8,R14
-    ADD #4,&$1DC8
-    MOV #$40AC,0(R14)
+    MOV &$1DBE,R14
+    ADD #4,&$1DBE
+    MOV #[THEN]+$52,0(R14)
     ADD #2,R14
     MOV @R13+,R0
     ENDCODE IMMEDIATE
 
     CODE THEN
-    MOV &$1DC8,0(R14)
+    MOV &$1DBE,0(R14)
     MOV @R15+,R14
     MOV @R13+,R0
     ENDCODE IMMEDIATE
     [THEN]
 
-    [UNDEFINED] ELSE 
-    [IF]
+    [UNDEFINED] ELSE [IF]
     CODE ELSE
-    ADD #4,&$1DC8
-    MOV &$1DC8,R10
-    MOV #$40B2,-4(R10)
+    ADD #4,&$1DBE
+    MOV &$1DBE,R10
+    MOV #[THEN]+$58,-4(R10)
     MOV R10,0(R14)
     SUB #2,R10
     MOV R10,R14
     MOV @R13+,R0
     ENDCODE IMMEDIATE
+
     [THEN]
 
-    [UNDEFINED] DO
-    [IF]
+    [UNDEFINED] DO [IF]
+
     HDNCODE XDO
     MOV #$8000,R9
     SUB @R15+,R9
@@ -211,11 +201,11 @@ BW1 SUB #2,R15
     MOV @R13+,R0
     ENDCODE
 
-    CODE DO            
+    CODE DO
     SUB #2,R15
     MOV R14,0(R15)
-    ADD #2,&$1DC8
-    MOV &$1DC8,R14
+    ADD #2,&$1DBE
+    MOV &$1DBE,R14
     MOV #XDO,-2(R14)
     ADD #2,&$1C00
     MOV &$1C00,R10
@@ -237,8 +227,8 @@ BW1 BIT #$100,R2
 
     CODE LOOP
     MOV #XLOOP,R9
-BW2 ADD #4,&$1DC8
-    MOV &$1DC8,R10
+BW2 ADD #4,&$1DBE
+    MOV &$1DBE,R10
     MOV R9,-4(R10)
     MOV R14,-2(R10)
     BEGIN
@@ -263,43 +253,43 @@ BW2 ADD #4,&$1DC8
     MOV #XPLOO,R9
     GOTO BW2
     ENDCODE IMMEDIATE
+
     [THEN]
 
-    [UNDEFINED] BEGIN 
-    [IF]
+    [UNDEFINED] BEGIN [IF]
 
     CODE BEGIN
-    MOV #$4032,R0
+    MOV #BEGIN,R0
     ENDCODE IMMEDIATE
-    
+
     CODE UNTIL
-    MOV #$40AC,R9
-BW1 ADD #4,&$1DC8
-    MOV &$1DC8,R10
+    MOV #[THEN]+$52,R9
+BW1 ADD #4,&$1DBE
+    MOV &$1DBE,R10
     MOV R9,-4(R10)
     MOV R14,-2(R10)
     MOV @R15+,R14
     MOV @R13+,R0
     ENDCODE IMMEDIATE
-    
+
     CODE AGAIN
-    MOV #$40B2,R9
+    MOV #[THEN]+$58,R9
     GOTO BW1
     ENDCODE IMMEDIATE
-    
+
     : WHILE
     POSTPONE IF SWAP
     ; IMMEDIATE
-    
+
     : REPEAT
     POSTPONE AGAIN POSTPONE THEN
     ; IMMEDIATE
+
     [THEN]
 
-    [UNDEFINED] CASE 
-    [IF]
-    : CASE 
-    0 
+    [UNDEFINED] CASE [IF]
+    : CASE
+    0
     ; IMMEDIATE
 
     : OF
@@ -309,32 +299,30 @@ BW1 ADD #4,&$1DC8
     POSTPONE IF        
     POSTPONE DROP      
     R> 
-    ; IMMEDIATE 
+    ; IMMEDIATE
 
     : ENDOF
     >R 
-    POSTPONE ELSE 
+    POSTPONE ELSE
     R> 
-    ; IMMEDIATE 
+    ; IMMEDIATE
 
     : ENDCASE
     POSTPONE DROP
-    0 DO 
-        POSTPONE THEN 
-    LOOP 
-    ; IMMEDIATE 
+    0 DO
+        POSTPONE THEN
+    LOOP
+    ; IMMEDIATE
     [THEN]
 
-    [UNDEFINED] + 
-    [IF]
+    [UNDEFINED] + [IF]
     CODE +
     ADD @R15+,R14
     MOV @R13+,R0
     ENDCODE
     [THEN]
 
-    [UNDEFINED] - 
-    [IF]
+    [UNDEFINED] - [IF]
     CODE -
     SUB @R15+,R14
     XOR #-1,R14
@@ -343,8 +331,7 @@ BW1 ADD #4,&$1DC8
     ENDCODE
     [THEN]
 
-    [UNDEFINED] MAX 
-    [IF]
+    [UNDEFINED] MAX [IF]
     CODE MAX
     CMP @R15,R14
     S<  ?GOTO FW1
@@ -361,16 +348,14 @@ FW1 MOV @R15+,R14
 
     [THEN]
 
-    [UNDEFINED] 2* 
-    [IF]
+    [UNDEFINED] 2* [IF]
     CODE 2*
     ADD R14,R14
     MOV @R13+,R0
     ENDCODE
     [THEN]
 
-    [UNDEFINED] UM* 
-    [IF]
+    [UNDEFINED] UM* [IF]
     CODE UM*
     MOV @R15,&$4C0
 BW1 MOV R14,&$4C8
@@ -385,14 +370,17 @@ BW1 MOV R14,&$4C8
     ENDCODE
     [THEN]
 
-    [UNDEFINED] UM/MOD 
-    [IF]
+    [UNDEFINED] UM/MOD [IF]
     CODE UM/MOD
     PUSH #DROP
-    MOV #$403E,R0
+    MOV #<#+8,R0
     ENDCODE
     [THEN]
 
+; --------------------------
+; end of definitions we need
+; --------------------------
+
     : U*/
     >R UM* R> UM/MOD SWAP DROP
     ;
@@ -409,8 +397,7 @@ BW1 MOV R14,&$4C8
     U/MOD SWAP DROP
     ;
 
-    [UNDEFINED] SPACES 
-    [IF]
+    [UNDEFINED] SPACES [IF]
     : SPACES
     BEGIN
         ?DUP
@@ -421,10 +408,10 @@ BW1 MOV R14,&$4C8
     ;
     [THEN]
 
-    [UNDEFINED] U.R 
+    [UNDEFINED] U.R
     [IF]
     : U.R
-    >R  <# 0 # #S #>  
+    >R  <# 0 # #S #>
     R> OVER - 0 MAX SPACES TYPE
     ;
     [THEN]
@@ -436,9 +423,9 @@ BW1 MOV R14,&$4C8
     COLON
     $4B2 C@ 2 U.R ':' EMIT
     $4B1 C@  2 U.R ':' EMIT
-    $4B0 C@  2 U.R 
+    $4B0 C@  2 U.R
     ;
-    
+
     : TIME!
     2 DEPTH
     U< IF
@@ -446,7 +433,7 @@ BW1 MOV R14,&$4C8
         $4B1 C!
         $4B2 C!
     THEN
-    ." it is " TIME? 
+    ." it is " TIME?
     ;
 
     CODE DATE?
@@ -466,7 +453,7 @@ BW1 MOV R14,&$4C8
     4 OF ." Wed"    ENDOF
     5 OF ." Thu"    ENDOF
     6 OF ." Fri"    ENDOF
-    ENDCASE  
+    ENDCASE
     $4B6 @
     $4B5 C@
     $4B4 C@
@@ -487,7 +474,7 @@ BW1 MOV R14,&$4C8
     $4B5 C@
     $4B6 @
     OVER 3 U<
-    IF 1 - SWAP 12 + SWAP 
+    IF 1 - SWAP 12 + SWAP
     THEN
     100 U/MOD
     DUP 4 U/ SWAP 2* -
@@ -495,37 +482,24 @@ BW1 MOV R14,&$4C8
     SWAP 1+  13 5 U*/ + +
     7 UMOD
     $4B3 C!
-    ." we are on " DATE? 
+    ." we are on " DATE?
     ;
 
-    RST_SET
-
-    [UNDEFINED] S_ 
-    [IF]
+    [UNDEFINED] S_ [IF]
     CODE S_
-    MOV #0,&$1DC0
-    COLON
-    $401E ,
-    $20 WORD
-    HI2LO
-    MOV.B @R14,R14
-    ADD #1,R14
-    BIT #1,R14
-    ADDC R14,&$1DC8
-    MOV @R15+,R14
-    MOV @R1+,R13
-    MOV #$20,&$1DC0
-    MOV @R13+,R0
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV #$20,R14
+    MOV #S"+10,R0
     ENDCODE IMMEDIATE
     [THEN]
 
-    [UNDEFINED] ESC 
-    [IF]
+    [UNDEFINED] ESC [IF]
     CODE ESC
-    CMP #0,&$1DBC
+    CMP #0,&$1DB4
     0= IF MOV @R13+,R0
     THEN
-    COLON          
+    COLON
     $1B
     POSTPONE LITERAL
     POSTPONE EMIT
@@ -534,16 +508,14 @@ BW1 MOV R14,&$4C8
     ; IMMEDIATE
     [THEN]
 
-    [UNDEFINED] >BODY 
-    [IF]
+    [UNDEFINED] >BODY [IF]
     CODE >BODY
     ADD #4,R14
     MOV @R13+,R0
     ENDCODE
     [THEN]
 
-    [UNDEFINED] EXECUTE 
-    [IF]
+    [UNDEFINED] EXECUTE [IF]
     CODE EXECUTE
     PUSH R14
     MOV @R15+,R14
@@ -551,30 +523,35 @@ BW1 MOV R14,&$4C8
     ENDCODE
     [THEN]
 
-    [UNDEFINED] EVALUATE 
-    [IF]
+    [UNDEFINED] EVALUATE [IF]
+
+    CODENNM
+    MOV @R1+,&$1DBC
+    MOV @R1+,&$1DBA
+    MOV @R1+,&$1DB8
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+
     CODE EVALUATE
-    MOV #$1DC2,R9
+    MOV #$1DB8,R9
     MOV @R9+,R12
     MOV @R9+,R11
     MOV @R9+,R10
     PUSHM #4,R13
-    LO2HI
-    [ ' \ 8 + , ]
-    HI2LO
-    MOV @R1+,&$1DC6
-    MOV @R1+,&$1DC4
-    MOV @R1+,&$1DC2
-    MOV @R1+,R13 
-    MOV @R13+,R0
+    MOV R0,R13
+    ADD #8,R13
+    MOV #\+8,R0
+    MOV #0,R3
     ENDCODE
+    ,
+
     [THEN]
 
-    [UNDEFINED] CR 
-    [IF]
+    [UNDEFINED] CR [IF]
 
     CODE CR
-    MOV #$40B4,R0
+    MOV #[THEN],R0
     ENDCODE
 
     :NONAME
@@ -583,8 +560,8 @@ BW1 MOV R14,&$4C8
     [THEN]
 
     : SET_TIME
-    ESC [8;40;80t
-    39 0 DO CR LOOP
+    ESC [8;42;80t
+    42 0 DO CR LOOP
     ESC [H
     CR ." DATE (DMY): "
     $1CE4 DUP #84
@@ -598,8 +575,8 @@ BW1 MOV R14,&$4C8
     EXECUTE
     EVALUATE
     CR TIME!
-    RST_RET
     ;
-ECHO
-SET_TIME
+
+    RST_SET
+
+    ECHO  SET_TIME