I'm currently streamlining avrftdi's paged load and write functions. In the process, I adapt them to the new avrdude interface for paged load and write. However, I stumbled across some issues I'm not entirely clear about.
1) Does avrdude take care of issuing a load extended address command? Because page programming is now done page-by-page avrdude "knows" when the 128k boundary is crossed and could issue a load extended address command. is this the case?
2) If the programmer has to issue the load extended address command: Does the command need to be issued _exactly_ once, or can it be issued multiple times? For example, before loading a page with an address greater 128k, is it "safe" for the programmer to send the command before loading the page. This would slow down the programming time noticeably, but simplify the programmer code a lot.
3) It seems to me, today all AVRs are programmed word-by-word, and a word being 2 bytes wide. Is this correct? Code in avr.c:373 suggests that there are AVRs which use word-addressing and others which use byte-addressing to program the memory. avrftdi now only supports word-addressable memory (in paged mode). Is byte-programming still used or do all "modern" AVRs use word-addressing?