diff --git a/src/biosvar.h b/src/biosvar.h
index e49a10a..051cd1e 100644
--- a/src/biosvar.h
+++ b/src/biosvar.h
@@ -1,24 +1,20 @@
-// Variable layouts of bios.
+// Memory access to BIOS variables.
 //
-// Copyright (C) 2008-2010  Kevin O'Connor <kevin@koconnor.net>
+// Copyright (C) 2008-2013  Kevin O'Connor <kevin@koconnor.net>
 //
 // This file may be distributed under the terms of the GNU LGPLv3 license.
 #ifndef __BIOSVAR_H
 #define __BIOSVAR_H
 
-#include "types.h" // u8
-#include "farptr.h" // GET_FARVAR
 #include "config.h" // SEG_BDA
+#include "farptr.h" // GET_FARVAR
+#include "std/bda.h" // struct bios_data_area_s
 
 
 /****************************************************************
  * Interupt vector table
  ****************************************************************/
 
-struct rmode_IVT {
-    struct segoff_s ivec[256];
-};
-
 #define GET_IVT(vector)                                         \
     GET_FARVAR(SEG_IVT, ((struct rmode_IVT *)0)->ivec[vector])
 #define SET_IVT(vector, segoff)                                         \
@@ -35,106 +31,6 @@
  * Bios Data Area (BDA)
  ****************************************************************/
 
-struct bios_data_area_s {
-    // 40:00
-    u16 port_com[4];
-    u16 port_lpt[3];
-    u16 ebda_seg;
-    // 40:10
-    u16 equipment_list_flags;
-    u8 pad1;
-    u16 mem_size_kb;
-    u8 pad2;
-    u8 ps2_ctrl_flag;
-    u8 kbd_flag0;
-    u8 kbd_flag1;
-    u8 alt_keypad;
-    u16 kbd_buf_head;
-    u16 kbd_buf_tail;
-    // 40:1e
-    u8 kbd_buf[32];
-    u8 floppy_recalibration_status;
-    u8 floppy_motor_status;
-    // 40:40
-    u8 floppy_motor_counter;
-    u8 floppy_last_status;
-    u8 floppy_return_status[7];
-    u8 video_mode;
-    u16 video_cols;
-    u16 video_pagesize;
-    u16 video_pagestart;
-    // 40:50
-    u16 cursor_pos[8];
-    // 40:60
-    u16 cursor_type;
-    u8 video_page;
-    u16 crtc_address;
-    u8 video_msr;
-    u8 video_pal;
-    struct segoff_s jump;
-    u8 other_6b;
-    u32 timer_counter;
-    // 40:70
-    u8 timer_rollover;
-    u8 break_flag;
-    u16 soft_reset_flag;
-    u8 disk_last_status;
-    u8 hdcount;
-    u8 disk_control_byte;
-    u8 port_disk;
-    u8 lpt_timeout[4];
-    u8 com_timeout[4];
-    // 40:80
-    u16 kbd_buf_start_offset;
-    u16 kbd_buf_end_offset;
-    u8 video_rows;
-    u16 char_height;
-    u8 video_ctl;
-    u8 video_switches;
-    u8 modeset_ctl;
-    u8 dcc_index;
-    u8 floppy_last_data_rate;
-    u8 disk_status_controller;
-    u8 disk_error_controller;
-    u8 disk_interrupt_flag;
-    u8 floppy_harddisk_info;
-    // 40:90
-    u8 floppy_media_state[4];
-    u8 floppy_track[2];
-    u8 kbd_flag2;
-    u8 kbd_led;
-    struct segoff_s user_wait_complete_flag;
-    u32 user_wait_timeout;
-    // 40:A0
-    u8 rtc_wait_flag;
-    u8 other_a1[7];
-    struct segoff_s video_savetable;
-    u8 other_ac[4];
-    // 40:B0
-    u8 other_b0[9];
-    u8 vbe_flag;
-    u16 vbe_mode;
-    u8 other_bc[4];
-    // 40:C0
-    u8 other_c0[4*16];
-} PACKED;
-
-// BDA floppy_recalibration_status bitdefs
-#define FRS_IRQ (1<<7)
-
-// BDA rtc_wait_flag bitdefs
-#define RWS_WAIT_PENDING (1<<0)
-#define RWS_WAIT_ELAPSED (1<<7)
-
-// BDA floppy_media_state bitdefs
-#define FMS_DRIVE_STATE_MASK        (0x07)
-#define FMS_MEDIA_DRIVE_ESTABLISHED (1<<4)
-#define FMS_DOUBLE_STEPPING         (1<<5)
-#define FMS_DATA_RATE_MASK          (0xc0)
-
-// Limit of BDA timer_counter field
-#define TICKS_PER_DAY 1573040
-
 // Accessor functions
 #define GET_BDA(var) \
     GET_FARVAR(SEG_BDA, ((struct bios_data_area_s *)0)->var)
@@ -152,40 +48,6 @@
  * Extended Bios Data Area (EBDA)
  ****************************************************************/
 
-struct fdpt_s {
-    u16 cylinders;
-    u8 heads;
-    u8 a0h_signature;
-    u8 phys_sectors;
-    u16 precompensation;
-    u8 reserved;
-    u8 drive_control_byte;
-    u16 phys_cylinders;
-    u8 phys_heads;
-    u16 landing_zone;
-    u8 sectors;
-    u8 checksum;
-} PACKED;
-
-struct extended_bios_data_area_s {
-    u8 size;
-    u8 reserved1[0x21];
-    struct segoff_s far_call_pointer;
-    u8 mouse_flag1;
-    u8 mouse_flag2;
-    u8 mouse_data[0x08];
-    // 0x30
-    u8 other1[0x0d];
-
-    // 0x3d
-    struct fdpt_s fdpt[2];
-
-    // 0x5d
-    u8 other2[0xC4];
-
-    // 0x121 - Begin custom storage.
-} PACKED;
-
 // The initial size and location of EBDA
 #define EBDA_SIZE_START \
     DIV_ROUND_UP(sizeof(struct extended_bios_data_area_s), 1024)
@@ -269,19 +131,4 @@
 #define GET_LOWFLAT(var) GET_LOW(*LOWFLAT2LOW(&(var)))
 #define SET_LOWFLAT(var, val) SET_LOW(*LOWFLAT2LOW(&(var)), (val))
 
-
-/****************************************************************
- * Bios Config Table
- ****************************************************************/
-
-struct bios_config_table_s {
-    u16 size;
-    u8 model;
-    u8 submodel;
-    u8 biosrev;
-    u8 feature1, feature2, feature3, feature4, feature5;
-} PACKED;
-
-extern struct bios_config_table_s BIOS_CONFIG_TABLE __aligned(1);
-
 #endif // __BIOSVAR_H
diff --git a/src/fw/csm.c b/src/fw/csm.c
index dda6af4..d241b17 100644
--- a/src/fw/csm.c
+++ b/src/fw/csm.c
@@ -4,10 +4,10 @@
 //
 // This file may be distributed under the terms of the GNU LGPLv3 license.
 
-#include "biosvar.h"
 #include "boot.h"
 #include "bregs.h"
 #include "config.h" // CONFIG_*
+#include "farptr.h" // MAKE_FLATPTR
 #include "hw/pci.h"
 #include "hw/pic.h"
 #include "malloc.h" // csm_malloc_preinit
@@ -16,6 +16,7 @@
 #include "post.h"
 #include "stacks.h" // wait_threads
 #include "std/acpi.h" // RSDP_SIGNATURE
+#include "std/bda.h" // struct bios_data_area_s
 #include "std/optionrom.h" // struct rom_header
 #include "util.h" // copy_smbios
 
diff --git a/src/post.c b/src/post.c
index 5514120..512c716 100644
--- a/src/post.c
+++ b/src/post.c
@@ -5,7 +5,7 @@
 //
 // This file may be distributed under the terms of the GNU LGPLv3 license.
 
-#include "biosvar.h" // struct bios_data_area_s
+#include "biosvar.h" // SET_BDA
 #include "boot.h" // boot_init
 #include "bregs.h" // struct bregs
 #include "config.h" // CONFIG_*
diff --git a/src/resume.c b/src/resume.c
index 96c63d5..af39a1d 100644
--- a/src/resume.c
+++ b/src/resume.c
@@ -4,8 +4,9 @@
 //
 // This file may be distributed under the terms of the GNU LGPLv3 license.
 
-#include "biosvar.h" // struct bios_data_area_s
 #include "bregs.h" // struct bregs
+#include "config.h" // CONFIG_*
+#include "farptr.h" // FLATPTR_TO_SEGOFF
 #include "hw/cmos.h" // inb_cmos
 #include "hw/pci.h" // pci_reboot
 #include "hw/pic.h" // pic_eoi2
@@ -13,6 +14,7 @@
 #include "ioport.h" // outb
 #include "output.h" // dprintf
 #include "stacks.h" // farcall16big
+#include "std/bda.h" // struct bios_data_area_s
 #include "string.h" // memset
 #include "util.h" // dma_setup
 
diff --git a/src/std/bda.h b/src/std/bda.h
new file mode 100644
index 0000000..948bdbf
--- /dev/null
+++ b/src/std/bda.h
@@ -0,0 +1,159 @@
+// BIOS Data Area (and similar) definitions
+#ifndef __BDA_H
+#define __BDA_H
+
+#include "disk.h" // struct fdpt_s
+#include "types.h" // u8
+
+
+/****************************************************************
+ * Interupt vector table
+ ****************************************************************/
+
+struct rmode_IVT {
+    struct segoff_s ivec[256];
+};
+
+
+/****************************************************************
+ * Bios Data Area (BDA)
+ ****************************************************************/
+
+struct bios_data_area_s {
+    // 40:00
+    u16 port_com[4];
+    u16 port_lpt[3];
+    u16 ebda_seg;
+    // 40:10
+    u16 equipment_list_flags;
+    u8 pad1;
+    u16 mem_size_kb;
+    u8 pad2;
+    u8 ps2_ctrl_flag;
+    u8 kbd_flag0;
+    u8 kbd_flag1;
+    u8 alt_keypad;
+    u16 kbd_buf_head;
+    u16 kbd_buf_tail;
+    // 40:1e
+    u8 kbd_buf[32];
+    u8 floppy_recalibration_status;
+    u8 floppy_motor_status;
+    // 40:40
+    u8 floppy_motor_counter;
+    u8 floppy_last_status;
+    u8 floppy_return_status[7];
+    u8 video_mode;
+    u16 video_cols;
+    u16 video_pagesize;
+    u16 video_pagestart;
+    // 40:50
+    u16 cursor_pos[8];
+    // 40:60
+    u16 cursor_type;
+    u8 video_page;
+    u16 crtc_address;
+    u8 video_msr;
+    u8 video_pal;
+    struct segoff_s jump;
+    u8 other_6b;
+    u32 timer_counter;
+    // 40:70
+    u8 timer_rollover;
+    u8 break_flag;
+    u16 soft_reset_flag;
+    u8 disk_last_status;
+    u8 hdcount;
+    u8 disk_control_byte;
+    u8 port_disk;
+    u8 lpt_timeout[4];
+    u8 com_timeout[4];
+    // 40:80
+    u16 kbd_buf_start_offset;
+    u16 kbd_buf_end_offset;
+    u8 video_rows;
+    u16 char_height;
+    u8 video_ctl;
+    u8 video_switches;
+    u8 modeset_ctl;
+    u8 dcc_index;
+    u8 floppy_last_data_rate;
+    u8 disk_status_controller;
+    u8 disk_error_controller;
+    u8 disk_interrupt_flag;
+    u8 floppy_harddisk_info;
+    // 40:90
+    u8 floppy_media_state[4];
+    u8 floppy_track[2];
+    u8 kbd_flag2;
+    u8 kbd_led;
+    struct segoff_s user_wait_complete_flag;
+    u32 user_wait_timeout;
+    // 40:A0
+    u8 rtc_wait_flag;
+    u8 other_a1[7];
+    struct segoff_s video_savetable;
+    u8 other_ac[4];
+    // 40:B0
+    u8 other_b0[9];
+    u8 vbe_flag;
+    u16 vbe_mode;
+    u8 other_bc[4];
+    // 40:C0
+    u8 other_c0[4*16];
+} PACKED;
+
+// BDA floppy_recalibration_status bitdefs
+#define FRS_IRQ (1<<7)
+
+// BDA rtc_wait_flag bitdefs
+#define RWS_WAIT_PENDING (1<<0)
+#define RWS_WAIT_ELAPSED (1<<7)
+
+// BDA floppy_media_state bitdefs
+#define FMS_DRIVE_STATE_MASK        (0x07)
+#define FMS_MEDIA_DRIVE_ESTABLISHED (1<<4)
+#define FMS_DOUBLE_STEPPING         (1<<5)
+#define FMS_DATA_RATE_MASK          (0xc0)
+
+// Limit of BDA timer_counter field
+#define TICKS_PER_DAY 1573040
+
+
+/****************************************************************
+ * Extended Bios Data Area (EBDA)
+ ****************************************************************/
+
+struct extended_bios_data_area_s {
+    u8 size;
+    u8 reserved1[0x21];
+    struct segoff_s far_call_pointer;
+    u8 mouse_flag1;
+    u8 mouse_flag2;
+    u8 mouse_data[0x08];
+    // 0x30
+    u8 other1[0x0d];
+
+    // 0x3d
+    struct fdpt_s fdpt[2];
+
+    // 0x5d
+    u8 other2[0xC4];
+
+    // 0x121 - Begin custom storage.
+} PACKED;
+
+
+/****************************************************************
+ * Bios Config Table
+ ****************************************************************/
+
+struct bios_config_table_s {
+    u16 size;
+    u8 model;
+    u8 submodel;
+    u8 biosrev;
+    u8 feature1, feature2, feature3, feature4, feature5;
+} PACKED;
+
+#endif // bda.h
diff --git a/src/std/disk.h b/src/std/disk.h
index c111e07..b2576d9 100644
--- a/src/std/disk.h
+++ b/src/std/disk.h
@@ -81,6 +81,22 @@
     };
 } PACKED;
 
+// Floppy info
+struct fdpt_s {
+    u16 cylinders;
+    u8 heads;
+    u8 a0h_signature;
+    u8 phys_sectors;
+    u16 precompensation;
+    u8 reserved;
+    u8 drive_control_byte;
+    u16 phys_cylinders;
+    u8 phys_heads;
+    u16 landing_zone;
+    u8 sectors;
+    u8 checksum;
+} PACKED;
+
 // Floppy "Disk Base Table"
 struct floppy_dbt_s {
     u8 specify1;
diff --git a/src/system.c b/src/system.c
index 4669e62..aaca059 100644
--- a/src/system.c
+++ b/src/system.c
@@ -5,7 +5,7 @@
 //
 // This file may be distributed under the terms of the GNU LGPLv3 license.
 
-#include "biosvar.h" // BIOS_CONFIG_TABLE
+#include "biosvar.h" // GET_GLOBAL
 #include "bregs.h" // struct bregs
 #include "hw/pic.h" // pic_reset
 #include "ioport.h" // inb
diff --git a/src/util.h b/src/util.h
index 6d8c0d2..32a4af4 100644
--- a/src/util.h
+++ b/src/util.h
@@ -175,8 +175,9 @@
 void reset_vector(void) __noreturn;
 
 // misc.c
-void mathcp_setup(void);
+extern struct bios_config_table_s BIOS_CONFIG_TABLE __aligned(1);
 extern u8 BiosChecksum;
+void mathcp_setup(void);
 
 // version (auto generated file out/version.c)
 extern const char VERSION[];
