Spoofing AVR109/AVR911/butterfly - Fixing its retarded protocol and Bootloader AVRdude AVROSP
This thing is retarded. They use byte-addressing on the protocol side, while the bootloader is in word-address. Dumb AVR-libc's boot.h actually uses everything in byte-addressing, and so there are a pile of mess and confusion. Byte-size reading of the flash is possible, but the protocol wants to ask 2 bytes back by issuing a word-address request, and then implementing a very dumb block reading scheme as treating reading the same as flash writing, so a lot of unnecessary converting back and forth, and forth and back.
The objective is to write fake code/serial-responses to test out this dumb protocol, while having some fun and trying to eliminate the not necessary commands/response. While AVR109 and AVR911 are trash and beyond use, butterfly with AVRdude, (AKA AVR911-clone) can still be salvageable.
A lot of the dumbnesses can be omitted with AVRdude, but not with AVROSP.
PS -- the size of this fake full bootloader is 542 bytes.