diff options
author | Zach Eveland <zeveland@blacklabel-development.com> | 2011-10-21 20:06:17 -0400 |
---|---|---|
committer | Zach Eveland <zeveland@blacklabel-development.com> | 2011-10-21 20:06:17 -0400 |
commit | b9eece6584577968a7bcd04249039408a68ba4be (patch) | |
tree | 254b2917a5f28589a58634facf19b2df0fd3273d /bootloaders/nuevo_diskloader | |
parent | c83d85b87a658751f8e28735c1f08b37898b2b64 (diff) |
some progress on responding to parameter requests
Diffstat (limited to 'bootloaders/nuevo_diskloader')
-rw-r--r-- | bootloaders/nuevo_diskloader/DiskLoader.elf.hex | 246 | ||||
-rw-r--r-- | bootloaders/nuevo_diskloader/DiskLoader.hex | 246 | ||||
-rw-r--r-- | bootloaders/nuevo_diskloader/src/DiskLoader.cpp | 153 | ||||
-rw-r--r-- | bootloaders/nuevo_diskloader/src/USBCore.cpp | 14 |
4 files changed, 338 insertions, 321 deletions
diff --git a/bootloaders/nuevo_diskloader/DiskLoader.elf.hex b/bootloaders/nuevo_diskloader/DiskLoader.elf.hex index 69377ab..a4e2d75 100644 --- a/bootloaders/nuevo_diskloader/DiskLoader.elf.hex +++ b/bootloaders/nuevo_diskloader/DiskLoader.elf.hex @@ -1,6 +1,6 @@ :10700000B8C00000DBC00000D9C00000D7C000003D
:10701000D5C00000D3C00000D1C00000CFC0000028
-:10702000CDC00000CBC0000097C300000AC4000020
+:10702000CDC00000CBC0000098C300000BC400001E
:10703000C5C00000C3C00000C1C00000BFC0000048
:10704000BDC00000BBC00000B9C00000B7C0000058
:10705000B5C00000B3C00000B1C00000AFC0000068
@@ -21,35 +21,35 @@ :107140004C004C00430012010002000000404123AB
:10715000880000010102000112010002020000404B
:107160004123880000010102000100C18081F8383C
-:10717000113C11241FBECFEFDAE0DEBFCDBF11E01E
-:10718000A0E0B1E0EEE9FAE702C005900D92A83167
+:10717000123C11241FBECFEFDAE0DEBFCDBF11E01D
+:10718000A0E0B1E0E0EAFAE702C005900D92A83174
:10719000B107D9F711E0A8E1B1E001C01D92A73A0B
:1071A000B107E1F711E7C2E7D1E703C02297FE017B
-:1071B00070D4CE36D107D1F7EDD06FC421CFDC012A
+:1071B00071D4CE36D107D1F7EDD070C421CFDC0128
:1071C00080910001909101018F5F9F4F61F4ED91DB
:1071D000FC9111970480F581E02DCD0109959093E4
:1071E00001018093000180910001909101010895B7
:1071F0008EE091E090931901809318010895DF9338
:10720000CF930F92CDB7DEB76983809109018823B0
-:1072100051F083E0BE016F5F7F4F41E050E0B2D19B
+:1072100051F083E0BE016F5F7F4F41E050E0C7D186
:107220001816190614F080E090E00F90CF91DF91CE
-:10723000089583E087C220910001309101018FEF12
+:10723000089583E088C220910001309101018FEF11
:107240002F3F380739F08FEF9FEF90930101809324
-:10725000000103C082E06ED19C01C901089582E063
-:107260002CD1282F80910001909101018F5F9F4FB9
+:10725000000103C082E083D19C01C901089582E04E
+:1072600041D1282F80910001909101018F5F9F4FA4
:1072700009F02F5F822F90E00895FC0180818E5FDE
-:10728000808380E86EEA70E742E450E00DC286EA4F
-:1072900091E0C6D2F8940C94003C0895CF93DF930C
+:10728000808380E86EEA70E742E450E00EC286EA4E
+:1072900091E0C7D2F8940C94003C0895CF93DF930B
:1072A000EC0189819881913A49F4813251F580E06D
-:1072B00062E071E047E050E0F7D121C0913209F57A
-:1072C000803231F482E091E067E070E029D217C0AB
+:1072B00062E071E047E050E0F8D121C0913209F579
+:1072C000803231F482E091E067E070E02AD217C0AA
:1072D0008232B9F480910901882371F08091020112
:1072E00090910301A0910401B0910501805B94404D
:1072F000A040B04009F4CBDF8A818093090181E08E
:1073000001C080E0DF91CF910895FF920F931F930A
:10731000CF93DF93982F8B01FF2488E760307807A5
:1073200038F4FF24F39483E0FB0180935700E89541
-:10733000C42FD0E0892F6AE171E0AE01C7D0FF20F1
+:10733000C42FD0E0892F6AE171E0AE01DCD0FF20DC
:1073400019F107B600FCFDCFD595C7954C2FF80174
:10735000AAE1B1E020E031E009C08D919D910C01DE
:1073600030935700E895112432962F5F2417A8F325
@@ -58,117 +58,117 @@ :10739000FF90089588E10FB6F894809360001092F2
:1073A00060000FBE3F9A209A6E9A90E89093610019
:1073B0001092610081E885BF95BF01E005BF02E042
-:1073C00005BF769A289A479886EA91E013D2789476
+:1073C00005BF769A289A479886EA91E014D2789475
: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
+:1073F00022DFE82E80EF90E7FC012491319602967F
+:1074000044912E1511F02223B9F710929D0110928C
+:107410009C0150E082E06AE171E06DD0F1E4EF168A
+:1074200049F186E5E81631F1E5E7EE1621F4E801C9
+:1074300023E0F22E22C0F5E5EF1639F4C0911A01CF
+:10744000D0911B01CC0FDD1F0DC084E6E81631F48E
+:1074500082E0B80140911B0158DF03C0E4E7EE165B
+:1074600019F0E801FF2409C0F0901B01E801CF0DDD
+:10747000D11D03C0E801FF24F39488E191E0EFDE21
+:1074800018161906CCF488E191E0D5DE00E010E092
+:10749000809709F0A5CF10C088E191E061E0AFDEF0
+:1074A00083E46BE971E041E050E081D0F1E5EF1653
+:1074B00009F494CF8E0194CF83E06AE971E041E052
+:1074C00050E075D0FF2061F3E7CFFC0104C080914C
+:1074D000F100819361506623D1F7289884E6809368
+:1074E0009F0108959FB7F89487708093E900809179
+:1074F000F2009FBF0895282F8091A0018823C1F03A
+:1075000057FF1AC015C0289890939F018091F100F1
+:107510008193E217F307B9F74115510539F08091CE
+:10752000F200882319F48BE68093E800AFBF02C015
+:107530004FEF5FEFCA010895AFB7F894277020931B
+:10754000E9008091F200282F30E0241735070CF471
+:10755000A901FB019B01240F311D94E6DACFDF93D3
+:10756000CF930F92CDB7DEB7BE016F5F7F4F41E083
+:1075700050E0C1DF019719F08FEF9FEF02C08981C2
+:1075800090E00F90CF91DF9108952FB7F894877016
+:107590008093E9008091E80085FD02C090E004C07E
+:1075A0008091F20090E4981B2FBF892F08957F925D
+:1075B0008F929F92AF92BF92CF92DF92EF92FF9203
+:1075C0000F931F93CF93DF93F82E6A018091A00150
+:1075D000882319F44FEF5FEF59C08B01EA0157E0A0
+:1075E000E52EEF208F2D90E040E2842E912C882212
+:1075F00099223AE3732E20E4A22EB12CA822B922BC
+:107600003DC08F2DC2DF282F90E0C817D9070CF49A
+:107610002C2FC21BD1094FB7F894E092E9008114D6
+:10762000910421F406C01092F10021502223D9F7D1
+:1076300019C0F7FC03C0F801922F10C0C801322F07
+:1076400006C0FC010196E491E093F1003150332330
+:10765000C1F706C081918093F10091509923D1F731
+:10766000020F111D8091E80085FF05C0209729F4C5
+:10767000A114B10411F07092E8004FBF209709F0F7
+:10768000C0CF769884E680939E01A601CA01DF915F
+:10769000CF911F910F91FF90EF90DF90CF90BF900F
+:1076A000AF909F908F907F9008950F931F93182F06
+:1076B000FB01A091A301B091A401BA010EEF2AC071
+:1076C00017FF02C0949101C090812091A1013091D7
+:1076D000A2012A173B07ACF48091E8008570E1F322
+:1076E0008091E80082FF03C04FEF5FEF16C09093D8
+:1076F000F100C90101968F739070892B11F40093EA
+:10770000E8002F5F3F4F3093A2012093A101615009
+:10771000704031966115710599F6CA011F910F915C
+:107720000895CF93DF939C01EB018091E80082FFE5
+:10773000FCCFC9016C2FC9DE8BEF8093E800CE012E
+:10774000DF91CF9108958093E9008091F200882322
+:1077500019F08AE38093E80008951F920F920FB604
+:107760000F9211242F933F938F938091E1001092F9
+:10777000E100282F83FF0FC01092E90081E0809381
+:10778000EB001092EC0082E38093ED001092A001D8
+:1077900088E08093F00022FF26C083E08093E90018
+:1077A0008091F200882319F08AE38093E8008091A9
+:1077B0009E01882351F080919E01815080939E010B
+:1077C00080919E01882309F4769A80919F018823F5
+:1077D00051F080919F01815080939F0180919F0182
+:1077E000882309F4289A8F913F912F910F900FBE13
+:1077F0000F901F9018951092A00181E08093D70000
+:1078000080EA8093D80082E189BD09B400FEFDCFF3
+:1078100080E98093D8008CE08093E2001092E00031
+:10782000089508950895DF93CF930F92CDB7DEB7F3
+:107830001982CE01019621DD898190E00F90CF91D0
+:10784000DF9108951F920F920FB60F921124EF92BD
+:10785000FF921F932F933F934F935F936F937F9369
+:107860008F939F93AF93BF93EF93FF93DF93CF9348
+:10787000CDB7DEB76197DEBFCDBF1092E900809132
+:10788000E80083FFECC0CE01019668E01EDE82EFC7
+:107890008093E800998197FF05C08091E80080FF00
+:1078A000FCCF03C08EEF8093E800292F30E0C901A0
+:1078B00080769070892B09F0B3C08A81882329F4DF
+:1078C0001092F1001092F100BFC0813009F4BCC0E9
+:1078D000833009F4B9C0853049F48091E80080FF15
+:1078E000FCCF8B8180688093E300AEC0863009F0C6
+:1078F0006DC01C81EF80F8841230A9F51092E90068
+:107900001092A2011092A1011092A4011092A30161
+:107910008ADF99E0FE013996DF01292F1D922A9511
+:10792000E9F799871A8791E09E8790E8988B9AEFFC
+:10793000998B2091A1013091A201275F3F4F3C8795
+:107940002B878D871092E9001092A2011092A1015D
+:10795000F092A401E092A30180E0BF0149E050E071
+:10796000A4DE61DF71C01092E9001092A2011092B2
+:10797000A101F092A401E092A301113071F488E01A
+:10798000E816F10411F41093A5018091A501882354
+:1079900009F062C0E6E4F1E713C0133009F058C003
+:1079A0008B81882319F4E8E0F1E70AC0823019F4EA
+:1079B000ECE0F1E705C0813009F04AC0EEE2F1E702
+:1079C000449150E080E8BF0170DE3EC0873009F48A
+:1079D0003FC0883021F481E08093F10035C08930C8
+:1079E00099F523703070232B99F5EBE6F1E791E0E0
+:1079F00031E026E39093E9003093EB00849180938B
+:107A0000EC002093ED009F5F3196943099F78EE75C
+:107A10008093EA001092EA008B818093A00114C049
+:107A20008F8198851092E9001092A2011092A10115
+:107A30009093A4018093A3018D81882349F4CE0102
+:107A400001962CDC882321F08EEF8093E80007C09C
+:107A500081E28093EB0003C0E8E5F1E7B1CF6196E6
+:107A6000DEBFCDBFCF91DF91FF91EF91BF91AF917D
+:107A70009F918F917F916F915F914F913F912F9146
+:107A80001F91FF90EF900F900FBE0F901F901895D1
+:107A9000EE0FFF1F0590F491E02D0994F894FFCFAD
+:107AA000FFFF00E1000000000000000000002F398F
+:087AB000DF381B391939FF38DA
:040000030000700089
:00000001FF
diff --git a/bootloaders/nuevo_diskloader/DiskLoader.hex b/bootloaders/nuevo_diskloader/DiskLoader.hex index 69377ab..a4e2d75 100644 --- a/bootloaders/nuevo_diskloader/DiskLoader.hex +++ b/bootloaders/nuevo_diskloader/DiskLoader.hex @@ -1,6 +1,6 @@ :10700000B8C00000DBC00000D9C00000D7C000003D
:10701000D5C00000D3C00000D1C00000CFC0000028
-:10702000CDC00000CBC0000097C300000AC4000020
+:10702000CDC00000CBC0000098C300000BC400001E
:10703000C5C00000C3C00000C1C00000BFC0000048
:10704000BDC00000BBC00000B9C00000B7C0000058
:10705000B5C00000B3C00000B1C00000AFC0000068
@@ -21,35 +21,35 @@ :107140004C004C00430012010002000000404123AB
:10715000880000010102000112010002020000404B
:107160004123880000010102000100C18081F8383C
-:10717000113C11241FBECFEFDAE0DEBFCDBF11E01E
-:10718000A0E0B1E0EEE9FAE702C005900D92A83167
+:10717000123C11241FBECFEFDAE0DEBFCDBF11E01D
+:10718000A0E0B1E0E0EAFAE702C005900D92A83174
:10719000B107D9F711E0A8E1B1E001C01D92A73A0B
:1071A000B107E1F711E7C2E7D1E703C02297FE017B
-:1071B00070D4CE36D107D1F7EDD06FC421CFDC012A
+:1071B00071D4CE36D107D1F7EDD070C421CFDC0128
:1071C00080910001909101018F5F9F4F61F4ED91DB
:1071D000FC9111970480F581E02DCD0109959093E4
:1071E00001018093000180910001909101010895B7
:1071F0008EE091E090931901809318010895DF9338
:10720000CF930F92CDB7DEB76983809109018823B0
-:1072100051F083E0BE016F5F7F4F41E050E0B2D19B
+:1072100051F083E0BE016F5F7F4F41E050E0C7D186
:107220001816190614F080E090E00F90CF91DF91CE
-:10723000089583E087C220910001309101018FEF12
+:10723000089583E088C220910001309101018FEF11
:107240002F3F380739F08FEF9FEF90930101809324
-:10725000000103C082E06ED19C01C901089582E063
-:107260002CD1282F80910001909101018F5F9F4FB9
+:10725000000103C082E083D19C01C901089582E04E
+:1072600041D1282F80910001909101018F5F9F4FA4
:1072700009F02F5F822F90E00895FC0180818E5FDE
-:10728000808380E86EEA70E742E450E00DC286EA4F
-:1072900091E0C6D2F8940C94003C0895CF93DF930C
+:10728000808380E86EEA70E742E450E00EC286EA4E
+:1072900091E0C7D2F8940C94003C0895CF93DF930B
:1072A000EC0189819881913A49F4813251F580E06D
-:1072B00062E071E047E050E0F7D121C0913209F57A
-:1072C000803231F482E091E067E070E029D217C0AB
+:1072B00062E071E047E050E0F8D121C0913209F579
+:1072C000803231F482E091E067E070E02AD217C0AA
:1072D0008232B9F480910901882371F08091020112
:1072E00090910301A0910401B0910501805B94404D
:1072F000A040B04009F4CBDF8A818093090181E08E
:1073000001C080E0DF91CF910895FF920F931F930A
:10731000CF93DF93982F8B01FF2488E760307807A5
:1073200038F4FF24F39483E0FB0180935700E89541
-:10733000C42FD0E0892F6AE171E0AE01C7D0FF20F1
+:10733000C42FD0E0892F6AE171E0AE01DCD0FF20DC
:1073400019F107B600FCFDCFD595C7954C2FF80174
:10735000AAE1B1E020E031E009C08D919D910C01DE
:1073600030935700E895112432962F5F2417A8F325
@@ -58,117 +58,117 @@ :10739000FF90089588E10FB6F894809360001092F2
:1073A00060000FBE3F9A209A6E9A90E89093610019
:1073B0001092610081E885BF95BF01E005BF02E042
-:1073C00005BF769A289A479886EA91E013D2789476
+:1073C00005BF769A289A479886EA91E014D2789475
: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
+:1073F00022DFE82E80EF90E7FC012491319602967F
+:1074000044912E1511F02223B9F710929D0110928C
+:107410009C0150E082E06AE171E06DD0F1E4EF168A
+:1074200049F186E5E81631F1E5E7EE1621F4E801C9
+:1074300023E0F22E22C0F5E5EF1639F4C0911A01CF
+:10744000D0911B01CC0FDD1F0DC084E6E81631F48E
+:1074500082E0B80140911B0158DF03C0E4E7EE165B
+:1074600019F0E801FF2409C0F0901B01E801CF0DDD
+:10747000D11D03C0E801FF24F39488E191E0EFDE21
+:1074800018161906CCF488E191E0D5DE00E010E092
+:10749000809709F0A5CF10C088E191E061E0AFDEF0
+:1074A00083E46BE971E041E050E081D0F1E5EF1653
+:1074B00009F494CF8E0194CF83E06AE971E041E052
+:1074C00050E075D0FF2061F3E7CFFC0104C080914C
+:1074D000F100819361506623D1F7289884E6809368
+:1074E0009F0108959FB7F89487708093E900809179
+:1074F000F2009FBF0895282F8091A0018823C1F03A
+:1075000057FF1AC015C0289890939F018091F100F1
+:107510008193E217F307B9F74115510539F08091CE
+:10752000F200882319F48BE68093E800AFBF02C015
+:107530004FEF5FEFCA010895AFB7F894277020931B
+:10754000E9008091F200282F30E0241735070CF471
+:10755000A901FB019B01240F311D94E6DACFDF93D3
+:10756000CF930F92CDB7DEB7BE016F5F7F4F41E083
+:1075700050E0C1DF019719F08FEF9FEF02C08981C2
+:1075800090E00F90CF91DF9108952FB7F894877016
+:107590008093E9008091E80085FD02C090E004C07E
+:1075A0008091F20090E4981B2FBF892F08957F925D
+:1075B0008F929F92AF92BF92CF92DF92EF92FF9203
+:1075C0000F931F93CF93DF93F82E6A018091A00150
+:1075D000882319F44FEF5FEF59C08B01EA0157E0A0
+:1075E000E52EEF208F2D90E040E2842E912C882212
+:1075F00099223AE3732E20E4A22EB12CA822B922BC
+:107600003DC08F2DC2DF282F90E0C817D9070CF49A
+:107610002C2FC21BD1094FB7F894E092E9008114D6
+:10762000910421F406C01092F10021502223D9F7D1
+:1076300019C0F7FC03C0F801922F10C0C801322F07
+:1076400006C0FC010196E491E093F1003150332330
+:10765000C1F706C081918093F10091509923D1F731
+:10766000020F111D8091E80085FF05C0209729F4C5
+:10767000A114B10411F07092E8004FBF209709F0F7
+:10768000C0CF769884E680939E01A601CA01DF915F
+:10769000CF911F910F91FF90EF90DF90CF90BF900F
+:1076A000AF909F908F907F9008950F931F93182F06
+:1076B000FB01A091A301B091A401BA010EEF2AC071
+:1076C00017FF02C0949101C090812091A1013091D7
+:1076D000A2012A173B07ACF48091E8008570E1F322
+:1076E0008091E80082FF03C04FEF5FEF16C09093D8
+:1076F000F100C90101968F739070892B11F40093EA
+:10770000E8002F5F3F4F3093A2012093A101615009
+:10771000704031966115710599F6CA011F910F915C
+:107720000895CF93DF939C01EB018091E80082FFE5
+:10773000FCCFC9016C2FC9DE8BEF8093E800CE012E
+:10774000DF91CF9108958093E9008091F200882322
+:1077500019F08AE38093E80008951F920F920FB604
+:107760000F9211242F933F938F938091E1001092F9
+:10777000E100282F83FF0FC01092E90081E0809381
+:10778000EB001092EC0082E38093ED001092A001D8
+:1077900088E08093F00022FF26C083E08093E90018
+:1077A0008091F200882319F08AE38093E8008091A9
+:1077B0009E01882351F080919E01815080939E010B
+:1077C00080919E01882309F4769A80919F018823F5
+:1077D00051F080919F01815080939F0180919F0182
+:1077E000882309F4289A8F913F912F910F900FBE13
+:1077F0000F901F9018951092A00181E08093D70000
+:1078000080EA8093D80082E189BD09B400FEFDCFF3
+:1078100080E98093D8008CE08093E2001092E00031
+:10782000089508950895DF93CF930F92CDB7DEB7F3
+:107830001982CE01019621DD898190E00F90CF91D0
+:10784000DF9108951F920F920FB60F921124EF92BD
+:10785000FF921F932F933F934F935F936F937F9369
+:107860008F939F93AF93BF93EF93FF93DF93CF9348
+:10787000CDB7DEB76197DEBFCDBF1092E900809132
+:10788000E80083FFECC0CE01019668E01EDE82EFC7
+:107890008093E800998197FF05C08091E80080FF00
+:1078A000FCCF03C08EEF8093E800292F30E0C901A0
+:1078B00080769070892B09F0B3C08A81882329F4DF
+:1078C0001092F1001092F100BFC0813009F4BCC0E9
+:1078D000833009F4B9C0853049F48091E80080FF15
+:1078E000FCCF8B8180688093E300AEC0863009F0C6
+:1078F0006DC01C81EF80F8841230A9F51092E90068
+:107900001092A2011092A1011092A4011092A30161
+:107910008ADF99E0FE013996DF01292F1D922A9511
+:10792000E9F799871A8791E09E8790E8988B9AEFFC
+:10793000998B2091A1013091A201275F3F4F3C8795
+:107940002B878D871092E9001092A2011092A1015D
+:10795000F092A401E092A30180E0BF0149E050E071
+:10796000A4DE61DF71C01092E9001092A2011092B2
+:10797000A101F092A401E092A301113071F488E01A
+:10798000E816F10411F41093A5018091A501882354
+:1079900009F062C0E6E4F1E713C0133009F058C003
+:1079A0008B81882319F4E8E0F1E70AC0823019F4EA
+:1079B000ECE0F1E705C0813009F04AC0EEE2F1E702
+:1079C000449150E080E8BF0170DE3EC0873009F48A
+:1079D0003FC0883021F481E08093F10035C08930C8
+:1079E00099F523703070232B99F5EBE6F1E791E0E0
+:1079F00031E026E39093E9003093EB00849180938B
+:107A0000EC002093ED009F5F3196943099F78EE75C
+:107A10008093EA001092EA008B818093A00114C049
+:107A20008F8198851092E9001092A2011092A10115
+:107A30009093A4018093A3018D81882349F4CE0102
+:107A400001962CDC882321F08EEF8093E80007C09C
+:107A500081E28093EB0003C0E8E5F1E7B1CF6196E6
+:107A6000DEBFCDBFCF91DF91FF91EF91BF91AF917D
+:107A70009F918F917F916F915F914F913F912F9146
+:107A80001F91FF90EF900F900FBE0F901F901895D1
+:107A9000EE0FFF1F0590F491E02D0994F894FFCFAD
+:107AA000FFFF00E1000000000000000000002F398F
+:087AB000DF381B391939FF38DA
:040000030000700089
:00000001FF
diff --git a/bootloaders/nuevo_diskloader/src/DiskLoader.cpp b/bootloaders/nuevo_diskloader/src/DiskLoader.cpp index 5f7139c..4f9c793 100644 --- a/bootloaders/nuevo_diskloader/src/DiskLoader.cpp +++ b/bootloaders/nuevo_diskloader/src/DiskLoader.cpp @@ -122,80 +122,97 @@ int main() u16 address = 0; for (;;) { + while (Serial.available() <= 0) + ; + + u8 cmd = Serial.read(); + // Read packet contents + u8 len; + const u8* rs = _readSize; + for (;;) + { + u8 c = pgm_read_byte(rs++); + len = pgm_read_byte(rs++); + if (c == cmd || c == 0) + break; + } + _timeout = 0; + // Read params + USB_Recv(CDC_RX, packet, len); -// if (Serial.available() > 0) { - while (Serial.available() <= 0) - ; + // 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); + USB_Send(CDC_TX, &_inSync, 1); - u8 cmd = Serial.read(); - // Read packet contents - u8 len; - const u8* rs = _readSize; - for (;;) - { - u8 c = pgm_read_byte(rs++); - len = pgm_read_byte(rs++); - if (c == cmd || c == 0) - break; - } - _timeout = 0; - // 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; -// } +// Serial.write(0x01); +// u8 i; +// for (i=0; i<send; i++) { +// Serial.write(); +// } + +// if (send > 0) +// USB_Send(CDC_TX, pgm, send); + +// if (send) { +//// USB_Send(CDC_TX|TRANSFER_PGM, pgm, send); +// u8 _foo; +// _foo = 0x01; +// USB_Send(CDC_TX|TRANSFER_PGM, &_foo, 1); +// +// } + if (send) + Serial.write(0x01); + + // Send ok +// Serial.write(STK_OK); + USB_Send(CDC_TX|TRANSFER_RELEASE, &_ok, 1); + + if ('Q' == cmd) + break; } } } diff --git a/bootloaders/nuevo_diskloader/src/USBCore.cpp b/bootloaders/nuevo_diskloader/src/USBCore.cpp index bf6a6d9..8b7ef82 100644 --- a/bootloaders/nuevo_diskloader/src/USBCore.cpp +++ b/bootloaders/nuevo_diskloader/src/USBCore.cpp @@ -268,14 +268,14 @@ int USB_Send(u8 ep, const void* d, int len) while (len) { u8 n = USB_SendSpace(ep); - if (n == 0) - { - if (!(--timeout)) - return -1; +// if (n == 0) +// { +// if (!(--timeout)) +// return -1; // delay(1); - _delay_ms(1); - continue; - } +// _delay_ms(1); +// continue; +// } if (n > len) n = len; |