Commit Graph
22 Commits
Author SHA1 Message Date
Ray Bennett 4699a741c1 feat: give console programs the terminal as their console (#31)
* feat: give console programs the terminal as their console

A standard handle that is a terminal, and CONIN$, CONOUT$ and CON, now act as a console: modes map to terminal settings,
reads and writes convert between UTF-16 and the terminal's UTF-8, terminal input becomes key events, and Ctrl+C runs the
control handlers. Files and pipes still fail the console functions, as on Windows.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the console functions over the terminal, their pty test and the guest test program from the public console API documentation.

* test: let the console client run by hand, saying which step failed

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Made the exact size and cursor checks optional and gave each step an instruction and a failure number.

* feat: follow the console cursor through the output instead of asking the terminal

Programs that redraw their command line read and move the cursor on every key; asking the terminal each time was slow, and
wrong on terminals that never answer. The terminal is now asked only when the position may be stale.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the cursor tracker, WriteConsoleOutputCharacter, ScrollConsoleScreenBuffer, the resize events and their tests.
2026-10-28 17:11:25 +01:00
mirkobrombin 0a0fe4be89 feat: add shared Windows process state and parallel guest execution 2026-10-24 16:24:23 +00:00
mirkobrombin f9f3a67f1c fix: serve the Windows calls that Inno Setup, 7-Zip and VLC make 2026-10-23 21:27:15 +00:00
Mirko Brombin 85af42cba5 feat: end a process through its own handle, detach libraries as a load and add the C runtime calls Paint.NET reaches 2026-09-23 16:34:21 +00:00
Mirko Brombin f4509d0c1f feat: implement the Windows APIs that .NET programs and their installers call 2026-09-23 00:12:56 +00:00
Mirko Brombin a7372ea452 feat: add print debugger output and component traces when asked, with the arguments of failing reads 2026-09-22 02:53:35 +00:00
Mirko Brombin c674832de7 feat: let threads impersonate and open their own token 2026-09-21 14:17:07 +00:00
Mirko Brombin bb9cf43cf1 feat: create and activate side-by-side contexts from manifests and give programs the common controls 6 classes their manifests ask for 2026-09-21 10:33:51 +00:00
Mirko Brombin 7e8050e8a2 feat: add enumerate resource names through the program's callback 2026-09-21 07:15:16 +00:00
Mirko Brombin c0946f8c44 feat: add RtlGetVersion, DOS and local file times, the SysWOW64 directory, UrlIs and PathStripToRoot, and answer the user's own account by its Windows name 2026-09-21 04:26:15 +00:00
Mirko Brombin bd7fe3c8bd feat: add keyed events, inherited working directory, msvcrt locks and process exit that ends other threads first 2026-09-04 05:41:39 +02:00
Mirko Brombin 5a6297633c feat: show Steam's sign-in window with cross-process window surfaces, web fonts, elevation and service configuration 2026-09-03 18:36:13 +02:00
Mirko Brombin 26fbeabc78 feat: run Steam's web UI with cross-process handles, per-thread message queues, socket events and process identity 2026-09-03 16:48:12 +02:00
Mirko Brombin 66087052d8 feat: run Chromium's helper processes with DirectWrite, named pipes, jobs, inherited handles and shared sections 2026-09-03 06:06:54 +02:00
Mirko Brombin 7b3461c003 feat: run Chromium's web helper further with reserved address space, native registry, tokens and process lists 2026-09-03 03:46:34 +02:00
Mirko Brombin 966069f911 feat: run Steam to its web helper with real sockets, TLS chains, child environments and image protection 2026-09-03 02:50:56 +02:00
Mirko Brombin a7256dafac feat: run the Steam installer to Finish with child processes, shell links and sockets 2026-09-03 01:15:07 +02:00
Mirko Brombin f5cd92f4c8 feat: give 32-bit programs the registry, shell folder, INI write, token and file services an installer needs 2026-09-02 23:23:20 +02:00
Mirko Brombin 82a160f157 feat: create a Direct3D 12 device through vkd3d-proton and release threads left at exit 2026-08-01 20:57:35 +02:00
Mirko Brombin 7daa9891f0 feat: answer GetSystemDirectory and add a hardware variant of the D3D11 present test 2026-08-01 19:53:10 +02:00
Mirko Brombin aa5cbc8f90 feat: add standard input reads, byte range locks, file size query and offset transfers for synchronous handles 2026-08-01 03:28:17 +02:00
Mirko Brombin 4a973d4dce feat: add GDI rasterizer, text, image loading, guest user32 component and pinned libpng 2026-08-01 00:12:57 +02:00