// Copyright 2011-2012 Paulo Augusto Peccin. See licence.txt distributed with this file.

package org.javatari.general.m6502.instructions;

import org.javatari.general.m6502.Instruction;
import org.javatari.general.m6502.M6502;

public final class uASR extends Instruction {

	public uASR(M6502 cpu) {
		super(cpu);
	}

	@Override
	public int fetch() {
		ea = cpu.fetchImmediateAddress(); return 2;
	}

	@Override
	public void execute() {
		byte val = (byte) (cpu.A & cpu.bus.readByte(ea)); 
		cpu.CARRY = (val & 0x01) > 0;		// bit 0 was set
		val = (byte) ((val & 0xff) >>> 1);
		cpu.A = val;
		cpu.ZERO = val == 0;
		cpu.NEGATIVE = false;
	}

	private int ea;
	

	public static final long serialVersionUID = 1L;
	
}
