tony wrote:
> I am just wondering, what are the ****t numbers through which we can
> access Hard disk using 'IN' and 'OUT' instructions?
IDE controller legacy ****ts reside at fix locations as defined in
ATAPI and earlier (see RBIL-****ts for all required details)
ie: HDC00 (master+slave) 01f0...01f7,03f6
HDC01 0170...0177,0376
HDC02 01e8...01ef,03ee *(COM-****t conflict)
HDC03 0168...016f,036e
I've seen also other ****ts used for the latter two (long ago).
> Do these ****t numbers remain same or they change from one operating
> system to another or from one platform to another?
An OS cannot change the hardware ... :)
it can create virtual devices and redirect trapped ****t access
to whatever it had assigned it to.
Mother-boards can have different chipsets and addons, but the
standard legacy ****t assignment should be valid on all serious brands
(exotics like Amstrad,Compaq,Packard-Bell may show differences here).
> In memory mapped I/O, can we access hard disk using the same ****ts or
> operating system assigns arbitrary addresses to these ****ts?
Access and operation are quite different for PIO and UDMA, most chipsets
(like AMD-bridges) can allow both methods without reconfiguration, so
an OS may decide which one to use by calling the approbiate driver,
in theory: UDMA while PM32 and PIO or BIOS during DOS-box sessions.
PCI-IDE-HD controllers can use bus-master-UDMA and are configurable
to reside at any desired PCI address, but this is the job of the BIOS
(it knows what hardware is on-board) and is rare altered by an OS.
The OS may read the PCI-config to tell the 'driver' where this mem-****ts
are to be found. It 'can' alter this address, but I never saw it happen.
__
wolfgang


|