v86 0.5.301 → 0.5.303
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Readme.md +2 -2
- package/build/libv86-debug.js +56 -50
- package/build/libv86-debug.mjs +56 -50
- package/build/libv86.js +233 -233
- package/build/libv86.mjs +216 -216
- package/build/v86-debug.wasm +0 -0
- package/build/v86-fallback.wasm +0 -0
- package/build/v86.wasm +0 -0
- package/package.json +1 -1
package/Readme.md
CHANGED
|
@@ -127,8 +127,8 @@ for a full setup on Debian or
|
|
|
127
127
|
- ROM and disk images are loaded via XHR, so if you want to try out `index.html`
|
|
128
128
|
locally, make sure to serve it from a local webserver. You can use `make run`
|
|
129
129
|
to serve the files using Python's http module.
|
|
130
|
-
- If you only want to embed v86 in a webpage you can use libv86.js
|
|
131
|
-
check out the [examples](examples/). You can download it from the release section.
|
|
130
|
+
- If you only want to embed v86 in a webpage you can use `libv86.js`. For usage,
|
|
131
|
+
check out the [examples](examples/). You can download it from the [release section](https://github.com/copy/v86/releases).
|
|
132
132
|
|
|
133
133
|
### Alternatively, to build using Docker
|
|
134
134
|
|
package/build/libv86-debug.js
CHANGED
|
@@ -11209,48 +11209,53 @@ $CPU$$module$src$cpu$$.prototype.load_multiboot_option_rom = function($buffer$js
|
|
|
11209
11209
|
}, function() {
|
|
11210
11210
|
return 0;
|
|
11211
11211
|
}, function() {
|
|
11212
|
-
var $i$jscomp$98_multiboot_data$$ = 31860
|
|
11213
|
-
|
|
11212
|
+
var $i$jscomp$98_multiboot_data$$ = 31860;
|
|
11213
|
+
let $info$jscomp$1$$ = 0;
|
|
11214
|
+
$cmdline$jscomp$1$$ && ($info$jscomp$1$$ |= 4, $cpu$jscomp$26$$.write32(31760, $i$jscomp$98_multiboot_data$$), $cmdline$jscomp$1$$ += "\x00", $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ = (new TextEncoder).encode($cmdline$jscomp$1$$), $cpu$jscomp$26$$.write_blob($cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$, $i$jscomp$98_multiboot_data$$), $i$jscomp$98_multiboot_data$$ += $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$.length);
|
|
11214
11215
|
if ($flags$jscomp$16$$ & 2) {
|
|
11215
|
-
$
|
|
11216
|
-
$
|
|
11216
|
+
$info$jscomp$1$$ |= 64;
|
|
11217
|
+
$cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ = 0;
|
|
11217
11218
|
$cpu$jscomp$26$$.write32(31788, 0);
|
|
11218
11219
|
$cpu$jscomp$26$$.write32(31792, $i$jscomp$98_multiboot_data$$);
|
|
11219
|
-
|
|
11220
|
-
|
|
11220
|
+
$blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$ = 0;
|
|
11221
|
+
var $view$jscomp$inline_408_was_memory$$ = !1;
|
|
11221
11222
|
for (let $addr$jscomp$48$$ = 0; 4294967296 > $addr$jscomp$48$$; $addr$jscomp$48$$ += 131072) {
|
|
11222
|
-
$
|
|
11223
|
-
16, 0), $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 20, 1), $i$jscomp$98_multiboot_data$$ += 24, $
|
|
11223
|
+
$view$jscomp$inline_408_was_memory$$ && void 0 !== $cpu$jscomp$26$$.memory_map_read8[$addr$jscomp$48$$ >>> 17] ? ($cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$, 20), $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 4, $blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$), $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 8, 0), $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 12, $addr$jscomp$48$$ - $blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$),
|
|
11224
|
+
$cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 16, 0), $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 20, 1), $i$jscomp$98_multiboot_data$$ += 24, $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ += 24, $view$jscomp$inline_408_was_memory$$ = !1) : $view$jscomp$inline_408_was_memory$$ || void 0 !== $cpu$jscomp$26$$.memory_map_read8[$addr$jscomp$48$$ >>> 17] || ($blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$ =
|
|
11225
|
+
$addr$jscomp$48$$, $view$jscomp$inline_408_was_memory$$ = !0);
|
|
11224
11226
|
}
|
|
11225
|
-
$dbg_assert$$module$src$log$$(!$
|
|
11226
|
-
$cpu$jscomp$26$$.write32(31788, $
|
|
11227
|
+
$dbg_assert$$module$src$log$$(!$view$jscomp$inline_408_was_memory$$, "top of 4GB shouldn't have memory");
|
|
11228
|
+
$cpu$jscomp$26$$.write32(31788, $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$);
|
|
11227
11229
|
}
|
|
11228
|
-
$
|
|
11229
|
-
var $cmdline_utf8_length$jscomp$33_multiboot_mmap_count_top_of_load$$ = $entry_addr_entrypoint_info$jscomp$1_program_headers$jscomp$inline_411$$ = 0;
|
|
11230
|
+
var $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ = 0, $blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$ = 0;
|
|
11230
11231
|
if ($flags$jscomp$16$$ & 65536) {
|
|
11231
11232
|
$dbg_log$$module$src$log$$("Multiboot specifies its own address table", 2);
|
|
11232
|
-
|
|
11233
|
-
|
|
11233
|
+
$blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$ = $buf32$$[$offset$jscomp$81$$ + 12 >> 2];
|
|
11234
|
+
$cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ = $buf32$$[$offset$jscomp$81$$ + 16 >> 2];
|
|
11234
11235
|
var $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ = $buf32$$[$offset$jscomp$81$$ + 20 >> 2];
|
|
11235
11236
|
var $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$ = $buf32$$[$offset$jscomp$81$$ + 24 >> 2];
|
|
11236
|
-
$
|
|
11237
|
-
$dbg_log$$module$src$log$$("header=" + $h$$module$src$lib$$($blob$jscomp$
|
|
11238
|
-
8) + " entry=" + $h$$module$src$lib$$($
|
|
11239
|
-
$dbg_assert$$module$src$log$$($
|
|
11240
|
-
$blob$jscomp$
|
|
11241
|
-
0 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$
|
|
11242
|
-
|
|
11243
|
-
|
|
11244
|
-
|
|
11245
|
-
|
|
11237
|
+
var $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$ = $buf32$$[$offset$jscomp$81$$ + 28 >> 2];
|
|
11238
|
+
$dbg_log$$module$src$log$$("header=" + $h$$module$src$lib$$($blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$, 8) + " load=" + $h$$module$src$lib$$($cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$, 8) + " load_end=" + $h$$module$src$lib$$($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$, 8) + " bss_end=" + $h$$module$src$lib$$($JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$,
|
|
11239
|
+
8) + " entry=" + $h$$module$src$lib$$($JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$, 8));
|
|
11240
|
+
$dbg_assert$$module$src$log$$($cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ <= $blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$);
|
|
11241
|
+
$blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$ = $offset$jscomp$81$$ - ($blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$ - $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$);
|
|
11242
|
+
if (0 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$) {
|
|
11243
|
+
var $key$jscomp$inline_413_length$jscomp$33_sections_headers$jscomp$inline_412$$ = void 0;
|
|
11244
|
+
} else {
|
|
11245
|
+
$dbg_assert$$module$src$log$$($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ >= $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$), $key$jscomp$inline_413_length$jscomp$33_sections_headers$jscomp$inline_412$$ = $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ - $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$;
|
|
11246
|
+
}
|
|
11247
|
+
$blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$ = new Uint8Array($buffer$jscomp$62$$, $blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$, $key$jscomp$inline_413_length$jscomp$33_sections_headers$jscomp$inline_412$$);
|
|
11248
|
+
$cpu$jscomp$26$$.write_blob($blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$, $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$);
|
|
11249
|
+
$cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ = $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$ | 0;
|
|
11250
|
+
$blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$ = Math.max($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$, $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$);
|
|
11246
11251
|
} else {
|
|
11247
11252
|
if (1179403647 === $buf32$$[0]) {
|
|
11248
11253
|
$dbg_log$$module$src$log$$("Multiboot image is in elf format", 2);
|
|
11249
|
-
$
|
|
11250
|
-
const [$header$jscomp$inline_409$$, $offset$jscomp$inline_410$$] = $read_struct$$module$src$elf$$($
|
|
11254
|
+
$view$jscomp$inline_408_was_memory$$ = new DataView($buffer$jscomp$62$$);
|
|
11255
|
+
const [$header$jscomp$inline_409$$, $offset$jscomp$inline_410$$] = $read_struct$$module$src$elf$$($view$jscomp$inline_408_was_memory$$, $Header$$module$src$elf$$);
|
|
11251
11256
|
console.assert(52 === $offset$jscomp$inline_410$$);
|
|
11252
|
-
for ($
|
|
11253
|
-
$dbg_log$$module$src$log$$($
|
|
11257
|
+
for ($key$jscomp$inline_413_length$jscomp$33_sections_headers$jscomp$inline_412$$ of Object.keys($header$jscomp$inline_409$$)) {
|
|
11258
|
+
$dbg_log$$module$src$log$$($key$jscomp$inline_413_length$jscomp$33_sections_headers$jscomp$inline_412$$ + ": 0x" + ($header$jscomp$inline_409$$[$key$jscomp$inline_413_length$jscomp$33_sections_headers$jscomp$inline_412$$].toString(16) >>> 0));
|
|
11254
11259
|
}
|
|
11255
11260
|
console.assert(1179403647 === $header$jscomp$inline_409$$.magic, "Bad magic");
|
|
11256
11261
|
console.assert(1 === $header$jscomp$inline_409$$.class, "Unimplemented: 64 bit elf");
|
|
@@ -11261,41 +11266,42 @@ $CPU$$module$src$cpu$$.prototype.load_multiboot_option_rom = function($buffer$js
|
|
|
11261
11266
|
console.assert(52 === $header$jscomp$inline_409$$.ehsize, "Bad header size");
|
|
11262
11267
|
console.assert(32 === $header$jscomp$inline_409$$.phentsize, "Bad program header size");
|
|
11263
11268
|
console.assert(40 === $header$jscomp$inline_409$$.shentsize, "Bad section header size");
|
|
11264
|
-
[$
|
|
11265
|
-
[$
|
|
11269
|
+
[$cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$] = $read_structs$$module$src$elf$$(new DataView($view$jscomp$inline_408_was_memory$$.buffer, $view$jscomp$inline_408_was_memory$$.byteOffset + $header$jscomp$inline_409$$.phoff, $header$jscomp$inline_409$$.phentsize * $header$jscomp$inline_409$$.phnum), $ProgramHeader$$module$src$elf$$, $header$jscomp$inline_409$$.phnum);
|
|
11270
|
+
[$key$jscomp$inline_413_length$jscomp$33_sections_headers$jscomp$inline_412$$] = $read_structs$$module$src$elf$$(new DataView($view$jscomp$inline_408_was_memory$$.buffer, $view$jscomp$inline_408_was_memory$$.byteOffset + $header$jscomp$inline_409$$.shoff, $header$jscomp$inline_409$$.shentsize * $header$jscomp$inline_409$$.shnum), $SectionHeader$$module$src$elf$$, $header$jscomp$inline_409$$.shnum);
|
|
11266
11271
|
if ($LOG_LEVEL$$module$src$log$$) {
|
|
11267
|
-
console.log("%d program headers:", $
|
|
11268
|
-
for ($JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$ of $
|
|
11272
|
+
console.log("%d program headers:", $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$.length);
|
|
11273
|
+
for ($JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$ of $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$) {
|
|
11269
11274
|
console.log("type=%s offset=%s vaddr=%s paddr=%s filesz=%s memsz=%s flags=%s align=%s", $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.type.toString(16), $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.offset.toString(16), $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.vaddr.toString(16), $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.paddr.toString(16),
|
|
11270
11275
|
$JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.filesz.toString(16), $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.memsz.toString(16), $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.flags.toString(16), $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.align.toString(16));
|
|
11271
11276
|
}
|
|
11272
|
-
console.log("%d section headers:", $
|
|
11273
|
-
for ($JSCompiler_object_inline_program_headers_484_blob$jscomp$
|
|
11274
|
-
console.log("name=%s type=%s flags=%s addr=%s offset=%s size=%s link=%s info=%s addralign=%s entsize=%s", $JSCompiler_object_inline_program_headers_484_blob$jscomp$
|
|
11275
|
-
$JSCompiler_object_inline_program_headers_484_blob$jscomp$
|
|
11276
|
-
$JSCompiler_object_inline_program_headers_484_blob$jscomp$
|
|
11277
|
+
console.log("%d section headers:", $key$jscomp$inline_413_length$jscomp$33_sections_headers$jscomp$inline_412$$.length);
|
|
11278
|
+
for ($JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$ of $key$jscomp$inline_413_length$jscomp$33_sections_headers$jscomp$inline_412$$) {
|
|
11279
|
+
console.log("name=%s type=%s flags=%s addr=%s offset=%s size=%s link=%s info=%s addralign=%s entsize=%s", $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.name.toString(16), $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.type.toString(16), $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.flags.toString(16), $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.addr.toString(16),
|
|
11280
|
+
$JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.offset.toString(16), $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.size.toString(16), $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.link.toString(16), $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.info.toString(16), $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.addralign.toString(16),
|
|
11281
|
+
$JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.entsize.toString(16));
|
|
11277
11282
|
}
|
|
11278
11283
|
}
|
|
11279
11284
|
$JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$ = $header$jscomp$inline_409$$;
|
|
11280
|
-
$JSCompiler_object_inline_program_headers_484_blob$jscomp$
|
|
11281
|
-
$
|
|
11282
|
-
for ($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ of $JSCompiler_object_inline_program_headers_484_blob$jscomp$
|
|
11285
|
+
$JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$ = $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$;
|
|
11286
|
+
$cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ = $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.entry;
|
|
11287
|
+
for ($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ of $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$) {
|
|
11283
11288
|
0 !== $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type && (1 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type ? ($dbg_assert$$module$src$log$$($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.filesz <= $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.memsz), $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.memsz < $cpu$jscomp$26$$.memory_size[0] ? ($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.filesz &&
|
|
11284
|
-
($JSCompiler_object_inline_program_headers_484_blob$jscomp$
|
|
11285
|
-
Math.max($
|
|
11286
|
-
$JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.entry && $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.vaddr <= $
|
|
11287
|
-
$
|
|
11288
|
-
|
|
11289
|
-
1685382483 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type ? $dbg_log$$module$src$log$$("skip load type " + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type + " " + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr + " to " + ($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr +
|
|
11290
|
-
$h$$module$src$lib$$($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type)));
|
|
11289
|
+
($JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$ = new Uint8Array($buffer$jscomp$62$$, $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.offset, $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.filesz), $cpu$jscomp$26$$.write_blob($JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$, $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr)), $blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$ =
|
|
11290
|
+
Math.max($blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$, $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.memsz), $dbg_log$$module$src$log$$("prg load " + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr + " to " + ($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.memsz), 2), $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ ===
|
|
11291
|
+
$JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.entry && $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.vaddr <= $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ && $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.vaddr + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.memsz > $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ &&
|
|
11292
|
+
($cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ = $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ - $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.vaddr + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr)) : $dbg_log$$module$src$log$$("Warning: Skipped loading section, paddr=" + $h$$module$src$lib$$($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr) +
|
|
11293
|
+
" memsz=" + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.memsz, 2)) : 2 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type || 3 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type || 4 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type || 6 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type || 7 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type || 1685382480 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type ||
|
|
11294
|
+
1685382481 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type || 1685382482 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type || 1685382483 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type ? $dbg_log$$module$src$log$$("skip load type " + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type + " " + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr + " to " + ($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr +
|
|
11295
|
+
$load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.memsz), 2) : $dbg_assert$$module$src$log$$(!1, "unimplemented elf section type: " + $h$$module$src$lib$$($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type)));
|
|
11291
11296
|
}
|
|
11292
11297
|
} else {
|
|
11293
11298
|
$dbg_assert$$module$src$log$$(!1, "Not a bootable multiboot format");
|
|
11294
11299
|
}
|
|
11295
11300
|
}
|
|
11296
|
-
$initrd$jscomp$2$$ && ($cpu$jscomp$26$$.write32(31764, 1), $cpu$jscomp$26$$.write32(31768, $i$jscomp$98_multiboot_data$$), $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ = $
|
|
11297
|
-
$load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$), $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$ = $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ + $initrd$jscomp$2$$.byteLength, $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$, $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$), $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 4, $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$),
|
|
11301
|
+
$initrd$jscomp$2$$ && ($info$jscomp$1$$ |= 8, $cpu$jscomp$26$$.write32(31764, 1), $cpu$jscomp$26$$.write32(31768, $i$jscomp$98_multiboot_data$$), $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ = $blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$, 0 !== ($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ & 4095) && ($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ = ($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ & -4096) + 4096),
|
|
11302
|
+
$dbg_log$$module$src$log$$("ramdisk address " + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$), $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$ = $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ + $initrd$jscomp$2$$.byteLength, $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$, $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$), $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 4, $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$),
|
|
11298
11303
|
$cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 8, 0), $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 12, 0), $dbg_assert$$module$src$log$$($JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$ < $cpu$jscomp$26$$.memory_size[0]), $cpu$jscomp$26$$.write_blob(new Uint8Array($initrd$jscomp$2$$), $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$));
|
|
11304
|
+
$cpu$jscomp$26$$.write32(31744, $info$jscomp$1$$);
|
|
11299
11305
|
$cpu$jscomp$26$$.reg32[3] = 31744;
|
|
11300
11306
|
$cpu$jscomp$26$$.cr[0] = 1;
|
|
11301
11307
|
$cpu$jscomp$26$$.protected_mode[0] = 1;
|
|
@@ -11305,7 +11311,7 @@ $CPU$$module$src$cpu$$.prototype.load_multiboot_option_rom = function($buffer$js
|
|
|
11305
11311
|
for ($i$jscomp$98_multiboot_data$$ = 0; 6 > $i$jscomp$98_multiboot_data$$; $i$jscomp$98_multiboot_data$$++) {
|
|
11306
11312
|
$cpu$jscomp$26$$.segment_is_null[$i$jscomp$98_multiboot_data$$] = 0, $cpu$jscomp$26$$.segment_offsets[$i$jscomp$98_multiboot_data$$] = 0, $cpu$jscomp$26$$.segment_limits[$i$jscomp$98_multiboot_data$$] = 4294967295, $cpu$jscomp$26$$.sreg[$i$jscomp$98_multiboot_data$$] = 45058;
|
|
11307
11313
|
}
|
|
11308
|
-
$cpu$jscomp$26$$.instruction_pointer[0] = $cpu$jscomp$26$$.get_seg_cs() + $
|
|
11314
|
+
$cpu$jscomp$26$$.instruction_pointer[0] = $cpu$jscomp$26$$.get_seg_cs() + $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ | 0;
|
|
11309
11315
|
$cpu$jscomp$26$$.update_state_flags();
|
|
11310
11316
|
$dbg_log$$module$src$log$$("Starting multiboot kernel at:", 2);
|
|
11311
11317
|
$cpu$jscomp$26$$.dump_state();
|
package/build/libv86-debug.mjs
CHANGED
|
@@ -11208,48 +11208,53 @@ $CPU$$module$src$cpu$$.prototype.load_multiboot_option_rom = function($buffer$js
|
|
|
11208
11208
|
}, function() {
|
|
11209
11209
|
return 0;
|
|
11210
11210
|
}, function() {
|
|
11211
|
-
var $i$jscomp$98_multiboot_data$$ = 31860
|
|
11212
|
-
|
|
11211
|
+
var $i$jscomp$98_multiboot_data$$ = 31860;
|
|
11212
|
+
let $info$jscomp$1$$ = 0;
|
|
11213
|
+
$cmdline$jscomp$1$$ && ($info$jscomp$1$$ |= 4, $cpu$jscomp$26$$.write32(31760, $i$jscomp$98_multiboot_data$$), $cmdline$jscomp$1$$ += "\x00", $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ = (new TextEncoder).encode($cmdline$jscomp$1$$), $cpu$jscomp$26$$.write_blob($cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$, $i$jscomp$98_multiboot_data$$), $i$jscomp$98_multiboot_data$$ += $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$.length);
|
|
11213
11214
|
if ($flags$jscomp$16$$ & 2) {
|
|
11214
|
-
$
|
|
11215
|
-
$
|
|
11215
|
+
$info$jscomp$1$$ |= 64;
|
|
11216
|
+
$cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ = 0;
|
|
11216
11217
|
$cpu$jscomp$26$$.write32(31788, 0);
|
|
11217
11218
|
$cpu$jscomp$26$$.write32(31792, $i$jscomp$98_multiboot_data$$);
|
|
11218
|
-
|
|
11219
|
-
|
|
11219
|
+
$blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$ = 0;
|
|
11220
|
+
var $view$jscomp$inline_408_was_memory$$ = !1;
|
|
11220
11221
|
for (let $addr$jscomp$48$$ = 0; 4294967296 > $addr$jscomp$48$$; $addr$jscomp$48$$ += 131072) {
|
|
11221
|
-
$
|
|
11222
|
-
16, 0), $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 20, 1), $i$jscomp$98_multiboot_data$$ += 24, $
|
|
11222
|
+
$view$jscomp$inline_408_was_memory$$ && void 0 !== $cpu$jscomp$26$$.memory_map_read8[$addr$jscomp$48$$ >>> 17] ? ($cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$, 20), $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 4, $blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$), $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 8, 0), $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 12, $addr$jscomp$48$$ - $blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$),
|
|
11223
|
+
$cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 16, 0), $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 20, 1), $i$jscomp$98_multiboot_data$$ += 24, $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ += 24, $view$jscomp$inline_408_was_memory$$ = !1) : $view$jscomp$inline_408_was_memory$$ || void 0 !== $cpu$jscomp$26$$.memory_map_read8[$addr$jscomp$48$$ >>> 17] || ($blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$ =
|
|
11224
|
+
$addr$jscomp$48$$, $view$jscomp$inline_408_was_memory$$ = !0);
|
|
11223
11225
|
}
|
|
11224
|
-
$dbg_assert$$module$src$log$$(!$
|
|
11225
|
-
$cpu$jscomp$26$$.write32(31788, $
|
|
11226
|
+
$dbg_assert$$module$src$log$$(!$view$jscomp$inline_408_was_memory$$, "top of 4GB shouldn't have memory");
|
|
11227
|
+
$cpu$jscomp$26$$.write32(31788, $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$);
|
|
11226
11228
|
}
|
|
11227
|
-
$
|
|
11228
|
-
var $cmdline_utf8_length$jscomp$33_multiboot_mmap_count_top_of_load$$ = $entry_addr_entrypoint_info$jscomp$1_program_headers$jscomp$inline_411$$ = 0;
|
|
11229
|
+
var $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ = 0, $blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$ = 0;
|
|
11229
11230
|
if ($flags$jscomp$16$$ & 65536) {
|
|
11230
11231
|
$dbg_log$$module$src$log$$("Multiboot specifies its own address table", 2);
|
|
11231
|
-
|
|
11232
|
-
|
|
11232
|
+
$blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$ = $buf32$$[$offset$jscomp$81$$ + 12 >> 2];
|
|
11233
|
+
$cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ = $buf32$$[$offset$jscomp$81$$ + 16 >> 2];
|
|
11233
11234
|
var $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ = $buf32$$[$offset$jscomp$81$$ + 20 >> 2];
|
|
11234
11235
|
var $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$ = $buf32$$[$offset$jscomp$81$$ + 24 >> 2];
|
|
11235
|
-
$
|
|
11236
|
-
$dbg_log$$module$src$log$$("header=" + $h$$module$src$lib$$($blob$jscomp$
|
|
11237
|
-
8) + " entry=" + $h$$module$src$lib$$($
|
|
11238
|
-
$dbg_assert$$module$src$log$$($
|
|
11239
|
-
$blob$jscomp$
|
|
11240
|
-
0 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$
|
|
11241
|
-
|
|
11242
|
-
|
|
11243
|
-
|
|
11244
|
-
|
|
11236
|
+
var $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$ = $buf32$$[$offset$jscomp$81$$ + 28 >> 2];
|
|
11237
|
+
$dbg_log$$module$src$log$$("header=" + $h$$module$src$lib$$($blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$, 8) + " load=" + $h$$module$src$lib$$($cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$, 8) + " load_end=" + $h$$module$src$lib$$($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$, 8) + " bss_end=" + $h$$module$src$lib$$($JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$,
|
|
11238
|
+
8) + " entry=" + $h$$module$src$lib$$($JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$, 8));
|
|
11239
|
+
$dbg_assert$$module$src$log$$($cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ <= $blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$);
|
|
11240
|
+
$blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$ = $offset$jscomp$81$$ - ($blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$ - $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$);
|
|
11241
|
+
if (0 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$) {
|
|
11242
|
+
var $key$jscomp$inline_413_length$jscomp$33_sections_headers$jscomp$inline_412$$ = void 0;
|
|
11243
|
+
} else {
|
|
11244
|
+
$dbg_assert$$module$src$log$$($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ >= $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$), $key$jscomp$inline_413_length$jscomp$33_sections_headers$jscomp$inline_412$$ = $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ - $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$;
|
|
11245
|
+
}
|
|
11246
|
+
$blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$ = new Uint8Array($buffer$jscomp$62$$, $blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$, $key$jscomp$inline_413_length$jscomp$33_sections_headers$jscomp$inline_412$$);
|
|
11247
|
+
$cpu$jscomp$26$$.write_blob($blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$, $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$);
|
|
11248
|
+
$cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ = $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$ | 0;
|
|
11249
|
+
$blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$ = Math.max($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$, $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$);
|
|
11245
11250
|
} else {
|
|
11246
11251
|
if (1179403647 === $buf32$$[0]) {
|
|
11247
11252
|
$dbg_log$$module$src$log$$("Multiboot image is in elf format", 2);
|
|
11248
|
-
$
|
|
11249
|
-
const [$header$jscomp$inline_409$$, $offset$jscomp$inline_410$$] = $read_struct$$module$src$elf$$($
|
|
11253
|
+
$view$jscomp$inline_408_was_memory$$ = new DataView($buffer$jscomp$62$$);
|
|
11254
|
+
const [$header$jscomp$inline_409$$, $offset$jscomp$inline_410$$] = $read_struct$$module$src$elf$$($view$jscomp$inline_408_was_memory$$, $Header$$module$src$elf$$);
|
|
11250
11255
|
console.assert(52 === $offset$jscomp$inline_410$$);
|
|
11251
|
-
for ($
|
|
11252
|
-
$dbg_log$$module$src$log$$($
|
|
11256
|
+
for ($key$jscomp$inline_413_length$jscomp$33_sections_headers$jscomp$inline_412$$ of Object.keys($header$jscomp$inline_409$$)) {
|
|
11257
|
+
$dbg_log$$module$src$log$$($key$jscomp$inline_413_length$jscomp$33_sections_headers$jscomp$inline_412$$ + ": 0x" + ($header$jscomp$inline_409$$[$key$jscomp$inline_413_length$jscomp$33_sections_headers$jscomp$inline_412$$].toString(16) >>> 0));
|
|
11253
11258
|
}
|
|
11254
11259
|
console.assert(1179403647 === $header$jscomp$inline_409$$.magic, "Bad magic");
|
|
11255
11260
|
console.assert(1 === $header$jscomp$inline_409$$.class, "Unimplemented: 64 bit elf");
|
|
@@ -11260,41 +11265,42 @@ $CPU$$module$src$cpu$$.prototype.load_multiboot_option_rom = function($buffer$js
|
|
|
11260
11265
|
console.assert(52 === $header$jscomp$inline_409$$.ehsize, "Bad header size");
|
|
11261
11266
|
console.assert(32 === $header$jscomp$inline_409$$.phentsize, "Bad program header size");
|
|
11262
11267
|
console.assert(40 === $header$jscomp$inline_409$$.shentsize, "Bad section header size");
|
|
11263
|
-
[$
|
|
11264
|
-
[$
|
|
11268
|
+
[$cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$] = $read_structs$$module$src$elf$$(new DataView($view$jscomp$inline_408_was_memory$$.buffer, $view$jscomp$inline_408_was_memory$$.byteOffset + $header$jscomp$inline_409$$.phoff, $header$jscomp$inline_409$$.phentsize * $header$jscomp$inline_409$$.phnum), $ProgramHeader$$module$src$elf$$, $header$jscomp$inline_409$$.phnum);
|
|
11269
|
+
[$key$jscomp$inline_413_length$jscomp$33_sections_headers$jscomp$inline_412$$] = $read_structs$$module$src$elf$$(new DataView($view$jscomp$inline_408_was_memory$$.buffer, $view$jscomp$inline_408_was_memory$$.byteOffset + $header$jscomp$inline_409$$.shoff, $header$jscomp$inline_409$$.shentsize * $header$jscomp$inline_409$$.shnum), $SectionHeader$$module$src$elf$$, $header$jscomp$inline_409$$.shnum);
|
|
11265
11270
|
if ($LOG_LEVEL$$module$src$log$$) {
|
|
11266
|
-
console.log("%d program headers:", $
|
|
11267
|
-
for ($JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$ of $
|
|
11271
|
+
console.log("%d program headers:", $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$.length);
|
|
11272
|
+
for ($JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$ of $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$) {
|
|
11268
11273
|
console.log("type=%s offset=%s vaddr=%s paddr=%s filesz=%s memsz=%s flags=%s align=%s", $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.type.toString(16), $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.offset.toString(16), $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.vaddr.toString(16), $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.paddr.toString(16),
|
|
11269
11274
|
$JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.filesz.toString(16), $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.memsz.toString(16), $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.flags.toString(16), $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.align.toString(16));
|
|
11270
11275
|
}
|
|
11271
|
-
console.log("%d section headers:", $
|
|
11272
|
-
for ($JSCompiler_object_inline_program_headers_484_blob$jscomp$
|
|
11273
|
-
console.log("name=%s type=%s flags=%s addr=%s offset=%s size=%s link=%s info=%s addralign=%s entsize=%s", $JSCompiler_object_inline_program_headers_484_blob$jscomp$
|
|
11274
|
-
$JSCompiler_object_inline_program_headers_484_blob$jscomp$
|
|
11275
|
-
$JSCompiler_object_inline_program_headers_484_blob$jscomp$
|
|
11276
|
+
console.log("%d section headers:", $key$jscomp$inline_413_length$jscomp$33_sections_headers$jscomp$inline_412$$.length);
|
|
11277
|
+
for ($JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$ of $key$jscomp$inline_413_length$jscomp$33_sections_headers$jscomp$inline_412$$) {
|
|
11278
|
+
console.log("name=%s type=%s flags=%s addr=%s offset=%s size=%s link=%s info=%s addralign=%s entsize=%s", $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.name.toString(16), $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.type.toString(16), $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.flags.toString(16), $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.addr.toString(16),
|
|
11279
|
+
$JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.offset.toString(16), $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.size.toString(16), $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.link.toString(16), $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.info.toString(16), $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.addralign.toString(16),
|
|
11280
|
+
$JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$.entsize.toString(16));
|
|
11276
11281
|
}
|
|
11277
11282
|
}
|
|
11278
11283
|
$JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$ = $header$jscomp$inline_409$$;
|
|
11279
|
-
$JSCompiler_object_inline_program_headers_484_blob$jscomp$
|
|
11280
|
-
$
|
|
11281
|
-
for ($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ of $JSCompiler_object_inline_program_headers_484_blob$jscomp$
|
|
11284
|
+
$JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$ = $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$;
|
|
11285
|
+
$cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ = $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.entry;
|
|
11286
|
+
for ($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ of $JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$) {
|
|
11282
11287
|
0 !== $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type && (1 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type ? ($dbg_assert$$module$src$log$$($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.filesz <= $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.memsz), $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.memsz < $cpu$jscomp$26$$.memory_size[0] ? ($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.filesz &&
|
|
11283
|
-
($JSCompiler_object_inline_program_headers_484_blob$jscomp$
|
|
11284
|
-
Math.max($
|
|
11285
|
-
$JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.entry && $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.vaddr <= $
|
|
11286
|
-
$
|
|
11287
|
-
|
|
11288
|
-
1685382483 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type ? $dbg_log$$module$src$log$$("skip load type " + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type + " " + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr + " to " + ($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr +
|
|
11289
|
-
$h$$module$src$lib$$($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type)));
|
|
11288
|
+
($JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$ = new Uint8Array($buffer$jscomp$62$$, $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.offset, $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.filesz), $cpu$jscomp$26$$.write_blob($JSCompiler_object_inline_program_headers_484_blob$jscomp$18_entry_addr_section$jscomp$inline_415$$, $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr)), $blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$ =
|
|
11289
|
+
Math.max($blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$, $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.memsz), $dbg_log$$module$src$log$$("prg load " + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr + " to " + ($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.memsz), 2), $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ ===
|
|
11290
|
+
$JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$.entry && $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.vaddr <= $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ && $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.vaddr + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.memsz > $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ &&
|
|
11291
|
+
($cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ = $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ - $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.vaddr + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr)) : $dbg_log$$module$src$log$$("Warning: Skipped loading section, paddr=" + $h$$module$src$lib$$($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr) +
|
|
11292
|
+
" memsz=" + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.memsz, 2)) : 2 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type || 3 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type || 4 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type || 6 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type || 7 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type || 1685382480 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type ||
|
|
11293
|
+
1685382481 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type || 1685382482 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type || 1685382483 === $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type ? $dbg_log$$module$src$log$$("skip load type " + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type + " " + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr + " to " + ($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.paddr +
|
|
11294
|
+
$load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.memsz), 2) : $dbg_assert$$module$src$log$$(!1, "unimplemented elf section type: " + $h$$module$src$lib$$($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$.type)));
|
|
11290
11295
|
}
|
|
11291
11296
|
} else {
|
|
11292
11297
|
$dbg_assert$$module$src$log$$(!1, "Not a bootable multiboot format");
|
|
11293
11298
|
}
|
|
11294
11299
|
}
|
|
11295
|
-
$initrd$jscomp$2$$ && ($cpu$jscomp$26$$.write32(31764, 1), $cpu$jscomp$26$$.write32(31768, $i$jscomp$98_multiboot_data$$), $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ = $
|
|
11296
|
-
$load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$), $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$ = $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ + $initrd$jscomp$2$$.byteLength, $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$, $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$), $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 4, $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$),
|
|
11300
|
+
$initrd$jscomp$2$$ && ($info$jscomp$1$$ |= 8, $cpu$jscomp$26$$.write32(31764, 1), $cpu$jscomp$26$$.write32(31768, $i$jscomp$98_multiboot_data$$), $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ = $blob$jscomp$17_file_start_header_addr_start$jscomp$42_top_of_load$$, 0 !== ($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ & 4095) && ($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ = ($load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ & -4096) + 4096),
|
|
11301
|
+
$dbg_log$$module$src$log$$("ramdisk address " + $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$), $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$ = $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$ + $initrd$jscomp$2$$.byteLength, $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$, $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$), $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 4, $JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$),
|
|
11297
11302
|
$cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 8, 0), $cpu$jscomp$26$$.write32($i$jscomp$98_multiboot_data$$ + 12, 0), $dbg_assert$$module$src$log$$($JSCompiler_object_inline_header_483_bss_end_addr_program$jscomp$inline_414_ramdisk_top$$ < $cpu$jscomp$26$$.memory_size[0]), $cpu$jscomp$26$$.write_blob(new Uint8Array($initrd$jscomp$2$$), $load_end_addr_program$jscomp$64_ramdisk_address$jscomp$1$$));
|
|
11303
|
+
$cpu$jscomp$26$$.write32(31744, $info$jscomp$1$$);
|
|
11298
11304
|
$cpu$jscomp$26$$.reg32[3] = 31744;
|
|
11299
11305
|
$cpu$jscomp$26$$.cr[0] = 1;
|
|
11300
11306
|
$cpu$jscomp$26$$.protected_mode[0] = 1;
|
|
@@ -11304,7 +11310,7 @@ $CPU$$module$src$cpu$$.prototype.load_multiboot_option_rom = function($buffer$js
|
|
|
11304
11310
|
for ($i$jscomp$98_multiboot_data$$ = 0; 6 > $i$jscomp$98_multiboot_data$$; $i$jscomp$98_multiboot_data$$++) {
|
|
11305
11311
|
$cpu$jscomp$26$$.segment_is_null[$i$jscomp$98_multiboot_data$$] = 0, $cpu$jscomp$26$$.segment_offsets[$i$jscomp$98_multiboot_data$$] = 0, $cpu$jscomp$26$$.segment_limits[$i$jscomp$98_multiboot_data$$] = 4294967295, $cpu$jscomp$26$$.sreg[$i$jscomp$98_multiboot_data$$] = 45058;
|
|
11306
11312
|
}
|
|
11307
|
-
$cpu$jscomp$26$$.instruction_pointer[0] = $cpu$jscomp$26$$.get_seg_cs() + $
|
|
11313
|
+
$cpu$jscomp$26$$.instruction_pointer[0] = $cpu$jscomp$26$$.get_seg_cs() + $cmdline_utf8_entrypoint_load_addr_multiboot_mmap_count_program_headers$jscomp$inline_411$$ | 0;
|
|
11308
11314
|
$cpu$jscomp$26$$.update_state_flags();
|
|
11309
11315
|
$dbg_log$$module$src$log$$("Starting multiboot kernel at:", 2);
|
|
11310
11316
|
$cpu$jscomp$26$$.dump_state();
|