/*format =2*/ /* ECU file for 8D code mask developed by Chet W., chetwagner@uswest.net* or chetwagner@qwest.net */ { /*ecuId =GM_P4_ECM, /*fileSize =8000, /*checkSumAddr =6, /*checkSumSize =2, /*checkSumStartAddr =8, /*checkSumEndAddr =7FFF, /*Items =112, }; /* Item 1: prom_id */ { /*startAddr =0, /*columns =1, /*rows =1, /*elementSize =2, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =PROM, /*ylabel =, /*yaxis =, /*xlabel =, /*xaxis =,, }; /* Item 2: checksum */ { /*startAddr =6, /*columns =1, /*rows =1, /*elementSize =2, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =Checksum, /*ylabel =, /*yaxis =, /*xlabel =, /*xaxis =,, }; /* Item 1: chip code */ { /*startAddr =8, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =chip code mask (AA disable cksum), /*ylabel = , /*yaxis = , /*xlabel = , /*xaxis = ,, }; /* Item 3: cyl_select */ { /*startAddr =9, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =Cyl Select (0-8 192-6 128-4), /*ylabel =, /*yaxis =, /*xlabel =, /*xaxis =,, }; /* Item 4: VSS Gear Ratio */ { /*startAddr =15, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =VSS Gear Ratio, /*ylabel =, /*yaxis =, /*xlabel =, /*xaxis =,, }; /* Item 5: vats enable (b4) */ { /*startAddr =16, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =80, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =AFR Options 1, /*ylabel =Option, /*yaxis =b7 b6 b5 b4 b3 b2 b1 b0 , /*xlabel =, /*xaxis =,, }; /* Item 6: dual(1) or single(0) air valve (b2) */ { /*startAddr =17, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =80, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =AFR Options 2), /*ylabel =Option, /*yaxis = b7 b6 b5 b4 b3 b2 b1 b0 , /*xlabel =, /*xaxis =,, }; /* Item 7: Mag Speed Sensor */ { /*startAddr =18, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =80, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =AFR Options 3, /*ylabel =Option, /*yaxis = b7 b6 b5 b4 b3 b2 b1 b0 , /*xlabel =, /*xaxis =,, }; /* Item 7: Mag Speed Sensor */ { /*startAddr =19 /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =80, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =AFR Options 4, /*ylabel =Option, /*yaxis = b7 b6 b5 b4 b3 b2 b1 b0 , /*xlabel =, /*xaxis =,, }; /* Item 8: initial spark advance (distrib setting) */ { /*startAddr =25, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.35156, /*map_name =Initial Spark Adv (Distr Setng), /*ylabel =, /*yaxis =Adv, /*xlabel =deg, /*xaxis =,, }; /* Item 9: max spark */ { /*startAddr =26, /*columns =1, /*rows =1, /*elementSize =2, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.35156, /*map_name =Max Spark Adv added, /*ylabel =deg, /*yaxis =, /*xlabel =, /*xaxis =,, }; /* Item 10: main spark advance */ { /*startAddr =36, /*columns =12, /*rows =17, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.35156, /*map_name =Main spark advance, /*ylabel =RPM, /*yaxis =400 600 800 1000 1200 1400 1600 1800 2000 2200 2400 2800 3200 3600 4000 4400 4800, /*xlabel =load(kPa), /*xaxis =20 30 40 50 60 70 75 80 85 90 95 100,, }; /* Item 11: extended spark advance */ { /*startAddr =105, /*columns =12, /*rows =3, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.35156, /*map_name =Extended Spark Advance, /*ylabel =RPM, /*yaxis =4800 5200 5600, /*xlabel =load(kPa), /*xaxis =20 30 40 50 60 70 75 80 85 90 95 100,, }; /* Item 12: Spark Latency Correction */ { /*startAddr =129, /*columns =1, /*rows =14, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =15.26, /*map_name =Spark Latency Correction, /*ylabel =RPM, /*yaxis = 800 1200 1600 2000 2400 2800 3200 3600 4000 4400 4800 5200 5600 6000, /*xlabel =Microsec, /*xaxis =uSEC,, }; /* Item 13: Highway Mode Spark Advance 1 */ { /*startAddr =1a7, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =Min ECT for Hiway Mode SA, /*ylabel =, /*yaxis =Temp , /*xlabel =deg C, /*xaxis =,, }; /* Item 14: Highway Mode Spark Advance 2 */ { /*startAddr =1a8, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =Max MAP for Hiway Mode SA, /*ylabel =, /*yaxis =MAP, /*xlabel =kPa, /*xaxis =,, }; /* Item 15: Highway Mode Spark Advance 3 */ { /*startAddr =1a9, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =Min RPM for Hiway Mode SA, /*ylabel =, /*yaxis =rpm, /*xlabel =rpm, /*xaxis =,, }; /* Item 16: Highway Mode Spark Advance 4 */ { /*startAddr =1aa, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =Enbl Hiway Mode SA if Cond's exist > Time, /*ylabel =, /*yaxis =Time , /*xlabel =s, /*xaxis =,, }; /* Item 17: Highway mode SA vs MAP */ { /*startAddr =1ab, /*columns =1, /*rows =8, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =.35156, /*map_name =Hiway mode SA vs MAP, /*ylabel =kPa, /*yaxis = 30 35 40 45 50 55 60 65, /*xlabel =deg, /*xaxis =Degr ,, }; /* Item 18: pwr enrich spark advance */ { /*startAddr =1B3, /*columns =1, /*rows =5, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.35, /*map_name =Pwr Enrich Spark Advance, /*ylabel =RPM, /*yaxis =400 1200 2000 3200 4800, /*xlabel =, /*xaxis =,, }; /* Item 19: closed throttle main spark advance vs RPM */ { /*startAddr =17D, /*columns =1, /*rows =13, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.35, /*map_name =Closd Thrtl Main Spk Advance, /*ylabel =RPM, /*yaxis =0 400 800 1200 1600 2000 2400 2800 3200 3600 4000 4400 4800, /*xlabel =, /*xaxis =,, }; }; /* Item 21: Startup Spark Advance decay start*/ { /*startAddr =1b8, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =Startup Spark Advance decay rate, /*ylabel =reference pulses, /*yaxis =, /*xlabel =, /*xaxis =,, }; /* Item 22: Startup Spark Advance vs. Coolant Temp (C)*/ { /*startAddr =1b9, /*columns =1, /*rows =14, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =.3515625, /*map_name =Startup Spark Advance vs. Coolant Temp (C), /*ylabel =(C), /*yaxis = -40 -28 -16 -4 8 20 32 44 56 68 80 92 104 116, /*xlabel =Adv, /*xaxis =Adv,, }; /* Item 23: IF RPM >= ENAB KNOCK */ { /*startAddr =20a, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =12.5, /*map_name =IF RPM >= ENAB KNOCK, /*ylabel =RPM, /*yaxis =RPM, /*xlabel =RPM, /*xaxis =RPM,, }; /* Item 24: IF MPH >= THEN ENAB KNOCK */ { /*startAddr =20b, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =IF MPH >= THEN ENAB KNOCK, /*ylabel =MPH, /*yaxis =MPH, /*xlabel =MPH, /*xaxis =MPH,, }; /* Item 25: IF TEMP(C) < DISABLE KNOCK */ { /*startAddr =20c, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =-40, /*mulOrDivOrBit =0, /*factor =0.75, /*map_name =IF TEMP(C) < DISABLE KNOCK, /*ylabel =TEMP(C), /*yaxis =TEMP(C), /*xlabel =TEMP(C), /*xaxis =TEMP(C),, }; /* Item 26: IF DIFF COOL SINCE START > ENABLE KNOCK ?????? */ { /*startAddr =20d, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =-40, /*mulOrDivOrBit =0, /*factor =.75, /*map_name =IF DIFF COOL SINCE START > ENABLE KNOCK ???????, /*ylabel =TEMP(C), /*yaxis =TEMP(C), /*xlabel =TEMP(C), /*xaxis =TEMP(C),, }; /* Item 27: KNOCK ATTACK RATE vs RPM */ { /*startAddr =20e, /*columns =1, /*rows =5, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =.0225, /*map_name =KNOCK ATTACK RATE vs RPM (DEG/MS) ???????, /*ylabel =RPM, /*yaxis = 400 1200 2000 3200 4800, /*xlabel =DEG/MS, /*xaxis =DEG/MS,, }; /* Item 28: KNOCK PCT RECOVERY RATE vs RPM */ { /*startAddr =213, /*columns =1, /*rows =5, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =.0225, /*map_name =KNOCK ATTACK recovery RATE vs RPM (DEG/MS) ???????, /*ylabel =RPM, /*yaxis = 400 1200 2000 3200 4800, /*xlabel =DEG/MS, /*xaxis =DEG/MS,, }; /* Item 20: max knock retard in PE mode vs RPM */ { /*startAddr =218, /*columns =1, /*rows =8, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.17, /*map_name =Max Knock Retard in PE Mode, /*ylabel =RPM, /*yaxis =800 1600 2400 3200 4000 4800 5600 6400, /*xlabel =, /*xaxis =,, /* Item 21: max knock retard not in PE mode vs MAP */ { /*startAddr =220, /*columns =1, /*rows =9, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.17, /*map_name =Max Knock Retard not in PE Mode, /*ylabel =MAP, /*yaxis =20 30 40 50 60 70 80 90 100, /*xlabel =, /*xaxis =,, }; /* Item 30: LOW OCTAINE KNOCK RETARD MOD PRAMS 1 */ { /*startAddr =229, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =20, /*mulOrDivOrBit =0, /*factor =.3125, /*map_name =LO OCTANE KNOCK RETARD MOD MAP ENABLE , /*ylabel =kPa, /*yaxis =kPa, /*xlabel =kPa, /*xaxis =kPa,, }; /* Item 31: LOW OCTAINE KNOCK RETARD MOD PRAMS 2 */ { /*startAddr =22a, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =20, /*mulOrDivOrBit =0, /*factor =.3125, /*map_name =LO OCTANE KNOCK RETARD DIFF MAP AMT, /*ylabel =kPa, /*yaxis =kPa, /*xlabel =kPa, /*xaxis =kPa,, }; /* Item 32: LOW OCTAINE KNOCK RETARD MOD PRAMS 3 ??conversion?? */ { /*startAddr =22b, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =.17352941, /*map_name =LO OCTANE KNOCK RETARD ??conversion??, /*ylabel =DEG Advance, /*yaxis =DEG Advance, /*xlabel =DEG Advance, /*xaxis =DEG Advance,, }; /* Item 33: LOW OCTAINE KNOCK RETARD MOD PRAMS 4 ??no conversion?? */ { /*startAddr =22c, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =OCTANE KNOCK RETARD INCREASE AMT ??no conversion??, /*ylabel =DEG Advance, /*yaxis =DEG Advance, /*xlabel =DEG Advance, /*xaxis =DEG Advance,, }; /* Item 34: LOW OCTAINE KNOCK RETARD MOD PRAMS 5 ??no conversion?? */ { /*startAddr =22d, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =VLO OCTANE KNOCK RETARD DECREASE AMT ??no conversion??, /*ylabel =DEG Advance, /*yaxis =DEG Advance, /*xlabel =DEG Advance, /*xaxis =DEG Advance,, }; /* Item 35: LOW OCTANE KNOCK RETARD MOD PRAMS 6 ??no conversion?? */ { /*startAddr =22e, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =LO OCTANE KNOCK BASE RETARD ??no conversion??, /*ylabel =DEG Advance, /*yaxis =DEG Advance, /*xlabel =DEG Advance, /*xaxis =DEG Advance,, }; /* Item 36: Low Octane KNOCK mult vs RPM */ { /*startAddr =22f, /*columns =1, /*rows =9, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =.00390625, /*map_name =Low Octane KNOCK mult vs RPM, /*ylabel =RPM, /*yaxis =0 800 1600 2400 3200 4000 4800 5600 6400, /*xlabel =Multiplier, /*xaxis =Multiplier,, }; /* Item 37: Low Octane KNOCK mult vs MAP */ { /*startAddr =238, /*columns =1, /*rows =17, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =.00390625, /*map_name =Low Octane KNOCK mult vs MAP, /*ylabel =RPM, /*yaxis = 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100, /*xlabel =Multiplier, /*xaxis =Multiplier,, }; /* Item 22: Error code mask 23-12 */ { /*startAddr =249, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =80, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =Error Code Mask 23-12, /*ylabel =Code, /*yaxis =12 13 14 15 16 21 22 23, /*xlabel =, /*xaxis =,, }; /* Item 23: Error code mask 35-24 */ { /*startAddr =24A, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =80, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =Error Code Mask 35-24, /*ylabel =Code, /*yaxis =24 25 26 31 32 33 34 35, /*xlabel =, /*xaxis =,, }; /* Item 24: Error code mask 51-36 */ { /*startAddr =24B, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =80, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =Error Code Mask 51-36, /*ylabel =Code, /*yaxis =36 41 42 43 44 45 46 51, /*xlabel =, /*xaxis =,, }; /* Item 25: Error code mask 63-52 */ { /*startAddr =24C, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =80, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =Error code mask 63-52, /*ylabel =Code, /*yaxis =52 53 54 55 56 61 62 63, /*xlabel =, /*xaxis =,, }; /* Item 26: Error code mask 66-65 */ { /*startAddr =24D, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =80, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =Error Code Mask 66-65, /*ylabel =Code, /*yaxis =none none 65 66 none none none none, /*xlabel =, /*xaxis =,, }; /* Item 27: EGR enable temp*/ { /*startAddr =2b0, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =EGR enable temp, /*ylabel =, /*yaxis =, /*xlabel =, /*xaxis =,, }; /* Item 27: EGR DC vs RPM and MAP */ { /*startAddr =2b5, /*columns =9, /*rows =4, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =EGR DC vs. RPM and MAP, /*ylabel =, /*yaxis =, /*xlabel =, /*xaxis =,, }; /* Item 27: EGR D.C. mult vs. coolant*/ { /*startAddr =2d9, /*columns =1, /*rows =7, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =EGR D.C. mult vs. coolant, /*ylabel =temp, /*yaxis =8 20 32 44 56 68 80, /*xlabel =, /*xaxis =,, }; /* Item 27: Fan 1 enable speed(MPH) */ { /*startAddr =374, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =Fan 1 Disable Speed, /*ylabel =, /*yaxis =Speed , /*xlabel =mph, /*xaxis =,, }; /* Item 28: Fan 2 enable speed(MPH) */ { /*startAddr =375, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =Fan 2 Disable Speed, /*ylabel =, /*yaxis =Speed , /*xlabel =mph, /*xaxis =,, }; /* Item 29: Fan 1 disable temp Celcius */ { /*startAddr =377, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.54, /*map_name =Fan 1 Disable Temp, /*ylabel =, /*yaxis =Temp , /*xlabel =deg C, /*xaxis =,, }; /* Item 30: Fan 1 enable temp Celcius */ { /*startAddr =378, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.54, /*map_name =Fan 1 Enable Temp, /*ylabel =, /*yaxis =Temp , /*xlabel =deg C, /*xaxis =,, }; /* Item 31: Fan 2 disable temp Celcius */ { /*startAddr =379, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.54, /*map_name =Fan 2 Disable Temp, /*ylabel =, /*yaxis =Temp , /*xlabel =deg C, /*xaxis =,, }; /* Item 32: Fan 2 enable temp Celcius */ { /*startAddr =37A, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.54, /*map_name =Fan 2 Enable Temp, /*ylabel =, /*yaxis =Temp , /*xlabel =deg C, /*xaxis =,, }; /* Item 33: Fan 2 parameters 4 */ { /*startAddr =37c, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =1, /*factor =5, /*map_name =Fan 1 Del'd Run after off, /*ylabel =, /*yaxis =Time , /*xlabel =sec, /*xaxis =,, }; /* Item 33: Fan 2 parameters 4 */ { /*startAddr =37e, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =1, /*factor =5, /*map_name =Fan 2 Del'd Run after off, /*ylabel =, /*yaxis =Time , /*xlabel =sec, /*xaxis =,, }; /* Item 34: Crank PW vs. coolant temp (C) */ { /*startAddr =3AF, /*columns =1, /*rows =14, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =200.004878049, /*map_name =Crank PW vs. Coolant Temp, /*ylabel =deg C, /*yaxis =-40 -28 -16 -4 8 20 32 44 56 68 80 92 104 116, /*xlabel =usec, /*xaxis =,, }; /* Item 35: Max speed (MPH) fuel cut */ { /*startAddr =3F4, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =Speed Limiter (Fuel Cutoff), /*ylabel =, /*yaxis =Speed , /*xlabel =mph, /*xaxis =,, }; /* Item 36: Max RPM fuel cut */ { /*startAddr =3F5, /*columns =1, /*rows =1, /*elementSize =2, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =92.660194, /*map_name =RPM Limiter (Fuel Cutoff), /*ylabel =, /*yaxis =rpm , /*xlabel =rpm, /*xaxis =,, }; /* Item 37: fuel return speed(MPH) */ { /*startAddr =3F7, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =Speed Limiter (Fuel return), /*ylabel =, /*yaxis =Speed , /*xlabel =mph, /*xaxis =,, }; /* Item 38: fuel return RPM */ { /*startAddr =3F8, /*columns =1, /*rows =1, /*elementSize =2, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =92.660194, /*map_name =RPM Limiter (Fuel return), /*ylabel =, /*yaxis =rpm , /*xlabel =rpm, /*xaxis =,, }; /* Item 39: OPEN LOOP FUEL/AIR PARAMS 2 -- sec/g = 1/(#hr/3600*453.59237)/1280 */ { /*startAddr =41c, /*columns =1, /*rows =1, /*elementSize =2, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =1, /*factor =10159, /*map_name =Injector Flow Rate (lbs/h), /*ylabel =, /*yaxis =Flow, /*xlabel =lbs/h, /*xaxis =,, }; /* Item 58: speed density calc. */ { /*startAddr =6dd, /*columns =1, /*rows =1, /*elementSize =2, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =speed density calc., /*ylabel = , /*yaxis = , /*xlabel = , /*xaxis = ,, }; /* Item 59: OPEN LOOP FUEL/AIR PARAMS 4 */ { /*startAddr =41f, /*columns =1, /*rows =1, /*elementSize =2, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =1, /*factor =2.56, /*map_name =OPEN LOOP FUEL/AIR PARAMS (% CHG Open Loop F/A % CHG AT IDLE), /*ylabel =%, /*yaxis =%, /*xlabel =%, /*xaxis =%, }; /* Item 60: OPEN LOOP FUEL/AIR % CHG vs MAP */ { /*startAddr =420, /*columns =1, /*rows =17, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =1, /*factor =2.56, /*map_name =OPEN LOOP FUEL/AIR % CHG vs MAP, /*ylabel =kPa, /*yaxis = 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100, /*xlabel =% Change, /*xaxis =%, }; /* Item 40: Startup enrich vs coolant (CHOKE) */ { /*startAddr =431, /*columns =1, /*rows =16, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.390535, /*map_name =Startup Enrich vs ECT, /*ylabel =temp, /*yaxis =-40 -28 -26 -4 8 20 32 44 56 68 80 92 104 116 128 140, /*xlabel =%chng, /*xaxis =,, }; /* Item 41: open loop AFR % change vs coolant */ { /*startAddr =45E, /*columns =1, /*rows =17, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.392, /*map_name =Open Loop A/F % Change vs ECT, /*ylabel =Temp, /*yaxis =-40 -28 -26 -4 8 20 32 44 56 68 80 92 104 116 128 140 152, /*xlabel =%, /*xaxis =,, }; /* Item 42: max KPA for Highway Mode Fuel (Disable af) */ { /*startAddr =480, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.92308, /*map_name =Max MAP for Hiway Mode Fuel, /*ylabel =, /*yaxis =Press , /*xlabel =kPa, /*xaxis =,, }; /* Item 43: minimum temp for Highway Mode Fuel (°C) */ { /*startAddr =481, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.4928, /*map_name =Min ECT for Hiway Mode Fuel, /*ylabel =, /*yaxis =Temp , /*xlabel =deg C, /*xaxis =,, }; /* Item 44: max time in Highway mode (sec) */ { /*startAddr =483, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =Max Time in Highway Mode, /*ylabel =, /*yaxis =Time , /*xlabel =s, /*xaxis =,, }; /* Item 45: minimum speed for Highway Mode Fuel (MPH) */ { /*startAddr =484, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =Min Speed for Hiway Mode Fuel, /*ylabel =, /*yaxis =Speed , /*xlabel =mph, /*xaxis =,, }; /* Item 46: Highway mode AFR vs MAP */ { /*startAddr =485, /*columns =1, /*rows =4, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.1, /*map_name =Highway Mode AFR vs MAP, /*ylabel =kPa, /*yaxis =30 40 50 60, /*xlabel =, /*xaxis =,, }; /* Item 47: minimum temp for clsd loop mode */ { /*startAddr =489, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =-40, /*mulOrDivOrBit =0, /*factor =0.75, /*map_name =Min ECT for Clsd Loop Mode, /*ylabel =, /*yaxis =Temp , /*xlabel =deg C, /*xaxis =,, }; /* Item 69: CLOSED LOOP FUEL CONTROL ENABLE PARAMS 2 */ { /*startAddr =48a, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =-40, /*mulOrDivOrBit =0, /*factor =.75, /*map_name =CLOSED LOOP FUEL CONTROL PARAMS 2 (IF COOL >= (C) USE HOT CLS LP TIMER), /*ylabel =Degrees (C), /*yaxis =(C), /*xlabel =Degrees (C), /*xaxis =(C), }; /* Item 70: CLOSED LOOP FUEL CONTROL ENABLE PARAMS 3 */ { /*startAddr =48b, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =-40, /*mulOrDivOrBit =0, /*factor =.75, /*map_name =CLOSED LOOP FUEL CONTROL PARAMS 3 (IF COOL <= (C) USE COLD CLS LP TIMER), /*ylabel =Degrees (C), /*yaxis =(C), /*xlabel =Degrees (C), /*xaxis =(C), }; /* Item 71: CLOSED LOOP TIMERS 1 (WARM CLS LP TIMER)*/ { /*startAddr =48c, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =1, /*factor =2, /*map_name =CLOSED LOOP TIMERS 1 (COLD CLS LP TIMER), /*ylabel =Seconds, /*yaxis =SEC, /*xlabel =Seconds, /*xaxis =SEC, }; /* Item 72: CLOSED LOOP TIMERS 2 (COLD CLS LP TIMER)*/ { /*startAddr =48d, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =1, /*factor =2, /*map_name =CLOSED LOOP TIMERS 2 (WARM CLS LP TIMER), /*ylabel =Seconds, /*yaxis =SEC, /*xlabel =Seconds, /*xaxis =SEC, }; /* Item 73: CLOSED LOOP TIMERS 3 (HOT CLS LP TIMER)*/ { /*startAddr =48e, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =1, /*factor =2, /*map_name =CLOSED LOOP TIMERS 3 (HOT CLS LP TIMER), /*ylabel =Seconds, /*yaxis =SEC, /*xlabel =Seconds, /*xaxis =SEC, }; /* Item 74: INTIGRATOR VAL'S 1*/ { /*startAddr =492, /*columns =1, /*rows =2, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =CLOSED LOOP AUTH LIMITS FOR INTEGRATOR VAL'S (CLS LP MIN CORRECTION VALUE) , /*ylabel =Integrator Value, /*yaxis =max min, /*xlabel =, /*xaxis =, }; /* Item 48: CLOSED LOOP FUEL CNT'L PARAMS & TABLES 1 */ { /*startAddr =494, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =1, /*factor =2.56, /*map_name =Max %TPS for Idle, /*ylabel =, /*yaxis =TPS, /*xlabel =%, /*xaxis =,, }; /* Item 49: CLOSED LOOP FUEL CNT'L PARAMS & TABLES 2 */ { /*startAddr =495, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =2, /*factor =.3125, /*map_name =Max Speed for Idle, /*ylabel =, /*yaxis =Speed, /*xlabel =mph, /*xaxis =,, }; /* Item 77: BLM cell edges(RPM) */ { /*startAddr =510, /*columns =1, /*rows =3, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =25, /*map_name =BLM cell edges(RPM), /*ylabel =RPM, /*yaxis =low mid hi, /*xlabel = , /*xaxis = ,, }; /* Item 78: BLM cell edges(kpa) */ { /*startAddr =513, /*columns =1, /*rows =3, /*elementSize =1, /*bitMask =0, /*offset =20, /*mulOrDivOrBit =1, /*factor =3.17, /*map_name =BLM cell edges(kpa), /*ylabel =kpa, /*yaxis =low mid hi, /*xlabel = , /*xaxis = ,, }; /* Item 81: BLM temp limits*/ { /*startAddr =518, /*columns =1, /*rows =2, /*elementSize =1, /*bitMask =0, /*offset =-40, /*mulOrDivOrBit =0, /*factor =.75, /*map_name =BLM temp limits, /*ylabel =temp, /*yaxis =cool hot, /*xlabel = , /*xaxis = ,, }; /* Item 81: BLM limits*/ { /*startAddr =51D, /*columns =1, /*rows =2, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =BLM limits, /*ylabel =BLM, /*yaxis =max min, /*xlabel = , /*xaxis = ,, }; /* Item 82: fuel cut off upper limit(RPM) */ { /*startAddr =5E1, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =25, /*map_name =fuel cut off upper limit(RPM), /*ylabel = , /*yaxis = , /*xlabel = }, /*xaxis = ,, }; /* Item 83: fuel cut off lower limit(RPM) */ { /*startAddr =5E2, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =25, /*map_name =fuel cut off lower limit(RPM), /*ylabel = , /*yaxis = , /*xlabel = }, /*xaxis = ,, }; /* Item 84: Decel enable/stay in settings(kpa) */ { /*startAddr =513, /*columns =1, /*rows =2, /*elementSize =1, /*bitMask =0, /*offset =20, /*mulOrDivOrBit =1, /*factor =3.17, /*map_name =enable/stay in decel mode(kpa), /*ylabel =kpa, /*yaxis =enab stay, /*xlabel = , /*xaxis = ,, }; /* Item 85: minimum time for fuel cut off */ { /*startAddr =5E7, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.003125, /*map_name =minimum time for fuel cut off, /*ylabel = , /*yaxis = , /*xlabel = }, /*xaxis = ,, }; /* Item 86: minimum temp for fuel cut off */ { /*startAddr =5E8, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.4928, /*map_name =minimum temp for fuel cut off, /*ylabel = , /*yaxis = , /*xlabel = }, /*xaxis = ,, }; /* Item 87: minimum speed for fuel cut off */ { /*startAddr =5E9, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =minimum speed for fuel cut off, /*ylabel = , /*yaxis = , /*xlabel = }, /*xaxis = ,, }; /* Item 88: minimum time between fuel cut modes */ { /*startAddr =5EF, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =minimum time between fuel cut modes, /*ylabel = , /*yaxis = , /*xlabel = }, /*xaxis = ,, }; /* Item 89: Tps% to enable fuel cut off */ { /*startAddr =5F5, /*columns =1, /*rows =10, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.390625, /*map_name =Tps% to enable fuel cut off, /*ylabel =RPM, /*yaxis =0 400 800 1200 1600 2000 2400 2800 3200 3600 , /*xlabel = }, /*xaxis = ,, }; /* Item 50: Throttle Pos% to enable PE mode(WOT) */ { /*startAddr =603, /*columns =1, /*rows =5, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.390625, /*map_name =% throttle to enable PE mode, /*ylabel =rpm, /*yaxis =400 1200 2000 3200 4800, /*xlabel =TPS%, /*xaxis =,, }; /* Item 52: PE Threshold hot */ { /*startAddr =608, /*columns =1, /*rows =5, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =.390625, /*map_name =% throttle to enable PE mode when hot, /*ylabel =rpm, /*yaxis = 400 1200 2000 3200 4800, /*xlabel =, /*xaxis =,, }; /*Item 112: Lambda C */ { /*startAddr =60e, /*columns =9, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =1, /*factor =256, /*map_name =Lambda C vs temp, /*ylabel =, /*yaxis =, /*xlabel =temp, /*xaxis =-40-168 32 56 80 104128152 ,, }; /*Item 113: Lambda C */ { /*startAddr =617, /*columns =17, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =1, /*factor =128, /*map_name =Lambda W vs RPM (AFR = LAMBDA C + LAMBDA W), /*ylabel =, /*yaxis =, /*xlabel =, /*xaxis =,, }; /* Item 53: Idle speed vs coolant */ { /*startAddr =632, /*columns =1, /*rows =17, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =12.5, /*map_name =Idle Speed vs ECT, /*ylabel =deg C, /*yaxis =-40 -28 -15 -4 8 20 32 44 56 68 80 92 104 116 128 140 152, /*xlabel =rpm, /*xaxis =,, }; /* Item 54: VE lower table */ { /*startAddr =6EE, /*columns =13, /*rows =13, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.390124, /*map_name =VE lower Table, /*ylabel =RPM, /*yaxis =400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 , /*xlabel =Kpa, /*xaxis =20 25 30 35 40 45 50 55 60 70 80 90 100,, }; /* Item 55: VE upper table (extended) */ { /*startAddr =79A, /*columns =9, /*rows =11, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =0.390124, /*map_name =VE upper Table (extended), /*ylabel =rpm, /*yaxis =1600 2000 2400 2800 3200 3600 4000 4400 4800 5200 5600 , /*xlabel =kpa, /*xaxis =20 30 40 50 60 70 80 90 100,, }; /* Item 56: crank pulse mult. Vs. ref pulses */ { /*startAddr =3c7, /*columns =16, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =1, /*factor =64, /*map_name =Crank Pulse mult. Vs. ref pulses 1-16, /*ylabel =, /*yaxis =, /*xlabel =, /*xaxis =,, }; /* Item 57: crank pulse mult. Vs. ref pulses above 16 */ { /*startAddr =3d7, /*columns =1, /*rows =8, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =1, /*factor =64, /*map_name =Crank Pulse mult. Vs. ref pulses above 16, /*ylabel =, /*yaxis =, /*xlabel =, /*xaxis =,, }; /* Item 58: IAC warm park position vs coolant*/ { /*startAddr =68a, /*columns =9, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =IAC warm park position vs coolant, /*ylabel = , /*yaxis = , /*xlabel = , /*xaxis = ,, }; /* Item 59: IAC park position*/ { /*startAddr =629, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name =IAC park position, /*ylabel = , /*yaxis = , /*xlabel = , /*xaxis = ,, }; /* Item 60: Acell enrich factor per ref pulse*/ { /*startAddr =53b, /*columns =8, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =1, /*factor =64, /*map_name = Acell enrich factor per ref pulse, /*ylabel =factor, /*yaxis =, /*xlabel =ref pulse, /*xaxis =1 2 3 4 5 6 7 8,, }; /* Item 61: Accel enrich last __ Ref pulses*/ { /*startAddr =530, /*columns =1, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =1, /*map_name = Acell enrich lasts __ ref pulses, /*ylabel =, /*yaxis =, /*xlabel =, /*xaxis =,, }; /* Item 62: MSEC max accel enrich PW limit*/ { /*startAddr =532, /*columns =1, /*rows =1, /*elementSize =2, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =.019, /*map_name = MSEC max accel enrich PW limit, /*ylabel =, /*yaxis =, /*xlabel =, /*xaxis =,, }; /* Item 63: Async factor vs. TPS%*/ { /*startAddr =543, /*columns =17, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =1, /*factor =128, /*map_name =Async factor vs. TPS%, /*ylabel =, /*yaxis =, /*xlabel =TPS%, /*xaxis =0 3 6 9 13 16 19 22 25 28 31 34 38 41 44 47 50,, }; /* Item 64: Async factor vs. coolant*/ { /*startAddr =554, /*columns =15, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =1, /*factor =128, /*map_name =Async factor vs. coolant, /*ylabel =, /*yaxis =, /*xlabel =temp, /*xaxis =-40-28-16-4 8 20 32 44 56 68 80 92 104116128 ,, }; /* Item 65: MAP Acell enrich factor vs DIFF MAP*/ { /*startAddr =580, /*columns =6, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0 /*factor =.3906 /*map_name =MAP Acell enrich factor vs DIFF MAP, /*ylabel =factor, /*yaxis =, /*xlabel =DIFF MAP, /*xaxis =0 10 20 30 40 50 ,, }; /* Item 66: MAP Acell enrich coolant mult*/ { /*startAddr =587, /*columns =9, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =1, /*factor =128, /*map_name =MAP Acell enrich coolant mult, /*ylabel =, /*yaxis =, /*xlabel =temp, /*xaxis =-40-168 32 56 80 104128152,, }; /* Item 67: Acell enrich decay factor vs. Coolant*/ { /*startAddr =591, /*columns =8, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =0, /*factor =.3906251, /*map_name =Acell enrich decay factor vs. coolant, /*ylabel =, /*yaxis =, /*xlabel =temp, /*xaxis =-40-168 32 56 80 104128152,, }; /* Item 68: MAP accel edr factor mult vs TPS%*/ { /*startAddr =59f, /*columns =5, /*rows =1, /*elementSize =1, /*bitMask =0, /*offset =0, /*mulOrDivOrBit =1, /*factor =64, /*map_name =MAP accel edr factor mult vs TPS%, /*ylabel =, /*yaxis =, /*xlabel =tps%, /*xaxis =0 13 25 38 50,, };