More doc fixes.

This commit is contained in:
Scott Duensing 2026-03-18 02:08:26 -05:00
parent 4c2549efd4
commit 937be903af
3 changed files with 20 additions and 16 deletions

View file

@ -11,8 +11,8 @@ libraries loaded at runtime.
dvxgui/
dvx/ GUI compositor library -> lib/libdvx.a
tasks/ Cooperative task switcher -> lib/libtasks.a
dvxshell/ Desktop shell (Program Manager) -> bin/dvxshell.exe
apps/ DXE app modules (.app files) -> bin/apps/*.app
dvxshell/ Desktop shell -> bin/dvx.exe
apps/ DXE app modules (.app files) -> bin/apps/*/*.app
rs232/ ISR-driven UART serial driver -> lib/librs232.a
packet/ HDLC framing, CRC, Go-Back-N -> lib/libpacket.a
security/ DH key exchange, XTEA-CTR cipher -> lib/libsecurity.a
@ -28,8 +28,8 @@ Requires the DJGPP cross-compiler (`i586-pc-msdosdjgpp-gcc`).
```
make -C dvx # builds lib/libdvx.a
make -C tasks # builds lib/libtasks.a
make -C dvxshell # builds bin/dvxshell.exe
make -C apps # builds bin/apps/*.app
make -C dvxshell # builds bin/dvx.exe
make -C apps # builds bin/apps/*/*.app
```
Set `DJGPP_PREFIX` in the Makefiles if your toolchain is installed somewhere
@ -37,18 +37,19 @@ other than `~/djgpp/djgpp`.
## Architecture
The shell runs as a single DOS executable (`dvxshell.exe`) that loads
The shell runs as a single DOS executable (`dvx.exe`) that loads
applications dynamically via DJGPP's DXE3 shared library system. Each app
is a `.app` file exporting an `appDescriptor` and `appMain` entry point.
```
+-------------------------------------------------------------------+
| dvxshell.exe (Task 0) |
| +-------------+ +-----------+ +----------+ +----------------+ |
| | shellMain | | shellApp | | shellDxe | | shellDesktop | |
| | (event loop)| | (lifecycle| | (DXE | | (Program Mgr) | |
| | | | + reaper)| | export) | | | |
| dvx.exe (Task 0) |
| +-------------+ +-----------+ +----------+ +----------------+ |
| +-------------+ +-----------+ +------------+ |
| | shellMain | | shellApp | | shellExport| |
| | (event loop)| | (lifecycle| | (DXE symbol| |
| | | | + reaper)| | export) | |
| +-------------+ +-----------+ +------------+ |
| | | | |
| +------+-------+ +----+-----+ +----+----+ |
| | libdvx.a | |libtasks.a| | libdxe | |
@ -98,10 +99,13 @@ is force-killed, and the shell continues running. Diagnostic information
## Deployment
```
mcopy -o -i <floppy.img> bin/dvxshell.exe ::DVXSHELL.EXE
mcopy -o -i <floppy.img> bin/apps/*.app ::APPS/
mcopy -o -i <floppy.img> bin/dvx.exe ::DVX.EXE
mcopy -s -o -i <floppy.img> bin/apps ::APPS
```
The `apps/` directory structure must be preserved on the target — Program Manager
recursively scans `apps/` for `.app` files at startup.
## Documentation
Each component directory has its own README with detailed API reference:

View file

@ -8,7 +8,7 @@ apps.
## Building
```
make # builds all .app files into ../bin/apps/
make # builds all .app files into ../bin/apps/<name>/
make clean # removes objects and binaries
```

View file

@ -1,13 +1,13 @@
# DVX Shell
Windows 3.x-style desktop shell for DOS. Loads applications as DXE3 shared
libraries, provides a Program Manager for launching apps, and includes crash
libraries and includes crash
recovery so one bad app doesn't take down the system.
## Building
```
make # builds ../bin/dvxshell.exe
make # builds ../bin/dvx.exe
make clean # removes objects and binary
```
@ -30,7 +30,7 @@ Each iteration of the main loop:
1. `dvxUpdate()` — process input events, dispatch callbacks, composite dirty rects
2. `tsYield()` — give CPU time to main-loop app tasks
3. `shellReapApps()` — clean up apps that terminated this frame
4. `desktopUpdate()` — notify Program Manager if anything changed
4. `desktopUpdate()` — notify the desktop app if anything changed
An idle callback (`idleYield`) yields to app tasks during quiet periods when
there are no events or dirty rects to process.