Esempio n. 1
0
 public string GetSyntax(OpCodeDefinition opCodeDefinition, IAddressingMode addressingMode, CPUMemory memory, CPURegisters registers, byte operand1, byte operand2)
 {
     return(string.Empty);
 }
Esempio n. 2
0
        public ushort GetAddress(CPUMemory memory, CPURegisters registers, byte operand1, byte operand2, out bool pageBoundaryCrossed)
        {
            pageBoundaryCrossed = false;

            return((byte)(operand1 + registers.Y));
        }
Esempio n. 3
0
        public byte Execute(OpCodeDefinition opCodeDefinition, IAddressingMode addressingMode, CPUMemory memory, CPURegisters registers, byte operand1, byte operand2)
        {
            var operationValue = memory.Stack.Span[++registers.SP];

            registers.N_NegativeFlag = (byte)((operationValue & 0x80) >> 7);
            registers.Z_ZeroFlag     = (byte)(operationValue == 0 ? 1 : 0);

            registers.A = operationValue;

            return(opCodeDefinition.ExecutionCycles);
        }
Esempio n. 4
0
 public string GetSyntax(CPUMemory memory, CPURegisters registers, byte operand1, byte operand2)
 {
     return($"${operand1:X02},Y @ {(byte)(operand1 + registers.Y):X02}");
 }
Esempio n. 5
0
 public void SetValue(CPUMemory memory, CPURegisters registers, ushort address, byte value)
 {
     memory[address] = value;
 }
Esempio n. 6
0
        public void SetValue(CPUMemory memory, CPURegisters registers, byte operand1, byte operand2, byte value, out bool pageBoundaryCrossed)
        {
            var address = GetAddress(memory, registers, operand1, operand2, out pageBoundaryCrossed);

            memory[address] = value;
        }
Esempio n. 7
0
 public byte GetValue(CPUMemory memory, CPURegisters registers, ushort address)
 {
     return(memory[address]);
 }
Esempio n. 8
0
        public byte GetValue(CPUMemory memory, CPURegisters registers, byte operand1, byte operand2, out bool pageBoundaryCrossed)
        {
            var address = GetAddress(memory, registers, operand1, operand2, out pageBoundaryCrossed);

            return(memory[address]);
        }