void ParseRegisters(Builder& target)
 {
   Stream.Seek(0x10);
   const auto pc = fromLE(Stream.ReadField<uint32_t>());
   const auto gp = fromLE(Stream.ReadField<uint32_t>());
   Dbg("PC=0x%08x GP=0x%08x", pc, gp);
   target.SetRegisters(pc, gp);
 }
Example #2
0
 void ParseMainPart(Builder& target)
 {
   const RawHeader& hdr = Stream.ReadField<RawHeader>();
   Require(hdr.Signature == SIGNATURE);
   ParseID666(hdr.ID666, target);
   target.SetRegisters(fromLE(hdr.Regs.PC), hdr.Regs.A, hdr.Regs.X, hdr.Regs.Y, hdr.Regs.PSW, hdr.Regs.SP);
   target.SetRAM(hdr.RAM, sizeof(hdr.RAM));
   target.SetDSPRegisters(hdr.DSPRegisters, sizeof(hdr.DSPRegisters));
   if (Stream.GetRestSize() >= sizeof(ExtraRAM))
   {
     const ExtraRAM& extra = Stream.ReadField<ExtraRAM>();
     target.SetExtraRAM(extra.Data, sizeof(extra.Data));
   }
 }