Graphics Standard

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
Graphics in pm

Graphics Standard

Post by Graphics in pm »

I'm looking for a standard to use high res modes under pm.
my vesa 3.0 only supports 800x600x32.
isn't it possible to use the vga standard to get to 1024x768x32?
any tutorial or samples?
User avatar
bubach
Member
Member
Posts: 1223
Joined: Sat Oct 23, 2004 11:00 pm
Location: Sweden
Contact:

RE:Graphics Standard

Post by bubach »

no it is not.
the highest possible vga res. is 640x480 with only 16 colors..
but it would do as a start-up mode until the user has made the settings for his/hers vesa card..
it should be easy to get some (quite old) info on this vga mode.
try searching for "vga +mode 12h" or something..
in dos you go into this mode by calling a bios interrupt (nr 13), with service nr (forgot it..) and put the mode nr (0x0012) in al(or is it ax?), but of course it would be harder to get mode 12h in protected mode..

hope this helped
/ Christoffer
"Simplicity is the ultimate sophistication."
http://bos.asmhackers.net/ - GitHub
EyeScream

RE:Graphics Standard

Post by EyeScream »

In real mode:
-> MOV AX, 0x0012
-> INT 0x10

In protected mode you have to work directly with video card IO space.
User avatar
bubach
Member
Member
Posts: 1223
Joined: Sat Oct 23, 2004 11:00 pm
Location: Sweden
Contact:

RE:Graphics Standard

Post by bubach »

by the way, i saw a pretty cool vga libary somewhere (biona fides os dev site?), that uses the vga registers to set vga modes (like mode 12h and mode x).
The only BIOS int used in the code is for getting the BIOS fonts, but you should be able to write your own fonts..

/ Christoffer
"Simplicity is the ultimate sophistication."
http://bos.asmhackers.net/ - GitHub
graphics in pm

RE:Graphics Standard

Post by graphics in pm »

I already set vga-mode 320x240x8 using ports under pm.
I need to know how to set hingher resolutions without vbe3.
Anton

RE:Graphics Standard

Post by Anton »

>my vesa 3.0 only supports 800x600x32
Are you shure that you can set higer modes(like in windows)? Mabe it is the higest you can set on your video card?(Check the video memory amount) Becase my old(8 year old card) can set 1024x768x32 with out a problem.
Anton.
carbonBased

RE:Graphics Standard

Post by carbonBased »

Then you'll have to look into the specific chipset used by your graphics card (which is what, btw?)

Search for VGADOC... it has API info on many (S)VGA chipsets in use today.

Cheers,
Jeff
GraphicsinPM

RE:Graphics Standard

Post by GraphicsinPM »

I've checked the list for the highest res with 32 bits.
i dont't know how to get infos about my chipset.
i use the winfast a350td (geforce 5900u).
i guess they dont't provide any info.
madmatt

RE:Graphics Standard

Post by madmatt »

There is a function in Vesa 2.0/3.0 that lets you get protected mode function calls for getting vesa mode information, setting different vesa modes, page flipping etc.  You would have to get this information before you enter protected mode then pass a 32bit pointer with the information to your kernel just before you run the kernel.  Here is the (partial) vesa interrupt function information for getting that protected mode interface.  One last thing, use the video mode list found from function 4f00 and NOT the ones defined the the vesa manual! The mode numbers in most of the newer cards are different that described in the vesa 2.0/3.0 manual.  Read the vesa text for specific information:
----------
4.13.     Function 0Ah - Return VBE Protected Mode Interface

     This required function call returns a pointer to a table that contains
     code for a 32-bit protected mode interface that can either be copied
     into local 32 bit memory space or can be executed from ROM providing
     the calling application sets all required selectors and I/O access
     correctly. This function returns a pointer (in real mode space) with
     offsets to the code fragments, and additionally returns an offset to a
     table which contains Non-VGA Port and Memory locations which an
     Application may have to have I/O access to.


     Input:    AX   = 4F0Ah   VBE 2.0 Protected Mode Interface
               BL   = 00h          Return protected mode table


     Output:   AX   =         Status
               ES   =         Real Mode Segment of Table
               DI   =         Offset of Table
               CX   =         Length of Table including protected mode code
                              (for copying purposes)


     The format of the table is as follows:

          ES:DI + 00h    Word Offset in table of Protected mode code for
                         Function 5 for Set Window Call
          ES:DI + 02h    Word Offset in table of Protected mode code for
                         Function 7 for set Display Start
          ES:DI + 04h    Word Offset in table of Protected mode code for
                         Function 9 for set Primary Palette data
          ES:DI + 06h    Word  Offset in table of Ports and Memory Locations
                         that the application may need I/O privilege for.
                         (Optional:  if unsupported this must be 0000h)
                         (See Sub-table for format)
          ES:DI + ?      Variable remainder of Table including Code
graphics in pmode

RE:Graphics Standard

Post by graphics in pmode »

i haven't found anything about my nvidia chipset
(geforce fx5900u)
graphicsinpm

RE:Graphics Standard

Post by graphicsinpm »

i already have the vbe3.pdf.
i set up everything and called the pminitialize function from pm.
i guess it works because the function returns without errors.
if i call the pmentrypoint, my computer beeps.
i don't know where to find infos about my nvidia chipset.
can't anybody help me?
Adek336

RE:Graphics Standard

Post by Adek336 »

Seems like your card doesn't support vbe3, how about trying vbe2 or vbe1?
graphics in pm

RE:Graphics Standard

Post by graphics in pm »

my card supports vbe3... i want to use the ports myself
ASHLEY4

RE:Graphics Standard

Post by ASHLEY4 »

There is a program in allegro (the games iib) that lets you test all vesa mode on your sys,this is good for testing.
Also if you are useing xp,On some cards ,it only lets the lower modes work even if they are there.

ASHLEY4.
Post Reply