dioscuri.module.cpu32
Class LazyCodeBlockMemory

java.lang.Object
  extended by dioscuri.module.cpu32.Memory
      extended by dioscuri.module.cpu32.AbstractMemory
          extended by dioscuri.module.cpu32.LazyMemory
              extended by dioscuri.module.cpu32.LazyCodeBlockMemory
All Implemented Interfaces:
ByteArray
Direct Known Subclasses:
EPROMMemory

public class LazyCodeBlockMemory
extends LazyMemory

Author:
Bram Lohman, Bart Kiers

Field Summary
protected  ProtectedModeCodeBlock[] protectedCodeBuffer
           
protected  RealModeCodeBlock[] realCodeBuffer
           
protected  Virtual8086ModeCodeBlock[] virtual8086CodeBuffer
           
 
Constructor Summary
LazyCodeBlockMemory(byte[] buf, Clock clk)
           
LazyCodeBlockMemory(int size, Clock clk)
           
LazyCodeBlockMemory(Memory src, Clock clk)
           
 
Method Summary
 void clear()
           
protected  void constructCodeBlocksArray()
           
 void copyContentsFrom(int address, byte[] buf, int off, int len)
           
 CodeBlock decodeCodeBlockAt(Processor cpu, int offset)
           
static void dispose()
           
 int execute(Processor cpu, int offset)
           
protected  void regionAltered(int start, int end)
           
 void relinquishCache()
           
 void setByte(int offset, byte data)
           
 void setDoubleWord(int offset, int data)
           
 void setProtectedCodeBlockAt(int offset, ProtectedModeCodeBlock block)
           
 void setRealCodeBlockAt(int offset, RealModeCodeBlock block)
           
 void setVirtual8086CodeBlockAt(int offset, Virtual8086ModeCodeBlock block)
           
 void setWord(int offset, short data)
           
 java.lang.String toString()
           
 
Methods inherited from class dioscuri.module.cpu32.LazyMemory
copyContentsInto, getByte, getDoubleWord, getSize, getWord, isAllocated, isCacheable
 
Methods inherited from class dioscuri.module.cpu32.AbstractMemory
clear, clearArray, clearArray, getDoubleWord, getDoubleWordInBytes, getLowerDoubleQuadWord, getQuadWord, getQuadWordInBytes, getUpperDoubleQuadWord, getWord, getWordInBytes, setDoubleWordInBytes, setLowerDoubleQuadWord, setQuadWord, setQuadWordInBytes, setUpperDoubleQuadWord, setWordInBytes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

realCodeBuffer

protected RealModeCodeBlock[] realCodeBuffer

protectedCodeBuffer

protected ProtectedModeCodeBlock[] protectedCodeBuffer

virtual8086CodeBuffer

protected Virtual8086ModeCodeBlock[] virtual8086CodeBuffer
Constructor Detail

LazyCodeBlockMemory

public LazyCodeBlockMemory(Memory src,
                           Clock clk)
Parameters:
src -
clk -

LazyCodeBlockMemory

public LazyCodeBlockMemory(byte[] buf,
                           Clock clk)
Parameters:
buf -
clk -

LazyCodeBlockMemory

public LazyCodeBlockMemory(int size,
                           Clock clk)
Parameters:
size -
clk -
Method Detail

constructCodeBlocksArray

protected void constructCodeBlocksArray()

relinquishCache

public void relinquishCache()

execute

public int execute(Processor cpu,
                   int offset)
Overrides:
execute in class LazyMemory
Parameters:
cpu -
offset -
Returns:
-

decodeCodeBlockAt

public CodeBlock decodeCodeBlockAt(Processor cpu,
                                   int offset)
Overrides:
decodeCodeBlockAt in class LazyMemory
Parameters:
cpu -
offset -
Returns:
-

setVirtual8086CodeBlockAt

public void setVirtual8086CodeBlockAt(int offset,
                                      Virtual8086ModeCodeBlock block)
Parameters:
offset -
block -

setProtectedCodeBlockAt

public void setProtectedCodeBlockAt(int offset,
                                    ProtectedModeCodeBlock block)
Parameters:
offset -
block -

setRealCodeBlockAt

public void setRealCodeBlockAt(int offset,
                               RealModeCodeBlock block)
Parameters:
offset -
block -

regionAltered

protected void regionAltered(int start,
                             int end)
Parameters:
start -
end -

copyContentsFrom

public void copyContentsFrom(int address,
                             byte[] buf,
                             int off,
                             int len)
Overrides:
copyContentsFrom in class LazyMemory
Parameters:
address -
buf -
off -
len -

setByte

public void setByte(int offset,
                    byte data)
Specified by:
setByte in interface ByteArray
Overrides:
setByte in class LazyMemory
Parameters:
offset -
data -

setWord

public void setWord(int offset,
                    short data)
Overrides:
setWord in class LazyMemory
Parameters:
offset -
data -

setDoubleWord

public void setDoubleWord(int offset,
                          int data)
Overrides:
setDoubleWord in class LazyMemory
Parameters:
offset -
data -

clear

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

toString

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

dispose

public static void dispose()