Message board for the users of flat assembler.
> DOS > Hardware ports >= 400h??
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!
«Earth is my country; science is my religion» - Christian Huygens
|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
DX is address, AL, AX, EAX is value
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
Further smart answers from those who know are appreciated
|21 Dec 2009, 13:15||
< Last Thread | Next Thread >
Copyright © 1999-2020, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.
Website powered by rwasa.