|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object dioscuri.module.AbstractModule dioscuri.module.ModuleDMA dioscuri.module.dma.DMA
public class DMA
An implementation of a DMA controller module.
Metadata module ********************************************
general.type : dma general.name : DMA Controller general.architecture :
Von Neumann general.description : Implements a standard DMA controller
general.creator : Tessella Support Services, Koninklijke Bibliotheek,
Nationaal Archief of the Netherlands general.version : 1.0
general.keywords : DMA, PIO, ATA, IDE, 8237 general.relations :
motherboard, memory general.yearOfIntroduction : general.yearOfEnding :
general.ancestor : general.successor :
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface dioscuri.interfaces.Module |
---|
Module.Type |
Field Summary | |
---|---|
DMAController[] |
controller
|
DMA16Handler[] |
dma16Handler
|
DMA8Handler[] |
dma8Handler
|
Fields inherited from class dioscuri.module.AbstractModule |
---|
type |
Constructor Summary | |
---|---|
DMA(Emulator owner)
Class constructor |
Method Summary | |
---|---|
void |
acknowledgeBusHold()
Control has been relinquished of the system busses DMA now has control over the system busses, so the highest priority DMA channel that scheduled a request is located and after setting up the necessary parameters (address, count, memory), the DMA transfer is initiated |
java.lang.String |
getDump()
Return a dump of module status |
byte |
getIOPortByte(int portAddress)
|
byte[] |
getIOPortDoubleWord(int portAddress)
|
byte[] |
getIOPortWord(int portAddress)
|
boolean |
isTerminalCountReached()
|
boolean |
registerDMAChannel(int chanNum,
DMA16Handler dma16handler)
|
boolean |
registerDMAChannel(int chanNum,
DMA8Handler dma8handler)
|
boolean |
reset()
Reset all parameters of module. |
void |
setDMARequest(int chanNum,
boolean dmaRequest)
Sets the DMA Requests in the corresponding controller's status register, and initiates the handling of Hold Requests |
void |
setIOPortByte(int portAddress,
byte data)
|
void |
setIOPortDoubleWord(int portAddress,
byte[] dataDoubleWord)
|
void |
setIOPortWord(int portAddress,
byte[] dataWord)
|
Methods inherited from class dioscuri.module.AbstractModule |
---|
getConnection, getConnections, getDebugMode, getExpectedConnections, getType, isConnected, setConnection, setDebugMode, start, stop |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface dioscuri.interfaces.Module |
---|
getConnection, getConnections, getDebugMode, getExpectedConnections, getType, isConnected, setConnection, setDebugMode, start, stop |
Field Detail |
---|
public DMAController[] controller
public DMA8Handler[] dma8Handler
public DMA16Handler[] dma16Handler
Constructor Detail |
---|
public DMA(Emulator owner)
owner
- Method Detail |
---|
public boolean reset()
reset
in interface Module
reset
in class AbstractModule
AbstractModule
public java.lang.String getDump()
getDump
in interface Module
getDump
in class AbstractModule
AbstractModule
public byte getIOPortByte(int portAddress) throws UnknownPortException
UnknownPortException
Addressable
public void setIOPortByte(int portAddress, byte data) throws UnknownPortException
UnknownPortException
Addressable
public byte[] getIOPortWord(int portAddress) throws UnknownPortException
UnknownPortException
Addressable
public void setIOPortWord(int portAddress, byte[] dataWord) throws UnknownPortException
UnknownPortException
Addressable
public byte[] getIOPortDoubleWord(int portAddress) throws WriteOnlyPortException
WriteOnlyPortException
Addressable
public void setIOPortDoubleWord(int portAddress, byte[] dataDoubleWord) throws UnknownPortException
UnknownPortException
Addressable
public boolean registerDMAChannel(int chanNum, DMA8Handler dma8handler)
registerDMAChannel
in class ModuleDMA
ModuleDMA
public boolean registerDMAChannel(int chanNum, DMA16Handler dma16handler)
registerDMAChannel
in class ModuleDMA
ModuleDMA
public boolean isTerminalCountReached()
isTerminalCountReached
in class ModuleDMA
ModuleDMA
public void setDMARequest(int chanNum, boolean dmaRequest)
setDMARequest
in class ModuleDMA
chanNum
- Channel requesting a DMA transferdmaRequest
- Set request (true); clear request (false)ModuleDMA
public void acknowledgeBusHold()
acknowledgeBusHold
in class ModuleDMA
ModuleDMA
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |