#include <windows.h>
#include <dos.h>

/* use /G2 option with MSC */
int ValidPointer(void far *Ptr)
    {
    WORD             BadSelector = FALSE;
    register WORD    Selector = HIWORD(Ptr);
    register WORD    Limit = 0;

    _asm        lsl  Limit, Selector;
    _asm        jz   Good;
    _asm        mov  BadSelector, TRUE;
    Good:

    return !BadSelector && (Limit >= LOWORD(Ptr));
    }

