@@ -260,6 +260,63 @@ public void OneLocal()
260
260
""" ) ;
261
261
}
262
262
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
+
263
320
[ Fact ]
264
321
public void StaticSprite ( )
265
322
{
0 commit comments