|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectdioscuri.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 Modulereset in class AbstractModuleAbstractModulepublic java.lang.String getDump()
getDump in interface ModulegetDump in class AbstractModuleAbstractModule
public byte getIOPortByte(int portAddress)
throws UnknownPortException
UnknownPortExceptionAddressable
public void setIOPortByte(int portAddress,
byte data)
throws UnknownPortException
UnknownPortExceptionAddressable
public byte[] getIOPortWord(int portAddress)
throws UnknownPortException
UnknownPortExceptionAddressable
public void setIOPortWord(int portAddress,
byte[] dataWord)
throws UnknownPortException
UnknownPortExceptionAddressable
public byte[] getIOPortDoubleWord(int portAddress)
throws WriteOnlyPortException
WriteOnlyPortExceptionAddressable
public void setIOPortDoubleWord(int portAddress,
byte[] dataDoubleWord)
throws UnknownPortException
UnknownPortExceptionAddressable
public boolean registerDMAChannel(int chanNum,
DMA8Handler dma8handler)
registerDMAChannel in class ModuleDMAModuleDMA
public boolean registerDMAChannel(int chanNum,
DMA16Handler dma16handler)
registerDMAChannel in class ModuleDMAModuleDMApublic boolean isTerminalCountReached()
isTerminalCountReached in class ModuleDMAModuleDMA
public void setDMARequest(int chanNum,
boolean dmaRequest)
setDMARequest in class ModuleDMAchanNum - Channel requesting a DMA transferdmaRequest - Set request (true); clear request (false)ModuleDMApublic void acknowledgeBusHold()
acknowledgeBusHold in class ModuleDMAModuleDMA
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||