Access I/O pins as word, byte, nibble?

is there a quick-n-dirty way to copy over a byte to four output pins?

If you're going to be doing this in many places, it may be beneficial to write a function to handle it. The code below (untested, but it compiles) allows writing in nibbles.

//
// This function writes four bits of output simultaneously without
// modifying the remaining bits of a port.  Note that the four I/O
// pins must have previously been set to be outputs.
//
// The nibble number to port mapping matches the mega168-based
// Arduino boards.  Modifications may be needed for other hardware.
//
void digitalWriteNibble(byte nibNum, byte nibVal)
{
  byte sreg = SREG;
  cli();

  switch (nibNum)
  {
  case 0:  // pins 0-3, PORTD
    PORTD = (PORTD & 0xf0) | (nibVal & 0x0f);
    break;

  case 1:  // pins 4-7, PORTD
    PORTD = (PORTD & 0x0f) | (nibVal << 4);
    break;

  case 2:  // pins 0-3, PORTB
    PORTB = (PORTB & 0xf0) | (nibVal & 0x0f);
    break;
  }
  SREG = sreg;
}