Example #1
0
        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();
 }