v86 0.4.0 → 0.5.11
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 +56 -111
- package/build/libv86-debug.js +12680 -0
- package/build/libv86-debug.mjs +732 -0
- package/build/libv86.js +710 -0
- package/build/libv86.mjs +637 -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
|
-
# v86
|
|
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
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,63 +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
|
|
|
126
|
-
##
|
|
59
|
+
## Documentation
|
|
127
60
|
|
|
128
61
|
[How it works](docs/how-it-works.md) —
|
|
129
62
|
[Networking](docs/networking.md) —
|
|
130
|
-
[
|
|
131
|
-
[
|
|
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) —
|
|
132
67
|
[9p filesystem](docs/filesystem.md) —
|
|
133
68
|
[Linux rootfs on 9p](docs/linux-9p-image.md) —
|
|
134
|
-
[Profiling](docs/profiling.md)
|
|
69
|
+
[Profiling](docs/profiling.md) —
|
|
70
|
+
[CPU Idling](docs/cpu-idling.md)
|
|
135
71
|
|
|
136
72
|
## Compatibility
|
|
137
73
|
|
|
138
74
|
Here's an overview of the operating systems supported in v86:
|
|
139
75
|
|
|
140
76
|
- Linux works pretty well. 64-bit kernels are not supported.
|
|
141
|
-
- Damn Small Linux (2.4 Kernel) works.
|
|
142
|
-
- All tested versions of TinyCore work.
|
|
143
77
|
- [Buildroot](https://buildroot.uclibc.org) can be used to build a minimal image.
|
|
144
78
|
[humphd/browser-vm](https://github.com/humphd/browser-vm) and
|
|
145
79
|
[darin755/browser-buildroot](https://github.com/Darin755/browser-buildroot) have some useful scripts for building one.
|
|
146
80
|
- [SkiffOS](https://github.com/skiffos/SkiffOS/tree/master/configs/browser/v86) (based on Buildroot) can cross-compile a custom image.
|
|
147
|
-
-
|
|
148
|
-
-
|
|
149
|
-
-
|
|
150
|
-
- Alpine Linux works.
|
|
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.
|
|
151
84
|
- ReactOS works.
|
|
152
85
|
- FreeDOS, Windows 1.01 and MS-DOS run very well.
|
|
153
86
|
- KolibriOS works.
|
|
154
87
|
- Haiku works.
|
|
155
|
-
- Android
|
|
156
|
-
|
|
157
|
-
- 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.
|
|
158
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)
|
|
159
95
|
- Many hobby operating systems work.
|
|
160
96
|
- 9front works.
|
|
161
97
|
- Plan 9 doesn't work.
|
|
@@ -165,9 +101,10 @@ Here's an overview of the operating systems supported in v86:
|
|
|
165
101
|
- OpenBSD works with a specific boot configuration. At the `boot>` prompt type
|
|
166
102
|
`boot -c`, then at the `UKC>` prompt `disable mpbios` and `exit`.
|
|
167
103
|
- NetBSD works only with a custom kernel, see [#350](https://github.com/copy/v86/issues/350).
|
|
168
|
-
- SerenityOS works.
|
|
104
|
+
- SerenityOS works (only 32-bit versions).
|
|
105
|
+
- [SkiftOS](https://skiftos.org/) works.
|
|
169
106
|
|
|
170
|
-
You can get some
|
|
107
|
+
You can get some information on the disk images here: https://github.com/copy/images.
|
|
171
108
|
|
|
172
109
|
## How to build, run and embed?
|
|
173
110
|
|
|
@@ -192,24 +129,32 @@ for a full setup on Debian or
|
|
|
192
129
|
- If you only want to embed v86 in a webpage you can use libv86.js. For usage,
|
|
193
130
|
check out the [examples](examples/). You can download it from the release section.
|
|
194
131
|
|
|
195
|
-
### Alternatively, to build using
|
|
132
|
+
### Alternatively, to build using Docker
|
|
196
133
|
|
|
197
|
-
- If you have
|
|
198
|
-
- See `tools/docker/exec` to find Dockerfile required for this.
|
|
199
|
-
- You can run `docker build -f tools/docker/exec/Dockerfile -t v86:alpine-3.
|
|
200
|
-
- 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.
|
|
201
138
|
- Check `localhost:8000` for hosted server.
|
|
202
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
|
+
|
|
203
146
|
## Testing
|
|
204
147
|
|
|
205
148
|
The disk images for testing are not included in this repository. You can
|
|
206
149
|
download them directly from the website using:
|
|
207
150
|
|
|
208
|
-
`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`
|
|
209
154
|
|
|
210
155
|
Run all tests: `make jshint rustfmt kvm-unit-test nasmtests nasmtests-force-jit expect-tests jitpagingtests qemutests rust-test tests`
|
|
211
156
|
|
|
212
|
-
See [tests/Readme.md](tests/Readme.md) for more
|
|
157
|
+
See [tests/Readme.md](tests/Readme.md) for more information.
|
|
213
158
|
|
|
214
159
|
## API examples
|
|
215
160
|
|
|
@@ -217,12 +162,14 @@ See [tests/Readme.md](tests/Readme.md) for more infos.
|
|
|
217
162
|
- [Programatically using the serial terminal](examples/serial.html)
|
|
218
163
|
- [A Lua interpreter](examples/lua.html)
|
|
219
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)
|
|
220
167
|
- [Saving and restoring emulator state](examples/save_restore.html)
|
|
221
168
|
|
|
222
169
|
Using v86 for your own purposes is as easy as:
|
|
223
170
|
|
|
224
171
|
```javascript
|
|
225
|
-
var emulator = new
|
|
172
|
+
var emulator = new V86({
|
|
226
173
|
screen_container: document.getElementById("screen_container"),
|
|
227
174
|
bios: {
|
|
228
175
|
url: "../../bios/seabios.bin",
|
|
@@ -258,11 +205,9 @@ repository under their own licenses:
|
|
|
258
205
|
- [Berkeley SoftFloat](http://www.jhauser.us/arithmetic/SoftFloat.html) is included to precisely emulate 80-bit floating point numbers
|
|
259
206
|
- [The jor1k project](https://github.com/s-macke/jor1k) for 9p, filesystem and uart drivers
|
|
260
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
|
|
261
210
|
|
|
262
211
|
## More questions?
|
|
263
212
|
|
|
264
213
|
Shoot me an email to `copy@copy.sh`. Please report bugs on GitHub.
|
|
265
|
-
|
|
266
|
-
## Author
|
|
267
|
-
|
|
268
|
-
Fabian Hemmer (https://copy.sh/, `copy@copy.sh`)
|