lets take a look at your code
seg08a:3A20 mov r4, nmot_w
seg08a:3A24 exts #81h, #1 ; 'Б'
seg08a:3A28 [color=red]movbz r9, byte_817339[/color]
seg08a:3A2C cmp r4, r9
seg08a:3A2E [color=red]jmpr cc_ULE, loc_8A3A54[/color]
...
seg08a:3A54 loc_8A3A54: ; CODE XREF: sub_8A3A20+Ej
seg08a:3A54 movb tsrldyn, ZEROS
seg08a:3A58 jmpr cc_UC, loc_8A3AB8
red parts are weird for me
first of all you comparing 16bit nmot_w with 8bit data
movbz r9, byte_817339 ; = B0 = 44 RPM lol
use mov instead of movbz here like in original AL/NLS code
mov r9, word_81733A sounds good (mov r9, #0733Ah). and change this into your definition from 339 to 33A btw
next problem is the logic of your routine
comparing nmot_w with your value (6700rpm)
and then
cc_ULE, loc_8A3A54 ; here is movb tsrldyn, ZEROS = spark cut
so if nmot_w LESS or EQU 6700 then you has spark cut? nice
use cc_UGE here
and finally again - just change KFTSRL for the same result. no need for custom routine