/// <summary> /// 指定アドレッシングモードでのアドレス取得 /// </summary> /// <param name="mode"></param> /// <returns></returns> private ushort GetAddress(CpuAddressingModeType mode) { switch (mode) { case CpuAddressingModeType.Immediate: return this.GetAddressImmediate(); case CpuAddressingModeType.Zeropage: return this.GetAddressZeroPage(); case CpuAddressingModeType.ZeropageX: return this.GetAddressZeroPageX(); case CpuAddressingModeType.ZeropageY: return this.GetAddressZeroPageY(); case CpuAddressingModeType.Indirect: return this.GetAddressIndirect(); case CpuAddressingModeType.IndirectX: return this.GetAddressIndirectX(); case CpuAddressingModeType.IndirectY: return this.GetAddressIndirectY(); case CpuAddressingModeType.Absolute: return this.GetAddressAbsolute(); case CpuAddressingModeType.AbsoluteX: return this.GetAddressAbsoluteX(); case CpuAddressingModeType.AbsoluteY: return this.GetAddressAbsoluteY(); default: return 0; } }
/// <summary> /// コンストラクタ /// </summary> /// <param name="command"></param> /// <param name="mode"></param> /// <param name="cycle"></param> /// <param name="size"></param> public CpuCommand(CpuCommandType command, CpuAddressingModeType mode, int cycle, int size) { this.Command = command; this.AdressingMode = mode; this.Cycle = cycle; this.Size = size; }