Commit graph

4807 commits

Author SHA1 Message Date
Fabian
7a2df17dae pic ain't unsafe 2025-08-25 15:03:49 -06:00
Fabian
dfbe60926b option to run all tests with acpi forced on 2025-08-25 15:03:49 -06:00
Fabian
8f66766f49 gitignore bench-results 2025-08-25 15:03:49 -06:00
Fabian
fe50e6ff6f remove allow(const_item_mutation) 2025-08-25 15:03:49 -06:00
Fabian
c6c2017ba8 port apic & ioapic to rust
- handle mmap access and port io directly in rust
- call handle_irqs after port/memory writes, rather than from the
  interrupt hw directly; this makes it more obvious that handle_irqs is
  dangerous as it can change control flow

state images produced by this version are not backwards-compatible (older stage images will still be working)
2025-08-25 15:03:49 -06:00
Fabian
244a877989 minor: move env variables to top of file 2025-08-25 15:03:49 -06:00
Fabian
7c6da9d8f2 disable mouse by default in buildroot profile 2025-08-25 15:03:49 -06:00
Fabian
9a2e81b35b fix: onclick handler errors if there is no audio context 2025-08-25 15:03:49 -06:00
Fabian
525fa58719 validate empty disk size 2025-08-25 15:03:49 -06:00
Fabian
2f040c0502 minor: move mark_dirty into memcpy_into_svga_lfb 2025-08-25 15:03:49 -06:00
Fabian
ab4440d28f ide: don't assert on vendor-specific command (BSD/OS 4) 2025-08-25 15:03:49 -06:00
Fabian
c2dc88dd15 improve assertion for esp < limit check 2025-08-25 15:03:49 -06:00
Fabian
af483a9036 add some stub MSRs 2025-08-25 15:03:49 -06:00
Fabian
d074a7f8a4 make #ud non-panic 2025-08-25 15:03:49 -06:00
Fabian
4aa1c16995 vga: after turning off vbe, switch back to the current mode, rather than staying in graphical mode
fixes gnu hurd, which leaves vbe mode without writing to attribute mode control
2025-08-25 15:03:49 -06:00
Fabian
46fbe8fa40 cpuid: downgrade model to pentium3
this fixes a page fault in BSD/OS 3.0 (#1369)
2025-08-25 15:03:49 -06:00
Fabian
80d77f23a8 add tests for BSD/OS 2025-08-25 15:03:49 -06:00
Fabian
76595e4612 Add Arch Hurd 2025-08-25 15:03:49 -06:00
Fabian
2d3965b53f add manifest for installing on phones (#1372) 2025-08-25 15:03:49 -06:00
Fabian
990fecb59f (breaking change) remove emulator.mount_fs: planning future simplifications for the filesystem 2025-08-25 15:03:49 -06:00
Fabian
afb30c608e add tools/split-image.py 2025-08-25 15:03:49 -06:00
Fabian
007b0d9e71 fs: remove AddEvent/HandleEvent, make await OpenInode instead 2025-08-25 15:03:49 -06:00
Fabian
5aeac32af3 remove invalid assertion 2025-08-25 15:03:48 -06:00
Fabian
13d4dd0ca9 merge util.rs into dbg.rs 2025-08-25 15:03:48 -06:00
Fabian
0cc8f0221e use u16 as type for wasm table indices, move safe_to_{u8,u16} around 2025-08-25 15:03:48 -06:00
Fabian
80a3ab7b3d remove custom dbg_assert macro
the default panic printing already works fine for this
2025-08-25 15:03:48 -06:00
Fabian
b35621e9aa minor: use read_sized_string_from_mem 2025-08-25 15:03:48 -06:00
Fabian
6d2ef6ca41 fix far jumps
- gp error code should use gate cs
- missing gp on system cs
- arg copying should use target cpl

fixes hurd
fixes BSD/OS (#1369)
2025-08-25 15:03:48 -06:00
Fabian
732390abb9 help debugging 2025-08-25 15:03:48 -06:00
Fabian
a1f160cf32 log negative addresses correctly 2025-08-25 15:03:48 -06:00
Fabian
fd80637976 make debug_dump_code more ergonomic 2025-08-25 15:03:48 -06:00
Fabian
c7a3b8b050 cursed css things to turn table rows into links 2025-08-25 15:03:48 -06:00
Fabian
e27e89877c update filesystem docs 2025-08-25 15:02:43 -06:00
Fabian
318003f117 clean up 2025-08-25 15:02:43 -06:00
Jeff Lindsay
88aff1091f updating the filesystem docs with all the ways it can be used 2025-08-25 15:02:43 -06:00
Jeff Lindsay
1acdbbe785 update implementation based on feedback and added a pre-made websocket proxy 2025-08-25 15:02:43 -06:00
Jeff Lindsay
f020b016f5 add support for custom 9p request handler 2025-08-25 15:02:43 -06:00
SuperMaxusa
137ab1f9ad refactor: extract code into functions 2025-08-23 10:57:57 -06:00
SuperMaxusa
a25e7181d5 forEach -> for, fit to viewport when the virtual keyboard is displayed 2025-08-23 10:57:57 -06:00
SuperMaxusa
519480d4cd add theatre mode 2025-08-23 10:57:57 -06:00
Christian Schnell
92ba111d92 refactored V86.wait_until_vga_screen_contains()
- reduced clutter and made control flow more comprehensible
- moved initial delay of 100ms to expect(), needed for keyboard buffer "cooldown" in between commands
2025-08-23 10:14:32 -06:00
Christian Schnell
47fb4e1dd2 final cleanup and alignments with the V86 codebase
- changed return value of V86.wait_until_vga_screen_contains() to boolean with true:success and false:timeout
- removed "throw" and "finally" statements in V86.wait_until_vga_screen_contains()
- removed "finally" statements in exec_test() to simplify cleanup code
- removed "export" statements (forgotten leftovers from a silly experiment)
- simplified parsing of options.timeout_msec in V86.wait_until_vga_screen_contains()
- changed line-matching function to string.startsWith()
- switched from Element.innerHTML to Element.textContent in html assignments
- relaxed rules for handling of command in expected[] in expect()
- removed unused argument "fdc" from FloppyDrive constructor
- renamed variable "tm_end" to "end"
2025-08-23 10:14:32 -06:00
Christian Schnell
e16ce249fe replaced use of RegExp.escape() with own function
RegExp.escape() is available since the May 2025 Baseline which is not yet supported at github CI, replaced with a helper function.
2025-08-23 10:14:32 -06:00
Christian Schnell
00203987f4 moved text matching code from expect() to V86.wait_until_vga_screen_contains()
All changes to V86.wait_until_vga_screen_contains() are backward compatible.
2025-08-23 10:14:32 -06:00
Christian Schnell
b91afaa821 moved FreeDOS boot floppy tests to tests/full/run.js
Moved tests using optional image files

    /images/freedos-fds/freedos.boot.disk.160K.img
    /images/freedos-fds/freedos.boot.disk.180K.img
    /images/freedos-fds/freedos.boot.disk.320K.img
    /images/freedos-fds/freedos.boot.disk.360K.img
    /images/freedos-fds/freedos.boot.disk.640K.img
    /images/freedos-fds/freedos.boot.disk.1200K.img

from tests/api/floppy.js to tests/full/run.js.

Dropped redundant 720K and 1440K FreeDOS boot floppies, these formats are already covered in tests/full/run.js.
2025-08-23 10:14:32 -06:00
Christian Schnell
26ae4dc019 removed Space Invaders boot test, already covered in tests/full/run.js 2025-08-23 10:14:32 -06:00
Christian Schnell
200219335b deactivated Space Invaders test until image file is available on github
Maybe I'm assuming the wrong file name "images/asm-space-invaders.img"?
2025-08-23 10:14:32 -06:00
Christian Schnell
e8235c5f3e added custom floppy size test using Space Invaders (~2K) 2025-08-23 10:14:32 -06:00
Christian Schnell
d7e9c64975 minor optimization 2025-08-23 10:14:32 -06:00
Christian Schnell
51998355ed reduced usage of string.endsWith() in expect() to minimum
If the command string passed to expect() is non-empty it is also used as the first expected response line, but it must be matched against the screen line using .endsWith() because any text preceding the command (usually the shell prompt) is unknown. All other response lines must now match exactly their respective screen lines.
2025-08-23 10:14:32 -06:00