1. I/O Addresses

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

new topic     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu