private void DisplayState(MegadriveState state) { Console.WriteLine($"A0=${state.ReadAReg(0x0):X8} A1=${state.ReadAReg(0x1):X8}"); Console.WriteLine($"A2=${state.ReadAReg(0x2):X8} A3=${state.ReadAReg(0x3):X8}"); Console.WriteLine($"A4=${state.ReadAReg(0x4):X8} A5=${state.ReadAReg(0x5):X8}"); Console.WriteLine($"A6=${state.ReadAReg(0x6):X8} A7=${state.ReadAReg(0x7):X8}"); Console.WriteLine($"D0=${state.ReadDReg(0x0):X8} D1=${state.ReadDReg(0x1):X8}"); Console.WriteLine($"D2=${state.ReadDReg(0x2):X8} D3=${state.ReadDReg(0x3):X8}"); Console.WriteLine($"D4=${state.ReadDReg(0x4):X8} D5=${state.ReadDReg(0x5):X8}"); Console.WriteLine($"D6=${state.ReadDReg(0x6):X8} D7=${state.ReadDReg(0x7):X8}"); Console.WriteLine($"PC=${state.PC:X8} SR=${state.SR:X8}"); Console.WriteLine(); }
/// <summary> /// Initializes a new instance of the <see cref="MegadriveDecoder"/> class. /// </summary> /// <param name="rom">rom data.</param> public MegadriveDecoder(Data rom) { RomHeader h = new RomHeader(rom); this.DisplayHeader(h); ushort checksum = rom.Checksum(0x200); string match = checksum == h.Checksum ? "match" : "invalid"; Console.WriteLine($"Calc Checksum:\t${checksum}\t{match}"); Console.WriteLine(); this.state = new MegadriveState(rom, h.Origin, h.SP, h.RomStart, h.RomEnd, h.RamStart, h.RamEnd); this.disassembly = new Dictionary <uint, OpCode>(); }