Martin Donlon @wickerwaka.com · Nov 12

It's loading a byte from a lookup table, multiplying it by some value and dividing it my a constant. There is always the chance of some weird hardware-specific edge case in something like a multiply/divide but that wasn't the problem here.

4 likes 1 replies

?

Replies

Martin Donlon · Nov 12

The problem is the `xch aw,cw` which is swapping those two registers. It's basically a no-op in this case because those two values are going to get multiplied together in the next instruction anyway and the order doesn't matter.