DOS Gaming Network Research based on the DOS Visual eXecutive GUI.
Find a file
2026-04-22 21:05:31 -05:00
assets Transparent image support. Image alignment in help. 2026-04-13 22:04:09 -05:00
config Major project layout change. Source locations now more match where binaries end up. 2026-04-16 19:33:17 -05:00
docs Bug fixes. 2026-04-22 20:33:49 -05:00
releases Added Alpha Release 3. 2026-03-26 21:46:14 -05:00
src Fixes for issues found by cppcheck. 2026-04-22 21:05:31 -05:00
unused License added to source files. 2026-04-17 23:23:44 -05:00
.gitattributes Transparent image support. Image alignment in help. 2026-04-13 22:04:09 -05:00
.gitignore An insane number of performance, logic, and feature enhancements; bug fixess; and other things. 2026-04-12 22:26:18 -05:00
cppcheck.sh Fixes for issues found by cppcheck. 2026-04-22 21:05:31 -05:00
dosbox-staging-overrides.conf An insane number of performance, logic, and feature enhancements; bug fixess; and other things. 2026-04-12 22:26:18 -05:00
dosbox-x-overrides.conf An insane number of performance, logic, and feature enhancements; bug fixess; and other things. 2026-04-12 22:26:18 -05:00
LICENSE.txt License assigned. 2026-04-17 19:42:18 -05:00
Makefile More BASIC widget debugging. 2026-04-20 22:12:23 -05:00
mkcd.sh More cleanup. Major docs update. 2026-04-18 17:00:18 -05:00
README.md More cleanup. Major docs update. 2026-04-18 17:00:18 -05:00
run.sh License added to source files. 2026-04-17 23:23:44 -05:00

DVX -- DOS Visual eXecutive

DVX is a windowed GUI environment and application platform for DOS. It provides a Motif-inspired desktop, a cooperative multitasking kernel, a widget toolkit, a compiled BASIC language with a visual form designer, and a small set of bundled applications.

The system is a compositor built on VESA VBE 2.0+ linear framebuffer video modes. A dirty-rectangle compositor keeps redraw cost proportional to what actually changes on screen, so the desktop is responsive even at 1024x768 on modest hardware.

What's Included

  • DVX Shell -- desktop, app lifecycle manager, Task Manager, crash recovery. The shell is the program the user interacts with and the host for all running applications.
  • Widget toolkit -- 31 widget types as plug-in modules: buttons, labels, text inputs, list boxes, tree views, tab controls, sliders, spinners, progress bars, canvases, scroll panes, splitters, an ANSI terminal, and more.
  • DVX BASIC -- a Visual Basic 3 compatible language with a visual form designer, per-procedure code editor, project management, and a bytecode compiler and VM. BASIC programs compile to standalone DVX applications.
  • Help system -- a full hypertext help viewer with table of contents, keyword index, full-text search, and inline images. Help files are compiled from a plain-text source format.
  • Serial / networking stack -- an ISR-driven UART driver, HDLC packet framing with CRC-16 and Go-Back-N reliable delivery, 1024-bit Diffie-Hellman key exchange, and XTEA-CTR encryption, plus a Linux bridge that connects a virtual serial port to a telnet BBS.
  • Control Panel -- themes, wallpapers, video mode, mouse configuration, all with live preview.
  • Bundled applications -- Program Manager (desktop launcher), Notepad, Clock, Image Viewer, DVX Demo, Control Panel, DVX BASIC IDE, Help Viewer, Resource Editor, Icon Editor, Help Editor, BASIC Demo.

Target Hardware

  • DOS with a 386-class CPU or newer (486 recommended, Pentium for best performance)
  • VESA BIOS Extensions 2.0 or newer with linear framebuffer support
  • 4 MB of extended memory minimum; 8 MB or more recommended
  • Any resolution the video card reports at 8, 15, 16, 24, or 32 bits per pixel. 640x480, 800x600, and 1024x768 are the common cases.
  • Two-button mouse; scroll wheel supported if a compatible driver is loaded

Building and Deploying

make          # build everything
make clean    # remove all build artifacts
./mkcd.sh     # build and produce a CD-ROM ISO image

make builds in dependency order: core, tasks, loader, helpers, host tools, widgets, shell, task manager, apps. Build output goes to bin/ and intermediate objects to obj/.

./mkcd.sh builds everything, then wraps bin/ into an ISO 9660 image for use with an emulator or for burning to physical media.

Directory Layout

dvxgui/
  assets/       logo and splash artwork
  bin/          build output (runtime tree; mirrors what ships)
  config/       shipped INI, themes, wallpapers
  docs/         HTML exports of the built-in help content
  LICENSE.txt   MIT license
  Makefile      top-level build
  mkcd.sh       build-and-package script
  src/
    apps/       bundled applications
    include/    shared include files (BASIC library declarations)
    libs/       core libraries (GUI, tasks, shell, helpers, serial, SQL)
    loader/     bootstrap executable
    tools/      host-native development tools and the BASIC compiler
    widgets/    widget plug-in modules

See src/tools/README.md for the host-side development tools (resource tool, icon generators, help compiler, proxy), and src/apps/kpunch/README.md for the SDK contract applications must follow.

Documentation

Full reference documentation ships with the system as browsable help:

  • docs/dvx_system_reference.html -- system API, widget catalog
  • docs/dvx_basic_reference.html -- DVX BASIC language reference
  • docs/dvx_help_viewer.html -- help viewer guide

The same content is available from inside DVX via the Help Viewer and Program Manager.

License

MIT. See LICENSE.txt.