diff --git a/handbook/authors.sgml b/handbook/authors.sgml
index 07210c90d2..a13fe9c14f 100644
--- a/handbook/authors.sgml
+++ b/handbook/authors.sgml
@@ -1,4 +1,4 @@
-<!-- $Id: authors.sgml,v 1.6 1995-08-25 22:14:28 jfieber Exp $ -->
+<!-- $Id: authors.sgml,v 1.7 1995-08-27 02:44:16 jfieber Exp $ -->
 <!-- The FreeBSD Documentation Project -->
 
 <!-- 
@@ -7,6 +7,7 @@ entities when referencing people.
 -->
 
 <!ENTITY a.asami "Satoshi Asami <tt>&lt;asami@FreeBSD.org&gt;</tt>">
+<!ENTITY a.awebster "Andrew Webster <tt>&lt;awebster@dataradio.com&gt;</tt>">
 <!ENTITY a.davidg "David Greenman <tt>&lt;davidg@Root.COM&gt;</tt>">
 <!ENTITY a.dufalt "Peter Dufault <tt>&lt;dufault@hda.com&gt;</tt>">
 <!ENTITY a.gclarkii "Gary Clark II <tt>&lt;gclarkii@FreeBSD.org&gt;</tt>">
@@ -24,4 +25,5 @@ entities when referencing people.
 <!ENTITY a.phk "Poul-Henning Kamp <tt>&lt;phk@FreeBSD.org&gt;</tt>">
 <!ENTITY a.paul "Paul Richards <tt>&lt;paul@FreeBSD.org&gt;</tt>">
 <!ENTITY a.rgrimes "Rodney Grimes <tt>&lt;rgrimes@FreeBSD.org&gt;</tt>">
+<!ENTITY a.whiteside "Don Whiteside <tt>&lt;whiteside@acm.org&gt;</tt>">
 <!ENTITY a.wilko "Wilko Bulte <tt>&lt;wilko@yedi.iaf.nl&gt;</tt>">
diff --git a/handbook/handbook.sgml b/handbook/handbook.sgml
index 6a0cc93e72..41fecaee4c 100644
--- a/handbook/handbook.sgml
+++ b/handbook/handbook.sgml
@@ -1,4 +1,4 @@
-<!-- $Id: handbook.sgml,v 1.24 1995-08-19 15:38:23 jfieber Exp $ -->
+<!-- $Id: handbook.sgml,v 1.25 1995-08-27 02:44:18 jfieber Exp $ -->
 <!-- The FreeBSD Documentation Project -->
 
 <!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN" [
@@ -62,7 +62,7 @@ OUTLINE:
       <author>
 	<name>The FreeBSD Documentation Project</name>
       </author>
-      <date>August 19, 1995</date>
+      <date>August 26, 1995</date>
 
       <abstract>Welcome to FreeBSD!  This handbook covers the
 	installation and day to day use of <bf>FreeBSD Release
diff --git a/handbook/hw.sgml b/handbook/hw.sgml
index 48c2dbb81f..12d07dcf82 100644
--- a/handbook/hw.sgml
+++ b/handbook/hw.sgml
@@ -1,7 +1,7 @@
-<!-- $Id: hw.sgml,v 1.3 1995-08-25 22:14:30 jfieber Exp $ -->
+<!-- $Id: hw.sgml,v 1.4 1995-08-27 02:44:20 jfieber Exp $ -->
 <!-- The FreeBSD Documentation Project -->
 
-<!--
+<!-- 
 <!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN">
 -->
 
@@ -71,7 +71,7 @@
 
 	      <tag>Neptune:</tag> Can not run more than 2 bus
 		master devices.  Admitted Intel design flaw.
-		Workarounds include don't run more than 2 bus
+		Workarounds include do not run more than 2 bus
 		masters, special hardware design to replace the
 		PCI bus arbiter (appears on Intel Altair board
 		and several other Intel server group MB's).  And
@@ -92,11 +92,207 @@
 <sect1><heading>* Memory</heading>
 <sect1><heading>* BIOS</heading>
 
-<sect><heading>* Input/Output Devices<label id="hw:io"></heading>
+<sect><heading>Input/Output Devices<label id="hw:io"></heading>
 
 <sect1><heading>* Video cards</heading>
 <sect1><heading>* Sound cards</heading>
-<sect1><heading>* Serial ports (including multiport cards)</heading>
+<sect1><heading>Serial ports and multiport cards</heading>
+
+	<p>The <tt>sio</tt> driver provides support for NS8250-,
+	  NS16450-, NS16550 and NS16550A-based EIA RS-232C (CCITT
+	  V.24) communications interfaces.  Several multiport
+	  cards are supported as well.  See the <tt>sio(4)</tt>
+	  manual page for detailed technical documentation.
+
+<sect2>Digiboard PC/8
+
+	  <p><em>Contributed by &a.awebster;.<newline>26 August
+	      1995.</em>
+
+	    Here is a config snippet from a machine with
+	    digiboard PC/8 with 16550.  It has 8 modems connected
+	    to these 8 lines, and they work just great.  Do not
+	    forget to add <tt>options "COM_MULTIPORT"</tt> or it
+	    wo not work very well!
+
+<tscreen><verb>
+device          sio4    at isa? port 0x100 tty flags 0xb05
+device          sio5    at isa? port 0x108 tty flags 0xb05
+device          sio6    at isa? port 0x110 tty flags 0xb05
+device          sio7    at isa? port 0x118 tty flags 0xb05
+device          sio8    at isa? port 0x120 tty flags 0xb05
+device          sio9    at isa? port 0x128 tty flags 0xb05
+device          sio10   at isa? port 0x130 tty flags 0xb05
+device          sio11   at isa? port 0x138 tty flags 0xb05 irq 9 vector siointr
+</verb></tscreen>
+
+	  The trick in setting this up is that the MSB of the
+	  flags represent the last SIO port, in this case 11 so
+	  flags are 0xb05.
+
+<sect2>Boca 16
+
+	  <p><em>Contributed by &a.whiteside;.<newline>26 August
+	      1995.</em>
+
+	    The procedures to make a Boca 16 pord board with
+	    FreeBSD are pretty straighforward, but you will need
+	    a couple things to make it work:
+
+	    <enum>
+	      <item>You either need the kernel sources installed
+		so you can recompile the necessary options or
+		you will need someone else to compile it for you.
+		The 2.0.5 default kernel does <bf>not</bf> come with
+		multiport support enabled and you will need to add
+		a device entry for each port anyways.
+	      </item>
+	      <item>Two, you will need to know the interrupt and IO
+		setting for your Boca Board so you can set these
+		options properly in the kernel.</item>
+	    </enum>
+
+	    One important note - the actual UART chips for the
+	    Boca 16 are in the connector box, not on the internal
+	    board itself. So if you have it unplugged, probes of
+	    those ports will fail. I have never tested booting with
+	    the box unplugged and plugging it back in, and I
+	    suggest you do not either.
+
+	    If you do not already have a custom kernel
+	    configuration file set up, refer to <ref
+	    id="kernelconfig" name="Kernel Configuration"> for
+	    general procedurs.  The following are the specifics
+	    for the Boca 16 board and assume you are using the
+	    kernel name MYKERNEL and editing with vi.
+
+	    <enum>
+		<item>Add the line 
+<tscreen><verb>
+options "COM_MULTIPORT"
+</verb></tscreen>
+to the config file.
+</item>
+
+	      <item>Where the current <tt>device sio
+		<em>xxx</em></tt> lines are, you will need to add
+		16 more devices.  <em>Only the last device
+		includes the interrupt vector for the
+		board</em>. (See the <tt>sio(4)</tt> manual page
+		for detail as to why.) 
+
+		The following example is for a Boca Board with an
+		interrupt of 3, and a base IO address 100h.  The
+		IO address for Each port is +8 hexidecimal from
+		the previous port, thus the 100h, 108h, 110h...
+		addresses.
+
+<tscreen><verb>
+device sio1 at isa? port 0x100 tty flags 0x1005
+device sio2 at isa? port 0x108 tty flags 0x1005
+device sio3 at isa? port 0x110 tty flags 0x1005
+device sio4 at isa? port 0x118 tty flags 0x1005
+...
+device sio15 at isa? port 0x170 tty flags 0x1005
+device sio16 at isa? port 0x178 tty flags 0x1005 irq 3 vector siointr
+</verb></tscreen>
+
+		The flags entry <em>must</em> be changed from
+		this example unless you are using the exact same
+		sio assignments. Flags are set according to
+		0x<em>MYY</em> where <em>M</em> indicates the
+		minor number of the master port (the last port on
+		a Boca 16) and <em>YY</em> indicates if FIFO is
+		enabled or disabled(enabled), IRQ sharing is
+		used(yes) and if there is an AST/4 compatible IRQ
+		control register(no).
+
+		In this example,
+<tscreen><verb>
+flags 0x1005
+</verb></tscreen>
+
+		indicates that the master port is sio16. If I
+		added another board and assigned sio17 through
+		sio28, the flags for all 16 ports on
+		<em>that</em> board would be 0x1C05, where 1C
+		indicates the minor number of the master port.
+		Do not change the 05 setting.</item>
+
+	      <item>Save and complete the kernel configuration,
+		recompile, install and reboot.
+
+		Presuming you have successfully installed the
+		recompiled kernel and have it set to the correct
+		address and IRQ, your boot message should
+		indicate the successful probe of the Boca ports
+		as follows: (obviously the sio numbers, IO and
+		IRQ could be different)
+
+<tscreen><verb>
+sio1 at 0x100-0x107 flags 0x1005 on isa
+sio1: type 16550A (multiport)
+sio2 at 0x108-0x10f flags 0x1005 on isa
+sio2: type 16550A (multiport)
+sio3 at 0x110-0x117 flags 0x1005 on isa
+sio3: type 16550A (multiport)
+sio4 at 0x118-0x11f flags 0x1005 on isa
+sio4: type 16550A (multiport)
+sio5 at 0x120-0x127 flags 0x1005 on isa
+sio5: type 16550A (multiport)
+sio6 at 0x128-0x12f flags 0x1005 on isa
+sio6: type 16550A (multiport)
+sio7 at 0x130-0x137 flags 0x1005 on isa
+sio7: type 16550A (multiport)
+sio8 at 0x138-0x13f flags 0x1005 on isa
+sio8: type 16550A (multiport)
+sio9 at 0x140-0x147 flags 0x1005 on isa
+sio9: type 16550A (multiport)
+sio10 at 0x148-0x14f flags 0x1005 on isa
+sio10: type 16550A (multiport)
+sio11 at 0x150-0x157 flags 0x1005 on isa
+sio11: type 16550A (multiport)
+sio12 at 0x158-0x15f flags 0x1005 on isa
+sio12: type 16550A (multiport)
+sio13 at 0x160-0x167 flags 0x1005 on isa
+sio13: type 16550A (multiport)
+sio14 at 0x168-0x16f flags 0x1005 on isa
+sio14: type 16550A (multiport)
+sio15 at 0x170-0x177 flags 0x1005 on isa
+sio15: type 16550A (multiport)
+sio16 at 0x178-0x17f irq 3 flags 0x1005 on isa
+sio16: type 16550A (multiport master)
+</verb></tscreen>
+
+		If the messages go by too fast to see, <tt>dmesg
+		  &gt; more</tt> will show you the boot
+		messages.</item>
+
+	      <item>Next, apprepriate entries in <tt>/dev</tt> for the devices
+		must be made using the <tt>/dev/MAKEDEV</tt>
+		script.  After becoming root:
+<tscreen>
+cd /dev<newline>
+./MAKEDEV tty1<newline>
+./MAKEDEV cua1<newline>
+<em>.. (everything inbetween)</em><newline>
+./MAKEDEV ttyg<newline>
+./MAKEDEV cuag
+</tscreen>
+
+		If you do not want or need callout devices for some
+		reason, you can dispense with making the <tt>cua*</tt>
+		devices.</item>
+
+	      <item>If you want a quick and sloppy way to make
+		sure the devices are working, you can simply plug
+		a modem into each port and (as root) <tt>echo at
+		&gt; ttyd*</tt> for each device you have
+		made. You <em>should</em> see the RX lights flash
+		for each working port.</item>
+	    </enum>
+
+
 <sect1><heading>* Parallel ports</heading>
 <sect1><heading>* Modems</heading>
 <sect1><heading>* Network cards</heading>