Ejemplo n.º 1
0
    public void writeRegister(REGISTERS target, uint value)
    {
        switch (target)
        {
        case REGISTERS.CPU_FLAG:
            this.registers[0] = value;
            break;

        case REGISTERS.SHARED_0:
            this.registers[1] = value;
            break;

        case REGISTERS.SHARED_1:
            this.registers[2] = value;
            break;

        case REGISTERS.SHARED_2:
            this.registers[3] = value;
            break;

        case REGISTERS.SHARED_3:
            this.registers[4] = value;
            break;
        }
    }
        public void SetRegister(String reg, UInt32 val)
        {
            reg = reg.ToUpper();
            if (reg.Length == 3)
            {
                SetRegister((REGISTERS)Enum.Parse(typeof(REGISTERS), reg.ToCharArray()[1].ToString()), val);
            }
            else if (reg.Length == 2)
            {
                REGISTERS index = (REGISTERS)Enum.Parse(typeof(REGISTERS), reg.ToCharArray()[0].ToString());
                switch (reg.ToCharArray()[0])
                {
                case 'X':
                    SetRegister(index, LEVEL.LOW, (ushort)val);
                    break;

                case 'H':
                    SetRegister(index, LEVEL.LOW, LEVEL.HIGH, (byte)val);
                    break;

                case 'L':
                    SetRegister(index, LEVEL.LOW, LEVEL.LOW, (byte)val);
                    break;
                }
            }
        }
        public Byte GetRegister(REGISTERS type, LEVEL level1, LEVEL level2)
        {
            UInt16 reg = GetRegister(type, level1);

            switch (level2)
            {
            case LEVEL.HIGH:
                reg = (UInt16)(reg >> 8);
                break;

            case LEVEL.LOW:
                reg = (UInt16)((UInt16)reg << 8 >> 8);
                break;
            }
            return((Byte)reg);
        }
        public UInt16 GetRegister(REGISTERS type, LEVEL level)
        {
            UInt32 reg = GetRegister(type);

            switch (level)
            {
            case LEVEL.HIGH:
                reg >>= 16;
                break;

            case LEVEL.LOW:
                reg = reg << 16 >> 16;
                break;
            }
            return((UInt16)reg);
        }
        public void SetRegister(REGISTERS type, LEVEL level, UInt16 value)
        {
            UInt32 reg = GetRegister(type);

            switch (level)
            {
            case LEVEL.HIGH:
                reg = (UInt32)(value << 16) + (reg << 16 >> 16);
                break;

            case LEVEL.LOW:
                reg  = reg >> 16 << 16;
                reg += value;
                break;
            }
            SetRegister(type, reg);
        }
        public void SetRegister(REGISTERS type, LEVEL level1, LEVEL level2, Byte value)
        {
            UInt16 reg = GetRegister(type, level1);

            switch (level2)
            {
            case LEVEL.HIGH:
                reg = (UInt16)((value << 8) + ((UInt16)(reg << 8) >> 8));
                break;

            case LEVEL.LOW:
                reg  = (UInt16)(reg >> 8 << 8);
                reg += value;
                break;
            }
            SetRegister(type, level1, reg);
        }
        public UInt32 GetRegister(REGISTERS type)
        {
            switch (type)
            {
            case REGISTERS.A:
                return(eax);

            case REGISTERS.B:
                return(ebx);

            case REGISTERS.C:
                return(ecx);

            case REGISTERS.D:
                return(edx);
            }
            return(0);
        }
        public void SetRegister(REGISTERS type, UInt32 value)
        {
            switch (type)
            {
            case REGISTERS.A:
                eax = value;
                break;

            case REGISTERS.B:
                ebx = value;
                break;

            case REGISTERS.C:
                ecx = value;
                break;

            case REGISTERS.D:
                edx = value;
                break;
            }
        }
Ejemplo n.º 9
0
    public uint readRegister(REGISTERS target)
    {
        switch (target)
        {
        case REGISTERS.CPU_FLAG:
            return(this.registers[0]);

        case REGISTERS.SHARED_0:
            return(this.registers[1]);

        case REGISTERS.SHARED_1:
            return(this.registers[2]);

        case REGISTERS.SHARED_2:
            return(this.registers[3]);

        case REGISTERS.SHARED_3:
            return(this.registers[4]);

        default:
            return(0);
        }
    }
Ejemplo n.º 10
0
        public UInt32 GetRegister(String reg)
        {
            reg = reg.ToUpper();
            if (reg.Length == 3)
            {
                return(GetRegister((REGISTERS)Enum.Parse(typeof(REGISTERS), reg.ToCharArray()[1].ToString())));
            }
            else if (reg.Length == 2)
            {
                REGISTERS index = (REGISTERS)Enum.Parse(typeof(REGISTERS), reg.ToCharArray()[0].ToString());
                switch (reg.ToCharArray()[1])
                {
                case 'X':
                    return(GetRegister(index, LEVEL.LOW));

                case 'H':
                    return(GetRegister(index, LEVEL.LOW, LEVEL.HIGH));

                case 'L':
                    return(GetRegister(index, LEVEL.LOW, LEVEL.LOW));
                }
            }
            return(0);
        }
Ejemplo n.º 11
0
 public Register(REGISTERS reg)
 {
     this.reg = reg;
 }
Ejemplo n.º 12
0
 public LocMemr(REGISTERS r)
 {
     loc = r;
 }
Ejemplo n.º 13
0
 public LocReg(REGISTERS r)
 {
     loc = r;
 }