MrTHP on Nostr: v86 emulates an x86-compatible CPU and hardware. Machine code is translated to ...
v86 emulates an x86-compatible CPU and hardware. Machine code is translated to WebAssembly modules at runtime in order to achieve decent performance. Here's a list of emulated hardware:
An x86-compatible CPU. The instruction set is around Pentium 4 level, including full SSE2 support. Some features are missing, in particular:
Task gates, far calls in protected mode
Some 16 bit protected mode features
Single stepping (trap flag, debug registers)
Some exceptions, especially floating point and SSE
Multicore
64-bit extensions
A floating point unit (FPU). Calculations are done using the Berkeley SoftFloat library and therefore should be precise (but slow). Trigonometric and log functions are emulated using 64-bit floats and may be less precise. Not all FPU exceptions are supported.
A floppy disk controller (8272A).
An 8042 Keyboard Controller, PS2. With mouse support.
An 8254 Programmable Interval Timer (PIT).
An 8259 Programmable Interrupt Controller (PIC).
Partial APIC support.
A CMOS Real Time Clock (RTC).
A generic VGA card with SVGA support and Bochs VBE Extensions.
A PCI bus. This one is partly incomplete and not used by every device.
An IDE disk controller.
An NE2000 (8390) PCI network card.
A virtio filesystem.
A SoundBlaster 16 sound card. https://copy.sh/v86/
An x86-compatible CPU. The instruction set is around Pentium 4 level, including full SSE2 support. Some features are missing, in particular:
Task gates, far calls in protected mode
Some 16 bit protected mode features
Single stepping (trap flag, debug registers)
Some exceptions, especially floating point and SSE
Multicore
64-bit extensions
A floating point unit (FPU). Calculations are done using the Berkeley SoftFloat library and therefore should be precise (but slow). Trigonometric and log functions are emulated using 64-bit floats and may be less precise. Not all FPU exceptions are supported.
A floppy disk controller (8272A).
An 8042 Keyboard Controller, PS2. With mouse support.
An 8254 Programmable Interval Timer (PIT).
An 8259 Programmable Interrupt Controller (PIC).
Partial APIC support.
A CMOS Real Time Clock (RTC).
A generic VGA card with SVGA support and Bochs VBE Extensions.
A PCI bus. This one is partly incomplete and not used by every device.
An IDE disk controller.
An NE2000 (8390) PCI network card.
A virtio filesystem.
A SoundBlaster 16 sound card. https://copy.sh/v86/