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-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.