public override void Execute(PICController controller) { bool Cond = TestCondition(controller); uint Result = controller.GetBankedRegister(Register); if (Result == 0) { Result = 0xFF; } else { Result -= 1; } if (Target) { controller.SetBankedRegister(Register, Result); } else { controller.SetWRegister(Result); } if (Cond) { controller.SetPC_13Bit(controller.GetPC() + 1); } }
public override void Execute(PICController controller) { if (TestCondition(controller)) { controller.SetPC_13Bit(controller.GetPC() + 1); } }
public override void Execute(PICController controller) { controller.PushCallStack(controller.GetPC()); controller.SetPC_11Bit(Address); }
private void onIdle() { IdleCounter.Inc(); if (controller != null) { UpdateRegister(); UpdateStackDisplay(); IconBar.SetPC(controller.GetSCLineForPC(controller.GetPC())); lblFreqModel.Text = FormatFreq((uint)controller.Frequency.Frequency); lblFreqView.Text = FormatFreq((uint)IdleCounter.Frequency); lblRunTime.Text = FormatRuntime(controller.GetRunTime()); lblRegW.Text = "0x" + string.Format("{0:X02}", controller.GetWRegister()); lblRegPC.Text = "0x" + string.Format("{0:X04}", controller.GetPC()); lblQuartzFreq.Text = FormatFreq(controller.EmulatedFrequency); btnSetQuartzFreq.IsEnabled = true; lblWatchDogTmr.Text = string.Format("{0:000.000} %", controller.GetWatchDogPerc() * 100); chkbxWatchdog.IsEnabled = true; chkbxWatchdog.IsChecked = controller.IsWatchDogEnabled(); regClock_0.UpdateUI(controller); regClock_1.UpdateUI(controller); regClock_2.UpdateUI(controller); regClock_3.UpdateUI(controller); regClock_0.IsEnabled = controller.Mode == PICControllerMode.WAITING || controller.Mode == PICControllerMode.PAUSED; regClock_1.IsEnabled = controller.Mode == PICControllerMode.WAITING || controller.Mode == PICControllerMode.PAUSED; regClock_2.IsEnabled = controller.Mode == PICControllerMode.WAITING || controller.Mode == PICControllerMode.PAUSED; regClock_3.IsEnabled = controller.Mode == PICControllerMode.WAITING || controller.Mode == PICControllerMode.PAUSED; rs232_link.Update(controller); } else { ClearRegister(); ClearStackDisplay(); IconBar.SetPC(0); lblFreqModel.Text = FormatFreq(0); lblFreqView.Text = FormatFreq(0); lblRunTime.Text = FormatRuntime(0); lblRegW.Text = "0x" + string.Format("{0:X02}", 0); lblRegPC.Text = "0x" + string.Format("{0:X04}", 0); lblQuartzFreq.Text = FormatFreq(0); btnSetQuartzFreq.IsEnabled = false; lblWatchDogTmr.Text = string.Format("{0:000,000} %", 0); chkbxWatchdog.IsEnabled = false; regClock_0.ResetUI(); regClock_1.ResetUI(); regClock_2.ResetUI(); regClock_3.ResetUI(); regClock_0.IsEnabled = false; regClock_1.IsEnabled = false; regClock_2.IsEnabled = false; regClock_3.IsEnabled = false; rs232_link.Update(controller); } txtCode.IsReadOnly = controller != null && controller.Mode != PICControllerMode.WAITING; CommandManager.InvalidateRequerySuggested(); }