ack/plat/pc86
George Koehler 3dcc3bd1cf Allow pc86 bootloader to boot from more floppy drives.
When the bootloader probes the drive geometry, the BIOS can clobber the
es register.  If this happens, the bootloader loads the program to the
wrong address, and jumps off the code.  This happens with an emulated
floppy drive in Bochs or QEMU, but not with an emulated hard disk.
2012-09-23 14:43:22 -04:00
..
include Fixed major typos in the signal declarations that was preventing anything that used signal() from compiling. 2007-04-24 19:34:34 +00:00
libsys Updated for the 6.0pre2 release. 2007-04-24 20:45:58 +00:00
.distr Updated for the 6.0pre2 release. 2007-04-24 20:45:58 +00:00
boot.s Allow pc86 bootloader to boot from more floppy drives. 2012-09-23 14:43:22 -04:00
descr Ensured that _errno is always defined. Rejigged the pc86 boot code so it doesn't always waste 510 bytes of memory. 2007-04-24 19:25:00 +00:00
pmfile Now using more conservative optimisation due to random seg fault issues. 2007-04-29 23:02:23 +00:00
README Documented floating-point status. 2007-04-28 22:34:47 +00:00

# $Source$
# $State$
# $Revision$


The pc86 platform
=================

pc86 is an i86-based BSP that produces bootable floppy disk images that can
be run on most PCs. It is intended to be quick and dirty rather than actually
useful, although it may come in handy for hardware test purposes, boot
loaders, and the like.

The code runs in TINY mode, where CS, DS and SS all share the same segment.
This means that there's not very much memory available. It would be very easy
to change it to run in SMALL mode, where CS occupies one segment and DS and SS
another, which would give 64kB for nearly all programs; I just haven't done it.

IEEE floating point is available, but requires an FPU.

This port only implements a very limited set of syscalls --- and most of those
are stubs required to make the demo apps link. File descriptors 0, 1 and 2
represent the console. All reads block. There's enough TTY emulation to allow
\n conversion and local echo (but it can't be turned off).


Example command line
====================

ack -mpc86 -O -o pc86.img examples/paranoia.c

The file pc86.img can then be copied onto a floppy and booted, or run via qemu
or somesuch emulator.


David Given
dg@cowlark.com