private void DisplayHeader(RomHeader header)
        {
            Console.WriteLine($"Console:\t{header.ConsoleName}");
            Console.WriteLine($"Copyright:\t{header.Copyright}");
            Console.WriteLine($"Name:\t\t{header.DomesticName}");
            Console.WriteLine($"Int Name:\t{header.InternationalName}");
            Console.WriteLine($"Version:\t{header.Version}");
            Console.WriteLine($"Checksum:\t${header.Checksum}");

            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>();
        }