home *** CD-ROM | disk | FTP | other *** search
/ Mega CD-ROM 1 / megacd_rom_1.zip / megacd_rom_1 / DESQVIEW / DESQTEST.ZIP / DESQTEST.ASM next >
Assembly Source File  |  1988-04-22  |  4KB  |  96 lines

  1. PAGE 66,132
  2. NAME    DESQTEST
  3. TITLE   DESQTEST - Test for presence of DESQview 
  4.  
  5. COMMENT *
  6.  
  7. File          : DESQTEST.ASM - Test for presence of DESQview environment
  8.               :
  9. Environment   : PC compatible assembler
  10.               :
  11. Related Files : DVTEST.BAT   - demonstration for use of DESQTEST
  12.  in .ARC      : DESQTEST.COM - assembled executable program file
  13.               :
  14. Revision Log  : 13:00  4/22/88
  15.  
  16.    This source code has been adapted from the public domain file 
  17.  DVINT.ASM, downloadable as DVINT.ARC from the Quarterdeck Bulletin 
  18.  Board, (213) 396-3904.  DESQview is a registered trademark of 
  19.  Quarterdeck Office Systems.  This version has been adapted and 
  20.  re-released into the public domain as DESQTEST.ARC by:
  21.  
  22.                        Marc Rubin, Multi-Phase Research
  23.                        1216 West University Drive, Suite H
  24.                        Tempe, AZ  85281
  25.  
  26.  
  27. Description:
  28. ------------
  29.  
  30.    This program tests for the presence of the DESQview operating
  31.  environment, and reports the result via the MD-DOS termination status
  32.  code:  0 indicates that DESQview is NOT present.    Any other exit
  33.  status indicates that the program IS running under DESQview, and the
  34.  exit code corresponds to the DESQview major version number.
  35.  
  36.    The DOS termination status may be read inside a .BATch file and
  37.  then reported to the user and/or used to conditionally execute programs 
  38.  as demonstrated in DVTEST.BAT.  For more information, see the section
  39.  on Batch File Commands in the DOS Reference manual.  
  40.  
  41.    Alternatively, the termination code may be read directly by a program 
  42.  using the DOS Interrupt 21 function 04DH, 'Get Termination Code'.  For 
  43.  more information on interfacing with DESQview, see Appendix J in the 
  44.  DESQview version 2 documentation.
  45.  
  46.  
  47. Assembly and Linkage:
  48. ---------------------
  49.  
  50.    To generate an executable .COM file from this source file using 
  51. standard PC assembler utilities, use the following sequence:
  52.  
  53.        MASM DESQTEST;
  54.        LINK DESQTEST;
  55.         (ignore the "Warning: no STACK segment" error)
  56.        DEL DESQTEST.OBJ
  57.        EXE2BIN DESQTEST.EXE DESQTEST.COM
  58.        DEL DESQTEST.EXE
  59.  
  60. (END OF DOCUMENTATION SECTION, PROGRAM FOLLOWS)
  61.  
  62. *
  63.  
  64. DESQTEST_SEG SEGMENT 'CODE'
  65.         ASSUME  CS:DESQTEST_SEG
  66. ;
  67. GET_VERSION PROC
  68.         PUSH    BX                      ; SAVE REGS WE'LL USE
  69.         PUSH    CX                      ;  JUST IN CASE THIS CODE IS
  70.         PUSH    DX                      ;   USED AS A CALLABLE SUBROUTINE
  71.         MOV     AX,2B01H                ; DV 'Get Version' request
  72.         MOV     CX,'DE'                 ;  WORKS BY SUPPLYING A SPECIAL
  73.         MOV     DX,'SQ'                 ;   INVALID DATE TO DOS 'SET DATE'
  74.         INT     21H                     ;    FUNCTION CALL
  75.     CMP    AL,0FFH            ; Are we in DV?
  76.     JE    NO_DV            ; Jump if not
  77.         MOV     AX,BX                   ; We are; save DV Major version number 
  78.         MOV     AL, AH                  ;  and pass to DOS as TERMINATION CODE
  79.         JMP     SHORT DVGV_EXIT         ; SKIP 'NO DESQVIEW' LOGIC
  80. NO_DV:  SUB     AX,AX                   ; Clear AX (zero indicates no DESQview)
  81. ;
  82. DVGV_EXIT:
  83.         POP     DX                      ; RESTORE REGS 
  84.         POP     CX                      ;  SO THAT THIS CODE COULD BE
  85.         POP     BX                      ;   USED IN A CALLABLE SUBROUTINE
  86. ;        RET                            ; UNCOMMENT THIS FOR SUBROUTINE USE
  87.         MOV     AH, 04CH                ; DOS 'TERMINATE PROGRAM' FUNCTION
  88.         INT     21H                     ; EXIT PROGRAM WITH TERMINATION CODE
  89. GET_VERSION ENDP
  90. ;
  91. ;
  92. DESQTEST_SEG ENDS
  93. ;
  94.         END GET_VERSION
  95.  
  96.