flat assembler
Message board for the users of flat assembler.

Index > DOS > Hardware ports >= 400h??

Author
Thread Post new topic Reply to topic
Cas



Joined: 26 Feb 2004
Posts: 82
Location: Argentina
Cas 21 Dec 2009, 12:45
I understood that only 400h (1024) port addresses were available for the PC and that if you OUTed with a value in DX>=400h, this value was "modded" (i.e., it rolled over) and the most significant bits were ignored. However, long ago I've noticed that old SBAWE64, for instance, is able to recognise these ports... and now that I've been posting about such card, I remember about this doubt and I wanted to ask.

The SBAWE64 uses a port base that can be any multiple of 10h, from 00h through F0h and ORs it with 200h for the basic ports, 600h for the EMU8000 and A00h for something that I don't remember very well. Uh, and it also does it with E00h, I think.

How does the card know which of these port sets are being accessed?

Thanks in advance for clearing my doubt! Smile

_________________
«Earth is my country; science is my religion» - Christian Huygens
Post 21 Dec 2009, 12:45
View user's profile Send private message Yahoo Messenger MSN Messenger Reply with quote
DOS386



Joined: 08 Dec 2006
Posts: 1902
DOS386 21 Dec 2009, 13:15
Cas wrote:
I understood that only 400h (1024) port addresses were available for the PC and that if you OUTed with a value in DX>=400h


DX is address, AL, AX, EAX is value Wink

Quote:
this value was "modded" (i.e., it rolled over) and the most significant bits were ignored.


In the past ? AFAIK (believe with care) ports 0 to $FF are directly accessible (DX not needed) and used for oldest on-board stuff (keyboard, ISA-DMA, PIC), $0100 to $03FF are for ISA stuff (ISA VGA, ISA SB), but also old on-board (PIO-only ???) IDE, and ports >=$0400 are for PCI stuff. Nevertheless, some PCI devices can map onto legacy ports in ISA range (PCI IDE controllers in "legacy" mode map to legacy IDE ports $017x/$01Fx, PCI and AGP graf cards map to legacy VGA ports $03xx, but PCI sound cards don't map (??? by hardware) to any legacy ISA SB ports at all).

In any case, accessing ports <$0400 by setting DX to >=$0400 in the hope to wrap would be as stupid as accessing memory < 64 KiB by addressing > 1 MiB -> long live the A20-BUG Sad

Further smart answers from those who know are appreciated Wink
Post 21 Dec 2009, 13:15
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.