DOSContainer logo DOSContainer

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

How should we define storage?

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

At the time of this writing, the HwSpec format does not concern itself with storage media. The reason for this is simple, but it may also be wrong: storage is currently a concern for Manifest. The Manifest determines everything that has to do with the application or game and the disk image it will create. However, this determination is a leftover from when DOSContainer didn’t yet have a concept of HwSpec. Some thoughts..

Read more...

How to set up your hardware specifications

📅 2025-05-12  · ✍️ Bas v.d. Wiel  ·  🏷 design , documentation

Hardware specifications are one key part of a complete DOSContainer configuration. Manifests are the other, but we’ll get to that. Hardware specifications, or HwSpec for short declares to DOSContainer what your retro PC hardware looks like. In it, you specify exactly what devices you have in your real or emulated system so that DOSContainer can take this into account when configuring applications and games to run on your system. It means DOSContainer will configure your game to use CGA graphics if that’s all you have, even if the game itself can do better. This article explains the first draft of the HwSpec TOML file format and shows a couple of complete examples that define a real IBM PC and a 1983 IBM XT.

Read more...