Ejemplo n.º 1
0
 public SubtractWithCarry_16bit(Z80Cpu cpu, RegAddrMode16Bit destinationAddressMode, RegAddrMode16Bit sourceAddressMode)
 {
     _cpu = cpu;
     _destinationAddressMode = destinationAddressMode;
     _sourceAddressMode      = sourceAddressMode;
     _internalCycle          = new InternalCycle(7);
 }
Ejemplo n.º 2
0
 public RotateDigit(Z80Cpu cpu, bool isLeftShift)
 {
     _cpu           = cpu;
     _addressMode   = new RegIndirect(_cpu, WideRegister.HL);
     _internalCycle = new InternalCycle(4);
     _isLeftShift   = isLeftShift;
 }
Ejemplo n.º 3
0
 public CALL(Z80Cpu cpu, IAddressMode <ushort> addressMode, JumpCondition jumpCondition)
 {
     _cpu           = cpu;
     _addressMode   = addressMode;
     _internalCycle = new InternalCycle(1);
     _jumpCondition = jumpCondition;
 }
Ejemplo n.º 4
0
 public Add_16bit(Z80Cpu cpu, RegAddrMode16Bit destinationAddressMode, RegAddrMode16Bit sourceAddressMode, bool withCarry = false)
 {
     _cpu = cpu;
     _destinationAddressMode = destinationAddressMode;
     _sourceAddressMode      = sourceAddressMode;
     _withCarry     = withCarry;
     _internalCycle = new InternalCycle(7);
 }
Ejemplo n.º 5
0
 public INxx(Z80Cpu cpu, bool increment, bool repeats)
 {
     _cpu               = cpu;
     _inputCycle        = new InputCycle(cpu);
     _destination       = new RegIndirect(cpu, WideRegister.HL);
     _repeatCycles      = new InternalCycle(5);
     _remainingM1Cycles = 1;
     _increment         = increment;
     _repeats           = repeats;
 }
Ejemplo n.º 6
0
 public OUTxx(Z80Cpu cpu, bool increment, bool repeats)
 {
     _cpu               = cpu;
     _outputCycle       = new OutputCycle(cpu);
     _sourceReader      = new RegIndirect(cpu, WideRegister.HL).Reader;
     _repeatCycles      = new InternalCycle(5);
     _remainingM1Cycles = 1;
     _increment         = increment;
     _repeats           = repeats;
 }
Ejemplo n.º 7
0
 public Jump(Z80Cpu cpu, IAddressMode <ushort> addressMode, JumpCondition condition, bool requiresConditionalInternalCycle = false, int additionalM1TCycles = 0, string mnemomic = "JP")
 {
     _cpu         = cpu;
     _addressMode = addressMode;
     _condition   = condition;
     _requiresConditionalInternalCycle = requiresConditionalInternalCycle;
     _internalCycle       = new InternalCycle(5);
     _additionalM1TCycles = additionalM1TCycles;
     _remainingM1Cycles   = additionalM1TCycles;
     Mnemonic             = mnemomic;
 }
Ejemplo n.º 8
0
 public Indexed(Z80Cpu cpu, WideRegister register, int internalCycleLength = 5, bool additionalCycleOnRead = false)
 {
     if (register != WideRegister.IX && register != WideRegister.IY)
     {
         throw new InvalidOperationException("Invald index register specified");
     }
     _register              = register;
     _cpu                   = cpu;
     _offsetReadCycle       = new MemReadCycle(cpu);
     _internalCycle         = new InternalCycle(internalCycleLength);
     _additionalCycleOnRead = additionalCycleOnRead;
 }
Ejemplo n.º 9
0
 public MemoryByteReader(Z80Cpu cpu, ushort?address = null, bool additionalCycleAtEnd = false)
 {
     _memoryReader         = new MemReadCycle(cpu);
     _memoryReader.Address = address;
     _internalCycle        = new InternalCycle(additionalCycleAtEnd ? 1 : 0);
 }