flat assembler
Message board for the users of flat assembler.
Index
> OS Construction > Newbie Pmode Question |
Author |
|
smiddy 18 Apr 2005, 12:02
Hi Hendryten,
Here is a link to some information: http://my.execpc.com/CE/AC/geezer/osd/graphics/index.htm From there there are some links to others who've worked with video in protected mode. I hope that helps! |
|||
18 Apr 2005, 12:02 |
|
bogdanontanu 18 Apr 2005, 12:18
Hi,
Quote:
Right Quote:
You can: 1) setup it before switch to protected mode 2) code a driver for every video board available (long term) 3) briefly return to 16 bits BIOS for a change and go back to 32 bits as soon as possible. 4)code a V86 module for doing that Quote:
Depends on the video mode but bassically NO. The location of video memory is the Linear Frame Buffer variable that can be querried from the VESA BIOS. Usually this LFB is somewhere above the 2-3Giga area. Quote:
Obviousely they can NOT |
|||
18 Apr 2005, 12:18 |
|
hendryten 18 Apr 2005, 15:27
Thanks,
these answer many troubling questions for me. About the driver thing, I'm kinda interesting in such thing to... I wonder how to make one in Windows... Well, thx alot... _________________ If you want everything, you'll end up with nothing |
|||
18 Apr 2005, 15:27 |
|
Dex4u 18 Apr 2005, 16:39
You can see a demo i made (i was called "ASHLEY4" then) which goes to pmode and goes back to realmode switchs mode and come back to pmode, it switch between text and vesa mode, you will need at least vesa 2 .
Comes with fasm code and a program to put it on a floppy. A mini OS . Our OS's web site and forum: http://falconrybells.co.uk/ http://dex.7.forumer.com/
|
|||||||||||
18 Apr 2005, 16:39 |
|
hendryten 20 Apr 2005, 07:34
Ok, about video, I think I'm seeing light now...
I still have some question (well, quite many) about paging, memory allocation and such... Why do we need paging, isn't it the same if we map/allocate the real address, make it protected, and give it to the right application? Quote: Usually this LFB is somewhere above the 2-3Giga area. That 2-3Giga area is pointing somewhere at the real physical address of memory right?? so what's the point of it?? Wouldn't it be faster if we use the real address??? I read some of other topics as well and I can't figured out why should we use paging instead of real memory addressing??? Man, i really need explanation for these.. Thanks! _________________ If you want everything, you'll end up with nothing |
|||
20 Apr 2005, 07:34 |
|
MCD 20 Apr 2005, 07:57
hendryten wrote: I still have some question (well, quite many) about paging, memory allocation and such... Actually, the point of paging is to be able to guaranty that any allocated memory won't change it's addresses even if a lot of the memory allocation status is changed, e.g. de- or re-allocated. In KISS: Prevent linear address fragmentation, whereas physical addresses may fragment, thus you don't need to move the memory in physical if you want all memory to keep linear defragmented. hendryten wrote:
Usually, any remappings from linear address spaces to different physical hardware devices (memory mapped I/O and others) usually between 2-4GB are performed by some motherboard controllers or MTRRs, but not with the regular paging mechanism. Think this should clarify it a bit. _________________ MCD - the inevitable return of the Mad Computer Doggy -||__/ .|+-~ .|| || |
|||
20 Apr 2005, 07:57 |
|
hendryten 20 Apr 2005, 08:11
I see... lets see what've I get
correct me if I wrong! If my application is given space in memory at location 10000h (physical), I won't have to adjust my code to that 10000h right??? I just need to do some paging so that 10000h look like 0h right?? Thanks a lot! _________________ If you want everything, you'll end up with nothing |
|||
20 Apr 2005, 08:11 |
|
MCD 20 Apr 2005, 08:28
hendryten wrote: I see... lets see what've I get You're on the right way. paging doesn't move any data, it only makes the physical address 10000h (to keep your example) accessible by the linear address of 0. Naturally, you could chose any other linear address than 0 to actually access the physical 10000h. Keep in mind that paging is performed by the CPU itself, whereas some of the other hardware I/O "remappings" are done by other devices (e.g. motherboard chipset...). Also, paging is only available in protected modes, not in real modes. (16,32 and even 64 bit ones). furthermore, paging can only be changed in CPL 0. I have no idea why I'm telling so much detailed stories about it, but I think if you wanna do some stuff into this direction, consider reading intel's docs about it http://www.intel.com/design/pentium4/manuals/index_new.htm, especially this one (system programming guide) ftp://download.intel.com/design/Pentium4/manuals/25366814.pdf _________________ MCD - the inevitable return of the Mad Computer Doggy -||__/ .|+-~ .|| || |
|||
20 Apr 2005, 08:28 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.