memdisk: Fix order of sectors/track and bytes/sector syslinux-4.06
authorKenneth J. Davis <jeremyd@fdos.org>
Mon, 22 Oct 2012 18:20:18 +0000 (19:20 +0100)
committerMatt Fleming <matt.fleming@intel.com>
Tue, 23 Oct 2012 09:53:17 +0000 (10:53 +0100)
Swap order of sectors/track with bytes/sector to match diskette
parameter table order (as pointed to by INT 1Eh).

References: (additional ones available if necessary)
'System BIOS for IBM PC/XT/AT computers and compatibles' by Phoenix
Technologies Ltd. copyright 1987,88,89 3rd printing 1990 ISBN:
0-201-51806-6 pages 61-62
'PC Interrupts' 2nd edition by Ralf Brown & Jim Kyle copyright 1994
1st printing 1993 ISBN: 0-201-62485-0 page 211

Note: this fixes an issue with older FreeDOS kernels that expect this
structure to contain valid values.

Signed-off-by: Kenneth J. Davis <jeremyd@fdos.org>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
memdisk/mstructs.h

index fecbff4..0b0dc07 100644 (file)
@@ -121,9 +121,9 @@ typedef union {
        uint8_t specify1;       /* "First specify byte" */
        uint8_t specify2;       /* "Second specify byte" */
        uint8_t delay;          /* Delay until motor turn off */
-       uint8_t sectors;        /* Sectors/track */
-
        uint8_t bps;            /* Bytes/sector (02h = 512) */
+
+       uint8_t sectors;        /* Sectors/track */
        uint8_t isgap;          /* Length of intersector gap */
        uint8_t dlen;           /* Data length (0FFh) */
        uint8_t fgap;           /* Formatting gap */