Achja... ich hätte ja das Händische fast vergessen...

So müsste es ja funktionieren....

Code:
void WRITE( uint8_t buffer, uint8_t device ){
	BUFFER[buffer][0] = (BUFFER[buffer][0] & 0xF8) | (device & 0x07);
}


uint8_t READ( uint8_t buffer ){
	device |= (BUFFER[buffer][0] & 0x07);
}

EDIT: Gibds eigendlich ne Seite wo man so sachen nachschlagen kann? in meinem C-Buch hab ich sowas nochnie gesehen...
Und in den Tutorials ist das auch immer nicht so ganz drinn...