[Back to TIMING SWAG index]  [Back to Main SWAG index]  [Original]

{
> Does anyone know how to give up your free time under dv or dv/x? Or make
> these programs desqview aware?

DONATED TO THE PUBLIC DOMAIN by Danny Melton
}

program YourProgramHere;

uses
  DOS, CRT;

const
  MultiTasking : boolean = false;

function UnderDV : boolean;
var
  R : registers;
begin
  if MultiTasking then
    exit;
  R.AX := $1022;
  R.BX := $0000;
  intr($15, R);
  MultiTasking := boolean(R.BX <> 0);
  UnderDV := MultiTasking;
end;

procedure GiveUpTimeSlice;
var
  R : registers;
begin
  if not MultiTasking then
    exit;
  R.AX := $1000;
  intr($15, R);
end;

begin
  if UnderDV then
    writeln('Running under a multi-tasker.');
  writeln('Press a key when ready');
  while not keypressed do
    GiveUpTimeSlice;
  writeln('You pressed a key.');
end.


[Back to TIMING SWAG index]  [Back to Main SWAG index]  [Original]