DOSContainer logo DOSContainer

We have lift-off!

📅 2025-05-27  · ✍️ Bas v.d. Wiel  ·  🏷 announcement

DOSContainer generates bootable PC-DOS 1.00 disk images! So technically that means we have lift-off, and I’d be lying if I said I wasn’t happy about this milestone. However, and there’s always a “but”, we’re not there yet. In fact, I’ve been at this very spot before and even further along. I had bootable PC-DOS running a BASIC game from a generated image but I still started over. Why? Architecture! The code would absolutely not scale at all, and I’m running into similar questions again this time around. Allow me to elaborate, because things are not as dire as they sound.

Read more...

Defining compatibility as data

📅 2025-05-24  · ✍️ Bas v.d. Wiel  ·  🏷 design

One major issue for DOSContainer is to figure out the optimum between what you have on your desk and what the software you’re building actually supports. In a previous version of the codebase I had started a convoluted decision tree of if/then/else/unless logic. That stopped scaling after two versions of DOS, while I intend to support dozens so something had to give. The alternative? Modeling compatibility as data!

Currently DOSContainer is gearing up to release 1.00 which will only support PC-DOS 1.00 on the surface. Inside the codebase, however, I’m already working with versions 1.00, 1.10 and 2.00 to prove the design. These three versions already have a few quirks between them and the hardware they run on that will exclude certain combinations. Modeling how to handle this is crucial to the future of DOSContainer.

Read more...

Draft of the Manifest file format

📅 2025-05-22  · ✍️ Bas v.d. Wiel  ·  🏷 design

Now that all components of what makes a disk image are coming together nicely, it’s time to worry about the first version of the Manifest and the file format that goes with it. The idea is for DOSContainer to primarily be easy to use for end users, meaning people who cultivate collections of DOS software. The Manifest is intended to be written by those knowledgeable on particular DOS applications and are more or less a one-off exercise, so it’s more verbose than HwSpec although I’m still trying to keep it as simple as I possibly can. Here goes!

Read more...

Another update on the filesystem crate

📅 2025-05-20  · ✍️ Bas v.d. Wiel  ·  🏷 design

Because the filesystem is such a crucial part of how DOSContainer aims to achieve that legendary `museum quality’ output, let’s look into it some more. The current progress is up to the point where I have two things: an abstract model of the data structures that constitute FAT and a proof-of-concept serializer struct that takes this model’s AllocationTable and spits out an IBM PC-DOS 1.00 compatible interpretation of it.

The abstract model of a File Allocation Table is there to support the basic data structure that all versions of the FAT filesystem have in common, without any of the specific quirks introduced by vendors over the decades. An AllocationTable in the abstract now looks like this:

Read more...