14

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?

  • 2
    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 – Bill Hileman Jun 8 '18 at 14:52
  • 1
    The 386 is a much better computer for that...80186 was a braindead commercial flop. – Rui F Ribeiro Jun 9 '18 at 10:07
  • 1
    @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... – Stephen Kitt Jun 9 '18 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 '18 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.) – Ilmari Karonen Jun 10 '18 at 14:42
13

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.

  • 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 '18 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) – Brian Knoblauch Jun 8 '18 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 '18 at 14:56
10

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.

  • 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). – Stephen Kitt Jun 8 '18 at 14:06
  • Funny enough, the HP OmniGo 100 actually does run GEOS. – db2 Jun 8 '18 at 15:01
  • GEOS was released in 1986. – Glen Yates Jun 8 '18 at 15:57
  • 3
    @Glen on the C64, yes; but the PC release was in 1990. Even in 1986 Windows had already been released... – Stephen Kitt Jun 8 '18 at 16:04
  • 1
    C64 GEOS was not multitask. – user259412 Jun 9 '18 at 21:48
8

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.

0

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

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

  • 2
    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 '18 at 20:03
  • 2
    @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 '18 at 15:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.