Improve support for old 16bit resume handlers.

Detect a non-standard CMOS shutdown code during post and run a
    separate resume handler.
Set aside space in the EBDA for the resume handler stack.
Add support for several of the code supported in bochs bios.
diff --git a/src/asm-offsets.c b/src/asm-offsets.c
index 8f17c04..1e3a293 100644
--- a/src/asm-offsets.c
+++ b/src/asm-offsets.c
@@ -1,13 +1,15 @@
 // Generate assembler offsets.
 
-#include "gen-defs.h"
-#include "bregs.h"
+#include "gen-defs.h" // OFFSET
+#include "bregs.h" // struct bregs
+#include "biosvar.h" // struct bios_data_area_s
 
 /* workaround for a warning with -Wmissing-prototypes */
 void foo(void) VISIBLE16;
 
 void foo(void)
 {
+    COMMENT("BREGS");
     OFFSET(BREGS_es, bregs, es);
     OFFSET(BREGS_ds, bregs, ds);
     OFFSET(BREGS_eax, bregs, eax);
@@ -18,4 +20,12 @@
     OFFSET(BREGS_edi, bregs, edi);
     OFFSET(BREGS_flags, bregs, flags);
     OFFSET(BREGS_ip, bregs, ip);
+
+    COMMENT("BDA");
+    OFFSET(BDA_ebda_seg, bios_data_area_s, ebda_seg);
+
+    COMMENT("EBDA");
+    OFFSET(EBDA_resume_stack_top, extended_bios_data_area_s
+           , resume_stack[FIELD_SIZEOF(struct extended_bios_data_area_s
+                                       , resume_stack)]);
 }