How to use int 13 while BSD is running

John Baldwin jhb at FreeBSD.org
Wed Mar 10 10:15:40 PST 2004


On Tuesday 09 March 2004 04:24 pm, Jason Dictos wrote:
> Hello,
>
> 	I'm investigating what resources are out there for accessing bios
> addressable devices while BSD is up and running. The situation is this,
> currently we licenses Caldera DOS for a program we wrote which uses the
> int13 extensions to manipulate the systems hard drive (i.e. to recover
> partition tables and what not). This forces our application to be written
> in 16 bit mode, but it does allows us to not have to worry about loading
> any driver which would be hardware specific to access the hard drive. Is
> there any way to write a driver for BSD which would put the processor into
> real mode, therefore allowing us to use the int 13 api of the bios to read
> and write hard drives? That way we could package a stripped down BSD kernel
> which loaded our driver and gave our application access to hard disks
> without having to load any device driver.
>
> Apologies in advance if this is the wrong mailing list,

Look at the loader in src/sys/boot.   It is a 32-bit C app that uses BIOS 
calls to access the disk.  It uses a psuedo-kernel called BTX to manage 
interrupts in vm86 mode and run BIOS code in vm86 mode.  You can probably 
port your software to being a custom loader that uses boot2 to boot off of a 
floppy.  You can also use cdboot to boot a loader off of a CD or pxeboot to 
boot a loader image over the network.  The loader uses libstand which 
provides several useful things like malloc/free, some basic filesystem 
support, etc.

-- 
John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the freebsd-hardware mailing list