The first part ensure that the TP is in range. Failure management is used if not.
The second part updates the relative close throttle TP value based on the filtered TP value.
I suspect this .99999999999999 volt myth will continue though.
Anyone read this group???
Code: Select all
3932 A372A230 ld REG_30,$A2[REG_72] ; 0x0122 = ITP Read TP input A/D value
3936 8BF27030 cmp REG_30,$70[REG_F2] ; 0x8eca = throttle_position_min Compare to min value
393A D306 jnc L3942 If less that min, jump
393C 8BF26E30 cmp REG_30,$6E[REG_F2] ; 0x8ec8 = throttle_position_max Compare to max value
3940 D123 jnh L3965
3942 A372A630 L3942 ld REG_30,$A6[REG_72] ; 0x30 = TMP1L; 0x0126 = RATCH If TP out of range, set to RATCH
3946 3FA11C jbs REG_A1,BIT_07,L3965 ; 0xa1_7 = CRANKING,CRKFLG Jump if cranking
3949 8BF78400A2 cmp REG_A2,$0084[REG_F6] ; 0xa2 = AM; 0x942c = IDLMAF
394E D315 jnc L3965 Jump if MAF > max idle air
3950 34C515 jbc REG_C5,BIT_04,L3968 ; 0xc5_4 = TFMFLG Jump unless TP failure set
3953 A3F00230 ld REG_30,$02[REG_F0] ; 0x8c02 = ATIV Load initial ratch value
3957 C372A630 st REG_30,$A6[REG_72] ; 0x0126 = RATCH Store ratch value
395B 67F7820030 add REG_30,$0082[REG_F6] ; 0x942a = FMCTTP Add inferred TP from AM
3960 D303 jnc L3965
3962 BDC030 ldbse REG_30,#$C0 ; 0x30 = TMP1L
3965 A030AA L3965 ld REG_AA,REG_30 ; 0xaa = SEED3,TP; 0x30 = TMP1L
412C C372803E st REG_3E,$80[REG_72] ; store filtered TP to reg 3E
4130 890807AE cmp REG_AE,#$0708 ; 0xae = N Compare RPM to 450 rpm
4134 D10A jnh L4140 If too RPM too low, jump to end
4136 8B72A63E cmp REG_3E,$A6[REG_72] ; 0x3e = TMP8L; 0x0126 = RATCH Compare filtered TP to RATCH
413A DB04 jc L4140 If greater than, jump to end
413C C372A63E st REG_3E,$A6[REG_72] ; 0x3e = TMP8L; 0x0126 = RATCH Update ratch with filtered TP value
4140 F0 L4140 ret