예제 #1
0
		private UInt16 GetFlags(ref GsuState state)
		{
			return (UInt16)(
				(state.SFR.Zero ? 2 : 0) |
				(state.SFR.Carry ? 4 : 0) |
				(state.SFR.Sign ? 8 : 0) |
				(state.SFR.Overflow ? 0x10 : 0) |
				(state.SFR.Running ? 0x20 : 0) |
				(state.SFR.RomReadPending ? 0x40 : 0) |
				(state.SFR.Alt1 ? 0x100 : 0) |
				(state.SFR.Alt2 ? 0x200 : 0) |
				(state.SFR.ImmLow ? 0x400 : 0) |
				(state.SFR.ImmHigh ? 0x800 : 0) |
				(state.SFR.Prefix ? 0x1000 : 0) |
				(state.SFR.Irq ? 0x8000 : 0)
			);
		}
예제 #2
0
		public void UpdateStatus(GsuState state)
		{
			txtR0.Text = state.R[0].ToString("X4");
			txtR1.Text = state.R[1].ToString("X4");
			txtR2.Text = state.R[2].ToString("X4");
			txtR3.Text = state.R[3].ToString("X4");
			txtR4.Text = state.R[4].ToString("X4");
			txtR5.Text = state.R[5].ToString("X4");
			txtR6.Text = state.R[6].ToString("X4");
			txtR7.Text = state.R[7].ToString("X4");
			txtR8.Text = state.R[8].ToString("X4");
			txtR9.Text = state.R[9].ToString("X4");
			txtR10.Text = state.R[10].ToString("X4");
			txtR11.Text = state.R[11].ToString("X4");
			txtR12.Text = state.R[12].ToString("X4");
			txtR13.Text = state.R[13].ToString("X4");
			txtR14.Text = state.R[14].ToString("X4");
			txtR15.Text = state.R[15].ToString("X4");

			txtProgramBank.Text = state.ProgramBank.ToString("X2");
			txtRamBank.Text = state.RamBank.ToString("X2");
			txtRomBank.Text = state.RomBank.ToString("X2");

			txtSrc.Text = state.SrcReg.ToString();
			txtDest.Text = state.DestReg.ToString();

			chkAlt1.Checked = state.SFR.Alt1;
			chkAlt2.Checked = state.SFR.Alt2;
			chkPrefix.Checked = state.SFR.Prefix;
			chkIrq.Checked = state.SFR.Irq;
			chkRunning.Checked = state.SFR.Running;
			chkNegative.Checked = state.SFR.Sign;
			chkZero.Checked = state.SFR.Zero;
			chkOverflow.Checked = state.SFR.Overflow;
			chkCarry.Checked = state.SFR.Carry;
			chkRomRead.Checked = state.SFR.RomReadPending;

			txtSFR.Text = GetFlags(ref state).ToString("X4");
		}