From owner-freebsd-hackers Fri Feb 26 12:36:42 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from smtp-out2.bellatlantic.net (smtp-out2.bellatlantic.net [199.45.39.157]) by hub.freebsd.org (Postfix) with ESMTP id 39C38151AF for ; Fri, 26 Feb 1999 12:36:34 -0800 (PST) (envelope-from dmm125@bellatlantic.net) Received: from bellatlantic.net (client201-122-100.bellatlantic.net [151.201.122.100]) by smtp-out2.bellatlantic.net (8.9.1/8.9.1) with ESMTP id PAA10942; Fri, 26 Feb 1999 15:38:05 -0500 (EST) Message-ID: <36D70538.8D09F7F@bellatlantic.net> Date: Fri, 26 Feb 1999 15:34:00 -0500 From: Donn Miller X-Mailer: Mozilla 4.5 [en] (X11; I; Linux 2.0.36 i586) X-Accept-Language: en MIME-Version: 1.0 To: Mike Smith Cc: hackers@freebsd.org Subject: Re: Accessing the BIOS... References: <199902261746.JAA08392@dingo.cdrom.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Mike Smith wrote: > > > Obviously, a far pointer is required to access > > this if it is outside the range of the 32kB BIOS image. FWIU, DOS uses > > address locations 0x000-0x600 for some BIOS services, such as writing to > > the VGA display. It does this by passing arguments in the various > > registers (such as AX or EAX) and calling INT 10. In 16-bit or 32-bit > > protected mode, I don't know which, you can't pass arguments in AX and > > call int10. > > You don't use the BIOS for text output under FreeBSD. > > > You have to get a pointer to the protected mode entry > > point. > > Again, no you don't. The reason I was asking is that I was interested in programming with the VESA BIOS extensions. It was saying in their docs (ftp://ftp.vesa.org/pub/VBE/vbe3.pdf) that an app needs to obtain the entry points to the BIOS in order to carry out the VESA graphics operations. > > > > (*) Does FBSD use 16 or 32 bit protected-mode BIOS calls? If they > > are 16-bit, I think you use a selector:offest in the format 16:16. > > 32-bit protected-mode calls have a selector:offset format of 16:32. I > > know this must involve using some arithmetic with DS or ES registers, > > but I'm not sure. > > The kernel can (and does) make real-mode, 16- and 32-bit protected mode > BIOS calls. Applications make none of the above. So if I wanted to use the Vesa BIOS extensions to build an extension onto libvgl, I would have to make certain calls to the kernel, and let the kernel access the VESA BIOS instead of my letting app doing it directly? In a nutshell, I wanted to help Soren out with his work on libvgl -- he was going to add capabilities to libvgl that enable it to use VBE, or VESA BIOS extensions. By using VBE, you can get hi-res modes like 1024x768x16 million colors without having a specific driver for the video card. The disadvantage would be, well, you'd have to have your app call the VESA BIOS in protected mode, and using BIOS graphics would be a lot slower than using a specific driver for a particular VGA card, without BIOS calls. How can I access the BIOS then, would I have to use certain kernel functions, or would I have to use a protected mode entry point? If so, where is the entry point located? Thanks. I'm kind of confused here. ;) --Donn To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message