Re: [Freedos-user] Dosemu on its own - does it exist?

2020-09-02 Thread Eric Auer
Hi!

> At the moment I know next to nothing about that "virtual x86 mode" - and
> I was hoping that CPU can be made to switch to that mode and then to boot
> even different OS into each "instance"

That is exactly what Windows does, but the instances are called tasks.
Because DOS is not task-aware, Windows has to catch everything which
DOS believes to be single-user and redirect it into multi-user :-)

You can run dosbox as a DOS app with HX RT, but just one instance.

The trick with virtual x86 mode is that it hides the protected mode
and task details from the "instance", so creating vm86 tasks means
extra work for the creator.

For example emm386 puts itself into protected mode and transplants
DOS into a vm86 task, but makes use of the fact that only a single
instance of DOS exists. The emm386 of DR-DOS already contains some
preparations for swapping tasks, which makes it more complicated.

Tools like desqview also use protected mode and vm86 tasks to keep
track of user interaction attempts of DOS and let you swap between
several DOS apps, which must all run in full screen mode. They are
more powerful than MS DOSSHELL which I believe to use no protected
mode: It probably only intercepts BIOS calls to keep track of the
hardware state expected by each app when you swap between them.

By the way, DOSEMU2 is aiming to also work on Windows, not just
on Linux. It has a built-in CPU emulation for situations where
no vm86 tasks can be acquired. Seems common in our 64-bit age.

Cheers, Eric



___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


[Freedos-user] Dosemu on its own - does it exist?

2020-09-02 Thread Bob Yates

Some possibilities, haven't checked them out myself

Concurrent DOS 386 https://en.wikipedia.org/wiki/Multiuser_DOS#CCP/M-86 
https://winworldpc.com/product/digital-research-con/386-3x


PC-MOS/386 https://en.wikipedia.org/wiki/PC-MOS/386 
https://github.com/roelandjansen/pcmos386v501



Currently hiding in the Arkansas Delta





___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] Dosemu on its own - does it exist?

2020-09-02 Thread dmccunney
On Wed, Sep 2, 2020 at 10:10 AM ZB  wrote:
> On Wed, Sep 02, 2020 at 03:56:26PM +0200, Mateusz Viste wrote:
>
> > https://en.wikipedia.org/wiki/DESQview
>
> Indeed I recall that name - but somehow never used it before. Does it do
> exactly what I've described? Like - for example - I could "split" 486 into
> four x86 CPUs, then I can use one instance to boot FreeDOS there, the second
> one to boot DOS 6.22 (for comparison), the third one for, say, DR-DOS etc.

No, you can't.

I ran it, back in the day.  Think of it as a multitasking character
mode GUI shell running on top of DOS. You were *not* running multiple
copies of *DOS*.  You were running multiple *applications* under DOS
at the same time.  DOS was single-tasking.  DV serialized access to it
by the various DOS applications, so it was the single task DOS was
supporting.

It used round robin time slicing, doing a bit of work on each process
running under it and moving to the next.  It really wanted a (by the
standards of the day) fast and powerful machine to be used
effectively.  A chap I knew back when was a BBS Sysop, and had four
nodes of Wildcat BBS software (a popular choice back then) running on
a single 25mhz AT clone with a 286 CPU.  Other sysops found themselves
running multiple PCs on a LAN if they wanted more than one node of the
BBS at a time.

You needed to experiment with DV to get settings correct to best
support what you did, with allocation of foreground and background
time slices being key.

Conceptually, Windows 3.1 was the next step beyond DesqView.  It was a
multi-tasking bit-mapped GUI shell on top of DOS.  The transition
Windows faced was from 16 bit to 32 bit applications.  Win95 made a
start on that, but DOS was still under the hood.  Win98 was the next
step.  DOS was still there because Win98 needed a real-mode *loader*,
but once it was initialized and running, it took over all OS functions
and DOS was out of the loop.

Win2K was a fully virtualized 32 bit system, and had no need for DOS.
(It *did* provide DOS emulation for folks who still wanted to run DOS
programs wia the NTVDM DLL.)

Win7 and later were aimed at 64bit systems.  On a 64bit system,
support for 16bit programs went away.  If you really needed them, you
ran some form of VM under Windows and ran the DOS programs in it.
(The vDOS Plus package discussed here is essentially a VM for running
16bit DOS apps.)

> Zbigniew
__
Dennis


___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] A few suggestions to improve debug

2020-09-02 Thread dmccunney
On Wed, Sep 2, 2020 at 5:47 AM tom ehlert  wrote:
>
> UNIX System V certainly was connected to serial terminals (Televideo,
> VT100, ...)
>
> and it had the VI visual editor with definitively cursor movement
> across the screen, even when the terminal had no cursor keys.

I was a system administrator for setups like that.  (At one shop, I
had 90 dumb terminals connecting to a SysV, and later a Solaris,
machine.)

The vi editor relied on the TERM variable being properly set in the
login profile.  (And vi is a "moded" editor.  In Insert mode, things
you type are inserted into the file you are editing.  In command mode,
keys on the keyboard become commands. H, J, K, and L move the cursor
left, down, up, and right respectively.  So you can use vi on machines
that don't have arrow keys.)

Unix used a database called termcap (short for terminal capabilities)
to tell how to communicate with the terminal.  The $TERM variable got
set to an entry in the local termcap file.  An ANSI termcap entry
looked like this.  It was provided with a DOS port of the Unix Larn
D style game (and required the ANSI.SYS driver to be loaded.) \E is
the escape character (ASCII 27).  A command sequences begin with
escape left bracket

#
# Monochrome IBMPC.
#This is a termcap for the NANSI.SYS device driver.
#It is the same as the ANSI termcap, except NANSI supports
#line insert (al) and delete (dl) while ANSI does not.
#
ibmpc-mono:\   Name of termcap entry
:co#80:\   Number of screen columns
:li#24:\ Number of screen rows
:ho=\E[H:\Home the cursor
:cl=\E[;H\E[2J:\Clear line
:bs:\Terminal has backspace key
:cm=\E[%i%2;%2H:\Cursor motion
:up=\E[A:\   Up arrow
:xd=\E[B:\   Down arrow
:nd=\E[C:\   Right arrow (non-destructive space)
:bc=\E[D:\   Left arrow
:ce=\E[K:\   Clear entry
:cd=\E[J:\Clear display
:ti=\E[m:\Terminal mode init
:te=\E[m:\   Terminal mode end init
:so=\E[1m:\ Standout mode (usually boldface)
:se=\E[m:\   End standout
:us=\E[4m:\ Underline mode
:ue=\E[m:\   End underline
:al=\E[L:\ Add line
:dl=\E[M: Delete line

This is a simple example.  More complex ones existed.  But there were
limits in how complex - terminal definitions had to fit into a 1K
buffer in memory.

Terminals fell into two broad categories - ASCII and ANSI.  Earlier
terminals were ASCII terminals, and the typical example was the DEC
VT52 or the Wyse 50.  The VT100 was the typical ANSI terminal.  The
principal difference was ANSI terminals using ANSI escape sequences
for terminal commands, which were a subset of the ANSI 3.64
specification.  The latter made life easier for admins.  The Wyse 50
ASCII terminal, for example, had a backspace key and a left arrow key.
*Both* sent ^H when sent, with no way to determine which of those keys
was pressed when the system got a ^H from the terminal.

> cursor movement is not tied to memory-mapped devices, and even old DOS
> Software (MS Word and friends) were derivative of CP/M software where
> they also have to live with serial terminals. they (for the most part)
> used only BIOS functions for screen control.

And CP/M had a configurable BIOS you could customize to best support
your hardware, because there was wide variation in what vendors
offered.

Likewise, early PC clones took a bit to get IBM PC BIOS emulation
correct.  Earlier versions of the VDE editor mentioned here could be
configured to use the BIOS for cursor movement if the particular brand
of machine wasn't fully PC compatible and didn't support the expected
control sequences.  Using BIOS calls was slower and more expensive
than direct addressing, so all breathed sighs of relief when it
stopped being needed.
__
Dennis


___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] Dosemu on its own - does it exist?

2020-09-02 Thread ZB
On Wed, Sep 02, 2020 at 04:23:47PM +0200, Mateusz Viste wrote:

> I wonder how far one could get with just an emulated 8086 core, 640K of
> mapped memory and a simulated BIOS.

At the moment I know next to nothing about that "virtual x86 mode" - and
I was hoping that CPU can be made to switch to that mode and then to boot
even different OS into each "instance"
-- 
regards,
Zbigniew


___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] Dosemu on its own - does it exist?

2020-09-02 Thread Mateusz Viste
No, it was application-level, and AFAIR it required the applications not 
to be too greedy about what they do. I think that what you describe now 
isn't possible without introducing some form of (expensive) emulation to 
avoid the different systems to fight for shared resources. At the very 
least it would require an emulation of a different BIOS for each instance.


I wonder how far one could get with just an emulated 8086 core, 640K of 
mapped memory and a simulated BIOS. Perhaps it could run some early 
MDA-compatible software that was made before the "use hardware directly" 
era.


Mateusz



On 02/09/2020 16:08, ZB wrote:

On Wed, Sep 02, 2020 at 03:56:26PM +0200, Mateusz Viste wrote:


https://en.wikipedia.org/wiki/DESQview


Indeed I recall that name - but somehow never used it before. Does it do
exactly what I've described? Like - for example - I could "split" 486 into
four x86 CPUs, then I can use one instance to boot FreeDOS there, the second
one to boot DOS 6.22 (for comparison), the third one for, say, DR-DOS etc.




___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] Dosemu on its own - does it exist?

2020-09-02 Thread ZB
On Wed, Sep 02, 2020 at 03:56:26PM +0200, Mateusz Viste wrote:

> https://en.wikipedia.org/wiki/DESQview

Indeed I recall that name - but somehow never used it before. Does it do
exactly what I've described? Like - for example - I could "split" 486 into
four x86 CPUs, then I can use one instance to boot FreeDOS there, the second
one to boot DOS 6.22 (for comparison), the third one for, say, DR-DOS etc.
-- 
regards,
Zbigniew


___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] A few suggestions to improve debug

2020-09-02 Thread Ralf Quint

On 9/2/2020 2:29 AM, tom ehlert wrote:

UNIX System V certainly was connected to serial terminals (Televideo,
VT100, ...)

and it had the VI visual editor with definitively cursor movement
across the screen, even when the terminal had no cursor keys.

cursor movement is not tied to memory-mapped devices, and even old DOS
Software (MS Word and friends) were derivative of CP/M software where
they also have to live with serial terminals. they (for the most part)
used only BIOS funtions for screen control.

only much later direct memory control became en vogue.


Well, yes, serial terminals had (depending on the model) quite 
sophisticated means of cursor control, however this is something that on 
the DOS level needs to be supported. And there are/were many different 
and largely incompatible sets of terminal control codes out there...


Ralf


--
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus



___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] Dosemu on its own - does it exist?

2020-09-02 Thread Mateusz Viste
DOSemu relies on a number of Linuxisms, hence cannot be used as such 
kind of bootstrap. What you think about is called DESQview.


https://en.wikipedia.org/wiki/DESQview

Mateusz


On 02/09/2020 15:48, ZB wrote:

If I'm correct, Dosemu uses "virtual x86 mode" of 386 and later processors.
But Dosemu of course needs "host OS".

I wonder does there exist any utility that offers "virtual x86 mode" and
acts as "host" by itself? Suppose we have (quite modest for today) computer
with 386/486 and 4 MB RAM. Theoretically it should be possible to run quite
comfortably four DOS "instances" each one having 1 MB just for itself - and,
say, switching among them with - like among consoles in Linux.

So concentrating on using DOS - because 486 is much too "weak" for Linux of
today - I mean utility whose duty is just to switch CPU into "virtual x86
mode", split RAM among established "instances" and then just share hardware
resources (keyboard, CD-ROM, video, sound... everything) among them.

No idea - maybe it had been aleady created, just I didn't stumble upon it yet?



___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


[Freedos-user] Dosemu on its own - does it exist?

2020-09-02 Thread ZB
If I'm correct, Dosemu uses "virtual x86 mode" of 386 and later processors.
But Dosemu of course needs "host OS".

I wonder does there exist any utility that offers "virtual x86 mode" and
acts as "host" by itself? Suppose we have (quite modest for today) computer
with 386/486 and 4 MB RAM. Theoretically it should be possible to run quite
comfortably four DOS "instances" each one having 1 MB just for itself - and,
say, switching among them with - like among consoles in Linux.

So concentrating on using DOS - because 486 is much too "weak" for Linux of
today - I mean utility whose duty is just to switch CPU into "virtual x86
mode", split RAM among established "instances" and then just share hardware
resources (keyboard, CD-ROM, video, sound... everything) among them.

No idea - maybe it had been aleady created, just I didn't stumble upon it yet?
-- 
regards,
Zbigniew


___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] A few suggestions to improve debug

2020-09-02 Thread tom ehlert


> And as there aren't many tools where ZB's idea would make
> sense in his opinion, it seems a bit like brewing up a tempest in a 
> teacup... ;-)
+1

> And another reason why this might not be in general a good idea is if we
> take compatibility with old(er) DOS software/environments serious, one
> might want to consider that DOS (in its basic form) was able to run on
> non-memory mapped devices, like serial terminals, which might limit your
> ability to move the cursor quite a bit.

UNIX System V certainly was connected to serial terminals (Televideo,
VT100, ...)

and it had the VI visual editor with definitively cursor movement
across the screen, even when the terminal had no cursor keys.

cursor movement is not tied to memory-mapped devices, and even old DOS
Software (MS Word and friends) were derivative of CP/M software where
they also have to live with serial terminals. they (for the most part)
used only BIOS funtions for screen control.

only much later direct memory control became en vogue.


Tom



___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user