<?xml version="1.0" encoding="UTF-8"?>
<!--************************************************************************-->
<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org>            *-->
<!--*                                                                      *-->
<!--* This program is free software; you can redistribute it and/or modify *-->
<!--* it under the terms of the GNU General Public License as published by *-->
<!--* the Free Software Foundation; either version 2 of the License, or    *-->
<!--* (at your option) any later version.                                  *-->
<!--************************************************************************-->
<device name="12C509" document="010104" status="NR" alternative="12F509" memory_technology="EPROM" architecture="10X" pc="9"
        xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
        xsi:noNamespaceSchemaLocation='pic.xsd'>

<!--* Checksums ************************************************************-->
  <checksums>
    <checksum protected="Off"     bchecksum="0xEC20" cchecksum="0xDA68" />
    <checksum protected="040:3FE" bchecksum="0xEBF7" cchecksum="0xD163" />
  </checksums>

<!--* Operating characteristics ********************************************-->
  <frequency_range name="industrial" >
    <frequency start="0" end="4" vdd_min="2.5" vdd_max="5.5" />
  </frequency_range>
  <frequency_range name="extended"   >
    <frequency start="0" end="4" vdd_min="3" vdd_max="5.5" />
  </frequency_range>

  <voltages name="vpp"      min="13"   max="13.25" nominal="13" />
  <voltages name="vdd_prog" min="4.75" max="5.25"  nominal="5"  />

<!--* Memory ***************************************************************-->
  <memory name="code"     start="0x000" end="0x3FE" />
  <memory name="calibration" start="0x3FF" end="0x3FF" cal_opmask="0xF00" cal_opcode="0xC00" />
  <memory name="user_ids"    start="0x400" end="0x403" rmask="0x00F"      />
  <memory name="config"      start="0xFFF" end="0xFFF" />

<!--* Configuration bits ***************************************************-->
  <config offset="0x0" name="" wmask="0x01F" bvalue="0x01F" >
    <mask name="FOSC"  value="0x003" >
      <value value="0x000" name="LP"    cname="_LP_OSC"    />
      <value value="0x001" name="XT"    cname="_XT_OSC"    />
      <value value="0x002" name="INTRC" cname="_IntRC_OSC" />
      <value value="0x003" name="EXTRC" cname="_ExtRC_OSC" />
    </mask>
    <mask name="WDT"   value="0x004" >
      <value value="0x000" name="Off" cname="_WDT_OFF" />
      <value value="0x004" name="On"  cname="_WDT_ON"  />
    </mask>
    <mask name="CP"    value="0x008" >
      <value value="0x000" name="040:3FE" cname="_CP_ON"  />
      <value value="0x008" name="Off"     cname="_CP_OFF" />
    </mask>
    <mask name="MCLRE" value="0x010" >
      <value value="0x000" name="Internal" cname="_MCLRE_OFF" />
      <value value="0x010" name="External" cname="_MCLRE_ON"  />
    </mask>
  </config>

<!--* Packages *************************************************************-->
  <package types="pdip soic" nb_pins="8" >
    <pin index="1" name="VDD"            />
    <pin index="2" name="GP5/OSC1/CLKIN" />
    <pin index="3" name="GP4/OSC2"       />
    <pin index="4" name="GP3/MCLR/VPP"   />
    <pin index="5" name="GP2/T0CKI"      />
    <pin index="6" name="GP1"            />
    <pin index="7" name="GP0"            />
    <pin index="8" name="VSS"            />
  </package>

</device>
