VOGONS


First post, by tauro

User metadata
Rank Newbie
Rank
Newbie

Is there such a thing as a terminal multiplexer such as GNU Screen, Tmux, etc, for DOS?

What's the closest alternative?

I read that there was an attempt in the early 90's called Twin but was soon abandoned because DOS lacks multi-tasking.

My main objective is being able to scroll (scrollback buffer), copy/paste, save screens, etc.

I found there's something called peruse which might be of help but I haven't tried it yet.

Reply 1 of 10, by Donovan V.

User metadata
Rank Newbie
Rank
Newbie

Can you give us a bit more info on what you're trying to achieve? DOS "Multiuser" console? or just a longer screen buffer?

Edit: This might be useful info

https://webcache.googleusercontent.com/search … 22+04:20:47+GMT

Reply 2 of 10, by davidrg

User metadata
Rank Member
Rank
Member

Novell DOS 7 can preemptively multitask and switch between multiple DOS programs according to the back of the box. Manual doesn't say anything about copy&paste between applications or terminal scrollback though. I assume copy&paste between applications wouldn't be impossible to implement but I can imagine scrolling could be a challenge (how do you scroll something like edit?).

Reply 3 of 10, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

There's plenty of multitaskers and task-swappers for DOS, some of them even shipped with certain DOS versions, see eg. Dosshell.
But I'm not aware of any with support for scrollback or copy&paste.

Reply 4 of 10, by Jo22

User metadata
Rank l33t++
Rank
l33t++

PC-MOS/386. It's a real multi-user, multi-tasking OS with support for serial terminals.

PC-MOS/386 released under GPL

Edit: If you merely need copy/paste between different DOS applications, have a look at DesqView.

Or Windows /386. 😉
https://www.youtube.com/watch?v=OcjvgxAKiHs

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 5 of 10, by tauro

User metadata
Rank Newbie
Rank
Newbie

Thanks for the answers guys, neither of them is exactly what I'm looking for.
Like I said, I'm looking for something like GNU screen or tmux, text only. Maybe the programs I linked could do the trick, but I haven't tried them yet.

Jo22 wrote on 2022-04-02, 21:02:

How cringe is that commercial? 😆

Reply 6 of 10, by Jo22

User metadata
Rank l33t++
Rank
l33t++
tauro wrote on 2022-04-03, 16:43:
Jo22 wrote on 2022-04-02, 21:02:

How cringe is that commercial? 😆

Here's another one. xD
https://www.youtube.com/watch?v=MOmdc6wIb4I

And one for DOS 5.
https://www.youtube.com/watch?v=dmEvPZUdAVI

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 7 of 10, by doshea

User metadata
Rank Member
Rank
Member

I used SCROLLit for scrollback, you can find it here: http://ftp.mpoli.fi/pub/software/DOS/UTILS/SCREEN/. It lets you select lines and save them to a file. Naturally you can use it inside a DOS session in DESQview or Windows to scroll back an individual DOS session's history, then use DESQview or Windows's copy facility to copy from the visible part of the buffer.

I imagine that there were probably many copy and paste TSRs out there, just search http://cd.textfiles.com/simtel/simtel20/MSDOS … EEN/.index.html for "paste" for example. I just used Windows for this (and confirmed that DESQview can do it too). You could probably use a combination of SCROLLit and a copy/paste TSR with some other multitasker.

Reply 8 of 10, by tauro

User metadata
Rank Newbie
Rank
Newbie
doshea wrote on 2022-04-09, 08:53:

I used SCROLLit for scrollback, you can find it here: http://ftp.mpoli.fi/pub/software/DOS/UTILS/SCREEN/. It lets you select lines and save them to a file. Naturally you can use it inside a DOS session in DESQview or Windows to scroll back an individual DOS session's history, then use DESQview or Windows's copy facility to copy from the visible part of the buffer.

I imagine that there were probably many copy and paste TSRs out there, just search http://cd.textfiles.com/simtel/simtel20/MSDOS … EEN/.index.html for "paste" for example. I just used Windows for this (and confirmed that DESQview can do it too). You could probably use a combination of SCROLLit and a copy/paste TSR with some other multitasker.

Thanks!! I will try them and try to find the setup that suits me better. As I can see there are a lot of options and it will take time.
For instance, I'm currently using DOSKey (not the official Windows one), but it doesn't save history to a file.
One thing that's bugging me is that I can't do CTRL+P to go back in the command history. I have to press the UP arrow. If I screw up and press CTRL+P then... DOS hangs and it's time for rebooting. It looks for the printer, apparently. It would be great to block that. It even happens on MS-DOS command prompts on Windows.

I've been trying that little program I linked "Peruse" and it works like a charm. Not all the programs let you scroll back, I guess not all write to the buffer, somehow. For example, "ls" from a certain port of the GNU utils doesn't seem to do it, but native DOS programs such as "dir", do.

Reply 9 of 10, by doshea

User metadata
Rank Member
Rank
Member
tauro wrote on 2022-04-10, 11:22:

For instance, I'm currently using DOSKey (not the official Windows one), but it doesn't save history to a file.

Have you tried alternate command interpreters? I just checked and 4DOS 7.50 (not sure if it's the last version) doesn't save history either, but at least it's much nicer than regular DOS COMMAND.COM + DOSKEY.

One thing that's bugging me is that I can't do CTRL+P to go back in the command history. I have to press the UP arrow. If I screw up and press CTRL+P then... DOS hangs and it's time for rebooting. It looks for the printer, apparently. It would be great to block that. It even happens on MS-DOS command prompts on Windows.

Some options you could consider:

Find a TSR which claims to fix this specific problem, since I seem to recall it being something that people did find annoying. Worse, they might have had a printer attached and wasted paper by hitting the wrong key. I assume you have it worse than DOS users who just accidentally hit Ctrl-P - I assume you're hitting it intentionally because you're used to *nix shells?

Find a TSR which redirects printing to a file: should stop the hanging, but might fill up your disk inadvertently, since if I recall correctly Ctrl-P toggles printing everything on the screen.

"Rebind" Ctrl-P using a suitable ANSI driver: maybe it doesn't work, but I think it should, I imagine the driver should intercept the key before it gets to whatever interprets Ctrl-P (DOS? BIOS?). Rebinding keys via the standard ANSI.SYS that comes with DOS was considered a security vulnerability - you might TYPE a text file and find one of your keys was changed to run a FORMAT command - so I used an ANSI.COM from PC Magazine which let me pass it a /B 10 option to limit the size of the rebindings buffer so no malicious text files could add more bindings after I set mine up (I'm not 100% sure that 10 was the right buffer size, I didn't write comments), then I used TYPE ...\KEYS.ANS to load my key bindings. This is a hex dump of the contents of that file:

0000000: 1b5b 343b 221b 6578 6974 0d0a 2270 0d0a  .[4;".exit.."p..
0000010: 0d0a

That rebinds Ctrl-D to send "exit" followed by CRLF (probably didn't need both CR and LF there?) so I could exit from a subshell or close a command prompt in Windows/DESQview/etc. just like I closed a shell in *nix, which you might appreciate. You could probably search old PC Magazine articles using Google Books to find out the syntax of the ANSI escape codes for rebinding keys if they're not actually standard VT100 or something.

Use bash: DJGPP provides bash, and I assume this is what you're used to if you're hitting Ctrl-P, although I assume it uses a lot more RAM.

I've been trying that little program I linked "Peruse" and it works like a charm. Not all the programs let you scroll back, I guess not all write to the buffer, somehow. For example, "ls" from a certain port of the GNU utils doesn't seem to do it, but native DOS programs such as "dir", do.

I imagine that programs that don't use BIOS screen routines but instead write directly to video memory would not be captured by scrollback buffers, maybe that's the issue.

Just based on what I have installed in a VM, I tried SCROLLit 1.7 with fairly old DJGPP bash and ls (bash is version 2.04) and the output was captured in the scrollback buffer. The DJGPP tools are 32-bit though, so they're kind of heavyweight and might not be what you want.

Reply 10 of 10, by doshea

User metadata
Rank Member
Rank
Member

I might have found a better option: http://cd.textfiles.com/simtel/simtel0595/DIS … ARD/WCED19C.ZIP I haven't tried it, but it seems to be described as tcsh-like including completion, and one of the key binding options is Emacs and it definitely uses Ctrl-P for previous line.

Wced is a command line editor. Features include a history of commands typed, aliasing of commands (with parameters), filename co […]
Show full quote

Wced is a command line editor. Features include a history of
commands typed, aliasing of commands (with parameters), filename
completion and command line editing. The main aim of Wced is to
improve the command line editing of DOS but use as little memory as
possible. When installed, wced uses approximately 14k of
conventional memory. Wcedlite performs like Wced but has no alias
functions.

If I was going to use it, I think I'd use the wcedlite version and use .BAT files for my "aliases" rather than consume RAM for them, since I assume it would keep the aliases in RAM.

It even supports Alt-F/Alt-B to go forward/backward by a word and lets you customise how it determines word boundaries, which sounds nice! I might try it one day.