flat assembler
Message board for the users of flat assembler.
Index
> OS Construction > How to executing BIOS Interrupt in PMode? |
Author |
|
ivan_tux 07 Sep 2012, 00:21
I need that for set up video mode in my OS.
|
|||
07 Sep 2012, 00:21 |
|
edfed 07 Sep 2012, 12:56
return in rm, set video mode with bios, return in pm, or...
write a driver for the video card in pm. |
|||
07 Sep 2012, 12:56 |
|
ivan_tux 08 Sep 2012, 01:26
OK, I now almost understand at all,
Now, i need to know how to load Real mode IVT.. Can you tell me about that? |
|||
08 Sep 2012, 01:26 |
|
ManOfSteel 08 Sep 2012, 12:37
Same as in protected-mode, use the lidt instruction for that. Since you inherit the IVT the BIOS created before you entered protected-mode, you don't have to set anything up. So an IVT such as this should work:
Code: IVT dw 1023 dd 0 |
|||
08 Sep 2012, 12:37 |
|
asmdev 08 Sep 2012, 13:39
don't forget to restore PIC to its original state which would probably mean disabling ioapic for a modern os
|
|||
08 Sep 2012, 13:39 |
|
Dex4u 08 Sep 2012, 16:55
If you see my post here, there's a vesa demo i coded, that goes to and from realmode for mode switching, from vesa to text mode to vesa etc, every 10 seconds.
Fasm source included. http://board.flatassembler.net/topic.php?p=143625#143625 Also see Mike Gonta work. |
|||
08 Sep 2012, 16:55 |
|
ivan_tux 10 Sep 2012, 12:50
Ok, I understand now
Thanks All, and also to Dex for your code. your code helpful |
|||
10 Sep 2012, 12:50 |
|
ivan_tux 11 Sep 2012, 10:13
Hey, wait...
i get little problem just now... yesterday, i try to write small booloader that load gdt, switch to pmode and then back to rmode and print a char using int 10h yeah, i'm very glad, it works just now, i m trying to re implement that to my kernel... first, bootloader load it to 0500:0000, but bochs said something like this : ....[cpu0]virtual_emm_read32.. blah blah blah... whats wrong? then i try changed bootloader to make my kernel loaded at 0600:0000, yeah, i get no errors, but the interrupt not executed so, i decide to change bootloader again. now it load my kernel at 1000:0000. i get error like first experiment :p |
|||
11 Sep 2012, 10:13 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.