name tstwf
;****************************************************************************
;
; (C) Copyright MICROSOFT Corp., 1990
;
; Title: TSTWF.ASM
;
; Version: 3.00
;
; Date: 15-Nov-1990
;
; Author: Neil Sandlin
;
;
; This small DOS application will call the VWFD API which
; returns the state of a VM: Windowed or Full screen.
; The API's used by this application are:
;
; INT 2Fh, AX=1600h - determine if enhanced mode Windows is running
; INT 2Fh, AX=1684h - get VxD API callback address
;
; The VWFD API is as follows:
;
; call VWFD_API_Callback
;
; entry:
; BX=VMID of the VM to test
;
; exit:
; AX=0 if VM is full screen
;
;****************************************************************************
include VWFD.INC
_DATA segment word public 'DATA'
Apientry dd ?
cr equ 0dh
lf equ 0ah
msg1 db cr,lf,'Full Screen.',cr,lf
msg1l equ $-msg1
msg2 db cr,lf,'In a Window.',cr,lf
msg2l equ $-msg2
msg3 db cr,lf,'Not running Windows enhanced mode.',cr,lf
msg3l equ $-msg3
msg4 db cr,lf,'VWFD is not installed.',cr,lf
msg4l equ $-msg4
msg5 db cr,lf,'Specified VM does not exist.',cr,lf
msg5l equ $-msg5
_DATA ends
_TEXT segment word public 'CODE'
assume cs:_TEXT,ds:_DATA
;*--------------------------------------------------------------------*
tstwf proc far
mov ax,_DATA
mov ds,ax
mov ax,1600h ; enhanced mode?
int 2fh ; api call
test al,7fh ; enhance mode running?
jz not_running_enhanced ; no
mov ax,1684h ; Get Device API call
mov bx,VWFD_Dev_ID ; for the VWFD VxD
int 2fh ; do enhanced api
mov WORD PTR Apientry,di ; save the callback address
mov WORD PTR Apientry+2,es
mov ax,es ; is VWFD installed?
or ax,di
jz vwfd_not_installed ; if not, split
mov bx, 2 ; check for this VMID
call DWORD PTR Apientry ; call VWFD
; if AX=0, we're running
; fullscreen
jc api_error
or ax,ax ; anything on?
jz full_screen
; windowed
mov dx,offset msg2 ;
mov cx,msg2l
jmp short write_msg
full_screen:
mov dx,offset msg1 ; load
mov cx,msg1l
jmp short write_msg ; go output
not_running_enhanced:
mov dx,offset msg3 ; load
mov cx,msg3l
jmp short write_msg ; go output
vwfd_not_installed:
mov dx,offset msg4 ; load
mov cx,msg4l
jmp short write_msg ; go output
api_error:
mov dx,offset msg5 ; load
mov cx,msg5l
write_msg:
mov bx,1 ; stdout
mov ah,40h ; DOS write
int 21h
mov ax,4c00h ; exit to DOS
int 21h
tstwf endp
_TEXT ends
;*--------------------------------------------------------------------*
end tstwf
Detected encoding: ASCII (7 bit) | 2
|