I can't seem to make heads or tails out of this dissassembly. I also don't see anywhere when the tempNum and tempDen get initialized, so...?
Function: DeFuzzSource : /*...*/Options : -CPUHCS12 -D__ONLY_INIT_SP -D_HCS12_SERIALMON -Env"GENPATH= /*...*/" -Env"LIBPATH= /*...*/" -Env"OBJPATH= /*...*/" -Env"TEXTPATH= /*...*/" -Lasm="/*...*/FuzzyLevel.c.o.lst" -Mb -ObjN="FuzzyLevel.c.o" 0000 1b9c [2] LEAS -4,SP 130: signed int tempNum; //Temporary Numerator var 131: signed int tempDen; 132: unsigned int i; //iteration counter 133: 134: 135: //***Motor A*** 136: tempNum = 0; 0002 073e [4] BSR *+64 ;abs = 0042 137: tempDen = 0; 138: 139: for(i = 3; i>0;i--){ 140: tempNum = tempNum + (Fo_A[i] * Se[i]); 0004 e6e20000 [4] LDAB Fo_A,X 0008 071f [4] BSR *+33 ;abs = 0029 000a 26f8 [3/1] BNE *-6 ;abs = 0004 141: tempDen = tempDen + Fo_A[i]; 142: } 143: 144: dT_ThrotA = (tempNum / tempDen); 000c ec82 [3] LDD 2,SP 000e ee80 [3] LDX 0,SP 0010 1815 [12] IDIVS 0012 7e0000 [3] STX dT_ThrotA 145: 146: //***Motor C*** 147: tempNum = 0; 0015 072b [4] BSR *+45 ;abs = 0042 148: tempDen = 0; 149: 150: for(i = 3; i>0;i--){ 151: tempNum = tempNum + (Fo_C[i] * Se[i]); 0017 e6e20000 [4] LDAB Fo_C,X 001b 070c [4] BSR *+14 ;abs = 0029 001d 26f8 [3/1] BNE *-6 ;abs = 0017 152: tempDen = tempDen + Fo_C[i]; 153: } 154: 155: dT_ThrotC = (tempNum / tempDen); 001f ec82 [3] LDD 2,SP 0021 eeb3 [3] LDX 4,SP+ 0023 1815 [12] IDIVS 0025 7e0000 [3] STX dT_ThrotC 156: } 0028 0a [7] RTC 0029 87 [1] CLRA 002a 3b [2] PSHD 002b b754 [1] TFR X,D 002d 59 [1] LSLD 002e b746 [1] TFR D,Y 0030 ecea0000 [4] LDD Se,Y 0034 ed80 [3] LDY 0,SP 0036 13 [3] EMUL 0037 e386 [3] ADDD 6,SP 0039 6c86 [2] STD 6,SP 003b 3a [3] PULD 003c e382 [3] ADDD 2,SP 003e 6c82 [2] STD 2,SP 0040 09 [1] DEX 0041 3d [5] RTS 0042 c7 [1] CLRB 0043 87 [1] CLRA 0044 6c84 [2] STD 4,SP 0046 6c82 [2] STD 2,SP 0048 ce0003 [2] LDX #3 004b 3d [5] RTS 157: //-----------------------DeFuzz---------------------------- 158: