At 15E31 and 15E6B replace 15E31 A2 34 MOV C, RAM_26.4 15E33 B3 CPL C ... and ... 15E6B A2 34 MOV C, RAM_26.4 15E6D B3 CPL C with call to 1E080 15E31 12 E0 80 LCALL 0xE080 15E6B 12 E0 80 LCALL 0xE080 To call 1E080... ; Get XFALMIT threshold to B from code byte 1E0F0 E4 CLR A 90 E0 F0 MOV DPTR, #0xE0F0 ; XFALMIT threshold codebyte 93 MOVC A, @A+DPTR ; Get code byte F5 F0 MOV B, A ; Move to B ; Get XFALMIT current value to A, compare. Set carry if XFALMIT < threshold 90 FA 84 MOV DPTR, #0xFA84 ; Set DPTR to value E0 MOVX A, @DPTR ; Get value to A B5 F0 00 CJNE A, B, NEXT ; A = XFALMIT B = XFALMIT THRESHOLD, carry set if XFALMIT < theshold 40 03 JC +03 ; If XFALMIL < threshold, carry set, we're good, do normal routine instead, jump over inverse routine next 3 bytes ; Inverse of normal MIL setting A2 34 MOV C, RAM_26.4 22 RET ; Normal MIL setting A2 34 MOV C, RAM_26.4 B3 CPL C 22 RET