k$x.self.Assign(vInteger.New(x)); k$y.self.Assign(vInteger.New(y));
k$x.self.newValue(x); k$y.self.newValue(y);
static vValue dequeue(vList evq) {    vValue a, xv, yv;    a = evq.Get();    while (a == null) {		//#%#% is polling really the way to do this?	try {	    Thread.sleep(iConfig.PollDelay);	} catch (InterruptedException e) {	}	a = evq.Get();    }    //  get two more values, which must be integers    xv = evq.Get();    yv = evq.Get();    if (xv == null || !(xv instanceof vInteger)    ||  yv == null || !(yv instanceof vInteger)) {	iRuntime.error(143);		// malformed queue    }    long x = ((vInteger)xv).value;    long y = ((vInteger)yv).value;    if (x < 0 || x >= (LeftmostFlag << 1) || y < 0) {	iRuntime.error(143);		// malformed queue    }    k$control.self.set(((x & ControlFlag) != 0) ? vNull.New() : null);    k$meta   .self.set(((x & MetaFlag) != 0)    ? vNull.New() : null);    k$shift  .self.set(((x & ShiftFlag) != 0)   ? vNull.New() : null);    long msec = (y >> 16) & 0xFFF;	// set &interval    long expo = y >> 28;    k$interval.self.Assign(vInteger.New(msec << (4 * expo)));    x = (int)(short)x;			// extract signed coordinate values    y = (int)(short)y;    //#%#% need to translate x/y to this window's coordinate system    k$x.self.Assign(vInteger.New(x));	// also sets k$col    k$y.self.Assign(vInteger.New(y));	// also sets k$row    return a;				// return event code}