namespace BizHawk.Emulation.Computers.Commodore64.MOS { // vic pal public class MOS6569 : Vic { static int[][] pipeline = new int[][] { new int[] // xposition { 0x0194, 0x0198, 0x019C, 0x01A0, 0x01A4, 0x01A8, 0x01AC, 0x01B0, 0x01B4, 0x01B8, 0x01BC, 0x01C0, 0x01C4, 0x01C8, 0x01CC, 0x01D0, 0x01D4, 0x01D8, 0x01DC, 0x01E0, 0x01E4, 0x01E8, 0x01EC, 0x01F0, 0x01F4, 0x0000, 0x0004, 0x0008, 0x000C, 0x0010, 0x0014, 0x0018, 0x001C, 0x0020, 0x0024, 0x0028, 0x002C, 0x0030, 0x0034, 0x0038, 0x003C, 0x0040, 0x0044, 0x0048, 0x004C, 0x0050, 0x0054, 0x0058, 0x005C, 0x0060, 0x0064, 0x0068, 0x006C, 0x0070, 0x0074, 0x0078, 0x007C, 0x0080, 0x0084, 0x0088, 0x008C, 0x0090, 0x0094, 0x0098, 0x009C, 0x00A0, 0x00A4, 0x00A8, 0x00AC, 0x00B0, 0x00B4, 0x00B8, 0x00BC, 0x00C0, 0x00C4, 0x00C8, 0x00CC, 0x00D0, 0x00D4, 0x00D8, 0x00DC, 0x00E0, 0x00E4, 0x00E8, 0x00EC, 0x00F0, 0x00F4, 0x00F8, 0x00FC, 0x0100, 0x0104, 0x0108, 0x010C, 0x0110, 0x0114, 0x0118, 0x011C, 0x0120, 0x0124, 0x0128, 0x012C, 0x0130, 0x0134, 0x0138, 0x013C, 0x0140, 0x0144, 0x0148, 0x014C, 0x0150, 0x0154, 0x0158, 0x015C, 0x0160, 0x0164, 0x0168, 0x016C, 0x0170, 0x0174, 0x0178, 0x017C, 0x0180, 0x0184, 0x0188, 0x018C, 0x0190 }, new int[] // fetch (100=ref 200=c 300=g 400=i 500=none) { 0x0003, 0x0013, 0x0023, 0x0033, 0x0004, 0x0014, 0x0024, 0x0034, 0x0005, 0x0015, 0x0025, 0x0035, 0x0006, 0x0016, 0x0026, 0x0036, 0x0007, 0x0017, 0x0027, 0x0037, 0x0100, 0x0500, 0x0100, 0x0500, 0x0100, 0x0500, 0x0100, 0x0500, 0x0100, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0200, 0x0300, 0x0500, 0x0400, 0x0500, 0x0400, 0x0500, 0x0000, 0x0010, 0x0020, 0x0030, 0x0001, 0x0011, 0x0021, 0x0031, 0x0002, 0x0012, 0x0022, 0x0032 }, new int[] // BA { 0x0843, 0x0843, 0x0543, 0x0543, 0x0548, 0x0548, 0x0546, 0x0546, 0x0586, 0x0586, 0x0576, 0x0576, 0x0876, 0x0876, 0x0876, 0x0876, 0x0878, 0x0878, 0x0878, 0x0878, 0x0000, 0x0000, 0x1000, 0x1000, // 12: badline 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0880, 0x0880, // 55: sprites 0x0880, 0x0880, 0x0810, 0x0810, 0x0810, 0x0810, 0x0210, 0x0210, 0x0218, 0x0218, 0x0213, 0x0213, 0x0283, 0x0283, 0x0243, 0x0243 }, new int[] // actions { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pipelineUpdateVc, 0, pipelineChkSprChunch, 0, pipelineUpdateMcBase, 0, pipelineChkBrdL1, 0, pipelineChkBrdL0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pipelineChkSprDma, 0, pipelineChkSprDma, pipelineChkBrdR0 | pipelineChkSprExp, 0, pipelineChkBrdR1, pipelineChkSprDisp, pipelineUpdateRc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; public MOS6569() : base(63, 312, pipeline, 17734472 / 18) { } } }