What if you want to program your chip over USB without an ISP? Well then you can use a bootloader. The process of programming a bootloader onto a chip is called burning a bootloader. Let's look how you burn a bootloader onto an ATmega644 using your Arduino ISP.
To burn the bootloader to the ATmega644 you must first add ATmega644 support to the Arduino environment:
* Download the Sanguino hardware file
* Unzip the folder
* Copy the folder to the Arduino IDE's Hardware folder
* Open Hardware >> Sanguino >> boards.txt
* 'sanguino.bootloader.file=ATmegaBOOT_644P.hex' to 'sanguino.bootloader.file=ATmegaBOOT_644.hex'
* 'sanguino.build.mcu=atmega644p' to 'sanguino.build.mcu=atmega644'
* Reopen the Arduino IDE, you should see Sanguino in the Tools >> Board menu
Now connect your Arduino ISP to the ATmega644 like the diagram below.
Select Sanguino from the Tools >> Board menu, and select the serial port that is your Arduino ISP. Now click on Tools >> Burn Bootloader >> w/ Arduino as ISP. If there is more than one 'w/ Arduino as ISP' just try each one until it works.