Yet one more update. Seems like soa-367-04-00 program never sets NEGB to 1. If you do that (like, change "if (NEGB)" to "if (!NEGB)" the echo is gone but the output comes out clean. That gave me an idea, try this:

		v=(((INT64) X*(INT64) Y)>>12);
+		v = (v * 1000) >> 10;
		ACC=(int) v+B;

Much better I'd say. Good for a quick patch but I still need to find the source.