It's the language.
For C 0x00001770 has the same type as 0x1770, int. And multiplying ints results in a integer operation.
So either one of the two arguments has to be a long. The simplest way to make sure a constant is treated as long constant is to use an L at the end of the number. So 0x1770UL (unsigned long) will result in a 32 bit operation.
#define TICKSPERMINUTE 0x00001770UL /*Number of ticks per minute as unsigned long */
For details, ask google for "usual arithmetic conversions".
Daniel