Tracked from `docs/plan.md`'s "Future work: interactive shell mode (vamos's `-x` precedent)" section (raised by Simon, not yet scoped into any phase).
Motivation
`vamos` (amitools) can run a real Shell-Seg binary interactively rather than just one program to completion -- `vamos -x Shell-Seg` boots a genuine AmigaDOS Shell inside the emulator, which reads `S:Vamos-Startup` (if present) and drops into an interactive `0.SYS:>`-style prompt for further commands.
Why volamos can't do this today
`Runtime` is currently built around "load one program, run it to completion, exit" (see `crate::dispatch::Runtime::run`'s own doc comment). An analogous `--shell`/`-x` mode would need:
- An interactive host<->guest I/O loop -- this runtime's `Input()`/`Output()` are currently backed by fixed `out: &mut dyn Write` sinks per `run()` call, not a live terminal.
- `System()`/`Execute()` support for the Shell to invoke subsequent commands as nested guest processes -- `crate::dosseg`'s `system_runner` callback exists but a real Shell interactively issuing many commands in sequence is a different usage pattern than the current one-shot `System()`/`Execute()` support was built for; needs re-examination once this is scoped.
- A real `C:/Shell` (or `Shell-Seg`) binary from the Workbench 3.1.4 corpus already in use for the `C:` command testing.
When to revisit
Per the original note: worth revisiting once the empirical `C:` command corpus covers enough of `dos.library`/`exec.library` that Shell's own startup sequence has a reasonable chance of running without hitting a wall of gaps immediately. (Substantial `C:` command coverage has since landed -- see `tools/compare_three_way.py`'s corpus and this project's many closed gap-chain issues -- so this may be closer to viable than when originally raised.)
Tracked from `docs/plan.md`'s "Future work: interactive shell mode (vamos's `-x` precedent)" section (raised by Simon, not yet scoped into any phase).
Motivation
`vamos` (amitools) can run a real Shell-Seg binary interactively rather than just one program to completion -- `vamos -x Shell-Seg` boots a genuine AmigaDOS Shell inside the emulator, which reads `S:Vamos-Startup` (if present) and drops into an interactive `0.SYS:>`-style prompt for further commands.
Why volamos can't do this today
`Runtime` is currently built around "load one program, run it to completion, exit" (see `crate::dispatch::Runtime::run`'s own doc comment). An analogous `--shell`/`-x` mode would need:
When to revisit
Per the original note: worth revisiting once the empirical `C:` command corpus covers enough of `dos.library`/`exec.library` that Shell's own startup sequence has a reasonable chance of running without hitting a wall of gaps immediately. (Substantial `C:` command coverage has since landed -- see `tools/compare_three_way.py`'s corpus and this project's many closed gap-chain issues -- so this may be closer to viable than when originally raised.)