List of I/O addresses

DelmirocDelmiroc Member Posts: 43 ■■□□□□□□□□
Hello guys,

I'm going to be taking A+ core exam August 7th, I'm trying to get DMA, IRQ and I/O straight before the test.
My exam cram book talks very little about I/O addresses, is this something I need to focus my attention on for the exam?
Where can I find a comprehensive list of these addresses? Any place online?

Comments

  • WebmasterWebmaster Admin Posts: 10,292 Admin
    Where can I find a comprehensive list of these addresses? Any place online?
    Here ya go... icon_wink.gif
  • DelmirocDelmiroc Member Posts: 43 ■■□□□□□□□□
    hah.. alright thanks


    should I worry about these I/O addresses too much?
  • WebmasterWebmaster Admin Posts: 10,292 Admin
    No, certainly not 'too' much. It's good to know the common ones, but personally I wouldn't spend much time on actually 'memorizing' them. Did you notice our DMA,IRQ,I/O practice test?
    icon_arrow.gifwww.techexams.net/coexam/start.php?exam=apluscore2
  • DelmirocDelmiroc Member Posts: 43 ■■□□□□□□□□
    Yes I noticed :) , your test is what got me all worried about these I/O addresses.. lol

    I'm gonna try to memorize the ones there.
  • OpenSourceOpenSource Member Posts: 135
    Here are the basics I have found during my studies...
    I/O Address Basics:

    -> 65,536 total I/O Addresses
    -> Numbered 0000h-FFFFh

    Most Important I/O's;

    1st Floppy = 03F0-03F5, 6-Bytes
    2nd Floppy = 0370-0375, 6-Bytes

    1st IDE/ATA = 01F0-01F7, 8-Bytes
    2nd IDE/ATA = 0170-0177, 8-Bytes

    Parallel Port LPT1 = 0378-037F, 8-Bytes
    *Parallel Port LPT1 = 03BC-03BF, 4-Bytes

    Parallel Port LPT2 = 0278-027F, 8-Bytes
    *Parallel Port LPT3 = 03BC-03BF, 4-Bytes

    Serial Port1 (COM1) = 03F8-03FF, 8-Bytes
    Serial Port1 (COM3) = 03E8-03EF, 8-Bytes

    Serial Port2 (COM2) = 02F8-02FF, 8-Bytes
    Serial Port2 (COM4) = 02E8-02EF, 8-Bytes

    GamePort = 0200-0207, 8-Bytes
    USB = FF80-FF9F, 32-Bytes

    Video (EGA/VGA/Mono) = 03B0-03BB, 12-Bytes
    Video (EGA/VGA) = 03C0-03CF, 16-Bytes
    Video (EGA/VGA/CGA) = 03D0-03DF, 16-Bytes

    - Joey
  • DelmirocDelmiroc Member Posts: 43 ■■□□□□□□□□
    Here are the basics I have found during my studies...

    Thanks!
  • BubbaJBubbaJ Member Posts: 323
    OpenSource wrote:
    Here are the basics I have found during my studies...
    I/O Address Basics:

    -> 65,535 total I/O Addresses
    -> Numbered 0000h-FFFFh

    - Joey
    Actually, 0000h-FFFFh means there are a total of 65536 different addresses. That would be 0 to 65535 which is 65535 plus one for the 0 and equal 65536.
  • OpenSourceOpenSource Member Posts: 135
    BubbaJ wrote:
    OpenSource wrote:
    Here are the basics I have found during my studies...
    I/O Address Basics:

    -> 65,536 total I/O Addresses
    -> Numbered 0000h-FFFFh

    - Joey
    Actually, 0000h-FFFFh means there are a total of 65536 different addresses. That would be 0 to 65535 which is 65535 plus one for the 0 and equal 65536.

    Not according to my sources. Seeing as I am not proficient in hex, I even double checked with the "PC Bible" ("Upgrading and Repairing PC's")...

    According to Scott Mueller, and I quote:
    ... Unlike IRQs and DMA channels, our systems have an abundance of I/O ports. There are 65,535 ports
    to be exact—numbered from 0000h to FFFFh—...

    See for yourself...

    Page #390 "Upgrading and Repairing PC's" 17th Edition
    Page ~#376 "Upgrading and Repairing PC's" 16th Edition
    Page ~#344 "Upgrading and Repairing PC's" 15th Edition
    Page ~#333 "Upgrading and Repairing PC's" 14th Edition
    Page ~#345 "Upgrading and Repairing PC's" 13th Edition
    Page ~#372 "Upgrading and Repairing PC's" 12th Edition
    Page ~#322 "Upgrading and Repairing PC's" 11th Edition
    Page ~#312 "Upgrading and Repairing PC's" 10th Edition
    Page #18 "Upgrading and Repairing PC's: A+ Certification Study Guide"
    Page #321 "Upgrading and Repairing PC's: Linux Edition"

    .... So fourth and so on.

    - Joey
  • BubbaJBubbaJ Member Posts: 323
    OpenSource wrote:
    Not according to my sources. Seeing as I am not proficient in hex, I even double checked with the "PC Bible" ("Upgrading and Repairing PC's")...
    This is a case where you could check it yourself. You say you are not proficient in hex, but you can use a calculator. An I/O address is a 16 bit number so what is 2^16?
  • OpenSourceOpenSource Member Posts: 135
    BubbaJ wrote:
    OpenSource wrote:
    Not according to my sources. Seeing as I am not proficient in hex, I even double checked with the "PC Bible" ("Upgrading and Repairing PC's")...
    This is a case where you could check it yourself. You say you are not proficient in hex, but you can use a calculator. An I/O address is a 16 bit number so what is 2^16?

    Pardon my ignorance as math is not one of my stronger talents, but where are you getting 16-Bit from??

    It is my understanding devices can use I/O addresses that range in size from as little as 1-Byte (8-Bits) and as high as 32-Bytes (256-Bits) and even higher... Though most devices use 4-Bytes (32-Bits), 8-Bytes (64-Bits) or 16-Bytes (128-Bits)...

    - Joey
  • BubbaJBubbaJ Member Posts: 323
    OpenSource wrote:
    Pardon my ignorance as math is not one of my stronger talents, but where are you getting 16-Bit from??
    O.K., FFFFh is 1111111111111111 in binary which is 16 bits.

    Each hex character is 4 bits (0h to Fh) or 2^4 which is 16 different numbers, hence hexadecimal (base 16).

    Since there are 4 hex digits in an I/O address, it would be 16^4 or 2^(4*4) or 2^16. Any way you look at it, it is 65536 different addresses.

    The highest I/O address is FFFFh which is 65535, but that doesn't include 0h. If you add 1 for the 0h address, you get 65536 different I/O addresses. Remember that computer have to do everything in powers of 2 (by definition, an even number), and they start with 0 and end with 1 less than the power of 2 (an odd number), but the total is the power of 2.
  • OpenSourceOpenSource Member Posts: 135
    Well, okay. I understand everything. I had to break out some math knowledge I haven't used since high school, but I got the basic idea and I will agree that 2^16 is indeed 65,536. That said, where are you getting 2 from?

    You mentioned everything in computers is a power of 2, but why? I cannot recall ever hearing that before, at least from immediate memory... Can you elaborate on that aspect??

    BTW: I am very curious as to why Scott Mueller says 65,535 and not 65,536. He is more intelligent then the both of us and has written well over 20 books and has been in the industry for almost 30 years... I may have to contact him about this and see if I can get an answer.

    \\ EDIT: Oops. I meant 2^16, not 16^2.

    - Joey
  • Danman32Danman32 Member Posts: 1,243
    Each bit has two states: 1 or 0, on or off, true or false. That's base 2. Compare that to what our brains have been taught, which is base 10: 0,1,2,3,4,5,6,7,8,9.

    So in binary, each bit position has a value in base 2. The first bit has a value of one. The second has a value of 2, The third has a value of 4, etc. 2^0=1, 2^1=2, 2^2=4, etc. Oh, in case you were wondering, the symbol '^' is common computer notation for power. So is '**' as in 2**3=8.

    So, 2^16 is 65536.

    Now an interface (chip) may only use 8 bits for its relative address, in the PC's I/O address space, it is 16 bits. The circuit to the chip would pre-wire the base address the chip uses.

    But don't get too hung up on all this.
  • WebmasterWebmaster Admin Posts: 10,292 Admin
    BTW: I am very curious as to why Scott Mueller says 65,535 and not 65,536.
    I think that's because of the following: When you look at the format of I/O addresses you'll notice they have a start and an end position. In other words, it's a range, they define a location of an area in memory (address 'space'). As you can see in the following example, 4 positions gives 3 areas. I think there's not an FFFF-xxxx.
    0   1   2   3
    | 1 | 2 | 3 |
    
    Danman32 wrote:
    But don't get too hung up on all this
    Indeed. The math does not reflect the reality, because:
    pcguide wrote:
    Most devices use an I/O address space of 4, 8 or 16 bytes; some use as few as 1 byte and others as many as 32 or more.
  • BubbaJBubbaJ Member Posts: 323
    Webmaster wrote:
    pcguide wrote:
    Most devices use an I/O address space of 4, 8 or 16 bytes; some use as few as 1 byte and others as many as 32 or more.
    That is true, but the original Intel processor (8086 and its derivative 808icon_cool.gif have the ability to address 65536 I/O addresses. More than one may be (and probably have to be, depending on the device) used by a single I/O device.

    IBM never actually used all the I/O address lines in the PC so the actual number available in a PC is much less than 65536. Why the author decided it was proper to instruct people that it was 65535 is beyond me. It is simply wrong. The PC was just a bunch of stapled together Intel tech notes.
  • OpenSourceOpenSource Member Posts: 135
    Thanks. I know all about Binary, though I was not sure if that was your logic behind "everything in 2" or not. But that makes sense seeing as Binary is of course strictly 0 and 1. As for "^" and "**", I'm aware of what they mean and how to process the math, I just have not used such math since I was probably in 9th and 10th grade...

    Anyway, very interesting information. Though I'm not concerned much I/O addresses, I like having the ability to seek information. I sware this is the only website where I can actually discuss such technical jargon. Now if only my mind will get out of neutral and actually function.

    - Joey
  • scot_doneckerscot_donecker Member Posts: 45 ■■□□□□□□□□
    Hey buuudddyyy..you should be serious about the input output addresses for the A+ certification exam. I personally had at least 10 questions relating to I/O, IRQ, and DMA..more than likly more than 10 come to think of it. Just a heads up..good luck bro!

    p.s. I made flash cards to help me practice..believe me it helps!

    -Scot
    "If the answer was never to look to yourself, then how can you expect to find it anywhere else" -Eyedea
  • OpenSourceOpenSource Member Posts: 135
    Hey buuudddyyy..you should be serious about the input output addresses for the A+ certification exam. I personally had at least 10 questions relating to I/O, IRQ, and DMA..more than likly more than 10 come to think of it. Just a heads up..good luck bro!

    p.s. I made flash cards to help me practice..believe me it helps!

    -Scot

    I agree, and as such, I've got IRQ and DMA down pat. I've just finished up with these I/O addresses and the discussion in this thread helped me understand even better and will hopefully help others...

    It has come to my attention there are actually 65,536 total I/O addresses. Here is why there are actually 65,536 and not 65,535...
    I/O Address = 0000h - FFFFh

    [Note: h = denotes hexadecimal (Base16), not a character]

    [Note: Why 2^16? Because computers only know Binary (0,1), which is Base2]


    Each I/O address contains 4 hexadecimal characters (ex. 0000-FFFF).

    Each hexadecimal character is 4-Bits, thus, each I/O address equals 16-Bits (2-Bytes).

    Therefore, since each I/O address is 16-Bits (2-Bytes) and there are 16 total possible hex characters (ex. 0-F), if you take 2^16 you get 65,536 total possible I/O addresses.


    0000 = 0000 0000 0000 0000 (Binary)
    ^^ 16 Binary Digits = 16-Bits (2-Bytes)


    FFFF = 1111 1111 1111 1111 (Binary)
    ^^ 16 Binary Digits = 16-Bits (2-Bytes)


    Hex - Binary - Decimal
    0 - 0000 - 0
    1 - 0001 - 1
    2 - 0010 - 2
    3 - 0011 - 3
    4 - 0100 - 4
    5 - 0101 - 5
    6 - 0110 - 6
    7 - 0111 - 7
    8 - 1000 - 8
    9 - 1001 - 9
    A - 1010 - 10
    B - 1011 - 11
    C - 1100 - 12
    D - 1101 - 13
    E - 1110 - 14
    F - 1111 - 15

    - Joey \m/
  • OpenSourceOpenSource Member Posts: 135
    Interesting news. Last night I contacted Scott Mueller with the information you see in my previous post above this one and here was his response I just received...
    Joey,

    Thanks for pointing this out. It is indeed an error in the book, the number should be 65,536 total ports, exactly for the reasons you surmise. I have known about this for some time now, but I keep forgetting to correct it! I'll definitely make a note this time and insure that the number is corrected in the next edition. Thanks for reminding me about this, and thanks as well for your comments and for purchasing my books.

    Scott.

    That is very cool. I will be looking to see if he made the change in his 18th Edition when it comes out next year. But I think it's great to see an author actually responsd to a question and actually admit making an error. That is why I find Scott Mueller to not only be a master technician, but a great guy.

    - Joey
  • DelmirocDelmiroc Member Posts: 43 ■■□□□□□□□□
    OpenSource wrote:
    Interesting news. Last night I contacted Scott Mueller with the information you see in my previous post above this one and here was his response I just received...
    Joey,

    Thanks for pointing this out. It is indeed an error in the book, the number should be 65,536 total ports, exactly for the reasons you surmise. I have known about this for some time now, but I keep forgetting to correct it! I'll definitely make a note this time and insure that the number is corrected in the next edition. Thanks for reminding me about this, and thanks as well for your comments and for purchasing my books.

    Scott.

    That is very cool. I will be looking to see if he made the change in his 18th Edition when it comes out next year. But I think it's great to see an author actually responsd to a question and actually admit making an error. That is why I find Scott Mueller to not only be a master technician, but a great guy.

    - Joey

    Yes indeed.
  • OpenSourceOpenSource Member Posts: 135
    I think it's great because as I told him in my e-mail, I own several of his books and I have read nearly all of them front to back. I also enjoy the DVD's that have come with his books since I think the 14th Edition and I have watched all of those as well, over and over...

    But more importantly, I have several questions I would like to ask him about material covered in his book and material not covered, so now that I am aware that I can actually ask a question and obtain an answer is great.

    BTW: I fixed my posts above to reflect 65,536 total I/O addresses...

    - Joey
  • BubbaJBubbaJ Member Posts: 323
    You have learned a fact that you won't soon forget, and, more importantly, you learned the why of the fact. I think this is the key to success. It may be possible to pass exams by memorizing facts (high school and college kids do it all the time), but what do you really learn doing it that way?
  • OpenSourceOpenSource Member Posts: 135
    BubbaJ wrote:
    You have learned a fact that you won't soon forget, and, more importantly, you learned the why of the fact. I think this is the key to success. It may be possible to pass exams by memorizing facts (high school and college kids do it all the time), but what do you really learn doing it that way?

    Indeed. My memory is honestly so bad and my head is so foggy these days, that my only resort is merely learning the material. Not to say that I rather memorize than learn, but it honestly is my only choice. With our discussion above and your help, I actually learned why there are 65,536 and not 65,535, as opposed to merely memorizing the fact... LOL

    - Joey
  • Danman32Danman32 Member Posts: 1,243
    We often forget to include 0 when finding all possibilities.
    It's like counting people to see how many are going to the game in the van. Sometimes we forget to count ourselves.
Sign In or Register to comment.