<!-- *** 
This 21660002 ROM definition for the JDM FTO-GPX authored by merlin.
Please report any errors or additions to merlin@three.com.au

Note 1: Address locations in XML are offset by hex 10000 from ROM absolute address
Note 2: 2 byte Spark-Load logging, MUT00 = F1A6 MUT01 = F1A7
Note 3: This ROM stock has PURGE and EGR disabled.
Note 4: This ROM stock has no Rear O2 Sensor. The ECU analog input can be used for an wideband O2 Sensor for logging.
Note 4: Editing the definition from within EcuFlash will alter the layout and structure of the definition and all the comments and spacing will be removed. Use Notepad to edit the definition file.

Last Revision:
16 June  2011
 *** -->


<rom>
	<romid>
                <xmlid>21660002</xmlid>
                <internalidaddress>1021A</internalidaddress>
                <internalidhex>21660002</internalidhex>
                <caseid>MR</caseid>
                <make>Mitsubishi</make>
                <market>JDM</market>
                <model>FTO</model>
                <submodel>GPX</submodel>
                <transmission>manual</transmission>
                <year>1996 - 2000 with 7202 chip</year>
                <flashmethod>mitsukernel</flashmethod>
                <memmodel>H8539F</memmodel>
	</romid>




<!--  *** SCALINGS ***  -->

<scaling name="AFR" units="AFR" toexpr="14.7*128/x" frexpr="14.7*128/x" format="%.1f" min="8" max="20" inc="0.1" storagetype="uint8" endian="big"/>

<scaling name="Baro16" units="bar" toexpr="x/200" frexpr="x*200" format="%.3f" min="0" max="1.100" inc="0.001" storagetype="uint16" endian="big"/>
<scaling name="BatteryVoltage" units="V" toexpr="x*75/1024" frexpr="x*1024/75" format="%.2f" min="0" max="18.75" inc="0.5" storagetype="uint16" endian="big"/>
<scaling name="BoostBar" units="bar" toexpr="x/93.7" frexpr="x*93.7" format="%.2f" min="0" max="2.7" inc="0.05" storagetype="uint8" endian="big"/>
<scaling name="BoostBar16" units="bar" toexpr="x/1372.2" frexpr="x*1372.2" format="%.2f" min="0" max="2.7" inc="0.05" storagetype="uint16" endian="big"/>

<scaling name="ChargeTime" units="mS" toexpr="x*0.064" frexpr="x/0.064" format="%.2f" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>
<scaling name="ChargeTimeOffset" units="mS" toexpr="x/256" frexpr="x*256" format="%.3f" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>
<scaling name="CrankPulseTime" units="mS" toexpr="x" frexpr="x" format="%.0f" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>
<scaling name="CF32" units="Correction Factor" toexpr="x/32" frexpr="x*32" format="%.3f" min="0" max="7.9687" inc="0.03125" storagetype="uint8" endian="big"/>
<scaling name="CF128" units="Correction Factor" toexpr="x/128" frexpr="x*128" format="%.3f" min="0" max="2" inc="0.05" storagetype="uint8" endian="big"/>
<scaling name="CF256" units="Correction Factor" toexpr="x/256" frexpr="x*256" format="%.3f" min="0" max="2" inc="0.05" storagetype="uint8" endian="big"/>

<scaling name="Enrich" units="deg" toexpr="x-128" frexpr="x+128" format="%.0f" min="-128" max="128" inc="1" storagetype="uint8" endian="big"/>
<scaling name="Enrich%" units="Enrich%" toexpr="x" frexpr="x" format="%.0f" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>
<scaling name="EnrichmentAdj" units="%" toexpr="x/128" frexpr="x*128" format="%.2f" min="0" max="2" inc="0.05" storagetype="uint8" endian="big"/>

<scaling name="Hex16" units="hex" toexpr="x" frexpr="x" format="%04X" min="0" max="65535" inc="1" storagetype="uint16" endian="big"/>
<scaling name="Hex8" units="hex" toexpr="x" frexpr="x" format="%02X" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>

<scaling name="ISCVSteps" units="Steps" toexpr="x" frexpr="x" format="%.0f" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>
<scaling name="ISCVSteps16" units="Steps" toexpr="x" frexpr="x" format="%.0f" min="0" max="255" inc="1" storagetype="uint16" endian="big"/>
<scaling name="InjectorLatency1" units="ms" toexpr="x*0.024" frexpr="x/0.024" format="%.3f" min="0" max="6" inc="0.024" storagetype="uint8" endian="big"/>
<scaling name="InjectorLatency2" units="mS" toexpr="x*0.015" frexpr="x/0.015" format="%.3f" min="0" max="6" inc="0.015" storagetype="uint8" endian="big"/>
<scaling name="InjectorScaling" units="cc/min" toexpr="29241/x" frexpr="29241/x" format="%.0f" min="0" max="29241" inc="10" storagetype="uint16" endian="big"/>
<scaling name="InjectorScaling_Mitsubishi" units="cc/min" toexpr="34140/x" frexpr="34140/x" format="%.0f" min="1" max="34140" inc="10" storagetype="uint16" endian="big"/>


<scaling name="Load" units="%" toexpr="x*10/32" frexpr="x*32/10" format="%.0f" min="0" max="300" inc="1" storagetype="uint16" endian="big"/>
<scaling name="Load16" units="units" toexpr="x*5/8" frexpr="x*8/5" format="%.1f" min="0" max="100" inc="1" storagetype="uint16" endian="big"/>
<scaling name="Load8" units="%" toexpr="x*5/8" frexpr="x*8/5" format="%.1f" min="0" max="160" inc="1" storagetype="uint8" endian="big"/>
<scaling name="LoadBoost" units="%" toexpr="x*5/4" frexpr="x*4/5" format="%.0f" min="0" max="319" inc="1" storagetype="uint8" endian="big"/>

<scaling name="MaxTimingKnockRetard" units="degrees" toexpr="x*0.35" frexpr="x/0.35" format="%.1f" min="0" max="30" inc="1" storagetype="int8" endian="big"/>

<scaling name="Percent255" units="%" toexpr="100*x/255" frexpr="255*x/100" format="%.0f" min="0" max="100" inc="1" storagetype="uint8" endian="big"/>
<scaling name="Percent (128)" units="%" toexpr="x/1.28" frexpr="x*1.28" format="%.0f" min="0" max="100" inc="1" storagetype="uint8" endian="big"/>
<scaling name="Percent (256)" units="Trim %" toexpr="x/2.55" frexpr="x*2.55" format="%.0f" min="0" max="100" inc="0.392" storagetype="uint8" endian="big"/>

<scaling name="Retarduint16" units="MAX Retard Degrees_dec" toexpr="-(10+(x-203)/3)" frexpr="(x-203)*0.3+10" format="%.1f" min="0" max="65535" inc="0.3" storagetype="uint16" endian="big"/>
<scaling name="RetardHex8" units="MAX Retard Degrees_hex" toexpr="x" frexpr="x" format="%02X" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>
<scaling name="RPM" units="RPM" toexpr="x*1000/256" frexpr="x*256/1000" format="%.0f" min="0" max="11000" inc="50" storagetype="uint16" endian="big"/>
<scaling name="RPM8" units="RPM" toexpr="x*125/16" frexpr="x*16/125" format="%.0f" min="0" max="2000" inc="50" storagetype="uint8" endian="big"/>
<scaling name="RPMLimit" units="RPM" toexpr="7500000/x" frexpr="7500000/x" format="%.0f" min="0" max="9000" inc="60" storagetype="uint16" endian="big"/>
<scaling name="RPMStatLimit" units="units" toexpr="x*31.25" frexpr="x/31.25" format="%.0f" min="0" max="9000" inc="31.25" storagetype="uint16" endian="big"/>
<scaling name="RPMTarget" units="RPM" toexpr="x*125/16" frexpr="x*16/125" format="%.0f" min="0" max="2000" inc="50" storagetype="uint16" endian="big"/>
<scaling name="RPMPerMPH" units="RPM/MPH" toexpr="x/22.6" frexpr="22.6*x" format="%.0f" min="0" max="3000" inc="5" storagetype="uint16" endian="big"/>

<scaling name="Temp" units="Celsius" toexpr="x-40" frexpr="x+40" format="%.0f" min="-40" max="215" inc="1" storagetype="uint16" endian="big"/>
<scaling name="Temp8" units="Celsius" toexpr="x-40" frexpr="x+40" format="%.0f" min="-40" max="215" inc="1" storagetype="uint8" endian="big"/>

<scaling name="ThrottleVoltage" units="V" toexpr="x*5/256" frexpr="x*256/5" format="%.2f" min="0" max="5" inc="0.05" storagetype="uint8" endian="big"/>
<scaling name="Time" units="ms" toexpr="x*25" frexpr="x/25" format="%.0f" min="0" max="1.63838e+06" inc="25" storagetype="uint16" endian="big"/>
<scaling name="TimeSec" units="s" toexpr="x/10" frexpr="x*10" format="%.1f" min="0" max="25.5" inc="0.1" storagetype="uint16" endian="big"/>
<scaling name="Timing" units="degrees" toexpr="x" frexpr="x" format="%.0f" min="-61" max="61" inc="1" storagetype="int8" endian="big"/>
<scaling name="TimingTrim8" units="units" toexpr="x-128" frexpr="x+128" format="%.0f" min="-128" max="128" inc="1" storagetype="uint8" endian="big"/>
<scaling name="Timesecbyte" units="Seconds" toexpr="x/10" frexpr="x*10" format="%.1f" min="0" max="25.5" inc="0.1" storagetype="uint8" endian="big"/>

<scaling name="uint8" units="units" toexpr="x" frexpr="x" format="%.0f" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>
<scaling name="uint16" units="units" toexpr="x" frexpr="x" format="%.0f" min="0" max="65535" inc="1" storagetype="uint16" endian="big"/>

<scaling name="ValveTiming" units="degrees" toexpr="72-x*0.6" frexpr="(72-x)/0.6" format="%.1f" min="0" max="30" inc="0.6" storagetype="uint8" endian="big"/>
<scaling name="VehicleSpeed" units="km/h" toexpr="x*2" frexpr="x/2" format="%.0f" min="0" max="510" inc="1" storagetype="uint16" endian="big"/>
<scaling name="VehicleSpeed8" units="units" toexpr="x*2" frexpr="x/2" format="%.0f" min="0" max="510" inc="1" storagetype="uint8" endian="big"/>
<scaling name="Volts16" units="Volts" toexpr="x*5/256" frexpr="x*256/5" format="%.2f" min="0" max="5" inc="0.05" storagetype="uint16" endian="big"/>

<scaling name="WGDuty" units="%" toexpr="x/2" frexpr="x*2" format="%.1f" min="0" max="100" inc="0.5" storagetype="uint8" endian="big"/>

<scaling name="XADINT" units="%" toexpr="x*90/256-56.25" frexpr="(x+56.25)*256/90" format="%.3f" min="-55.898" max="33.75" inc="0.352" storagetype="uint8" endian="big"/>
<scaling name="XTBATR" units="uS" toexpr="x" frexpr="x" format="%.0f" min="0" max="256" inc="1" storagetype="uint8" endian="big"/>
<scaling name="XBCLP" units="mS" toexpr="x*0.256" frexpr="x/0.256" format="%.3f" min="0" max="1000" inc="0.256" storagetype="uint8" endian="big"/>

<scaling name="TempScale" units="Celsius" toexpr="x" frexpr="x" format="%.0f" min="-40" max="140" inc="1" storagetype="int8" endian="big"/>
<scaling name="VoltsADCx4" units="Volts" toexpr="x*5/1023" frexpr="x*1023/5" format="%.3f" min="0" max="5" inc="0.005" storagetype="uint16" endian="big"/>

<scaling name="ThrottlePercentage8" units="%TPS" toexpr="x/255*100" frexpr="x*255/100" format="%.0f" min="0" max="100" inc="1" storagetype="uint8"/>
<scaling name="Rpm8" units="RPM" toexpr="x*31.25" frexpr="x/31.25" format="%.0f" min="0" max="8000" inc="31.25" storagetype="uint8" endian="big"/>




<!--  *** Fuel  ***  -->

<table name="1 Fuel - Alcohol Composition" category="Fuel" address="1181c" type="2D" scaling="CF128">
<table name="Grade" type="Static X Axis" elements="8">
<data>00</data>
<data>01</data>
<data>02</data>
<data>03</data>
<data>04</data>
<data>05</data>
<data>06</data>
<data>07</data>
</table>
</table>


<table name="2 HI-OCTANE FUEL MAP" category="Fuel" address="1182b" type="3D" swapxy="true" scaling="AFR">
<table name="Load" address="2c4e8" type="X Axis" elements="8" scaling="Load"/>
<table name="RPM" address="2c66e" type="Y Axis" elements="17" scaling="RPM"/>
</table>


<table name="3 LO-OCTANE FUEL MAP" category="Fuel" address="118bb" type="3D" swapxy="true" scaling="AFR">
<table name="Load" address="2c4e8" type="X Axis" elements="8" scaling="Load"/>
<table name="RPM" address="2c6ee" type="Y Axis" elements="17" scaling="RPM"/>
</table>


<table name="4A Decel Fuel-On, RPM v Temp" category="Fuel" address="11950" type="2D" scaling="Rpm8">
<table name="Engine Temp" address="2c568" type="X Axis" elements="8" scaling="Temp"/>
</table>


<table name="Closed Loop Water Temp" category="Fuel" address="108a1" type="1D" scaling="Temp8"/>


<table name="5 Closed-Loop v Throttle" category="Fuel" address="11968" type="2D" scaling="ThrottlePercentage8">
<table name="RPM" address="2c206" type="Y Axis" elements="12" scaling="RPM"/>
</table>


<table name="6 Closed-Loop v Load" category="Fuel" address="11978" type="2D" scaling="Load8">
<table name="RPM" address="2c206" type="Y Axis" elements="12" scaling="RPM"/>
</table>


<scaling name="IPW_Alpha-N" units="IPW mS" toexpr="x/13.885" frexpr="x*13.885" format="%.2f" min="0" max="19" inc="0.072" storagetype="uint8" endian="big"/>

<table name="17 Limp Home - Alpha-N Mode IPW Fuel Table" category="Fuel" address="11a4f" type="3D" swapxy="true" scaling="Load8">
<table name="TPS" address="2c554" type="X Axis" elements="7" scaling="Volts16"/>
<table name="Engine Speed" address="2c544" type="Y Axis" elements="5" scaling="RPM"/>
</table>


<table name="18 Injector Latency Compensation" address="11a76" category="Fuel" type="2D" scaling="InjectorLatency2">
<table name="Battery Voltage" address="2c3b2" type="Y Axis" elements="7" scaling="BatteryVoltage"/>
</table>


<scaling name="Time_uSec" units="uSec" toexpr="x*4" frexpr="x/4" format="%.0f" min="0" max="1024" inc="4" storagetype="uint8" endian="big"/>

<table name="19 Injector Learning Table" address="11a7d" category="Fuel" type="3D" scaling="Time_uSec">
    <table name="uSec" type="Static X Axis" elements="6">
      <data>000</data>
      <data>032</data>
      <data>064</data>
      <data>096</data>
      <data>128</data>
      <data>160</data>
    </table>
    <table name="Time uSec" type="Static Y Axis" elements="11">
      <data>   0uSec</data>
      <data> 192uSec</data>
      <data> 384uSec</data>
      <data> 576uSec</data>
      <data> 768uSec</data>
      <data> 960uSec</data>
      <data>1152uSec</data>
      <data>1344uSec</data>
      <data>1536uSec</data>
      <data>1728uSec</data>
      <data>1920uSec</data>
    </table>
  </table>


<scaling name="CrankPulseOneShot" units=".           mS          ." toexpr="x*0.004" frexpr="x/0.004" format="%.3f" min="0" max="255" inc="0.004" storagetype="uint16" endian="big"/>

<table name="Cranking Extra IPW" category="Fuel" address="1033a" type="1D" scaling="CrankPulseOneShot"/>

<scaling name="CrankCoefficient" units=" mS " toexpr="x*1.2" frexpr="x/1.2" format="%.1f" min="0" max="255" inc="1.2" storagetype="uint8" endian="big"/>

<table name="20 Cranking IPW" address="11ac4" category="Fuel" type="2D" scaling="CrankCoefficient">
<table name="Engine Temperature" address="2c57e" type="Y Axis" elements="9" scaling="Temp"/>
</table>




<!--  *** MAP Sensor ***  -->

<table name="MAP Data 1" address="122a2" category="MAP Sensor" type="2D" scaling="uint8">
<table name="X" address="122a2" type="X Axis" elements="121" scaling="uint8"/>
</table>


<table name="MAP Data 2" address="1231e" category="MAP Sensor" type="2D" scaling="uint8">
<table name="X" address="1231e" type="X Axis" elements="201" scaling="uint8"/>
</table>




<!--  *** Injectors ***  -->

<scaling name="InjectorLatency1" units="ms" toexpr="x*0.024" frexpr="x/0.024" format="%.3f" min="0" max="6" inc="0.024" storagetype="uint8" endian="big"/>
<scaling name="InjectorLatency2" units="mS" toexpr="x*0.015" frexpr="x/0.015" format="%.3f" min="0" max="6" inc="0.015" storagetype="uint8" endian="big"/>


<scaling name="InjectorScaling" units="cc/min" toexpr="29241/x" frexpr="29241/x" format="%.0f" min="0" max="29241" inc="10" storagetype="uint16" endian="big"/>
<scaling name="InjectorScaling_Mitsubishi" units="cc/min" toexpr="34140/x" frexpr="34140/x" format="%.0f" min="1" max="34140" inc="10" storagetype="uint16" endian="big"/>


<table name="Injector Dead-Band Coeff" category="Injectors" address="10801" type="1D" scaling="XTBATR"/>


<table name="Injector Min. Pulse Width" category="Injectors" address="10803" type="1D" scaling="XBCLP"/>


<table name="Injector Size, EcuFLASH Scaling " category="Injectors" address="10806" type="1D" scaling="InjectorScaling"/>
<table name="Injector Size, Mitsubishi Scaling " category="Injectors" address="10806" type="1D" scaling="InjectorScaling_Mitsubishi"/>


<!-- 
Injector Latency scaling equation is a function of the Injector Dead-Band Coefficient,
if Dead-Band Coeff = 24uS use InjectorLatency1
if Dead-Band Coeff = 15uS use InjectorLatency2
-->


<table name="Injector Latency v Battery Voltage" category="Injectors" address="11a76" type="2D" scaling="InjectorLatency2">
<table name="Battery Voltage" type="Y Axis" address="2c3b2" elements="7" scaling="BatteryVoltage"/>
</table>




<!--  *** Timing ***  -->

<table name="Spark Map 1, Hi-Octane Main" category="Timing" address="11c07" type="3D" swapxy="true" scaling="Timing">
<table name="Load" address="2c756" type="X Axis" elements="9" scaling="Load"/>
<table name="RPM" address="2c492" type="Y Axis" elements="21" scaling="RPM"/>
</table>


<table name="Spark Map 2, Lo-Octane Main" category="Timing" address="11ccb" type="3D" swapxy="true" scaling="Timing">
<table name="Load" address="2c756" type="X Axis" elements="9" scaling="Load"/>
<table name="RPM" address="2c492" type="Y Axis" elements="21" scaling="RPM"/>
</table>


<table name="Spark Map 3, WarmUp Retard" category="Timing" address="11d8f" type="3D" swapxy="true" scaling="TimingTrim8">
<table name="Load" address="2c756" type="X Axis" elements="9" scaling="Load"/>
<table name="RPM" address="2c492" type="Y Axis" elements="21" scaling="RPM"/>
</table> 


<table name="4 Spark Accel Compensation 1_K v rpm" category="Timing" address="11e58" type="2D" scaling="CF128">
<table name="rpm" address="2c206" type="X Axis" elements="12" scaling="RPM"/>
</table>


<table name="6 Ignition Trim v Water Temp" category="Timing" address="11e78" type="2D" scaling="TimingTrim8">
<table name="Water Temp" address="2c5f6" type="X Axis" elements="8" scaling="Temp"/>
</table>


<table name="7 Ignition Trim v Air Temp" category="Timing" address="11e84" type="2D" scaling="TimingTrim8">
<table name="Air Temp" address="2c5e2" type="X Axis" elements="7" scaling="Temp"/>
</table>


<table name="8 Ignition Trim v BARO" category="Timing" address="11e90" type="2D" scaling="CF128">
<table name="BARO Pressure" address="2c3de" type="X Axis" elements="5" scaling="Baro16"/>
</table>


<table name="10 Warmup Retard Control" category="Timing" address="11eaa" type="2D" scaling="Percent255">
<table name="Water Temp" address="2c5f6" type="X Axis" elements="8" scaling="Temp"/>
</table> 


<table name="11 Ignition Coil Dwell Time" address="11eb6" category="Timing" type="2D" scaling="ChargeTime">
<table name="Battery" address="2c3c6" type="Y Axis" elements="9" scaling="BatteryVoltage"/>
</table>


<table name="12 Ignition Coil Dwell Time RPM Adder Correction" address="11ec4" category="Timing" type="2D" scaling="CF256">
<table name="Battery" address="2c3c6" type="Y Axis" elements="9" scaling="BatteryVoltage"/>
</table>



<table name="Ve Map 1" category="Ve Maps" address="1206f" type="3D" swapxy="true" scaling="Load8">
<table name="Load" address="2c756" type="X Axis" elements="9" scaling="Load"/>
<table name="RPM" address="2c492" type="Y Axis" elements="17" scaling="RPM"/>
</table>


<table name="Ve Map 2" category="Ve Maps" address="12421" type="3D" swapxy="true" scaling="Load8">
<table name="Load" address="2c756" type="X Axis" elements="9" scaling="Load"/>
<table name="RPM" address="2c8e8" type="Y Axis" elements="21" scaling="RPM"/>
</table> 



<scaling name="Spark Map 4 Trim" units="degrees" toexpr="x*0.35" frexpr="x/0.35" format="%.0f" min="-61" max="61" inc="0.35" storagetype="int8" endian="big"/>

<table name="Spark Map 4 Trim" category="Timing" address="12110" type="3D" swapxy="true" scaling="Spark Map 4 Trim">
<table name="Load" address="2c756" type="X Axis" elements="9" scaling="Load"/>
<table name="RPM" address="2c492" type="Y Axis" elements="17" scaling="RPM"/>
</table>


<table name="Spark Map 5" category="Timing" address="1256d" type="3D" swapxy="true" scaling="Timing">
<table name="Load" address="2c756" type="X Axis" elements="9" scaling="Load"/>
<table name="RPM" address="2c492" type="Y Axis" elements="21" scaling="RPM"/>
</table>


<table name="Spark Map 6" category="Timing" address="12631" type="3D" swapxy="true" scaling="Timing">
<table name="Load" address="2c756" type="X Axis" elements="9" scaling="Load"/>
<table name="RPM" address="2c492" type="Y Axis" elements="21" scaling="RPM"/>
</table>


<table name="Spark Map 7" category="Timing" address="126f5" type="3D" swapxy="true" scaling="Timing">
<table name="Load" address="2c518" type="X Axis" elements="9" scaling="Load"/>
<table name="RPM" address="2c492" type="Y Axis" elements="21" scaling="RPM"/>
</table>


<table name="Spark Map 8" category="Timing" address="127b9" type="3D" swapxy="true" scaling="Timing">
<table name="Load" address="2c6ae" type="X Axis" elements="9" scaling="Load"/>
<table name="RPM" address="2c492" type="Y Axis" elements="21" scaling="RPM"/>
</table>


<table name="Spark Map 9" category="Timing" address="1287d" type="3D" swapxy="true" scaling="Timing">
<table name="Load" address="2c73e" type="X Axis" elements="9" scaling="Load"/>
<table name="RPM" address="2c4e8" type="Y Axis" elements="21" scaling="RPM"/>
</table>


<table name="Spark Map 10" category="Timing" address="12941" type="3D" swapxy="true" scaling="Timing">
<table name="Load" address="2c756" type="X Axis" elements="9" scaling="Load"/>
<table name="RPM" address="2c962" type="Y Axis" elements="21" scaling="RPM"/>
</table>


<table name="Ve Map 3" category="Ve Maps" address="12a05" type="3D" swapxy="true" scaling="Load8">
<table name="Load" address="2c756" type="X Axis" elements="9" scaling="Load"/>
<table name="RPM" address="2c8e8" type="Y Axis" elements="21" scaling="RPM"/>
</table> 

<table name="Ve Map 4" category="Ve Maps" address="12ac9" type="3D" swapxy="true" scaling="Load8">
<table name="Load" address="2c756" type="X Axis" elements="9" scaling="Load"/>
<table name="RPM" address="2c8e8" type="Y Axis" elements="21" scaling="RPM"/>
</table> 


<table name="Ignition Retard Max_Degrees_hex" category="Timing" address="10a35" type="1D" scaling="RetardHex8"/>

<table name="Ignition Retard Max_Degrees_dec" category="Timing" address="10a34" type="1D" scaling="Retarduint16"/>

<table name="Knock Retard Limit" category="Timing" address="115c2" type="1D" scaling="MaxTimingKnockRetard"/>




<!--  *** MUT ***  -->

<table name="MUT Table" category="MUT" address="2fad0" type="3D" scaling="Hex16">
		<table name="X" type="Static X Axis" elements="16" scaling="Hex16">
			<data>0</data>
			<data>1</data>
			<data>2</data>
			<data>3</data>
			<data>4</data>
			<data>5</data>
			<data>6</data>
			<data>7</data>
			<data>8</data>
			<data>9</data>
			<data>A</data>
			<data>B</data>
			<data>C</data>
			<data>D</data>
			<data>E</data>
			<data>F</data>
		</table>
		<table name="Y" type="Static Y Axis" elements="16">
			<data>MUT0X</data>
			<data>MUT1X</data>
			<data>MUT2X</data>
			<data>MUT3X</data>
			<data>MUT4X</data>
			<data>MUT5X</data>
			<data>MUT6X</data>
			<data>MUT7X</data>
			<data>MUT8X</data>
			<data>MUT9X</data>
			<data>MUTAX</data>
			<data>MUTBX</data>
			<data>MUTCX</data>
			<data>MUTDX</data>
			<data>MUTEX</data>
			<data>MUTFX</data>
		</table>
	</table>








<!--  *** Fuel-Cut LIMITS ***  -->

<table name="Rev Limit 1, Cold" category="Limits" address="10882" type="1D" scaling="RPMLimit"/>

<table name="Rev Limit 2, Hot" category="Limits" address="113fa" type="1D" scaling="RPMLimit"/>


<table name="Speed Limit" category="Limits" address="10884" type="2D" scaling="VehicleSpeed">
<table name="Condition" type="Static Y Axis" elements="2">
<data>Limit  ON</data>
<data>Limit OFF</data>
</table>
</table>


<scaling name="XNSPD" units="RPM" toexpr="x*8000/256" frexpr="x*256/8000" format="%.0f" min="0" max="7969" inc="31.25" storagetype="uint8" endian="big"/>

<table name="Rapid Fuel-Cut on Decel RPM decision" category="Limits" address="10887" type="1D" scaling="XNSPD"/>




<!--  *** MISC ***  -->

<scaling name="Hex8" units="hex" toexpr="x" frexpr="x" format="%02X" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>

<table name="ECU Internal ID#1" category="Identification" address="1021a" type="2D" scaling="Hex8">
<table name="Byte Position" type="Static X Axis" elements="4">
<data>b1</data>
<data>b2</data>
<data>b3</data>
<data>b4</data>
</table>
</table>

<scaling name="CaseAlphaNumeric" storagetype="bloblist" storagebits="8">
<data name="MB" value="10"/>
<data name="MD" value="20"/>
<data name="MR" value="30"/>
<data name="MN" value="60"/>
<data name="1860" value="80"/>
</scaling>

<table name="ECU Case ID" category="Identification" address="10237" type="3D" scaling="Hex8">
<table name="Part Number" type="Static X Axis" elements="3">
<data>PN2 .</data>
<data>PN3 .</data>
<data>PN4 .</data>
</table>
<table name="PN1" address="10236" type="Y Axis" elements="1" scaling="CaseAlphaNumeric"/>
</table>

  <scaling name="Ascii" storagetype="uint8" storagebits="8">
    <data name="0" value="30"/>
    <data name="1" value="31"/>
    <data name="2" value="32"/>
    <data name="3" value="33"/>
    <data name="4" value="34"/>
    <data name="5" value="35"/>
    <data name="6" value="36"/>
    <data name="7" value="37"/>
    <data name="8" value="38"/>
    <data name="9" value="39"/>
    <data name="A" value="41"/>
    <data name="B" value="42"/>
    <data name="C" value="43"/>
    <data name="D" value="44"/>
    <data name="E" value="45"/>
    <data name="F" value="46"/>
    <data name="G" value="47"/>
    <data name="H" value="48"/>
    <data name="I" value="49"/>
    <data name="J" value="4A"/>
    <data name="K" value="4B"/>
    <data name="L" value="4C"/>
    <data name="M" value="4D"/>
    <data name="N" value="4E"/>
    <data name="O" value="4F"/>
    <data name="P" value="50"/>
    <data name="Q" value="51"/>
    <data name="R" value="52"/>
    <data name="S" value="53"/>
    <data name="T" value="54"/>
    <data name="U" value="55"/>
    <data name="V" value="56"/>
    <data name="W" value="57"/>
    <data name="X" value="58"/>
    <data name="Y" value="59"/>
    <data name="Z" value="5A"/>
    <data name="_" value="FF"/>
    <data name=" " value="00"/>

  </scaling>


  <table name="ECU Internal ID#2" category="Identification" address="2fefa" type="2D" scaling="Ascii">
     <table name="Byte Position" type="Static Y Axis" elements="6">
       <data>b1</data>
       <data>b2</data>
       <data>b3</data>
       <data>b4</data>
       <data>b5</data>
       <data>b6</data>
     </table>
  </table>




<!--  *** ECU Options ***  -->

  <scaling name="blobbits" storagetype="bloblist" storagebits="1">
    <data name="0" value="00"/>
    <data name="1" value="01"/>
  </scaling>

<table name="ECU Options Set 2" category="ECU Options" address="10272" type="2D" scaling="blobbits">
<table name="Periphery Bit Number" type="Static Y Axis" flipy="true" elements="16">
<data>bit.15,                                              .</data>
<data>bit.14, 0=Disable LAMBDA SENSOR HEATERS              .</data>
<data>bit.13,                                              .</data>
<data>bit.12, 0=Disable PURGE function                     .</data>
<data>bit.11, 0=Disable EGR function                       .</data>
<data>bit.10, 0=Disable WEIRD UNKNOWN CRUISE IGN RETARD    .</data>
<data>bit.09, 0=Disable WARMUP IGNITION RETARD function    .</data>
<data>bit.08,                                              .</data>
<data>bit.07, 1=Enable High Oct Ign Map Lookup             .</data>
<data>bit.06, 1=Enable WG solenoid? Enable Speed Limit Test.</data>
<data>bit.05,                                              .</data>
<data>bit.04, 0=Disable CLOSED LOOP function               .</data>
<data>bit.03, 0=Disable IMMOBILIZER       (not used on FTO).</data>
<data>bit.02,                                              .</data>
<data>bit.01, 0=Disable REAR O2 SENSOR function            .</data>
<data>bit.00,                                              .</data>
</table>
</table>




<!--  *** IDLE ***  -->

<table name="Target Idle RPM - Neutral" category="Idle" address="11efc" type="2D" scaling="RPM8">
<table name="Engine Temp" address="2ca48" type="Y Axis" elements="8" scaling="Temp"/>
</table>

<table name="Target Idle RPM - Drive" category="Idle" address="11f08" type="2D" scaling="RPM8">
<table name="Engine Temp" address="2ca48" type="Y Axis" elements="8" scaling="Temp"/>
</table>

<scaling name="TargetIdleRPM8" units="RPM" toexpr="x*2000/256" frexpr="x*256/2000" format="%.0f" min="0" max="2000" inc="7.8125" storagetype="uint8" endian="big"/>

<table name="Target Idle, AC on Neutral #1" category="Idle" address="10b63" type="1D" scaling="TargetIdleRPM8"/>

<table name="Target Idle, AC on Drive #1" category="Idle" address="10b65" type="1D" scaling="TargetIdleRPM8"/>

<table name="Target Idle, AC on Neutral #2" category="Idle" address="10b67" type="1D" scaling="TargetIdleRPM8"/>

<table name="Target Idle, AC on Drive #2" category="Idle" address="10b69" type="1D" scaling="TargetIdleRPM8"/>


<table name="Idle Stability Timing Control" category="Idle" address="10a44" type="2D" scaling="uint16">
<table name="Settings" type="Static X Axis" elements="2">
<data>Sensitivity 0-255</data>
<data>TimingLimit 0-8</data>
</table>
</table>





<!--  *** Fan Control ***  -->

<table name="Thermo Fan Vehicle Speed Zone, AC OFF" category="Thermo Fan" address="121fc" type="2D" scaling="VehicleSpeed8">
<table name="Condition" type="Static Y Axis" elements="4">
<data>MID to LO</data>
<data>LO to MID</data>
<data>HI to MID</data>
<data>MID to HI</data>
</table>
</table>


<table name="Thermo Fan Vehicle Speed Zone, AC ON" category="Thermo Fan" address="12200" type="2D" scaling="VehicleSpeed8">
<table name="Condition" type="Static Y Axis" elements="4">
<data>MID to LO</data>
<data>LO to MID</data>
<data>HI to MID</data>
<data>MID to HI</data>
</table>
</table>


<table name="Thermo Fan Temp Control, AC OFF" category="Thermo Fan" address="12204" type="3D" scaling="Temp8">
		<table name="FanSpeedSwitching - DeActivate v Temp" type="Static X Axis" elements="6">
			<data>LO-OFF</data>
			<data>OFF-LO</data>
			<data>MID-LO</data>
			<data>LO-MID</data>
			<data>HI-MID</data>
			<data>MID-HI</data>
		</table>
		<table name="km/h" type="Static Y Axis" elements="3">
			<data>Low kph</data>
			<data>Mid kph</data>
			<data>Hi  kph</data>
		</table>
	</table>


<table name="Thermo Fan Temp Control, AC ON" category="Thermo Fan" address="12216" type="3D" scaling="Temp8">
		<table name="FanSpeedSwitching - DeActivate v Temp" type="Static X Axis" elements="6">
			<data>LO-OFF</data>
			<data>OFF-LO</data>
			<data>MID-LO</data>
			<data>LO-MID</data>
			<data>HI-MID</data>
			<data>MID-HI</data>
		</table>
		<table name="km/h" type="Static Y Axis" elements="3">
			<data>Low kph</data>
			<data>Mid kph</data>
			<data>Hi  kph</data>
		</table>
	</table>


</rom>