More doc fixes.
This commit is contained in:
parent
4c2549efd4
commit
937be903af
3 changed files with 20 additions and 16 deletions
28
README.md
28
README.md
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue