Skip to content

Commit d89f32e

Browse files
Add OneLocalByte test
Context: b6cf669
1 parent 45373e7 commit d89f32e

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

src/dotnes.tests/RoslynTests.cs

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,63 @@ public void OneLocal()
260260
""");
261261
}
262262

263+
[Fact]
264+
public void OneLocalByte()
265+
{
266+
AssertProgram(
267+
csharpSource:
268+
"""
269+
byte[] ATTRIBUTE_TABLE = new byte[0x40] {
270+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
271+
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
272+
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
273+
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
274+
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
275+
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
276+
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
277+
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f
278+
};
279+
byte[] PALETTE = new byte[16] {
280+
0x03,
281+
0x11,0x30,0x27,0x0,
282+
0x1c,0x20,0x2c,0x0,
283+
0x00,0x10,0x20,0x0,
284+
0x06,0x16,0x26
285+
};
286+
byte nametable = 0x16;
287+
pal_bg(PALETTE);
288+
vram_adr(NAMETABLE_A);
289+
vram_fill(nametable, 32 * 30);
290+
vram_write(ATTRIBUTE_TABLE);
291+
ppu_on_all();
292+
while (true) ;
293+
""",
294+
expectedAssembly:
295+
"""
296+
A916
297+
8D2503
298+
A922
299+
A286
300+
202B82 ; JSR pal_bg
301+
A220
302+
A900
303+
20D483 ; JSR vram_adr
304+
AD2503
305+
209385 ; JSR pusha
306+
A203
307+
A9C0
308+
20DF83 ; JSR vram_fill
309+
A9E2
310+
A285
311+
20A985 ; JSR pushax
312+
A200
313+
A940
314+
204F83 ; JSR vram_write
315+
208982 ; JSR ppu_on_all
316+
4C3185 ; JMP $8531
317+
""");
318+
}
319+
263320
[Fact]
264321
public void StaticSprite()
265322
{

0 commit comments

Comments
 (0)