コード例 #1
0
        public override void paint(SdlDotNet.Graphics.Surface display, bool focused, Point offset)
        {
            PCLable.Text = String.Format("{0:X4}", atari.m_PC);
            ALable.Text  = String.Format("{0:X2}", atari.m_A);
            XLable.Text  = String.Format("{0:X2}", atari.m_X);
            YLable.Text  = String.Format("{0:X2}", atari.m_Y);
            SLable.Text  = String.Format("{0:X2}", atari.m_S);

            string flags = "CZIDB1VS";
            string p     = "";
            byte   mp    = atari.BuildStatus(false);

            for (int i = 0; i < 8; i++)
            {
                if ((mp & 1 << i) != 0)
                {
                    p += flags[i];
                }
                else
                {
                    p += "-";
                }
            }
            PLable.Text = String.Format(p);

            if (followPC)
            {
                addressChanged(atari.m_PC);
            }

            ushort pos = focusAddress;

            string adr = "";
            string dat = "";
            string ins = "";

            for (int i = 0; i < 13; i++)
            {
                adr += String.Format("{0:x4}\n", pos);
                ins += ((pos == atari.m_PC)?"--> ":"    ") + atari.instructionAsm(pos) + "\n";

                byte[] d = atari.instructionData(pos);
                for (int b = 0; b < d.Length; b++)
                {
                    dat += String.Format("{0:x2} ", d[b]);
                }
                dat += "\n";

                pos += (ushort)d.Length;
            }

            address.Text     = adr;
            instruction.Text = ins;
            data.Text        = dat;

            base.paint(display, focused, offset);
        }