libBIOS is a library intended to support a BIOS development.

It is aimed to produce a small footprint binary.
You have several "families" of calls

sa110_* :
	These are architecture-dependant routines. You will have to study them
	if you want to support a new architecture. Put a small but descriptive
	prefix and copy all suffixes to develop this HW layer.
	I'm not an expert on ARM architecture, my main idea is to have a single
	BIOS support for all SA110/SA1100/Xscale processors, but obviously all ARM
	products are welcomed. I have avoided to put MMU support because of this.

sys_*  	:
	Portable routines, mainly for PCI. They are a generic layer,
	usually built over sa110_* one. Here we have BIOS "personality".

emos_*	:
	Small and portable OS. Yes. Another GPL RTOS (1ms tic), *alpha* release.
	If you want to know more, drop me a line. For the moment, it is attached
	to BIOS project just for powering some embedded applications.
	Its main feature is simplicity and very small size. It has multicast
	messaging capabilities.
	It will add around 16Kbytes to your code (core+libs) plus 10-15Kbytes
	per driver. We have "migrated" a couple of drivers from Linux to this
	system plus a single BOOTP/TFTP application, making an 40Kbytes-sized
	image. That driver is not on this directory.
	Seems not being impossible to easily migrate more drivers, it is a very
	interesting way of supporting your hardware in a small boot system.
	Usually you will want it for loading bigger images from LAN or DISK.
	If you are rich in flash space (2Mbytes or more) maybe you will prefer
	to flash Linux instead.
	Multitasking is intended to promote a richer subsystem (remotely monitor
	your hardware, operating your system or flashing it...)
	Another good idea is to add a TCP/IP stack (in a single process) and
	some more features to have a nice embedded toy. I'm trying to choose a
	good window system and GUI, another single process for emulating
	a framebuffer and a soundcard should be needed (better project for this
	seems SDL, take a look at LokiGames web pages).
	A probable evolution as a separate project of its own.

libc_*  :
	These are "standard" libc routines. They have been derived from part of
	"newlib" project, they have been modified to fit in a smaller system,
	mainly I removed all console interaction and optimizations.
	This is not an ANSI system, so a lot of stuff has been removed. If
	somebody cannot live without "standard" libc support, and he wants to
	contribute by providing a proper "newlib" usage while maintaining a
	SMALL footprint, I would like to hear about that, please email.
	A proper "configure" could probably solve this point in a better way.

bz2_*	:
	I have copied these from "libbzip2 0.9.0c", (c) Julian R Seward & al.
	These files have a copyright, I have not modified their inner mechanism
	just copied them here and adapted to my makefile system.
	I put them here just to avoid "compatibility" issues
	in any eventual change of interface. It works for the purpose of
	the BIOS project. Same ideas that I have already said for "libc".
	A proper "configure" could probably solve this point in a better way.
	
19/03/2001
David Aparicio (daparic@terra.es)
