Subj : Yielding timeslices
To   : Mike Luther
From : David Noon
Date : Sat May 19 2001 12:16 pm

Hi Mike,

Replying to a message of Mike Luther to Lee Aroner:

LA>>    In warp 3 and warp 4 beyond FP 6, the call is AX = 1680h Int =
LA>> 2fh. Note that the call was broken in the warp 4 GA version up
LA>> till FP 6 was released. You can also use the slightly less
LA>> effecient DOS IDLE Int = 28h.

ML> I didn't know the FP 6 part of this!

Various parts of VDM support were seriously broken in early iterations of Warp
4. Fixpack 6 was the first one where DOS programs worked reliably once more.
This FP brought much of the code common with Warp 3 back into line, as it seems
to share a code base with FP 36 for Warp 3/Connect.

LA>>    I have a pascal unit that encapsulates all this and a lot more,
LA>> such as OS detection, for every Intel based OS, drop an email to
LA>> [email protected] if you want a copy.

ML> would you mind if I got it from you and posted in the source tidbits
ML> for the PowerBASIC crew?  There have been a fair number of discussion
ML> threads on time releasing in that group, which always goes back to
ML> things which don't of course, include OS/2!

ML> Posting it there, and/or, perhaps, adapting it to in-line assembler
ML> might be worth a lot to folks...

There was a TSR called TAME that could be added to your VDM's AUTOEXEC.BAT that
did a lot of this for you, without needing to add it to the application code.
IIRC, one simply tripped INT 28H and TAME did the rest, issuing the appropriate
hardware instructions (mostly HLT with some "magic cookie" after it) for
various surrounding operating systems (OS/2, NT, even Win16 in enhanced mode).
There were other TSR's besides TAME that did the same thing (SLICER was another
name I seem to remember). All of these were available on Pete Norloff's BBS,
Hobbes, Leo, etc.

Of course, well written native OS/2 code eliminates this timeslicing problem
completely.

Regards

Dave
<Team PL/I>

--- FleetStreet 1.25.1
* Origin: My other computer is an IBM S/390 (2:257/609.5)