Add option CONFIG_SCREEN_AND_DEBUG to control printf and debugging.

New option controls whether or not printf content is also written to
    the debug ports.
diff --git a/src/config.h b/src/config.h
index 20e74c7..98b69e8 100644
--- a/src/config.h
+++ b/src/config.h
@@ -19,9 +19,10 @@
 
 // Control how verbose debug output is.
 #define CONFIG_DEBUG_LEVEL 1
-
 // Send debugging information to serial port
 #define CONFIG_DEBUG_SERIAL 0
+// Screen writes are also sent to debug ports.
+#define CONFIG_SCREEN_AND_DEBUG 1
 
 // Support for int13 floppy drive access
 #define CONFIG_FLOPPY_SUPPORT 1
diff --git a/src/output.c b/src/output.c
index 6665b63..1cd0b8c 100644
--- a/src/output.c
+++ b/src/output.c
@@ -48,7 +48,7 @@
     outb(c, DEBUG_PORT+SEROFF_DATA);
 }
 
-// Write a character to the serial port.
+// Make sure all serial port writes have been completely sent.
 static void
 debug_serial_flush()
 {
@@ -79,7 +79,7 @@
 static void
 putc(u16 action, char c)
 {
-    if (CONFIG_DEBUG_LEVEL) {
+    if (CONFIG_DEBUG_LEVEL && (CONFIG_SCREEN_AND_DEBUG || !action)) {
         if (! CONFIG_COREBOOT)
             // Send character to debug port.
             outb(c, PORT_BIOS_DEBUG);