anyone know about 32-bit protected mode in DOS?

Discussion in 'OT Technology' started by crotchfruit, Feb 28, 2004.

  1. crotchfruit

    crotchfruit Guest

    Ok, I got a tech support question today that I have no idea how to answer. Someone wants to know if they can allocate 192kbytes of contiguous memory in 32-bit protected mode on our CPU board (x86 compat.)

    Their statement was: "The xPC Operating System requires a CPU running in 32-bit protected mode. What do you understand by this in respect of the ability of the CPU to give a 192k contiguous block of memory (or otherwise)"

    Then another engineer said to me: "Do you have any information available on memory mapping in PC systems running in 32 bit protected mode? ISA memory mapping is 16MByte full addressing so I guess we should have plenty addressing area available."

    For some reason everyone here seems to think I know this, but I have no clue.. where can I start looking for the answer to this?
     
  2. Astro

    Astro Code Monkey

    Joined:
    Mar 18, 2000
    Messages:
    2,047
    Likes Received:
    0
    Location:
    Cleveland Ohio
    I am not an expert, but I've run into these pages before:

    real vs protected mode details:
    http://x86.ddj.com/articles/pmbasics/tspec_a1_doc.htm

    Segment descriptor cache:
    http://x86.ddj.com/ddj/aug98/aug98.htm

    In theory, the 2nd link might answer your question. And I quote:

    "Unreal mode is created when a real-mode segment has a four-GB segment limit. Unreal mode can be created without any hardware debuggers or SMM programming with a simple assembly-language program. Imagine a program that begins in real mode then transitions into protected mode. Once in protected mode, the program loads all of the segment registers with descriptors containing four-GB segment limits. After setting the segment limits, return immediately to real mode without restoring the segment registers to segments containing 64-KB segments (real-mode-compatible segments). Once in real mode, the segment limits will always retain their four-GB limits. Thereafter, DOS programs can take advantage of the entire 32-bit address space without resorting to protected-mode programming."

    Which in English might mean, with some fiddling of the modes, you could allocate and access memory segments up to 4gb using typical paging tricks.

    Funny thing is I've checked the above site several times throughout my computer career. Now that I've had assembler, it makes a lot more sense (although I doubt I could do anything useful with this knowledge today).
     
  3. crotchfruit

    crotchfruit Guest

    Now I must go and mop my brain off the floor :o

    But thanks for the links.. maybe I'll just send them directly to the customer :)
     
  4. Astro

    Astro Code Monkey

    Joined:
    Mar 18, 2000
    Messages:
    2,047
    Likes Received:
    0
    Location:
    Cleveland Ohio
    If they're engineers and they are going to be implementing the solution, they should be able to make sense from those docs.
     

Share This Page