Rocksolid Light

Welcome to Rocksolid Light

mail  files  register  newsreader  groups  login

Message-ID:  

A penny saved is a penny to squander. -- Ambrose Bierce


devel / comp.os.msdos.programmer / Another attempt to rewrite DOS, piece-by-piece...

SubjectAuthor
* Another attempt to rewrite DOS, piece-by-piece...Steve Nickolas
+* Another attempt to rewrite DOS, piece-by-piece...Kerr-Mudd, John
|`- Another attempt to rewrite DOS, piece-by-piece...Steve Nickolas
+* Another attempt to rewrite DOS, piece-by-piece...Ben Collver
|`- Another attempt to rewrite DOS, piece-by-piece...Steve Nickolas
+- Another attempt to rewrite DOS, piece-by-piece...John McCue
+- Another attempt to rewrite DOS, piece-by-piece...Mateusz Viste
`- Another attempt to rewrite DOS, piece-by-piece...Steve Nickolas

1
Another attempt to rewrite DOS, piece-by-piece...

<alpine.DEB.2.21.2207091610420.23569@sd-119843.dedibox.fr>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=617&group=comp.os.msdos.programmer#617

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: usotsuki@buric.co (Steve Nickolas)
Newsgroups: comp.os.msdos.programmer
Subject: Another attempt to rewrite DOS, piece-by-piece...
Date: Sat, 9 Jul 2022 16:29:57 -0400
Organization: A noiseless patient Spider
Lines: 63
Message-ID: <alpine.DEB.2.21.2207091610420.23569@sd-119843.dedibox.fr>
MIME-Version: 1.0
Content-Type: text/plain; format=flowed; charset=US-ASCII
Injection-Info: reader01.eternal-september.org; posting-host="428e324e274781c1624a29417c178446";
logging-data="1204337"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+0qs116Vn1Mgm9eZFDsRqJC5QZ/DiVPEc="
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
Cancel-Lock: sha1:3jasEJHMSr88Tpz8zd1272LK+Aw=
X-X-Sender: mary@sd-119843.dedibox.fr
 by: Steve Nickolas - Sat, 9 Jul 2022 20:29 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.

Re: Another attempt to rewrite DOS, piece-by-piece...

<20220709221458.c9295e618371e2d5d32c5c50@127.0.0.1>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=618&group=comp.os.msdos.programmer#618

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!aioe.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: admin@127.0.0.1 (Kerr-Mudd, John)
Newsgroups: comp.os.msdos.programmer
Subject: Re: Another attempt to rewrite DOS, piece-by-piece...
Date: Sat, 9 Jul 2022 22:14:58 +0100
Organization: Dis
Lines: 26
Message-ID: <20220709221458.c9295e618371e2d5d32c5c50@127.0.0.1>
References: <alpine.DEB.2.21.2207091610420.23569@sd-119843.dedibox.fr>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Info: reader01.eternal-september.org; posting-host="cf0e461f66c910257797a2de6fbcec7c";
logging-data="1210205"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/zmrIeVmZcY1OWFBAiIYu6pj0ZAMGjxBw="
Cancel-Lock: sha1:1/SAV4yZQHMsDZJK0ozDNz9b1Z0=
X-Newsreader: Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32)
GNU: Terry Pratchett
;X-no-Archive: Maybe
 by: Kerr-Mudd, John - Sat, 9 Jul 2022 21:14 UTC

On Sat, 9 Jul 2022 16:29:57 -0400
Steve Nickolas <usotsuki@buric.co> wrote:

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

Very bold. Have fun!

I'm keen on small 8086 asm, in general, but I've not attempted to
replace any DOS commands. I'd be happy to just see if I could help
FreeDOS to slim down some of their commands, but I see you want to use a
different licence.

--
Bah, and indeed Humbug.

Re: Another attempt to rewrite DOS, piece-by-piece...

<alpine.DEB.2.21.2207091730330.24286@sd-119843.dedibox.fr>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=619&group=comp.os.msdos.programmer#619

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!aioe.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: usotsuki@buric.co (Steve Nickolas)
Newsgroups: comp.os.msdos.programmer
Subject: Re: Another attempt to rewrite DOS, piece-by-piece...
Date: Sat, 9 Jul 2022 17:39:02 -0400
Organization: A noiseless patient Spider
Lines: 33
Message-ID: <alpine.DEB.2.21.2207091730330.24286@sd-119843.dedibox.fr>
References: <alpine.DEB.2.21.2207091610420.23569@sd-119843.dedibox.fr> <20220709221458.c9295e618371e2d5d32c5c50@127.0.0.1>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII; format=flowed
Injection-Info: reader01.eternal-september.org; posting-host="428e324e274781c1624a29417c178446";
logging-data="1216882"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19So5iMrrZuNQ1Zutd/1kyUOV2pfQNinvY="
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
Cancel-Lock: sha1:c+Spg1JXPPW9JTpboOnEx8Q43r8=
In-Reply-To: <20220709221458.c9295e618371e2d5d32c5c50@127.0.0.1>
X-X-Sender: mary@sd-119843.dedibox.fr
 by: Steve Nickolas - Sat, 9 Jul 2022 21:39 UTC

On Sat, 9 Jul 2022, Kerr-Mudd, John wrote:

> Very bold. Have fun!

I am, even though it gets frustrating at times. :D

> I'm keen on small 8086 asm, in general, but I've not attempted to
> replace any DOS commands. I'd be happy to just see if I could help
> FreeDOS to slim down some of their commands, but I see you want to use a
> different licence.

Yeah, I favor BSD-type instead of GPL. (Got turned off to GPL after an
interaction with a GNU fanboy on the FreeDOS mailing list.)

FreeDOS does feel a bit bloaty. Not really a big problem for 486 and
later, but it's not a very good fit for my own 286/10.

I've actually been trying to translate some of the MS-DOS 2.11 code to
NASM, without success, because EDLIN is probably fine as it is or with
minor tweaks, and DEBUG just needs the addition of EMS support to be on
par with the final version. (Or, I could actually try tweaking the
FreeDOS version; ironically I think it's got exactly the same license as
the MS-DOS 2.11 version.)

I'm also considering using Robert Nordier's format.com, but I think it
would be better to translate it to ASM to get the size down. (Also I'm
not sure how well the C code would work in Watcom, since it was explicitly
written for Borland.)

I wish Ziff-Davis would relicense their old PC Magazine stuff - I'd
absolutely use ANSI.COM and the core of their defragger.

-uso.

Re: Another attempt to rewrite DOS, piece-by-piece...

<slrntckb1q.h8o.bencollver@svadhyaya.localdomain>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=620&group=comp.os.msdos.programmer#620

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!aioe.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: bencollver@tilde.pink (Ben Collver)
Newsgroups: comp.os.msdos.programmer
Subject: Re: Another attempt to rewrite DOS, piece-by-piece...
Date: Sun, 10 Jul 2022 01:34:08 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 12
Message-ID: <slrntckb1q.h8o.bencollver@svadhyaya.localdomain>
References: <alpine.DEB.2.21.2207091610420.23569@sd-119843.dedibox.fr>
Injection-Date: Sun, 10 Jul 2022 01:34:08 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="a736a02599bb6d2107e068b8fecc9eed";
logging-data="1254342"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1++/kj3KqyeAjcEsj158XZqtqrq6ML3mpQ="
User-Agent: slrn/1.0.3 (Linux)
Cancel-Lock: sha1:mQ7bZCoxGFrlHXVWP/LFW3E7Qz0=
 by: Ben Collver - Sun, 10 Jul 2022 01:34 UTC

On 2022-07-09, Steve Nickolas <usotsuki@buric.co> wrote:
> Yeah, I know. It's daft.

So long as you are having fun, keep it up! :-)

I like seeing cross-polination between these kinds of efforts.

That is an interesting observation about FreeDOS being bloaty. I'll
have to tinker with it in PCem some day and see how it does on
emulated 16-bit hardware.

-Ben

Re: Another attempt to rewrite DOS, piece-by-piece...

<alpine.DEB.2.21.2207092221100.26198@sd-119843.dedibox.fr>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=621&group=comp.os.msdos.programmer#621

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: usotsuki@buric.co (Steve Nickolas)
Newsgroups: comp.os.msdos.programmer
Subject: Re: Another attempt to rewrite DOS, piece-by-piece...
Date: Sat, 9 Jul 2022 22:25:57 -0400
Organization: A noiseless patient Spider
Lines: 28
Message-ID: <alpine.DEB.2.21.2207092221100.26198@sd-119843.dedibox.fr>
References: <alpine.DEB.2.21.2207091610420.23569@sd-119843.dedibox.fr> <slrntckb1q.h8o.bencollver@svadhyaya.localdomain>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII; format=flowed
Injection-Info: reader01.eternal-september.org; posting-host="bd81eb7987b5557ea8d92f184533b1d7";
logging-data="1356817"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/Y9CA8EUiDaktFUyzjgMvzT6oDILEBJhc="
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
Cancel-Lock: sha1:NKwJQdbwlQeRjfPmsPhpO+Lv6Hk=
In-Reply-To: <slrntckb1q.h8o.bencollver@svadhyaya.localdomain>
X-X-Sender: mary@sd-119843.dedibox.fr
 by: Steve Nickolas - Sun, 10 Jul 2022 02:25 UTC

On Sun, 10 Jul 2022, Ben Collver wrote:

> On 2022-07-09, Steve Nickolas <usotsuki@buric.co> wrote:
>> Yeah, I know. It's daft.
>
> So long as you are having fun, keep it up! :-)
>
> I like seeing cross-polination between these kinds of efforts.
>
> That is an interesting observation about FreeDOS being bloaty. I'll
> have to tinker with it in PCem some day and see how it does on
> emulated 16-bit hardware.
>
> -Ben
>

One of my tests was to boot the kernel, with no drivers, to a normal
command.com, with no TSRs, and run MEM.

It's certainly a lot heavier than DOS 5, MS-DOS 6.22 or PC DOS 7.
Probably because the bulk of the kernel was written in C. (I'm not
exactly well-versed in x86 ASM and some of the stuff in DOSLITE is my
literal first steps. CHOICE in particular reads like 6502 code.)

I mean, I can't exactly fault FreeDOS for being what it is; the kernel
*is* called "DOS-C" for a reason.

-uso.

Re: Another attempt to rewrite DOS, piece-by-piece...

<tade0i$19e2i$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=622&group=comp.os.msdos.programmer#622

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: jmccue@neutron.hsd1.ma.comcast.net (John McCue)
Newsgroups: comp.os.msdos.programmer
Subject: Re: Another attempt to rewrite DOS, piece-by-piece...
Date: Sun, 10 Jul 2022 02:37:06 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 17
Message-ID: <tade0i$19e2i$1@dont-email.me>
References: <alpine.DEB.2.21.2207091610420.23569@sd-119843.dedibox.fr>
Reply-To: jmclnx@SPAMisBADgmail.com
Injection-Date: Sun, 10 Jul 2022 02:37:06 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="88b3287f6a3b71fa5025b7b16785fcd0";
logging-data="1357906"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/6JaRCuvZABNZyzz7yKo72"
User-Agent: tin/2.6.1-20211226 ("Convalmore") (NetBSD/9.2 (amd64))
Cancel-Lock: sha1://iS6/FvfYLSabyNuCXK3lf0gq0=
X-OS-Version: NetBSD 9.2 amd64
 by: John McCue - Sun, 10 Jul 2022 02:37 UTC

Steve Nickolas <usotsuki@buric.co> wrote:
> 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.
>

Best way to learn, and can be a lot ot fun!
Enjoy

--
[t]csh(1) - "An elegant shell, for a more... civilized age."
- Paraphrasing Star Wars

Re: Another attempt to rewrite DOS, piece-by-piece...

<taenem$afh$1@gioia.aioe.org>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=623&group=comp.os.msdos.programmer#623

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!aioe.org!fJ3fCem/Ge388nCVHersJA.user.46.165.242.75.POSTED!not-for-mail
From: mateusz@xyz.invalid (Mateusz Viste)
Newsgroups: comp.os.msdos.programmer
Subject: Re: Another attempt to rewrite DOS, piece-by-piece...
Date: Sun, 10 Jul 2022 16:24:22 +0200
Organization: . . .
Message-ID: <taenem$afh$1@gioia.aioe.org>
References: <alpine.DEB.2.21.2207091610420.23569@sd-119843.dedibox.fr>
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="10737"; posting-host="fJ3fCem/Ge388nCVHersJA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
X-Notice: Filtered by postfilter v. 0.9.2
 by: Mateusz Viste - Sun, 10 Jul 2022 14:24 UTC

2022-07-09 at 16:29 -0400, Steve Nickolas wrote:
> My goals are different from FreeDOS, in that I'm looking for size
> rather than functionality, and have a more 8088/80286-specific focus.

That's pretty much my motivation as well. http://svardos.org

Mateusz

Re: Another attempt to rewrite DOS, piece-by-piece...

<alpine.DEB.2.21.2207292338250.24800@sd-119843.dedibox.fr>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=626&group=comp.os.msdos.programmer#626

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: usotsuki@buric.co (Steve Nickolas)
Newsgroups: comp.os.msdos.programmer
Subject: Re: Another attempt to rewrite DOS, piece-by-piece...
Date: Fri, 29 Jul 2022 23:58:11 -0400
Organization: A noiseless patient Spider
Lines: 76
Message-ID: <alpine.DEB.2.21.2207292338250.24800@sd-119843.dedibox.fr>
References: <alpine.DEB.2.21.2207091610420.23569@sd-119843.dedibox.fr>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-810111622-1659153493=:24800"
Injection-Info: reader01.eternal-september.org; posting-host="72a177f42c3a6ce3b23c7b71bd09f39c";
logging-data="3964922"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX188L7KA884wJXHmpP5lO8fIJBbzMmKJnOY="
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
Cancel-Lock: sha1:LxSKfCHKcSxH4DQOtJnezy5KvEQ=
X-X-Sender: mary@sd-119843.dedibox.fr
In-Reply-To: <alpine.DEB.2.21.2207091610420.23569@sd-119843.dedibox.fr>
 by: Steve Nickolas - Sat, 30 Jul 2022 03:58 UTC

Welp.

I was going to wait until I had some other important commands finished,
before uploading it to GitHub, because I didn't want it to be Yet Another
Abandoned Project®™© on the site. But since in the course of bashing away
I had implemented a significant chunk of COMMAND.COM functionality, I
figured that was evidence enough that I was serious. Certainly I've
implemented a few more commands although some of them are buggy or
incomplete.

https://github.com/buricco/doslite

I hope that the various readme files scattered around the tree will
explain my intentions better than I've done here, because I'm terrible
(can't blame it ALL on the autism). The main readme is almost a
manifesto.

(The phrase "use, share and improve in any combination" specifically
refers to the PINE/MANA fiasco, which is the reason I picked the license I
did instead of the regular BSD license.)

A few things I didn't mention elsewhere:

1. The C code is generally more sparsely commented than the ASM code.

For the most part, it's easy to make C code relatively self-explanatory.
With ASM, you really have to get into the mindset of the computer, and not
commenting stuff can easily lead you to lose your train of thought - at
least this is my personal experience. So my ASM code usually has heavy
comments to show what I intend, at least, the code to be doing.

2. The low-level stuff is implemented with inline assembly; stdio.h is
avoided like the plague, and neither int86() nor int86x() is used.

This is all a matter of size optimization. int86() and int86x() introduce
a lot of unnecessary overhead. The method I adopt here, while awkward,
works in both Borland C++ 3.1 (my compiler of choice) and OpenWatcom C/C++
1.9 (the compiler I actually *use* for DOSLITE, so that I don't have to
open an emulator just to build my code).

3. I tried to make a clear delineation between what I think is ready for
primetime and what is not. That is why there is an "exper" folder.

If a program becomes good enough, I will promote it (if you trace the
commits, you can see I did this with COMP). But if it's in "exper", that
means it's not done.

4. I am neither bound by existing code, nor by my own.

Originally, FIND was based on MS-DOS 2.11 source code. Later, after being
unable to patch a feature into the original code, I simply rewrote it from
the ground up and integrated the feature from the beginning.

I started writing DELTREE in ASM. It became a buggy nightmare and I
ported it to C to make it easier to get working. (The same is true of
COMP, though the unfinished ASM version never made it into revision
control.)

-uso.

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor