On Mon, 21 Apr 2008 00:24:22 -0700 (PDT), "stamari@[EMAIL PROTECTED]
"
<spamtrap@[EMAIL PROTECTED]
> wrote:
>Hi,
>
>My desktop machine has an Intel integrated vga chip:
>00:02.0 VGA compatible controller: Intel Cor****ation 82G965 Integrated
>Graphics Controller (rev 02)
>
>I disassembled the code at C000: and got this:
>0000c0000 55 push bp
>0000c0001 aa stosb
>0000c0002 58 pop ax
>0000c0003 e919a8 jmp 0xba81f
>0000c0006 3030 xor [bx+si], dh
>0000c0008 3030 xor [bx+si], dh
>0000c000a 3030 xor [bx+si], dh
>0000c000c 3030 xor [bx+si], dh
>0000c000e 3030 xor [bx+si], dh
>0000c0010 3030 xor [bx+si], dh
>0000c0012 8c18 mov [bx+si], ds
>0000c0014 e97d17 jmp 0xc1794
>0000c0017 234000 and ax, [bx+si+0x0]
>0000c001a b00a mov al, 0xa
>0000c001c 3030 xor [bx+si], dh
>0000c001e 49 dec cx
>
>How come the vga bios jumps to code that starts at an address that is
>smaller than C0000?
>The jump at C0014 jumps to some code that looks like the card's actual
>initialization code. Any reason why this jmp is placed at offset 14h ?
>
>Anyone here got any idea what I'm seeing?
Errors.
First step is to learn the format of a bios rom.
For example, the first 2 bytes are a flag word, not instructions. The
third byte is supposed to be a length code, but I don't think that
'58' is right. My vga bios has '40'.
Did you deassemble this as 16-bit code or 32-bit code ? '0xba81f' is
not a possible address in 16-bit code, which is what a vga bios should
be.
--
ArarghMail804 at [drop the 'http://www.'
from ->] http://www.arargh.com
BCET Basic Compiler Page: http://www.arargh.com/basic/index.html
To reply by email, remove the extra stuff from the reply address.


|