DOSContainer logo DOSContainer

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...

Redesigning the filesystem crate

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

One of the hardest parts of this project is learning Rust. It’s also one of my main personal goals with this one. Rust is hardly forgiving, but using it made me a much better developer over the past few months. Unfortunately that also meant not having much progress to show for all my effort. Right now, I ran into my own code for the filesystem crate. That’s the part of DOSContainer that handles everything to do with FAT. I’m essentially reimplementing the FAT filesystem in a very unorthodox way. Here’s why that is so complicated.

Read more...

Designing the interaction between HwSpec and Manifest

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

After finishing the first implementation of HwSpec, I started working on handling the Manifest configuration file. These two are what should make DOSContainer work like magic for the end user, so they’d better be good. As it turns out, things aren’t at that point just yet. Some musings on the design and how DOSContainer will reconcile the facts of what you have (HwSpec) with what you want (Manifest) in an optimal way.

Read more...