Steve Nickolas
2022-07-09 20:29:57 UTC
Yeah, I know. It's daft. You got FreeDOS, RxDOS, PDOS, PC-MOS, and
there's probably other clones of MS-DOS out there. And I haven't even
started doing anything *kernel*-wise.
But over the past not quite year, I've been pushing myself to try to
rewrite all the DOS utilities I can, keeping in mind that I'm not very
well-versed in low-level coding, and to make them as small as possible
without removing any key documented functionality as far as MS-DOS 5 or 6.
I *am* having difficulties because I know I'm a terrible programmer.
Sometimes I'll spend days wracking my brain over something, and never
quite figure it out.
Here's the premise...
I've noticed that a lot of the time, when it comes to running DOS on a
really old computer (such as my PS/2 model 30/286) the question ends up
being, 3.3 and more RAM, or 6.22 and more functionality? And I didn't
want that to have to be a question. Many of the commands I have
implemented - either in NASM or Watcom C - are extremely lightweight, and
would easily provide MS-DOS 6.2x function on 3.3.
If I could, I would expand the project myself to include most if not all
of the MS-DOS 6.21 functionality, designed to be as compact as possible.
So far I've implemented ATTRIB, CHOICE, DELTREE, FIND, LABEL, MORE and
SORT. (MORE does utilize Microsoft's officially released source code.)
The bulk of the code is released under the UIUC license, MORE as of
necessity being the exception. I've been working on other commands, but
certain ones are eluding me.
My goals are different from FreeDOS, in that I'm looking for size rather
than functionality, and have a more 8088/80286-specific focus. Because I
prefer to limit licenses to "university" type licenses like BSD, MIT,
UIUC, ISC/OpenBSD or similar, the FreeDOS code is off-limits to me anyway.
I plan to make a more public release if and when I have more to release.
Currently, all C will roll with OpenWatcom 1.9 and all ASM will roll with
NASM 2.15.5. I use this combination because I can easily cross-compile
from Linux. (OpenWatcom is a less than ideal solution, but it's probably
the best choice I've got right now.)
https://6.buric.co/doslite/
(These are just source dumps, unversioned but stamped YYMMDDHH in local
time.)
Before calling it DOSLITE, I had referred to it as Project Theseus,
because I intend it to replace MS-DOS one "plank" at a time until it has
completely replaced it.
If anyone has something that may be of use, I am willing to use it
provided it more or less implements an existing MS-DOS command, can serve
as a drop-in replacement for it, and is compatible with my licensing and
compiler requirements.
I understand this is about tilting at windmills, given that even 20 years
ago I was a failure at attempting this - and I wanted to make sure I had
at least something to show for my idea, and not just philosophical "sperg"
rambling.
-uso.
there's probably other clones of MS-DOS out there. And I haven't even
started doing anything *kernel*-wise.
But over the past not quite year, I've been pushing myself to try to
rewrite all the DOS utilities I can, keeping in mind that I'm not very
well-versed in low-level coding, and to make them as small as possible
without removing any key documented functionality as far as MS-DOS 5 or 6.
I *am* having difficulties because I know I'm a terrible programmer.
Sometimes I'll spend days wracking my brain over something, and never
quite figure it out.
Here's the premise...
I've noticed that a lot of the time, when it comes to running DOS on a
really old computer (such as my PS/2 model 30/286) the question ends up
being, 3.3 and more RAM, or 6.22 and more functionality? And I didn't
want that to have to be a question. Many of the commands I have
implemented - either in NASM or Watcom C - are extremely lightweight, and
would easily provide MS-DOS 6.2x function on 3.3.
If I could, I would expand the project myself to include most if not all
of the MS-DOS 6.21 functionality, designed to be as compact as possible.
So far I've implemented ATTRIB, CHOICE, DELTREE, FIND, LABEL, MORE and
SORT. (MORE does utilize Microsoft's officially released source code.)
The bulk of the code is released under the UIUC license, MORE as of
necessity being the exception. I've been working on other commands, but
certain ones are eluding me.
My goals are different from FreeDOS, in that I'm looking for size rather
than functionality, and have a more 8088/80286-specific focus. Because I
prefer to limit licenses to "university" type licenses like BSD, MIT,
UIUC, ISC/OpenBSD or similar, the FreeDOS code is off-limits to me anyway.
I plan to make a more public release if and when I have more to release.
Currently, all C will roll with OpenWatcom 1.9 and all ASM will roll with
NASM 2.15.5. I use this combination because I can easily cross-compile
from Linux. (OpenWatcom is a less than ideal solution, but it's probably
the best choice I've got right now.)
https://6.buric.co/doslite/
(These are just source dumps, unversioned but stamped YYMMDDHH in local
time.)
Before calling it DOSLITE, I had referred to it as Project Theseus,
because I intend it to replace MS-DOS one "plank" at a time until it has
completely replaced it.
If anyone has something that may be of use, I am willing to use it
provided it more or less implements an existing MS-DOS command, can serve
as a drop-in replacement for it, and is compatible with my licensing and
compiler requirements.
I understand this is about tilting at windmills, given that even 20 years
ago I was a failure at attempting this - and I wanted to make sure I had
at least something to show for my idea, and not just philosophical "sperg"
rambling.
-uso.