VirtualBox

Changeset 78571 in vbox for trunk/src/VBox/Devices/PC/BIOS


Ignore:
Timestamp:
May 17, 2019 2:24:30 PM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
130625
Message:

DevACPI: First check input, then take a lock.

Location:
trunk/src/VBox/Devices/PC/BIOS
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/BIOS/ata.c

    r78423 r78571  
    638638                    fdpt = ebda_seg :> &EbdaData->fdpt1;
    639639
    640 #if 0
     640#if 1
    641641                /* Place the FDPT outside of conventional memory. Needed for
    642642                 * 286 XENIX 2.1.3/2.2.1 because it completely wipes out
  • trunk/src/VBox/Devices/PC/BIOS/disk.c

    r76553 r78571  
    162162            dpt->heads     = bios_dsk->devices[device].pchs.heads;
    163163            dpt->spt       = bios_dsk->devices[device].pchs.spt;
     164#if 1
    164165            lba = bios_dsk->devices[device].sectors;
     166#else
     167            // Makes PC DOS 7.1 FDISK32 happy
     168            lba = (uint32_t)dpt->cylinders * dpt->heads * dpt->spt;
     169#endif
    165170            dpt->sector_count1 = lba;
    166171            dpt->sector_count2 = lba >> 32;
     
    395400        break;
    396401
     402#ifdef VBOX_WITH_SCSIz
     403    case 0x06: /* identify SCSI devices */
     404        if (VBOX_IS_SCSI_DEVICE(device)|| 1) {
     405            BX_INFO("%s: AX=%04x BX=%04x CX=%04x DX=%04x ES=%04x\n", __func__, AX, BX, CX, DX, ES);
     406            BX_INFO("%s: function %02xh detected SCSI drive\n", __func__, GET_AH());
     407            SET_BH(0);
     408            SET_BL(0);
     409            SET_AL(0x80);
     410            goto int13_success;
     411        }
     412        BX_INFO("%s no SCSI drives, returns fail\n", __func__);
     413        goto int13_fail;
     414        break;
     415#endif
    397416    case 0x08: /* read disk drive parameters */
    398417
    399418        /* Get the logical geometry from internal table. */
     419#if 0
     420        /* Windows 3.1 FastDisk (wdctrl) insists on this */
     421        nlc   = bios_dsk->devices[device].lchs.cylinders - 1;
     422#else
    400423        nlc   = bios_dsk->devices[device].lchs.cylinders;
     424#endif
    401425        nlh   = bios_dsk->devices[device].lchs.heads;
    402426        nlspt = bios_dsk->devices[device].lchs.spt;
  • trunk/src/VBox/Devices/PC/BIOS/makefile

    r71426 r78571  
    4747
    4848vbxbios.rom : vbxbios.bin
     49!if $(CPU) > 286
    4950        biossums $< $@
     51!else
     52        cp $< $@
     53!endif
    5054
    5155vbxbios.bin : $(OBJS) $(__MAKEFILES__)
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette