dioscuri.module.cpu32
Class PhysicalAddressSpace

java.lang.Object
  extended by dioscuri.module.cpu32.Memory
      extended by dioscuri.module.cpu32.AbstractMemory
          extended by dioscuri.module.cpu32.AddressSpace
              extended by dioscuri.module.cpu32.PhysicalAddressSpace
All Implemented Interfaces:
ByteArray, HardwareComponent, Hibernatable

public final class PhysicalAddressSpace
extends AddressSpace
implements HardwareComponent

Author:
Bram Lohman, Bart Kiers

Nested Class Summary
static class PhysicalAddressSpace.MapWrapper
           
static class PhysicalAddressSpace.UnconnectedMemoryBlock
           
 
Field Summary
static int SYS_RAM_SIZE
           
static Memory UNCONNECTED
           
 
Fields inherited from class dioscuri.module.cpu32.AddressSpace
BLOCK_MASK, BLOCK_SIZE, INDEX_MASK, INDEX_SHIFT, INDEX_SIZE
 
Constructor Summary
PhysicalAddressSpace()
           
 
Method Summary
 void acceptComponent(HardwareComponent component)
           
 void allocateMemory(int start, Memory block)
           
 void clear()
           
 CodeBlock decodeCodeBlockAt(Processor cpu, int offset)
           
 void dumpState(java.io.DataOutput output)
           
 int execute(Processor cpu, int offset)
           
 int getAllocatedBufferSize()
           
 boolean getGateA20State()
           
 Memory getReadMemoryBlockAt(int offset)
           
 Memory getWriteMemoryBlockAt(int offset)
           
 boolean initialised()
           
 void loadState(java.io.DataInput input)
           
 void mapMemoryRegion(Memory underlying, int start, int length)
           
 boolean reset()
           
 void setGateA20State(boolean value)
           
 void timerCallback()
           
 java.lang.String toString()
           
 void unmap(int start, int length)
           
 void updateComponent(HardwareComponent component)
           
 boolean updated()
           
 
Methods inherited from class dioscuri.module.cpu32.AddressSpace
copyContentsFrom, copyContentsInto, getBlockEnd, getBlockStart, getByte, getDoubleWord, getLowerDoubleQuadWord, getQuadWord, getSize, getUpperDoubleQuadWord, getWord, setByte, setDoubleWord, setLowerDoubleQuadWord, setQuadWord, setUpperDoubleQuadWord, setWord
 
Methods inherited from class dioscuri.module.cpu32.AbstractMemory
clear, clearArray, clearArray, getDoubleWord, getDoubleWordInBytes, getQuadWordInBytes, getWord, getWordInBytes, setDoubleWordInBytes, setQuadWordInBytes, setWordInBytes
 
Methods inherited from class dioscuri.module.cpu32.Memory
isAllocated
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

SYS_RAM_SIZE

public static final int SYS_RAM_SIZE
See Also:
Constant Field Values

UNCONNECTED

public static final Memory UNCONNECTED
Constructor Detail

PhysicalAddressSpace

public PhysicalAddressSpace()
Method Detail

dumpState

public void dumpState(java.io.DataOutput output)
               throws java.io.IOException
Specified by:
dumpState in interface HardwareComponent
Parameters:
output -
Throws:
java.io.IOException

loadState

public void loadState(java.io.DataInput input)
               throws java.io.IOException
Specified by:
loadState in interface HardwareComponent
Parameters:
input -
Throws:
java.io.IOException

setGateA20State

public void setGateA20State(boolean value)
Parameters:
value -

getGateA20State

public boolean getGateA20State()
Returns:
-

getAllocatedBufferSize

public int getAllocatedBufferSize()
Returns:
-

getReadMemoryBlockAt

public Memory getReadMemoryBlockAt(int offset)
Specified by:
getReadMemoryBlockAt in class AddressSpace
Parameters:
offset -
Returns:
-

getWriteMemoryBlockAt

public Memory getWriteMemoryBlockAt(int offset)
Specified by:
getWriteMemoryBlockAt in class AddressSpace
Parameters:
offset -
Returns:
-

execute

public int execute(Processor cpu,
                   int offset)
Specified by:
execute in class Memory
Parameters:
cpu -
offset -
Returns:
-

decodeCodeBlockAt

public CodeBlock decodeCodeBlockAt(Processor cpu,
                                   int offset)
Specified by:
decodeCodeBlockAt in class Memory
Parameters:
cpu -
offset -
Returns:
-

clear

public void clear()
Specified by:
clear in interface ByteArray
Specified by:
clear in class AddressSpace

unmap

public void unmap(int start,
                  int length)
Parameters:
start -
length -

mapMemoryRegion

public void mapMemoryRegion(Memory underlying,
                            int start,
                            int length)
Parameters:
underlying -
start -
length -

allocateMemory

public void allocateMemory(int start,
                           Memory block)
Parameters:
start -
block -

reset

public boolean reset()
Specified by:
reset in interface HardwareComponent
Returns:
-

updated

public boolean updated()
Specified by:
updated in interface HardwareComponent
Specified by:
updated in class AddressSpace
Returns:
-

updateComponent

public void updateComponent(HardwareComponent component)
Specified by:
updateComponent in interface HardwareComponent
Parameters:
component -

initialised

public boolean initialised()
Specified by:
initialised in interface HardwareComponent
Returns:
-

acceptComponent

public void acceptComponent(HardwareComponent component)
Specified by:
acceptComponent in interface HardwareComponent
Parameters:
component -

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

timerCallback

public void timerCallback()
Specified by:
timerCallback in interface HardwareComponent