Beispiel #1
0
        private int CMOSResolve(ICpu cpu, ref byte[] raw)
        {
            int loc = LEHelper.From(raw);

            byte[] target = new byte[] { cpu.Memory.Get(loc), cpu.Memory.Get(loc + 1) };

            return(LEHelper.From(target));
        }
Beispiel #2
0
        public override int Resolve(ICpu cpu, ref byte[] raw)
        {
            int memAddr  = (raw[0] + cpu.X.Value) % 256;
            int memAddr2 = (memAddr + 1) % 256;

            byte[] target = { cpu.Memory.Get(memAddr), cpu.Memory.Get(memAddr2) };

            return(LEHelper.From(target));
        }
Beispiel #3
0
        private int NMOSResolve(ICpu cpu, ref byte[] raw)
        {
            int firstLoc = LEHelper.From(raw);

            // 6502 bug (https://everything2.com/node/868510)
            raw[0] = (byte)((raw[0] + 1) % 256);

            int secondLoc = LEHelper.From(raw);

            byte[] target = { cpu.Memory.Get(firstLoc), cpu.Memory.Get(secondLoc) };

            return(LEHelper.From(target));
        }
        public override int Resolve(ICpu cpu, ref byte[] raw)
        {
            int memAddr  = raw[0];
            int memAddr2 = (memAddr + 1) % 256;

            byte[] target = { cpu.Memory.Get(memAddr), cpu.Memory.Get(memAddr2) };

            // carry 1 cycle penalty
            int lower = target[0] + cpu.Y.Value;

            if (cpu.Type == CPUType.CMOS || lower > 0xFF)
            {
                cpu.SleepCycles++;
            }

            int address = LEHelper.From(target);

            return(address + cpu.Y.Value);
        }
Beispiel #5
0
        public void ReturnsCorrectArray(int input, int bytes, byte[] expected)
        {
            byte[] res = LEHelper.To(input, bytes);

            Assert.Equal(expected, res);
        }
Beispiel #6
0
        public void ReturnsCorrectNumber(byte[] input, int expected)
        {
            int res = LEHelper.From(input);

            Assert.Equal(expected, res);
        }
Beispiel #7
0
 public override int Resolve(ICpu cpu, ref byte[] raw)
 {
     return(LEHelper.From(raw));
 }