loader.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // load all files to run v86 in browser, uncompiled
  2. (function()
  3. {
  4. "use strict";
  5. var CORE_FILES =
  6. "const.js config.js log.js cpu.js debug.js translate.js modrm.js string.js arith.js misc_instr.js instructions.js " +
  7. "io.js main.js lib.js ide.js fpu.js pci.js floppy.js " +
  8. "memory.js dma.js pit.js vga.js ps2.js pic.js rtc.js uart.js acpi.js apic.js ioapic.js hpet.js sb16.js " +
  9. "ne2k.js state.js virtio.js bus.js elf.js";
  10. var BROWSER_FILES = "main.js screen.js keyboard.js mouse.js speaker.js serial.js lib.js network.js starter.js worker_bus.js";
  11. //var LIB_FILES = "esprima.js walk.js";
  12. var LIB_FILES = "";
  13. // jor1k stuff
  14. LIB_FILES += " jor1k.js 9p.js filesystem.js marshall.js utf8.js";
  15. var to_load = [];
  16. load_scripts(CORE_FILES, "src/");
  17. load_scripts(BROWSER_FILES, "src/browser/");
  18. load_scripts(LIB_FILES, "lib/");
  19. function load_scripts(resp, path)
  20. {
  21. var files = resp.split(" ");
  22. for(var i = 0; i < files.length; i++)
  23. {
  24. if(!files[i])
  25. {
  26. continue;
  27. }
  28. to_load.push(path + files[i]);
  29. }
  30. }
  31. load_next();
  32. function load_next()
  33. {
  34. var s = to_load.shift();
  35. if(!s)
  36. {
  37. return;
  38. }
  39. var script = document.createElement("script");
  40. script.src = s;
  41. script.onload = load_next;
  42. document.head.appendChild(script);
  43. }
  44. })();