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

View file

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

View file

@ -1,13 +1,13 @@
# DVX Shell # DVX Shell
Windows 3.x-style desktop shell for DOS. Loads applications as DXE3 shared 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. recovery so one bad app doesn't take down the system.
## Building ## Building
``` ```
make # builds ../bin/dvxshell.exe make # builds ../bin/dvx.exe
make clean # removes objects and binary 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 1. `dvxUpdate()` — process input events, dispatch callbacks, composite dirty rects
2. `tsYield()` — give CPU time to main-loop app tasks 2. `tsYield()` — give CPU time to main-loop app tasks
3. `shellReapApps()` — clean up apps that terminated this frame 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 An idle callback (`idleYield`) yields to app tasks during quiet periods when
there are no events or dirty rects to process. there are no events or dirty rects to process.