v86 0.3.7 → 0.5.10
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 +64 -108
- package/build/libv86-debug.js +12677 -0
- package/build/libv86-debug.mjs +732 -0
- package/build/libv86.js +710 -0
- package/build/libv86.mjs +636 -0
- package/build/v86-debug.wasm +0 -0
- package/build/v86-fallback.wasm +0 -0
- package/build/v86.wasm +0 -0
- package/package.json +12 -35
- package/bios/.gitignore +0 -1
- package/bios/COPYING.LESSER +0 -165
- package/bios/bochs-bios.bin +0 -0
- package/bios/bochs-vgabios.bin +0 -0
- package/bios/fetch-and-build-seabios.sh +0 -13
- package/bios/seabios/.config +0 -113
- package/bios/seabios/.config.old +0 -114
- package/bios/seabios/.gitignore +0 -4
- package/bios/seabios/COPYING +0 -674
- package/bios/seabios/COPYING.LESSER +0 -165
- package/bios/seabios/Makefile +0 -286
- package/bios/seabios/README +0 -17
- package/bios/seabios/docs/Build_overview.md +0 -104
- package/bios/seabios/docs/Contributing.md +0 -20
- package/bios/seabios/docs/Debugging.md +0 -111
- package/bios/seabios/docs/Developer_Documentation.md +0 -25
- package/bios/seabios/docs/Developer_links.md +0 -86
- package/bios/seabios/docs/Download.md +0 -27
- package/bios/seabios/docs/Execution_and_code_flow.md +0 -178
- package/bios/seabios/docs/Linking_overview.md +0 -160
- package/bios/seabios/docs/Mailinglist.md +0 -8
- package/bios/seabios/docs/Memory_Model.md +0 -253
- package/bios/seabios/docs/README +0 -5
- package/bios/seabios/docs/Releases.md +0 -482
- package/bios/seabios/docs/Runtime_config.md +0 -193
- package/bios/seabios/docs/SeaBIOS.md +0 -17
- package/bios/seabios/docs/SeaVGABIOS.md +0 -39
- package/bios/seabios/out/autoconf.h +0 -117
- package/bios/seabios/out/include/config/acpi/dsdt.h +0 -0
- package/bios/seabios/out/include/config/acpi.h +0 -0
- package/bios/seabios/out/include/config/ahci.h +0 -0
- package/bios/seabios/out/include/config/apmbios.h +0 -0
- package/bios/seabios/out/include/config/ata/dma.h +0 -0
- package/bios/seabios/out/include/config/ata/pio32.h +0 -0
- package/bios/seabios/out/include/config/ata.h +0 -0
- package/bios/seabios/out/include/config/auto.conf +0 -69
- package/bios/seabios/out/include/config/auto.conf.cmd +0 -9
- package/bios/seabios/out/include/config/boot.h +0 -0
- package/bios/seabios/out/include/config/bootorder.h +0 -0
- package/bios/seabios/out/include/config/build/vgabios.h +0 -0
- package/bios/seabios/out/include/config/call32/smm.h +0 -0
- package/bios/seabios/out/include/config/cdrom/boot.h +0 -0
- package/bios/seabios/out/include/config/cdrom/emu.h +0 -0
- package/bios/seabios/out/include/config/debug/level.h +0 -0
- package/bios/seabios/out/include/config/drives.h +0 -0
- package/bios/seabios/out/include/config/entry/extrastack.h +0 -0
- package/bios/seabios/out/include/config/esp/scsi.h +0 -0
- package/bios/seabios/out/include/config/flash/floppy.h +0 -0
- package/bios/seabios/out/include/config/floppy.h +0 -0
- package/bios/seabios/out/include/config/fw/romfile/load.h +0 -0
- package/bios/seabios/out/include/config/hardware/irq.h +0 -0
- package/bios/seabios/out/include/config/kbd/call/int15/4f.h +0 -0
- package/bios/seabios/out/include/config/keyboard.h +0 -0
- package/bios/seabios/out/include/config/lpt.h +0 -0
- package/bios/seabios/out/include/config/lsi/scsi.h +0 -0
- package/bios/seabios/out/include/config/malloc/uppermemory.h +0 -0
- package/bios/seabios/out/include/config/megasas.h +0 -0
- package/bios/seabios/out/include/config/mouse.h +0 -0
- package/bios/seabios/out/include/config/mpt/scsi.h +0 -0
- package/bios/seabios/out/include/config/mptable.h +0 -0
- package/bios/seabios/out/include/config/mtrr/init.h +0 -0
- package/bios/seabios/out/include/config/optionroms.h +0 -0
- package/bios/seabios/out/include/config/override/pci/id.h +0 -0
- package/bios/seabios/out/include/config/pcibios.h +0 -0
- package/bios/seabios/out/include/config/pirtable.h +0 -0
- package/bios/seabios/out/include/config/pmm.h +0 -0
- package/bios/seabios/out/include/config/pmtimer.h +0 -0
- package/bios/seabios/out/include/config/pnpbios.h +0 -0
- package/bios/seabios/out/include/config/ps2port.h +0 -0
- package/bios/seabios/out/include/config/pvscsi.h +0 -0
- package/bios/seabios/out/include/config/qemu/hardware.h +0 -0
- package/bios/seabios/out/include/config/qemu.h +0 -0
- package/bios/seabios/out/include/config/rom/size.h +0 -0
- package/bios/seabios/out/include/config/rtc/timer.h +0 -0
- package/bios/seabios/out/include/config/s3/resume.h +0 -0
- package/bios/seabios/out/include/config/sdcard.h +0 -0
- package/bios/seabios/out/include/config/serial.h +0 -0
- package/bios/seabios/out/include/config/tcgbios.h +0 -0
- package/bios/seabios/out/include/config/threads.h +0 -0
- package/bios/seabios/out/include/config/tristate.conf +0 -4
- package/bios/seabios/out/include/config/tsc/timer.h +0 -0
- package/bios/seabios/out/include/config/use/smm.h +0 -0
- package/bios/seabios/out/include/config/vga/allocate/extra/stack.h +0 -0
- package/bios/seabios/out/include/config/vga/bochs/stdvga.h +0 -0
- package/bios/seabios/out/include/config/vga/bochs.h +0 -0
- package/bios/seabios/out/include/config/vga/did.h +0 -0
- package/bios/seabios/out/include/config/vga/extra/stack/size.h +0 -0
- package/bios/seabios/out/include/config/vga/fixup/asm.h +0 -0
- package/bios/seabios/out/include/config/vga/pci.h +0 -0
- package/bios/seabios/out/include/config/vga/stdvga/ports.h +0 -0
- package/bios/seabios/out/include/config/vga/vbe.h +0 -0
- package/bios/seabios/out/include/config/vga/vid.h +0 -0
- package/bios/seabios/out/include/config/vgahooks.h +0 -0
- package/bios/seabios/out/include/config/virtio/blk.h +0 -0
- package/bios/seabios/out/include/config/virtio/scsi.h +0 -0
- package/bios/seabios/out/include/config/xen.h +0 -0
- package/bios/seabios/out/scripts/kconfig/conf +0 -0
- package/bios/seabios/out/scripts/kconfig/conf.o +0 -0
- package/bios/seabios/out/scripts/kconfig/zconf.hash.c +0 -289
- package/bios/seabios/out/scripts/kconfig/zconf.lex.c +0 -2420
- package/bios/seabios/out/scripts/kconfig/zconf.tab.c +0 -2538
- package/bios/seabios/out/scripts/kconfig/zconf.tab.o +0 -0
- package/bios/seabios/scripts/acpi_extract.py +0 -366
- package/bios/seabios/scripts/acpi_extract_preprocess.py +0 -41
- package/bios/seabios/scripts/buildrom.py +0 -56
- package/bios/seabios/scripts/buildversion.py +0 -134
- package/bios/seabios/scripts/checkrom.py +0 -95
- package/bios/seabios/scripts/checkstack.py +0 -226
- package/bios/seabios/scripts/checksum.py +0 -16
- package/bios/seabios/scripts/encodeint.py +0 -21
- package/bios/seabios/scripts/gen-offsets.sh +0 -17
- package/bios/seabios/scripts/kconfig/.gitignore +0 -22
- package/bios/seabios/scripts/kconfig/Makefile +0 -331
- package/bios/seabios/scripts/kconfig/POTFILES.in +0 -12
- package/bios/seabios/scripts/kconfig/check.sh +0 -13
- package/bios/seabios/scripts/kconfig/conf.c +0 -718
- package/bios/seabios/scripts/kconfig/confdata.c +0 -1250
- package/bios/seabios/scripts/kconfig/expr.c +0 -1168
- package/bios/seabios/scripts/kconfig/expr.h +0 -241
- package/bios/seabios/scripts/kconfig/gconf.c +0 -1542
- package/bios/seabios/scripts/kconfig/gconf.glade +0 -661
- package/bios/seabios/scripts/kconfig/images.c +0 -326
- package/bios/seabios/scripts/kconfig/kxgettext.c +0 -235
- package/bios/seabios/scripts/kconfig/lex.zconf.c +0 -2430
- package/bios/seabios/scripts/kconfig/list.h +0 -131
- package/bios/seabios/scripts/kconfig/lkc.h +0 -200
- package/bios/seabios/scripts/kconfig/lkc_proto.h +0 -57
- package/bios/seabios/scripts/kconfig/lxdialog/.gitignore +0 -4
- package/bios/seabios/scripts/kconfig/lxdialog/BIG.FAT.WARNING +0 -4
- package/bios/seabios/scripts/kconfig/lxdialog/check-lxdialog.sh +0 -87
- package/bios/seabios/scripts/kconfig/lxdialog/checklist.c +0 -332
- package/bios/seabios/scripts/kconfig/lxdialog/dialog.h +0 -257
- package/bios/seabios/scripts/kconfig/lxdialog/inputbox.c +0 -301
- package/bios/seabios/scripts/kconfig/lxdialog/menubox.c +0 -437
- package/bios/seabios/scripts/kconfig/lxdialog/textbox.c +0 -408
- package/bios/seabios/scripts/kconfig/lxdialog/util.c +0 -713
- package/bios/seabios/scripts/kconfig/lxdialog/yesno.c +0 -114
- package/bios/seabios/scripts/kconfig/mconf.c +0 -1036
- package/bios/seabios/scripts/kconfig/menu.c +0 -697
- package/bios/seabios/scripts/kconfig/merge_config.sh +0 -150
- package/bios/seabios/scripts/kconfig/nconf.c +0 -1556
- package/bios/seabios/scripts/kconfig/nconf.gui.c +0 -656
- package/bios/seabios/scripts/kconfig/nconf.h +0 -96
- package/bios/seabios/scripts/kconfig/qconf.cc +0 -1795
- package/bios/seabios/scripts/kconfig/qconf.h +0 -338
- package/bios/seabios/scripts/kconfig/streamline_config.pl +0 -647
- package/bios/seabios/scripts/kconfig/symbol.c +0 -1373
- package/bios/seabios/scripts/kconfig/util.c +0 -157
- package/bios/seabios/scripts/kconfig/zconf.gperf +0 -48
- package/bios/seabios/scripts/kconfig/zconf.hash.c_shipped +0 -289
- package/bios/seabios/scripts/kconfig/zconf.l +0 -363
- package/bios/seabios/scripts/kconfig/zconf.lex.c_shipped +0 -2420
- package/bios/seabios/scripts/kconfig/zconf.tab.c_shipped +0 -2538
- package/bios/seabios/scripts/kconfig/zconf.y +0 -733
- package/bios/seabios/scripts/layoutrom.py +0 -705
- package/bios/seabios/scripts/python23compat.py +0 -14
- package/bios/seabios/scripts/readserial.py +0 -190
- package/bios/seabios/scripts/tarball.sh +0 -36
- package/bios/seabios/scripts/test-build.sh +0 -90
- package/bios/seabios/scripts/transdump.py +0 -53
- package/bios/seabios/scripts/vgafixup.py +0 -96
- package/bios/seabios/src/Kconfig +0 -579
- package/bios/seabios/src/apm.c +0 -215
- package/bios/seabios/src/asm-offsets.c +0 -23
- package/bios/seabios/src/biosvar.h +0 -130
- package/bios/seabios/src/block.c +0 -623
- package/bios/seabios/src/block.h +0 -121
- package/bios/seabios/src/bmp.c +0 -117
- package/bios/seabios/src/boot.c +0 -793
- package/bios/seabios/src/bootsplash.c +0 -255
- package/bios/seabios/src/bregs.h +0 -80
- package/bios/seabios/src/byteorder.h +0 -71
- package/bios/seabios/src/cdrom.c +0 -322
- package/bios/seabios/src/clock.c +0 -506
- package/bios/seabios/src/code16gcc.s +0 -1
- package/bios/seabios/src/config.h +0 -108
- package/bios/seabios/src/cp437.c +0 -275
- package/bios/seabios/src/cp437.h +0 -1
- package/bios/seabios/src/disk.c +0 -779
- package/bios/seabios/src/e820map.c +0 -152
- package/bios/seabios/src/e820map.h +0 -26
- package/bios/seabios/src/entryfuncs.S +0 -165
- package/bios/seabios/src/farptr.h +0 -208
- package/bios/seabios/src/font.c +0 -139
- package/bios/seabios/src/fw/acpi-dsdt-cpu-hotplug.dsl +0 -78
- package/bios/seabios/src/fw/acpi-dsdt-dbug.dsl +0 -26
- package/bios/seabios/src/fw/acpi-dsdt-hpet.dsl +0 -36
- package/bios/seabios/src/fw/acpi-dsdt-isa.dsl +0 -102
- package/bios/seabios/src/fw/acpi-dsdt-pci-crs.dsl +0 -90
- package/bios/seabios/src/fw/acpi-dsdt.dsl +0 -342
- package/bios/seabios/src/fw/acpi-dsdt.hex +0 -554
- package/bios/seabios/src/fw/acpi.c +0 -685
- package/bios/seabios/src/fw/biostables.c +0 -491
- package/bios/seabios/src/fw/coreboot.c +0 -569
- package/bios/seabios/src/fw/csm.c +0 -347
- package/bios/seabios/src/fw/dev-pci.h +0 -52
- package/bios/seabios/src/fw/dev-piix.h +0 -29
- package/bios/seabios/src/fw/dev-q35.h +0 -52
- package/bios/seabios/src/fw/lzmadecode.c +0 -398
- package/bios/seabios/src/fw/lzmadecode.h +0 -67
- package/bios/seabios/src/fw/mptable.c +0 -197
- package/bios/seabios/src/fw/mtrr.c +0 -105
- package/bios/seabios/src/fw/multiboot.c +0 -111
- package/bios/seabios/src/fw/paravirt.c +0 -624
- package/bios/seabios/src/fw/paravirt.h +0 -63
- package/bios/seabios/src/fw/pciinit.c +0 -1187
- package/bios/seabios/src/fw/pirtable.c +0 -103
- package/bios/seabios/src/fw/q35-acpi-dsdt.dsl +0 -450
- package/bios/seabios/src/fw/romfile_loader.c +0 -259
- package/bios/seabios/src/fw/romfile_loader.h +0 -91
- package/bios/seabios/src/fw/shadow.c +0 -208
- package/bios/seabios/src/fw/smbios.c +0 -585
- package/bios/seabios/src/fw/smm.c +0 -269
- package/bios/seabios/src/fw/smp.c +0 -194
- package/bios/seabios/src/fw/ssdt-misc.dsl +0 -104
- package/bios/seabios/src/fw/ssdt-misc.hex +0 -88
- package/bios/seabios/src/fw/ssdt-pcihp.dsl +0 -36
- package/bios/seabios/src/fw/ssdt-pcihp.hex +0 -38
- package/bios/seabios/src/fw/ssdt-proc.dsl +0 -48
- package/bios/seabios/src/fw/ssdt-proc.hex +0 -35
- package/bios/seabios/src/fw/xen.c +0 -149
- package/bios/seabios/src/fw/xen.h +0 -125
- package/bios/seabios/src/gen-defs.h +0 -19
- package/bios/seabios/src/hw/ahci.c +0 -697
- package/bios/seabios/src/hw/ahci.h +0 -201
- package/bios/seabios/src/hw/ata.c +0 -1046
- package/bios/seabios/src/hw/ata.h +0 -163
- package/bios/seabios/src/hw/blockcmd.c +0 -372
- package/bios/seabios/src/hw/blockcmd.h +0 -114
- package/bios/seabios/src/hw/dma.c +0 -67
- package/bios/seabios/src/hw/esp-scsi.c +0 -241
- package/bios/seabios/src/hw/esp-scsi.h +0 -8
- package/bios/seabios/src/hw/floppy.c +0 -741
- package/bios/seabios/src/hw/lsi-scsi.c +0 -221
- package/bios/seabios/src/hw/lsi-scsi.h +0 -8
- package/bios/seabios/src/hw/megasas.c +0 -405
- package/bios/seabios/src/hw/megasas.h +0 -8
- package/bios/seabios/src/hw/mpt-scsi.c +0 -319
- package/bios/seabios/src/hw/mpt-scsi.h +0 -8
- package/bios/seabios/src/hw/nvme-int.h +0 -199
- package/bios/seabios/src/hw/nvme.c +0 -708
- package/bios/seabios/src/hw/nvme.h +0 -17
- package/bios/seabios/src/hw/pci.c +0 -133
- package/bios/seabios/src/hw/pci.h +0 -47
- package/bios/seabios/src/hw/pci_ids.h +0 -2632
- package/bios/seabios/src/hw/pci_regs.h +0 -556
- package/bios/seabios/src/hw/pcidevice.c +0 -192
- package/bios/seabios/src/hw/pcidevice.h +0 -76
- package/bios/seabios/src/hw/pic.c +0 -115
- package/bios/seabios/src/hw/pic.h +0 -60
- package/bios/seabios/src/hw/ps2port.c +0 -543
- package/bios/seabios/src/hw/ps2port.h +0 -67
- package/bios/seabios/src/hw/pvscsi.c +0 -333
- package/bios/seabios/src/hw/pvscsi.h +0 -8
- package/bios/seabios/src/hw/ramdisk.c +0 -108
- package/bios/seabios/src/hw/rtc.c +0 -100
- package/bios/seabios/src/hw/rtc.h +0 -75
- package/bios/seabios/src/hw/sdcard.c +0 -572
- package/bios/seabios/src/hw/serialio.c +0 -113
- package/bios/seabios/src/hw/serialio.h +0 -29
- package/bios/seabios/src/hw/timer.c +0 -259
- package/bios/seabios/src/hw/tpm_drivers.c +0 -636
- package/bios/seabios/src/hw/tpm_drivers.h +0 -127
- package/bios/seabios/src/hw/usb-ehci.c +0 -650
- package/bios/seabios/src/hw/usb-ehci.h +0 -177
- package/bios/seabios/src/hw/usb-hid.c +0 -442
- package/bios/seabios/src/hw/usb-hid.h +0 -29
- package/bios/seabios/src/hw/usb-hub.c +0 -205
- package/bios/seabios/src/hw/usb-hub.h +0 -64
- package/bios/seabios/src/hw/usb-msc.c +0 -222
- package/bios/seabios/src/hw/usb-msc.h +0 -10
- package/bios/seabios/src/hw/usb-ohci.c +0 -568
- package/bios/seabios/src/hw/usb-ohci.h +0 -144
- package/bios/seabios/src/hw/usb-uas.c +0 -289
- package/bios/seabios/src/hw/usb-uas.h +0 -9
- package/bios/seabios/src/hw/usb-uhci.c +0 -571
- package/bios/seabios/src/hw/usb-uhci.h +0 -128
- package/bios/seabios/src/hw/usb-xhci.c +0 -1161
- package/bios/seabios/src/hw/usb-xhci.h +0 -133
- package/bios/seabios/src/hw/usb.c +0 -499
- package/bios/seabios/src/hw/usb.h +0 -254
- package/bios/seabios/src/hw/virtio-blk.c +0 -211
- package/bios/seabios/src/hw/virtio-blk.h +0 -43
- package/bios/seabios/src/hw/virtio-pci.c +0 -501
- package/bios/seabios/src/hw/virtio-pci.h +0 -151
- package/bios/seabios/src/hw/virtio-ring.c +0 -147
- package/bios/seabios/src/hw/virtio-ring.h +0 -121
- package/bios/seabios/src/hw/virtio-scsi.c +0 -220
- package/bios/seabios/src/hw/virtio-scsi.h +0 -47
- package/bios/seabios/src/jpeg.c +0 -1055
- package/bios/seabios/src/kbd.c +0 -599
- package/bios/seabios/src/list.h +0 -91
- package/bios/seabios/src/malloc.c +0 -561
- package/bios/seabios/src/malloc.h +0 -70
- package/bios/seabios/src/memmap.h +0 -21
- package/bios/seabios/src/misc.c +0 -195
- package/bios/seabios/src/mouse.c +0 -342
- package/bios/seabios/src/optionroms.c +0 -475
- package/bios/seabios/src/output.c +0 -584
- package/bios/seabios/src/output.h +0 -68
- package/bios/seabios/src/pcibios.c +0 -241
- package/bios/seabios/src/pmm.c +0 -176
- package/bios/seabios/src/pnpbios.c +0 -88
- package/bios/seabios/src/post.c +0 -337
- package/bios/seabios/src/resume.c +0 -157
- package/bios/seabios/src/romfile.c +0 -146
- package/bios/seabios/src/romfile.h +0 -21
- package/bios/seabios/src/romlayout.S +0 -698
- package/bios/seabios/src/sercon.c +0 -677
- package/bios/seabios/src/serial.c +0 -317
- package/bios/seabios/src/sha1.c +0 -147
- package/bios/seabios/src/sha1.h +0 -8
- package/bios/seabios/src/stacks.c +0 -771
- package/bios/seabios/src/stacks.h +0 -68
- package/bios/seabios/src/std/LegacyBios.h +0 -985
- package/bios/seabios/src/std/acpi.h +0 -323
- package/bios/seabios/src/std/bda.h +0 -174
- package/bios/seabios/src/std/disk.h +0 -175
- package/bios/seabios/src/std/mptable.h +0 -77
- package/bios/seabios/src/std/multiboot.h +0 -260
- package/bios/seabios/src/std/optionrom.h +0 -59
- package/bios/seabios/src/std/pirtable.h +0 -35
- package/bios/seabios/src/std/pmm.h +0 -19
- package/bios/seabios/src/std/pnpbios.h +0 -24
- package/bios/seabios/src/std/smbios.h +0 -167
- package/bios/seabios/src/std/tcg.h +0 -554
- package/bios/seabios/src/std/vbe.h +0 -156
- package/bios/seabios/src/std/vga.h +0 -63
- package/bios/seabios/src/string.c +0 -251
- package/bios/seabios/src/string.h +0 -31
- package/bios/seabios/src/system.c +0 -357
- package/bios/seabios/src/tcgbios.c +0 -2014
- package/bios/seabios/src/tcgbios.h +0 -19
- package/bios/seabios/src/types.h +0 -156
- package/bios/seabios/src/util.h +0 -251
- package/bios/seabios/src/version.c +0 -5
- package/bios/seabios/src/vgahooks.c +0 -355
- package/bios/seabios/src/x86.c +0 -23
- package/bios/seabios/src/x86.h +0 -277
- package/bios/seabios/vgasrc/Kconfig +0 -211
- package/bios/seabios/vgasrc/bochsdisplay.c +0 -59
- package/bios/seabios/vgasrc/bochsvga.c +0 -447
- package/bios/seabios/vgasrc/bochsvga.h +0 -57
- package/bios/seabios/vgasrc/cbvga.c +0 -337
- package/bios/seabios/vgasrc/clext.c +0 -627
- package/bios/seabios/vgasrc/geodevga.c +0 -434
- package/bios/seabios/vgasrc/geodevga.h +0 -89
- package/bios/seabios/vgasrc/ramfb.c +0 -163
- package/bios/seabios/vgasrc/stdvga.c +0 -485
- package/bios/seabios/vgasrc/stdvga.h +0 -81
- package/bios/seabios/vgasrc/stdvgaio.c +0 -186
- package/bios/seabios/vgasrc/stdvgamodes.c +0 -534
- package/bios/seabios/vgasrc/swcursor.c +0 -96
- package/bios/seabios/vgasrc/vbe.c +0 -432
- package/bios/seabios/vgasrc/vgabios.c +0 -1131
- package/bios/seabios/vgasrc/vgabios.h +0 -88
- package/bios/seabios/vgasrc/vgaentry.S +0 -161
- package/bios/seabios/vgasrc/vgafb.c +0 -661
- package/bios/seabios/vgasrc/vgafb.h +0 -42
- package/bios/seabios/vgasrc/vgafonts.c +0 -785
- package/bios/seabios/vgasrc/vgahw.h +0 -152
- package/bios/seabios/vgasrc/vgainit.c +0 -202
- package/bios/seabios/vgasrc/vgalayout.lds.S +0 -23
- package/bios/seabios/vgasrc/vgautil.h +0 -103
- package/bios/seabios/vgasrc/vgaversion.c +0 -6
- package/bios/seabios-debug.bin +0 -0
- package/bios/seabios-debug.config +0 -117
- package/bios/seabios.bin +0 -0
- package/bios/seabios.config +0 -114
- package/bios/vgabios-debug.bin +0 -0
- package/bios/vgabios.bin +0 -0
- package/build/binaries.js +0 -1
- package/build/index-debug.cjs +0 -1
- package/build/index-debug.js +0 -1
- package/build/index.cjs +0 -1
- package/build/index.js +0 -1
- package/v86.css +0 -259
package/Readme.md
CHANGED
|
@@ -1,85 +1,11 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
Bundler-friendly version of the v86 PC Emulator!
|
|
4
|
-
|
|
5
|
-
## Example
|
|
6
|
-
|
|
7
|
-
Using Vite you can load binaries and wasm files directly!
|
|
8
|
-
|
|
9
|
-
```js
|
|
10
|
-
import { V86Starter } from "v86";
|
|
11
|
-
import v86Wasm from "v86/build/v86.wasm";
|
|
12
|
-
import bios from "v86/bios/seabios.bin?url";
|
|
13
|
-
import vgabios from "v86/bios/vgabios.bin?url";
|
|
14
|
-
import cdrom from "./images/linux.iso?url";
|
|
15
|
-
|
|
16
|
-
new V86Starter({
|
|
17
|
-
wasm_fn: v86Wasm,
|
|
18
|
-
memory_size: 32 * 1024 * 1024,
|
|
19
|
-
vga_memory_size: 2 * 1024 * 1024,
|
|
20
|
-
screen_container: document.getElementById("screen_container"),
|
|
21
|
-
bios: { url: bios },
|
|
22
|
-
vga_bios: { url: vgabios },
|
|
23
|
-
cdrom: { url: cdrom },
|
|
24
|
-
autostart: true,
|
|
25
|
-
});
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
```html
|
|
29
|
-
<!DOCTYPE html>
|
|
30
|
-
<html lang="en">
|
|
31
|
-
<head>
|
|
32
|
-
<meta charset="UTF-8" />
|
|
33
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
34
|
-
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
|
|
35
|
-
</head>
|
|
36
|
-
|
|
37
|
-
<body>
|
|
38
|
-
<div id="screen_container">
|
|
39
|
-
<div
|
|
40
|
-
style="white-space: pre; font: 14px monospace; line-height: 14px"
|
|
41
|
-
></div>
|
|
42
|
-
<canvas style="display: none"></canvas>
|
|
43
|
-
</div>
|
|
44
|
-
<script src="./index.js" type="module"></script>
|
|
45
|
-
</body>
|
|
46
|
-
</html>
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
### Alternative: Base64 binaries
|
|
50
|
-
|
|
51
|
-
If you want to test the library without specific loaders for wasm and binary files, you can also use the base64 version:
|
|
52
|
-
|
|
53
|
-
```js
|
|
54
|
-
import { V86Starter } from "v86";
|
|
55
|
-
import { v86WASM, seabios, vgabios } from 'v86/build/binaries';
|
|
56
|
-
import cdrom from "./images/linux.iso?url";
|
|
57
|
-
|
|
58
|
-
async function main() {
|
|
59
|
-
new V86Starter({
|
|
60
|
-
wasm_fn: async (param) => (await WebAssembly.instantiate(await v86WASM, param)).instance.exports,
|
|
61
|
-
memory_size: 32 * 1024 * 1024,
|
|
62
|
-
vga_memory_size: 2 * 1024 * 1024,
|
|
63
|
-
screen_container: document.getElementById("screen_container"),
|
|
64
|
-
bios: { buffer: await seabios },
|
|
65
|
-
vga_bios: { buffer: await vgabios },
|
|
66
|
-
cdrom: { url: cdrom },
|
|
67
|
-
autostart: true,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
main();
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## Original Readme
|
|
74
|
-
|
|
75
|
-
[](https://gitter.im/copy/v86)
|
|
1
|
+
[](https://gitter.im/copy/v86) or #v86 on [irc.libera.chat](https://libera.chat/)
|
|
76
2
|
|
|
77
3
|
v86 emulates an x86-compatible CPU and hardware. Machine code is translated to
|
|
78
4
|
WebAssembly modules at runtime in order to achieve decent performance. Here's a
|
|
79
5
|
list of emulated hardware:
|
|
80
6
|
|
|
81
|
-
- An x86-compatible CPU. The instruction set is around Pentium
|
|
82
|
-
including full
|
|
7
|
+
- An x86-compatible CPU. The instruction set is around Pentium 4 level,
|
|
8
|
+
including full SSE3 support. Some features are missing, in particular:
|
|
83
9
|
- Task gates, far calls in protected mode
|
|
84
10
|
- Some 16 bit protected mode features
|
|
85
11
|
- Single stepping (trap flag, debug registers)
|
|
@@ -99,52 +25,73 @@ list of emulated hardware:
|
|
|
99
25
|
- A generic VGA card with SVGA support and Bochs VBE Extensions.
|
|
100
26
|
- A PCI bus. This one is partly incomplete and not used by every device.
|
|
101
27
|
- An IDE disk controller.
|
|
102
|
-
- An NE2000 (
|
|
103
|
-
-
|
|
28
|
+
- An NE2000 (RTL8390) PCI network card.
|
|
29
|
+
- Various virtio devices: Filesystem, network and balloon.
|
|
104
30
|
- A SoundBlaster 16 sound card.
|
|
105
31
|
|
|
106
32
|
## Demos
|
|
107
33
|
|
|
34
|
+
[9front](https://copy.sh/v86/?profile=9front) —
|
|
108
35
|
[Arch Linux](https://copy.sh/v86/?profile=archlinux) —
|
|
109
|
-
[
|
|
36
|
+
[Android-x86 1.6-r2](https://copy.sh/v86?profile=android) —
|
|
37
|
+
[Android-x86 4.4-r2](https://copy.sh/v86?profile=android4) —
|
|
38
|
+
[BasicLinux](https://copy.sh/v86/?profile=basiclinux) —
|
|
110
39
|
[Buildroot Linux](https://copy.sh/v86/?profile=buildroot) —
|
|
40
|
+
[Damn Small Linux](https://copy.sh/v86/?profile=dsl) —
|
|
41
|
+
[ELKS](https://copy.sh/v86/?profile=elks) —
|
|
42
|
+
[FreeDOS](https://copy.sh/v86/?profile=freedos) —
|
|
43
|
+
[FreeBSD](https://copy.sh/v86/?profile=freebsd) —
|
|
44
|
+
[FiwixOS](https://copy.sh/v86/?profile=fiwix) —
|
|
45
|
+
[Haiku](https://copy.sh/v86/?profile=haiku) —
|
|
46
|
+
[SkiffOS](https://copy.sh/v86/?profile=copy/skiffos) —
|
|
111
47
|
[ReactOS](https://copy.sh/v86/?profile=reactos) —
|
|
112
48
|
[Windows 2000](https://copy.sh/v86/?profile=windows2000) —
|
|
113
49
|
[Windows 98](https://copy.sh/v86/?profile=windows98) —
|
|
114
50
|
[Windows 95](https://copy.sh/v86/?profile=windows95) —
|
|
115
51
|
[Windows 1.01](https://copy.sh/v86/?profile=windows1) —
|
|
116
|
-
[MS-DOS](https://copy.sh/v86/?profile=msdos) —
|
|
117
|
-
[FreeDOS](https://copy.sh/v86/?profile=freedos) —
|
|
118
|
-
[FreeBSD](https://copy.sh/v86/?profile=freebsd) —
|
|
52
|
+
[MS-DOS 6.22](https://copy.sh/v86/?profile=msdos) —
|
|
119
53
|
[OpenBSD](https://copy.sh/v86/?profile=openbsd) —
|
|
120
|
-
[9front](https://copy.sh/v86/?profile=9front) —
|
|
121
|
-
[Haiku](https://copy.sh/v86/?profile=haiku) —
|
|
122
54
|
[Oberon](https://copy.sh/v86/?profile=oberon) —
|
|
123
55
|
[KolibriOS](https://copy.sh/v86/?profile=kolibrios) —
|
|
56
|
+
[SkiftOS](https://copy.sh/v86?profile=skift) —
|
|
124
57
|
[QNX](https://copy.sh/v86/?profile=qnx)
|
|
125
58
|
|
|
59
|
+
## Documentation
|
|
60
|
+
|
|
61
|
+
[How it works](docs/how-it-works.md) —
|
|
62
|
+
[Networking](docs/networking.md) —
|
|
63
|
+
[Alpine Linux guest setup](tools/docker/alpine/) —
|
|
64
|
+
[Arch Linux guest setup](docs/archlinux.md) —
|
|
65
|
+
[Windows NT guest setup](docs/windows-nt.md) —
|
|
66
|
+
[Windows 9x guest setup](docs/windows-9x.md) —
|
|
67
|
+
[9p filesystem](docs/filesystem.md) —
|
|
68
|
+
[Linux rootfs on 9p](docs/linux-9p-image.md) —
|
|
69
|
+
[Profiling](docs/profiling.md) —
|
|
70
|
+
[CPU Idling](docs/cpu-idling.md)
|
|
71
|
+
|
|
126
72
|
## Compatibility
|
|
127
73
|
|
|
128
74
|
Here's an overview of the operating systems supported in v86:
|
|
129
75
|
|
|
130
76
|
- Linux works pretty well. 64-bit kernels are not supported.
|
|
131
|
-
- Damn Small Linux (2.4 Kernel) works.
|
|
132
|
-
- All tested versions of TinyCore work.
|
|
133
77
|
- [Buildroot](https://buildroot.uclibc.org) can be used to build a minimal image.
|
|
134
78
|
[humphd/browser-vm](https://github.com/humphd/browser-vm) and
|
|
135
79
|
[darin755/browser-buildroot](https://github.com/Darin755/browser-buildroot) have some useful scripts for building one.
|
|
136
|
-
-
|
|
137
|
-
- Debian works
|
|
138
|
-
-
|
|
139
|
-
-
|
|
80
|
+
- [SkiffOS](https://github.com/skiffos/SkiffOS/tree/master/configs/browser/v86) (based on Buildroot) can cross-compile a custom image.
|
|
81
|
+
- Ubuntu and other Debian derivatives works up to the latest version that supported i386 (16.04 LTS or 18.04 LTS for some variants).
|
|
82
|
+
- Alpine Linux works. An image can be built from a Dockerfile, see [tools/docker/alpine/](tools/docker/alpine/).
|
|
83
|
+
- Arch Linux 32 works. See [archlinux.md](docs/archlinux.md) for building an image.
|
|
140
84
|
- ReactOS works.
|
|
141
85
|
- FreeDOS, Windows 1.01 and MS-DOS run very well.
|
|
142
86
|
- KolibriOS works.
|
|
143
87
|
- Haiku works.
|
|
144
|
-
- Android
|
|
145
|
-
|
|
146
|
-
- Windows 1, 3.0, 95, 98, ME and 2000 work. Other versions currently don't (see [#86](https://github.com/copy/v86/issues/86), [#208](https://github.com/copy/v86/issues/208)).
|
|
88
|
+
- Android-x86 has been tested up to 4.4-r2.
|
|
89
|
+
- Windows 1, 3.x, 95, 98, ME, NT and 2000 work reasonably well.
|
|
147
90
|
- In Windows 2000 and higher the PC type has to be changed from ACPI PC to Standard PC
|
|
91
|
+
- There are some known boot issues ([#250](https://github.com/copy/v86/issues/250), [#433](https://github.com/copy/v86/issues/433), [#507](https://github.com/copy/v86/issues/507), [#555](https://github.com/copy/v86/issues/555), [#620](https://github.com/copy/v86/issues/620), [#645](https://github.com/copy/v86/issues/645))
|
|
92
|
+
- See [Windows 9x guest setup](docs/windows-9x.md)
|
|
93
|
+
- Windows XP, Vista and 8 work under certain conditions (see [#86](https://github.com/copy/v86/issues/86), [#208](https://github.com/copy/v86/issues/208))
|
|
94
|
+
- See [Windows NT guest setup](docs/windows-nt.md)
|
|
148
95
|
- Many hobby operating systems work.
|
|
149
96
|
- 9front works.
|
|
150
97
|
- Plan 9 doesn't work.
|
|
@@ -154,9 +101,10 @@ Here's an overview of the operating systems supported in v86:
|
|
|
154
101
|
- OpenBSD works with a specific boot configuration. At the `boot>` prompt type
|
|
155
102
|
`boot -c`, then at the `UKC>` prompt `disable mpbios` and `exit`.
|
|
156
103
|
- NetBSD works only with a custom kernel, see [#350](https://github.com/copy/v86/issues/350).
|
|
157
|
-
-
|
|
104
|
+
- SerenityOS works (only 32-bit versions).
|
|
105
|
+
- [SkiftOS](https://skiftos.org/) works.
|
|
158
106
|
|
|
159
|
-
You can get some
|
|
107
|
+
You can get some information on the disk images here: https://github.com/copy/images.
|
|
160
108
|
|
|
161
109
|
## How to build, run and embed?
|
|
162
110
|
|
|
@@ -181,24 +129,32 @@ for a full setup on Debian or
|
|
|
181
129
|
- If you only want to embed v86 in a webpage you can use libv86.js. For usage,
|
|
182
130
|
check out the [examples](examples/). You can download it from the release section.
|
|
183
131
|
|
|
184
|
-
### Alternatively, to build using
|
|
132
|
+
### Alternatively, to build using Docker
|
|
185
133
|
|
|
186
|
-
- If you have
|
|
187
|
-
- See `tools/docker/exec` to find Dockerfile required for this.
|
|
188
|
-
- You can run `docker build -f tools/docker/exec/Dockerfile -t v86:alpine-3.
|
|
189
|
-
- Then you can simply run `docker run -it -p 8000:8000 v86:alpine-3.
|
|
134
|
+
- If you have Docker installed, you can run the whole system inside a container.
|
|
135
|
+
- See `tools/docker/exec` to find the Dockerfile required for this.
|
|
136
|
+
- You can run `docker build -f tools/docker/exec/Dockerfile -t v86:alpine-3.19 .` from the root directory to generate docker image.
|
|
137
|
+
- Then you can simply run `docker run -it -p 8000:8000 v86:alpine-3.19` to start the server.
|
|
190
138
|
- Check `localhost:8000` for hosted server.
|
|
191
139
|
|
|
140
|
+
### Running via Dev Container
|
|
141
|
+
|
|
142
|
+
- If you are using an IDE that supports Dev Containers, such as GitHub Codespaces, the Visual Studio Code Remote Container extension, or possibly others such as Jetbrains' IntelliJ IDEA, you can setup the development environment in a Dev Container.
|
|
143
|
+
- Follow the instructions from your development environment to setup the container.
|
|
144
|
+
- Run the Task "Fetch images" in order to download images for testing.
|
|
145
|
+
|
|
192
146
|
## Testing
|
|
193
147
|
|
|
194
148
|
The disk images for testing are not included in this repository. You can
|
|
195
149
|
download them directly from the website using:
|
|
196
150
|
|
|
197
|
-
`wget -P images/ https://
|
|
151
|
+
`wget -P images/ https://i.copy.sh/{linux3.iso,linux.iso,linux4.iso,buildroot-bzimage68.bin,openbsd-floppy.img,kolibri.img,windows101.img,os8.img,freedos722.img}`
|
|
152
|
+
|
|
153
|
+
Run integration tests: `make tests`
|
|
198
154
|
|
|
199
155
|
Run all tests: `make jshint rustfmt kvm-unit-test nasmtests nasmtests-force-jit expect-tests jitpagingtests qemutests rust-test tests`
|
|
200
156
|
|
|
201
|
-
See [tests/Readme.md](tests/Readme.md) for more
|
|
157
|
+
See [tests/Readme.md](tests/Readme.md) for more information.
|
|
202
158
|
|
|
203
159
|
## API examples
|
|
204
160
|
|
|
@@ -206,12 +162,14 @@ See [tests/Readme.md](tests/Readme.md) for more infos.
|
|
|
206
162
|
- [Programatically using the serial terminal](examples/serial.html)
|
|
207
163
|
- [A Lua interpreter](examples/lua.html)
|
|
208
164
|
- [Two instances in one window](examples/two_instances.html)
|
|
165
|
+
- [Networking between browser windows/tabs using the Broadcast Channel API](examples/broadcast-network.html)
|
|
166
|
+
- [TCP Terminal (fetch-based networking)](examples/tcp_terminal.html)
|
|
209
167
|
- [Saving and restoring emulator state](examples/save_restore.html)
|
|
210
168
|
|
|
211
169
|
Using v86 for your own purposes is as easy as:
|
|
212
170
|
|
|
213
171
|
```javascript
|
|
214
|
-
var emulator = new
|
|
172
|
+
var emulator = new V86({
|
|
215
173
|
screen_container: document.getElementById("screen_container"),
|
|
216
174
|
bios: {
|
|
217
175
|
url: "../../bios/seabios.bin",
|
|
@@ -247,11 +205,9 @@ repository under their own licenses:
|
|
|
247
205
|
- [Berkeley SoftFloat](http://www.jhauser.us/arithmetic/SoftFloat.html) is included to precisely emulate 80-bit floating point numbers
|
|
248
206
|
- [The jor1k project](https://github.com/s-macke/jor1k) for 9p, filesystem and uart drivers
|
|
249
207
|
- [WinWorld](https://winworldpc.com/) sources of some old operating systems
|
|
208
|
+
- [OS/2 Museum](https://www.os2museum.com/) sources of some old operating systems
|
|
209
|
+
- [ArchiveOS](https://archiveos.org/) sources of several operating systems
|
|
250
210
|
|
|
251
211
|
## More questions?
|
|
252
212
|
|
|
253
213
|
Shoot me an email to `copy@copy.sh`. Please report bugs on GitHub.
|
|
254
|
-
|
|
255
|
-
## Author
|
|
256
|
-
|
|
257
|
-
Fabian Hemmer (https://copy.sh/, `copy@copy.sh`)
|