* Updating version number to 0013.

* Updating ATmega168 bootloader to work with standard distributions of avrdude
  (responding to signature requests made with the universal SPI command) and
  correctly store EEPROM data.  Thanks to ladyada.
* Changing compilation process to generate .eep file and allow for use of
  EEMEM directive (although not yet uploading EEPROM data).
This commit is contained in:
David A. Mellis 2008-10-11 19:27:10 +00:00
parent 5c857a5005
commit 30dc672dff
9 changed files with 428 additions and 427 deletions

View File

@ -53,8 +53,8 @@ import processing.core.*;
* files and images, etc) that comes from that. * files and images, etc) that comes from that.
*/ */
public class Base { public class Base {
static final int VERSION = 12; static final int VERSION = 13;
static final String VERSION_NAME = "0012 Alpha"; static final String VERSION_NAME = "0013 Alpha";
/** /**
* Path of filename opened on the command line, * Path of filename opened on the command line,

View File

@ -211,16 +211,20 @@ public class Compiler implements MessageConsumer {
List commandObjcopy; List commandObjcopy;
commandObjcopy = new ArrayList(baseCommandObjcopy); commandObjcopy = new ArrayList(baseCommandObjcopy);
commandObjcopy.add(2, "srec"); commandObjcopy.add(2, "ihex");
commandObjcopy.set(3, "-j");
commandObjcopy.add(".eeprom"); commandObjcopy.add(".eeprom");
commandObjcopy.add("--set-section-flags=.eeprom=alloc,load");
commandObjcopy.add("--change-section-lma");
commandObjcopy.add(".eeprom=0");
commandObjcopy.add(buildPath + File.separator + sketch.name + ".elf"); commandObjcopy.add(buildPath + File.separator + sketch.name + ".elf");
commandObjcopy.add(buildPath + File.separator + sketch.name + ".rom"); commandObjcopy.add(buildPath + File.separator + sketch.name + ".eep");
if (execAsynchronously(commandObjcopy) != 0) if (execAsynchronously(commandObjcopy) != 0)
return false; return false;
commandObjcopy = new ArrayList(baseCommandObjcopy); commandObjcopy = new ArrayList(baseCommandObjcopy);
commandObjcopy.add(2, "ihex"); commandObjcopy.add(2, "ihex");
commandObjcopy.add(".flash"); commandObjcopy.add(".eeprom");
commandObjcopy.add(buildPath + File.separator + sketch.name + ".elf"); commandObjcopy.add(buildPath + File.separator + sketch.name + ".elf");
commandObjcopy.add(buildPath + File.separator + sketch.name + ".hex"); commandObjcopy.add(buildPath + File.separator + sketch.name + ".hex");
if (execAsynchronously(commandObjcopy) != 0) if (execAsynchronously(commandObjcopy) != 0)

View File

@ -65,7 +65,7 @@
#include <avr/pgmspace.h> #include <avr/pgmspace.h>
#include <avr/interrupt.h> #include <avr/interrupt.h>
#include <avr/wdt.h> #include <avr/wdt.h>
#include <util/delay.h>
/* the current avr-libc eeprom functions do not support the ATmega168 */ /* the current avr-libc eeprom functions do not support the ATmega168 */
/* own eeprom write/read functions are used instead */ /* own eeprom write/read functions are used instead */
@ -448,8 +448,9 @@ int main(void)
} }
/* Enter programming mode */ /* P: Enter programming mode */
else if(ch=='P') { /* R: Erase device, don't care as we will erase one page at a time anyway. */
else if(ch=='P' || ch=='R') {
nothing_response(); nothing_response();
} }
@ -465,12 +466,6 @@ int main(void)
} }
/* Erase device, don't care as we will erase one page at a time anyway. */
else if(ch=='R') {
nothing_response();
}
/* Set address, little endian. EEPROM in bytes, FLASH in words */ /* Set address, little endian. EEPROM in bytes, FLASH in words */
/* Perhaps extra address bytes may be added in future to support > 128kB FLASH. */ /* Perhaps extra address bytes may be added in future to support > 128kB FLASH. */
/* This might explain why little endian was used here, big endian used everywhere else. */ /* This might explain why little endian was used here, big endian used everywhere else. */
@ -483,8 +478,21 @@ int main(void)
/* Universal SPI programming command, disabled. Would be used for fuses and lock bits. */ /* Universal SPI programming command, disabled. Would be used for fuses and lock bits. */
else if(ch=='V') { else if(ch=='V') {
getNch(4); if (getch() == 0x30) {
byte_response(0x00); getch();
ch = getch();
getch();
if (ch == 0) {
byte_response(SIG1);
} else if (ch == 1) {
byte_response(SIG2);
} else {
byte_response(SIG3);
}
} else {
getNch(3);
byte_response(0x00);
}
} }
@ -499,6 +507,7 @@ int main(void)
} }
if (getch() == ' ') { if (getch() == ' ') {
if (flags.eeprom) { //Write to EEPROM one byte at a time if (flags.eeprom) { //Write to EEPROM one byte at a time
address.word <<= 1;
for(w=0;w<length.word;w++) { for(w=0;w<length.word;w++) {
#ifdef __AVR_ATmega168__ #ifdef __AVR_ATmega168__
while(EECR & (1<<EEPE)); while(EECR & (1<<EEPE));
@ -644,11 +653,9 @@ int main(void)
if (address.word>0x7FFF) flags.rampz = 1; // No go with m256, FIXME if (address.word>0x7FFF) flags.rampz = 1; // No go with m256, FIXME
else flags.rampz = 0; else flags.rampz = 0;
#endif #endif
address.word = address.word << 1; // address * 2 -> byte location
if (getch() == 'E') flags.eeprom = 1; if (getch() == 'E') flags.eeprom = 1;
else { else flags.eeprom = 0;
flags.eeprom = 0;
address.word = address.word << 1; // address * 2 -> byte location
}
if (getch() == ' ') { // Command terminator if (getch() == ' ') { // Command terminator
putch(0x14); putch(0x14);
for (w=0;w < length.word;w++) { // Can handle odd and even lengths okay for (w=0;w < length.word;w++) { // Can handle odd and even lengths okay
@ -817,42 +824,42 @@ int main(void)
} }
char gethex(void) { char gethexnib(void) {
char ah,al; char a;
a = getch(); putch(a);
if(a >= 'a') {
return (a - 'a' + 0x0a);
} else if(a >= '0') {
return(a - '0');
}
return a;
}
ah = getch(); putch(ah);
al = getch(); putch(al); char gethex(void) {
if(ah >= 'a') { return (gethexnib() << 4) + gethexnib();
ah = ah - 'a' + 0x0a;
} else if(ah >= '0') {
ah -= '0';
}
if(al >= 'a') {
al = al - 'a' + 0x0a;
} else if(al >= '0') {
al -= '0';
}
return (ah << 4) + al;
} }
void puthex(char ch) { void puthex(char ch) {
char ah,al; char ah;
ah = (ch & 0xf0) >> 4; ah = ch >> 4;
if(ah >= 0x0a) { if(ah >= 0x0a) {
ah = ah - 0x0a + 'a'; ah = ah - 0x0a + 'a';
} else { } else {
ah += '0'; ah += '0';
} }
al = (ch & 0x0f);
if(al >= 0x0a) { ch &= 0x0f;
al = al - 0x0a + 'a'; if(ch >= 0x0a) {
ch = ch - 0x0a + 'a';
} else { } else {
al += '0'; ch += '0';
} }
putch(ah); putch(ah);
putch(al); putch(ch);
} }
@ -917,8 +924,7 @@ char getch(void)
void getNch(uint8_t count) void getNch(uint8_t count)
{ {
uint8_t i; while(count--) {
for(i=0;i<count;i++) {
#ifdef __AVR_ATmega128__ #ifdef __AVR_ATmega128__
if(bootuart == 1) { if(bootuart == 1) {
while(!(UCSR0A & _BV(RXC0))); while(!(UCSR0A & _BV(RXC0)));
@ -929,17 +935,13 @@ void getNch(uint8_t count)
UDR1; UDR1;
} }
#elif defined __AVR_ATmega168__ #elif defined __AVR_ATmega168__
while(!(UCSR0A & _BV(RXC0))); getch();
UDR0;
#else #else
/* m8,16,32,169,8515,8535,163 */ /* m8,16,32,169,8515,8535,163 */
/* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/
//while(!(UCSRA & _BV(RXC))); //while(!(UCSRA & _BV(RXC)));
//UDR; //UDR;
uint8_t i; getch(); // need to handle time out
for(i=0;i<count;i++) {
getch(); // need to handle time out
}
#endif #endif
} }
} }
@ -971,20 +973,11 @@ void nothing_response(void)
void flash_led(uint8_t count) void flash_led(uint8_t count)
{ {
/* flash onboard LED three times to signal entering of bootloader */
/* l needs to be volatile or the delay loops below might get
optimized away if compiling with optimizations (DAM). */
volatile uint32_t l;
if (count == 0) {
count = 3;
}
for (i = 0; i < count; ++i) { for (i = 0; i < count; ++i) {
LED_PORT |= _BV(LED); LED_PORT |= _BV(LED);
for(l = 0; l < (F_CPU / 1000); ++l); _delay_ms(100);
LED_PORT &= ~_BV(LED); LED_PORT &= ~_BV(LED);
for(l = 0; l < (F_CPU / 1000); ++l); _delay_ms(100);
} }
} }

View File

@ -1,117 +1,126 @@
:103800000C94341C0C944F1C0C944F1C0C944F1CA7 :103800000C94341C0C94511C0C94511C0C94511CA1
:103810000C944F1C0C944F1C0C944F1C0C944F1C7C :103810000C94511C0C94511C0C94511C0C94511C74
:103820000C944F1C0C944F1C0C944F1C0C944F1C6C :103820000C94511C0C94511C0C94511C0C94511C64
:103830000C944F1C0C944F1C0C944F1C0C944F1C5C :103830000C94511C0C94511C0C94511C0C94511C54
:103840000C944F1C0C944F1C0C944F1C0C944F1C4C :103840000C94511C0C94511C0C94511C0C94511C44
:103850000C944F1C0C944F1C0C944F1C0C944F1C3C :103850000C94511C0C94511C0C94511C0C94511C34
:103860000C944F1C0C944F1C11241FBECFEFD4E0BE :103860000C94511C0C94511C11241FBECFEFD4E0BA
:10387000DEBFCDBF11E0A0E0B1E0E8E1FFE302C0B0 :10387000DEBFCDBF11E0A0E0B1E0E4EAFFE302C0AB
:1038800005900D92A230B107D9F712E0A2E0B1E0A5 :1038800005900D92A230B107D9F712E0A2E0B1E0A5
:1038900001C01D92AD30B107E1F70C94311D0C94BD :1038900001C01D92AD30B107E1F70E94361D0C94B6
:1038A000001CCF93DF93CDB7DEB724970FB6F89403 :1038A000D01F0C94001C982F9595959595959595FE
:1038B000DEBF0FBECDBF382F882309F433E010924E :1038B000905D8F708A307CF0282F295A8091C0004B
:1038C0000A02332309F44BC020E02D9A19821A8290 :1038C00085FFFCCF9093C6008091C00085FFFCCFA0
:1038D0001B821C8289819A81AB81BC8180589E4366 :1038D0002093C6000895282F205DF0CF982F809167
:1038E000A040B040A0F489819A81AB81BC8101964F :1038E000C00085FFFCCF9093C6000895EF92FF9231
:1038F000A11DB11D89839A83AB83BC8389819A8181 :1038F0000F931F93EE24FF2487018091C00087FD62
:10390000AB81BC8180589E43A040B04060F32D98AD :1039000017C00894E11CF11C011D111D81E4E8168B
:1039100019821A821B821C8289819A81AB81BC81A7 :1039100082E4F8068FE0080780E0180770F3E09172
:1039200080589E43A040B040A0F489819A81AB8129 :103920000401F091050109958091C00087FFE9CF5E
:10393000BC810196A11DB11D89839A83AB83BC8391 :103930008091C6001F910F91FF90EF9008950E9413
:1039400089819A81AB81BC8180589E43A040B04060 :10394000761C982F8091C00085FFFCCF9093C60015
:1039500060F32F5F231708F4B8CF20930A02249650 :1039500091362CF490330CF09053892F089597559D
:103960000FB6F894DEBF0FBECDBFDF91CF910895A3 :10396000892F08951F930E949F1C182F0E949F1C4F
:10397000EF92FF920F931F93EE24FF248701809113 :103970001295107F810F1F910895882351F0982F81
:10398000C00087FD17C00894E11CF11C011D111D2A :1039800091508091C00087FFFCCF8091C6009923A1
:1039900081E4E81682E4F8068FE0080780E0180763 :10399000B9F708951F93182F0E94761C803249F0C2
:1039A00070F3E0910201F091030109958091C0004C :1039A000809103018F5F809303018530C1F01F91E7
:1039B00087FFE9CF8091C600992787FD90951F91D9 :1039B00008958091C00085FFFCCF84E18093C6000C
:1039C0000F91FF90EF900895982F8091C00085FF90 :1039C0008091C00085FFFCCF1093C6008091C0009D
:1039D000FCCF9093C60008950E94B81C803271F00D :1039D00085FFFCCF80E18093C6001F910895E091A0
:1039E000809104018F5F80930401853009F0089570 :1039E0000401F091050109951F9108950E94761C2C
:1039F000E0910201F09103010995089584E10E948C :1039F000803241F0809103018F5F80930301853015
:103A0000E41C80E10E94E41C08951F93182F0E947B :103A000081F008958091C00085FFFCCF84E1809310
:103A1000B81C803269F0809104018F5F80930401AB :103A1000C6008091C00085FFFCCF80E18093C60086
:103A2000853079F4E0910201F0910301099509C014 :103A20000895E0910401F09105010995089510921F
:103A300084E10E94E41C812F0E94E41C80E10E942A :103A30000A028823D1F090E040E951E02D9A28EE67
:103A4000E41C1F910895282F882351F090E0809165 :103A400033E0FA013197F1F721503040D1F72D984A
:103A5000C00087FFFCCF8091C6009F5F2917B9F790 :103A500028EE33E0FA013197F1F721503040D1F7E9
:103A60000895CFEFD4E0DEBFCDBF000083E38093A5 :103A60009F5F981758F380930A0208953F924F92F0
:103A7000C4001092C50088E18093C10086E0809365 :103A70005F926F927F928F929F92AF92BF92CF92FE
:103A8000C2005098589A259A81E00E94511C0E94C9 :103A8000DF92EF92FF920F931F93CF93DF9300008B
:103A9000B81C8033B1F18133B9F1803409F454C0DA :103A900083E38093C4001092C50088E18093C10045
:103AA000813409F45AC0823409F469C0853409F4B8 :103AA00086E08093C2005098589A259A81E00E943F
:103AB0006CC0803531F1813521F1823511F18535C8 :103AB000171D44E1F42E3EE1E32E24E9D22E96E0D8
:103AC00009F4B2C0863509F4BAC0843609F463C07B :103AC000C92E80E1B82EAA24A39401E4902E16E515
:103AD000843709F4BBC0853709F40EC1863709F471 :103AD000812EB2E57B2EA0E26A2EF9E45F2EE3E5AB
:103AE0004AC0809104018F5F80930401853079F68C :103AE0004E2E70E5372E0E94761C8033B1F1813363
:103AF000E0910201F091030109950E94B81C803306 :103AF00009F441C0803409F479C0813409F48CC0E0
:103B000051F60E94EC1CC3CF0E94B81C803249F7CA :103B0000823471F1853409F47BC0803531F182351E
:103B100084E10E94E41C81E40E94E41C86E50E948A :103B100021F1813511F1853509F48DC0863509F41F
:103B2000E41C82E50E94E41C80E20E94E41C89E41B :103B20009DC0843609F4AEC0843709F41BC18537C3
:103B30000E94E41C83E50E94E41C80E50E94E41CD2 :103B300009F485C1863709F47AC0809103018F5F4B
:103B400080E10E94E41CA3CF0E94B81C8638C8F212 :103B400080930301853079F6E0910401F09105013D
:103B50000E94B81C0E94EC1C9ACF0E94B81C8038AE :103B500009950E94761C803351F60E94F61CC3CF53
:103B600009F4F7C0813809F4F8C0823809F4F9C0C3 :103B600093E18091C00087FFFCCF8091C60099232C
:103B7000883909F4BDC080E00E94051D88CF84E12A :103B7000A1F39150F6CF0E94761C8032F1F680912D
:103B80000E94231D0E94EC1C82CF85E00E94231D11 :103B8000C00085FFFCCFF092C6008091C00085FF89
:103B90000E94EC1C7CCF0E94B81C809309020E94FA :103B9000FCCF9092C6008091C00085FFFCCF809240
:103BA000B81C8093080280910C028E7F80930C02D7 :103BA000C6008091C00085FFFCCF7092C600809156
:103BB0000E94B81C853409F4C6C080910802909117 :103BB000C00085FFFCCF6092C6008091C00085FFE9
:103BC0000902892B09F0ADC00E94B81C803209F0AF :103BC000FCCF5092C6008091C00085FFFCCF409290
:103BD00088CF80910C0280FFC8C08091080290912C :103BD000C6008091C00085FFFCCF3092C600809166
:103BE00009020097D1F02091060130910701E8E029 :103BE000C00085FFFCCFB092C6007DCF0E94761C3E
:103BF000F1E0AC014E0F5F1FF999FECF32BD21BD40 :103BF000863808F4B2CF0E94761C0E94F61C73CF60
:103C0000819180BDFA9AF99A2F5F3F4F4E175F0757 :103C000094E08091C00087FFFCCF8091C60099238B
:103C100099F7309307012093060184E10E94E41C88 :103C100009F4A3CF9150F5CF0E94761C8038D1F0E3
:103C200080E10E94E41C33CF0E94B81C80930601FF :103C2000813861F1823809F499C0883979F080E0EF
:103C30000E94B81C809307010E94EC1C28CF84E0EE :103C30000E94CA1C58CF0E94761C809306010E94E5
:103C40000E94231D80E00E94051D21CF0E94B81C08 :103C4000761C809307010E94F61C4DCF83E00E94F2
:103C5000809309020E94B81C809308020E94B81C3D :103C5000CA1C49CF82E00E94CA1C45CF0E94761C34
:103C6000853409F4F4C080910C028E7F80930C029D :103C6000803309F486C192E08091C00087FFFCCFC9
:103C70008091060190910701880F991F9093070189 :103C70008091C6009923D9F29150F6CF81E00E943D
:103C8000809306010E94B81C803209F000CF84E1C5 :103C8000CA1C31CF0E94761C809309020E94761CC8
:103C90000E94E41C2091080230910902211531058F :103C90008093080280910C028E7F80930C020E9418
:103CA00019F1C0E0D0E0E0910601F09107018091A8 :103CA000761C853429F480910C02816080930C028B
:103CB0000C0280FFC4C0F999FECFF2BDE1BDF89AB5 :103CB0008091080290910902892B89F000E010E0C0
:103CC00080B50E94E41CE0910601F0910701319655 :103CC0000E94761CF801E85FFE4F80830F5F1F4F54
:103CD000F0930701E0930601209108023091090258 :103CD00080910802909109020817190788F30E9441
:103CE0002196C217D30718F380E10E94E41CCFCEBF :103CE000761C803209F029CF80910C0280FFD1C070
:103CF00083E00E94051DCBCE0E94B81C803209F0E3 :103CF0004091060150910701440F551F5093070151
:103D0000F0CE84E10E94E41C8EE10E94E41C84E970 :103D000040930601A0910802B09109021097C9F0F2
:103D10000E94E41C86E00E94E41C80E10E94E41CF6 :103D1000E8E0F1E09A01BD016E0F7F1FF999FECF37
:103D2000B6CEC0E0D0E008E011E00E94B81CF80177 :103D200032BD21BD819180BDFA9AF99A2F5F3F4F34
:103D300081938F0121968091080290910902C81702 :103D3000E617F70799F74A0F5B1F50930701409367
:103D4000D90798F341CF80910C02816080930C02D7 :103D400006018091C00085FFFCCFF092C6008091F3
:103D500034CF82E00E94051D9ACE81E00E94051DAD :103D5000C00085FFFCCFB092C600C5CE80E10E94B6
:103D600096CE80E10E94051D92CE8091070187FDCD :103D6000CA1CC1CE0E94761C809309020E94761C58
:103D700080C010920B028091060190910701880F7C :103D7000809308028091060190910701880F991F96
:103D8000991F90930701809306018091080280FF9C :103D800090930701809306010E94761C853409F404
:103D900009C080910802909109020196909309024E :103D90007AC080910C028E7F80930C020E94761C68
:103DA00080930802F894F999FECF1127E09106015B :103DA000803209F0A0CE8091C00085FFFCCFF09258
:103DB000F0910701C8E0D1E08091080290910902DA :103DB000C600A0910802B09109021097B9F1809154
:103DC000103091F40091570001700130D9F303E0F5 :103DC0000C02182F1170082F0270E0910601F0917B
:103DD00000935700E8950091570001700130D9F326 :103DD00007019F012F5F3F4FB90140E050E01123E1
:103DE00001E100935700E895099019900091570060 :103DE000B1F4002339F494918091C00085FFFCCF99
:103DF00001700130D9F301E000935700E895139565 :103DF0009093C6004F5F5F4FCB010196F9014A17C0
:103E0000103498F011270091570001700130D9F358 :103E00005B0780F4BC012F5F3F4F112351F3F999F9
:103E100005E000935700E8950091570001700130CC :103E1000FECFF2BDE1BDF89A90B58091C00085FF5C
:103E2000D9F301E100935700E8953296029709F023 :103E2000FCCFE6CF70930701609306018091C0003C
:103E3000C7CF103011F00296E5CF1124EECE81FFEE :103E300085FDD9CE8091C00085FFF8CFD4CE0E94F9
:103E40000CC03196F0930701E093060149CF8091B1 :103E4000761C803209F079CE8091C00085FFFCCFCE
:103E50000C02816080930C0215CF84910E94E41CB7 :103E5000F092C6008091C00085FFFCCFE092C600C2
:103E60002091080230910902E0910601F0910701CA :103E60008091C00085FFFCCFD092C6008091C00039
:103E7000E8CF81E080930B027ECF0F931F930E94C7 :103E700085FFFCCFC092C6008091C00085FFFCCFBB
:103E8000B81C182F0E94E41C0E94B81C082F0E9426 :103E8000B092C60030CE80910C02816080930C020B
:103E9000E41C11362CF0175501363CF0075508C0CC :103E900085CF809107018823880F880B8A21809322
:103EA0001033D4F310530136CCF700330CF0005329 :103EA0000B028091060190910701880F991F909352
:103EB0001295107F100F812F992787FD90951F91E4 :103EB0000701809306018091080280FF09C080916C
:103EC0000F9108951F93282F992787FD9095807F44 :103EC00008029091090201969093090280930802DA
:103ED00090709595879595958795959587959595E6 :103ED000F894F999FECF1127E0910601F0910701BE
:103EE00087958A304CF0982F995A822F8F708A309C :103EE000C8E0D1E08091080290910902103091F46D
:103EF0004CF0182F195A08C0982F905D822F8F70A0 :103EF0000091570001700130D9F303E0009357009F
:103F00008A30BCF7182F105D892F0E94E41C812F86 :103F0000E8950091570001700130D9F301E1009369
:083F10000E94E41C1F910895BA :103F10005700E89509901990009157000170013001
:023F1800800027 :103F2000D9F301E000935700E8951395103498F009
:103F300011270091570001700130D9F305E000937B
:103F40005700E8950091570001700130D9F301E165
:103F500000935700E8953296029709F0C7CF1030CA
:103F600011F00296E5CF11248091C00085FFE9CEC3
:103F7000ECCE0E94761C0E94761C182F0E94761CA4
:103F8000112351F0113021F086E00E94CA1CABCD04
:103F900084E90E94CA1CA7CD8EE10E94CA1CA3CD51
:043FA000F894FFCFC3
:023FA40080009B
:0400000300003800C1 :0400000300003800C1
:00000001FF :00000001FF

View File

@ -1,117 +1,110 @@
:103800000C94341C0C944F1C0C944F1C0C944F1CA7 :103800000C94341C0C94511C0C94511C0C94511CA1
:103810000C944F1C0C944F1C0C944F1C0C944F1C7C :103810000C94511C0C94511C0C94511C0C94511C74
:103820000C944F1C0C944F1C0C944F1C0C944F1C6C :103820000C94511C0C94511C0C94511C0C94511C64
:103830000C944F1C0C944F1C0C944F1C0C944F1C5C :103830000C94511C0C94511C0C94511C0C94511C54
:103840000C944F1C0C944F1C0C944F1C0C944F1C4C :103840000C94511C0C94511C0C94511C0C94511C44
:103850000C944F1C0C944F1C0C944F1C0C944F1C3C :103850000C94511C0C94511C0C94511C0C94511C34
:103860000C944F1C0C944F1C11241FBECFEFD4E0BE :103860000C94511C0C94511C11241FBECFEFD4E0BA
:10387000DEBFCDBF11E0A0E0B1E0E8E1FFE302C0B0 :10387000DEBFCDBF11E0A0E0B1E0E4EAFEE302C0AC
:1038800005900D92A230B107D9F712E0A2E0B1E0A5 :1038800005900D92A230B107D9F712E0A2E0B1E0A5
:1038900001C01D92AD30B107E1F70C94311D0C94BD :1038900001C01D92AD30B107E1F70E94ED1C0C9400
:1038A000001CCF93DF93CDB7DEB724970FB6F89403 :1038A000511F0C94001C482F10920A0280E08417CC
:1038B000DEBF0FBECDBF382F882309F433E010924E :1038B000E0F4582F2D9A28EE33E080E991E001974B
:1038C0000A02332309F44BC020E02D9A19821A8290 :1038C000F1F721503040C9F72D9828EE33E080E918
:1038D0001B821C8289819A81AB81BC8180589E4366 :1038D00091E00197F1F721503040C9F7852F8F5FB4
:1038E000A040B040A0F489819A81AB81BC8101964F :1038E000582F841738F380930A020895EF92FF92BD
:1038F000A11DB11D89839A83AB83BC8389819A8181 :1038F0000F931F93EE24FF2487018091C00087FD62
:10390000AB81BC8180589E43A040B04060F32D98AD :1039000017C00894E11CF11C011D111D81E0E8168F
:1039100019821A821B821C8289819A81AB81BC81A7 :1039100082E1F8068AE7080780E0180770F3E09173
:1039200080589E43A040B040A0F489819A81AB8129 :103920000201F091030109958091C00087FFE9CF62
:10393000BC810196A11DB11D89839A83AB83BC8391 :103930008091C600992787FD90951F910F91FF9068
:1039400089819A81AB81BC8180589E43A040B04060 :10394000EF900895982F8091C00085FFFCCF909351
:1039500060F32F5F231708F4B8CF20930A02249650 :10395000C60008950E94761C803271F080910401A7
:103960000FB6F894DEBF0FBECDBFDF91CF910895A3 :103960008F5F80930401853009F00895E091020192
:10397000EF92FF920F931F93EE24FF248701809113 :10397000F09103010995089584E10E94A21C80E161
:10398000C00087FD17C00894E11CF11C011D111D2A :103980000E94A21C0895CF93C82F0E94761C8032FB
:1039900081E0E81682E1F8068AE7080780E0180768 :1039900041F0809104018F5F80930401853081F4B0
:1039A00070F3E0910201F091030109958091C0004C :1039A0000AC084E10E94A21C8C2F0E94A21C80E10C
:1039B00087FFE9CF8091C600992787FD90951F91D9 :1039B0000E94A21C05C0E0910201F091030109954B
:1039C0000F91FF90EF900895982F8091C00085FF90 :1039C000CF910895CF93C82FC150CF3F21F00E94CF
:1039D000FCCF9093C60008950E94B81C803271F00D :1039D000761CC150E0F7CF910895CFEFD4E0DEBF61
:1039E000809104018F5F80930401853009F0089570 :1039E000CDBF000083E38093C4001092C50088E13E
:1039F000E0910201F09103010995089584E10E948C :1039F0008093C10086E08093C2005098589A259A1F
:103A0000E41C80E10E94E41C08951F93182F0E947B :103A000083E00E94531C0E94761C8033B1F1813305
:103A1000B81C803269F0809104018F5F80930401AB :103A1000B9F1803409F455C0813409F45BC08234B3
:103A2000853079F4E0910201F0910301099509C014 :103A200009F46DC0853409F470C0803531F18235F8
:103A300084E10E94E41C812F0E94E41C80E10E942A :103A300021F1813511F1853509F46BC0863509F422
:103A4000E41C1F910895282F882351F090E0809165 :103A400073C0843609F47AC0843709F4CEC0853750
:103A5000C00087FFFCCF8091C6009F5F2917B9F790 :103A500009F429C1863709F44AC0809104018F5FB7
:103A60000895CFEFD4E0DEBFCDBF000083E38093A5 :103A600080930401853079F6E0910201F091030121
:103A7000C4001092C50088E18093C10086E0809365 :103A700009950E94761C803351F60E94AA1CC3CF80
:103A8000C2005098589A259A83E00E94511C0E94C7 :103A80000E94761CC82F803241F784E10E94A21C5C
:103A9000B81C8033B1F18133B9F1803409F454C0DA :103A900081E40E94A21C86E50E94A21C82E50E948D
:103AA000813409F45AC0823409F469C0853409F4B8 :103AA000A21C8C2F0E94A21C89E40E94A21C83E508
:103AB0006CC0803531F1813521F1823511F18535C8 :103AB0000E94A21C80E50E94A21C80E10E94A21C20
:103AC00009F4B2C0863509F4BAC0843609F463C07B :103AC000A2CF0E94761C8638C0F20E94761C0E940B
:103AD000843709F4BBC0853709F40EC1863709F471 :103AD000AA1C99CF0E94761C803809F486C18138CF
:103AE0004AC0809104018F5F80930401853079F68C :103AE00009F487C1823809F488C1883921F080E05F
:103AF000E0910201F091030109950E94B81C803306 :103AF0000E94C31C88CF83E00E94C31C84CF84E152
:103B000051F60E94EC1CC3CF0E94B81C803249F7CA :103B00000E94E21C0E94AA1C7ECF85E00E94E21C5B
:103B100084E10E94E41C81E40E94E41C86E50E948A :103B1000F9CF0E94761C809306010E94761C809348
:103B2000E41C82E50E94E41C80E20E94E41C89E41B :103B200007010E94AA1C6FCF0E94761C803309F403
:103B30000E94E41C83E50E94E41C80E50E94E41CD2 :103B3000CAC083E00E94E21C80E0DACF0E94761CBB
:103B400080E10E94E41CA3CF0E94B81C8638C8F212 :103B4000809309020E94761C8093080280910C02E7
:103B50000E94B81C0E94EC1C9ACF0E94B81C8038AE :103B50008E7F80930C020E94761C853409F4C4C0C9
:103B600009F4F7C0813809F4F8C0823809F4F9C0C3 :103B600000E010E0809108029091090218161906F1
:103B7000883909F4BDC080E00E94051D88CF84E12A :103B700070F4C8E0D1E00E94761C89930F5F1F4F5C
:103B80000E94231D0E94EC1C82CF85E00E94231D11 :103B8000809108029091090208171907A0F30E947A
:103B90000E94EC1C7CCF0E94B81C809309020E94FA :103B9000761C803209F061CF80910C0280FFAEC0AC
:103BA000B81C8093080280910C028E7F80930C02D7 :103BA000E0910601F0910701EE0FFF1F00E010E029
:103BB0000E94B81C853409F4C6C080910802909117 :103BB00020910802309109021216130680F4A8E041
:103BC0000902892B09F0ADC00E94B81C803209F0AF :103BC000B1E0F999FECFF2BDE1BD8D9180BDFA9AC9
:103BD00088CF80910C0280FFC8C08091080290912C :103BD000F99A31960F5F1F4F0217130790F3F09376
:103BE00009020097D1F02091060130910701E8E029 :103BE0000701E093060184E166CF0E94761C809372
:103BF000F1E0AC014E0F5F1FF999FECF32BD21BD40 :103BF00009020E94761C8093080280910601909130
:103C0000819180BDFA9AF99A2F5F3F4F4E175F0757 :103C00000701880F991F90930701809306010E9476
:103C100099F7309307012093060184E10E94E41C88 :103C1000761C853409F46EC080910C028E7F8093EF
:103C200080E10E94E41C33CF0E94B81C80930601FF :103C20000C020E94761C803209F0EDCE84E10E94E5
:103C30000E94B81C809307010E94EC1C28CF84E0EE :103C3000A21C00E010E02091080230910902121647
:103C40000E94231D80E00E94051D21CF0E94B81C08 :103C4000130608F03ACFE0910601F0910701809148
:103C5000809309020E94B81C809308020E94B81C3D :103C50000C0280FF1FC0F999FECFF2BDE1BDF89ABA
:103C6000853409F4F4C080910C028E7F80930C029D :103C600080B50E94A21CE0910601F09107013196F7
:103C70008091060190910701880F991F9093070189 :103C7000F0930701E09306012091080230910902B8
:103C8000809306010E94B81C803209F000CF84E1C5 :103C80000F5F1F4F0217130708F017CF80910C0228
:103C90000E94E41C2091080230910902211531058F :103C900080FDE1CF869580FFB4C03196F093070197
:103CA00019F1C0E0D0E0E0910601F09107018091A8 :103CA000E0930601EDCF0E94761C803209F0D5CE5C
:103CB0000C0280FFC4C0F999FECFF2BDE1BDF89AB5 :103CB00084E10E94A21C8EE10E94A21C84E90E9461
:103CC00080B50E94E41CE0910601F0910701319655 :103CC000A21C86E0F8CE0E94761C0E94761CC82FAB
:103CD000F0930701E0930601209108023091090258 :103CD0000E94761CCC2309F47CC0C13009F47DC05D
:103CE0002196C217D30718F380E10E94E41CCFCEBF :103CE00086E00E94C31C8FCE80910C02816080937D
:103CF00083E00E94051DCBCE0E94B81C803209F0E3 :103CF0000C0236CF80910C02816091CF8091070138
:103D0000F0CE84E10E94E41C8EE10E94E41C84E970 :103D000087FD6FC010920B02809106019091070110
:103D10000E94E41C86E00E94E41C80E10E94E41CF6 :103D1000880F991F909307018093060180910802F4
:103D2000B6CEC0E0D0E008E011E00E94B81CF80177 :103D200080FF09C08091080290910902019690934A
:103D300081938F0121968091080290910902C81702 :103D3000090280930802F894F999FECF1127E091C7
:103D4000D90798F341CF80910C02816080930C02D7 :103D40000601F0910701C8E0D1E08091080290914E
:103D500034CF82E00E94051D9ACE81E00E94051DAD :103D50000902103091F40091570001700130D9F33D
:103D600096CE80E10E94051D92CE8091070187FDCD :103D600003E000935700E89500915700017001307F
:103D700080C010920B028091060190910701880F7C :103D7000D9F301E100935700E8950990199000915B
:103D8000991F90930701809306018091080280FF9C :103D8000570001700130D9F301E000935700E89526
:103D900009C080910802909109020196909309024E :103D90001395103498F011270091570001700130ED
:103DA00080930802F894F999FECF1127E09106015B :103DA000D9F305E000935700E895009157000170A2
:103DB000F0910701C8E0D1E08091080290910902DA :103DB0000130D9F301E100935700E895329602975C
:103DC000103091F40091570001700130D9F303E0F5 :103DC00009F0C7CF103011F00296E5CF112484E13D
:103DD00000935700E8950091570001700130D9F326 :103DD00072CE8EE10E94C31C16CE84E90E94C31CE1
:103DE00001E100935700E895099019900091570060 :103DE00012CE81E080930B028FCF82E00E94C31C31
:103DF00001700130D9F301E000935700E895139565 :103DF0000ACE81E00E94C31C06CE80E10E94C31C53
:103E0000103498F011270091570001700130D9F358 :103E000002CE84910E94A21C2091080230910902E6
:103E100005E000935700E8950091570001700130CC :103E1000E0910601F091070140CFCF930E94761CFC
:103E2000D9F301E100935700E8953296029709F023 :103E2000C82F0E94A21CC13614F0C75503C0C0336E
:103E3000C7CF103011F00296E5CF1124EECE81FFEE :103E30000CF0C0538C2F992787FD9095CF91089552
:103E40000CC03196F0930701E093060149CF8091B1 :103E40000F931F930E940D1F082F112707FD109538
:103E50000C02816080930C0215CF84910E94E41CB7 :103E500002951295107F1027007F10270E940D1FDA
:103E60002091080230910902E0910601F0910701CA :103E6000800F992787FD90951F910F910895CF930B
:103E7000E8CF81E080930B027ECF0F931F930E94C7 :103E7000C82F85958595859585958A3034F0895A22
:103E8000B81C182F0E94E41C0E94B81C082F0E9426 :103E8000CF70CA3034F0C95A05C0805DCF70CA30D7
:103E9000E41C11362CF0175501363CF0075508C0CC :103E9000D4F7C05D0E94A21C8C2F0E94A21CCF915F
:103EA0001033D4F310530136CCF700330CF0005329 :043EA0000895FFCFB3
:103EB0001295107F100F812F992787FD90951F91E4 :023EA40080009C
:103EC0000F9108951F93282F992787FD9095807F44
:103ED00090709595879595958795959587959595E6
:103EE00087958A304CF0982F995A822F8F708A309C
:103EF0004CF0182F195A08C0982F905D822F8F70A0
:103F00008A30BCF7182F105D892F0E94E41C812F86
:083F10000E94E41C1F910895BA
:023F1800800027
:0400000300003800C1 :0400000300003800C1
:00000001FF :00000001FF

View File

@ -1,119 +1,126 @@
:103800000C94341C0C944F1C0C944F1C0C944F1CA7 :103800000C94341C0C94511C0C94511C0C94511CA1
:103810000C944F1C0C944F1C0C944F1C0C944F1C7C :103810000C94511C0C94511C0C94511C0C94511C74
:103820000C944F1C0C944F1C0C944F1C0C944F1C6C :103820000C94511C0C94511C0C94511C0C94511C64
:103830000C944F1C0C944F1C0C944F1C0C944F1C5C :103830000C94511C0C94511C0C94511C0C94511C54
:103840000C944F1C0C944F1C0C944F1C0C944F1C4C :103840000C94511C0C94511C0C94511C0C94511C44
:103850000C944F1C0C944F1C0C944F1C0C944F1C3C :103850000C94511C0C94511C0C94511C0C94511C34
:103860000C944F1C0C944F1C11241FBECFEFD4E0BE :103860000C94511C0C94511C11241FBECFEFD4E0BA
:10387000DEBFCDBF11E0A0E0B1E0ECE3FFE302C0AA :10387000DEBFCDBF11E0A0E0B1E0EEEAFFE302C0A1
:1038800005900D92A230B107D9F712E0A2E0B1E0A5 :1038800005900D92A230B107D9F712E0A2E0B1E0A5
:1038900001C01D92AD30B107E1F70C94311D0C94BD :1038900001C01D92AD30B107E1F70E94331D0C94B9
:1038A000001CCF93DF93CDB7DEB724970FB6F89403 :1038A000D51F0C94001C982F9595959595959595F9
:1038B000DEBF0FBECDBF382F882309F433E010924E :1038B000905D8F708A307CF0282F295A8091C0004B
:1038C0000A02332309F44BC020E02D9A19821A8290 :1038C00085FFFCCF9093C6008091C00085FFFCCFA0
:1038D0001B821C8289819A81AB81BC8180549F416B :1038D0002093C6000895282F205DF0CF982F809167
:1038E000A040B040A0F489819A81AB81BC8101964F :1038E000C00085FFFCCF9093C6000895EF92FF9231
:1038F000A11DB11D89839A83AB83BC8389819A8181 :1038F0000F931F93EE24FF2487018091C00087FD62
:10390000AB81BC8180549F41A040B04060F32D98B2 :1039000017C00894E11CF11C011D111D81E2E8168D
:1039100019821A821B821C8289819A81AB81BC81A7 :1039100081EAF80687E0080780E0180770F3E09175
:1039200080549F41A040B040A0F489819A81AB812E :103920000401F091050109958091C00087FFE9CF5E
:10393000BC810196A11DB11D89839A83AB83BC8391 :103930008091C6001F910F91FF90EF9008950E9413
:1039400089819A81AB81BC8180549F41A040B04065 :10394000761C982F8091C00085FFFCCF9093C60015
:1039500060F32F5F231708F4B8CF20930A02249650 :1039500091362CF490330CF09053892F089597559D
:103960000FB6F894DEBF0FBECDBFDF91CF910895A3 :10396000892F08951F930E949F1C182F0E949F1C4F
:10397000EF92FF920F931F93EE24FF248701809113 :103970001295107F810F1F9108951F93182F882390
:10398000C00087FD17C00894E11CF11C011D111D2A :1039800021F00E94761C1150E1F71F9108951F93BA
:1039900081E2E81681EAF80687E0080780E0180768 :10399000182F0E94761C803249F0809103018F5FBE
:1039A00070F3E0910201F091030109958091C0004C :1039A000809303018530C1F01F9108958091C0007C
:1039B00087FFE9CF8091C600992787FD90951F91D9 :1039B00085FFFCCF84E18093C6008091C00085FF25
:1039C0000F91FF90EF900895982F8091C00085FF90 :1039C000FCCF1093C6008091C00085FFFCCF80E142
:1039D000FCCF9093C60008950E94B81C803271F00D :1039D0008093C6001F910895E0910401F0910501C4
:1039E000809104018F5F80930401853009F0089570 :1039E00009951F9108950E94761C803241F08091C4
:1039F000E0910201F09103010995089584E10E948C :1039F00003018F5F80930301853081F008958091EA
:103A0000E41C80E10E94E41C08951F93182F0E947B :103A0000C00085FFFCCF84E18093C6008091C00098
:103A1000B81C803269F0809104018F5F80930401AB :103A100085FFFCCF80E18093C6000895E09104010A
:103A2000853079F4E0910201F0910301099509C014 :103A2000F09105010995089510920A028823D1F0BA
:103A300084E10E94E41C812F0E94E41C80E10E942A :103A300090E048EC50E02D9A28EE33E0FA013197FF
:103A4000E41C1F910895282F882351F090E0809165 :103A4000F1F721503040D1F72D9828EE33E0FA01FC
:103A5000C00087FFFCCF8091C6009F5F2917B9F790 :103A50003197F1F721503040D1F79F5F981758F315
:103A60000895CFEFD4E0DEBFCDBF94B714BE8091F0 :103A600080930A0208953F924F925F926F927F92E5
:103A700060008861809360001092600091FFEFC148 :103A70008F929F92AF92BF92CF92DF92EF92FF927E
:103A800089E18093C4001092C50088E18093C10051 :103A80000F931F93CF93DF9394B714BE8091600080
:103A900086E08093C2005098589A259A81E00E944F :103A90008861809360001092600091FF0CC289E100
:103AA000511C0E94B81C8033B9F18133C1F18034BC :103AA0008093C4001092C50088E18093C10086E035
:103AB00009F455C0813409F45BC0823409F46AC04A :103AB0008093C2005098589A259A81E00E94141D64
:103AC000853409F46DC0803539F1813509F404C1BC :103AC00044E1F42E3EE1E32E24E9D22E96E0C92E05
:103AD000823511F1853509F4BDC0863509F4B3C0CE :103AD00080E1B82EAA24A39401E4902E16E5812E4D
:103AE000843609F463C0843709F4FCC0853709F4CF :103AE000B2E57B2EA0E26A2EF9E45F2EE3E54E2ECE
:103AF000CEC0863709F44AC0809104018F5F80935D :103AF00070E5372E0E94761C8033B9F18133C1F115
:103B00000401853071F6E0910201F09103010995FD :103B0000803409F470C0813409F477C0823409F438
:103B10000E94B81C803349F60E94EC1CC2CF0E9460 :103B100086C0853409F489C0803539F1823529F1B0
:103B2000B81C803249F784E10E94E41C81E40E94C1 :103B2000813509F4AFC1853509F485C0863509F4BE
:103B3000E41C86E50E94E41C82E50E94E41C80E20D :103B30008DC0843609F435C1843709F4C1C0853796
:103B40000E94E41C89E40E94E41C83E50E94E41CBA :103B400009F490C0863709F466C0809103018F5F45
:103B500080E50E94E41C80E10E94E41CA2CF0E9448 :103B500080930301853071F6E0910401F091050135
:103B6000B81C8638C8F20E94B81C0E94EC1C99CF81 :103B600009950E94761C803349F60E94F31CC2CF4F
:103B70000E94B81C803809F4ABC0813809F4A4C095 :103B70000E94761C803249F78091C00085FFFCCFFF
:103B8000823809F49DC0883909F496C080E00E940B :103B8000F092C6008091C00085FFFCCF9092C600E5
:103B9000051D87CF84E10E94231D0E94EC1C81CF6C :103B90008091C00085FFFCCF8092C6008091C0005C
:103BA00085E00E94231D0E94EC1C7BCF0E94B81C64 :103BA00085FFFCCF7092C6008091C00085FFFCCFDE
:103BB000809309020E94B81C8093080280910C0235 :103BB0006092C6008091C00085FFFCCF5092C60085
:103BC0008E7F80930C020E94B81C853429F480916A :103BC0008091C00085FFFCCF4092C6008091C0006C
:103BD0000C02816080930C0280910802909109028E :103BD00085FFFCCF3092C6008091C00085FFFCCFEE
:103BE000892B09F042C00E94B81C803209F084CFB2 :103BE000B092C60087CF0E94761C863808F4BDCFFD
:103BF00080910C0280FFC5C080910802909109025B :103BF0000E94761C0E94F31C7DCF0E94761C8038A8
:103C00000097D1F02091060130910701E8E0F1E042 :103C000009F45AC0813809F453C0823809F440C11C
:103C1000AC014E0F5F1FF999FECF32BD21BD8191DE :103C1000883909F449C080E00E94C71C6BCF84E159
:103C200080BDFA9AF99A2F5F3F4FE417F50799F78D :103C20000E94BD1C0E94F31C65CF85E00E94BD1C54
:103C3000309307012093060184E10E94E41C80E197 :103C30000E94F31C5FCF0E94761C809306010E94B5
:103C40000E94E41C2ECF84E00E94231D80E00E948D :103C4000761C809307010E94F31C54CF0E94761CBF
:103C5000051D27CF0E94B81C809306010E94B81C46 :103C5000803309F421C183E00E94BD1C80E00E94F2
:103C6000809307010E94EC1C1CCFC0E0D0E008E06C :103C6000C71C48CF0E94761C803209F06ECF80912D
:103C700011E00E94B81CF80181938F012196809178 :103C7000C00085FFFCCFF092C6008091C00085FF98
:103C8000080290910902C817D90798F3ACCF0E9497 :103C8000FCCFE092C6008091C00085FFFCCFD092AF
:103C9000B81C803209F030CF84E10E94E41C8EE130 :103C9000C6008091C00085FFFCCFC092C600809115
:103CA0000E94E41C84E90E94E41C86E00E94E41C5B :103CA000C00085FFFCCF9CCF83E00E94C71C22CFC1
:103CB00080E10E94E41CF5CE83E00E94051DF1CE58 :103CB00081E00E94C71C1ECF82E00E94C71C1ACF61
:103CC00080E10E94051DEDCE81E00E94051DE9CE38 :103CC0000E94761C809309020E94761C8093080251
:103CD00082E00E94051DE5CE0E94EC1C88E08093E6 :103CD0008091060190910701880F991F9093070129
:103CE0006000FFCF0E94B81C809309020E94B81C9C :103CE000809306010E94761C853409F4C5C080913A
:103CF000809308020E94B81C853409F4BEC08091EC :103CF0000C028E7F80930C020E94761C803209F0A9
:103D00000C028E7F80930C02809106019091070136 :103D0000F9CE8091C00085FFFCCFF092C600609193
:103D1000880F991F90930701809306010E94B81C99 :103D10000802709109026115710591F140E050E0CF
:103D2000803209F0BECE84E10E94E41C809108023A :103D200080910C02A82FA170B82FB27010C0BB23D5
:103D300090910902009709F4BBCFC0E0D0E0E09178 :103D300061F1E0910601F09107013196F0930701DE
:103D40000601F091070120910C0220FF8EC0F99925 :103D4000E09306014F5F5F4F46175707C8F4AA2359
:103D5000FECFF2BDE1BDF89A80B50E94E41CE0916F :103D500071F3F999FECF209106013091070132BD30
:103D60000601F09107013196F0930701E0930601F7 :103D600021BDF89A90B58091C00085FFFCCF90935B
:103D700080910802909109022196C817D90718F37B :103D7000C6002F5F3F4F3093070120930601E2CF2B
:103D800097CF8091070187FD66C010920B0280914A :103D80008091C00085FFFCCF2BCFE0910601F09120
:103D9000060190910701880F991F90930701809366 :103D9000070194918091C00085FFFCCF9093C600ED
:103DA00006018091080280FF09C08091080290916D :103DA000CCCF0E94761C809309020E94761C8093DF
:103DB000090201969093090280930802F894F999F8 :103DB000080280910C028E7F80930C020E94761C78
:103DC000FECF1127E0910601F0910701C8E0D1E094 :103DC000853429F480910C02816080930C028091EB
:103DD0008091080290910902103091F400915700EF :103DD000080290910902892B89F000E010E00E940E
:103DE00001700130D9F303E000935700E89500918A :103DE000761CF801E85FFE4F80830F5F1F4F8091C4
:103DF000570001700130D9F301E100935700E895B5 :103DF0000802909109020817190788F30E94761C9F
:103E0000099019900091570001700130D9F301E039 :103E0000803209F0A2CE80910C0280FF62C0409106
:103E100000935700E8951395103498F011270091FE :103E1000060150910701440F551F5093070140932D
:103E2000570001700130D9F305E000935700E89581 :103E20000601609108027091090261157105C9F0DF
:103E30000091570001700130D9F301E10093570060 :103E3000E8E0F1E09A01DB01AE0FBF1FF999FECF78
:103E4000E8953296029709F0C7CF103011F002962C :103E400032BD21BD819180BDFA9AF99A2F5F3F4F13
:103E5000E5CF1124F1CE81E080930B0298CFE09161 :103E5000EA17FB0799F7460F571F50930701409346
:103E60000201F091030109950BCE21FF0CC03196A0 :103E600006018091C00085FFFCCFF092C6008091D2
:103E7000F0930701E09306017FCF80910C028160EF :103E7000C00085FFFCCFB4CE80910C02816080939E
:103E800080930C024BCF84910E94E41C8091080225 :103E80000C023ACF0E94F31C88E080936000FFCFC1
:103E900090910902E0910601F0910701E8CF0F939C :103E900080E10E94C71C2ECE0E94761C0E94761CD8
:103EA0001F930E94B81C182F0E94E41C0E94B81C8B :103EA000182F0E94761C112381F0113051F086E00A
:103EB000082F0E94E41C11362CF0175501363CF0F7 :103EB0000E94C71C1FCEE0910401F09105010995F5
:103EC000075508C01033D4F310530136CCF7003334 :103EC000EECD84E90E94C71C15CE8EE10E94C71C6E
:103ED0000CF000531295107F100F812F992787FD4A :103ED00011CE809107018823880F880B8A21809357
:103EE00090951F910F9108951F93282F992787FD73 :103EE0000B028091060190910701880F991F909312
:103EF0009095807F907095958795959587959595E8 :103EF0000701809306018091080280FF09C080912C
:103F00008795959587958A304CF0982F995A822FEE :103F00000802909109020196909309028093080299
:103F10008F708A304CF0182F195A08C0982F905D76 :103F1000F894F999FECF1127E0910601F09107017D
:103F2000822F8F708A30BCF7182F105D892F0E9466 :103F2000C8E0D1E08091080290910902103091F42C
:0C3F3000E41C812F0E94E41C1F910895E6 :103F30000091570001700130D9F303E0009357005E
:023F3C00800003 :103F4000E8950091570001700130D9F301E1009329
:103F50005700E895099019900091570001700130C1
:103F6000D9F301E000935700E8951395103498F0C9
:103F700011270091570001700130D9F305E000933B
:103F80005700E8950091570001700130D9F301E125
:103F900000935700E8953296029709F0C7CF10308A
:0E3FA00011F00296E5CF11245CCFF894FFCF0C
:023FAE00800091
:0400000300003800C1 :0400000300003800C1
:00000001FF :00000001FF

View File

@ -105,11 +105,15 @@ diecimila: TARGET = diecimila
diecimila: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' diecimila: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1'
diecimila: $(PROGRAM)_diecimila.hex diecimila: $(PROGRAM)_diecimila.hex
diecimila: AVR_FREQ = 16000000L diecimila: AVR_FREQ = 16000000L
diecimila: HFUSE = DD
diecimila: LFUSE = FF
ng: TARGET = ng ng: TARGET = ng
ng: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>1' '-DNUM_LED_FLASHES=3' ng: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>1' '-DNUM_LED_FLASHES=3'
ng: $(PROGRAM)_ng.hex ng: $(PROGRAM)_ng.hex
ng: AVR_FREQ = 16000000L ng: AVR_FREQ = 16000000L
ng: HFUSE = DD
ng: LFUSE = FF
isp: $(PROGRAM)_$(TARGET).hex isp: $(PROGRAM)_$(TARGET).hex
$(ISPFUSES) $(ISPFUSES)

View File

@ -46,6 +46,14 @@ Processing and Wiring.
UPDATES UPDATES
0013
* Updating ATmega168 bootloader to work with standard distributions of avrdude
(responding to signature requests made with the universal SPI command) and
correctly store EEPROM data. Thanks to ladyada.
* Changing compilation process to generate .eep file and allow for use of
EEMEM directive (although not yet uploading EEPROM data).
0012 - 2008.09.18 0012 - 2008.09.18
* Added Arduino Nano to the boards menu. * Added Arduino Nano to the boards menu.

View File

@ -1,28 +1,10 @@
0012 arduino 0013 arduino
0012
[done] Update Windows avr-libc to 1.6 and avr-gcc to 4.3 (to match Mac).
[done] Add Firmata library.
[done] Comment LiquidCrystal examples.
[done] Update reference.
[done] Document LiquidCrystal library.
[done] Document Servo library.
[done] Include actual bootloader burned on the Pro and Pro Mini.
[done] Document Ethernet library.
[done] Move Servo min/max parameters to attach() function from constructor.
[done] Add Arduino Nano to boards menu.
[done] Add Arduino Pro to boards menu.
[done] Per-board upload.using preference.
[done] Update version of avr-gcc, etc. to support ATmega644, ATmega328, etc.
[done] Move #include <WProgram.h> after other #include's? (prevent it from interfering with standard libraries)
[done] Add LiquidCrystal library.
[done] Add Servo library.
[done] Fix millis() so it overflows on a nice variable-size boundary; see: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1205949448
[done] Factor out print statements into a common base class for Serial, LiquidCrystal, etc.
AVR AVR
Use stdlib random() function: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1211798802
Remove cast macros for built-in types.
Allow hardcoding of R/W line to ground with LiquidCrystal library.
Improve shiftOut() performance: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1216659239/0 Improve shiftOut() performance: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1216659239/0
Add String library. Add String library.
Add Encoder library. Add Encoder library.
@ -52,6 +34,7 @@ Add SPI library.
Add OneWire library. Add OneWire library.
Add pulseOut(), etc. functions from Wiring. Add pulseOut(), etc. functions from Wiring.
Add Ping example. Add Ping example.
Switch to ServoTimer2 library? http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1222201226/0#5
Add ContinuousServo library that inherits from Servo? Add ContinuousServo library that inherits from Servo?
LiquidCrystal library: support going to the next line with println(). LiquidCrystal library: support going to the next line with println().
Ethernet library: Ethernet library: