[gnoduino: 177/237] avrdude communication starting to work - responds to sync, fails when trying to respond to STK_GET_P



commit bd8867911107047f62618f14895a2a4081bec74f
Author: Zach Eveland <zeveland blacklabel-development com>
Date:   Fri Oct 21 19:36:53 2011 -0400

    avrdude communication starting to work - responds to sync, fails when trying to respond to STK_GET_PARAMETER

 .../nuevo_diskloader/DiskLoader.elf.hex            |  314 +++++++++++---------
 .../bootloaders/nuevo_diskloader/DiskLoader.hex    |  314 +++++++++++---------
 .../nuevo_diskloader/src/DiskLoader.cpp            |   82 +++++-
 3 files changed, 412 insertions(+), 298 deletions(-)
---
diff --git a/arduino/bootloaders/nuevo_diskloader/DiskLoader.elf.hex b/arduino/bootloaders/nuevo_diskloader/DiskLoader.elf.hex
index 5c8cfee..69377ab 100644
--- a/arduino/bootloaders/nuevo_diskloader/DiskLoader.elf.hex
+++ b/arduino/bootloaders/nuevo_diskloader/DiskLoader.elf.hex
@@ -1,156 +1,174 @@
-:10700000B4C00000D7C00000D5C00000D3C000004D
-:10701000D1C00000CFC00000CDC00000CBC0000038
-:10702000C9C00000C7C0000005C3000078C300004D
-:10703000C1C00000BFC00000BDC00000BBC0000058
-:10704000B9C00000B7C00000B5C00000B3C0000068
-:10705000B1C00000AFC00000ADC00000ABC0000078
-:10706000A9C00000A7C00000A5C00000A3C0000088
-:10707000A1C000009FC000009DC000009BC0000098
-:1070800099C0000097C0000095C0000093C00000A8
-:1070900091C000008FC000008DC000008BC00000B8
-:1070A00089C0000087C0000085C000002AC1080B0D
+:10700000B8C00000DBC00000D9C00000D7C000003D
+:10701000D5C00000D3C00000D1C00000CFC0000028
+:10702000CDC00000CBC0000097C300000AC4000020
+:10703000C5C00000C3C00000C1C00000BFC0000048
+:10704000BDC00000BBC00000B9C00000B7C0000058
+:10705000B5C00000B3C00000B1C00000AFC0000068
+:10706000ADC00000ABC00000A9C00000A7C0000078
+:10707000A5C00000A3C00000A1C000009FC0000088
+:107080009DC000009BC0000099C0000097C0000098
+:1070900095C0000093C0000091C000008FC00000A8
+:1070A0008DC000008BC0000089C0000073C1080BB8
 :1070B00000020202010009040000010202000005B2
 :1070C0002400100105240101010424020605240600
 :1070D00000010705810310004009040100020A00B5
 :1070E000000007050202400000070583024000007F
 :1070F000410142144505560455026403740300001F
-:107100000403090422030000000000000000000046
+:107100001E958702011003000403090422030000F6
 :10711000000000000000000000000000000000006F
-:1071200000000000000018034100720064007500B8
-:1071300069006E006F0020004C004C0043001201FB
-:10714000000200000040412388000001010200010C
-:1071500012010002020000404123880000010102E8
-:10716000000100C18081F4387F3B11241FBECFEFA6
-:10717000DAE0DEBFCDBF11E0A0E0B1E0EAE7F9E779
-:1071800002C005900D92A831B107D9F711E0A8E12E
-:10719000B1E001C01D92A53AB107E1F711E7CAE6D7
-:1071A000D1E703C02297FE01E2D3C636D107D1F75B
-:1071B000A8D0E1C325CFDC018091000190910101AD
-:1071C0008F5F9F4F61F4ED91FC9111970480F581E1
-:1071D000E02DCD01099590930101809300018091EC
-:1071E00000019091010108958EE091E090931901C2
-:1071F000809318010895DF93CF930F92CDB7DEB738
-:10720000698380910901882351F083E0BE016F5F9B
-:107210007F4F41E050E024D11816190614F080E0A9
-:1072200090E00F90CF91DF91089583E0F9C1209114
-:107230000001309101018FEF2F3F380739F08FEFB8
-:107240009FEF909301018093000103C082E0E0D0A2
-:107250009C01C901089582E09ED0282F80910001F1
-:10726000909101018F5F9F4F09F02F5F822F90E077
-:107270000895FC0180818E5F808380E86EEA70E76C
-:1072800042E450E07FC184EA91E038D2F8940C9453
-:10729000003C0895CF93DF93EC0189819881913A66
-:1072A00049F4813251F580E062E071E047E050E05E
-:1072B00069D121C0913209F5803231F482E091E048
-:1072C00067E070E09BD117C08232B9F48091090168
-:1072D000882371F08091020190910301A091040133
-:1072E000B0910501805B9440A040B04009F4CBDF31
-:1072F0008A818093090181E001C080E0DF91CF9114
-:10730000089588E10FB6F8948093600010926000B1
-:107310000FBE3F9A209A6E9A90E890936100109267
-:10732000610081E885BF95BF01E005BF02E005BFB0
-:10733000769A289A479884EA91E0CAD1789488E1AD
-:1073400091E089DF18161906D4F788E191E06FDF24
-:1073500020EF30E7F901949131962E5F3F4F449131
-:10736000981711F09923B1F710929B0110929A018E
-:1073700050E082E06AE171E017D0E1CFFC0104C087
-:107380008091F100819361506623D1F7289884E6BB
-:1073900080939D0108959FB7F89487708093E900CA
-:1073A0008091F2009FBF0895282F80919E0188232D
-:1073B000C1F057FF1AC015C0289890939D01809185
-:1073C000F1008193E217F307B9F74115510539F040
-:1073D0008091F200882319F48BE68093E800AFBF18
-:1073E00002C04FEF5FEFCA010895AFB7F89427705E
-:1073F0002093E9008091F200282F30E02417350710
-:107400000CF4A901FB019B01240F311D94E6DACF96
-:10741000DF93CF930F92CDB7DEB7BE016F5F7F4F83
-:1074200041E050E0C1DF019719F08FEF9FEF02C0FC
-:10743000898190E00F90CF91DF9108952FB7F89454
-:1074400087708093E9008091E80085FD02C090E09C
-:1074500004C08091F20090E4981B2FBF892F0895FB
-:107460004F925F926F927F928F929F92AF92BF9254
-:10747000CF92DF92EF92FF920F931F93CF93DF9300
-:10748000F82E6A0180919E01882309F18B01EA019F
-:107490006AEFE62E57E0552E5F208F2D90E040E2F8
-:1074A000842E912C882299223AE3432E20E4A22EA6
-:1074B000B12CA822B92280EA682E8FE0782E48C02D
-:1074C0008F2DBCDF282F882349F4EA9419F44FEF5D
-:1074D0005FEF46C0C3010197F1F73AC090E0C817CB
-:1074E000D9070CF42C2FC21BD1094FB7F894509236
-:1074F000E9008114910421F406C01092F10021509A
-:107500002223D9F719C0F7FC03C0F801922F10C04D
-:10751000C801322F06C0FC010196E491E093F1000E
-:1075200031503323C1F706C081918093F10091500F
-:107530009923D1F7020F111D8091E80085FF05C046
-:10754000209729F4A114B10411F04092E8004FBF34
-:10755000209709F0B5CF769884E680939C01A60128
-:10756000CA01DF91CF911F910F91FF90EF90DF90B3
-:10757000CF90BF90AF909F908F907F906F905F90D3
-:107580004F9008950F931F93182FFB01A091A10115
-:10759000B091A201BA010EEF2AC017FF02C0949168
-:1075A00001C0908120919F013091A0012A173B07D3
-:1075B000ACF48091E8008570E1F38091E80082FFEF
-:1075C00003C04FEF5FEF16C09093F100C901019621
-:1075D0008F739070892B11F40093E8002F5F3F4F59
-:1075E0003093A00120939F01615070403196611546
-:1075F000710599F6CA011F910F910895CF93DF93FA
-:107600009C01EB018091E80082FFFCCFC9016C2F47
-:10761000B5DE8BEF8093E800CE01DF91CF91089526
-:107620008093E9008091F200882319F08AE3809327
-:10763000E80008951F920F920FB60F9211242F9316
-:107640003F938F938091E1001092E100282F83FFF8
-:107650000FC01092E90081E08093EB001092EC00E3
-:1076600082E38093ED0010929E0188E08093F00009
-:1076700022FF26C083E08093E9008091F2008823F6
-:1076800019F08AE38093E80080919C01882351F0EF
-:1076900080919C01815080939C0180919C01882362
-:1076A00009F4769A80919D01882351F080919D0183
-:1076B000815080939D0180919D01882309F4289A2F
-:1076C0008F913F912F910F900FBE0F901F901895A3
-:1076D00010929E0181E08093D70080EA8093D800C9
-:1076E00082E189BD09B400FEFDCF80E98093D80016
-:1076F0008CE08093E2001092E000089508950895D0
-:10770000DF93CF930F92CDB7DEB71982CE010196EA
-:10771000B0DD898190E00F90CF91DF9108951F92A5
-:107720000F920FB60F921124EF92FF921F932F9397
-:107730003F934F935F936F937F938F939F93AF93F9
-:10774000BF93EF93FF93DF93CF93CDB7DEB76197EE
-:10775000DEBFCDBF1092E9008091E80083FFECC04E
-:10776000CE01019668E00ADE82EF8093E8009981FD
-:1077700097FF05C08091E80080FFFCCF03C08EEF2B
-:107780008093E800292F30E0C90180769070892B22
-:1077900009F0B3C08A81882329F41092F100109275
-:1077A000F100BFC0813009F4BCC0833009F4B9C016
-:1077B000853049F48091E80080FFFCCF8B818068A0
-:1077C0008093E300AEC0863009F06DC01C81EF806D
-:1077D000F8841230A9F51092E9001092A0011092DD
-:1077E0009F011092A2011092A1018ADF99E0FE018F
-:1077F0003996DF01292F1D922A95E9F799871A8773
-:1078000091E09E8790E8988B9AEF998B20919F0149
-:107810003091A001275F3F4F3C872B878D871092C7
-:10782000E9001092A00110929F01F092A201E09253
-:10783000A10180E0BF0149E050E0A4DE61DF71C03A
-:107840001092E9001092A00110929F01F092A20103
-:10785000E092A101113071F488E0E816F10411F40E
-:107860001093A3018091A301882309F062C0EEE385
-:10787000F1E713C0133009F058C08B81882319F445
-:10788000E0E0F1E70AC0823019F4E4E0F1E705C076
-:10789000813009F04AC0E6E2F1E7449150E080E827
-:1078A000BF0170DE3EC0873009F43FC0883021F44C
-:1078B00081E08093F10035C0893099F523703070F4
-:1078C000232B99F5E3E6F1E791E031E026E390938D
-:1078D000E9003093EB0084918093EC002093ED005D
-:1078E0009F5F3196943099F78EE78093EA0010926B
-:1078F000EA008B8180939E0114C08F81988510923D
-:10790000E9001092A00110929F019093A201809330
-:10791000A1018D81882349F4CE010196BBDC882327
-:1079200021F08EEF8093E80007C081E28093EB00A6
-:1079300003C0E0E5F1E7B1CF6196DEBFCDBFCF91E7
-:10794000DF91FF91EF91BF91AF919F918F917F91C7
-:107950006F915F914F913F912F911F91FF90EF9009
-:107960000F900FBE0F901F901895EE0FFF1F059000
-:0A797000F491E02D0994F894FFCF84
-:10797A00FFFF00E1000000000000000000002B39BA
-:08798A00DB3817391539FB3811
+:107120000000000000000000000000000000180344
+:10713000410072006400750069006E006F0020005D
+:107140004C004C00430012010002000000404123AB
+:10715000880000010102000112010002020000404B
+:107160004123880000010102000100C18081F8383C
+:10717000113C11241FBECFEFDAE0DEBFCDBF11E01E
+:10718000A0E0B1E0EEE9FAE702C005900D92A83167
+:10719000B107D9F711E0A8E1B1E001C01D92A73A0B
+:1071A000B107E1F711E7C2E7D1E703C02297FE017B
+:1071B00070D4CE36D107D1F7EDD06FC421CFDC012A
+:1071C00080910001909101018F5F9F4F61F4ED91DB
+:1071D000FC9111970480F581E02DCD0109959093E4
+:1071E00001018093000180910001909101010895B7
+:1071F0008EE091E090931901809318010895DF9338
+:10720000CF930F92CDB7DEB76983809109018823B0
+:1072100051F083E0BE016F5F7F4F41E050E0B2D19B
+:107220001816190614F080E090E00F90CF91DF91CE
+:10723000089583E087C220910001309101018FEF12
+:107240002F3F380739F08FEF9FEF90930101809324
+:10725000000103C082E06ED19C01C901089582E063
+:107260002CD1282F80910001909101018F5F9F4FB9
+:1072700009F02F5F822F90E00895FC0180818E5FDE
+:10728000808380E86EEA70E742E450E00DC286EA4F
+:1072900091E0C6D2F8940C94003C0895CF93DF930C
+:1072A000EC0189819881913A49F4813251F580E06D
+:1072B00062E071E047E050E0F7D121C0913209F57A
+:1072C000803231F482E091E067E070E029D217C0AB
+:1072D0008232B9F480910901882371F08091020112
+:1072E00090910301A0910401B0910501805B94404D
+:1072F000A040B04009F4CBDF8A818093090181E08E
+:1073000001C080E0DF91CF910895FF920F931F930A
+:10731000CF93DF93982F8B01FF2488E760307807A5
+:1073200038F4FF24F39483E0FB0180935700E89541
+:10733000C42FD0E0892F6AE171E0AE01C7D0FF20F1
+:1073400019F107B600FCFDCFD595C7954C2FF80174
+:10735000AAE1B1E020E031E009C08D919D910C01DE
+:1073600030935700E895112432962F5F2417A8F325
+:1073700085E0F80180935700E89507B600FCFDCF43
+:1073800081E180935700E895DF91CF911F910F9194
+:10739000FF90089588E10FB6F894809360001092F2
+:1073A00060000FBE3F9A209A6E9A90E89093610019
+:1073B0001092610081E885BF95BF01E005BF02E042
+:1073C00005BF769A289A479886EA91E013D2789476
+:1073D00084E180939A0180E180939B0100E010E0BA
+:1073E00088E191E03CDF18161906D4F788E191E0B6
+:1073F00022DFF82E80EF90E7FC012491319602966F
+:1074000044912F1511F02223B9F710929D0110928B
+:107410009C0150E082E06AE171E058D0F1E4FF168F
+:1074200011F186E5F816F9F0E5E7FE16E1F0F5E56D
+:10743000FF1639F4C0911A01D0911B01CC0FDD1F4A
+:1074400013C084E6F81631F482E0B80140911B01C4
+:107450005CDF09C0E4E7FE1631F480911B01E8010E
+:10746000C80FD11D01C0E80188E191E0F8DE1816CF
+:10747000190644F488E191E0DEDE00E010E0809738
+:1074800009F0AECF88E191E064E1B9DE88E191E0F6
+:1074900060E1B5DEF1E5FF1609F4A0CF8E01A0CFC3
+:1074A000FC0104C08091F100819361506623D1F703
+:1074B000289884E680939F0108959FB7F894877079
+:1074C0008093E9008091F2009FBF0895282F80915A
+:1074D000A0018823C1F057FF1AC015C028989093C7
+:1074E0009F018091F1008193E217F307B9F74115ED
+:1074F000510539F08091F200882319F48BE68093CE
+:10750000E800AFBF02C04FEF5FEFCA010895AFB709
+:10751000F89427702093E9008091F200282F30E042
+:10752000241735070CF4A901FB019B01240F311D21
+:1075300094E6DACFDF93CF930F92CDB7DEB7BE01DB
+:107540006F5F7F4F41E050E0C1DF019719F08FEF8F
+:107550009FEF02C0898190E00F90CF91DF91089555
+:107560002FB7F89487708093E9008091E80085FD3B
+:1075700002C090E004C08091F20090E4981B2FBFFD
+:10758000892F08954F925F926F927F928F929F9270
+:10759000AF92BF92CF92DF92EF92FF920F931F9321
+:1075A000CF93DF93F82E6A018091A001882309F11F
+:1075B0008B01EA016AEFE62E57E0552E5F208F2DF2
+:1075C00090E040E2842E912C882299223AE3432EC7
+:1075D00020E4A22EB12CA822B92280EA682E8FE0E6
+:1075E000782E48C08F2DBCDF282F882349F4EA94D9
+:1075F00019F44FEF5FEF46C0C3010197F1F73AC0AE
+:1076000090E0C817D9070CF42C2FC21BD1094FB733
+:10761000F8945092E9008114910421F406C010926C
+:10762000F10021502223D9F719C0F7FC03C0F8015B
+:10763000922F10C0C801322F06C0FC010196E491C0
+:10764000E093F10031503323C1F706C0819180935C
+:10765000F10091509923D1F7020F111D8091E8009C
+:1076600085FF05C0209729F4A114B10411F04092C0
+:10767000E8004FBF209709F0B5CF769884E6809355
+:107680009E01A601CA01DF91CF911F910F91FF903A
+:10769000EF90DF90CF90BF90AF909F908F907F90B2
+:1076A0006F905F904F9008950F931F93182FFB01D9
+:1076B000A091A301B091A401BA010EEF2AC017FF57
+:1076C00002C0949101C090812091A1013091A2014A
+:1076D0002A173B07ACF48091E8008570E1F38091B4
+:1076E000E80082FF03C04FEF5FEF16C09093F100F8
+:1076F000C90101968F739070892B11F40093E800F3
+:107700002F5F3F4F3093A2012093A1016150704041
+:1077100031966115710599F6CA011F910F9108956F
+:10772000CF93DF939C01EB018091E80082FFFCCFB7
+:10773000C9016C2FB5DE8BEF8093E800CE01DF919D
+:10774000CF9108958093E9008091F200882319F089
+:107750008AE38093E80008951F920F920FB60F926C
+:1077600011242F933F938F938091E1001092E100B9
+:10777000282F83FF0FC01092E90081E08093EB0077
+:107780001092EC0082E38093ED001092A00188E05B
+:107790008093F00022FF26C083E08093E90080916F
+:1077A000F200882319F08AE38093E80080919E011B
+:1077B000882351F080919E01815080939E01809199
+:1077C0009E01882309F4769A80919F01882351F0C5
+:1077D00080919F01815080939F0180919F01882318
+:1077E00009F4289A8F913F912F910F900FBE0F901F
+:1077F0001F9018951092A00181E08093D70080EA35
+:107800008093D80082E189BD09B400FEFDCF80E9F4
+:107810008093D8008CE08093E2001092E0000895FD
+:1078200008950895DF93CF930F92CDB7DEB71982F5
+:10783000CE01019622DD898190E00F90CF91DF91FA
+:1078400008951F920F920FB60F921124EF92FF929C
+:107850001F932F933F934F935F936F937F938F93D8
+:107860009F93AF93BF93EF93FF93DF93CF93CDB7E6
+:10787000DEB76197DEBFCDBF1092E9008091E800CE
+:1078800083FFECC0CE01019668E00ADE82EF8093B0
+:10789000E800998197FF05C08091E80080FFFCCF48
+:1078A00003C08EEF8093E800292F30E0C901807675
+:1078B0009070892B09F0B3C08A81882329F4109233
+:1078C000F1001092F100BFC0813009F4BCC08330D8
+:1078D00009F4B9C0853049F48091E80080FFFCCFFD
+:1078E0008B8180688093E300AEC0863009F06DC064
+:1078F0001C81EF80F8841230A9F51092E9001092F3
+:10790000A2011092A1011092A4011092A3018ADF9A
+:1079100099E0FE013996DF01292F1D922A95E9F79A
+:1079200099871A8791E09E8790E8988B9AEF998BB8
+:107930002091A1013091A201275F3F4F3C872B8707
+:107940008D871092E9001092A2011092A101F0928D
+:10795000A401E092A30180E0BF0149E050E0A4DE71
+:1079600061DF71C01092E9001092A2011092A10192
+:10797000F092A401E092A301113071F488E0E816BE
+:10798000F10411F41093A5018091A501882309F059
+:1079900062C0E6E4F1E713C0133009F058C08B81F0
+:1079A000882319F4E8E0F1E70AC0823019F4ECE02A
+:1079B000F1E705C0813009F04AC0EEE2F1E74491F9
+:1079C00050E080E8BF0170DE3EC0873009F43FC060
+:1079D000883021F481E08093F10035C0893099F539
+:1079E00023703070232B99F5EBE6F1E791E031E05D
+:1079F00026E39093E9003093EB0084918093EC00B0
+:107A00002093ED009F5F3196943099F78EE7809335
+:107A1000EA001092EA008B818093A00114C08F814C
+:107A200098851092E9001092A2011092A101909302
+:107A3000A4018093A3018D81882349F4CE0101968E
+:107A40002DDC882321F08EEF8093E80007C081E2CF
+:107A50008093EB0003C0E8E5F1E7B1CF6196DEBFAC
+:107A6000CDBFCF91DF91FF91EF91BF91AF919F91EA
+:107A70008F917F916F915F914F913F912F911F91C6
+:107A8000FF90EF900F900FBE0F901F901895EE0F84
+:0E7A9000FF1F0590F491E02D0994F894FFCFAC
+:107A9E00FFFF00E1000000000000000000002F3991
+:087AAE00DF381B391939FF38DC
 :040000030000700089
 :00000001FF
diff --git a/arduino/bootloaders/nuevo_diskloader/DiskLoader.hex b/arduino/bootloaders/nuevo_diskloader/DiskLoader.hex
index 5c8cfee..69377ab 100644
--- a/arduino/bootloaders/nuevo_diskloader/DiskLoader.hex
+++ b/arduino/bootloaders/nuevo_diskloader/DiskLoader.hex
@@ -1,156 +1,174 @@
-:10700000B4C00000D7C00000D5C00000D3C000004D
-:10701000D1C00000CFC00000CDC00000CBC0000038
-:10702000C9C00000C7C0000005C3000078C300004D
-:10703000C1C00000BFC00000BDC00000BBC0000058
-:10704000B9C00000B7C00000B5C00000B3C0000068
-:10705000B1C00000AFC00000ADC00000ABC0000078
-:10706000A9C00000A7C00000A5C00000A3C0000088
-:10707000A1C000009FC000009DC000009BC0000098
-:1070800099C0000097C0000095C0000093C00000A8
-:1070900091C000008FC000008DC000008BC00000B8
-:1070A00089C0000087C0000085C000002AC1080B0D
+:10700000B8C00000DBC00000D9C00000D7C000003D
+:10701000D5C00000D3C00000D1C00000CFC0000028
+:10702000CDC00000CBC0000097C300000AC4000020
+:10703000C5C00000C3C00000C1C00000BFC0000048
+:10704000BDC00000BBC00000B9C00000B7C0000058
+:10705000B5C00000B3C00000B1C00000AFC0000068
+:10706000ADC00000ABC00000A9C00000A7C0000078
+:10707000A5C00000A3C00000A1C000009FC0000088
+:107080009DC000009BC0000099C0000097C0000098
+:1070900095C0000093C0000091C000008FC00000A8
+:1070A0008DC000008BC0000089C0000073C1080BB8
 :1070B00000020202010009040000010202000005B2
 :1070C0002400100105240101010424020605240600
 :1070D00000010705810310004009040100020A00B5
 :1070E000000007050202400000070583024000007F
 :1070F000410142144505560455026403740300001F
-:107100000403090422030000000000000000000046
+:107100001E958702011003000403090422030000F6
 :10711000000000000000000000000000000000006F
-:1071200000000000000018034100720064007500B8
-:1071300069006E006F0020004C004C0043001201FB
-:10714000000200000040412388000001010200010C
-:1071500012010002020000404123880000010102E8
-:10716000000100C18081F4387F3B11241FBECFEFA6
-:10717000DAE0DEBFCDBF11E0A0E0B1E0EAE7F9E779
-:1071800002C005900D92A831B107D9F711E0A8E12E
-:10719000B1E001C01D92A53AB107E1F711E7CAE6D7
-:1071A000D1E703C02297FE01E2D3C636D107D1F75B
-:1071B000A8D0E1C325CFDC018091000190910101AD
-:1071C0008F5F9F4F61F4ED91FC9111970480F581E1
-:1071D000E02DCD01099590930101809300018091EC
-:1071E00000019091010108958EE091E090931901C2
-:1071F000809318010895DF93CF930F92CDB7DEB738
-:10720000698380910901882351F083E0BE016F5F9B
-:107210007F4F41E050E024D11816190614F080E0A9
-:1072200090E00F90CF91DF91089583E0F9C1209114
-:107230000001309101018FEF2F3F380739F08FEFB8
-:107240009FEF909301018093000103C082E0E0D0A2
-:107250009C01C901089582E09ED0282F80910001F1
-:10726000909101018F5F9F4F09F02F5F822F90E077
-:107270000895FC0180818E5F808380E86EEA70E76C
-:1072800042E450E07FC184EA91E038D2F8940C9453
-:10729000003C0895CF93DF93EC0189819881913A66
-:1072A00049F4813251F580E062E071E047E050E05E
-:1072B00069D121C0913209F5803231F482E091E048
-:1072C00067E070E09BD117C08232B9F48091090168
-:1072D000882371F08091020190910301A091040133
-:1072E000B0910501805B9440A040B04009F4CBDF31
-:1072F0008A818093090181E001C080E0DF91CF9114
-:10730000089588E10FB6F8948093600010926000B1
-:107310000FBE3F9A209A6E9A90E890936100109267
-:10732000610081E885BF95BF01E005BF02E005BFB0
-:10733000769A289A479884EA91E0CAD1789488E1AD
-:1073400091E089DF18161906D4F788E191E06FDF24
-:1073500020EF30E7F901949131962E5F3F4F449131
-:10736000981711F09923B1F710929B0110929A018E
-:1073700050E082E06AE171E017D0E1CFFC0104C087
-:107380008091F100819361506623D1F7289884E6BB
-:1073900080939D0108959FB7F89487708093E900CA
-:1073A0008091F2009FBF0895282F80919E0188232D
-:1073B000C1F057FF1AC015C0289890939D01809185
-:1073C000F1008193E217F307B9F74115510539F040
-:1073D0008091F200882319F48BE68093E800AFBF18
-:1073E00002C04FEF5FEFCA010895AFB7F89427705E
-:1073F0002093E9008091F200282F30E02417350710
-:107400000CF4A901FB019B01240F311D94E6DACF96
-:10741000DF93CF930F92CDB7DEB7BE016F5F7F4F83
-:1074200041E050E0C1DF019719F08FEF9FEF02C0FC
-:10743000898190E00F90CF91DF9108952FB7F89454
-:1074400087708093E9008091E80085FD02C090E09C
-:1074500004C08091F20090E4981B2FBF892F0895FB
-:107460004F925F926F927F928F929F92AF92BF9254
-:10747000CF92DF92EF92FF920F931F93CF93DF9300
-:10748000F82E6A0180919E01882309F18B01EA019F
-:107490006AEFE62E57E0552E5F208F2D90E040E2F8
-:1074A000842E912C882299223AE3432E20E4A22EA6
-:1074B000B12CA822B92280EA682E8FE0782E48C02D
-:1074C0008F2DBCDF282F882349F4EA9419F44FEF5D
-:1074D0005FEF46C0C3010197F1F73AC090E0C817CB
-:1074E000D9070CF42C2FC21BD1094FB7F894509236
-:1074F000E9008114910421F406C01092F10021509A
-:107500002223D9F719C0F7FC03C0F801922F10C04D
-:10751000C801322F06C0FC010196E491E093F1000E
-:1075200031503323C1F706C081918093F10091500F
-:107530009923D1F7020F111D8091E80085FF05C046
-:10754000209729F4A114B10411F04092E8004FBF34
-:10755000209709F0B5CF769884E680939C01A60128
-:10756000CA01DF91CF911F910F91FF90EF90DF90B3
-:10757000CF90BF90AF909F908F907F906F905F90D3
-:107580004F9008950F931F93182FFB01A091A10115
-:10759000B091A201BA010EEF2AC017FF02C0949168
-:1075A00001C0908120919F013091A0012A173B07D3
-:1075B000ACF48091E8008570E1F38091E80082FFEF
-:1075C00003C04FEF5FEF16C09093F100C901019621
-:1075D0008F739070892B11F40093E8002F5F3F4F59
-:1075E0003093A00120939F01615070403196611546
-:1075F000710599F6CA011F910F910895CF93DF93FA
-:107600009C01EB018091E80082FFFCCFC9016C2F47
-:10761000B5DE8BEF8093E800CE01DF91CF91089526
-:107620008093E9008091F200882319F08AE3809327
-:10763000E80008951F920F920FB60F9211242F9316
-:107640003F938F938091E1001092E100282F83FFF8
-:107650000FC01092E90081E08093EB001092EC00E3
-:1076600082E38093ED0010929E0188E08093F00009
-:1076700022FF26C083E08093E9008091F2008823F6
-:1076800019F08AE38093E80080919C01882351F0EF
-:1076900080919C01815080939C0180919C01882362
-:1076A00009F4769A80919D01882351F080919D0183
-:1076B000815080939D0180919D01882309F4289A2F
-:1076C0008F913F912F910F900FBE0F901F901895A3
-:1076D00010929E0181E08093D70080EA8093D800C9
-:1076E00082E189BD09B400FEFDCF80E98093D80016
-:1076F0008CE08093E2001092E000089508950895D0
-:10770000DF93CF930F92CDB7DEB71982CE010196EA
-:10771000B0DD898190E00F90CF91DF9108951F92A5
-:107720000F920FB60F921124EF92FF921F932F9397
-:107730003F934F935F936F937F938F939F93AF93F9
-:10774000BF93EF93FF93DF93CF93CDB7DEB76197EE
-:10775000DEBFCDBF1092E9008091E80083FFECC04E
-:10776000CE01019668E00ADE82EF8093E8009981FD
-:1077700097FF05C08091E80080FFFCCF03C08EEF2B
-:107780008093E800292F30E0C90180769070892B22
-:1077900009F0B3C08A81882329F41092F100109275
-:1077A000F100BFC0813009F4BCC0833009F4B9C016
-:1077B000853049F48091E80080FFFCCF8B818068A0
-:1077C0008093E300AEC0863009F06DC01C81EF806D
-:1077D000F8841230A9F51092E9001092A0011092DD
-:1077E0009F011092A2011092A1018ADF99E0FE018F
-:1077F0003996DF01292F1D922A95E9F799871A8773
-:1078000091E09E8790E8988B9AEF998B20919F0149
-:107810003091A001275F3F4F3C872B878D871092C7
-:10782000E9001092A00110929F01F092A201E09253
-:10783000A10180E0BF0149E050E0A4DE61DF71C03A
-:107840001092E9001092A00110929F01F092A20103
-:10785000E092A101113071F488E0E816F10411F40E
-:107860001093A3018091A301882309F062C0EEE385
-:10787000F1E713C0133009F058C08B81882319F445
-:10788000E0E0F1E70AC0823019F4E4E0F1E705C076
-:10789000813009F04AC0E6E2F1E7449150E080E827
-:1078A000BF0170DE3EC0873009F43FC0883021F44C
-:1078B00081E08093F10035C0893099F523703070F4
-:1078C000232B99F5E3E6F1E791E031E026E390938D
-:1078D000E9003093EB0084918093EC002093ED005D
-:1078E0009F5F3196943099F78EE78093EA0010926B
-:1078F000EA008B8180939E0114C08F81988510923D
-:10790000E9001092A00110929F019093A201809330
-:10791000A1018D81882349F4CE010196BBDC882327
-:1079200021F08EEF8093E80007C081E28093EB00A6
-:1079300003C0E0E5F1E7B1CF6196DEBFCDBFCF91E7
-:10794000DF91FF91EF91BF91AF919F918F917F91C7
-:107950006F915F914F913F912F911F91FF90EF9009
-:107960000F900FBE0F901F901895EE0FFF1F059000
-:0A797000F491E02D0994F894FFCF84
-:10797A00FFFF00E1000000000000000000002B39BA
-:08798A00DB3817391539FB3811
+:107120000000000000000000000000000000180344
+:10713000410072006400750069006E006F0020005D
+:107140004C004C00430012010002000000404123AB
+:10715000880000010102000112010002020000404B
+:107160004123880000010102000100C18081F8383C
+:10717000113C11241FBECFEFDAE0DEBFCDBF11E01E
+:10718000A0E0B1E0EEE9FAE702C005900D92A83167
+:10719000B107D9F711E0A8E1B1E001C01D92A73A0B
+:1071A000B107E1F711E7C2E7D1E703C02297FE017B
+:1071B00070D4CE36D107D1F7EDD06FC421CFDC012A
+:1071C00080910001909101018F5F9F4F61F4ED91DB
+:1071D000FC9111970480F581E02DCD0109959093E4
+:1071E00001018093000180910001909101010895B7
+:1071F0008EE091E090931901809318010895DF9338
+:10720000CF930F92CDB7DEB76983809109018823B0
+:1072100051F083E0BE016F5F7F4F41E050E0B2D19B
+:107220001816190614F080E090E00F90CF91DF91CE
+:10723000089583E087C220910001309101018FEF12
+:107240002F3F380739F08FEF9FEF90930101809324
+:10725000000103C082E06ED19C01C901089582E063
+:107260002CD1282F80910001909101018F5F9F4FB9
+:1072700009F02F5F822F90E00895FC0180818E5FDE
+:10728000808380E86EEA70E742E450E00DC286EA4F
+:1072900091E0C6D2F8940C94003C0895CF93DF930C
+:1072A000EC0189819881913A49F4813251F580E06D
+:1072B00062E071E047E050E0F7D121C0913209F57A
+:1072C000803231F482E091E067E070E029D217C0AB
+:1072D0008232B9F480910901882371F08091020112
+:1072E00090910301A0910401B0910501805B94404D
+:1072F000A040B04009F4CBDF8A818093090181E08E
+:1073000001C080E0DF91CF910895FF920F931F930A
+:10731000CF93DF93982F8B01FF2488E760307807A5
+:1073200038F4FF24F39483E0FB0180935700E89541
+:10733000C42FD0E0892F6AE171E0AE01C7D0FF20F1
+:1073400019F107B600FCFDCFD595C7954C2FF80174
+:10735000AAE1B1E020E031E009C08D919D910C01DE
+:1073600030935700E895112432962F5F2417A8F325
+:1073700085E0F80180935700E89507B600FCFDCF43
+:1073800081E180935700E895DF91CF911F910F9194
+:10739000FF90089588E10FB6F894809360001092F2
+:1073A00060000FBE3F9A209A6E9A90E89093610019
+:1073B0001092610081E885BF95BF01E005BF02E042
+:1073C00005BF769A289A479886EA91E013D2789476
+:1073D00084E180939A0180E180939B0100E010E0BA
+:1073E00088E191E03CDF18161906D4F788E191E0B6
+:1073F00022DFF82E80EF90E7FC012491319602966F
+:1074000044912F1511F02223B9F710929D0110928B
+:107410009C0150E082E06AE171E058D0F1E4FF168F
+:1074200011F186E5F816F9F0E5E7FE16E1F0F5E56D
+:10743000FF1639F4C0911A01D0911B01CC0FDD1F4A
+:1074400013C084E6F81631F482E0B80140911B01C4
+:107450005CDF09C0E4E7FE1631F480911B01E8010E
+:10746000C80FD11D01C0E80188E191E0F8DE1816CF
+:10747000190644F488E191E0DEDE00E010E0809738
+:1074800009F0AECF88E191E064E1B9DE88E191E0F6
+:1074900060E1B5DEF1E5FF1609F4A0CF8E01A0CFC3
+:1074A000FC0104C08091F100819361506623D1F703
+:1074B000289884E680939F0108959FB7F894877079
+:1074C0008093E9008091F2009FBF0895282F80915A
+:1074D000A0018823C1F057FF1AC015C028989093C7
+:1074E0009F018091F1008193E217F307B9F74115ED
+:1074F000510539F08091F200882319F48BE68093CE
+:10750000E800AFBF02C04FEF5FEFCA010895AFB709
+:10751000F89427702093E9008091F200282F30E042
+:10752000241735070CF4A901FB019B01240F311D21
+:1075300094E6DACFDF93CF930F92CDB7DEB7BE01DB
+:107540006F5F7F4F41E050E0C1DF019719F08FEF8F
+:107550009FEF02C0898190E00F90CF91DF91089555
+:107560002FB7F89487708093E9008091E80085FD3B
+:1075700002C090E004C08091F20090E4981B2FBFFD
+:10758000892F08954F925F926F927F928F929F9270
+:10759000AF92BF92CF92DF92EF92FF920F931F9321
+:1075A000CF93DF93F82E6A018091A001882309F11F
+:1075B0008B01EA016AEFE62E57E0552E5F208F2DF2
+:1075C00090E040E2842E912C882299223AE3432EC7
+:1075D00020E4A22EB12CA822B92280EA682E8FE0E6
+:1075E000782E48C08F2DBCDF282F882349F4EA94D9
+:1075F00019F44FEF5FEF46C0C3010197F1F73AC0AE
+:1076000090E0C817D9070CF42C2FC21BD1094FB733
+:10761000F8945092E9008114910421F406C010926C
+:10762000F10021502223D9F719C0F7FC03C0F8015B
+:10763000922F10C0C801322F06C0FC010196E491C0
+:10764000E093F10031503323C1F706C0819180935C
+:10765000F10091509923D1F7020F111D8091E8009C
+:1076600085FF05C0209729F4A114B10411F04092C0
+:10767000E8004FBF209709F0B5CF769884E6809355
+:107680009E01A601CA01DF91CF911F910F91FF903A
+:10769000EF90DF90CF90BF90AF909F908F907F90B2
+:1076A0006F905F904F9008950F931F93182FFB01D9
+:1076B000A091A301B091A401BA010EEF2AC017FF57
+:1076C00002C0949101C090812091A1013091A2014A
+:1076D0002A173B07ACF48091E8008570E1F38091B4
+:1076E000E80082FF03C04FEF5FEF16C09093F100F8
+:1076F000C90101968F739070892B11F40093E800F3
+:107700002F5F3F4F3093A2012093A1016150704041
+:1077100031966115710599F6CA011F910F9108956F
+:10772000CF93DF939C01EB018091E80082FFFCCFB7
+:10773000C9016C2FB5DE8BEF8093E800CE01DF919D
+:10774000CF9108958093E9008091F200882319F089
+:107750008AE38093E80008951F920F920FB60F926C
+:1077600011242F933F938F938091E1001092E100B9
+:10777000282F83FF0FC01092E90081E08093EB0077
+:107780001092EC0082E38093ED001092A00188E05B
+:107790008093F00022FF26C083E08093E90080916F
+:1077A000F200882319F08AE38093E80080919E011B
+:1077B000882351F080919E01815080939E01809199
+:1077C0009E01882309F4769A80919F01882351F0C5
+:1077D00080919F01815080939F0180919F01882318
+:1077E00009F4289A8F913F912F910F900FBE0F901F
+:1077F0001F9018951092A00181E08093D70080EA35
+:107800008093D80082E189BD09B400FEFDCF80E9F4
+:107810008093D8008CE08093E2001092E0000895FD
+:1078200008950895DF93CF930F92CDB7DEB71982F5
+:10783000CE01019622DD898190E00F90CF91DF91FA
+:1078400008951F920F920FB60F921124EF92FF929C
+:107850001F932F933F934F935F936F937F938F93D8
+:107860009F93AF93BF93EF93FF93DF93CF93CDB7E6
+:10787000DEB76197DEBFCDBF1092E9008091E800CE
+:1078800083FFECC0CE01019668E00ADE82EF8093B0
+:10789000E800998197FF05C08091E80080FFFCCF48
+:1078A00003C08EEF8093E800292F30E0C901807675
+:1078B0009070892B09F0B3C08A81882329F4109233
+:1078C000F1001092F100BFC0813009F4BCC08330D8
+:1078D00009F4B9C0853049F48091E80080FFFCCFFD
+:1078E0008B8180688093E300AEC0863009F06DC064
+:1078F0001C81EF80F8841230A9F51092E9001092F3
+:10790000A2011092A1011092A4011092A3018ADF9A
+:1079100099E0FE013996DF01292F1D922A95E9F79A
+:1079200099871A8791E09E8790E8988B9AEF998BB8
+:107930002091A1013091A201275F3F4F3C872B8707
+:107940008D871092E9001092A2011092A101F0928D
+:10795000A401E092A30180E0BF0149E050E0A4DE71
+:1079600061DF71C01092E9001092A2011092A10192
+:10797000F092A401E092A301113071F488E0E816BE
+:10798000F10411F41093A5018091A501882309F059
+:1079900062C0E6E4F1E713C0133009F058C08B81F0
+:1079A000882319F4E8E0F1E70AC0823019F4ECE02A
+:1079B000F1E705C0813009F04AC0EEE2F1E74491F9
+:1079C00050E080E8BF0170DE3EC0873009F43FC060
+:1079D000883021F481E08093F10035C0893099F539
+:1079E00023703070232B99F5EBE6F1E791E031E05D
+:1079F00026E39093E9003093EB0084918093EC00B0
+:107A00002093ED009F5F3196943099F78EE7809335
+:107A1000EA001092EA008B818093A00114C08F814C
+:107A200098851092E9001092A2011092A101909302
+:107A3000A4018093A3018D81882349F4CE0101968E
+:107A40002DDC882321F08EEF8093E80007C081E2CF
+:107A50008093EB0003C0E8E5F1E7B1CF6196DEBFAC
+:107A6000CDBFCF91DF91FF91EF91BF91AF919F91EA
+:107A70008F917F916F915F914F913F912F911F91C6
+:107A8000FF90EF900F900FBE0F901F901895EE0F84
+:0E7A9000FF1F0590F491E02D0994F894FFCFAC
+:107A9E00FFFF00E1000000000000000000002F3991
+:087AAE00DF381B391939FF38DC
 :040000030000700089
 :00000001FF
diff --git a/arduino/bootloaders/nuevo_diskloader/src/DiskLoader.cpp b/arduino/bootloaders/nuevo_diskloader/src/DiskLoader.cpp
index 10c80b8..5f7139c 100644
--- a/arduino/bootloaders/nuevo_diskloader/src/DiskLoader.cpp
+++ b/arduino/bootloaders/nuevo_diskloader/src/DiskLoader.cpp
@@ -20,6 +20,8 @@ void entrypoint(void)
 }
 
 u8 _flashbuf[128];
+u8 _inSync;
+u8 _ok;
 volatile u16 _timeout;
 
 void Program(u8 ep, u16 page, u8 count)
@@ -46,6 +48,10 @@ void Program(u8 ep, u16 page, u8 count)
     boot_rww_enable ();
 }
 
+#define HW_VER	 0x02
+#define SW_MAJOR 0x01
+#define SW_MINOR 0x10
+
 #define STK_OK              0x10
 #define STK_INSYNC          0x14  // ' '
 #define CRC_EOP             0x20  // 'SPACE'
@@ -73,6 +79,18 @@ const u8 _readSize[] =
 	0,0
 };
 
+extern const u8 _consts[] PROGMEM;
+const u8 _consts[] = 
+{
+	SIGNATURE_0,
+	SIGNATURE_1,
+	SIGNATURE_2,
+	HW_VER,		// Hardware version
+	SW_MAJOR,	// Software major version
+	SW_MINOR,	// Software minor version
+	0x03,		// Unknown but seems to be required by avr studio 3.56
+	0x00,		// 
+};
 
 int main(void) __attribute__ ((naked));
 int main() 
@@ -95,13 +113,20 @@ int main()
 	USB.attach();
 	sei();
 	
+	_inSync = STK_INSYNC;
+	_ok = STK_OK;
+	
 	for (;;) 
 	{
 		u8* packet = _flashbuf;
 		u16 address = 0;
 		for (;;)
 		{
-			if (Serial.available() > 0) {
+			
+//			if (Serial.available() > 0) {
+				while (Serial.available() <= 0)
+					;
+			
 				u8 cmd = Serial.read();
 				// Read packet contents
 				u8 len;
@@ -117,7 +142,60 @@ int main()
 				// Read params
 				USB_Recv(CDC_RX, packet, len);
 				
-			}
+				// Send a response
+				u8 send = 0;
+				const u8* pgm = _consts+7;
+				if (STK_GET_PARAMETER == cmd)
+				{
+					u8 i = packet[0] - 0x80;
+					if (i > 2)
+						i = (i==0x18) ? 3 : 4;	// 0x80:HW_VER,0x81:SW_MAJOR,0x82:SW_MINOR,0x18:3 or 0
+					pgm = _consts + i + 3;
+					send = 1;
+				} 
+				else if (STK_UNIVERSAL == cmd) 
+				{
+					if (packet[0] == 0x30)
+						pgm = _consts + packet[2];	
+					send = 1;
+				}
+				else if (STK_READ_SIGN == cmd)
+				{ 
+					pgm = _consts;
+					send = 3;
+				}
+				else if (STK_LOAD_ADDRESS == cmd) 
+				{
+					address = *((u16*)packet);	// word address
+					address += address;
+				}
+				else if (STK_PROG_PAGE == cmd)
+				{
+					Program(CDC_RX, address, packet[1]);
+				}
+				else if (STK_READ_PAGE == cmd)
+				{
+					send = packet[1];
+					pgm = (const u8*)address;
+					address += send;
+				}
+				
+				// Check sync
+				if (Serial.available() > 0 && Serial.read() != ' ')
+					break;
+				Serial.write(STK_INSYNC);
+				
+//				u8 i;
+//				for (i=0; i<send; i++) {
+//					Serial.write(pgm[i]);
+//				}
+				
+				// Send ok
+				Serial.write(STK_OK);
+				
+				if ('Q' == cmd)
+					break;
+//			}			 
 		}
 	}
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]