Introduce MBR struct; simplify cdrom emulation code.

Define and use a struct for the master boot record.
Simplify cdrom emulation chs setting code.
Fix an apparent bug in harddrive chs setting - it wasn't properly
    masking the spt/cyl fields.
diff --git a/src/boot.c b/src/boot.c
index 1f0647a..6db213a 100644
--- a/src/boot.c
+++ b/src/boot.c
@@ -130,7 +130,8 @@
         /* Always check the signature on a HDD boot sector; on FDD,
          * only do the check if configured for it */
         if (type != IPL_TYPE_FLOPPY || IPL.checkfloppysig) {
-            if (GET_FARVAR(bootseg, *(u16*)0x1fe) != 0xaa55) {
+            struct mbr_s *mbr = (void*)0;
+            if (GET_FARVAR(bootseg, mbr->signature) != MBR_SIGNATURE) {
                 print_boot_failure(type, 0);
                 return;
             }