Exemplo n.º 1
0
        private static void SET(IOperandVal a, IOperandVal b, IDCPU idcpu)
        {
            MovePCToNext(idcpu);

            b.VAL          = a.VAL;
            idcpu.SkipNext = false;
        }
Exemplo n.º 2
0
        private static void BOR(IOperandVal a, IOperandVal b, IDCPU idcpu)
        {
            MovePCToNext(idcpu);

            b.VAL          = (ushort)(b.VAL | a.VAL);
            idcpu.SkipNext = false;
        }
Exemplo n.º 3
0
        private static void MUL(IOperandVal a, IOperandVal b, IDCPU idcpu)
        {
            MovePCToNext(idcpu);

            b.VAL          = (ushort)(b.VAL * a.VAL);
            idcpu.SkipNext = false;
            //TODO: Handle EX
        }
Exemplo n.º 4
0
        private static void SUB(IOperandVal a, IOperandVal b, IDCPU idcpu)
        {
            MovePCToNext(idcpu);

            b.VAL          = (ushort)(b.VAL - a.VAL);
            idcpu.SkipNext = false;
            //TODO: Handle underflow
        }
Exemplo n.º 5
0
        private static void DVI(IOperandVal a, IOperandVal b, IDCPU idcpu)
        {
            MovePCToNext(idcpu);

            b.VAL          = (ushort)(b.VAL | a.VAL);
            idcpu.SkipNext = false;
            //TODO: Handle Unsigned
        }
Exemplo n.º 6
0
        private static void STD(IOperandVal a, IOperandVal b, IDCPU idcpu)
        {
            MovePCToNext(idcpu);
            b.VAL = a.VAL;
            idcpu.I--;
            idcpu.J--;

            idcpu.SkipNext = !(b.VAL < a.VAL);
        }
Exemplo n.º 7
0
        private static void SHL(IOperandVal a, IOperandVal b, IDCPU idcpu)
        {
            MovePCToNext(idcpu);

            b.VAL = (ushort)(b.VAL << a.VAL);

            idcpu.SkipNext = false;
            idcpu.EX       = (ushort)(((b.VAL << 16) >> a.VAL) & 0xffff);
        }
Exemplo n.º 8
0
        private static void MDI(IOperandVal a, IOperandVal b, IDCPU idcpu)
        {
            MovePCToNext(idcpu);

            if (a.VAL == 0)
            {
                b.VAL = 0;
            }
            else
            {
                b.VAL = (ushort)(b.VAL % a.VAL);
            }

            idcpu.SkipNext = false;
        }
Exemplo n.º 9
0
        private static void IFE(IOperandVal a, IOperandVal b, IDCPU idcpu)
        {
            MovePCToNext(idcpu);

            idcpu.SkipNext = a.VAL != b.VAL;
        }
Exemplo n.º 10
0
        private static void IFU(IOperandVal a, IOperandVal b, IDCPU idcpu)
        {
            MovePCToNext(idcpu);

            idcpu.SkipNext = !(b.VAL < a.VAL);
        }
Exemplo n.º 11
0
        private static void IFC(IOperandVal a, IOperandVal b, IDCPU idcpu)
        {
            MovePCToNext(idcpu);

            idcpu.SkipNext = (a.VAL & b.VAL) != 0;
        }