If you care about the speed, try to find equivalent instruction for movc3. If not, do the following changes. > if (bp->b_nleft) { > . . > . . > . . > . . > to = bp->b_ptr; . > asm("movc3 r8,(r11),(r7)"); ==> cnt -= put; > . ==> while (put--) > . ==> *to++ = *p++; > . ==> bp->b_ptr = to; > . ==> goto top; > } > if (cnt >= BUF... --farhad