OSDN Git Service

Ver 301
[fast-forth/master.git] / MSP430-FORTH / MSP_EXP430FR5994 / RTC.4TH
1
2 ; --------------------
3 ; RTC.4th
4 ; --------------------
5
6 PWR_STATE
7
8 [UNDEFINED] {RTC} [IF]
9
10 MARKER {RTC}
11
12 [UNDEFINED] MAX [IF]
13
14 CODE MAX
15     CMP @R15,R14
16     S<  ?GOTO FW1
17 BW1 ADD #2,R15
18     MOV @R13+,R0
19 ENDCODE
20
21 CODE MIN
22     CMP @R15,R14
23     S<  ?GOTO BW1
24 FW1 MOV @R15+,R14
25     MOV @R13+,R0
26 ENDCODE
27
28 [THEN]
29
30 [UNDEFINED] CONSTANT [IF]
31 : CONSTANT 
32 DEFER
33 HI2LO
34 MOV @R1+,R13
35 MOV #$1285,-4(R10)
36 MOV R14,-2(R10)
37 MOV @R15+,R14
38 MOV @R13+,R0
39 ENDCODE
40 [THEN]
41
42 [UNDEFINED] BL [IF]
43 #32 CONSTANT BL
44 [THEN]
45
46 [UNDEFINED] SPACES [IF]
47 CODE SPACES
48 CMP #0,R14
49 0<> IF
50     PUSH R13
51     BEGIN
52         LO2HI
53         BL EMIT
54         HI2LO
55         SUB #2,R13 
56         SUB #1,R14
57     0= UNTIL
58     MOV @R1+,R13
59 THEN
60 MOV @R15+,R14
61 MOV @R13+,R0              
62 ENDCODE
63 [THEN]
64
65 [UNDEFINED] OVER [IF]
66 CODE OVER
67 MOV R14,-2(R15)
68 MOV @R15,R14
69 SUB #2,R15
70 MOV @R13+,R0
71 ENDCODE
72 [THEN]
73
74 [UNDEFINED] U.R [IF]
75 : U.R
76   >R  <# 0 # #S #>  
77   R> OVER - 0 MAX SPACES TYPE
78 ;
79 [THEN]
80
81 CODE DATE?
82     SUB     #6,R15
83     MOV     R14,4(R15)
84     BEGIN
85         BIT.B #$10,&$4A2
86     0<> UNTIL
87     MOV     &$4B6,2(R15)
88     MOV.B   &$4B5,R14
89     MOV     R14,0(R15)
90     MOV.B   &$4B4,R14
91 COLON
92     2 U.R $2F EMIT
93     2 U.R $2F EMIT . 
94 ;
95
96 : DATE!
97 2 DEPTH U< IF
98     HI2LO
99     MOV     R14,&$4B6
100     MOV.B   @R15,&$4B5
101     MOV.B   2(R15),&$4B4
102     ADD     #4,R15
103     MOV     @R15+,R14
104     LO2HI
105 THEN
106     ." we are on " DATE? 
107 ;
108
109 CODE TIME?
110     SUB     #6,R15
111     MOV     R14,4(R15)
112     BEGIN
113         BIT.B #$10,&$4A2
114     0<> UNTIL
115     MOV.B   &$4B0,R14
116     MOV     R14,2(R15)
117     MOV.B   &$4B1,R14
118     MOV     R14,0(R15)
119     MOV.B   &$4B2,R14
120 COLON
121     2 U.R $3A EMIT 
122     2 U.R $3A EMIT 2 U.R 
123 ;
124
125 : TIME!
126 2 DEPTH U< IF
127     HI2LO
128     MOV     R14,&$4B0
129     MOV.B   @R15,&$4B1
130     MOV.B   2(R15),&$4B2
131     ADD     #4,R15
132     MOV     @R15+,R14
133     LO2HI
134 THEN
135     ." it is " TIME? 
136 ;
137
138 RST_HERE
139
140 [THEN]
141
142 : ESC #27 EMIT ;
143
144 : [ISDEFERRED?]
145     DUP @ $4030 =
146 ; IMMEDIATE
147
148 CREATE ABUF 20 ALLOT
149
150 : GET_TIME
151 PWR_STATE
152 42
153 0 DO CR LOOP
154
155 ESC ." [1J"
156 ESC ." [H"
157
158 CR ." DATE (DMY): "
159 ABUF DUP 20 
160     ['] ACCEPT [ISDEFERRED?] 
161     [IF] >BODY
162     [THEN] EXECUTE
163 EVALUATE CR DATE!
164 CR CR ." TIME (HMS): "
165 ABUF DUP 20 
166     ['] ACCEPT [ISDEFERRED?] 
167     [IF] >BODY
168     [THEN] EXECUTE
169 EVALUATE CR TIME!
170 CR
171 ;
172
173 ECHO GET_TIME