Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

VBE in protected mode

EzEEzE Posts: 19Member
In the VBE 2.0 documentation they mention that a 32-bit protected mode interface is availiable.
Does anyone have some nice documention on how to use vesa in protected mode?
/Chris
«1

Comments

  • ASHLEY4ASHLEY4 Posts: 254Member
    : In the VBE 2.0 documentation they mention that a 32-bit protected mode interface is availiable.
    : Does anyone have some nice documention on how to use vesa in protected mode?
    : /Chris
    :

    The simple answer is you can not use it, by that i mean you need to setup, so many things, that its not worth doing that way, you are better off, making v86 or switch to realmode and back, i see lots of peope want to use "32-bit protected mode interface" but not one person as got it to works, so good luck if you try :-).
  • EzEEzE Posts: 19Member
    : : In the VBE 2.0 documentation they mention that a 32-bit protected mode interface is availiable.
    : : Does anyone have some nice documention on how to use vesa in protected mode?
    : : /Chris
    : :
    :
    : The simple answer is you can not use it, by that i mean you need to setup, so many things, that its not worth doing that way, you are better off, making v86 or switch to realmode and back, i see lots of peope want to use "32-bit protected mode interface" but not one person as got it to works, so good luck if you try :-).
    :

    It sounds so easy in the manual ;-) Just two segment selectors and a 32-bit stack space. The problem is that my graphic routines are kinda heavy and there's to much time loss in switching mode each time i want to swap memory window.
    Hope somebody has worked this out. :-(
    /Chris
  • ASHLEY4ASHLEY4 Posts: 254Member
    : : : In the VBE 2.0 documentation they mention that a 32-bit protected mode interface is availiable.
    : : : Does anyone have some nice documention on how to use vesa in protected mode?
    : : : /Chris
    : : :
    : :
    : : The simple answer is you can not use it, by that i mean you need to setup, so many things, that its not worth doing that way, you are better off, making v86 or switch to realmode and back, i see lots of peope want to use "32-bit protected mode interface" but not one person as got it to works, so good luck if you try :-).
    : :
    :
    : It sounds so easy in the manual ;-) Just two segment selectors and a 32-bit stack space. The problem is that my graphic routines are kinda heavy and there's to much time loss in switching mode each time i want to swap memory window.
    : Hope somebody has worked this out. :-(
    : /Chris

    Are you not using LFB ?, I swich modes by go to and from real mode in my OS and it very fast.
    I have a demo, i made, to show how fast going to and from realmode is, if your interested let me know, it includes vesa mode switching.

    \\||////
    (@@)
    ASHLEY4.

    Batteries not included, Some assembly required.


  • EzEEzE Posts: 19Member
    : Are you not using LFB ?, I swich modes by go to and from real mode in my OS and it very fast.
    : I have a demo, i made, to show how fast going to and from realmode is, if your interested let me know, it includes vesa mode switching.
    :
    : \\||////
    : (@@)
    : ASHLEY4.
    :
    : Batteries not included, Some assembly required.
    :
    Yes, that would be nice to take a look at.
    It seems that functions 05, 07 and 09 shouldn't be to hard to use in pmode by calling the offsets returned by function 0A.
    /Chris
  • ASHLEY4ASHLEY4 Posts: 254Member
    I will post a link in the next day or two, ( got to find it on some backup CD's), also let me know if you get your pmode vesa interface working ;-).

    \\||////
    (@@)
    ASHLEY4.

    Batteries not included, Some assembly required.
  • darkraven32darkraven32 Posts: 14Member
    that would be NICE.

    but, how did you get the code to drop and come back so easily? SUrely, that isn't an easy task.
  • darkraven32darkraven32 Posts: 14Member
    what do you mean, too slow? what system are you coding for?

    32bit mode switching should be faster, no? Or are you using unsupported card? see ATI has to do extra work to do int10 functions, including VESA and VBE.

    nVidia, not to mention, they FIXED the inherent VBE2/3 bugs, does direct FB access via the GPU on int10.Why go to 3 if you have to go back to 2 to do a job?

    If your card is unsupported, or requires software to use VBE2+ that could be your issue.Yes, you are correct on the memory addressing, but I have 16 bit assembler where 32bits should be.Just switching registers does not work.

    Look at the code inside PGE for Dos.PGE is a windows-like interface.The VESA unit, I think, and somewhere else on the net, has the function set listed[in C, as I recall].I may have just pulled one too many functions from this particular unit and not coded it myself from the website example.Either way, that file was lost about a week ago.I can't recover it.



    how slow is your system?

    dropping to 16 bit mode works, but you have to clear all the int/gdt tables each time.I would like to leave these SET, thank you, but I am interested in how you got this to work.I just found the VM86 code a little while ago, I have to port it from C, as I use FPC to code with.




  • shadowOScodershadowOScoder Posts: 4Member
    I have managed to translate the VBE spec to working code but have not compiled it yet. It is in assembler.

    I do not know performance. I only have N10(X3100)Intel GFX card to test on. I have ran VBE demo from pascal sources which indicates a different mode list than the standard, so VBE is technically correct.

    VBE3 is detected on boot, with Darwin boot loader, with *NIX and the former code (my bootloader) compiled when pulling VBE v3 specs with function 4F0A, so I know VBE3 is present in card.It would fail if only VBE2 specs were available.

    I have also looked at DSDT whilst under OSX. IT is a VBE3 card.Most nVidias are, ATI implementation of VBE3 is spotty. (ATI have weird int10 function anyway)


    src:
    usb2.asm from code.google.com/coffee-os
    (YES, I do OS dev..)

    You need to have your own bootloader, like my boot.asm sources, which kickstarts this code somehow. Default startup is RM 16bit, I jump to 32bit and enable equivalent of DPMI drop to VM86 UNREAL and NOW REAL MODE, I just finished some of the code, so I have not time to test yet.

    I rawwrite to USB with HexD app at raw sector level. I hear that same can be done for floppy and it works, i ran out of disks that were good.Win7 is preventing me from writing a custom loader that uses FAT to chainload the stage2 code.

    I started writing bootsector when GRUB wasnt returning my VBE info I know existed.(AKA: VRAM size, VBE version, etc..) Grub has a VBE2, not VBE3 probe.

    I needed VESA (and DPMI) access for the OS, as I AM NOT writing card specific drivers.

    You dont always want VBE3, but I would use it where possible.

    --Jazz

  • shadowOScodershadowOScoder Posts: 4Member
    I have managed to translate the VBE spec to working code but have not compiled it yet. It is in assembler.

    I do not know performance. I only have N10(X3100)Intel GFX card to test on. I have ran VBE demo from pascal sources which indicates a different mode list than the standard, so VBE is technically correct.

    VBE3 is detected on boot, with Darwin boot loader, with *NIX and the former code (my bootloader) compiled when pulling VBE v3 specs with function 4F0A, so I know VBE3 is present in card.It would fail if only VBE2 specs were available.

    I have also looked at DSDT whilst under OSX. IT is a VBE3 card.Most nVidias are, ATI implementation of VBE3 is spotty. (ATI have weird int10 function anyway)


    src:
    usb2.asm from code.google.com/coffee-os
    (YES, I do OS dev..)

    You need to have your own bootloader, like my boot.asm sources, which kickstarts this code somehow. Default startup is RM 16bit, I jump to 32bit and enable equivalent of DPMI drop to VM86 UNREAL and NOW REAL MODE, I just finished some of the code, so I have not time to test yet.

    I rawwrite to USB with HexD app at raw sector level. I hear that same can be done for floppy and it works, i ran out of disks that were good.Win7 is preventing me from writing a custom loader that uses FAT to chainload the stage2 code.

    I started writing bootsector when GRUB wasnt returning my VBE info I know existed.(AKA: VRAM size, VBE version, etc..) Grub has a VBE2, not VBE3 probe.

    I needed VESA (and DPMI) access for the OS, as I AM NOT writing card specific drivers.

    You dont always want VBE3, but I would use it where possible.

    --Jazz

  • shadowOScodershadowOScoder Posts: 4Member
    I have managed to translate the VBE spec to working code but have not compiled it yet. It is in assembler.

    I do not know performance. I only have N10(X3100)Intel GFX card to test on. I have ran VBE demo from pascal sources which indicates a different mode list than the standard, so VBE is technically correct.

    VBE3 is detected on boot, with Darwin boot loader, with *NIX and the former code (my bootloader) compiled when pulling VBE v3 specs with function 4F0A, so I know VBE3 is present in card.It would fail if only VBE2 specs were available.

    I have also looked at DSDT whilst under OSX. IT is a VBE3 card.Most nVidias are, ATI implementation of VBE3 is spotty. (ATI have weird int10 function anyway)


    src:
    usb2.asm from code.google.com/coffee-os
    (YES, I do OS dev..)

    You need to have your own bootloader, like my boot.asm sources, which kickstarts this code somehow. Default startup is RM 16bit, I jump to 32bit and enable equivalent of DPMI drop to VM86 UNREAL and NOW REAL MODE, I just finished some of the code, so I have not time to test yet.

    I rawwrite to USB with HexD app at raw sector level. I hear that same can be done for floppy and it works, i ran out of disks that were good.Win7 is preventing me from writing a custom loader that uses FAT to chainload the stage2 code.

    I started writing bootsector when GRUB wasnt returning my VBE info I know existed.(AKA: VRAM size, VBE version, etc..) Grub has a VBE2, not VBE3 probe.

    I needed VESA (and DPMI) access for the OS, as I AM NOT writing card specific drivers.

    You dont always want VBE3, but I would use it where possible.
    You need subversion client to check out from google code.

    SmartSVN is decent, there is a command console version also available.

    --Jazz

«1
Sign In or Register to comment.