I/O Addresses
- Posted by Michael Sabal <mjs at OSA.ATT.NE.JP> Mar 31, 1999
- 534 views
There are two kinds of addresses computers use: memory addresses and I/O = addresses. Memory addresses can be poked, but I/O addresses must be = accessed via a port (in assembler, that's OUT). =20 Memory addresses from 00000h to 9FFFFh are used for the OS kernel, = program bases, and some data (although now, that would be bad style). = A0000h to AFFFFh is for Graphics (mode 19); B0000h to B7FFFh is Mono = Text; B8000h to BFFFFh is Color Text; and F0000 to FFFFF is the System = BIOS (yes, this can be peeked or poked -- that's one way to hook = interrupts). The area from C0000h to EFFFFh is for optional ROMs, such = as video or sound. Also, DOS EMM likes to stick itself in this zone. When using ports, the following I/O addresses are used: 0000h-000Fh: DMA controller 0020h-002Fh: Master IRQ controller 0030h-003Fh: Another Master IRQ controller 0040h-0043h: System timer 0060h-0063h: Keyboard 0070h-0071h: CMOS clock 0080h-008Fh: DMA page registers 0090h-009Fh: more DMA page registers 00A0h-00AFh: Slave IRQ controller 00B0h-00BFh: another slave IRQ controller 00C0h-00CFh: DMA controller 00E0h-00EFh: reserved 00F0h-00FFh: math coprocessor 0170h-0177h: secondary hard drive controller 01F0h-01FFh: primary hard drive controller 0200h-0207h: joystick 0210h-0217h: reserved 0278h-027Fh: LPT2 02B0h-02DFh: secondary EGA 02E8h-02EFh: COM4 02F8h-02FFh: COM2 0378h-037Fh: LPT1 03B0h-03BF: mono video 03C0h-03CFh: primary EGA 03D0h-03DFh: CGA video 03E8h-03EFh: COM3 03F0h-03F7h: Floppy controller 03F8h-03FFh: COM1 To find the I/O addresses for other hardware such as your mouse, CD-ROM = controller, SCSI host adapter, etc., you should look in the control = panel of Windows or in your manual. Only the ones listed above are = standard, but others, such as SoundBlaster, are semi-standard. Hope = this helps. Michael J. Sabal mjs at osa.att.ne.jp