How did you upload Blink via USBasp in the first place?
- Connected USBasp to my computer
- Connected ribbon cable between the boards
- Selected Board type and Programmer
- Burn Bootloader
- LED blinks Done burning bootloader
Am I missing something?
Yes. Burning the bootloader is not the same thing as uploading a sketch (Blink is a sketch, the bootloader is not a sketch.)
The way you upload a sketch via USBasp is going to "file|upload using programmer" as I mentioned in an earlier post above. This method of uploading a sketch doesn't care if a bootloader is installed or not -- in fact, it will overwrite a bootloader if there is one on there, as I have described above.
No bootloader means you won't be able to a COM serial programming upload from any computer.
Does this mean, it just prints "done burning bootloader" but there's really no bootloader on the chip?
It's possible you saw that IDE message even if the avrdude process failed -- the IDE doesn't seem to track errlevel exit codes very well. You would have to be paying attention to the avrdude output in the window to be sure that it had actually succeeded.
avrdude is the program called by the IDE that actually does the programming, either via USBasp or a COM port... the IDE is really just a shell program around a command line based set of development utilities (of which avrdude is one) that are doing all the real work.
Going back a few steps: Did you ever manage to upload anything to the Arduino before you attempted to burn a bootloader using USBasp? The Arduino should have come with a bootloader installed, and so it should have been able to be programmed using the COM serial port method out of the box without ever having had anything to do with USBasp or similar.
Another question: Why do you want to use USBasp rather than the bootloader/COM serial port method for programming sketches? Or do you actually want to use a bootloader for programming sketches, and you only want to use USBasp to get a bootloader installed? If so, what (do you think) happened to the bootloader on the Arduino in the first place?