Not meaning to flood this thread, but just spotted something else:
"call sendchar" should be "gosub sendchar" as call is only for routines written in assembly.