// Inicialização da execução public static void StartSim() { controller = new ControlUnit(); io = new InOut(); lifo = new LIFO(); ram = new RAM(); bco = new RegisterBase(); rom = new ROM(); ula = new ULA(); rom.SetProgram(binProgram); // Setando a ROM com o programa currentAddress = 0; // Setando o endereço inicial currentInstruction = rom.GetInstruction(Convert.ToUInt32(currentAddress)); // Setando a instrução inicial // Zerando vetor de IN for (uint i = 0; i < 512; i++) { inValues[i] = 0; } // Limpando io.CleanInBox(); io.CleanOutBox(); ram.CleanDataMemory(); bco.CleanRegisterBCO(); bco.CleanRs(); ula.CleanBox(); // Zerando variáveis rs1 = 0; rs2 = 0; rdst = 0; imed = 0; inValue = 0; outValue = 0; // Interrupções for (uint i = 0; i < 6; i++) { enableInt[i] = false; addrInterruption[i] = 513; } // InOut inValues = io.GetInVector(); inOrOut = io.GetInOrOutVector(); enableInterruption = false; interruption = 0; interruptionQueue = new Queue <uint>(); }
// Para de executar o programa public static void StopProgram() { currentInstruction = "XXXX"; currentAddress = 0; binProgram = null; assemblyProgram = null; fileName = null; controller = null; io = null; lifo = null; ram = null; bco = null; rom = null; translator = null; ula = null; for (uint i = 0; i < 6; i++) { enableInt[i] = false; } error = ""; }