예제 #1
0
        public static void BSF(Data.Command com)
        {
            int  b1 = (com.GetHighByte() & 3) << 1;
            int  b  = b1 + (((com.GetLowByte() & 128) == 128) ? 1 : 0);
            byte f  = (byte)(com.GetLowByte() & 127);

            Data.SetRegisterBit(Data.AddressResolution(f), b, true);
        }
예제 #2
0
        public static void GOTO(Data.Command com)
        {
            byte k1 = com.GetLowByte();
            byte k2 = (byte)(com.GetHighByte() & 7);

            byte merge = (byte)((Data.GetRegister(Data.Registers.PCLATH) & 24) + k2);

            Data.SetPCFromBytes(merge, k1);
            Data.SetPCLfromPC();
            SkipCycle();
        }
예제 #3
0
        public static void BTFSS(Data.Command com)
        {
            int  b1 = (com.GetHighByte() & 3) << 1;
            int  b  = b1 + (((com.GetLowByte() & 128) == 128) ? 1 : 0);
            byte f  = (byte)(com.GetLowByte() & 127);

            if (Data.GetRegisterBit(Data.AddressResolution(f), b) == true)
            {
                Data.IncPC();
                SkipCycle();
            }
        }