Compile with Tup
Use volatile instead of reseved __io