public override string ShouldBreak(IDebuggerEngine engine)
 {
     for (int address = AddressStart; address <= AddressEnd; address++)
     {
         if (address > engine.CoreSize)
         {
             address = 0;
         }
         CoreEventRecord  record           = engine.CoreEvents[address];
         InstructionEvent instructionEvent = record.Event & Event;
         if (record.Cycle == engine.Cycle - 1 && instructionEvent != InstructionEvent.None)
         {
             return("Core event " + instructionEvent + " on address " + address);
         }
     }
     return(null);
 }
Exemplo n.º 2
0
        public void InvalidateEvents()
        {
            long lmax = maxVersion;

            CoreEventRecord[] records = Engine.CoreEvents;
            for (int index = 0; index < Count; index++)
            {
                int             address = view[index];
                CoreEventRecord evn     = records[address];
                long            ver     = evn.Version;
                if (ver > maxVersion)
                {
                    if (ver > lmax)
                    {
                        lmax = ver;
                    }
                    if (change != null)
                    {
                        change.Invoke(this, new ListChangedEventArgs(ListChangedType.ItemChanged, index));
                    }
                }
            }
            maxVersion = lmax;
        }
Exemplo n.º 3
0
 protected override void InitializeRound()
 {
     base.InitializeRound();
     coreEvents = new CoreEventRecord[coreSize];
     for (int a = 0; a < coreSize; a++)
     {
         coreEvents[a] = new CoreEventRecord();
     }
 }
Exemplo n.º 4
0
        private static void PaintFlash(IMemoryPainter painter, CoreEventRecord evt)
        {
            Color evnt;
            Color touched;
            ColorManager.GetFlash(evt, out evnt, out touched);

            painter.DrawSmall(evnt);
            painter.DrawBig(touched);
            painter.DrawData(evnt);
        }
Exemplo n.º 5
0
        private static void PaintFade(IMemoryPainter painter, IRunningInstruction ri, CoreEventRecord evt)
        {
            Color evnt;
            Color owner;
            ColorManager.GetFade(ri, evt, out evnt, out owner);

            painter.DrawSmall(evnt);
            painter.DrawBig(owner);
            painter.DrawData(evnt);
        }
Exemplo n.º 6
0
 public static void PaintCell(IMemoryPainter painter, CoreEventRecord evnt, IRunningInstruction ri, bool paintAll)
 {
     switch (evnt.Level)
     {
         case CoreEventsLevel.Flash:
             PaintFlash(painter,evnt);
             break;
         case CoreEventsLevel.Fade:
             PaintFade(painter, ri, evnt);
             break;
         case CoreEventsLevel.Clean:
             PaintNormal(painter, ri);
             break;
         case CoreEventsLevel.None:
             if (paintAll)
             {
                 PaintNormal(painter, ri);
             }
             break;
     }
 }
Exemplo n.º 7
0
 public static void GetFlash(CoreEventRecord evt, out Color evnt, out Color touched)
 {
     evnt = GetEventColor(evt.Event);
     touched = GetWarriorColor(evt.Touched);
 }
Exemplo n.º 8
0
 public static void GetFade(IRunningInstruction ri, CoreEventRecord evt, out Color evnt, out Color owner)
 {
     evnt = GetEventColor(evt.Event);
     owner = GetWarriorColor(ri.OriginalOwner);
 }