VOGONS


First post, by eesz34

User metadata
Rank Member
Rank
Member

This should be easily answered by doing some searching, right? Well I still don't understand this.

They say a 286 will multitask with DV, but I've tried it and it doesn't run them concurrently. Perhaps by "multitask" it's referring to task switching? I've ran DV on a 386 and it clearly runs multiple sessions concurrently. But on a 286 it seems to pause the background session. However I've found claims that people have run BBSs in the background using a 286 with DV. Huh?

There seems to be something about the type of EMS provided when running DV on a 286. My 286 is a SCAT so I used the chipset EMS driver. DV runs without complaint, but again, my test of running pkzip in the background shows it did nothing during that time, then picks back up when it's foreground.

Is this supposed to work? I can't believe this isn't more straightforward to find.

Reply 1 of 8, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Hi there! I'll try to explain, according to my understanding, but I'm not very good at wording things, I'm afraid. 😅

But on a 286 it seems to pause the background session.

Why, because the video isn't updating?
If so, that's because virtualizing video is tricky.
Writings that are made directly to video buffer (text, graphics) must be physically intercepted somehow.
That's were V86 really comes in handy (386+).

Otherwise, a still image is being displayed as a placeholder.
I've encountered that with running MS Windows 2&3 (Real-Mode kernal, VGA driver) on DesqView. It won't update visually unless being in focus.

However I've found claims that people have run BBSs in the background using a 286 with DV. Huh?

Yes, Desqview was popular for that, before OS/2 2.x was around.
I think that's because serial port i/o can be more easily trapped/routed/virtualized than video.
Also, some programs support a FOSSIL driver. If Desqview provides corresponding support, it may work without heavy trickery.

There seems to be something about the type of EMS provided when running DV on a 286. My 286 is a SCAT so I used the chipset EMS driver.

Yes, Desqview supports EMS. It really LOVES EMS, actually. 😘
That's because with LIM 4, or AST's EEMS, Desqview can map programs in/out of memory.

And that's where things get really interesting.
Certain physical Expanded Memory boards had the abillity to back-fill memory!
To make that work, memory from the motherboard had been moved to the memory board.
So the EMS hardware essentially took the role of a memory management unit (MMU)!

With this ability and LIM 4's support for using page frames larger than 64 KB (EMS 3.2 limit, spec also supported data only),
the page frame could span/cover the complete conventional memory.

So Desqview+LIM4/EEMS could swap the complete conventional memory in and out.
Alas, this required a proper memory expansion of about 2 MB EMS (holding 4x 512KB of conventional memory).

Unfortunately, I don't have much experience with this. Have to ask my dad..
I was happy with Small Frame EMS (64 KB) and Large Frame EMS (256KB).
- That's what Windows 2.03 and 3.0 (Real-Mode) do support.

Edit: Typo fixed.

Edit: I forgot to mention. It's also possible to combine EMS 3.2 hardware with a LIM4 Expanded Memory manager.
Especially older or simpler designs went this route (chipset EMS, maybe that Lotech EMS card).
These solutions usually do only support a 64 KB page frame and perhaps no advanced LIM4 features (DMA, back-filling).
However, they're Real-Mode friendly and work fine with most EMS-aware applications.
And they're still better than most LIMulators (like EMM286) that use XMS or the HDD (swap file).

"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 2 of 8, by eesz34

User metadata
Rank Member
Rank
Member
Jo22 wrote on 2023-09-01, 06:27:
Hi there! I'll try to explain, according to my understanding, but I'm not very good at wording things, I'm afraid. 😅 […]
Show full quote

Hi there! I'll try to explain, according to my understanding, but I'm not very good at wording things, I'm afraid. 😅

But on a 286 it seems to pause the background session.

Why, because the video isn't updating?
If so, that's because virtualizing video is tricky.
Writings that are made directly to video buffer (text, graphics) must be physically intercepted somehow.
That's were V86 really comes in handy (386+).

Otherwise, a still image is being displayed as a placeholder.
I've encountered that with running MS Windows 2&3 (Real-Mode kernal, VGA driver) on DesqView. It won't update visually unless being in focus.

However I've found claims that people have run BBSs in the background using a 286 with DV. Huh?

Yes, Desqview was popular for that, before OS/2 2.x was around.
I think that's because serial port i/o can be more easily trapped/routed/virtualized than video.
Also, some programs support a FOSSIL driver. If Desqview provides corresponding support, it may work without heavy trickery.

There seems to be something about the type of EMS provided when running DV on a 286. My 286 is a SCAT so I used the chipset EMS driver.

Yes, Desqview supports EMS. It really LOVES EMS, actually. 😘
That's because with LIM 4, or AST's EEMS, Desqview can map programs in/out of memory.

And that's where things get really interesting.
Certain physical Expanded Memory boards had the abillity to back-fill memory!
To make that work, memory from the motherboard had been moved to the memory board.
So the EMS hardware essentially took the role of a memory management unit (MMU)!

With this ability and LIM 4's support for using page frames larger than 64 KB (EMS 3.2 limit, spec also supported data only),
the page frame could span/cover the complete conventional memory.

So Desqview+LIM4/EEMS could swap the complete conventional memory in and out.
Alas, this required a proper memory expansion of about 2 MB EMS (holding 4x 512KB of conventional memory).

Unfortunately, I don't have much experience with this. Have to ask my dad..
I was happy with Small Frame EMS (64 KB) and Large Frame EMS (256KB).
- That's what Windows 2.03 and 3.0 (Real-Mode) do support.

Edit: Typo fixed.

Edit: I forgot to mention. It's also possible to combine EMS 3.2 hardware with a LIM4 Expanded Memory manager.
Especially older or simpler designs went this route (chipset EMS, maybe that Lotech EMS card).
These solutions usually do only support a 64 KB page frame and perhaps no advanced LIM4 features (DMA, back-filling).
However, they're Real-Mode friendly and work fine with most EMS-aware applications.
And they're still better than most LIMulators (like EMM286) that use XMS or the HDD (swap file).

Very good explanation, however something still doesn't make sense. But first, now I think I understand why it's said that as much conventional RAM as possible should be moved to EMS, even down to, I think zero? So what you explained seems to support that and I understand that now.

The part that doesn't make sense is I'm not seeing activity in the background. I was trying to think of a quick test and so I ran PKzip to compress a large directory. The video paused, yes, but PKzip could theoretically continue working even without updating the video. What I expected was to switch back to that task and see a lot more files it had compressed, but it was right where I left it. So perhaps PKzip can't function unless it can update the video. I'm not sure how that works on a software level, but if writing to the video is a blocking function, well then it might just freeze during that time.

Maybe I need to find something that doesn't have to write to the screen. But wouldn't BBS systems write something to the screen when someone logged in? So many questions!

Reply 4 of 8, by eesz34

User metadata
Rank Member
Rank
Member
eesz34 wrote on 2023-08-31, 22:03:
This should be easily answered by doing some searching, right? Well I still don't understand this. […]
Show full quote

This should be easily answered by doing some searching, right? Well I still don't understand this.

They say a 286 will multitask with DV, but I've tried it and it doesn't run them concurrently. Perhaps by "multitask" it's referring to task switching? I've ran DV on a 386 and it clearly runs multiple sessions concurrently. But on a 286 it seems to pause the background session. However I've found claims that people have run BBSs in the background using a 286 with DV. Huh?

There seems to be something about the type of EMS provided when running DV on a 286. My 286 is a SCAT so I used the chipset EMS driver. DV runs without complaint, but again, my test of running pkzip in the background shows it did nothing during that time, then picks back up when it's foreground.

Is this supposed to work? I can't believe this isn't more straightforward to find.

I was looking through this before posting, but I think it's misleading, or the terms are being used loosely: https://www.cs.cmu.edu/afs/cs.cmu.edu/project … vx/dvxtechp.htm

For example "Contrary to popular belief, DESQview can perform multitasking on all classes of processor - 8088, 8086 (PC-XT), 286 (PC-AT), 386 and 486. "

But is multitasking necessarily concurrency?

Then there's "Well-Behaved Applications" and "Ill-Behaved Applications". I guess I need to try this with another text based application because I don't know if my test subject, PKzip, is well behaved.

Reply 5 of 8, by Harry Potter

User metadata
Rank Oldbie
Rank
Oldbie

AFAIK, the 286 doesn't have the support necessary to emulate EMS: it can't remap XMS memory to the first 1MB of memory. I think DesqView can only copy memory to and from XMS memory on a 286; it can't actually map XMS memory to the first 1MB. So, it can't actually multitask several programs concurrently that are designed to work in Conventional memory, as that would require copying up to 600k of memory several times a second. Does this help?

Joseph Rose, a.k.a. Harry Potter
Working magic in the computer community

Reply 6 of 8, by eesz34

User metadata
Rank Member
Rank
Member
Harry Potter wrote on 2023-09-01, 14:17:

AFAIK, the 286 doesn't have the support necessary to emulate EMS: it can't remap XMS memory to the first 1MB of memory. I think DesqView can only copy memory to and from XMS memory on a 286; it can't actually map XMS memory to the first 1MB. So, it can't actually multitask several programs concurrently that are designed to work in Conventional memory, as that would require copying up to 600k of memory several times a second. Does this help?

Yeah that makes sense. This board has C&T SCAT chipset, but it's not clear to me if it can map to the first 1MB. Maybe this functionality really only worked with certain ISA memory cards.

It's not real important this works, it's a curiosity more than anything.

Reply 7 of 8, by Harry Potter

User metadata
Rank Oldbie
Rank
Oldbie

AFAIK, there are hardware-based EMS boards, but they should only be able to map their memory to a specific 64k page frame in the computer's memory: they can't map it anywhere else.

Joseph Rose, a.k.a. Harry Potter
Working magic in the computer community

Reply 8 of 8, by mkarcher

User metadata
Rank l33t
Rank
l33t
Harry Potter wrote on 2023-09-01, 15:07:

AFAIK, there are hardware-based EMS boards, but they should only be able to map their memory to a specific 64k page frame in the computer's memory: they can't map it anywhere else.

There are advanced hardware-based EMS boards ("EMS 4.0", "EEMS") that can map memory to more areas than just the classic 64k page frame (EMS 3.2). Of course, this only works if there is no mainboard memory. The 8-bit version of these cards is mostly useful in (Turbo-)XT class computers in which off-board memory is just as fast as on-board memory. On a 256K XT mainboard, you can use one of these advanced EMS cards to add 384KB of bankable memory in the conventional memory range (to fill it to 640KB), and then another 64KB bankable legacy page frame in the upper memory area. As far as I know, there are also 16-bit boards that support this kind of mapping. For any computer that runs the ISA bus slower than the processor (most 12MHz 286 computers, nearly all 16MHz 286 / 386SX computers), providing conventional memory on an extension card is rarely useful, because the performance suffers.