Remix.run Logo
krustowski 3 days ago

You are right. The first iteration however is 16bit and is very close to MS-DOS in terms of compatibility. Moreover, any OS that can handle simple disk I/O ops could be considered a DOS system too, innit?

leeter 3 days ago | parent | next [-]

Correct, there is a difference between MS-DOS and IBM-PC compatible and a DOS (ex: all the DOSes that existed for Amiga/Apple II/Commodore etc). There are many DOSes (and even MSDOSes, because yay early PC era incompatibilities!), but there is a very dubious list of things needed to be MS-DOS and IBM-PC compatible. You can probably do it if you're willing to setup a hypervisor and emulate some hardware.

NGL one of my long term projects was/is something exactly like this but UEFI and secure boot. The idea being to use the VM extensions to create IBM-PC and DOS compatible environments. For anything using DPMI[1] I'd probably do the same trick as Win95 did and just replace it with my own implementation so it's not too overburdened with layers.

[1] https://en.wikipedia.org/wiki/DOS_Protected_Mode_Interface

JdeBP 3 days ago | parent [-]

A version of (say) FreeDOS that was layered on top of the EFI API instead of PC98 firmware interrupts would be quite interesting. That would be a major architectural change to most of the programs, of course. But one would have provided the EFI Shell with essentially a complete suite of MS-DOS (albeit not PC-DOS or DR-DOS) commands. That could probably be quite easily ported to (say) ARM whereas the original still has x86isms.

On the other hand, did you see https://github.com/FlyGoat/csmwrap when it came up a few weeks ago?

* https://news.ycombinator.com/item?id=44101828

There are already projects to provide replacements for the vanished Compatibility Support Module.

leeter 3 days ago | parent [-]

I did see that and for people that need that specific functionality it seemed like a good solution.

My goal was more "What if DOS hadn't ended and but kept up support for modern hardware" along with emulation of common things in DOS gaming. So for example you would be able to set up a PIV that mapped certain resources directly or emulated them depending on the need.

Could I use DOSBox for this... yes, but this is a "why not" sort of thing. I figured it would be a good excuse to learn OS dev. But life has kept me busy for now.

snvzz 3 days ago | parent | prev [-]

The 16bit one also looks fun[0] and would run on old PCs the new one does not. Have you considered open sourcing that one?

0. https://krusty.space/projects/rourexos/

krustowski 2 days ago | parent [-]

NGL, the codebase of the first iteration is pretty much a mess. It had been written in my mid-teenage years, so the C code is not very consistent across the project. There is a filesystem prototype written in Go as well... Also, it is quite complex to even compile RoureXOS: it needs Borland TCC and TASM (ca 1989 btw) to properly build a 16bit executable(s). It is feasible to compile it using DOSBox though. Maybe some day I could open source that one repository too.