Nice work DT.

It's amusing that doing a single shift twice takes less time than a double shift.

I have run into a problem though. Does anyone know why this gives me an incorrect result?

Code:
X VAR WORD
T VAR LONG
Y VAR LONG

X=8100

T = X << 1
T = T << 1
T = T << 1
Y = T << 1 + T + X

LCDOUT $FE,$80,"T=",DEC T
LCDOUT $FE,$C0,"Y=",DEC Y
T is 64800 (as expected), but Y is 2516719364 ?!

I'm guessing that its something about long variables that I am missing.