PORT#'s

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
slacker

PORT#'s

Post by slacker »

i was wondering if anyone knows any published documentation from a company or something that says which ports correspond to which device. and i dont mean list sites like nondot.saber or osdev.neopages.net. i am looking for official documentation from the manufacturers....
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:PORT#'s

Post by Pype.Clicker »

to my knowledge, there is one in HelpPC Utility by David Jurgens ... i dunno if this has really been standardized somewhere ... but roughly

000-01f : dma (8237A)
020-03f : master pic (8259a)
040-05f : pit (8253a)
060-06f : 8042 microcontroller (for keyboard, etc)
070-07f : realtime clock (MC146818)
080-09f : dma paging registers
0a0-0bf : slave pic
0c0-0df : slave dma
0f0-0ff : FPU (imho, deprecated)
170-17f : secondary HDD controller
1f0-1ff : primary HDD controller
278-27f : LPT2
2f8-2ff : COM2
378-37f : LPT1
3b0-3bf : monochrome display
3d0-3df : colour display
3f0-3f7 : floppy controller (3f6 is for primary controller)
3f8-3ff : COM1

ISA extension card may use different base addreses based on PNP or jumper configuration. PCI uses memory-mapped approach (afaik)
slacker

Re:PORT#'s

Post by slacker »

so if there was a motherboard tha used port 0x70 for the keyboard, then Windows would not work..or LINUX...?
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:PORT#'s

Post by Pype.Clicker »

if your mother board uses port 0x70 for the keyboard, then it is not a PC. period.
slacker

Re:PORT#'s

Post by slacker »

ooh...so even old 486s have 0x60 as a kbd port?
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:PORT#'s

Post by Pype.Clicker »

even a 286. Some ancient PCs (that are PC/XT rather than AT) have different attributions, and also a PPI (Programmable Parallel Interface) instead of a 8042 at 0x60, but it still handles the keyboard afaik.

btw, the PC/XT is based on a 8088@4MHz and i doubt it really can be assimilated to a PC (despite its name) as it also doesn't have a realtime clock, nor a slave PIC or DMA, the hard disk works differently, etc.
slacker

Re:PORT#'s

Post by slacker »

so where exactly do these numbers come from.? does intel have thses published somewhere..or the motherbaord manufacturer..?
Nairou

Re:PORT#'s

Post by Nairou »

A lot of the ports were determined by IBM, back when they were the main company building PCs and writing their own standards. Today its just common knowledge, and you can find this info anywhere. You could try searching IBM's site for a list, but you'd be better off finding a general hardware programming site.
Post Reply