## Function 38: Get Maximum Virtual Coordinates (75952)

The information in this article applies to:
Microsoft Mouse driver for MS-DOS 9.0
Microsoft Mouse driver for MS-DOS 6.x
Microsoft Mouse driver for MS-DOS 7.x
Microsoft Mouse driver for MS-DOS 8.x

This article was previously published under Q75952

#### SUMMARY

The code example below demonstrates the use of mouse function 38. For additional information, refer to the "Microsoft Mouse Programmer's Reference Guide."

#### MORE INFORMATION

Mouse function 38 returns whether the mouse is enabled, and returns the virtual X and Y maximum coordinates.

Note: If the mouse driver version is earlier than version 7.05, function 38 returns the current set virtual X & Y maximum (in current mode). For driver versions 7.05 and later, function 38 returns the absolute virtual X & Y maximum (in current mode).
```   Input          Output
-----          ------

AX = 38        BX = Mouse disabled flag
0 if mouse is enabled
!0 if mouse is disabled
CX = Virtual X maximum (in current video mode)
DX = Virtual Y maximum (in current video mode)

// This is an example of mouse function 38.
// Function 38: Get Maximum Virtual Coordinates

#include <stdio.h>
#include <stdlib.h>

#define v626  0x0626
#define v705  0x0705

unsigned int  bxr,cxr,dxr, dvr;

char *mdf, *vmm;

void main( void )
{

/* check driver version */
_asm
{
mov ax,36
int 33h
mov dvr,bx   ;save results
}

if ( dvr < v626)
{
printf("function 38 requires driver 6.26 or greater \n");
exit(0);
}

/* function 38 */
_asm
{
mov ax,38
int 33h
mov bxr,bx    ;save results
mov cxr,cx
mov dxr,dx
}

printf("Function 38 Returned Values \n");
printf("   Value in BX is %Xh \n",bxr);
printf("   Value in CX is %Xh \n",cxr);
printf("   Value in DX is %Xh \n\n",dxr);

if (!bxr) mdf= "ENABLED"; else mdf= "DISABLED";
printf("MOUSE DISABLED FLAG.\n");
printf("   mouse driver %s\n\n",mdf);

printf("MOUSE MAXIMUMS\n");
printf("   {Note: if driver version is prior 7.05 this returns \n");
printf("    current set virtual X & Y max (in current mode) \n");
printf("    for driver version 7.05 and higher this returns\n");
printf("    Absolute virtual X & Y max (in current mode)} \n\n");

if (dvr  < v705)  vmm= "CURRENTLY SET"; else vmm = "ACTUAL";
printf("   %s virtual X max :>>%d<< (for current mode)\n",vmm,cxr);
printf("   %s virtual Y max :>>%d<< (for current mode)\n",vmm,dxr);

printf("\n\n");
}
```

 Modification Type: Last Reviewed: Major 9/24/2003 KB75952