# /* * DC11 implementation * of character handler. */ struct { int rcsr; int rbuf; int xcsr; int xbuf; }; #define ADDR 0174140 #define DONE 0200 mpxintr() { register d; if((ADDR->xcsr & DONE) == 0) return; d = mpx(); if(d < 0) return; ADDR->xbuf = d; } mprintr() { register d; d = ADDR->rcsr; if(d < 0) printf("mpxer %o\n", d); if((d&DONE) == 0) return; d = ADDR->rbuf & 0377; mpr(d); } mpinit() { ADDR->rcsr = 0131; ADDR->xcsr = 0131; }