Browse code

(datetime.tal) Created a test file for the datetime device

Devine Lu Linvega authored on 16/04/2023 21:39:20
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,85 @@
1
+|c0 @DateTime &year $2 &month $1 &day $1 &hour $1 &minute $1 &second $1 &dotw $1 &doty $2 &isdst $1
2
+
3
+|0100
4
+
5
+	( date )
6
+	;dict/date pstr
7
+	[ LIT2 00 -DateTime/dotw ] DEI #20 SFT ;week-txt ADD2 pstr
8
+	[ LIT2 20 ", ] #18 DEO #18 DEO
9
+	[ LIT2 00 -DateTime/month ] DEI #20 SFT ;month-txt ADD2 pstr
10
+	#2018 DEO
11
+	[ LIT2 00 -DateTime/day ] DEI pdec
12
+	[ LIT2 20 ", ] #18 DEO #18 DEO
13
+	.DateTime/year DEI2 pdec
14
+	#0a18 DEO
15
+
16
+	( time )
17
+	;dict/time pstr
18
+	[ LIT2 00 -DateTime/hour ] DEI pdec-pad
19
+	LIT ": #18 DEO
20
+	[ LIT2 00 -DateTime/minute ] DEI pdec-pad
21
+	LIT ": #18 DEO
22
+	[ LIT2 00 -DateTime/second ] DEI pdec-pad
23
+	#0a18 DEO
24
+
25
+	#800f DEO
26
+
27
+BRK
28
+
29
+@pstr ( str* -- )
30
+
31
+	LDAk ?&w POP2 JMP2r
32
+	&w
33
+		LDAk #18 DEO
34
+		INC2 LDAk ?&w
35
+	POP2
36
+
37
+JMP2r
38
+
39
+@pdec-pad ( byte -- )
40
+
41
+	#0a DIVk emit
42
+	DIVk MUL SUB emit
43
+
44
+JMP2r
45
+
46
+@pdec ( short* -- )
47
+
48
+	#00 ,&z STR
49
+	#2710 pdec/parse
50
+	#03e8 pdec/parse
51
+	#0064 pdec/parse
52
+	#000a pdec/parse
53
+	NIP emit
54
+
55
+JMP2r
56
+
57
+&parse ( short* den* -- short* )
58
+
59
+	DIV2k DUPk [ LIT &z $1 ] EQU ?&skip
60
+	DUP emit #ff ,&z STR
61
+	&skip POP MUL2 SUB2
62
+
63
+JMP2r
64
+
65
+@emit ( num -- )
66
+
67
+	LIT "0 ADD #18 DEO
68
+
69
+JMP2r
70
+
71
+(
72
+@|assets )
73
+
74
+@week-txt [
75
+	"Sun $1 "Mon $1 "Tue $1 "Wed $1 "Thu $1 "Fri $1
76
+	"Sat $1 ]
77
+
78
+@month-txt [
79
+	"Jan $1 "Feb $1 "Mar $1 "Apr $1 "May $1 "Jun $1
80
+	"Jul $1 "Aug $1 "Sep $1 "Oct $1 "Nov $1 "Dec $1 ]
81
+
82
+@dict
83
+	&date "The 20 "date 20 "is: 20 $1
84
+	&time "The 20 "time 20 "is: 20 $1
85
+