public IDictionary <string, RegisterValue> GetCpuFlagsAndRegisters()
        {
            LibGPGX.RegisterInfo[] regs = new LibGPGX.RegisterInfo[LibGPGX.gpgx_getmaxnumregs()];

            int n = LibGPGX.gpgx_getregs(regs);

            if (n > regs.Length)
            {
                throw new InvalidOperationException("A buffer overrun has occured!");
            }
            var ret = new Dictionary <string, RegisterValue>();

            for (int i = 0; i < n; i++)
            {
                // el hacko
                string name = Marshal.PtrToStringAnsi(regs[i].Name);
                byte   size = 32;
                if (name.Contains("68K SR") || name.StartsWith("Z80"))
                {
                    size = 16;
                }

                ret[name] = new RegisterValue((ulong)regs[i].Value, size);
            }

            return(ret);
        }
Пример #2
0
        public Dictionary <string, int> GetCpuFlagsAndRegisters()
        {
            LibGPGX.RegisterInfo[] regs = new LibGPGX.RegisterInfo[LibGPGX.gpgx_getmaxnumregs()];

            int n = LibGPGX.gpgx_getregs(regs);

            if (n > regs.Length)
            {
                throw new InvalidOperationException("A buffer overrun has occured!");
            }
            var ret = new Dictionary <string, int>();

            for (int i = 0; i < n; i++)
            {
                ret[Marshal.PtrToStringAnsi(regs[i].Name)] = regs[i].Value;
            }
            return(ret);
        }
Пример #3
0
        public IDictionary<string, RegisterValue> GetCpuFlagsAndRegisters()
        {
            LibGPGX.RegisterInfo[] regs = new LibGPGX.RegisterInfo[Core.gpgx_getmaxnumregs()];

            int n = Core.gpgx_getregs(regs);
            if (n > regs.Length)
                throw new InvalidOperationException("A buffer overrun has occured!");
            var ret = new Dictionary<string, RegisterValue>();
            for (int i = 0; i < n; i++)
            {
                // el hacko
                string name = Marshal.PtrToStringAnsi(regs[i].Name);
                byte size = 32;
                if (name.Contains("68K SR") || name.StartsWith("Z80"))
                    size = 16;

                ret[name] = new RegisterValue((ulong)regs[i].Value, size);
            }

            return ret;
        }
Пример #4
0
		public Dictionary<string, int> GetCpuFlagsAndRegisters()
		{
			LibGPGX.RegisterInfo[] regs = new LibGPGX.RegisterInfo[LibGPGX.gpgx_getmaxnumregs()];

			int n = LibGPGX.gpgx_getregs(regs);
			if (n > regs.Length)
				throw new InvalidOperationException("A buffer overrun has occured!");
			var ret = new Dictionary<string, int>();
			for (int i = 0; i < n; i++)
				ret[Marshal.PtrToStringAnsi(regs[i].Name)] = regs[i].Value;
			return ret;
		}