[MPlayer-dev-eng] Documentation: video.html patch

Nick Kurshev nickols_k at mail.ru
Sun Oct 14 19:59:11 CEST 2001


Hello, Arpi!
On Sun, 14 Oct 2001 19:31:34 +0200 (CEST), you wrote:

> Hi,
> 
> > > > +<br>>Hello!
> > >        ^-this won't be ok in HTML 
> > > 
> > No - it's ok. It's 'reply character' from letter. At least netscape shows it correctly.
> netscape 4 is far from html :)
> 
Then correct it as you want ;)

> > > > +<br><br>From other side - we could have a chance to have TV-out support through
> > > > +<b>VESA drivers</b> on x86 systems but since Linux has too limited <i>vm86 syscall</i>
> > > > +- it's unreachable on practice. Finely every access to IO space causes exception
> > > > +and driver attempts to emulate even VESA calls instead passing them to native
> > > > +int_10h handler.
> > > >  </P>
> > > 
> > > is it possible to enable TVout using VESA bios calls?
> > Yes! Every DOS program which uses int 10h enables tv-out automatically.
> good.
> 
> > > dosemu and some other projects has code for handle VESA calls from linux.
> > > I also used them in dosrunner.
> > > 
> > As I wrote - even dosemu emulates many BIOS calls (doesn't perform transfer control
> > to BIOS int 10h handler, but emulates them with IO to/from VGA ports).
> yes. but why is it problem? it catches in/out instructions and executes them
> in linux process space and then continues bios code in x86 space.
> the effect is the same as running teh whole x86 code under real x86.
> 
> the extra profit is that you also can log in/out commands to file and
> analize, maybe you find which ones enables tvout.
> 
I have disassembler dump of my BIOS.
It's not easy task to find out such solution.
It performs many nested loops with reading/writing from/to Radeon's ports to compute
tv-out parameters.
Do you know what POST passes to bios initialization code (always located at C000:0003)
through BX registers? Video BIOS uses it parameter too frequently. Finely at every access
to IO space.

> > I've tried to run X11 with VESA driver but also got unsynced tv-out signal
> > (by the same reasons - control doesn't reached BIOS int 10h).
> x11 vesa driver afaik not only calls int10, it does much more...
> 
And it's BAD!
Code from xc/programs/XServer/hs/xfree86/int10/xf86int10.c:
static int
int1A_handler(xf86Int10InfoPtr pInt)
{
    PCITAG tag;
    pciVideoPtr pvp;
...
    switch (X86_AX) {
    case 0xb101:
	X86_EAX &= 0xFF00;   /* no config space/special cycle support */
	X86_EDX = 0x20494350; /* " ICP" */
	X86_EBX = 0x0210;    /* Version 2.10 */
	X86_ECX &= 0xFF00;
	X86_ECX |= (pciNumBuses & 0xFF);   /* Max bus number in system */
	X86_EFLAGS &= ~((unsigned long)0x01); /* clear carry flag */
#ifdef PRINT_INT
	ErrorF("ax=0x%x dx=0x%x bx=0x%x cx=0x%x flags=0x%x\n",
		 X86_EAX, X86_EDX, X86_EBX, X86_ECX, X86_EFLAGS);
#endif
	return 1;

It doesn't execute real-mode handler here. Isn't?

> > > They run small program (actually it's a gate between your program and
> > > DOS/bios), catching exceptions (privileged port access etc) and emulate them
> > > if allowes (if port range is ok, do port r/w emulating the problematic
> > > instructions else skip them). There is also a handy library (called LRMI)
> > > for this. Of course, it requires root.
> > > 
> > What is LRMI?
> linux real mode interface
> 
> it's a lib for such things as you need.
> 
Well - I'll look at it. But anyway my info should be applied simply because it's truth
about ATI and its hardware support. But as you want.
> 
> A'rpi / Astral & ESP-team
> 
> --
> mailto:arpi at thot.banki.hu
> http://esp-team.scene.hu
> _______________________________________________
> MPlayer-dev-eng mailing list
> MPlayer-dev-eng at mplayerhq.hu
> http://mplayerhq.hu/mailman/listinfo/mplayer-dev-eng
> 

Best regards! Nick



More information about the MPlayer-dev-eng mailing list