Browse code

(dos.tal) Impemented time[tm] command

neauoire authored on 23/01/2022 18:31:32
Showing 1 changed files
... ...
@@ -22,6 +22,9 @@
22 22
 %8MOD  { #07 AND } %8MOD2  { #0007 AND2 }
23 23
 %10MOD { #0f AND } %10MOD2 { #000f AND2 }
24 24
 
25
+%MOD  { DIVk MUL SUB }
26
+%MOD2 { DIV2k MUL2 SUB2 }
27
+
25 28
 %AUTO-NONE   { #00 .Screen/auto DEO }
26 29
 %AUTO-X      { #01 .Screen/auto DEO }
27 30
 %AUTO-Y      { #02 .Screen/auto DEO }
... ...
@@ -44,6 +47,7 @@
44 47
 |20 @Screen     &vector $2 &width   $2 &height $2 &auto  $1 &pad   $1 &x     $2 &y $2 &addr $2 &pixel $1 &sprite $1
45 48
 |80 @Controller &vector $2 &button $1 &key    $1
46 49
 |a0 @File       &vector $2 &success  $2 &stat   $2 &delete $1 &append $1 &name    $2 &length  $2 &read   $2 &write $2
50
+|b0 @DateTime   [ &year   $2 &month    $1 &day    $1 &hour  $1 &minute $1 &second $1 &dotw $1 &doty $2 &isdst $1 ]
47 51
 
48 52
 ( variables )
49 53
 
... ...
@@ -126,6 +130,10 @@ RTN
126 130
 @validate ( -- )
127 131
 	
128 132
 	;clear JSR2
133
+
134
+	PAD .Screen/x DEO2
135
+	PAD .Screen/y DEO2
136
+
129 137
 	;get-cmd JSR2 ;commands-func ++ LDA2 JSR2
130 138
 	;buffer #0080 ;mclr JSR2
131 139
 
... ...
@@ -144,79 +152,57 @@ JMP2r
144 152
 
145 153
 RTN
146 154
 
147
-@cmd-ls 
148
-	&name "ls $1
155
+@cmd-ls "ls $1
149 156
 	&docs "list_folder_content $1
150 157
 	&func
151
-	
158
+
152 159
 	;path .File/name DEO2
153 160
 	#8000 .File/length DEO2
154 161
 	;view .File/read DEO2
155
-	PAD .Screen/x DEO2
156
-	PAD .Screen/y DEO2
162
+
157 163
 	;view #01 ;draw-tx JSR2
158 164
 
159 165
 RTN
160 166
 
161
-@cmd-cp 
162
-	&name "cp $1
163
-	&docs "copy_file_to_name $1
167
+@cmd-cp "cp $1 &docs "copy_file_to_name $1
164 168
 	&func
165 169
 
166 170
 RTN
167 171
 
168
-@cmd-mv 
169
-	&name "mv $1
170
-	&docs "move_file_to_name $1
172
+@cmd-mv "mv $1 &docs "move_file_to_name $1
171 173
 	&func
172 174
 
173 175
 RTN
174 176
 
175
-@cmd-rm 
176
-	&name "rm $1
177
-	&docs "remove_file $1
177
+@cmd-rm "rm $1 &docs "remove_file $1
178 178
 	&func
179 179
 
180 180
 RTN
181 181
 
182
-@cmd-tx
183
-	&name "tx $1 ( print file text )
184
-	&docs "display_file_as_text $1
182
+@cmd-tx "tx $1 &docs "display_file_as_text $1
185 183
 	&func
186 184
 
187 185
 	;buffer #0003 ++ .File/name DEO2
188 186
 	#8000 .File/length DEO2
189 187
 	;view .File/read DEO2
190 188
 
191
-	PAD .Screen/x DEO2
192
-	PAD .Screen/y DEO2
193
-
194
-	.File/success DEI2 #0000 >> ,&continue JCN
195
-		;&error-txt #02 ;draw-str JSR2
196
-		RTN
197
-		&continue
189
+	.File/success DEI2 #0000 >> ,&valid JCN
190
+		;&error-txt #02 ;draw-str JSR2 RTN &valid
198 191
 
199 192
 	;view #01 ;draw-tx JSR2
200 193
 
201 194
 RTN
202 195
 	&error-txt "unknown_file $1
203 196
 
204
-@cmd-hx
205
-	&name "hx $1 ( print file hex )
206
-	&docs "display_file_as_hex $1
197
+@cmd-hx "hx $1 &docs "display_file_as_hex $1
207 198
 	&func
208 199
 
209 200
 	;buffer #0003 ++ .File/name DEO2
210 201
 	#8000 .File/length DEO2
211 202
 	;view .File/read DEO2
212 203
 
213
-	PAD .Screen/x DEO2
214
-	PAD .Screen/y DEO2
215
-
216
-	.File/success DEI2 #0000 >> ,&continue JCN
217
-		;&error-txt #02 ;draw-str JSR2
218
-		RTN
219
-		&continue
204
+	.File/success DEI2 #0000 >> ,&valid JCN
205
+		;&error-txt #02 ;draw-str JSR2 RTN &valid
220 206
 
221 207
 	AUTO-YADDR
222 208
 	.Screen/x DEI2 ,&anchor STR2
... ...
@@ -232,9 +218,7 @@ RTN
232 218
 RTN
233 219
 	&error-txt "unknown_file $1
234 220
 
235
-@cmd-do
236
-	&name "do $1 ( print file hex )
237
-	&docs "run_file_as_rom $1
221
+@cmd-do "do $1 &docs "run_file_as_rom $1
238 222
 	&func
239 223
 
240 224
 	( release inputs )
... ...
@@ -253,20 +237,34 @@ RTN
253 237
 RTN
254 238
 	&invalid-txt "invalid_rom: $1
255 239
 
256
-@cmd-??
257
-	&name "-- $1
258
-	&docs "display_commands $1
240
+@cmd-tm "tm $1 &docs "display_time $1
259 241
 	&func
260
-	#aa DEBUG
261
-	PAD .Screen/x DEO2
262
-	PAD .Screen/y DEO2
242
+
243
+	#00 .DateTime/month DEI 4* ;month-txt ++ #01 ;draw-str JSR2
244
+	#20 #01 ;draw-char JSR2
245
+	.DateTime/day DEI #01 ;draw-dec JSR2
246
+	#20 #01 ;draw-char JSR2
247
+	#00 .DateTime/dotw DEI 4* ;week-txt ++ #01 ;draw-str JSR2
248
+	#20 #01 ;draw-char JSR2
249
+	.DateTime/hour DEI #01 ;draw-dec JSR2
250
+	LIT ': #01 ;draw-char JSR2
251
+	.DateTime/minute DEI #01 ;draw-dec JSR2
252
+	LIT ': #01 ;draw-char JSR2
253
+	.DateTime/second DEI #01 ;draw-dec JSR2
254
+
255
+RTN
256
+
257
+@cmd-?? "-- $1 &docs "display_commands $1
258
+	&func
259
+
263 260
 	;&help-txt #01 ;draw-tx JSR2
264 261
 	PAD #0010 ++ .Screen/y DEO2
262
+
265 263
 	;commands/end ;commands
266 264
 	&loop
267
-		PAD #0008 ++ .Screen/x DEO2
268
-		LDA2k #02 ;draw-str JSR2
269
-		PAD #0030 ++ .Screen/x DEO2
265
+		PAD .Screen/x DEO2
266
+		LDA2k #06 ;draw-str JSR2
267
+		PAD #0020 ++ .Screen/x DEO2
270 268
 		DUP2 ;commands -- ;commands-docs ++ LDA2 #01 ;draw-str JSR2
271 269
 		.Screen/y DEI2k #0010 ++ ROT DEO2
272 270
 		INC2 INC2 GTH2k ,&loop JCN
... ...
@@ -278,15 +276,15 @@ RTN
278 276
 
279 277
 @commands
280 278
 	:cmd-ls :cmd-cp :cmd-mv :cmd-rm 
281
-	:cmd-hx :cmd-tx :cmd-do
279
+	:cmd-hx :cmd-tx :cmd-do :cmd-tm
282 280
 	&end :cmd-??
283 281
 @commands-docs
284 282
 	:cmd-ls/docs :cmd-cp/docs :cmd-mv/docs :cmd-rm/docs 
285
-	:cmd-hx/docs :cmd-tx/docs :cmd-do/docs
283
+	:cmd-hx/docs :cmd-tx/docs :cmd-do/docs :cmd-tm/docs
286 284
 	&end :cmd-??/docs
287 285
 @commands-func
288 286
 	:cmd-ls/func :cmd-cp/func :cmd-mv/func :cmd-rm/func 
289
-	:cmd-hx/func :cmd-tx/func :cmd-do/func
287
+	:cmd-hx/func :cmd-tx/func :cmd-do/func :cmd-tm/func
290 288
 	&end :cmd-??/func
291 289
 
292 290
 @draw-input ( color -- )
... ...
@@ -348,6 +346,14 @@ RTN
348 346
 
349 347
 RTN
350 348
 
349
+@draw-dec ( byte color -- )
350
+
351
+	STH
352
+	DUP #0a DIV LIT '0 + STHkr ,draw-char JSR
353
+	#0a MOD LIT '0 + STHr ,draw-char JSR
354
+
355
+RTN
356
+
351 357
 @draw-str ( str* color -- )
352 358
 
353 359
 	AUTO-YADDR
... ...
@@ -464,8 +470,13 @@ JMP2r
464 470
 ~projects/library/check-rom.tal
465 471
 ~projects/library/load-rom.tal
466 472
 
467
-@strings
468
-	&you-said "You 20 "said 20 $1
473
+@week-txt
474
+	"Sun $1 "Mon $1 "Tue $1 "Wed $1 "Thu $1 "Fri $1 
475
+	"Sat $1
476
+
477
+@month-txt
478
+	"Jan $1 "Feb $1 "Mar $1 "Apr $1 "May $1 "Jun $1
479
+	"Jul $1 "Aug $1 "Sep $1 "Oct $1 "Nov $1 "Dec $1
469 480
 
470 481
 @cursor-icn
471 482
 	aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55