public MarshallCPU(TextWriter outputChan, TextReader inputChan) { this.outputChan = outputChan; this.inputChan = inputChan; if (this.outputChan != null) { this.outputChan.NewLine = CRLF; } core = new UserModeCore(false); cpu = new SimhPDP10CPU(core, OSTypes.Tops10) { ProcessorType = ProcessorTypes.KL10 }; tops10 = new MonitorContext(cpu); tops10.TTCALL.ConsoleOutput += TTCALL_ConsoleOutput; tops10.TTCALL.AttachToConsole(); cpu.ProcFlags = 0; cpu.SetUserMode(); parser = new SimpleParser { CPU = cpu }; }
public void cpuSetup() { Core = new UserModeCore(true); CPU = new SimhPDP10CPU(Core, OSTypes.Tops10) { ProcessorType = ProcessorTypes.KA10 }; CPU.PCChanged += CPU_PCChanged; CPU.LightsChanged += CPU_LightsChanged; CPU.ProcFlagChanged += CPU_ProcFlagChanged; CPU.EffectiveAddressCalculated += CPU_EffectiveAddressCalculated; TOPS10 = new MonitorContext(CPU); TOPS10.TTCALL.ConsoleOutput += TTCALL_ConsoleOutput; TOPS10.TTCALL.AttachToConsole(); loader = new Tops10SAVLoader(Core, KLADEXE); addACs(); addSymbols <int>(typeof(JOBDAT)); MapCore(); MapProperties(); foreach (var seg in Core) { seg.MemberPageChanged += seg_MemberPageChanged; } CoreBrowser.Rows[0].Expanded = true; var gr = FindGridRow(loader.Transaddr.UL); SelectGridRow(gr); DecorateRow(gr, Color.Red, "Transfer Address: " + loader.Transaddr); CPU.PC = loader.Transaddr.UI; CoreBrowser.AfterRowUpdate += CoreBrowser_AfterRowUpdate; setUpYet = true; CPU.ProcFlags = 0; CPU.SetUserMode(); }
private void RestartButton_Click(object sender, EventArgs e) { CPU.PC = loader.Transaddr.UI; CPU.ProcFlags = 0; CPU.SetUserMode(); }