I just found out that char is unsigned. Tricky that. I had to write signed char to get what I wanted. (Imagecraft but it should be ANSII C). Somethere deep in the back of my brain I think I had this information stored but it had to be refreshed.
I also found that running a for loop from n to 0 saves 1 word. That was how I found it, the test for i>=0 never ended.