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); }