Replace common segment/offset pairs with struct segoff_s.
[seabios.git] / src / output.c
index a3166265585f66e3c8aa6bd995a241c868db8959..6a164e1e6a0707aa6a9302862434847a43138441 100644 (file)
@@ -48,7 +48,7 @@ debug_serial(char c)
     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 @@ screenc(u8 c)
 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);
@@ -325,9 +325,9 @@ dump_regs(struct bregs *regs)
     dprintf(1, "   a=%08x  b=%08x  c=%08x  d=%08x ds=%04x es=%04x ss=%04x\n"
             , regs->eax, regs->ebx, regs->ecx, regs->edx
             , regs->ds, regs->es, GET_SEG(SS));
-    dprintf(1, "  si=%08x di=%08x bp=%08x  r=%08x cs=%04x ip=%04x  f=%04x\n"
-            , regs->esi, regs->edi, regs->ebp, (u32)regs
-            , regs->cs, regs->ip, regs->flags);
+    dprintf(1, "  si=%08x di=%08x bp=%08x sp=%08x cs=%04x ip=%04x  f=%04x\n"
+            , regs->esi, regs->edi, regs->ebp, (u32)&regs[1]
+            , regs->code.seg, regs->code.offset, regs->flags);
 }
 
 // Report entry to an Interrupt Service Routine (ISR).