19

I've got an HP 200LX, which runs DOS 5.0 from ROM, and I'm using EMM200 to provide some EMS from the C: RAM disk (it uses the memory controller to directly map the "disk" blocks into memory, and thus doesn't rely on disk I/O for swapping).

What options do I have for doing simple multi-tasking on this system? Note that I don't need actual concurrent/background execution. Suspending one program and switching to another is perfectly fine. Ideally, I'd like something that can make use of EMS, both for keeping itself out of the lower 640 KB as much as possible (I know it would need at least a few KB for an interrupt handler), and potentially for actual task swapping, instead of dumping to disk.

These are the ones I know of:

  • DOSSHELL – Functionally, not too far from what I'm looking for, but I don't think it takes advantage of EMS, and the startup time is unacceptably long as it reads the whole disk structure into memory whenever launching or switching back.
  • Software Carousel – I know this was always a favorite among 200LX users, but it's commercial software, and seems to still be available from Thaddeus Computing for about $50. I want to make sure there aren't better/equal options before spending the money.
  • DESQView – Can this even be used on anything prior to the 386? And is it useful on such chips?

Do any of the old file management shells like Norton Commander or X-Tree provide this kind of functionality?

10
  • 3
    For what it's worth, that's what IBM's TopView was designed specifically for, but it's long since been discontinued, of course. en.wikipedia.org/wiki/IBM_TopView Jun 8, 2018 at 14:52
  • 1
    The 386 is a much better computer for that...80186 was a braindead commercial flop. Jun 9, 2018 at 10:07
  • 2
    @Rui I was under the impression that it was quite successful in its target market, embedded systems; wasn’t it? It was never intended for PCs... Jun 9, 2018 at 17:55
  • The PC industry seems to be very confused over the term multitasking. To application users, it means running several unrelated applications and being able to switch between them. To some developers, it means running one program which has several tasks (nowadays sometimes known as threads) which interoperate with each other.
    – cup
    Jun 9, 2018 at 22:14
  • 1
    @JAB: And in the context of retrocomputing, it's worth noting that the modern process / thread distinction doesn't even really make sense without an MMU. The Amiga is a notable example: its kernel does full non-cooperative multitasking with timeslicing, but since all the processes live in a single shared memory space, they're really more like threads in the modern sense. (High-end Amigas did have MMUs, and the OS did provide memory management and message passing APIs that could, in principle, allow process isolation. But AFAIK, that was never fully implemented in any classic AmigaOS version.) Jun 10, 2018 at 14:42

6 Answers 6

24

I think your best bet given the circumstances is DESQview; it works fine on pre-386 computers, especially if you have EMS. (There’s lots of confusion around the DESQview/386 terminology; that was DESQview bundled with QEMM386, and the 386-specific part was QEMM386, not DESQview.)

This VCF thread has pointers to other tools, including concurrent versions of DOS, but they would be less useful in your case since you have DOS in ROM.

6
  • Thanks, I had never heard of PC-MIX, and while it doesn't seem to be quite what I need (does actual multi-processing, so each task gets only a subset of RAM allocated), it could prove useful in other situations.
    – db2
    Jun 8, 2018 at 14:04
  • I used DESQview quite successfully for software development and general usage on my 10 MHz 8088 with only 640 KiB of RAM (but with a 20 MB HD) Jun 8, 2018 at 14:23
  • @BrianKnoblauch That's encouraging, I might have to give it a try. This is a 16 MHz machine with a 1.4 MB C: RAM disk and 64 MB compact flash A:. My big concern is that the task switcher have as little conventional memory footprint as possible.
    – db2
    Jun 8, 2018 at 14:56
  • 2
    While going on about DesqView, there was also DesqView/X. This was DesqView/386 with an X11 window server layered on top and a number of X11 programs available. It let you use a more graphical display for DesqView, but also enabled remote X11 use cases like displaying a remote program's windows on your local machine or displaying local DOS programs on a remote X11 server. Heady stuff for those pre-Linux PC days.
    – mschaef
    Jan 27, 2021 at 22:47
  • 2
    @mschaef yes, and DV/X could even run Windows, so you could have Windows programs exported over X... Incidentally, DV and DV/X were made available legally on chsoft.com a while ago, and can be found on various mirrors. Jan 28, 2021 at 19:26
17

Suspending one program and switching to another is perfectly fine

GEOS may be well suited to your purpose.

It runs more famously on the Commodore 64, but it was ported to DOS also. It predates Windows IIRC so it should run nicely on your setup.

5
  • 3
    Ah yes, GEOS is an interesting option... It doesn’t predate Windows though, its initial release was in 1990 (marketed as a more efficient multi-tasker than Windows 2, and especially targeted at computers which were too slow for Windows 2). Jun 8, 2018 at 14:06
  • Funny enough, the HP OmniGo 100 actually does run GEOS.
    – db2
    Jun 8, 2018 at 15:01
  • 2
    GEOS was released in 1986.
    – Glen Yates
    Jun 8, 2018 at 15:57
  • 3
    @Glen on the C64, yes; but the PC release was in 1990. Even in 1986 Windows had already been released... Jun 8, 2018 at 16:04
  • 1
    C64 GEOS was not multitask.
    – peterh
    Jun 9, 2018 at 21:48
16

Windows 2.x or 3.0.

Real mode Windows is able to run DOS applications and switch between them, but not able to present them in a window or run them concurrently as the 386 version. Also, don't trust Wikipedia on the shortcomings of Windows on an 80186: I used Windows 3.0 extensively on my school's 80186-based PCs and I can assure you that the assertion that "[a]lmost all applications designed for Windows 3.0 had to be run in standard or 386 enhanced modes" is false.

3
  • 3
    Windows 3.0 will run on the HP 200LX. I've run it on mine.
    – Tim Locke
    Jan 23, 2021 at 19:29
  • 4
    Many British primary schools used to run Windows 3.0 on 80186 based RM Nimbus machines in the early 90s. Jan 27, 2021 at 18:44
  • I suspect that the disk footprint of Windows will be too large for the OP. Jan 28, 2021 at 12:37
3

DESQView is probably the best answer, but if you were often online back in the early '90s, you might have used Telemate and its multitasking abilities.

Telemate is mainly a terminal emulator, but you could run DOS commands even while transferring a file. It worked best with a mouse. Here is a short demonstration video.

2

Aside from the DOS world, there are several UNIX-like systems that fit on an 8086 PC platform. Minix 2.0 in particular comes to mind, and I do know it can run on the HP 200LX.

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

-2

You can try writing TSR program to achieve multitasking in some crude way ;-)

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

3
  • 5
    This isn't a particularly good answer, as it doesn't provide a mechanism by which multitasking can be achieved through TSR. TSR was a very well known mechanism back in the day, since it was required to do anything remotely similar to this if you weren't replacing DOS. You could improve it by adding a way of using TSR to achieve this.
    – wizzwizz4
    Jun 9, 2018 at 20:03
  • 4
    @wizzwizz4: Using the TSR approach will require that the code for all but one of the tasks be written in a "weird" way. I don't think there's enough space in a Stack Overflow answer to describe everything necessary to make a useful TSR, but it might be helpful to extend the answer a little bit by noting what factors may make the approach more or less suitable than others, and thus may help the OP determine whether further research on the subject would likely be helpful.
    – supercat
    Jun 14, 2018 at 15:45
  • One of the big problems with TSRs is that the time starts drifting. I've seen such systems implemented and losing over 5 minutes a day. Normally they use the timer interrupt but you have to remember to compensate for the time you are using up.
    – cup
    Jan 28, 2021 at 6:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .