Here is a (stupid) program that proves you cannot always infer volatility: main() { int *device_address, i; printf("Please input \"0x4f0\", the address of the t-o-d register\n"); scanf("%x", (int *) &i); device_address = (int *) i; while (*device_address < 43200) /* noon */ ; } Wayne