Infer boot order if not specified

This commit is contained in:
Fabian 2023-08-25 17:16:08 -06:00
parent eaae139c6f
commit ab0227dd72
6 changed files with 13 additions and 4 deletions

View file

@ -226,6 +226,7 @@ function load_next()
<td><label for="boot_order">Boot order</label></td>
<td>
<select id="boot_order">
<option value="0">Auto</option>
<option value="213">CD / Floppy / Hard Disk</option>
<option value="123">CD / Hard Disk / Floppy</option>
<option value="231">Floppy / CD / Hard Disk</option>

View file

@ -158,6 +158,7 @@
<td><label for="boot_order">Boot order</label></td>
<td>
<select id="boot_order">
<option value="0">Auto</option>
<option value="213">CD / Floppy / Hard Disk</option>
<option value="123">CD / Hard Disk / Floppy</option>
<option value="231">Floppy / CD / Hard Disk</option>

View file

@ -343,7 +343,6 @@
size: 8 * 1024 * 1024,
async: false,
},
boot_order: 0x132,
name: "MS-DOS",
},
{
@ -605,7 +604,6 @@
fixed_chunk_size: 256 * 1024,
use_parts: !ON_LOCALHOST,
},
boot_order: 0x132,
name: "Windows 2000",
},
{

View file

@ -256,12 +256,17 @@ V86Starter.prototype.continue_init = async function(emulator, options)
"cdrom": undefined,
};
const boot_order =
options["boot_order"] ? options["boot_order"] :
options["fda"] ? BOOT_ORDER_FD_FIRST :
options["hda"] ? BOOT_ORDER_HD_FIRST : BOOT_ORDER_CD_FIRST;
settings.acpi = options["acpi"];
settings.load_devices = true;
settings.log_level = options["log_level"];
settings.memory_size = options["memory_size"] || 64 * 1024 * 1024;
settings.vga_memory_size = options["vga_memory_size"] || 8 * 1024 * 1024;
settings.boot_order = options["boot_order"] || 0x213;
settings.boot_order = boot_order;
settings.fastboot = options["fastboot"] || false;
settings.fda = undefined;
settings.fdb = undefined;

View file

@ -1111,7 +1111,7 @@ CPU.prototype.load_multiboot = function(buffer)
CPU.prototype.fill_cmos = function(rtc, settings)
{
var boot_order = settings.boot_order || 0x213;
var boot_order = settings.boot_order || BOOT_ORDER_CD_FIRST;
// Used by seabios to determine the boot order
// Nibble

View file

@ -40,6 +40,10 @@
/** @const */ var CMOS_MEM_HIGHMEM_HIGH = 0x5d;
/** @const */ var CMOS_BIOS_SMP_COUNT = 0x5f;
// see CPU.prototype.fill_cmos
const BOOT_ORDER_CD_FIRST = 0x123;
const BOOT_ORDER_HD_FIRST = 0x312;
const BOOT_ORDER_FD_FIRST = 0x321;
/**
* RTC (real time clock) and CMOS