Fabian
7f37fcfccb
Fix vga virtual screen size handling ( #628 )
2022-03-10 21:46:57 +01:00
Fabian
dec8fa0b59
Fix svga not rendering pixels at bottom of changed buffer ( #628 )
2022-03-10 21:46:57 +01:00
Fabian
06df7cc265
Fix 2048 MB memory size
2022-03-10 21:46:57 +01:00
Giulio Zausa
f42e204ed3
Allow receiving wasm as a function via wasm_fn ( #629 )
...
Allow receiving wasm as a function via wasm_fn (for bundlers)
2022-03-10 21:39:49 +01:00
Fabian
d1a949d881
Fix consider svga_offset for putImageData
2022-02-24 00:36:58 +01:00
Fabian
4eb1e5035e
Optimised putImageData
2022-02-22 00:39:05 +01:00
Fabian
e0551fcee4
minor
2022-02-22 00:39:05 +01:00
Fabian
726bccf7da
c2rust cleanup (remove wrapping_*)
2022-02-22 00:39:05 +01:00
Fabian
be3be4827d
c2rust cleanup (remove _0 from field names)
2022-02-22 00:39:05 +01:00
Fabian
52ccc6a03c
Port svga rendering to rust
2022-02-22 00:39:05 +01:00
Fabian
4567188324
Only call pcspeaker-update on writes to counter2 (performance)
2022-02-21 00:11:00 +01:00
Fabian
65899d2073
Fix NaN mips
2022-02-21 00:11:00 +01:00
Fabian
97f29af274
Move around paging code
2022-02-21 00:11:00 +01:00
Fabian
654abe97e3
Fix rtc detection in Linux v5.11+ (see 211e5db1 in the kernel repo)
2022-02-17 17:38:01 +01:00
Fabian
e90e150733
physical addresses should be u32
2022-02-17 17:38:01 +01:00
Fabian
4cc3f8adc7
vga: pass buffer from emulator to frontend, remove tell-buffer, avoid storing layers in state (call update_layers in set_state instead)
2022-02-17 17:38:00 +01:00
Fabian
087215133b
Dead code
2022-02-17 17:37:14 +01:00
Fabian
f9bcb08f78
use String.prototype.repeat
2022-02-17 17:37:14 +01:00
proxy-m
e7f574f4d8
fix v86_bin_fallback full path: getDirname (2) ( #624 )
...
Fix v86_bin_fallback when wasm_path is given
2022-02-17 14:15:58 +01:00
Andy(Pengan) Zhou
5199c3dc87
Only scale display when window big enough ( #622 )
2022-02-13 14:00:59 -06:00
Fabian
74dca95e23
idle on hlt instruction
2022-01-30 19:02:39 -06:00
Fabian
e5adfc93c2
Clean up externs
2022-01-30 19:02:39 -06:00
Fabian
229310e686
Properly load pdptes when cr3 is loaded (fixes Ubuntu 16)
2022-01-17 18:38:43 -06:00
Fabian
700225bb6b
Add FreeNOS ( #597 )
2022-01-17 17:14:53 -06:00
Fabian
9a041fa0ba
Properly apply acpi setting from UI or profile ( fix #597 )
2022-01-17 17:05:40 -06:00
Fabian
0199a44a0e
Add SerenityOS
2022-01-14 17:35:28 -06:00
Fabian
18ab3e8a81
Update sectorlisp
2022-01-14 17:35:28 -06:00
Fabian
5871e6a140
Add NodeOS #598
2022-01-14 17:35:28 -06:00
Fabian
4a9170c2b9
Clean up
2022-01-14 16:49:57 -06:00
Fabian
942b16d71d
Delete {read,write}_aligned
2022-01-14 16:49:57 -06:00
Fabian
70b98bbe5a
inline
2022-01-14 16:49:57 -06:00
Fabian
4e28e51d04
Clean up
2022-01-14 16:49:57 -06:00
Fabian
ff22df3f9c
Assert on NX bit
2022-01-14 16:49:57 -06:00
Paweł Marczewski
f72d0a9ca0
Add support for PAE ( #599 )
...
Physical memory is still limited to 32-bit addresses, but systems that enable PAE should work now.
2022-01-14 21:19:54 +01:00
Fabian
6b9d1f74d5
Fix acpi setting not being applied in state image (fix 9front)
2022-01-06 17:52:02 -06:00
Fabian
7117e2880c
minor
2021-12-16 16:52:12 -05:00
Fabian
48eb6cb51b
Add android 4.4 kitkat
2021-12-16 16:52:12 -05:00
Shizuka0000
42c80ae566
Added url config ( #566 )
...
Enable networking, audio, acpi configuration via url parameters
2021-12-16 22:39:13 +01:00
Fabian
53a7904834
Improve mute button
2021-12-16 16:24:33 -05:00
ShuoZheLi
7853d8f191
added logic for sound on/off buttom
2021-12-10 22:51:38 +01:00
ShuoZheLi
46af8ccee1
added is_muted variable
2021-12-10 22:51:38 +01:00
Fabian
bbcd3791a2
Replace macros by closures
2021-11-11 17:39:51 -05:00
Fabian
e6c725bf54
Don't export ZSTD_ symbols (reduce wasm size)
2021-11-10 23:19:49 -05:00
Fabian
714105a7bc
Remove log_segment_null, debug_set_dispatcher_target, check_dispatcher_target, check_page_switch in release mode
2021-11-10 22:52:05 -05:00
Fabian
31b2582d13
Avoid generating memory read for profiling info in release mode
2021-11-10 22:52:05 -05:00
Fabian
a19fefbe84
never inline test_privileges_for_io (reduce wasm size)
2021-11-10 21:36:18 -05:00
Fabian
636217e81d
never inline switch_seg (reduce wasm size)
2021-11-10 21:32:44 -05:00
Fabian
851e6a1ab4
never inline trigger_* (reduce wasm size)
2021-11-10 21:29:38 -05:00
Fabian
03053f0b0d
Allow specifying memory size via url parameter m=… and vram=… ( #448 , #510 )
2021-11-09 15:29:12 -05:00
Fabian
5fd6e9356d
Handle page switch in conditional jump when both cases are fallthroughs (occurs when MAX_PAGES=30)
2021-11-09 14:31:02 -05:00
Fabian
abe5b972e0
Optimise negated condition if reordered
2021-11-08 23:25:41 -05:00
Fabian
e95aed2b22
Remove optimisation (never happens across all tests)
2021-11-08 23:25:34 -05:00
Fabian
577d403d14
fix: panic in conditional branch code generation due to label_for_addr not being valid in fallthroughs, using index_for_addr instead ( #547 )
2021-11-08 23:25:25 -05:00
Fabian
340f1cce12
far jump/int: fix fetch of esp from 16-bit tss and improve bounds checks, restore previously disabled assertion
2021-11-08 23:25:21 -05:00
Fabian
96735eba68
iret: Implement eip limit check (fix ubuntu 10 #474 )
2021-11-08 23:25:16 -05:00
Fabian
9cffa38ca0
Use gen_set_reg16_unmasked for mov r16, imm
2021-11-08 23:25:10 -05:00
Fabian
52a8a1bf56
Add psychdos, haiku-boot and archlinux-boot profiles
2021-11-04 21:00:15 -05:00
Fabian
1218bafae5
Add cdn query parameter for testing
2021-11-04 20:27:52 -05:00
Fabian
5877d36bf5
Add sectorlisp and sectorforth
2021-11-04 20:13:58 -05:00
Fabian
7814f96e1c
Dead debug code
2021-11-04 18:51:36 -05:00
Fabian
2418f6c6df
Retry 5xx and error'd requests
2021-11-04 18:51:36 -05:00
Fabian
39ab3b6d03
preventDefault in mousedown/mouseup events (fixes text selection in Firefox)
2021-11-04 18:51:36 -05:00
Fabian
30fa3dbaf9
Clean up
2021-11-04 18:51:36 -05:00
Fabian
be477084a9
Add assertion
2021-11-04 18:51:36 -05:00
Fabian
36fcfe1b16
jit not8/neg8
2021-11-04 18:51:36 -05:00
Fabian
65a75d4fe3
Additional assertions for the return value of mmap_read8 and mmap_read16
2021-11-04 18:51:36 -05:00
Fabian
23d4f862e6
Avoid local when modrm address is single register without offset
2021-11-04 18:51:36 -05:00
Fabian
c5dbd55d53
Fix macros used as expression
2021-10-29 01:18:21 +02:00
Fabian
6def710a62
Clean up code, add missing handle_read, replace imgsplit with gnu split
2021-10-20 19:06:58 +02:00
pixelsuft
271c8a9c53
Add splitting without server side
2021-10-20 19:06:58 +02:00
Andrew Au
2034526624
Include the controller output port concept
2021-10-18 02:21:40 +02:00
Andrew Au
e5efc198e5
Supports disabling A20 through PS/2
2021-10-18 02:21:40 +02:00
Aty
447897d91c
Fix UART bug ( #486 )
2021-06-11 23:22:26 +02:00
Heyang Zhou
8eb8dd9d9d
Use queueMicrotask
for fast_next_tick
in Web Worker environment. ( #477 )
...
Optimize performance in worker.
2021-06-05 18:27:01 +02:00
parkertomatoes
4e5f62bbc1
Mask values written to mmap_write{8,16} ( fix #460 )
2021-05-24 01:18:50 +02:00
Fabian
3387b9b56c
Minor improvement
2021-05-23 00:00:22 -05:00
Fabian
b4936b32d4
Dead
2021-05-22 23:59:24 -05:00
Fabian
f3e79ae6be
Less verbose logging
2021-05-22 23:59:24 -05:00
Fabian
199b1ceb49
Fix 32-bit wrap-around for profiler and opstats
2021-05-22 23:58:23 -05:00
Fabian
1b06e7bd34
Improve code for some sign/zero-extending moves
2021-05-22 23:58:23 -05:00
Fabian
d47be4342d
set_reg16 unmasked
2021-05-22 23:58:23 -05:00
Fabian
c430c1141c
Minor optimisation for bt{,s,r,c} with zero offset
2021-05-22 23:58:23 -05:00
Fabian
da4470233c
fix paste into serial console
2021-05-22 23:58:23 -05:00
Fabian
ffe80edece
Remove function from non-profiled builds
2021-05-22 23:58:23 -05:00
Fabian
2078d439c6
Remove some hard-coded memory sizes so they can be overwritten
2021-05-22 23:58:23 -05:00
Fabian
ffac529747
Rewrite write_leb_i64 (fixes bug with upper bits of constant)
2021-05-22 23:58:23 -05:00
Fabian
2f2fff26a9
tlb_set_has_code_multiple
2021-05-22 23:58:22 -05:00
Fabian
7666805117
Fix tlb invariant check
2021-05-22 23:20:47 -05:00
Fabian
fd1626cd87
Fix movs jit
2021-05-22 23:20:47 -05:00
viorelcanja
757d95b6be
Mem fast path optimization ( #469 )
...
Remove one addition from the memory access fast path
2021-05-23 06:03:34 +02:00
viorelcanja
0297f48346
resize tlb_data to proper size ( #468 )
...
Resize tlb_data to proper size
Reduce initial memory size
2021-05-08 22:49:37 +02:00
Viorel Canja
5b79e47bc9
avoid ending jit_run_interpreted in the middle of a basic block
2021-05-04 20:30:08 +02:00
Simon Kadisch
690354e69e
Provide access to CPU memory via V86Starter
2021-04-23 01:07:50 +02:00
Simon Kadisch
c8581d9ba6
Restore UART2 and UART3 correctly
2021-04-21 20:12:39 +02:00
Fabian
3137bf4171
Fix movsw jit
2021-04-12 15:17:43 -05:00
Fabian
9e9af6d45b
NetBSD, floppy bird
2021-04-10 17:22:28 -05:00
Fabian
74dd588b75
vga: dac color index wrap-around
2021-04-10 17:19:40 -05:00
Fabian
b1025783a1
Assertion in CachedStateFlags
2021-04-10 16:50:28 -05:00
Fabian
594caa2a73
Simplify
2021-04-10 16:48:44 -05:00
Fabian
0db7ab6505
Dead code
2021-04-10 16:48:11 -05:00
Fabian
48464a18d7
jit movsb/movsw/movsd
2021-04-10 14:27:14 -05:00
Fabian
6049e0c46c
jit stosb/stosw/stosd
2021-04-09 21:52:00 -05:00
Fabian
4de8584cff
jit scasw/scasd/lodsw/lodsd
2021-04-09 21:15:25 -05:00
Fabian
7b66ae874d
jit scasb
2021-04-09 20:37:55 -05:00
Fabian
2e25308f17
jit lodsb
2021-04-09 19:51:27 -05:00
Fabian
b48166280b
gen_pushf_popf_check
2021-04-09 18:54:54 -05:00
Fabian
d929f4d7fd
jit some 8-bit arithmetic
2021-04-09 15:35:22 -05:00
Fabian
b684342b2b
Revert "jit 8E (mov sreg, reg)".
...
This optimisation was completely invalid, it's not possible call
switch_seg while in jit mode without saving registers.
2021-04-09 15:32:46 -05:00
Fabian
bc1f239c2b
jit {,66}0F{14,15} (unpcklps, unpcklpd, unpckhps, unpckhpd)
2021-04-05 01:58:42 -05:00
Fabian
f4f3ec0ca1
jit {,66}0F{12,13} (movhlps, movlps, movlpd, movlps, movlpd)
2021-04-05 01:58:42 -05:00
Fabian
1632498c9e
elf parser: ignore PT_GNU_PROPERTY
2021-04-05 01:58:42 -05:00
Fabian
209879273f
elf parser: improve error message
2021-04-05 01:58:42 -05:00
Fabian
aacb6a49d7
Rust: Switch from nightly to stable
2021-04-05 01:58:42 -05:00
Fabian
bbeca7a13d
jit {F2,F3}0FC2 (cmpsd, cmpss)
2021-04-04 23:36:54 -05:00
Fabian
2a22980cf7
jit {F2,F3}0F2A (cvtsi2ss, cvtsi2sd)
2021-04-04 23:32:06 -05:00
Fabian
2b2d22f6d3
jit {,66}0F2A (cvtpi2ps, cvtsi2ss, cvtpi2pd, cvtsi2sd)
2021-04-04 22:56:50 -05:00
Fabian
9e63bab294
jit {,66}0F{2E,2F} (ucomiss, ucomisd, comiss, comisd)
2021-04-04 22:32:36 -05:00
Fabian
a0c4c32352
jit {,66,F2,F3}0F{5A,5B} (cvtps2pd, cvtpd2ps, cvtss2sd, cvtsd2ss, cvtdq2ps, cvtps2dq, cvttps2dq)
2021-04-04 20:58:40 -05:00
Fabian
c5ca3ca09e
jit 0F{74,75,76} (pcmpeqb, pcmpeqw, pcmpeqd)
2021-04-04 16:27:26 -05:00
Fabian
44c606f5a6
jit 660F{75,76} (pcmpeqw, pcmpeqd)
2021-04-04 16:23:37 -05:00
Fabian
73aa610f72
jit 8E (mov sreg, reg)
2021-04-04 16:02:22 -05:00
Fabian
28369ed790
jit {,66,F2,F3}0F{58,59,5C,5D,5E,5F} ({add,mul,sub,min,div,max}{ps,ss,pd,sd})
2021-04-04 15:41:54 -05:00
Fabian
12ec5d753d
jit {,66}0F{54,55,56,57} ({and,andn,or,xor}{ps,pd})
2021-04-04 15:35:21 -05:00
Fabian
03566c2067
jit {,F3}0F53 (rcp{ps,ss})
2021-04-04 15:35:21 -05:00
Fabian
38c484629d
jit {,F3}0F52 (rsqrt{ps,ss})
2021-04-04 15:35:21 -05:00
Fabian
8d4c4cb342
Remove useless _TYPE_INDEX suffix
2021-04-04 15:22:30 -05:00
Fabian
297d649836
jit {,66,F2,F3}0F51
2021-04-04 15:20:51 -05:00
Fabian
e2ec0c9442
Move code into sse_read64_xmm_{mem,xmm}
2021-04-04 15:07:36 -05:00
Fabian
c18cf46022
jit sbb32
2021-04-03 22:53:51 -05:00
Fabian
bf92188faf
jit adc32
2021-04-03 22:53:44 -05:00
Fabian
b7b3c1b44a
Avoid more globals
2021-04-03 22:16:19 -05:00
Fabian
91f9a8a1c8
Avoid globals
2021-04-03 21:13:43 -05:00
Fabian
adb17b7ce4
Port cpuid to rust
2021-04-03 21:10:49 -05:00
Fabian
74f747deb1
Dead code
2021-04-03 21:10:49 -05:00
Fabian
30180aba72
Remove executable bit
2021-04-03 21:10:49 -05:00
Fabian
84714d17a4
Don't fail on atapi command 0xBE
2021-04-03 21:10:49 -05:00
Fabian
c65fd84d55
capitalise constants
2021-04-03 21:10:49 -05:00
Fabian
dcc990ed99
Remove unused imports, constants and no_mangle
2021-04-03 21:10:49 -05:00
Fabian
9ab71cd39a
Port reset_cpu to rust
2021-04-03 21:10:49 -05:00
Fabian
d7fd55e4f1
Move cpl check to instructions.rs for HLT
2021-03-30 15:03:19 -05:00
Fabian
7e903f09dd
Port do_task_switch to rust
2021-03-30 15:03:19 -05:00
Fabian
acb4e5f2dd
Port lldt to rust
2021-03-30 12:27:28 -05:00
Fabian
827b9f3741
Refactor lookup_segment_selector to accept SegmentSelector instead of raw
2021-03-30 12:21:03 -05:00
Fabian
4344954da3
Port load_tr to rust
2021-03-30 05:24:08 -05:00
Fabian
bd50bb8dae
Add Windows 3.1 and Snowdrop
2021-03-30 04:36:48 -05:00
Fabian
a54d57f60a
Always download floppy images entirely
2021-03-21 01:10:10 -05:00
Fabian
5917b81f16
Avoid seg null check for ss/cs
2021-03-17 11:51:52 -05:00
Fabian
1f36d454c2
Remove invalid assertion
2021-01-16 19:34:42 -06:00
Fabian
30d4a56669
Don't send break code on key repeat
2021-01-16 19:31:19 -06:00
Fabian
5b4fbe170d
Allow saving state from local files
2021-01-16 17:10:56 -06:00
Fabian
2ef8f4b552
Windows 2000 ( #390 , #296 , #377 )
2021-01-16 17:10:56 -06:00
Fabian
6d46ea845d
Add obsolete ata command used by win2k
2021-01-16 15:22:16 -06:00
Fabian
9da96e666d
Safari fix
2021-01-10 19:03:19 -06:00
Fabian
8ce9c4a988
Allow passing a network adapter directly ( #382 )
2021-01-10 18:15:50 -06:00
Fabian
d19fd26e46
CI
2021-01-03 23:04:40 -06:00
Fabian
3bd6c55721
Remove unused dependency
2021-01-03 22:43:03 -06:00
Fabian
1947657470
Make error fatal
2021-01-03 22:43:03 -06:00
Fabian
dbf6b65c6b
Mouse: Fix case when no screen container is given
2021-01-03 17:48:10 -06:00
Fabian
b1fdd5640b
Fix random int in workers
2021-01-03 17:22:44 -06:00
Fabian
69e0a319b6
vga: Mask byte
2021-01-03 03:22:22 -06:00
Fabian
18bbe45814
vga: Implement svga offset
2021-01-03 03:22:22 -06:00
Fabian
497f618cab
Merge branch 'wasm' into master
2021-01-03 02:07:20 -06:00
Fabian
8107f26f10
xxx: Add fallback for safari
2021-01-01 21:51:17 -06:00
Fabian
7ba7725dc1
ide: Cancel pending reads on device reset
2021-01-01 20:19:30 -06:00
Fabian
26e512a540
Faster way of zeroing memory
2021-01-01 20:19:30 -06:00
Fabian
1936c6fb5a
Use more conservative value for MAX_PAGES
2021-01-01 20:19:30 -06:00
Fabian
10addd4756
Improved design, new profiles
2021-01-01 20:19:30 -06:00
Fabian
51323eaae0
Keyboard: Log more infos if key unknown
2020-12-31 19:14:34 -06:00
Ilya Kreymer
1bebfe68bb
Ne2k Driver Fixes to Support Running in Windows! ( #378 )
...
ne2k fixes to support network card in Windows (compared to qemu implementation)
- fix clearing of initial buffer (this appears to be the main fix!)
- additional fixes for write logic
2020-12-31 19:14:34 -06:00
Fabian
1b4b12d371
Minor
2020-12-31 19:14:34 -06:00
Fabian
ac9d248c85
9p stats: Show file in progress after parallel operation finishes
2020-12-31 19:14:34 -06:00
Fabian
1d2be8a04f
Provide option to preserve mac address from state image (for Windows 98)
2020-12-31 19:14:34 -06:00
Fabian
b97ec83130
ne2k: Save complete state (via @ikreymer)
2020-12-31 19:14:34 -06:00
Fabian
bb3bdb1dde
Don't export mem8
2020-12-31 19:14:34 -06:00
Fabian
12fc612d2e
Fix the order of functions in instructions_0f.rs
2020-12-31 19:14:34 -06:00
Fabian
bd4248dac2
Fix the order of functions in instructions.rs
2020-12-31 19:14:34 -06:00
Fabian
7815b20e71
Dead code
2020-12-31 19:14:34 -06:00
Fabian
bc11d7089e
jit 0fc2/cmpps 660fc2/cmppd
2020-12-31 19:14:34 -06:00
Fabian
2b7b562a56
jit 0fc6/shufps
2020-12-31 19:14:34 -06:00
Fabian
1dfdc9d19a
jit 660fc6/shufpd
2020-12-31 19:14:34 -06:00
Fabian
3a8102811d
jit f30f11/movss
2020-12-31 19:14:34 -06:00
Fabian
cf4af74d95
jit f30f10/movss
2020-12-31 19:14:34 -06:00
Fabian
b27285cb7b
Remove some unnecessary no_mangle
2020-12-31 19:14:34 -06:00
Fabian
416b4b4b82
Remove some things from jit imports
2020-12-31 19:14:34 -06:00
Fabian
a157fdf059
Fix apic timer
2020-12-31 19:14:34 -06:00
Fabian
0812b61d30
Simplify wasm module loading and instantiating code
2020-12-31 19:14:34 -06:00
Fabian
8440f5af11
Async access to image files using file parts instead of range header (allows compression)
2020-12-31 19:14:34 -06:00
Fabian
6e48dd3674
Abort http range requests if the server responds with a complete file
2020-12-31 19:14:34 -06:00
Fabian
0fee2a567a
zstd-compressed state images
2020-12-31 19:14:34 -06:00
Fabian
a2bd1e3166
Increase MAX_EXTRA_BASIC_BLOCKS
2020-12-31 19:14:33 -06:00
Fabian
171081f649
Simplify
2020-12-31 19:14:33 -06:00
Fabian
d4cb380899
Generate extra code only in profiling mode
2020-12-31 19:14:33 -06:00
Fabian
625d9fcdca
Minor
2020-12-31 19:14:33 -06:00
Fabian
ffce507e11
minor
2020-12-31 19:14:33 -06:00
Fabian
6643dd14fd
Remove remains of old js cpu code
2020-12-31 19:14:33 -06:00
Fabian
4a90ec6256
Allow memory size of 2GB
2020-12-31 19:14:33 -06:00
Fabian
e981114dd7
Add missing acpi gpe registers to state
2020-12-31 19:14:33 -06:00
Fabian
6d540da487
Not a todo anymore
2020-12-31 19:14:33 -06:00
Fabian
188e0ce796
Increase loop counter to 100k, from 20k
2020-12-31 19:14:33 -06:00
Fabian
a238684de6
Store instruction counter in local, use it for loop limits
2020-12-31 19:14:33 -06:00