unsigned long f ()
{
  unsigned long t; /* no need to clear */
  unsigned char i = 32;

  do
  {
     t <<= 1;
     if (P0_1)
        t |= 0x00000001;
  } while (--i);

  return t;
}