Hi,

On Mon, Jul 31, 2023 at 8:38 PM Paul Edwards via Freedos-devel
<freedos-devel@lists.sourceforge.net> wrote:
>
> Yes, if you're prepared to add a curses layer, then you can
> support both the standard, plus non-standard things like
> a PC BIOS. But neither fullscreen application that I actually
> used and care about (microemacs and msged) added that
> layer (both added their own layer though).

Yes, curses (lib) is what most *nix use. Wikipedia says originally the
first curses library's code was borrowed from Bill Joy's vi (a famous
full-screen editor, twice as popular as emacs). DOS also got ports of
Stevie, XVI, Calvin, and VIM.

There is still a DOS port of PDcurses, at least for DJGPP (386/DPMI).
It was used in Hesseling's THE editor (among other things).

Note that there were several so-called "microemacs" by different
people, and different forks and versions. The VILE editor (vi clone)
is based upon Daniel Lawrence's MicroEmacs, IIRC. (There is a DJGPP
port.)

I think there was some dispute over some of Conroy's code (later on).
And OpenBSD used to bundle "mg2a" Emacs (no GNU regex by default).
Minix 2 had Elle. DJGPP still has GNU Emacs (26.1 or such). Don't
forget Freemacs (and FreeDOS).

> > Shooting for platform independence is admirable.
>
> Sure. At some level I am trying to answer "what went wrong?".
> And perhaps demonstrating what we could have had instead
> if people had simply followed the standards. Although C90
> came a bit late for people to be in a position to follow.

Scott Franco is a big fan of ISO 7185 "classic" Pascal. I built a
version of (updated) P5 Pascal for FreeDOS back in 2013. That dialect
predates both UCSD and Turbo Pascals. But he was hard set on only
bootstrapping it with a similar "classic" Pascal compiler (e.g. GNU
Pascal / GPC), which is rare. However, with Scott's work, I was able
to salvage P4 (circa 1976), reuse p2c, and get that to build with
either OpenWatcom or GCC. P4 isn't nearly the full standard nor nearly
as efficient as P5, but it's better than nothing (IMHO). Both of those
are "public domain".

However, most people don't care about standards, and even the ones who
do don't really think anything "useful" can be written in them. Which
is untrue and a shame. There are way too many competing languages,
too. Something else is always "newer", shinier, more practical, more
elegant, more popular, etc.

I know I've mentioned some of this before. Just wanted to give you some idea.

> If you do setvbuf NBF to switch off buffering of stdin, it is assumed
> that by default that the C library will switch into raw mode and
> switch off line buffering, so that all the platform-specific code
> that would otherwise need to be done to achieve that (all the
> tset stuff on Unix e.g.) is hidden away in the C library.

Libraries like curses just hide (or build atop of) termcap and/or
terminfo on *nix. It's a big mess. Even the OpenWatcom installer on
Linux relies on terminfo, IIRC.

> But in reality there is no requirement for the C library to actually
> do that that I am aware of, and I'm not aware of anything other
> than PDPCLIB that does that. So if using an arbitrary C library
> your application would be forced to add platform-specific code
> after all.

It takes two to tango. Most people don't care about ultimate or
theoretical portability. While I 100% agree with and sympathize with
you, it's not interesting to them. They only care about "modern"
systems (which still ship commercially and are fully supported). Most
sympathy with DOS went away after WinXP (unsupported in 2014) or Win9x
(unsupported in 2006). AMD64 didn't help. Even VT-X took forever and
only helped emulators. I think a lot of people underestimated how hard
it would be to fully emulate (properly) in software.

> I'm not stating that Microsoft is embracing the exact same
> concept that I am (not saying they're not either), but I don't
> think it is so black and white that the microemacs that I just
> released as source and DOS binary is inherently useless.

Windows 11 is 64-bit only and doesn't have NTVDM anymore.

> Of course you can say that UC8086 itself is inherently useless
> too.

Definitely not. But I haven't tried it yet. "A poor carpenter blames
his tools." Most people lack imagination (or hope).

> But I'm expecting to burn the latest UC8086 onto a CF
> and boot it on my Book 8088 later today. I don't think I can
> even do that with the Freedos distribution I use as I think it
> has a dependence on an 80386 processor. So for an
> alternative to UC8086 I will be using MSDOS 6.22 and
> ANSIPLUS.

The kernel should have an 8086-friendly build. The latest shell might
be 8086-friendly too (although the old 2006 stable one was 186). What
else did you rely upon? I would definitely not bother with old MS-DOS.

> Linus said that his Unix would never be as sophisticated as
> what was it? SCO? I've forgotten. Almost no-one else has even
> heard of it to even forget.

Linus has said that if FreeBSD's 386 kernel was already available, he
probably wouldn't have bothered. Stallman has said that borrowing the
Mach code for Hurd was supposed to save time!

Good luck.


_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to