Mail Archives: djgpp/1997/07/05/18:03:29
>Hello !
>
>I just started using DJGPP and I'm a little confused about memory allocation. There appears to be a few ways to allocate memory : using the new operator,
>using __dpmi_allocate_dos_memory, __dpmi_allocate_linear_memory, __dpmi_allocate_memory, __dpmi_allocate_shared_memory.
>Could someone tell me which one I should use and what is the difference between them ? I need to allocate about 1-2 MB.
Just use malloc.
>I know the following will be painfully obvious to some people, but how is it possible ( In the sense of I know how it is done but I would like to know why it is allowed)
>to be able to just set a descriptor to point to the video ram ? Does this mean that I can just point anywhere and just write anywhere ?
Because protected mode is not for completely prohibiting you from
accessing various place in memory that don't necessarily belong to you
it is just for prohibiting you from doing it accidentally. If you can
get a valid selector going (meaning a valid physical address and a
valid size) you should be able to write to the area of memory it
"points" to. It is probably rather hard and unlikely that through a
chain of accidental events and instructions you would get a valid
selector into any of the segment registers so it is a safe system.
Lonnie McCullough
lonniem AT cs DOT utexas DOT edu
- Raw text -