Browse code

Add tests for most k (keep) variations of UXN instructions, based on the existing instruction tests.

Dave VanEe authored on 09/07/2022 10:34:43 • Andrew Alderwick committed on 09/07/2022 10:36:37
Showing 1 changed files
... ...
@@ -30,6 +30,16 @@
30 30
 	#01f8 #01f8 EQU2 [ #01 ] TEST-BYTE
31 31
 	#f801 #01f8 EQU2 [ #00 ] TEST-BYTE
32 32
 	#01f8 #f801 EQU2 [ #00 ] TEST-BYTE
33
+	MODE
34
+	#f8 #f8 EQUk ADD ADD [ #f1 ] TEST-BYTE
35
+	#01 #01 EQUk ADD ADD [ #03 ] TEST-BYTE
36
+	#f8 #01 EQUk ADD ADD [ #f9 ] TEST-BYTE
37
+	#01 #f8 EQUk ADD ADD [ #f9 ] TEST-BYTE
38
+	MODE
39
+	#f801 #f801 EQU2k #00 ADD2 ADD2 [ #f102 ] TEST-SHORT
40
+	#01f8 #01f8 EQU2k #00 ADD2 ADD2 [ #04f0 ] TEST-SHORT
41
+	#f801 #01f8 EQU2k #00 ADD2 ADD2 [ #f9f9 ] TEST-SHORT
42
+	#01f8 #f801 EQU2k #00 ADD2 ADD2 [ #f9f9 ] TEST-SHORT
33 43
 	OPCODE
34 44
 
35 45
 	( NEQ )
... ...
@@ -42,6 +52,16 @@
42 52
 	#01f8 #01f8 NEQ2 [ #00 ] TEST-BYTE
43 53
 	#f801 #01f8 NEQ2 [ #01 ] TEST-BYTE
44 54
 	#01f8 #f801 NEQ2 [ #01 ] TEST-BYTE
55
+	MODE
56
+	#f8 #f8 NEQk ADD ADD [ #f0 ] TEST-BYTE
57
+	#01 #01 NEQk ADD ADD [ #02 ] TEST-BYTE
58
+	#f8 #01 NEQk ADD ADD [ #fa ] TEST-BYTE
59
+	#01 #f8 NEQk ADD ADD [ #fa ] TEST-BYTE
60
+	MODE
61
+	#f801 #f801 NEQ2k #00 ADD2 ADD2 [ #f002 ] TEST-SHORT
62
+	#01f8 #01f8 NEQ2k #00 ADD2 ADD2 [ #03f0 ] TEST-SHORT
63
+	#f801 #01f8 NEQ2k #00 ADD2 ADD2 [ #faf9 ] TEST-SHORT
64
+	#01f8 #f801 NEQ2k #00 ADD2 ADD2 [ #faf9 ] TEST-SHORT
45 65
 	OPCODE
46 66
 
47 67
 	( GTH )
... ...
@@ -54,6 +74,16 @@
54 74
 	#01f8 #01f8 GTH2 [ #00 ] TEST-BYTE
55 75
 	#f801 #01f8 GTH2 [ #01 ] TEST-BYTE
56 76
 	#01f8 #f801 GTH2 [ #00 ] TEST-BYTE
77
+	MODE
78
+	#f8 #f8 GTHk ADD ADD [ #f0 ] TEST-BYTE
79
+	#01 #01 GTHk ADD ADD [ #02 ] TEST-BYTE
80
+	#f8 #01 GTHk ADD ADD [ #fa ] TEST-BYTE
81
+	#01 #f8 GTHk ADD ADD [ #f9 ] TEST-BYTE
82
+	MODE
83
+	#f801 #f801 GTH2k #00 ADD2 ADD2 [ #f002 ] TEST-SHORT
84
+	#01f8 #01f8 GTH2k #00 ADD2 ADD2 [ #03f0 ] TEST-SHORT
85
+	#f801 #01f8 GTH2k #00 ADD2 ADD2 [ #faf9 ] TEST-SHORT
86
+	#01f8 #f801 GTH2k #00 ADD2 ADD2 [ #f9f9 ] TEST-SHORT
57 87
 	OPCODE
58 88
 
59 89
 	( LTH )
... ...
@@ -66,6 +96,16 @@
66 96
 	#01f8 #01f8 LTH2 [ #00 ] TEST-BYTE
67 97
 	#f801 #01f8 LTH2 [ #00 ] TEST-BYTE
68 98
 	#01f8 #f801 LTH2 [ #01 ] TEST-BYTE
99
+	MODE
100
+	#f8 #f8 LTHk ADD ADD [ #f0 ] TEST-BYTE
101
+	#01 #01 LTHk ADD ADD [ #02 ] TEST-BYTE
102
+	#f8 #01 LTHk ADD ADD [ #f9 ] TEST-BYTE
103
+	#01 #f8 LTHk ADD ADD [ #fa ] TEST-BYTE
104
+	MODE
105
+	#f801 #f801 LTH2k #00 ADD2 ADD2 [ #f002 ] TEST-SHORT
106
+	#01f8 #01f8 LTH2k #00 ADD2 ADD2 [ #03f0 ] TEST-SHORT
107
+	#f801 #01f8 LTH2k #00 ADD2 ADD2 [ #f9f9 ] TEST-SHORT
108
+	#01f8 #f801 LTH2k #00 ADD2 ADD2 [ #faf9 ] TEST-SHORT
69 109
 	TYPE
70 110
 
71 111
 	( Arithmetic )
... ...
@@ -81,6 +121,15 @@
81 121
 	#ffff #ffff ADD2 [ #fffe ] TEST-SHORT
82 122
 	#fffe #ffff ADD2 [ #fffd ] TEST-SHORT
83 123
 	MODE
124
+	#ff #00 ADDk ADD ADD [ #fe ] TEST-BYTE
125
+	#01 #ff ADDk ADD ADD [ #00 ] TEST-BYTE
126
+	#ff #ff ADDk ADD ADD [ #fc ] TEST-BYTE
127
+	#fe #ff ADDk ADD ADD [ #fa ] TEST-BYTE
128
+	MODE
129
+	#ffff #0000 ADD2k ADD2 ADD2 [ #fffe ] TEST-SHORT
130
+	#0001 #ffff ADD2k ADD2 ADD2 [ #0000 ] TEST-SHORT
131
+	#ffff #ffff ADD2k ADD2 ADD2 [ #fffc ] TEST-SHORT
132
+	#fffe #ffff ADD2k ADD2 ADD2 [ #fffa ] TEST-SHORT
84 133
 	OPCODE
85 134
 
86 135
 	( SUB )
... ...
@@ -94,6 +143,15 @@
94 143
 	#ffff #ffff SUB2 [ #0000 ] TEST-SHORT
95 144
 	#fffe #ffff SUB2 [ #ffff ] TEST-SHORT
96 145
 	MODE
146
+	#ff #00 SUBk ADD ADD [ #fe ] TEST-BYTE
147
+	#01 #ff SUBk ADD ADD [ #02 ] TEST-BYTE
148
+	#ff #ff SUBk ADD ADD [ #fe ] TEST-BYTE
149
+	#fe #ff SUBk ADD ADD [ #fc ] TEST-BYTE
150
+	MODE
151
+	#ffff #0000 SUB2k ADD2 ADD2 [ #fffe ] TEST-SHORT
152
+	#0001 #ffff SUB2k ADD2 ADD2 [ #0002 ] TEST-SHORT
153
+	#ffff #ffff SUB2k ADD2 ADD2 [ #fffe ] TEST-SHORT
154
+	#fffe #ffff SUB2k ADD2 ADD2 [ #fffc ] TEST-SHORT
97 155
 	OPCODE
98 156
 
99 157
 	( MUL )
... ...
@@ -106,6 +164,16 @@
106 164
 	#abcd #1234 MUL2 [ #4fa4 ] TEST-SHORT
107 165
 	#8000 #0200 MUL2 [ #0000 ] TEST-SHORT
108 166
 	#2222 #0003 MUL2 [ #6666 ] TEST-SHORT
167
+	MODE
168
+	#00 #01 MULk ADD ADD [ #01 ] TEST-BYTE
169
+	#3f #e7 MULk ADD ADD [ #ff ] TEST-BYTE
170
+	#37 #3f MULk ADD ADD [ #ff ] TEST-BYTE
171
+	#10 #02 MULk ADD ADD [ #32 ] TEST-BYTE
172
+	MODE
173
+	#1000 #0003 MUL2k ADD2 ADD2 [ #4003 ] TEST-SHORT
174
+	#abcd #1234 MUL2k ADD2 ADD2 [ #0da5 ] TEST-SHORT
175
+	#8000 #0200 MUL2k ADD2 ADD2 [ #8200 ] TEST-SHORT
176
+	#2222 #0003 MUL2k ADD2 ADD2 [ #888b ] TEST-SHORT
109 177
 	OPCODE
110 178
 
111 179
 	( DIV )
... ...
@@ -118,6 +186,16 @@
118 186
 	#abcd #1234 DIV2 [ #0009 ] TEST-SHORT
119 187
 	#8000 #0200 DIV2 [ #0040 ] TEST-SHORT
120 188
 	#2222 #0003 DIV2 [ #0b60 ] TEST-SHORT
189
+	MODE
190
+	#10 #02 DIVk ADD ADD [ #1a ] TEST-BYTE
191
+	#20 #20 DIVk ADD ADD [ #41 ] TEST-BYTE
192
+	#34 #01 DIVk ADD ADD [ #69 ] TEST-BYTE
193
+	#02 #ef DIVk ADD ADD [ #f1 ] TEST-BYTE
194
+	MODE
195
+	#1000 #0040 DIV2k ADD2 ADD2 [ #1080 ] TEST-SHORT
196
+	#abcd #1234 DIV2k ADD2 ADD2 [ #be0a ] TEST-SHORT
197
+	#8000 #0200 DIV2k ADD2 ADD2 [ #8240 ] TEST-SHORT
198
+	#2222 #0003 DIV2k ADD2 ADD2 [ #2d85 ] TEST-SHORT
121 199
 	TYPE
122 200
 
123 201
 	( Stack )
... ...
@@ -132,6 +210,16 @@
132 210
 	#ffff INC2 [ #0000 ] TEST-SHORT
133 211
 	#fffe INC2 [ #ffff ] TEST-SHORT
134 212
 	#0000 INC2 [ #0001 ] TEST-SHORT
213
+	MODE
214
+	#01 INCk ADD [ #03 ] TEST-BYTE
215
+	#ff INCk ADD [ #ff ] TEST-BYTE
216
+	#fe INCk ADD [ #fd ] TEST-BYTE
217
+	#00 INCk ADD [ #01 ] TEST-BYTE
218
+	MODE
219
+	#0001 INC2k ADD2 [ #0003 ] TEST-SHORT
220
+	#ffff INC2k ADD2 [ #ffff ] TEST-SHORT
221
+	#fffe INC2k ADD2 [ #fffd ] TEST-SHORT
222
+	#0000 INC2k ADD2 [ #0001 ] TEST-SHORT
135 223
 	OPCODE
136 224
 
137 225
 	( POP )
... ...
@@ -144,36 +232,66 @@
144 232
 	#0a0b #0c0d #0e0f POP2 POP2 [ #0a0b ] TEST-SHORT
145 233
 	#0a0b #0c0d #0e0f ADD2 POP2 [ #0a0b ] TEST-SHORT
146 234
 	#0a0b #0c0d #0e0f POP2 ADD2 [ #1618 ] TEST-SHORT
235
+	MODE
236
+	#0a #0b POPk [ #0b ] TEST-BYTE POP
237
+	#0a #0b #0c POPk POP [ #0b ] TEST-BYTE POP
238
+	#0a #0b #0c ADD POPk [ #17 ] TEST-BYTE POP
239
+	#0a #0b #0c POPk ADD [ #17 ] TEST-BYTE POP
240
+	MODE
241
+	#0a0b #0c0d POP2k [ #0c0d ] TEST-SHORT POP2
242
+	#0a0b #0c0d #0e0f POP2k POP2 [ #0c0d ] TEST-SHORT POP2
243
+	#0a0b #0c0d #0e0f ADD2 POP2k [ #1a1c ] TEST-SHORT POP2
244
+	#0a0b #0c0d #0e0f POP2k ADD2 [ #1a1c ] TEST-SHORT POP2
147 245
 	OPCODE
148 246
 
149 247
 	( DUP )
150 248
 	#0a #0b DUP ADD ADD [ #20 ] TEST-BYTE
151 249
 	MODE
152 250
 	#0a0b DUP2 ADD2 [ #1416 ] TEST-SHORT
251
+	MODE
252
+	#0a #0b DUPk ADD ADD ADD [ #2b ] TEST-BYTE
253
+	MODE
254
+	#0a0b DUP2k ADD2 ADD2 [ #1e21 ] TEST-SHORT
153 255
 	OPCODE
154 256
 
155 257
 	( NIP )
156 258
 	#12 #34 #56 NIP ADD [ #68 ] TEST-BYTE
157 259
 	MODE
158 260
 	#1234 #5678 #9abc NIP2 ADD2 [ #acf0 ] TEST-SHORT
159
-
261
+	MODE
262
+	#12 #34 #56 NIPk ADD ADD [ #e0 ] TEST-BYTE POP
263
+	MODE
264
+	#1234 #5678 #9abc NIP2k ADD2 ADD2 [ #8bf0 ] TEST-SHORT POP2
160 265
 	OPCODE
266
+
161 267
 	( SWP )
162 268
 	#02 #10 SWP DIV [ #08 ] TEST-BYTE
163 269
 	MODE
164 270
 	#0a0b #0c0d SWP2 NIP2 [ #0a0b ] TEST-SHORT
165
-
271
+	MODE
272
+	#02 #10 SWPk DIV ADD ADD [ #1a ] TEST-BYTE
273
+	MODE
274
+	#0a0b #0c0d SWP2k POP2 POP2 POP2 [ #0a0b ] TEST-SHORT
166 275
 	OPCODE
276
+
167 277
 	( OVR )
168 278
 	#02 #10 OVR DIV ADD [ #0a ] TEST-BYTE
169 279
 	MODE
170 280
 	#0a0b #0c0d OVR2 NIP2 ADD2 [ #1416 ] TEST-SHORT
281
+	MODE
282
+	#02 #10 OVRk DIV ADD ADD ADD [ #1c ] TEST-BYTE
283
+	MODE
284
+	#0a0b #0c0d OVR2k NIP2 ADD2 ADD2 ADD2 [ #2a2e ] TEST-SHORT
171 285
 	OPCODE
172 286
 
173 287
 	( ROT )
174 288
 	#02 #04 #10 ROT DIV ADD [ #0c ] TEST-BYTE
175 289
 	MODE
176 290
 	#0a0b #0c0d #0c0f ROT2 ADD2 NIP2 [ #161a ] TEST-SHORT
291
+	MODE
292
+	#02 #04 #10 ROTk DIV ADD ADD ADD ADD [ #22 ] TEST-BYTE
293
+	MODE
294
+	#0a0b #0c0d #0c0f ROT2k ADD2 NIP2 ADD2 ADD2 ADD2 [ #3841 ] TEST-SHORT
177 295
 	TYPE
178 296
 
179 297
 	( Bitwise )
... ...
@@ -188,6 +306,16 @@
188 306
 	#aaaa #5555 AND2 [ #0000 ] TEST-SHORT
189 307
 	#ffff #1234 AND2 [ #1234 ] TEST-SHORT
190 308
 	#abcd #0a0c AND2 [ #0a0c ] TEST-SHORT
309
+	MODE
310
+	#fc #3f ANDk ADD ADD [ #77 ] TEST-BYTE
311
+	#f0 #0f ANDk ADD ADD [ #ff ] TEST-BYTE
312
+	#ff #3c ANDk ADD ADD [ #77 ] TEST-BYTE
313
+	#02 #03 ANDk ADD ADD [ #07 ] TEST-BYTE
314
+	MODE
315
+	#f0f0 #00f0 AND2k ADD2 ADD2 [ #f2d0 ] TEST-SHORT
316
+	#aaaa #5555 AND2k ADD2 ADD2 [ #ffff ] TEST-SHORT
317
+	#ffff #1234 AND2k ADD2 ADD2 [ #2467 ] TEST-SHORT
318
+	#abcd #0a0c AND2k ADD2 ADD2 [ #bfe5 ] TEST-SHORT
191 319
 	OPCODE
192 320
 
193 321
 	( ORA )
... ...
@@ -200,6 +328,16 @@
200 328
 	#abab #cdcd ORA2 [ #efef ] TEST-SHORT
201 329
 	#1122 #1234 ORA2 [ #1336 ] TEST-SHORT
202 330
 	#8888 #1000 ORA2 [ #9888 ] TEST-SHORT
331
+	MODE
332
+	#0f #f0 ORAk ADD ADD [ #fe ] TEST-BYTE
333
+	#ab #cd ORAk ADD ADD [ #67 ] TEST-BYTE
334
+	#12 #34 ORAk ADD ADD [ #7c ] TEST-BYTE
335
+	#88 #10 ORAk ADD ADD [ #30 ] TEST-BYTE
336
+	MODE
337
+	#0f0f #f0f0 ORA2k ADD2 ADD2 [ #fffe ] TEST-SHORT
338
+	#abab #cdcd ORA2k ADD2 ADD2 [ #6967 ] TEST-SHORT
339
+	#1122 #1234 ORA2k ADD2 ADD2 [ #368c ] TEST-SHORT
340
+	#8888 #1000 ORA2k ADD2 ADD2 [ #3110 ] TEST-SHORT
203 341
 	OPCODE
204 342
 
205 343
 	( EOR )
... ...
@@ -212,6 +350,16 @@
212 350
 	#aaaa #5555 EOR2 [ #ffff ] TEST-SHORT
213 351
 	#1122 #1234 EOR2 [ #0316 ] TEST-SHORT
214 352
 	#8888 #1000 EOR2 [ #9888 ] TEST-SHORT
353
+	MODE
354
+	#00 #00 EORk ADD ADD [ #00 ] TEST-BYTE
355
+	#ff #00 EORk ADD ADD [ #fe ] TEST-BYTE
356
+	#aa #55 EORk ADD ADD [ #fe ] TEST-BYTE
357
+	#ff #ff EORk ADD ADD [ #fe ] TEST-BYTE
358
+	MODE
359
+	#ffff #ff00 EOR2k ADD2 ADD2 [ #fffe ] TEST-SHORT
360
+	#aaaa #5555 EOR2k ADD2 ADD2 [ #fffe ] TEST-SHORT
361
+	#1122 #1234 EOR2k ADD2 ADD2 [ #266c ] TEST-SHORT
362
+	#8888 #1000 EOR2k ADD2 ADD2 [ #3110 ] TEST-SHORT
215 363
 	OPCODE
216 364
 
217 365
 	( SFT )
... ...
@@ -224,6 +372,16 @@
224 372
 	#ffff #70 SFT2 [ #ff80 ] TEST-SHORT
225 373
 	#ffff #7e SFT2 [ #0180 ] TEST-SHORT
226 374
 	#ffff #e3 SFT2 [ #c000 ] TEST-SHORT
375
+	MODE
376
+	#ff #08 SFTk ADD ADD [ #07 ] TEST-BYTE
377
+	#ff #e0 SFTk ADD ADD [ #df ] TEST-BYTE
378
+	#ff #11 SFTk ADD ADD [ #0e ] TEST-BYTE
379
+	#ff #12 SFTk ADD ADD [ #8f ] TEST-BYTE
380
+	MODE
381
+	#ffff #01 SFT2k ROT POP ADD2 [ #7ffe ] TEST-SHORT
382
+	#ffff #70 SFT2k ROT POP ADD2 [ #ff7f ] TEST-SHORT
383
+	#ffff #7e SFT2k ROT POP ADD2 [ #017f ] TEST-SHORT
384
+	#ffff #e3 SFT2k ROT POP ADD2 [ #bfff ] TEST-SHORT
227 385
 	TYPE
228 386
 
229 387
 	( Memory )