예제 #1
0
        /// -------------------------------------------------------------------------------------------------
        /// <summary> Updates the after registers described by response. </summary>
        ///
        /// <remarks> 08/09/2018. </remarks>
        ///
        /// <param name="response"> The response. </param>
        /// -------------------------------------------------------------------------------------------------
        void UpdateAfterRegisters(string[] response)
        {
            myNewRegisters.UpdateRegisters(response);

            UpdateBreakpoints();

            if (myDisassembly != null)
            {
                int pc = 0;
                if (myNewRegisters != null)
                {
                    pc = myNewRegisters.GetRegisterValueint(Registers.Z80Register.pc);
                }
                myDisassembly.RequestUpdate(pc);
            }

            //foreach (BaseDock sv in myDocks)
            //{
            //    sv.RequestUpdate();
            //}
            //if (myScreen!=null)
            //{
            //    if (refreshScreen)
            //    {
            //        refreshScreen = false;
            //        myScreen.RequestUpdate();
            //    }
            //}
            if (UpdatePcFocus)
            {
                if (myMemWatch != null)
                {
                    myMemWatch.UpdateMemory();
                }

                if (mycallstack != null)
                {
                    mycallstack.UpdateCallStack();
                }

                if (myWatches != null)
                {
                    myWatches.Update();
                }
            }


            if (mySourceWindow != null)
            {
                if (myNewRegisters != null)
                {
                    int pc = myNewRegisters.GetRegisterValueint(Registers.Z80Register.pc);
                    mySourceWindow.UpdatePC(pc, UpdatePcFocus);                //Program.InStepMode);
                }
            }
        }
예제 #2
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            UpdateStatus();
            if (!Program.telnetConnection.connected)
            {
                return;
            }

            if (Program.telnetConnection.IsQueueEmpty())
            {
                if (myNewRegisters != null)
                {
                    myNewRegisters.RequestUpdate();
                }
                if (myBreakpoints != null)
                {
                    myBreakpoints.RequestUpdate();
                }
                if (myDisassembly != null)
                {
                    string address = "0000H";
                    if (myNewRegisters != null)
                    {
                        address = myNewRegisters.GetRegisterValue("PC") + "H";
                    }
                    myDisassembly.RequestUpdate(address);
                }
                foreach (BaseDock sv in myDocks)
                {
                    sv.RequestUpdate();
                }
                if (myScreen != null)
                {
                    if (refreshScreen)
                    {
                        refreshScreen = false;
                        myScreen.RequestUpdate();
                    }
                }
            }
        }
예제 #3
0
        // -------------------------------------------------------------------------------------------------
        // Registers the update
        //
        // \param   response
        // The response.
        // \param   tag
        // The tag.
        // -------------------------------------------------------------------------------------------------
        private void RegisterUpdate(byte[] response, int tag)
        {
            myNewRegisters.regcallback(response, tag);


            if (Program.InStepMode)
            {
                FocusPC();
            }

            MainForm.myBreakpoints.RequestUpdate();

            MainForm.myMemoryWatch.UpdateMemory();
            MainForm.myMemWatch.UpdateMemory();
            MainForm.myWatches.UpdateWatches();
            MainForm.mycallstack.UpdateCallStack();

            int pc = myNewRegisters.GetRegisterValueint(Registers.Z80Register.pc);

            myDisassembly.RequestUpdate(pc);

            Program.StepBusy = false;
        }