123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- import vm from "node:vm";
- import url from "node:url";
- import fs from "node:fs";
- import path from "node:path";
- import crypto from "node:crypto";
- import perf_hooks from "node:perf_hooks";
- const __dirname = url.fileURLToPath(new URL(".", import.meta.url));
- let files = [
- "src/const.js",
- "src/config.js",
- "src/log.js",
- "src/cpu.js",
- "src/debug.js",
- "src/io.js",
- "src/main.js",
- "src/lib.js",
- "src/buffer.js",
- "src/ide.js",
- "src/pci.js",
- "src/floppy.js",
- "src/memory.js",
- "src/dma.js",
- "src/pit.js",
- "src/vga.js",
- "src/ps2.js",
- "src/rtc.js",
- "src/uart.js",
- "src/acpi.js",
- "src/apic.js",
- "src/ioapic.js",
- "src/state.js",
- "src/ne2k.js",
- "src/sb16.js",
- "src/virtio.js",
- "src/virtio_console.js",
- "src/virtio_net.js",
- //"src/virtio_balloon.js",
- "src/bus.js",
- "src/debug.js",
- "src/elf.js",
- "src/kernel.js",
- "lib/9p.js",
- "lib/filesystem.js",
- "lib/jor1k.js",
- "lib/marshall.js",
- "src/browser/screen.js",
- "src/browser/keyboard.js",
- "src/browser/mouse.js",
- "src/browser/speaker.js",
- "src/browser/serial.js",
- "src/browser/network.js",
- "src/browser/fake_network.js",
- "src/browser/fetch_network.js",
- "src/browser/starter.js",
- "src/browser/worker_bus.js",
- "src/browser/dummy_screen.js",
- "src/browser/print_stats.js",
- "src/browser/filestorage.js"
- ];
- let globals = Object.create(globalThis);
- let v86 = {};
- let ctx = vm.createContext(globals);
- globals.DEBUG = false;
- globals.module = {exports:v86};
- Object.defineProperty(globals, "crypto", {value: crypto});
- globals.require = (what) => {
- return ({
- perf_hooks,
- fs
- })[what];
- };
- for( let f of files ) {
- vm.runInContext(fs.readFileSync(path.join(__dirname, f), "utf8"), ctx, {
- filename: f
- });
- }
- export let {
- V86,
- CPU,
- FetchNetworkAdapter,
- MemoryFileStorage,
- ServerFileStorageWrapper,
- } = globals;
|