No description
  • Rust 65.4%
  • DIGITAL Command Language 34.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-25 12:13:22 +00:00
common Implement BiosParameterBlock logic. 2026-07-03 18:56:31 +02:00
disk MBR handler. 2026-06-27 19:18:30 +02:00
fat MBR handler. 2026-06-27 19:18:30 +02:00
generator Add some docs. 2026-07-03 19:54:39 +02:00
machinespec Start machinespec crate 2026-06-29 09:59:50 +02:00
operatingsystem Implement BiosParameterBlock logic. 2026-07-03 18:56:31 +02:00
plans docs 2026-07-04 20:02:42 +02:00
.gitignore Clean up experimental AI helper. 2026-06-27 19:21:13 +02:00
Cargo.lock Start machinespec crate 2026-06-29 09:59:50 +02:00
Cargo.toml Start machinespec crate 2026-06-29 09:59:50 +02:00
CONTRIBUTING.md Add contribution guidelines. 2025-06-07 11:41:30 +02:00
Jenkinsfile Build manual for the 2.00 branch. 2025-06-21 11:19:01 +02:00
LICENSE Update copyright 2026-06-27 11:33:09 +02:00
README.md Update README.md 2025-01-06 21:13:40 +01:00

Welcome to DOSContainer

DOSContainer aims to provide a command line generator for 100% vintage-compatible floppy and hard disk images for IBM-PC and compatibles. This aims to support my retro computing hobby and the collection building that goes with it.

⚠️ I'm importing and cleaning up an older version of my codebase. Broken builds abound!

What's the point?

The DOS computing environment consisted of huge numbers of hardware configurations with all kinds of drivers and compatibility quirks. That fact, coupled with the fact that there were thousands of games and applications, accounts for literally a bazillion of possible permutations between all of those moving parts.

In order to help collection builders, DOSContainer aims to facilitate the quick creation of pristine disk image files that make up a collection. You tweak the manifest file that serves as input, then DOSContainer pops out a cleanly generated new disk image that is configured precisely to your specifications:

  • File format suitable for use in emulators or for copying straight to old hardware.
  • 100% correct boot sector code
  • FAT filesystem quirks correspond with the OS version.
  • Install bare minimal base OS
  • Middleware, drivers, memory management etc.
  • Your game or application itself
  • Autoboot configuration in AUTOEXEC.BAT

Use case?

You want all of your hundreds of games to boot with EGA configured and Roland MT-32 sound for the old retro setup you have in the attic? DOSContainer makes it easy to do that. It also makes it easy to do the exact same thing but for VGA and SoundBlaster Pro audio for the MiSTer in your living room. Did the world move on and deliver a new mouse driver? Swap it in across thousands of image files without breaking a sweat.

Current status

At the time of this writing, I'm consolidating my previous misguided attempt at organization into this cargo workspace-based repository. Misguided? Indeed: I had all my crates in their own repositories and hosted my own Cargo registry to integrate the whole lot into builds. As it turns out, workspaces are a lot easier in a case like this.

So that's where I am now: shoveling code over from my now private repos into this one, adjusting code as I go because I keep learning as I go. So for all intents and purposes, do treat this code base as BADLY BROKEN and very much incomplete for now. I'll make a release once the main branch here is capable of doing something useful with PC-DOS 1.00 again. That'll also be the point where I start a workflow with tickets and feature branches to invite outside contribution.