getbyte char unit(163) [ char nb int signal nb=unit(35) if(nb<=0)[ signal=fread(unit+36,unit) if(signal== -1)return 26 /* ^Z returned. if(signal< -1)[ ps"read error"; return 26 ] nb=0 ] unit(35)=nb+1 return unit(nb+36) ] putbyte char c,unit(163) [ char nb int signal nb=unit(35) if(nb<0)[ signal=fwrite(unit+36, unit+163, unit) nb=0 ] unit(36+nb)=c if(c==26) if(nb>0)[ signal=fwrite(unit+36, unit+163, unit) nb=0 ] unit(35)=nb+1 return signal ]