Commit graph

3159 commits

Author SHA1 Message Date
Fabian 7d6a3c67e4 optimise sub8; jo/jb 2022-11-15 10:14:28 +09:00
Fabian bb0f37bbce optimise sub; jc 2022-11-15 10:14:28 +09:00
Fabian 8f15b554ee optimise cmp8/16 x, imm; jc 2022-11-15 10:14:28 +09:00
Fabian d629984627 optimise cmp reg, reg/imm; jz 2022-11-15 10:14:28 +09:00
Fabian 19b2771c40 optimise getsf 2022-11-15 10:14:28 +09:00
Fabian db65dd352d optimise test x, x followed by jz/js 2022-11-15 10:14:28 +09:00
Fabian 0ea7c7cd81 optimise getof 2022-11-15 10:14:28 +09:00
Fabian 6fcbe7b3d0 optimise cmp x, 0; jz 2022-11-15 10:14:28 +09:00
Fabian 1d55116779 optimise get_last_op1 (for cmp32) 2022-11-15 10:14:28 +09:00
Fabian 5a7c946e83 optimise get_last_result 2022-11-15 10:14:28 +09:00
Fabian a11eb20326 type safety 2022-11-15 10:14:28 +09:00
Fabian 58f9902057 merge updates to last_op_size and flags_changed 2022-11-15 10:14:28 +09:00
Fabian 53cea2e7b1 Use optimised getcf for inc/dec/adc/sbb 2022-11-15 10:14:28 +09:00
Fabian be08d812db move code around (local_to_instruction_operand/LocalOrImmediate.to_instruction_operand) 2022-11-15 10:14:28 +09:00
Fabian c6ef3c4c68 cache state flags 2022-11-15 10:14:28 +09:00
Fabian 5839152328 fix rust compiler error: trailing semicolon in macro used in expression position 2022-11-15 10:14:28 +09:00
Fabian 8d747fd0da Add skiffos (#714) 2022-11-15 10:14:28 +09:00
Fabian e1b6e34c19 wip code tlb 2022-11-15 10:14:28 +09:00
Fabian 2887a363f1 Properly clean up generated wasm functions if they are written while being compiled 2022-11-15 10:14:28 +09:00
Fabian d0ca758177 reformat msrs 2022-11-15 10:14:28 +09:00
Fabian 2a8a89dd34 stub some msr for new linux kernel 2022-11-15 10:14:28 +09:00
Fabian b9df44e646 cpuid: correctly report level 7 for ecx != 0 2022-11-15 10:14:28 +09:00
Fabian 0c17fea221 Remove serial0-output-line, fix stack overflow in serial debug output (fix #741) 2022-11-15 10:14:28 +09:00
Adrian Siekierka 7f5fb11faf
Add support for fixed_chunk_size to async Range downloads (#755) 2022-11-01 20:30:38 +01:00
Fabian 3c02f166b9 late c2rust cleanup 2022-09-21 17:58:25 +08:00
Fabian 611f0dedda Remove dead code 2022-09-21 11:56:42 +08:00
Fabian ef3654f0b1 Dedup some code between SyncBuffer and SyncFileBuffer 2022-09-21 11:39:48 +08:00
Fabian 53098adc5c Delete src/browser/lib.js, move remaining code to lib.js 2022-09-19 22:24:09 +08:00
Fabian e0d4e1808b Move buffer code around 2022-09-19 22:24:09 +08:00
Fabian aebf5eced8 Add Windows NT 2022-09-14 00:32:19 +09:00
Fabian b961703fe4 jit: execute mmio reads at full size 2022-09-13 17:19:23 +09:00
Fabian 86fc542352 tlb: don't mark writable on read access (otherwise the write bit might not be set if a read occurs before a write) 2022-09-13 15:53:28 +09:00
Fabian 74c6a075c4 Replace page_poison=on with init_on_free=on 2022-09-13 14:32:52 +09:00
Fabian 00b874b309 Fix state restoring of large local images (fix #730) 2022-09-09 21:20:17 +09:00
Fabian b227b2e45b Replace winnt_fix by cpuid_level, make configurable 2022-09-08 16:45:28 +09:00
Fabian 89e5173712 Use regs::EAX over 0 2022-09-08 16:22:49 +09:00
Fabian 1a27b72311 Crude implementation for cmos A update-in-progress bit 2022-09-07 20:18:25 +09:00
Fabian 4e9ceb0ec1 Implement #np for IDTs (windows nt 3.x) 2022-09-07 18:50:08 +09:00
Fabian 2cbe54cf38 Refactor some sse instructions into sse_read128_xmm_xmm_imm/sse_read128_xmm_mem_imm 2022-09-06 01:05:39 +09:00
Fabian 1135122f8a Fix jitted cmpss/cmppd/shufps/shufpd with the same source and destination register 2022-09-06 01:05:39 +09:00
Fabian 0a359a2495 Allow flags optimisation to be used for setcc/cmovcc instructions 2022-09-06 00:26:39 +09:00
Fabian e50d4fa5a8 Fix flags in cmpxchg in jit 2022-09-06 00:26:39 +09:00
Fabian a464c77ec0 Also mask other 16-bit arithmetic (not strictly necessary, but more robust for future changes) 2022-09-06 00:26:39 +09:00
Fabian 21c7a88d16 Add assertion for immediate values in test_be 2022-09-06 00:26:39 +09:00
Fabian 4cab56f2f4 Fix flags set by AAM instruction 2022-09-06 00:26:39 +09:00
Fabian 6e0ab79d4f Fix mask sign-extended 8-bit immediate to 16-bit for cmp (fixes #726) 2022-09-06 00:26:39 +09:00
Fabian 88d205396d Remove some unused pub annotations 2022-09-06 00:26:39 +09:00
Joey Mezzacappa cb1c3211e9
Fix V86.destroy() with xterm.js (#720)
`V86.destroy()` was throwing an error due to `SerialAdapterXtermJS`
having no `destroy()` method.
2022-08-15 22:10:49 +02:00
Joey Mezzacappa 62d967bce0
Wait for emulation to stop when destroying (#721)
In some environments, the "emulator-stopped" event did not always fire
when calling the `destroy()` method. This waits for emulation to finish
stopping before continuing with the rest of the destructor.

When stopping the emulator with `.stop()`, the `v86` instance's state
would follow these transitions:

1. Before calling `.stop()`:
   ```js
   {
     running: true,
     stopped: false
   }
   ```
2. Immediately after calling `.stop()`:
   ```js
   {
     running: true,
     stopped: true
   }
   ```
3. After the emulator has finished stopping:
   ```js
   {
     running: false,
     stopped: false
   }
   ```

It was not immediately obvious how properties named `running` and
`stopped` could ever have the same values. This commit renames `stopped`
to `stopping` so it is slightly easier to understand while debugging.
2022-08-15 22:09:45 +02:00
Fabian f1ebdb1c72 implement fbstp (close #708) 2022-08-02 21:40:57 +09:00
Fabian cf31709ec5 Add floppy command for modern linux 2022-08-02 21:40:57 +09:00
Fabian 6c04f68396 GC SpeakerAdapter 2022-08-02 21:40:57 +09:00
Fabian d28c77faa2 don't send mouse events when execution is paused 2022-08-02 21:40:57 +09:00
Fabian 5c4023f17d Some comments for further improvements 2022-08-02 21:40:57 +09:00
Fabian 3e88f3d012 Don't use h(...).slice(2) 2022-08-02 21:40:57 +09:00
Fabian e1d1f22378 Avoid loading partfiles that are already present 2022-08-02 21:40:57 +09:00
Fabian 2a73363089 Remove useless argument 2022-08-02 21:40:57 +09:00
Fabian d4831d3b10 Remove some unncessary quoting 2022-08-02 21:40:57 +09:00
Fabian 14bab44a2d Use larger chunksize for big images, significantly improving load performance (see #710) 2022-08-02 21:40:57 +09:00
Fabian d2ca7b1afc Implement alternative format for partfiles 2022-08-02 21:40:57 +09:00
Fabian d363430b05 refactor partfile loading, add read cache 2022-08-02 21:40:57 +09:00
Fabian 4bcaf1c3c2 Give downloaded file a more useful name 2022-08-02 21:40:57 +09:00
Fabian 1f614e831e refactor packet logging 2022-08-02 21:40:57 +09:00
Fabian ee70cd950e wasm trace: log to cpu level 2022-08-02 21:40:57 +09:00
Fabian 075c773eb4 mac address translation: make copy 2022-08-02 21:40:57 +09:00
Fabian c26c1a8c97 apply mac address translation to dhcp.clientidentifier 2022-08-02 21:40:57 +09:00
Fabian 00d2b35222 Allow capturing network traffic and loading it in wireshark 2022-08-02 21:40:57 +09:00
Fabian cdfc8a0f1f Improve hex_dump 2022-08-02 21:40:57 +09:00
Fabian 590d1c08d1 Fix failing assertion in debug mode in OpenBSD after pci change 2022-08-02 21:40:57 +09:00
Fabian c8540d1113 Remove get_regs_short in non-debug mode 2022-08-02 21:40:57 +09:00
Fabian f33c7ca70b Crude mac address translation, fixes networking in Windows 2000 and SerenityOS 2022-08-02 21:40:57 +09:00
Fabian bca3648fd2 Move hex_dump, add NE2K_LOG_PACKETS 2022-08-02 21:40:57 +09:00
Fabian c1bd7076bd Add latest SerenityOS without patches (224ac1a30) (#299) 2022-08-02 21:40:57 +09:00
Fabian cd384b9b0c ide: map at isa ports too (for serenityos, #299) 2022-08-02 21:40:57 +09:00
Fabian 81f8976500 pci: Don't allow mapping to isa ports 2022-08-02 21:40:57 +09:00
Fabian 923d4148d0 Add experimental server for user-uploaded images 2022-08-02 21:40:57 +09:00
Fabian c7ed5f8dc1 Update windows 2000 after vga pci revision
The vga devices was not recognized any more after changing the pci
revision. The image has the vbe driver reinstalled.
2022-08-02 21:40:57 +09:00
Fabian 084575179b Allow text selection, fixes #688 2022-08-02 21:40:57 +09:00
Fabian 04a0cf4b5f Avoid logging on some noisy ports 2022-08-02 21:40:57 +09:00
Fabian 52163a1fdf vga: set pci revision to 0 to avoid falsely advertising mmio registers (for serenityos, #299) 2022-08-02 21:40:57 +09:00
Fabian 68256bc693 ne2k: Remove invalid assertions accessing the reset register when pg!=0 2022-08-02 21:40:57 +09:00
Nitin Tejuja 0615be5d60
Fixed issue #632 async/await (#633)
Co-authored-by: Fabian <copy@copy.sh>
2022-07-25 14:55:07 +02:00
hello-smile6 b96665285b
Allow sharing files with guest using UI, even with custom profile (#702)
The 9p filesystem is always accessible by the guest, even if the UI is hidden. This will make the file picker UI be shown when needed
2022-07-14 10:26:13 +02:00
Fabian aff546c716 uart: throw rdi instead of cti when fifo is not used 2022-07-11 12:36:55 +09:00
Fabian f13136b9c1 minor 2022-07-11 12:36:55 +09:00
Fabian 12d595b774 properly report fifo enabled bits in iir 2022-07-11 12:36:55 +09:00
Fabian 961a9f46ef Properly mask values given to safe_read_write 2022-07-11 12:36:55 +09:00
Fabian ca9aa5e872 fix #610 2022-07-11 12:36:55 +09:00
pixelsuft‮ cbe5e63201
DAC Fix for Win9x bootlogo progressbar (#693) 2022-06-23 05:38:02 +02:00
pixelsuft‮ 6b376fc50d
PS2 wheel improvements + winnt fix (#680) 2022-06-14 03:03:55 +02:00
pixelsuft‮ 99736f2f68
Screenshot For Text Mode (#671) 2022-06-03 13:40:59 +02:00
hello-smile6 d9c9277011
Add keyboard lock support (#665)
Allows system keybindings to be intercepted by the guest.
2022-05-28 10:53:56 +02:00
Fabian 7a6eaf38da Add HelenOS 2022-05-23 18:35:37 +02:00
Fabian b0d3dcb742 Add some homepages 2022-05-23 18:35:37 +02:00
Fabian 1bf5168c59 Mouse: Add support for Firefox 2022-05-20 22:27:57 +02:00
pixelsuft‮ 56b741466a
PS2 Mouse Wheel Support (#657) 2022-05-20 22:26:57 +02:00
pixelsuft‮ 77a1cc47cf
Add dac_mask to fix text mode color (#655) 2022-05-17 13:42:53 +02:00
Fabian d685053541 Minor fix 2022-03-11 10:54:37 +01:00
Fabian 193ec30038 Add bzimage/initrd to UI 2022-03-10 21:46:57 +01:00
Fabian 48882e33ae Accept irregular floppy disk sizes 2022-03-10 21:46:57 +01:00