[Savage40] s3switch does segmentation fault / xv overlay on tv
weired
Tim Roberts
timr at probo.com
Thu May 26 09:10:33 PDT 2005
Harald Strack wrote:
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x08049ca7 in em_outb () at lrmi.c:539
> 539 asm volatile ("outb %b0, (%w1)"
> (gdb) info registers
> edx 0x70 112
>
> -> writing 2 bytes to 0x70 ? (correct me, when i am wrong)
Probably correct. I should have had you do a disassembly just to be
sure. There are two forms of the "out" instruction: one form embeds
the port number in the instruction, and the other form gets it from dx.
In this case, it is probably the dx form. And, actually, it's only
writing one byte ("outb").
> (gdb) info registers
> edx 0xb2 178
>
> -> writing 2 bytes to 0xb2 ? (correct me, when i am wrong)
Probably not, as we'll see next:
> Next try:
> # ./s3switch pal
> vm86() failed
> return = 0x1
> eax = 0x00000080
> ebx = 0x00000100
> ecx = 0x00005f07
> edx = 0x000000b2
> esi = 0x0000005f
> edi = 0x0000ffff
> ebp = 0x00000fd4
> eip = 0x00009a39
> cs = 0xc000
> esp = 0x00000fb2
> ss = 0x1000
> ds = 0x0000
> es = 0x0000
> fs = 0x0000
> gs = 0x0000
> eflags = 0x000b3202
> cs:ip = [ e6 4f 3d 80 53 75 04 59 5b eb 03 83 c4 04 66 8b ]
"e6 4f" is the embedded port number out instruction, so in this case,
the port is 0x4f.
> When I am in TV mode, I get this:
>
> # ./s3switch tv
> Devices attached: CRT LCD TV
> Devices active: CRT LCD
> Current TV format is NTSC
>
> So it claims to be NTSC !?
As I said, the format detection on the SuperSavage doesn't work, because
the BIOS doesn't follow the S3 standard.
> Do not know enough about this stuff sorry... But I have time... If you
> have more
> ideas for me to fiddle around, they are welcome
For "not knowing enough", you're doing pretty good so far. If you add
0x4f instead of 0xb2, you'll probably be pretty close. Maybe one more.
--
Tim Roberts, timr at probo.com
Providenza & Boekelheide, Inc.
More information about the Savage40
mailing list