( Interrupts on Arduino Uno ) ( Chen-Hanson Ting, 8/18/2011 ) ( Use R8 to save and restore SREG ) hex : INIT-VECTORS 4 18 FOR 940C ( jmp ) OVER I! 2+ 7F ( i-return ) OVER I! 2+ NEXT DROP 9518 FE ( i-return ) I! ; : INTERRUPT ( addr vector -- ) SWAP 2/ SWAP 1- 2* 1+ 2* I! ; : RETI, 9518 ( RETI ) , [COMPILE] [ OVERT ; IMMEDIATE : SEI, 9478 ( SEI ) , ; IMMEDIATE : CLI, 94F8 ( CLI ) , ; IMMEDIATE : NOP, 0 ( CLI ) , ; IMMEDIATE : PUSH-SREG, B68F ( IN r8,sreg ) , 928F ( PUSH r8 ) , ; IMMEDIATE : POP-SREG, 908F ( POP r8 ) , BE8F ( OUT sreg,r8 ) , ; IMMEDIATE flush