home *** CD-ROM | disk | FTP | other *** search
- {╔═════════════════════════════════════════════════════════════════════════╗
- ║ ║
- ║ (c) CopyRight LiveSystems 1990, 1994 ║
- ║ ║
- ║ Author : Gerhard Hoogterp ║
- ║ FidoNet : 2:282/100.5 2:283/7.33 ║
- ║ BitNet : GERHARD@LOIPON.WLINK.NL ║
- ║ ║
- ║ SnailMail : Kremersmaten 108 ║
- ║ 7511 LC Enschede ║
- ║ The Netherlands ║
- ║ ║
- ║ This module is part of the RADoor BBS doorwriters toolbox. ║
- ║ ║
- ╚═════════════════════════════════════════════════════════════════════════╝}
-
- {
- Description:
-
- This Unit provides an interface to Pascal for the DesqView.Obj file. All
- the basic procedures to make a program DesqView (tm) awear are here.
-
- - 12 Feb 92: Release
-
- }
-
-
- Unit Desqview;
- Interface
- Uses DOS,
- CRT;
-
- {---------------------------------------------------------------------------|
- DVUsed is set to True if DesqView is detected.
- DVMajor contains the major release number if DV is detected.
- DVMinor contains the minor release number is DV is detected.
- |--------------------------------------------------------------------------}
-
- VAR DvUsed : Boolean; { True if desqview is used }
- DvMajor : Byte ; { Contains the Major releas nr }
- DvMinor : Byte ; { Contains the minor releas nr }
-
- {---------------------------------------------------------------------------|
- GetVirtualVideoSegment returns the Buffer for direct screenwrites under
- Desqview. If DV isn't found, it simply returns the FoundSegment.
- |--------------------------------------------------------------------------}
-
- Function GetVirtualVideoSegment(FoundSegment : Word):Word;
-
- {---------------------------------------------------------------------------|
- DV_Pause gives back TimeSlices to DesqView so the other programs run more
- smoothly. Use it while waiting for input or output.
- |--------------------------------------------------------------------------}
-
- Procedure Dv_Pause;
-
- {---------------------------------------------------------------------------|
- DV_Start_Critical
- DV_Stop_Critical Use those two with care! They start/stop desqviews
- multitasking!
- |--------------------------------------------------------------------------}
-
- Procedure Dv_Start_Critical;
- Procedure Dv_Stop_Critical;
-
-
- Implementation
-
- {-----------------------------------------------------------------------------|
- DesqView support
- |-----------------------------------------------------------------------------}
-
- Var VBufSeg : Word ; { Two temporarily var's }
- VBufOfs : Word ; { }
-
- {$L DesqView} { Needs the DesqView.Obj file! }
-
- Procedure CheckDv; External; { Check for the presence of DV }
- Procedure Get_Video_Buffer; External; { Get the virtual videobuffer }
- Procedure Dv_Pause; External; { Give slices back to DV }
- Procedure Dv_Start_Critical; External; { Stop multitasking }
- Procedure Dv_Stop_Critical; External; { Restart multitasking }
-
- Function GetVirtualVideoSegment(FoundSegment : Word):Word;
- Begin
- VBufSeg:=FoundSegment;
- VBufOfs:=0;
- Get_Video_Buffer;
- GetVirtualVideoSegment:=VBufSeg;
- End;
-
- Begin
- CheckDV;
- End.
-