Windows 1.01 keyboard driver source                 John Elliott, 8 July 2014
=============================================================================

  This is an attempt at creating source code which compiles to some 
approximation of the Windows 1.01 US keyboard driver (keybus.drv). It 
was created by (more or less) taking the corresponding source from the 
Windows 3.1 DDK, and commenting out bits until the result was the same.

  The source and build scripts are intended to build using Microsoft C 4.
This is a 16-bit compiler, so you will need a 16- or 32-bit build system 
(I'm using Windows NT 4). Edit MK2.BAT to set the paths to your installation,
and then run MK.BAT to compile. If all goes well, KBD.DRV should be created.

Notes on the source
~~~~~~~~~~~~~~~~~~~
  The source is based on the Windows 3.1 DDK. In general, sections removed 
to match the Windows 1.01 driver have been marked WIN1 and commented out with 
three semicolons. There may be other changes; the best way to get a full list
would be to use a diff tool against the Windows 3.1 driver source tree.

Installing the result
~~~~~~~~~~~~~~~~~~~~~

  The easiest way is to use Windows 1.01 in its unattended setup mode. Copy
the installation diskettes and kbd.drv to a single directory; then use 
SETUP /Q to do the installation. For example:

	SETUP /Q c:\win101 kbd.drv mouse.drv egahires.drv

  will install to C:\WIN101.

Differences from the original
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  The output file differs from the Windows 1.01 original in various respects:

* The DOS stub is a different version (among other changes, the message 
  "This program requires Microsoft Windows." does not have its full stop in
  the released Windows 1.01).

* Various fields in the NE header are different:
	- Linker version is 5.0, not 4.0
	- CRC is different
	- Bit 2 of executable flags (offset 0Ch) is set
	- Segment lengths recorded in the segment table are longer
	- Segments have additional flags:

		Original	KBD.DRV
	Code	PRELOAD		PRELOAD bit9 bit10
	Data	DATA PRELOAD	DATA PRELOAD SHAREABLE bit9 bit10

