sc->pwmark = sc->pbufsize / 2;
sc->pblksize = blksize; sc->pwmark = blksize;
neo_trigger_output(addr, start, end, blksize, intr, arg, param)	void *addr;	void *start, *end;	int blksize;	void (*intr) __P((void *));	void *arg;	struct audio_params *param;{	struct neo_softc *sc = addr;	int ssz;	sc->pintr = intr;	sc->parg = arg;	ssz = (param->precision * param->factor == 16)? 2 : 1;	if (param->channels == 2)		ssz <<= 1;	sc->pbufsize = ((char*)end - (char *)start);	sc->pwmark = sc->pbufsize / 2;	nm_wr(sc, NM_PBUFFER_START, sc->pbuf, 4);	nm_wr(sc, NM_PBUFFER_END, sc->pbuf + sc->pbufsize - ssz, 4); 	nm_wr(sc, NM_PBUFFER_CURRP, sc->pbuf, 4);	nm_wr(sc, NM_PBUFFER_WMARK, sc->pbuf + sc->pwmark, 4);	nm_wr(sc, NM_PLAYBACK_ENABLE_REG, NM_PLAYBACK_FREERUN |	    NM_PLAYBACK_ENABLE_FLAG, 1);	nm_wr(sc, NM_AUDIO_MUTE_REG, 0, 2);	return (0);}