public void cwai()
    {
    	int t =IMMBYTE();
    	m6809.cc &= t;
    	/*
         * CWAI stacks the entire machine state on the hardware stack,
         * then waits for an interrupt; when the interrupt is taken
         * later, the state is *not* saved again after CWAI.
         */
    	m6809.cc |= CC_E; 		/* HJB 990225: save entire state */
    	PUSHWORD(m6809.pc);
    	PUSHWORD(m6809.u);
    	PUSHWORD(m6809.y);
    	PUSHWORD(m6809.x);
    	PUSHBYTE(m6809.dp);
    	PUSHBYTE(m6809.b);
    	PUSHBYTE(m6809.a);
    	PUSHBYTE(m6809.cc);
    	m6809.int_state |= M6809_CWAI;	 /* HJB 990228 */
        CHECK_IRQ_LINES();    /* HJB 990116 */
    	if(( m6809.int_state & M6809_CWAI )!=0)
    		if( m6809_ICount[0] > 0 )
    			m6809_ICount[0] = 0;
        if(m6809log!=null) fprintf(m6809log,"M6809#%d cwai :PC:%d,PPC:%d,A:%d,B:%d,D:%d,DP:%d,U:%d,S:%d,X:%d,Y:%d,CC:%d,EA:%d\n", cpu_getactivecpu(),m6809.pc,m6809.ppc,m6809.a,m6809.b,getDreg(),m6809.dp,m6809.u,m6809.s,m6809.x,m6809.y,m6809.cc,ea);
        

    }