private void Step() { if (registerIR.Value == 0xE00D) { runTimer.Stop(); System.Windows.Forms.MessageBox.Show("Program finished"); } DeactivateCommands(); if (IsIllegalinstruction()) { runTimer.Stop(); System.Windows.Forms.MessageBox.Show("Illegal instruction detected. Halting program"); } RegisterMIR.LongValue = MPM[RegisterMAR.Value]; ExecuteSBUSOperation(RegisterMIR.GetSBUS()); ExecuteDBUSOperation(RegisterMIR.GetDBUS()); ExecuteAluOperation(RegisterMIR.GetOPALU()); ExecuteRBUSOperation(RegisterMIR.GetRBUS()); ExecuteOTHEROperation(RegisterMIR.GetOTHER()); ExecuteOPMEMOperation(RegisterMIR.GetOPMEM()); ExecuteIndexOperation(RegisterMIR.GetCOND(), false, RegisterMIR.GetJUMPBASE(), RegisterMIR.GetINDEX()); Invalidate(); }
private void InitializeSeqencer() { RegisterMIR.Init(RegisteredSBUSCommands, RegisteredDBUSCommands, RegisteredOPALUCommands, RegisteredRBUSCommands, RegisteredOTHERCommands, RegisteredOPMEMCommands); }