<?xml version="1.0" encoding="UTF-8"?>

<compiler_spec>
  <data_organization>  <!-- These tags need to be verified -->
     <absolute_max_alignment value="0" />
     <machine_alignment value="1" />
     <default_alignment value="1" />
     <pointer_size value="2" />
     <wchar_size value="4" />
     <short_size value="2" />
     <integer_size value="4" />
     <long_size value="4" />
     <long_long_size value="8" />
     <float_size value="4" />
     <double_size value="8" />
     <long_double_size value="8" />
  </data_organization>

  <global>
    <!-- The following cut out page register so that the decompiler can use them as registers -->
    <range space="RAM" first="0x00"  last="0x2f"/>
       <!-- PPAGE -->
    <range space="RAM" first="0x31"  last="0xffff"/>
  </global>
  
  <stackpointer register="SP" space="RAM" growth="negative"/>
  
  <default_proto>
      <prototype name="__asmA" extrapop="2" stackshift="2" strategy="register">
      <input>
        <pentry minsize="1" maxsize="1">
          <register name="A"/>
        </pentry>
        <pentry minsize="1" maxsize="1">
          <register name="B"/>
        </pentry>
        <pentry minsize="2" maxsize="2">
          <register name="D"/>
        </pentry>
        <pentry minsize="1" maxsize="2">
          <register name="IY"/>
        </pentry>
        <pentry minsize="1" maxsize="2">
          <register name="IX"/>
        </pentry>
        <pentry minsize="1" maxsize="500" align="1">
          <addr offset="2" space="stack"/>
        </pentry>
      </input>
       <output>
        <pentry minsize="1" maxsize="2">
          <register name="D"/>
        </pentry>
      </output>
      <unaffected>
        <register name="SP"/>
        <register name="PPAGE"/>
      </unaffected>
    </prototype>
  </default_proto>


<prototype name="__asmA_longcall" extrapop="3" stackshift="3" strategy="register">
	  <input>
	    <pentry minsize="1" maxsize="1">
	      <register name="A"/>
	    </pentry>
	    <pentry minsize="1" maxsize="1">
	      <register name="B"/>
	    </pentry>
	    <pentry minsize="2" maxsize="2">
	      <register name="D"/>
	    </pentry>
	    <pentry minsize="1" maxsize="2">
	      <register name="IY"/>
	    </pentry>
	    <pentry minsize="1" maxsize="2">
	      <register name="IX"/>
	    </pentry>
	    <pentry minsize="1" maxsize="500" align="1">
	      <addr offset="3" space="stack"/>
	    </pentry>
	  </input>
	   <output>
	    <pentry minsize="1" maxsize="2">
	      <register name="D"/>
	    </pentry>
	  </output>
	  <unaffected>
	    <register name="SP"/>
	    <register name="PPAGE"/>
	  </unaffected>
  </prototype>
  
    
<resolveprototype name="__asmA_longcall/__asmA">
    <model name="__asmA_longcall"/>        <!-- The default case -->
    <model name="__asmA"/>
  </resolveprototype>
<eval_current_prototype name="__asmA_longcall/__asmA"/>
    
</compiler_spec>
