"AT3" need to be saved across c call.
Should right shift instead of left shift in several places.
"MULTRES" should not be used as a free caller-saved reg.