home *** CD-ROM | disk | FTP | other *** search
-
- code segment public
-
- assume cs:code, ds:code
- org 100h
-
- start: jmp begin
-
- vxd_api dd 0
-
- ; this test program demonstrates the getting of the VxD V86 Entry point
- ; and the calling of a service in that entry point.
- ; On entry
- ; AX = the function to call.
- ; where ax = 0 = get version number
- ; where ax = 1 = put up message box.
-
-
- begin:
- ;int 3
- mov ax,0
- mov es,ax
- mov di,ax
-
- mov ax, 1684h ; get entry point for vxd device
- mov bx, 2925h ; VxD ID of EDOS, can not be changed
- int 2fh
- mov ax,es
- or ax,di
- jz novxd
- mov word ptr [vxd_api], di
- mov word ptr [vxd_api+2],es
-
- mov cx,0 ; cx should be zero
- mov ax,cs
- mov dx,ax ; dx = segment of message to use
- mov bx,offset msg ; bx = offset of msg to use
- mov ax,1 ; message box function call
- call vxd_api
-
- exitnow:
- mov ax,4c00h ; program exit
- int 21h
-
- ret ; never returns to here
-
- novxd:
- mov dx, offset dumbo_msg
- mov ah,9
- int 21h
-
- jmp exitnow
-
-
-
- msg db 'Test of V86 Message Alarm',0
-
- dumbo_msg db 'Test V86 failed, Windows not running',13,10,'$'
-
- ends
-
- END start
-