avrora.sim
Class ProbedActiveRegister

java.lang.Object
  extended byavrora.sim.ProbedActiveRegister
All Implemented Interfaces:
ActiveRegister

public class ProbedActiveRegister
extends java.lang.Object
implements ActiveRegister

The ProbedActiveRegister class implements a register that has probes attached to it. It behaves like a normal ActiveRegister, except that it will notify its watches before each read and write.


Field Summary
protected  ActiveRegister ioreg
           
protected  int ioreg_num
           
protected  MulticastIORWatch watches
           
 
Constructor Summary
protected ProbedActiveRegister(BaseInterpreter interpreter, ActiveRegister ar, int inum)
           
 
Method Summary
 byte read()
          The read() method reads the 8-bit value of the IO register as a byte.
 boolean readBit(int bit)
          The readBit() method reads a single bit from the IO register.
 void write(byte value)
          The write() method writes an 8-bit value to the IO register as a byte.
 void writeBit(int bit, boolean val)
          The writeBit() method writes a single bit value into the IO register at the specified bit offset.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ioreg_num

protected final int ioreg_num

ioreg

protected final ActiveRegister ioreg

watches

protected final MulticastIORWatch watches
Constructor Detail

ProbedActiveRegister

protected ProbedActiveRegister(BaseInterpreter interpreter,
                               ActiveRegister ar,
                               int inum)
Method Detail

write

public void write(byte value)
The write() method writes an 8-bit value to the IO register as a byte. For special IO registers, this may cause some action like device activity, masking/unmasking of interrupts, etc. In the implementation of the ProbedActiveRegister class, this method will notify the watch(es) for this register before and after the write.

Specified by:
write in interface ActiveRegister
Parameters:
value - the value to write

writeBit

public void writeBit(int bit,
                     boolean val)
The writeBit() method writes a single bit value into the IO register at the specified bit offset. In the implementation of the ProbedActiveRegister class, this method will notify the watch(es) for this register before and after the write.

Specified by:
writeBit in interface ActiveRegister
Parameters:
bit - the number of the bit to write
val - the value of the bit to write

read

public byte read()
The read() method reads the 8-bit value of the IO register as a byte. For special IO registers, this may cause some action like device activity, or the actual value of the register may need to be fetched or computed. In the implementation of the ProbedActiveRegister class, this method will notify the watch(es) for this register before and after the read.

Specified by:
read in interface ActiveRegister
Returns:
the value of the register as a byte

readBit

public boolean readBit(int bit)
The readBit() method reads a single bit from the IO register. In the implementation of the ProbedActiveRegister class, this method will notify the watch(es) for this register before and after the read.

Specified by:
readBit in interface ActiveRegister
Parameters:
bit - the number of the bit to read
Returns:
the value of the bit as a boolean