Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Aug 1997 19:19:47 -0500
From:      Jonathan Lemon <jlemon@americantv.com>
To:        Jonathan Mini <j_mini@efn.org>, emulation@freebsd.org
Subject:   Calling BIOS from within FreeBSD
Message-ID:  <19970814191947.62382@right.PCS>
In-Reply-To: <19970812194056.12566@micron.efn.org>; from Jonathan Mini on Aug 08, 1997 at 07:40:56PM -0700
References:  <19970811114903.20861@micron.efn.org> <199708112025.WAA03492@sos.freebsd.dk> <19970812195034.31150@right.PCS> <19970812194056.12566@micron.efn.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello -

   I have patches to -current for a "vm86 thread".  Although in a very rough
state, it allows you to execute random BIOS functions.   For example:

INT x10, AH=x10, AL=x19		(Read VGA Pel Mask register)
    scratch[6:50pm](0)# ./vmcall 0x10 0x10 0x19
    result: 0
    trapno: 9   err: 0
    ax=1019 bx=00ff cx=0000 dx=0000
    si=0000 di=0000 sp=8000 bp=0000
    cs=0000 ss=0000 ds=0000 es=0000
    ip=7c02 eflags=b0202

INT x10, AH=x4F, AL=0  		(Get SVGA general information)
    scratch[6:50pm](0)# ./vmcall 0x10 0x4F 0
    result: 0
    trapno: 9   err: 0
    ax=004f bx=0000 cx=0000 dx=0000
    si=0000 di=0000 sp=8000 bp=0000
    cs=0000 ss=0000 ds=0000 es=0000
    ip=7c02 eflags=b0202

    (Whups, I forgot I'm calling it with es:di == 0:0, so there goes my 
     interrupt table.  Urk.  But here's the result:)

    int 0x00: 0x41534556    int 0x01: 0x500e0102
    int 0x02:     0xc000    int 0x03: 0x502d0000
    int 0x04:   0x20c000    int 0x05:        0x0
    int 0x06:        0x0    int 0x07:        0x0
    int 0x08:        0x0    int 0x09:        0x0


The patches are at: ftp://sumatra.americantv.com/pub/vm86-970814.tar.gz
--
Jonathan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19970814191947.62382>