public static ReadHandlerPtr controller1_r = new ReadHandlerPtr() { public int handler(int offset)
	{
		int res;
	
		if (neogeo_has_trackball!=0)
			res = (readinputport(ts!=0?7:0) << 8) + readinputport(3);
		else
		{
			res = (readinputport(0) << 8) + readinputport(3);
	
			if ((readinputport(7) & 0x01)!=0) res &= 0xcfff;	/* A+B */
			if ((readinputport(7) & 0x02)!=0) res &= 0x3fff;	/* C+D */
			if ((readinputport(7) & 0x04)!=0) res &= 0x8fff;	/* A+B+C */
			if ((readinputport(7) & 0x08)!=0) res &= 0x0fff;	/* A+B+C+D */
		}
	
		return res;
	} }