diff --git a/bochs/bios/rombios.c b/bochs/bios/rombios.c index 85ba4ad5f..e98535172 100644 --- a/bochs/bios/rombios.c +++ b/bochs/bios/rombios.c @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: rombios.c,v 1.246 2010-02-08 20:56:55 sshwarts Exp $ +// $Id: rombios.c,v 1.247 2010-04-04 19:33:50 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -869,7 +869,7 @@ Bit16u cdrom_boot(); #endif // BX_ELTORITO_BOOT -static char bios_cvs_version_string[] = "$Revision: 1.246 $ $Date: 2010-02-08 20:56:55 $"; +static char bios_cvs_version_string[] = "$Revision: 1.247 $ $Date: 2010-04-04 19:33:50 $"; #define BIOS_COPYRIGHT_STRING "(c) 2002 MandrakeSoft S.A. Written by Kevin Lawton & the Bochs team." @@ -5348,7 +5348,7 @@ int13_harddisk(EHAX, DS, ES, DI, SI, BP, ELDX, BX, DX, CX, AX, IP, CS, FLAGS) nlspt = read_word(ebda_seg, &EbdaData->ata.devices[device].lchs.spt); count = read_byte(ebda_seg, &EbdaData->ata.hdcount); - nlc = nlc - 2; /* 0 based, last sector not used */ + nlc = nlc - 1; /* 0 based */ SET_AL(0); SET_CH(nlc & 0xff); SET_CL(((nlc >> 2) & 0xc0) | (nlspt & 0x3f)); @@ -6705,7 +6705,7 @@ BX_DEBUG_INT13_HD("int13_f08\n"); hd_heads <<= 4; } - max_cylinder = hd_cylinders - 2; /* 0 based */ + max_cylinder = hd_cylinders - 1; /* 0 based */ SET_AL(0); SET_CH(max_cylinder & 0xff); SET_CL(((max_cylinder >> 2) & 0xc0) | (hd_sectors & 0x3f)); diff --git a/bochs/bios/rombios32.c b/bochs/bios/rombios32.c index 07a1132e5..4cfdf5e2f 100644 --- a/bochs/bios/rombios32.c +++ b/bochs/bios/rombios32.c @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: rombios32.c,v 1.68 2010-02-09 21:23:17 sshwarts Exp $ +// $Id: rombios32.c,v 1.69 2010-04-04 19:33:50 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // 32 bit Bochs BIOS init code @@ -2371,7 +2371,7 @@ void rombios32_init(uint32_t *s3_resume_vector, uint8_t *shutdown_flag) pci_bios_init(); - if (bios_table_cur_addr != 0) { + if (bios_table_cur_addr != 0 && i440_pcidev.bus != -1) { mptable_init();