summaryrefslogtreecommitdiffstats
path: root/tests/200-datatypes/immediates.awl
blob: 5f8962ea9341f985ae765a40dfb84bb615ffb623 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
ORGANIZATION_BLOCK OB 1
BEGIN
	// Test DB1.DT1 initial values
	AUF DB 1
	LAR1		P#DBX 0.0
	L		B [AR1, P#0.0]
	__ASSERT==	__ACCU 1,	B#16#91
	L		B [AR1, P#1.0]
	__ASSERT==	__ACCU 1,	B#16#02
	L		B [AR1, P#2.0]
	__ASSERT==	__ACCU 1,	B#16#03
	L		B [AR1, P#3.0]
	__ASSERT==	__ACCU 1,	B#16#04
	L		B [AR1, P#4.0]
	__ASSERT==	__ACCU 1,	B#16#05
	L		B [AR1, P#5.0]
	__ASSERT==	__ACCU 1,	B#16#06
	L		B [AR1, P#6.0]
	__ASSERT==	__ACCU 1,	B#16#78
	L		B [AR1, P#7.0]
	__ASSERT==	__ACCU 1,	B#16#91

	// Test DB1.DT2 initial values
	AUF DB 1
	LAR1		P#DBX 8.0
	L		B [AR1, P#0.0]
	__ASSERT==	__ACCU 1,	B#16#10
	L		B [AR1, P#1.0]
	__ASSERT==	__ACCU 1,	B#16#11
	L		B [AR1, P#2.0]
	__ASSERT==	__ACCU 1,	B#16#12
	L		B [AR1, P#3.0]
	__ASSERT==	__ACCU 1,	B#16#13
	L		B [AR1, P#4.0]
	__ASSERT==	__ACCU 1,	B#16#14
	L		B [AR1, P#5.0]
	__ASSERT==	__ACCU 1,	B#16#15
	L		B [AR1, P#6.0]
	__ASSERT==	__ACCU 1,	B#16#16
	L		B [AR1, P#7.0]
	__ASSERT==	__ACCU 1,	B#16#06


	// Test DATE immediates
	L		D#1990-1-1
	__ASSERT==	__ACCU 1,	0
	L		DATE#1990-1-1
	__ASSERT==	__ACCU 1,	0
	L		D#2000-12-31
	__ASSERT==	__ACCU 1,	4017
	L		DATE#2000-12-31
	__ASSERT==	__ACCU 1,	4017
	L		D#2100-12-31
	__ASSERT==	__ACCU 1,	L#40541
	L		DATE#2100-12-31
	__ASSERT==	__ACCU 1,	L#40541
	L		D#2168-12-31
	__ASSERT==	__ACCU 1,	L#65378
	L		DATE#2168-12-31
	__ASSERT==	__ACCU 1,	L#65378
	// Test DB1.DATEx initial values
	L		DB1.DBW 16
	__ASSERT==	__ACCU 1,	4017
	L		DB1.DBW 18
	__ASSERT==	__ACCU 1,	L#40541


	// Test TIME_OF_DAY immediates
	L		TOD#0:0:0.0
	__ASSERT==	__ACCU 1,	0
	L		TIME_OF_DAY#0:0:0.0
	__ASSERT==	__ACCU 1,	0
	L		TOD#13:37:13.37
	__ASSERT==	__ACCU 1,	L#49033370
	L		TIME_OF_DAY#13:37:13.37
	__ASSERT==	__ACCU 1,	L#49033370
	L		TOD#23:59:59.999
	__ASSERT==	__ACCU 1,	L#86399999
	L		TIME_OF_DAY#23:59:59.999
	__ASSERT==	__ACCU 1,	L#86399999
	// Test DB1.TODx initial values
	L		DB1.DBD 20
	__ASSERT==	__ACCU 1,	L#86399999
	L		DB1.DBD 24
	__ASSERT==	__ACCU 1,	L#49033370


	// Test TIME immediates
	L		T#1s100ms
	__ASSERT==	__ACCU 1,	1100
	L		TIME#1s100ms
	__ASSERT==	__ACCU 1,	1100
	L		T#-1s100ms
	__ASSERT==	__ACCU 1,	L#-1100


	CALL SFC 46 // STOP CPU
END_ORGANIZATION_BLOCK


DATA_BLOCK DB 1
STRUCT
	DT1	: DATE_AND_TIME := DT#1990-1-1-0:0:0.0;
	DT2	: DATE_AND_TIME := DT#2010-11-12-13:14:15.16;
	DATE1	: DATE := D#2100-12-31;
	DATE2	: DATE := D#2100-12-31;
	TOD1	: TIME_OF_DAY := TOD#13:37:13.37;
	TOD2	: TIME_OF_DAY := TOD#13:37:13.37;
END_STRUCT;
BEGIN
	DT1	:= DATE_AND_TIME#1991-2-3-4:5:6.789;
	DATE1	:= D#2000-12-31;
	TOD1	:= TOD#23:59:59.999;
END_DATA_BLOCK
bues.ch cgit interface