Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Mar 2004 17:30:07 -0500
From:      John Baldwin <jhb@FreeBSD.org>
To:        Jason Dictos <jason.dictos@yosemitetech.com>
Cc:        "'freebsd-hardware@freebsd.org'" <freebsd-hardware@freebsd.org>
Subject:   Re: How to use int 13 while BSD is running
Message-ID:  <200403101730.07604.jhb@FreeBSD.org>
In-Reply-To: <E50A109EE98AA049BAA09D725DB0714F01AD3BB9@mail.tapeware.com>
References:  <E50A109EE98AA049BAA09D725DB0714F01AD3BB9@mail.tapeware.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 10 March 2004 01:22 pm, Jason Dictos wrote:
> Thanks for the reply, however I'm looking for a more DMPI style interface
> while in protected mode. If we didn't need to be in protected mode, then
> I'd just leave it the way it is-us booting into DR DOS and using inline
> assembly to access int 13. However what we're trying to do is move to a 32
> bit kernel environment, while still retaining access to realmode
> interrupts.

The loader runs in protected mode.  Basically, BTX is a small kernel that 
allows for a single protected mode task.  That task can make BIOS calls, the 
real mode interrupt handlers are still used for device interrupts, etc.  For 
example, see src/sys/boot/i386/libi386/biosdisk.c to see how it uses int13 to 
talk to the disks but from within a 32-bit protected mode app written in C.

> -Jason
>
> -----Original Message-----
> From: John Baldwin [mailto:jhb@FreeBSD.org]
> Sent: Wednesday, March 10, 2004 7:52 AM
> To: Jason Dictos
> Cc: 'freebsd-hardware@freebsd.org'
> Subject: Re: How to use int 13 while BSD is running
>
> 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@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/ "Power
> Users Use the Power to Serve"  =  http://www.FreeBSD.org
>
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit http://www.messagelabs.com/email
> ______________________________________________________________________
>
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit http://www.messagelabs.com/email
> ______________________________________________________________________

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



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