dioscuri.module.ata
Class ATA

java.lang.Object
  extended by dioscuri.module.AbstractModule
      extended by dioscuri.module.ModuleATA
          extended by dioscuri.module.ata.ATA
All Implemented Interfaces:
Addressable, Module, Updateable

public class ATA
extends ModuleATA

An implementation of a ATA controller module.

See Also:

Metadata module ******************************************** general.type : ata general.name : ATA Controller / ATA-1 to ATAT-3 general.architecture : Von Neumann general.description : Implements a standard Integrated Drive Electronic (IDE) controller / parallel ATA general.creator : Tessella Support Services, Koninklijke Bibliotheek, Nationaal Archief of the Netherlands general.version : 1.0 general.keywords : IDE, ATA, storage, disk, controller general.relations : motherboard general.yearOfIntroduction : 1994 general.yearOfEnding : 1999 general.ancestor : - general.successor : ATA-2 (EIDE)

Notes: none


Nested Class Summary
 
Nested classes/interfaces inherited from interface dioscuri.interfaces.Module
Module.Type
 
Field Summary
 
Fields inherited from class dioscuri.module.AbstractModule
type
 
Constructor Summary
ATA(Emulator owner)
          Class constructor
 
Method Summary
 int getCurrentChannelIndex()
          Gets the current channel index.
 java.lang.String getDump()
          Return a dump of module status
 byte getIOPortByte(int originalPortAddress)
          
 byte[] getIOPortDoubleWord(int portAddress)
          
 byte[] getIOPortWord(int portAddress)
          
 int getUpdateInterval()
          Get the update interval.
 void initConfig(int theIdeChannel, boolean isMaster, boolean isHardDisk, boolean isWriteProtected, int numCylinders, int numHeads, int numSectorsPerTrack, ATATranslationType translationType, java.lang.String imageFilePath)
          Initiate configuration of the disk drive.
 boolean reset()
          Reset all parameters of module.
 void setCmosSettings(int[] bootDrives, boolean floppySigCheckDisabled)
          Set CMOS values
 void setIOPortByte(int originalAddress, byte data)
          
 void setIOPortDoubleWord(int portAddress, byte[] dataDoubleWord)
          
 void setIOPortWord(int portAddress, byte[] dataWord)
          
 void setUpdateInterval(int interval)
          Defines the interval between subsequent updates
 void update()
          Update the module.
 
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
 

Constructor Detail

ATA

public ATA(Emulator owner)
Class constructor

Parameters:
owner -
Method Detail

reset

public boolean reset()
Reset all parameters of module.

Specified by:
reset in interface Module
Specified by:
reset in class AbstractModule
Returns:
true iff the AbstractModule was reset properly.
See Also:
AbstractModule

getDump

public java.lang.String getDump()
Return a dump of module status

Provides a dummy implementation since many of the subclasses of this abstract module class do not need or use a getDump() implementation. The ones that do, can override this method.

Specified by:
getDump in interface Module
Overrides:
getDump in class AbstractModule
Returns:
string containing a dump of this module
See Also:
AbstractModule

setUpdateInterval

public void setUpdateInterval(int interval)
Defines the interval between subsequent updates

Parameters:
interval - the interval between subsequent updates in ms.
See Also:
Updateable

update

public void update()
Update the module.

See Also:
Updateable

getIOPortByte

public byte getIOPortByte(int originalPortAddress)
                   throws ModuleException,
                          UnknownPortException,
                          WriteOnlyPortException

Returns:
Throws:
ModuleException
UnknownPortException
WriteOnlyPortException
See Also:
Addressable

setIOPortByte

public void setIOPortByte(int originalAddress,
                          byte data)
                   throws ModuleException,
                          UnknownPortException

Throws:
ModuleException
UnknownPortException
See Also:
Addressable

getIOPortWord

public byte[] getIOPortWord(int portAddress)
                     throws ModuleException,
                            UnknownPortException,
                            WriteOnlyPortException

Returns:
Throws:
ModuleException
UnknownPortException
WriteOnlyPortException
See Also:
Addressable

setIOPortWord

public void setIOPortWord(int portAddress,
                          byte[] dataWord)
                   throws ModuleException,
                          UnknownPortException

Throws:
ModuleException
UnknownPortException
See Also:
Addressable

getIOPortDoubleWord

public byte[] getIOPortDoubleWord(int portAddress)
                           throws ModuleException,
                                  UnknownPortException,
                                  WriteOnlyPortException

Returns:
Throws:
ModuleException
UnknownPortException
WriteOnlyPortException
See Also:
Addressable

setIOPortDoubleWord

public void setIOPortDoubleWord(int portAddress,
                                byte[] dataDoubleWord)
                         throws ModuleException,
                                UnknownPortException

Throws:
ModuleException
UnknownPortException
See Also:
Addressable

initConfig

public void initConfig(int theIdeChannel,
                       boolean isMaster,
                       boolean isHardDisk,
                       boolean isWriteProtected,
                       int numCylinders,
                       int numHeads,
                       int numSectorsPerTrack,
                       ATATranslationType translationType,
                       java.lang.String imageFilePath)
Initiate configuration of the disk drive.

Specified by:
initConfig in class ModuleATA
See Also:
ModuleATA

setCmosSettings

public void setCmosSettings(int[] bootDrives,
                            boolean floppySigCheckDisabled)
Set CMOS values

Specified by:
setCmosSettings in class ModuleATA
See Also:
ModuleATA

getCurrentChannelIndex

public int getCurrentChannelIndex()
Gets the current channel index.

Specified by:
getCurrentChannelIndex in class ModuleATA
Returns:
int the current channel index
See Also:
ModuleATA

getUpdateInterval

public int getUpdateInterval()
Get the update interval.

Returns:
the update interval
See Also:
Updateable