re all!

i think i re-started developing my os (in the last month(s) i didn't feel like doing it... - dunno why). up to now i booted my disk on a real computer. i always had to reboot the computer i wrote the code on since i had no other computer to test my work.
i want now to make things comfortable with VirtualPC 5.1. but when i booted my code (working on a real pc) the virtual pc switched to my vesa-gfx-mode but the screen stood black, i.e. the writes to the lfb don't seem to work - has any1 an idea why? some things to install to make it work? help?!

i also thought of Bochs - is this one better? i already tried but i think i can't configure it without help. when i called int 10 for the vesa-mode it didn't support them... so, i need some hints, tutorials to make the vesa-gfx and the lfb-writes work.

thanks, all
Posted on 2003-07-12 05:40:46 by hartyl
Hi,

I know your situation. Give Bochs a try, but personally I prefer to use
a real PC next to my developer PC.

How did you obtain the LFB address? If the screen stays black mostly the
LFB is wrong. Get the LFB address from VESA while in real mode.

Bye Miracle
Posted on 2003-07-15 04:38:55 by miracle
i read informations that bochs just allows 8bit modes in 1024x768 at maximum. i tried this mode but i got still a black screen (newest vga-bios).
i do get the lfb-addy in realmode with int 10, ax=0x4f01 i think (get mode information).
i don't have another computer next to me, just in the next room, and that's not better :)
Posted on 2003-07-15 05:36:20 by hartyl
I also use 2-3 PCs nearby ....

But i have heard only the new VmWare versions works ok with VESA all other emulators have some problems...

I use VESA detection and LFB in SOLAR OS and VMWare screenshots show it working ok...
Posted on 2003-07-15 06:02:49 by BogdanOntanu
doesnt work on my vmware of virtual pc. and my new mother bord for that matter, win9x chokes on it too!
Posted on 2003-07-15 11:57:18 by Qages
Hi all.
1. I want a working Put Pixel function code.
2. All Linier Frame Buffer Address. I only know 0xd0000000, for 24-bit.
3. Why writing pixel using mov are so slow?
4. Why calling a near function causing restarted?how many byte get pushed? and where the return value ?

Thank you :stupid:
Posted on 2003-07-16 07:10:57 by realvampire
first about... i don't get it why you miss-use my thread for asking non-related questions, you could create a new thread, but ok - i'll answer you.
1. do it yourself. instructions:


lfbaddr+y*pitch+x*bytepp or
lfbaddr+(y*maxx+x)*bytepp

2. aha, ok
3. writing a pixel with a mov-instruction is fastest you can do.
4. maybe you have an invalid stack-selector. there are 4 bytes being pushed on the stack - just the instruction pointer eip - this IS the return value. so if you have an invalid stack-selector you'll get a triple fault (i think you still don't have an idt)
Posted on 2003-07-16 07:21:57 by hartyl
Hi to all!!

I've decide to resume this post because I've the kill-moral black screen problem :grin:

My code do this:
In real mode:
- use int 0x10 ax=0x4F00 to get VESA info

- use int 0x10 ax=0x4F01 to get mode info
(I loop from best to worst mode while int return ah!=0 (fail) should it work??)

- get Bit Per Scanline, Pit Per Pixel and Linear Frame Buffer from mode info...
I also save resolution and pointers to functions for get an put pixel in 24 or 32 bit mode

- Set the mode with int 0x10 ax=0x4F02


In PMode:
(Suppose to have a 32 bit video mode)
- PutPixel: MOV dword , Color it don't work!

Believe me when I say that I had try... a lot to made it work! :tongue:


My environment is:
- I had try my code either on real pc and in bochs... same result


My questions are:
- Whi? (no philosophy please :grin: )
- I'd like to dump bochs virtual ram to check some info stuff but I don't understand how to...
- I have never understand differences from SVGA and VESA (and u want to develop an os?!? ^^) can you explain it to me in short plz?


Thanks a lot folks!!!!! :alright:
Posted on 2003-11-15 04:41:32 by Nikso
Answers (with no philosofhy)

1)You have made an mistake somewhere, because the exact same code work ok for me in SOLAR OS :grin: I believe you hav etried a lot of time. Is the PM setup corectly? (selectors/IDT/etc)

2)Neither do i, have asked Bochs creators? or read Bochs sourcecode?

3)

a)SVGA is a kind of video board (the one that is at least capable to do 800x600x256 == what VGA can NOT do)

b) VESA is a try to make a software standard for accesing video boards with better caps than VGA -- yes this includes SVGA' cards but also modern (today's) video cards
Posted on 2003-11-15 15:28:33 by BogdanOntanu
Wohoooo a red pixel on the top-left of the screeeeeen!!!

Next time I'll try harder for find out stupid errors :grin:

Thanks for yours explanation (and for haven't use philosophy :tongue: )

Next step is Win driver compatibility!!!!!!! :alright:
Posted on 2003-11-16 09:13:05 by Nikso