home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / pctchnqs / 1991 / number5 / desqtest.pas < prev    next >
Pascal/Delphi Source File  |  1991-09-19  |  2KB  |  42 lines

  1. PROGRAM DesqTest;
  2.  
  3. uses Dos { for MsDos procedure };
  4.  
  5. var
  6.   Reg : Registers;  { Registers is defined in the Dos unit }
  7.  
  8. const
  9.   DESQview : boolean = false;
  10.  
  11. begin
  12.   { See if DESQview is active. }
  13.   Reg.CX := $4445;  { Put 'DESQ' into CX-DX so that }
  14.   Reg.DX := $5351;  { DESQview will process this call. }
  15.   Reg.AX := $2B01;  { DESQview uses DOS' set date function. }
  16.   MsDos(Reg);    { This procedure does a DOS Interrupt $21. }
  17.   { If no $FF error code is returned, DESQview trapped and
  18.     processed the interrupt before it could get to DOS. }
  19.   If Reg.AL <> $FF then
  20.   begin
  21.     WriteLn ('DESQview is running');
  22.     { BX contains DESQview version, for example "2.26". }
  23.     WriteLn ('BH=',Reg.BH,', BL=',Reg.BL,
  24.                ', DESQview version is ',Reg.BH,'.',Reg.BL);
  25.     DESQview := true;  { Use this value at any later time. }
  26.   end;
  27.   { Discard the remainder of this time slice. }
  28.   If DESQview then InLine (
  29.     $50/       { PUSH AX       ; Save whatever is currently
  30.                                    in AX }
  31.     $B8/$101A/ { MOV  AX,101Ah ; Function: switch to
  32.                                    DESQview's stack }
  33.     $CD/$15/   { INT  15h      ;  Make the call }
  34.     $B8/$1000/ { MOV  AX,1000h ; Function: discard remaining
  35.                                    time slice }
  36.     $CD/$15/   { INT  15h      ;  Make the call }
  37.     $B8/$1025/ { MOV  AX,1025h ; Function: switch from
  38.                                    DESQview's stack }
  39.     $CD/$15/   { INT  15h      ;  Make the call }
  40.     $58);      { POP  AX       ; Restore AX }
  41. end.
  42.