Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 110 → Rev 111

/Transportables_Koptertool/trunk/V-0.1/default/MMT.eep
0,0 → 1,65
:1000000000000000000000000000000000000000F0
:1000100000000000000000000000000000000000E0
:1000200000000000000000000000000000000000D0
:1000300000000000000000000000000000000000C0
:1000400000000000000000000000000000000000B0
:1000500000000000000000000000000000000000A0
:100060000000000000000000000000000000000090
:100070000000000000000000000000000000000080
:100080000000000000000000000000000000000070
:100090000000000000000000000000000000000060
:1000A0000000000000000000000000000000000050
:1000B0000000000000000000000000000000000040
:1000C0000000000000000000000000000000000030
:1000D0000000000000000000000000000000000020
:1000E0000000000000000000000000000000000010
:1000F0000000000000000000000000000000000000
:1001000000000000000000000000000000000000EF
:1001100000000000000000000000000000000000DF
:1001200000000000000000000000000000000000CF
:1001300000000000000000000000000000000000BF
:1001400000000000000000000000000000000000AF
:10015000000000000000000000000000000000009F
:10016000000000000000000000000000000000008F
:10017000000000000000000000000000000000007F
:10018000000000000000000000000000000000006F
:10019000000000000000000000000000000000005F
:1001A000000000000000000000000000000000004F
:1001B000000000000000000000000000000000003F
:1001C000000000000000000000000000000000002F
:1001D000000000000000000000000000000000001F
:1001E000000000000000000000000000000000000F
:1001F00000000000000000000000000000000000FF
:1002000000000000000000000000000000000000EE
:1002100000000000000000000000000000000000DE
:1002200000000000000000000000000000000000CE
:1002300000000000000000000000000000000000BE
:1002400000000000000000000000000000000000AE
:10025000000000000000000000000000000000009E
:10026000000000000000000000000000000000008E
:10027000000000000000000000000000000000007E
:10028000000000000000000000000000000000006E
:10029000000000000000000000000000000000005E
:1002A000000000000000000000000000000000004E
:1002B000000000000000000000000000000000003E
:1002C000000000000000000000000000000000002E
:1002D000000000000000000000000000000000001E
:1002E000000000000000000000000000000000000E
:1002F00000000000000000000000000000000000FE
:1003000000000000000000000000000000000000ED
:1003100000000000000000000000000000000000DD
:1003200000000000000000000000000000000000CD
:1003300000000000000000000000000000000000BD
:1003400000000000000000000000000000000000AD
:10035000000000000000000000000000000000009D
:10036000000000000000000000000000000000008D
:10037000000000000000000000000000000000007D
:10038000000000000000000000000000000000006D
:10039000000000000000000000000000000000005D
:1003A000000000000000000000000000000000004D
:1003B000000000000000000000000000000000003D
:1003C000000000000000000000000000000000002D
:1003D000000000000000000000000000000000001D
:1003E000000000000000000000000000000000000D
:1003F00000000000000000000000000000000000FD
:00000001FF
/Transportables_Koptertool/trunk/V-0.1/default/MMT.elf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Transportables_Koptertool/trunk/V-0.1/default/MMT.elf
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Transportables_Koptertool/trunk/V-0.1/default/MMT_Mega32_7.hex
0,0 → 1,716
:100000000C94C1060C94DE060C94DE060C94DE06FD
:100010000C94DE060C94DE060C94DE060C94DE06D0
:100020000C94DE060C94DE060C94CA120C94DE06C8
:100030000C94DE060C9470120C94DE060C94DE0612
:100040000C94DE060C94DE060C94DE060C94DE06A0
:100050000C94DE06202020202020000D0A54696D1B
:10006000656F75742100446973706C6179000000DC
:10007000000000003E5B4F5B3E003E6B4F6B3E005E
:100080001C3E7C3E1C00183C7E3C18001C577D57D3
:100090001C001C5E7F5E1C0000183C180000FFE77F
:1000A000C3E7FF00001824180000FFE7DBE7FF00AC
:1000B00030483A060E00262979292600407F05059A
:1000C0000700407F05253F005A3CE73C5A007F3E31
:1000D0001C1C0800081C1C3E7F0014227F221400F8
:1000E0005F5F005F5F0006097F017F000066899502
:1000F0006A0060606060606094A2FFA294000804DF
:100100007E04080010207E20100008082A1C080029
:10011000081C2A0808001E10101010000C1E0C1ECF
:100120000C0030383E383000060E3E0E060000004F
:100130000000000000005F00000000070007000052
:10014000147F147F1400242A7F2A120023130864CA
:100150006200364956205000000807030000001CCA
:10016000224100000041221C00002A1C7F1C2A00A2
:1001700008083E08080000807030000008080808E1
:1001800008000000606000002010080402003E51DA
:1001900049453E0000427F400000724949494600FF
:1001A0002141494D33001814127F10002745454561
:1001B00039003C4A494931004121110907003649BB
:1001C00049493600464949291E0000001400000034
:1001D00000403400000000081422410014141414DC
:1001E00014000041221408000201590906003E4192
:1001F0005D594E007C1211127C007F49494936003E
:100200003E41414122007F4141413E007F494949F1
:1002100041007F09090901003E41415173007F08F7
:1002200008087F0000417F4100002040413F01005D
:100230007F08142241007F40404040007F021C02A2
:100240007F007F0408107F003E4141413E007F094E
:10025000090906003E4151215E007F091929460027
:1002600026494949320003017F0103003F404040D5
:100270003F001F2040201F003F4038403F006314D4
:10028000081463000304780403006159494D4300D6
:10029000007F41414100020408102000004141411B
:1002A0007F0004020102040040404040400000037F
:1002B000070800002054547840007F284444380048
:1002C000384444442800384444287F003854545467
:1002D000180000087E09020018A4A49C78007F087A
:1002E0000404780000447D4000002040403D0000B0
:1002F0007F102844000000417F4000007C04780407
:1003000078007C0804047800384444443800FC1821
:100310002424180018242418FC007C080404080075
:1003200048545454240004043F4424003C404020DA
:100330007C001C2040201C003C4030403C004428F5
:10034000102844004C9090907C004464544C44002D
:100350000008364100000000770000000041360828
:1003600000000201020402003C2623263C001EA1DC
:10037000A16112003A4040207A0038545455590087
:100380002155557941002154547841002155547824
:1003900040002054557940000C1E5272120039550D
:1003A000555559003954545459003955545458002E
:1003B0000000457C41000002457D42000001457C73
:1003C0004000791412147900F0282528F0007C549C
:1003D000554500002054547C54447C0A097F49410F
:1003E000324949493200324848483200324A484886
:1003F00030003A4141217A003A4240207800009D85
:10040000A0A07D003944444439003D4040403D00B7
:100410003C24FF242400487E494366002B2FFC2FF8
:100420002B00FF0929F62000C0887E090300205414
:10043000547941000000447D41003048484A320070
:10044000384040227A00007A0A0A72007D0D193184
:100450007D002629292F2800262929292600304811
:100460004D4020003808080808000808080838002F
:100470002F10C8ACBA002F102834FA0000007B00FF
:10048000000008142A14220022142A140800AA00CA
:100490005500AA00AA55AA55AA5555AA55AA55AA63
:1004A000000000FF0000101010FF0000141414FFE3
:1004B00000001010FF00FF001010F010F0001414E6
:1004C00014FC00001414F700FF000000FF00FF0000
:1004D0001414F404FC00141417101F0010101F1043
:1004E0001F001414141F0000101010F00000000072
:1004F000001F10101010101F1010101010F010100E
:10050000000000FF1010101010101010101010FF3D
:100510001010000000FF14140000FF00FF10000086
:100520001F1017140000FC04F414141417101714EF
:100530001414F404F4140000FF00F7141414141439
:1005400014141414F700F7141414141714141010BE
:100550001F101F10141414F414141010F010F010C5
:1005600000001F101F100000001F1414000000FCEA
:1005700014140000F010F0101010FF10FF101414ED
:1005800014FF14141010101F0000000000F01010D1
:10059000FFFFFFFFFFFFF0F0F0F0F0F0FFFFFF00C4
:1005A0000000000000FFFFFF0F0F0F0F0F0F384478
:1005B000443844007C2A2A3E14007E0202060600CB
:1005C000027E027E02006355494163003844443C88
:1005D0000400407E201E200006027E02020099A533
:1005E000E7A599001C2A492A1C004C7201724C0094
:1005F000304A4D4D3000304878483000BC625A4691
:100600003D003E49494900007E0101017E002A2A41
:100610002A2A2A0044445F44440040514A4440008E
:1006200040444A5140000000FF010300E080FF0009
:10063000000008086B6B0808361236243600060FD7
:10064000090F06000000181800000000101000003C
:100650003040FF010100001F01011E0000191D179D
:100660001200003C3C3C3C000000000000004D6FCC
:1006700064206279204D696B656C6A6F2030352F7C
:1006800030380053657474696E67730D0A004465F1
:1006900062756720446174656E0D0A004D6F746F5A
:1006A00072746573740D0A00506172616D657465D2
:1006B000720D0A000D0A446973706C61790D0A00AD
:1006C00048617570746D656EFC2842455441205632
:1006D000302E31290D0A002A002000546173746500
:1006E000206472FC636B656E0D0A00436F6E666971
:1006F0006720202020004368616E6E656C732020A7
:1007000000537469636B202020202000486F6568C7
:10071000652020202020004779726F202020202093
:1007200020004C6F6F70696E672020200043616D60
:100730006572612020202000536F6E7374696765B5
:100740007320005573657220202020202000436F05
:1007500075706C696E67202000436F6E666967284C
:10076000322920004C6F6F70696E677365740002E8
:10077000020202020202020004040404040403034D
:1007800003080808080505080808000509090909FB
:100790000707070707070606060A0A0606050505EE
:1007A0000909090900070B0B0B0B0C0C0C0C0C0CAA
:1007B0000C0C0108020108020108020108020108EC
:1007C0000201080201080201080200000000FF0403
:1007D00000FF0400FF0400FF0400320400FF0400D7
:1007E000060300400300140300200821FA08003229
:1007F0000800FF0800000500000500FA0800FA08DC
:1008000000FA0800010000FF0500FF0900FF0900D1
:10081000FF0900FF0900FF0700FA0700FA0700FAC6
:100820000700190700FF0600FA0600FA0600FF0A93
:1008300000FF0A00FA0600FA0600FA0500FA0500B1
:10084000FF0500FF0900FF0900FF0900FF09000084
:10085000010001070000000000000000000000008F
:100860000000000000000000000000000000000088
:100870000000000000000000004C6F6F70207570D9
:100880002020202020202020004C6F6F7020646FDB
:10089000776E092020202000004C6F6F70206C655F
:1008A0006674202020202020004C6F6F7020726919
:1008B00067687420202020200048F668656E726505
:1008C000676C6572202020200048F668656E7363AF
:1008D00068616C74657220200048656164686F6CA3
:1008E0006409090000000000004B6F6D70617373B4
:1008F0000909000000000000004B6F6D7061737308
:1009000046697809090000000047505309090900A9
:1009100000000000000000000041636873656E6B1A
:100920006F70706C756E67200044726568726174D8
:100930006509090000000000004E69636B2020205B
:10094000202020202020202000526F6C6C202020AE
:1009500020202020202020200047617320202020FC
:1009600020202020202020200047696572090909E5
:10097000000000000000000000506F746931090998
:10098000090000000000000000506F74693209097E
:10099000090000000000000000506F74693309096D
:1009A000090000000000000000506F74693409095C
:1009B000090000000000000000436F6E66696709CF
:1009C000090900000000000000486F6568655F4D80
:1009D000696E476173202020004C756674647275DF
:1009E000636B5F4420202020004D6178486F65686C
:1009F000652020202020202000486F6568655F501A
:100A0000202020202020202000486F6568655F5648
:100A1000657273746165726B00486F6568655F41EC
:100A200043435F5769726B2E00537469636B5F5069
:100A3000202020202020202000537469636B5F4415
:100A4000202020202020202000476965725F502050
:100A50002020202020202020004761735F4D696EF8
:100A60002020202020202020004761735F4D6178E6
:100A70002020202020202020004779726F416363CE
:100A800046616B746F720900004B6F6D7061737318
:100A90005769726B756E6720004779726F5F5020DF
:100AA0000909000000000000004779726F5F4909E2
:100AB000090900000000000000556E746572737033
:100AC000616E6E756E672020004E6F74476173090A
:100AD0000909000000000000004E6F744761735A5E
:100AE00065697420202020200055666F417573725F
:100AF00069636874756E672000495F46616B746F47
:100B000072202020202020200055736572506172D1
:100B1000616D310909000000005573657250617202
:100B2000616D3209090000000055736572506172F1
:100B3000616D3309090000000055736572506172E0
:100B4000616D34090900000000536572766F4E69CB
:100B5000636B4374726C090000536572766F4E6963
:100B6000636B436F6D70090000536572766F4E6959
:100B7000636B4D696E09000000536572766F4E69B4
:100B8000636B4D617809000000536572766F4E69A2
:100B9000636B526566727368004C6F6F7047617368
:100BA0004C696D6974090000004C6F6F7054687275
:100BB0006573686F6C640900004C6F6F70487973DF
:100BC000746572657365090000416368734B6F70EB
:100BD000706C756E67090000004163687347656754
:100BE000656E4B6F70706C2E0057696E6B6C556D37
:100BF0007363686C4E69636B0057696E6B6C556DFF
:100C00007363686C526F6C6C004779726F416363F9
:100C10004162676C656963680044726966746B6FF2
:100C20006D700909000000000044796E616D696310
:100C300053746162696C69740055736572506172B6
:100C4000616D3509090000000055736572506172CD
:100C5000616D3609090000000055736572506172BC
:100C6000616D3709090000000055736572506172AB
:100C7000616D380909000000004C6F6F70436F6EA2
:100C8000666967090900000000536572766F4E6956
:100C9000636B436F6D70496E000D0A4E6963687433
:100CA000206765737065696368657274000D0A502A
:100CB0006172616D657465722067657370656963E3
:100CC00068657274000D0A2D2D2D3E005061726111
:100CD0006D657465722073706569636865726E3FD7
:100CE0000D0A20206A610D0A20206E65696E00548D
:100CF000696D656F75740020353A0D0A0020343A2D
:100D00000D0A0020333A0D0A0020323A0D0A002065
:100D1000313A0D0A004C61646520506172616D6565
:100D20007465720D0A002D002D002D004578697440
:100D30000D0A00526563687465636B0D0A004C69A7
:100D40006E69650D0A004F7269656E74696572752A
:100D50006E670D0A000D0A0045696E7374656C6C50
:100D6000756E67656E3A0D0A000D0A54696D656F00
:100D70007574210044656275672D446973706C61F8
:100D8000790011241FBECFE5D8E0DEBFCDBF10E053
:100D9000A0E6B0E0E8E7FCE202C005900D92AE38B4
:100DA000B107D9F715E0AEE8B0E001C01D92A83F49
:100DB000B107E1F70E94DC0D0C943B160C94000087
:100DC000782F52E060E026C0E52FFF27EC5EFA4F57
:100DD00021812D5332813D5343814D535C5FDC01B2
:100DE000AF56BB4F80818D53880F880F922F9295FD
:100DF0009F70892B8C932295207F832F86958695D3
:100E0000282BFD0121833295330F330F307C342B97
:100E100032836D5F862F99275717B0F208950F938D
:100E20001F93B82F809191048093140580919204B0
:100E3000809315058091930480931605A3E073E0D9
:100E400035C0E72FFF27EF56FB4F8081418162813C
:100E50007D5FEA2FFF27EC5EFA4F282F2695269517
:100E6000235C2083552799278370907024E0880F96
:100E7000991F2A95E1F79A0104E0369527950A957E
:100E8000E1F7822B835C81834F705070440F551FB4
:100E9000440F551F862F8295869586958370842BE7
:100EA000835C82836F73635C6383AC5F7B1748F200
:100EB00090E020E030E008C0E92FFF27EC5EFA4F19
:100EC0008081280F311D9F5F9A17B1F73F70EA2F7D
:100ED000FF27EC5EFA4FC90136E0969587953A9563
:100EE000E1F7835C80832F73235C21838DE0828311
:100EF00013820A2F0D5F10E008C0E12FFF27EC5E80
:100F0000FA4F80810E94BC121F5F1017B1F71F912A
:100F10000F9108951F9384E1809397050E94971283
:100F2000833221F0809197058823C1F7809197053E
:100F3000882319F481E090E017C00E9497128093F3
:100F4000140511E00AC00E949712E12FFF27EC5E02
:100F5000FA4F80831F5F17FD1FE78D30A1F7812FA8
:100F60000E94E00680E090E01F9108951F93CF93C8
:100F7000DF93CDB7DEB761970FB6F894DEBF0FBE33
:100F8000CDBF182F83E28093910481E68093920471
:100F900080939304109394041092950410929604F5
:100FA00086E00E940F070E948A0780911505813410
:100FB000D1F7E1E9F4E0DE01119681918D9384E0AF
:100FC000E13AF807D1F7198A177020E0AE014F5FB8
:100FD0005F4F612F80E00E94DA0A61960FB6F894A5
:100FE000DEBF0FBECDBFDF91CF911F9108959F92BD
:100FF000AF92BF92CF92DF92EF92FF920F931F9327
:10100000CF93DF93CDB7DEB761970FB6F894DEBF0D
:101010000FBECDBF0E9438099924A92CBB2453E0F0
:10102000AA0CBB1C5A95E1F7FA2C00E010E08F2DBA
:10103000800F0E94B6070F5F1F4F08301105B9F7E8
:101040000E948A0780911505843489F57501EE0C9C
:10105000FF1C83E994E0E80EF91ECC24DD248E0108
:101060000F5F1F4FF701208181819927982F8827D3
:101070004AE050E0B801820F911D0E94AD1520E0BA
:1010800044E550E06C2D8EE00E94A40A20E0A80107
:101090006C2D8EE00E94DA0A0894C11CD11C82E0FB
:1010A00090E0E80EF91E98E0C916D104C1F68091CF
:1010B0009A05882329F280919A05813009F4939446
:1010C00080919A05823009F49A9480919A0588302B
:1010D00019F0E3E09E22A1CF61960FB6F894DEBF2F
:1010E0000FBECDBFDF91CF911F910F91FF90EF9079
:1010F000DF90CF90BF90AF909F9008951F9393E2A1
:101100009093910491E69093920498E690939304BF
:1011100080939404109295041092960486E00E94A5
:101120000F0710E00E948A07813009F41AE01F5F60
:10113000809115058053853018F01A3098F304C05B
:1011400080E090E01A3010F081E090E01F91089567
:101150001F93CF93DF93CDB7DEB72A970FB6F894DE
:10116000DEBF0FBECDBF0E94380960E086E690E08A
:101170000E94760A80919A058823E1F70E947E08F2
:10118000813069F460E08BE590E00E94760A88EC9B
:101190008093970580919705882369F1FBCF109183
:1011A000150519831A8220E0AE014F5F5F4F60E0A2
:1011B0008AE00E94DA0A1F5F20E041E954E0612FD3
:1011C00080E00E94DA0A8AE0809397058091970573
:1011D0008823E1F780919A05813011F40E947E08FE
:1011E00080919A05823011F40E947E0880919A05C0
:1011F000843009F0BFCF2A960FB6F894DEBF0FBE39
:10120000CDBFDF91CF911F910895C4988FB9779B7F
:10121000FECF8EB18EB9C49A08951F93CF93DF93FA
:10122000E0E9F0E0119284E0E039F807D9F710EB3B
:10123000C398812F0E94050980E10E9405098091D1
:101240008F000E940509C39AC0E0D0E080E00E94B0
:1012500005092196C038D105C9F71F5F183B41F732
:101260001092950510929605DF91CF911F910895E8
:101270000E940D09089583E397E00197F1F708951F
:101280000F931F93CF93DF938C01C0E0D0E003C096
:101290000E943B092196C017D107D1F7DF91CF916A
:1012A0001F910F91089510929505109296058FEF5A
:1012B00087BB8EE58DB9C49AC2988AE090E00E94FF
:1012C0004009C29AC498C39880E40E94050980919D
:1012D0008F00882329F481EA0E94050980EC04C06C
:1012E00080EA0E94050988EC0E94050986EA0E94AE
:1012F000050982EA0E9405098FE20E94050988EF2C
:101300000E94050980E00E94050987E20E94050904
:1013100081E80E94050986E10E9405098CEA0E9485
:10132000050980E00E9405098FEA0E9405090E94D4
:101330000D090895FF920F931F938C01F62EC39809
:10134000880F892F881F990B919580550E94050958
:1013500080918F000F77080F802F82958F70805FAC
:101360000E940509802F8F700E940509C39A8F2D56
:101370000E9405091F910F91FF900895EF92FF922F
:101380000F931F93CF93DF93C0E0D0E000E910E00C
:1013900030E1E32E31E0F32EF70181917F01F80176
:1013A000808361918F01CE010E949A092196F3E01A
:1013B000C038DF0789F700E114E0F80111928F01CE
:1013C00060E0CE010E949A092196F4E0C030DF0768
:1013D000A1F7DF91CF911F910F91FF90EF900895AA
:1013E000CF92DF92EF92FF920F931F93CF93DF93F1
:1013F000D22E4F3D81F0403E38F4463DB1F04C3D99
:10140000B1F0443CA9F40FC0463F49F04C3F49F0CD
:10141000443E71F402C041EE0BC044E809C044E907
:1014200007C041E805C04EE803C049E901C04AE9E8
:10143000062F11271695102F00271795079526E0E0
:10144000829FC0011124080F191F1370429F700161
:1014500011248EE690E0E80EF91ECC24E801C05776
:10146000DF4FF7019491F2E0DF16A1F0FD1530F0A7
:10147000DD2059F081E0D816B1F409C0E3E0DE16B2
:1014800061F0F4E0DF1679F40AC098830CC088811B
:10149000892B08C08881892705C0888102C088817E
:1014A0009095892388836991C8010E949A09C39401
:1014B0000894E11CF11C0F5F1F4F86E0C81689F6E7
:1014C000DF91CF911F910F91FF90EF90DF90CF9020
:1014D0000895809196058F5F80939605883028F057
:1014E0000E94BE0987E08093960508951F93CF93CD
:1014F000DF93EC01162F20C04032A0F02196212F5F
:1015000060919605809195050E94F009809195055E
:101510008F5F80939505853178F0109295050E9434
:10152000690A0AC04A3029F04D3029F41092950515
:1015300002C00E94690A2196FE0144914423E1F60B
:10154000DF91CF911F910895809395056093960543
:10155000622FCA010E94760A08951F93CF93DF93EA
:10156000EC01162F20C04032A0F02196212F60916F
:101570009605809195050E94F009809195058F5FF1
:1015800080939505853178F0109295050E94690A3F
:101590000AC04A3029F04D3029F41092950502C056
:1015A0000E94690A219648814423E9F6DF91CF9190
:1015B0001F9108958093950560939605622FCA0147
:1015C0000E94AD0A0895982F87FD39C06034B8F5A0
:1015D000862F869586958695282F33273695322F28
:1015E000222737952795290F311D677081E090E0FC
:1015F00001C0880F6A95EAF7682F3370413061F0B7
:10160000413018F04230A1F40DC0F901E057FF4F0E
:101610008081609586230BC0F901E057FF4F8081E0
:10162000862B05C0F901E057FF4F80818627808314
:10163000F901E057FF4F6081C9010E949A0908959E
:101640002F923F924F925F926F927F928F929F92D2
:10165000AF92BF92CF92DF92EF92FF920F931F93C0
:10166000CF93DF93CDB7DEB728970FB6F894DEBFE0
:101670000FBECDBF8D83162F0E83682E7724862E46
:101680009924842F99279C838B8386199709E22FAD
:10169000FF27FA83E9839F012819390997FF04C0BE
:1016A000FFEF2F2E3F2E07C040E050E0009711F0D3
:1016B00041E050E01A0137FF04C0EFEF4E2E5E2EDE
:1016C00008C040E050E02115310511F041E050E044
:1016D0002A016C0197FF04C0D094C194D108D3941F
:1016E000790137FF04C0F094E194F108F3944E813E
:1016F000682D862D0E94E30AEC14FD047CF5C601DA
:1017000062E070E00E94141644275527461B570BD1
:1017100058874F83A22CB62CB20C5D81052F112760
:1017200017C08F8198858E0D9F1D98878F831816FF
:10173000190634F4840C951C8C199D0998878F83A5
:101740004E81682D8B2D0E94E30A020D131DBA0CE9
:10175000EB81FC810E171F0721F72DC0C70162E046
:1017600070E00E94141644275527461B570B5887D4
:101770004F83A42CB82CB40C012F112717C08F81D4
:1017800098858C0D9D1D98878F831816190634F443
:10179000620C731C8E199F0998878F834E816B2D65
:1017A000862D0E94E30A040D151DBA0CE981FA8109
:1017B0000E171F0721F728960FB6F894DEBF0FBE4D
:1017C000CDBFDF91CF911F910F91FF90EF90DF90F0
:1017D000CF90BF90AF909F908F907F906F905F90D1
:1017E0004F903F902F900895BF92CF92DF92EF924B
:1017F000FF920F931F93CF93DF93182FB02E87FD87
:101800001FE7603408F06FE37727CB01820F911D4B
:101810009C01812F840F912D911D6C0191E8C916B7
:10182000D10418F0B0E8CB2ED12C79012134310548
:1018300018F0A0E4EA2EF12CEB0108C00B2D2C2FA0
:101840004C2D6C2F812F0E94200B2196EC16FD064B
:10185000A8F7DF91CF911F910F91FF90EF90DF904C
:10186000CF90BF900895CF92DF92EF92FF920F93A7
:101870001F93CF93DF93D82EC02E87FF02C08FE730
:10188000D82E162F603408F01FE3812F820F912D80
:10189000911DEC018D2D840F912D911D7C0191E8FE
:1018A000E916F10418F000E8E02EF12C0C2D212FA0
:1018B0004E2D612F8D2D0E94200BC134D10510F0CB
:1018C000C0E4D0E00C2D2C2F4E2D612F8E2D0E94C8
:1018D000200B2C2F4D2D6C2F8E2D0E94200B212F95
:1018E0004D2D6C2F8D2D0E94200BDF91CF911F91DC
:1018F0000F91FF90EF90DF90CF9008952F923F923D
:101900004F925F926F927F928F929F92AF92BF920F
:10191000CF92DF92EF92FF920F931F93CF93DF93BB
:10192000CDB7DEB724970FB6F894DEBF0FBECDBF9C
:101930008C016B017A01A22E21E030E0241B350BD3
:101940003C832B83CA01880F991F66247724681A69
:10195000790A462E502E640F4A2D802F0E94E30AEA
:101960006C2D6E194A2D802F0E94E30A4A2D6C2D92
:10197000802F8E0D0E94E30A4A2D6C2D802F8E1928
:101980000E94E30A4701222433241A82198258C094
:101990008B819C8197FD0BC0089481089108E2E03F
:1019A000F0E06E0E7F1E860D971D9C838B8308943E
:1019B000211C311C29813A812E5F3F4F3A832983B4
:1019C0008B819C810196820F931F9C838B83142DA6
:1019D000180DD52CD20C4A2D612F8D2D0E94E30AB3
:1019E000E52CE2184A2D612F8E2D0E94E30A142D5A
:1019F00018194A2D612F8D2D0E94E30A4A2D612F5F
:101A00008E2D0E94E30A142D120DE52CE80C4A2DB0
:101A1000612F8E2D0E94E30A952D9819092F4A2DCA
:101A2000612F892F0E94E30A142D12194A2D612F6C
:101A30008E2D0E94E30A4A2D612F802F0E94E30A17
:101A4000281439040CF4A4CF24960FB6F894DEBF02
:101A50000FBECDBFDF91CF911F910F91FF90EF90FF
:101A6000DF90CF90BF90AF909F908F907F906F90BE
:101A70005F904F903F902F9008952F923F924F92FA
:101A80005F926F927F928F929F92AF92BF92CF920E
:101A9000DF92EF92FF920F931F93CF93DF936B012F
:101AA0007A0151E0A52EB12CAE18BF089701220F84
:101AB000331F88249924821A930A662E782E262FA3
:101AC0002E196E0D01E0482F0E94200B472D4E1954
:101AD0002C2D6C2D872D8E0D0E94200BE7014424A8
:101AE0005524222433243AC0B7FC07C0219782E052
:101AF00090E0880E991EA80CB91C0894411C511C3A
:101B000082E090E0280E391E0894A11CB11CA20CA2
:101B1000B31C1C2F662D6C0FE72CE418D72CD40CAB
:101B200001E0262F4E2D8D2D0E94200B662D6C1B63
:101B3000262F4E2D8D2D0E94200B662D640DE72C37
:101B4000EC1A170D262F4E2D812F0E94200B662D8B
:101B50006419262F4E2D812F0E94200B4C165D06F6
:101B60001CF2DF91CF911F910F91FF90EF90DF90CA
:101B7000CF90BF90AF909F908F907F906F905F902D
:101B80004F903F902F900895A2E0B0E00E9427165A
:101B9000802D992780938F00089581E021E030E027
:101BA000D901082E0E942F1680E02F5F3F4FD901E8
:101BB000082E0E942F1608958FEF8BBB83E488BBFD
:101BC0008CEF85BB8CE782BB83E084BB80E881BB64
:101BD00021E030E0D9010E942716802D813071F07C
:101BE00081E0D901082E0E942F1680E02F5F3F4F21
:101BF000D901082E0E942F16215030402F5F3F4FF1
:101C0000D9010E942716802D992780938F000E946A
:101C100053090E9492120E94091378940E94650E43
:101C2000FDCF0F931F93062F142F20E049ED56E0B0
:101C3000682F812F0E94A40A20E047ED56E0602F14
:101C4000812F0E94A40A1F910F910895EF92FF9295
:101C50000F931F93082FE62EF42E682F0E94110E6B
:101C6000102F912F80919A058823E1F780919A0592
:101C70008823E1F380919A05823019F41E1508F447
:101C80001F5F80919A05813019F4011708F41150F3
:101C90004F2D612F892F0E94110E80919A05883057
:101CA00021F080919A058430E1F680919A05843084
:101CB00009F41FEF80919A058823E1F7812F992776
:101CC0001F910F91FF90EF9008950E94380960E0F6
:101CD00080EC96E00E94760A60E084EB96E00E9439
:101CE000760A60E088EA96E00E94760A60E08CE975
:101CF00096E00E94760A60E08EE896E00E94760AFE
:101D000060E083E896E00E94760A60E08EE696E066
:101D10000E94760A4CE066E082E00E94260E843043
:101D200091F0853028F4823041F08330A1F408C06E
:101D3000853061F0863079F40CC00E94A8080895BF
:101D40000E94BD1108950E94AC0E08950E94D41403
:101D500008950E94271308950E94380980919A05DA
:101D60008823E1F760E08BED96E00E94760A80918F
:101D70009A058823E1F380919A058830C9F483E2BB
:101D80008093910481E68093920484E78093930486
:101D90008AE08093940480939504809396048093C2
:101DA0009704109298041092990489E00E940F07FA
:101DB00080919A058823E1F780919A058823E1F3C1
:101DC00083E28093910481E68093920484E7809378
:101DD0009304109294041092950410929604109219
:101DE0009704109298041092990489E00E940F07BA
:101DF0000895FB0120E030E0482F552761E0CA013B
:101E0000022E02C0959587950A94E2F780FF02C0E2
:101E1000608301C010822F5F3F4F3196283031051B
:101E200071F7089540E020E030E061E070E0FC01EF
:101E30008191813041F4CB01022E02C0880F991F9D
:101E40000A94E2F7480F2F5F3F4F2830310581F7A2
:101E5000842F99270895482FFB0164E60E94F4150A
:101E6000808324E6829FC0011124481B842F6AE0EE
:101E70000E94F4152AE0829F90011124421B405DCC
:101E800042839081905D9083805D8183903329F4BB
:101E900090E29083803309F4918313820895CF9266
:101EA000DF92EF92FF920F931F93CF93DF93CDB703
:101EB000DEB762970FB6F894DEBF0FBECDBF82309B
:101EC00008F455C0615044E080E00E94260EC82E00
:101ED0008FEFC81609F421C1EC2CFF24F701E25260
:101EE000FA4FE081FF27EF56FB4FD08020E04AE217
:101EF0005DE06C2D84E00E94A40A80919A058823FD
:101F0000E1F780919A05813009F4DA9480919A057D
:101F1000823009F4D3948E01075F1F4FB8018D2DD5
:101F20000E942B0F20E0A8016C2D80E00E94DA0AAD
:101F300084E180939705809197058823E1F780914C
:101F40009A05843021F080919A058830D1F68091ED
:101F50009A05883009F0E1C0AEEDB5E0EA0EFB1E4F
:101F6000D701EC91FF27EF56FB4FD082D6C08130CE
:101F700009F069C08E010F5F1F4FB8018091C50441
:101F80000E94F90E1A8644E063E080E00E94260E6B
:101F9000D82EBFEF8B1709F4C0C0E82EFF240E0D1A
:101FA0001F1DF801008120E048E25DE0682F84E019
:101FB0000E94A40A80919A05813009F400E0809182
:101FC0009A05823009F401E0005D0987005320E0A2
:101FD000AE01475F5F4F6D2D80E00E94DA0A84E119
:101FE00080939705809197058823E1F780919A0562
:101FF000883021F080919A058430E1F680919A052D
:10200000883051F4CE010196E80EF91ED7010C93E9
:102010000E94120F8093C5040E9438098E01075F49
:102020001F4FB8018091C5040E942B0F60E0C801CA
:102030000E94AD0A88EC80939705809197058823CC
:1020400009F46BC0FACF882309F067C08E010F5FD7
:102050001F4FB801809199040E94F90E1A8644E03E
:1020600067E080E00E94260ED82EBFEF8B1709F4A0
:1020700054C0E82EFF240E0D1F1DF801008120E042
:1020800046E25DE0682F84E00E94A40A80919A05F0
:10209000813009F400E080919A05823009F401E072
:1020A000005D0987005320E0AE01475F5F4F6D2D53
:1020B00080E00E94DA0A84E1809397058091970579
:1020C0008823E1F780919A05883021F080919A0564
:1020D0008430E1F680919A05883051F4CE01019662
:1020E000E80EF91ED7010C930E94120F80939904F9
:1020F0000E9438098E01075F1F4FB8018091990433
:102100000E942B0F60E0C8010E94AD0A88EC80930A
:102110009705809197058823E1F762960FB6F894AA
:10212000DEBF0FBECDBFDF91CF911F910F91FF900A
:10213000EF90DF90CF9008956F927F928F929F9251
:10214000AF92BF92CF92DF92EF92FF920F931F93C5
:10215000CF93DF93CDB7DEB7A1970FB6F894DEBF6C
:102160000FBECDBFE82E81E08E1508F044C044EBD1
:10217000A42E47E0B42E39E3632E39E0732EFF24FA
:10218000CC24DD2421E9822E24E0922EF5018491D5
:102190008E15E9F4EF2DFF27E252FA4FC0828E012F
:1021A000075F1F4FB801F40180810E942B0F20E0D0
:1021B000A8016F2D80E00E94DA0A20E0A3016F2DB4
:1021C00085E00E94A40AF7E0FF1508F0F394089454
:1021D000C11CD11C83E090E0A80EB91E0894811C9C
:1021E000911CE0E1F0E06E0E7F1EF2E4CF16D10408
:1021F00009F463C0CBCF81E0E81679F58E010F5F5B
:102200001F4FB8018091C5040E94F90E1A8699E704
:10221000A92E98E0B92E6801CE0101961C2D181B3D
:10222000F60181916F01805D898720E0AE01475FF3
:102230005F4F612F80E00E94DA0A20E0A501612F44
:1022400085E00E94A40A80E190E0A80EB91ECE01AC
:102250000596C816D90681F1DFCFEE2069F58E010B
:102260000F5F1F4FB801809199040E94F90E1A86E2
:10227000680189EBA82E88E0B82ECE010196FC2CCF
:10228000F81AF60181916F01805D89878E01075FE1
:102290001F4F20E0A8016F2D80E00E94DA0A20E0A5
:1022A000A5016F2D85E00E94A40A80E190E0A80EB0
:1022B000B91EC016D10609F7FF248F2D9927A196C4
:1022C0000FB6F894DEBF0FBECDBFDF91CF911F9147
:1022D0000F91FF90EF90DF90CF90BF90AF909F90C5
:1022E0008F907F906F900895982F8630D8F426E4D1
:1022F00030E0E7EDF4E08081838321503040319776
:102300008FEF2F3F3807B9F783E28093910481E67E
:10231000809392049559909393041092DB048BE47C
:102320000E940F0708951F9393E29093910491E602
:102330009093920491E79093930480939404109265
:1023400095041092960486E00E940F0710E00E9408
:102350008A07813009F41EE11F5F809115058C54B6
:10236000853018F01E3198F304C080E090E01E31F3
:1023700010F081E090E01F910895FF920F931F935A
:10238000CF93DF93CDB7DEB72F970FB6F894DEBFAC
:102390000FBECDBF0E94380960E085E19DE00E943C
:1023A000760A60E08FE09DE00E94760A60E089E0B6
:1023B0009DE00E94760A60E083E09DE00E94760A3C
:1023C00060E08DEF9CE00E94760A60E087EF9CE081
:1023D0000E94760A40E065E081E00E94260E0E949D
:1023E0009311813041F420E04FEE5CE066E080E044
:1023F0000E94A40A62C062E0F62E0E9438098E0193
:102400000F5F1F4F4AE050E0B8018F2D99270E94BF
:10241000CE1560E0C8010E94AD0A82E38093970563
:10242000809197058823E1F70E9438098F2D0E943B
:102430009C10682F80919A058823E1F380919A057A
:10244000823009F4F39480919A05813009F4FA946A
:102450008FEFF81619F45CE0F52E04C08CE08F15B0
:1024600008F4FF2480919A05883019F48F2D0E947A
:102470004F0F80919A05843009F0BFCF0E94380930
:1024800060E08CEC9CE00E94760A40E062E081E033
:102490000E94260E813061F460E085EC9CE00E9491
:1024A000760A85E00E94741160E08DEA9CE003C02A
:1024B00060E089E99CE00E94760A84E680939705B3
:1024C000809197058823E1F72F960FB6F894DEBF29
:1024D0000FBECDBFDF91CF911F910F91FF90089557
:1024E0001F920F920FB60F9211248F939F93EF9329
:1024F000FF938091E6059CB1E8EEF5E0E80FF11D51
:1025000090838F5F8093E6058091E6058F708093BE
:10251000E605FF91EF919F918F910F900FBE0F9065
:102520001F90189588E98AB987E089B908958AE0EB
:10253000809399059091E7058091E605981721F41D
:10254000809199058823B1F780919905882311F42A
:10255000E0E00FC08091E705E82FFF27E851FA4F30
:10256000E0818F5F8093E7058091E7058F7080930E
:10257000E7058E2F992708955D9BFECF8CB90895AE
:10258000FC0104C05D9BFECF8CB93196808188230D
:10259000C9F708951F920F920FB60F9211248F93CF
:1025A0009F9380919805882331F080919805815000
:1025B0008093980515C08AE08093980589B3992780
:1025C00080959095689413F8959587951694E1F702
:1025D0008F7080939A0580919B058F5F80939B05F8
:1025E00080919705882329F08091970581508093E9
:1025F000970580919905882329F08091990581504C
:10260000809399059F918F910F900FBE0F901F900F
:1026100018958DE083BF88E48CBF89B7826089BF3D
:102620000895F89480918F00882321F484E08093AA
:102630008F0002C010928F0080918F00A2E0B0E066
:10264000082E0E942F160E945309789408950F9324
:102650001F9311E00E94380960E088E59DE00E9428
:10266000760A60E085E59DE00E94760A60E086E4F7
:102670009DE00E94760A60E08EE39DE00E94760A6B
:1026800060E083E39DE00E94760A60E08CE29DE0DA
:102690000E94760A4FE065E082E00E94260E8330B9
:1026A00049F08430C9F0823011F010E026C00E9459
:1026B000111323C00E94380901E022E344E664E1DB
:1026C0008AE00E94200B80919A058830B1F08091B9
:1026D0009A05843091F0F7CF0E94380901E028E292
:1026E00044E664E18AE00E94330C80919A058830C8
:1026F00021F080919A058430C1F7112309F0AACF07
:102700001F910F910895CF93DF93EC0152E070E099
:1027100026C0E52FFF27EC5EFA4F21812D53328131
:102720003D5343814D535C5FDE01A80FB91F80818B
:102730008D53880F880F922F92959F70892B8C93C1
:102740002295207F832F86958695282BFD01218356
:102750003295330F330F307C342B32837D5F872FDC
:1027600099275617B0F2DF91CF9108954F925F925B
:102770006F927F928F929F92AF92BF92CF92DF9291
:10278000EF92FF920F931F93CF93DF93FC01EB0126
:1027900080E2888340E8E130F40718F46624772467
:1027A00008C0F095E195FF4F8DE2888351E0652EDA
:1027B000712C2E010894411C511CCF0160E177E27D
:1027C0000E9400168B01262F332780E197E2BC017F
:1027D000269FC001279F900D369F900D11249F01C9
:1027E000281B390B42E0C42ED12CCC0EDD1EC901B2
:1027F00068EE73E00E9400167B01462F552788EE95
:1028000093E0FC014E9FC0014F9F900D5E9F900D85
:102810001124281B390B93E0A92EB12CAC0EBD1E40
:10282000C90164E670E00E940016FB0184E6689F1F
:10283000C0011124281B390B84E0882E912C8C0EAA
:102840009D1EC9016AE070E00E9400168AE0689F40
:10285000C0011124281B390B205D2D83005D0983E5
:10286000F0E3EF0EEA82E05DEB83605D6C830033A2
:1028700091F580E2888341E06416710409F48DE2E9
:102880008983F6018081803331F580E2F201808313
:10289000F1E06F16710409F48DE2F6018083F50111
:1028A00080818033C1F480E2F6018083F1E06F160D
:1028B000710409F48DE2F5018083F4018081803395
:1028C00051F480E2F5018083F1E06F16710409F4A0
:1028D0008DE2F40180831E82DF91CF911F910F91D1
:1028E000FF90EF90DF90CF90BF90AF909F908F9030
:1028F0007F906F905F904F9008951F9384E1809335
:1029000097050E949712833221F0809197058823C2
:10291000C1F780919705882319F481E090E019C0F0
:102920000E9497128093140511E00AC00E9497122A
:10293000E12FFF27EC5EFA4F80831F5F17FD1FE733
:102940008D30A1F7612F8CE995E00E94831380E020
:1029500090E01F9108951F9393E29093910491E664
:102960009093920493E6909393048093940410922E
:1029700095041092960486E00E940F0710E00E94D2
:102980007D14813009F41EE11F5F809115058434A8
:1029900019F01E31A0F304C080E090E01E3110F069
:1029A00081E090E01F9108950F931F93CF93DF93E1
:1029B000CDB7DEB72A970FB6F894DEBF0FBECDBFF6
:1029C0000E94380960E084E79DE00E94760A8091C9
:1029D0009A058823E1F70E94AB14813071F460E01E
:1029E00089E69DE00E94760A88EC809397058091A5
:1029F0009705882309F4A6C0FACF809193048983B0
:102A00001A8220E08E010F5F1F4FA80160E08FE067
:102A10000E94DA0AB80180919E0590919F050E945C
:102A2000B61320E040E650E061E080E00E94DA0A60
:102A300020E0A80161E08AE00E94DA0AB8018091F2
:102A4000A0059091A1050E94B61320E045E650E054
:102A500062E080E00E94DA0A20E0A80162E08AE0F9
:102A60000E94DA0AB8018091A2059091A3050E9404
:102A7000B61320E04AE650E063E080E00E94DA0A04
:102A800020E0A80163E08AE00E94DA0AB8018091A0
:102A9000A4059091A5050E94B61320E043E750E0FD
:102AA00064E080E00E94DA0A20E0A80164E08AE0A5
:102AB0000E94DA0AB8018091A6059091A7050E94AC
:102AC000B61320E04CE750E065E080E00E94DA0AAF
:102AD00020E0A80165E08AE00E94DA0AB80180914E
:102AE000A8059091A9050E94B61320E041E850E0A6
:102AF00066E080E00E94DA0A20E0A80166E08AE051
:102B00000E94DA0AB8018091B0059091B1050E9447
:102B1000B61320E045E850E067E080E00E94DA0A62
:102B200020E0A80167E08AE00E94DA0A8AE0809348
:102B30009705809197058823E1F780919A05843065
:102B400009F045CF2A960FB6F894DEBF0FBECDBF71
:102B5000DF91CF911F910F910895FB019F01E894A0
:102B60004230C4F04532B4F44A3029F497FB1EF4E5
:102B7000909581959F4F642F77270E940016805D66
:102B80008A330CF0895D8193CB010097A1F716F48D
:102B90005DE251931082C9010C94E415FB019F0181
:102BA000423074F0453264F4642F77270E94001697
:102BB000805D8A330CF0895D8193CB010097A1F78A
:102BC0001082C9010C94E415DC01FC01672F71919E
:102BD0007723E1F7329704C07C916D937083629103
:102BE000AE17BF07C8F30895991B79E004C0991F79
:102BF000961708F0961B881F7A95C9F78095089557
:102C0000AA1BBB1B51E107C0AA1FBB1FA617B70712
:102C100010F0A61BB70B881F991F5A95A9F780952E
:102C20009095BC01CD01089597FB092E07260AD087
:102C300077FD04D0E5DF06D000201AF47095619589
:102C40007F4F0895F6F7909581959F4F0895E199EC
:102C5000FECFBFBBAEBBE09A11960DB20895E199CD
:102C6000FECFBFBBAEBB0DBA11960FB6F894E29A79
:082C7000E19A0FBE0895FFCFA9
:102C78004E69636B00526F6C6C00414343204E6990
:102C8800636B0041434320526F6C6C004769657267
:0E2C980000414343005370616E6E756E67001D
:00000001FF
/Transportables_Koptertool/trunk/V-0.1/default/Makefile
0,0 → 1,110
###############################################################################
# Makefile for the project MMT
###############################################################################
 
## General Flags
PROJECT = MMT
MCU = atmega32
TARGET = MMT.elf
CC = avr-gcc.exe
 
## Options common to compile, link and assembly rules
COMMON = -mmcu=$(MCU)
 
## Compile options common for all C compilation units.
CFLAGS = $(COMMON)
CFLAGS += -Wall -gdwarf-2 -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d
 
## Assembly specific flags
ASMFLAGS = $(COMMON)
ASMFLAGS += $(CFLAGS)
ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2
 
## Linker flags
LDFLAGS = $(COMMON)
LDFLAGS +=
 
 
## Intel Hex file production flags
HEX_FLASH_FLAGS = -R .eeprom
 
HEX_EEPROM_FLAGS = -j .eeprom
HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"
HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings
 
 
## Objects that must be built in order to link
OBJECTS = base64.o displ_val.o display.o F8X6.o lcd.o main.o menu.o motortest.o parameter.o rs232.o timer.o settings.o debug.o
 
## Objects explicitly added by the user
LINKONLYOBJECTS =
 
## Build
all: $(TARGET) MMT.hex MMT.eep size
 
## Compile
base64.o: ../base64.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
 
displ_val.o: ../displ_val.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
 
display.o: ../display.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
 
F8X6.o: ../F8X6.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
 
lcd.o: ../lcd.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
 
main.o: ../main.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
 
menu.o: ../menu.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
 
motortest.o: ../motortest.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
 
parameter.o: ../parameter.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
 
rs232.o: ../rs232.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
 
timer.o: ../timer.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
 
settings.o: ../settings.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
 
debug.o: ../debug.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
 
##Link
$(TARGET): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET)
 
%.hex: $(TARGET)
avr-objcopy -O ihex $(HEX_FLASH_FLAGS) $< $@
 
%.eep: $(TARGET)
-avr-objcopy $(HEX_EEPROM_FLAGS) -O ihex $< $@ || exit 0
 
%.lss: $(TARGET)
avr-objdump -h -S $< > $@
 
size: ${TARGET}
@echo
@avr-size -C --mcu=${MCU} ${TARGET}
 
## Clean target
.PHONY: clean
clean:
-rm -rf $(OBJECTS) MMT.elf dep/* MMT.hex MMT.eep
 
## Other dependencies
-include $(shell mkdir dep 2>/dev/null) $(wildcard dep/*)
 
/Transportables_Koptertool/trunk/V-0.1/F8X6.c
0,0 → 1,290
/*******************************************************************************
;
; taskit Rechnertechnik Berlin GmbH
; Kaiser-Friedrich-Straáe 51
; 1000 Berlin 12
; Tel. 030-3245836
; FAX 030-3232649
;
;
; Projekt :
;
; Datei :
;
; Funktion :
;
; Version :
;
; Letzte Änderung : 06/28/95 - 15:04:59
;
; Info :
;
*******************************************************************************/
#include <avr/pgmspace.h>
 
//Die Bytes gehören zu jeweils einer Spalte des Buchstabens
//D7 ist dabei das unterste Bit. Es handelt sich um einen DOS-Font !
//DOS-Zeichensatz
 
prog_uchar f8x6[ 256 ][ 6 ] =
{
{ 0x00,0x00,0x00,0x00,0x00,0x00 }, // ASCII - 0
{ 0x3E,0x5B,0x4F,0x5B,0x3E,0x00 }, // ASCII - 1
{ 0x3E,0x6B,0x4F,0x6B,0x3E,0x00 }, // ASCII - 2
{ 0x1C,0x3E,0x7C,0x3E,0x1C,0x00 }, // ASCII - 3
{ 0x18,0x3C,0x7E,0x3C,0x18,0x00 }, // ASCII - 4
{ 0x1C,0x57,0x7D,0x57,0x1C,0x00 }, // ASCII - 5
{ 0x1C,0x5E,0x7F,0x5E,0x1C,0x00 }, // ASCII - 6
{ 0x00,0x18,0x3C,0x18,0x00,0x00 }, // ASCII - 7
{ 0xFF,0xE7,0xC3,0xE7,0xFF,0x00 }, // ASCII - 8
{ 0x00,0x18,0x24,0x18,0x00,0x00 }, // ASCII - 9
{ 0xFF,0xE7,0xDB,0xE7,0xFF,0x00 }, // ASCII - 10
{ 0x30,0x48,0x3A,0x06,0x0E,0x00 }, // ASCII - 11
{ 0x26,0x29,0x79,0x29,0x26,0x00 }, // ASCII - 12
{ 0x40,0x7F,0x05,0x05,0x07,0x00 }, // ASCII - 13
{ 0x40,0x7F,0x05,0x25,0x3F,0x00 }, // ASCII - 14
{ 0x5A,0x3C,0xE7,0x3C,0x5A,0x00 }, // ASCII - 15
{ 0x7F,0x3E,0x1C,0x1C,0x08,0x00 }, // ASCII - 16
{ 0x08,0x1C,0x1C,0x3E,0x7F,0x00 }, // ASCII - 17
{ 0x14,0x22,0x7F,0x22,0x14,0x00 }, // ASCII - 18
{ 0x5F,0x5F,0x00,0x5F,0x5F,0x00 }, // ASCII - 19
{ 0x06,0x09,0x7F,0x01,0x7F,0x00 }, // ASCII - 20
{ 0x00,0x66,0x89,0x95,0x6A,0x00 }, // ASCII - 21
{ 0x60,0x60,0x60,0x60,0x60,0x60 }, // ASCII - 22
{ 0x94,0xA2,0xFF,0xA2,0x94,0x00 }, // ASCII - 23
{ 0x08,0x04,0x7E,0x04,0x08,0x00 }, // ASCII - 24
{ 0x10,0x20,0x7E,0x20,0x10,0x00 }, // ASCII - 25
{ 0x08,0x08,0x2A,0x1C,0x08,0x00 }, // ASCII - 26
{ 0x08,0x1C,0x2A,0x08,0x08,0x00 }, // ASCII - 27
{ 0x1E,0x10,0x10,0x10,0x10,0x00 }, // ASCII - 28
{ 0x0C,0x1E,0x0C,0x1E,0x0C,0x00 }, // ASCII - 29
{ 0x30,0x38,0x3E,0x38,0x30,0x00 }, // ASCII - 30
{ 0x06,0x0E,0x3E,0x0E,0x06,0x00 }, // ASCII - 31
{ 0x00,0x00,0x00,0x00,0x00,0x00 }, // ASCII - 32
{ 0x00,0x00,0x5F,0x00,0x00,0x00 }, // ASCII - 33
{ 0x00,0x07,0x00,0x07,0x00,0x00 }, // ASCII - 34
{ 0x14,0x7F,0x14,0x7F,0x14,0x00 }, // ASCII - 35
{ 0x24,0x2A,0x7F,0x2A,0x12,0x00 }, // ASCII - 36
{ 0x23,0x13,0x08,0x64,0x62,0x00 }, // ASCII - 37
{ 0x36,0x49,0x56,0x20,0x50,0x00 }, // ASCII - 38
{ 0x00,0x08,0x07,0x03,0x00,0x00 }, // ASCII - 39
{ 0x00,0x1C,0x22,0x41,0x00,0x00 }, // ASCII - 40
{ 0x00,0x41,0x22,0x1C,0x00,0x00 }, // ASCII - 41
{ 0x2A,0x1C,0x7F,0x1C,0x2A,0x00 }, // ASCII - 42
{ 0x08,0x08,0x3E,0x08,0x08,0x00 }, // ASCII - 43
{ 0x00,0x80,0x70,0x30,0x00,0x00 }, // ASCII - 44
{ 0x08,0x08,0x08,0x08,0x08,0x00 }, // ASCII - 45
{ 0x00,0x00,0x60,0x60,0x00,0x00 }, // ASCII - 46
{ 0x20,0x10,0x08,0x04,0x02,0x00 }, // ASCII - 47
{ 0x3E,0x51,0x49,0x45,0x3E,0x00 }, // ASCII - 48
{ 0x00,0x42,0x7F,0x40,0x00,0x00 }, // ASCII - 49
{ 0x72,0x49,0x49,0x49,0x46,0x00 }, // ASCII - 50
{ 0x21,0x41,0x49,0x4D,0x33,0x00 }, // ASCII - 51
{ 0x18,0x14,0x12,0x7F,0x10,0x00 }, // ASCII - 52
{ 0x27,0x45,0x45,0x45,0x39,0x00 }, // ASCII - 53
{ 0x3C,0x4A,0x49,0x49,0x31,0x00 }, // ASCII - 54
{ 0x41,0x21,0x11,0x09,0x07,0x00 }, // ASCII - 55
{ 0x36,0x49,0x49,0x49,0x36,0x00 }, // ASCII - 56
{ 0x46,0x49,0x49,0x29,0x1E,0x00 }, // ASCII - 57
{ 0x00,0x00,0x14,0x00,0x00,0x00 }, // ASCII - 58
{ 0x00,0x40,0x34,0x00,0x00,0x00 }, // ASCII - 59
{ 0x00,0x08,0x14,0x22,0x41,0x00 }, // ASCII - 60
{ 0x14,0x14,0x14,0x14,0x14,0x00 }, // ASCII - 61
{ 0x00,0x41,0x22,0x14,0x08,0x00 }, // ASCII - 62
{ 0x02,0x01,0x59,0x09,0x06,0x00 }, // ASCII - 63
{ 0x3E,0x41,0x5D,0x59,0x4E,0x00 }, // ASCII - 64
{ 0x7C,0x12,0x11,0x12,0x7C,0x00 }, // ASCII - 65
{ 0x7F,0x49,0x49,0x49,0x36,0x00 }, // ASCII - 66
{ 0x3E,0x41,0x41,0x41,0x22,0x00 }, // ASCII - 67
{ 0x7F,0x41,0x41,0x41,0x3E,0x00 }, // ASCII - 68
{ 0x7F,0x49,0x49,0x49,0x41,0x00 }, // ASCII - 69
{ 0x7F,0x09,0x09,0x09,0x01,0x00 }, // ASCII - 70
{ 0x3E,0x41,0x41,0x51,0x73,0x00 }, // ASCII - 71
{ 0x7F,0x08,0x08,0x08,0x7F,0x00 }, // ASCII - 72
{ 0x00,0x41,0x7F,0x41,0x00,0x00 }, // ASCII - 73
{ 0x20,0x40,0x41,0x3F,0x01,0x00 }, // ASCII - 74
{ 0x7F,0x08,0x14,0x22,0x41,0x00 }, // ASCII - 75
{ 0x7F,0x40,0x40,0x40,0x40,0x00 }, // ASCII - 76
{ 0x7F,0x02,0x1C,0x02,0x7F,0x00 }, // ASCII - 77
{ 0x7F,0x04,0x08,0x10,0x7F,0x00 }, // ASCII - 78
{ 0x3E,0x41,0x41,0x41,0x3E,0x00 }, // ASCII - 79
{ 0x7F,0x09,0x09,0x09,0x06,0x00 }, // ASCII - 80
{ 0x3E,0x41,0x51,0x21,0x5E,0x00 }, // ASCII - 81
{ 0x7F,0x09,0x19,0x29,0x46,0x00 }, // ASCII - 82
{ 0x26,0x49,0x49,0x49,0x32,0x00 }, // ASCII - 83
{ 0x03,0x01,0x7F,0x01,0x03,0x00 }, // ASCII - 84
{ 0x3F,0x40,0x40,0x40,0x3F,0x00 }, // ASCII - 85
{ 0x1F,0x20,0x40,0x20,0x1F,0x00 }, // ASCII - 86
{ 0x3F,0x40,0x38,0x40,0x3F,0x00 }, // ASCII - 87
{ 0x63,0x14,0x08,0x14,0x63,0x00 }, // ASCII - 88
{ 0x03,0x04,0x78,0x04,0x03,0x00 }, // ASCII - 89
{ 0x61,0x59,0x49,0x4D,0x43,0x00 }, // ASCII - 90
{ 0x00,0x7F,0x41,0x41,0x41,0x00 }, // ASCII - 91
{ 0x02,0x04,0x08,0x10,0x20,0x00 }, // ASCII - 92
{ 0x00,0x41,0x41,0x41,0x7F,0x00 }, // ASCII - 93
{ 0x04,0x02,0x01,0x02,0x04,0x00 }, // ASCII - 94
{ 0x40,0x40,0x40,0x40,0x40,0x00 }, // ASCII - 95
{ 0x00,0x03,0x07,0x08,0x00,0x00 }, // ASCII - 96
{ 0x20,0x54,0x54,0x78,0x40,0x00 }, // ASCII - 97
{ 0x7F,0x28,0x44,0x44,0x38,0x00 }, // ASCII - 98
{ 0x38,0x44,0x44,0x44,0x28,0x00 }, // ASCII - 99
{ 0x38,0x44,0x44,0x28,0x7F,0x00 }, // ASCII - 100
{ 0x38,0x54,0x54,0x54,0x18,0x00 }, // ASCII - 101
{ 0x00,0x08,0x7E,0x09,0x02,0x00 }, // ASCII - 102
{ 0x18,0xA4,0xA4,0x9C,0x78,0x00 }, // ASCII - 103
{ 0x7F,0x08,0x04,0x04,0x78,0x00 }, // ASCII - 104
{ 0x00,0x44,0x7D,0x40,0x00,0x00 }, // ASCII - 105
{ 0x20,0x40,0x40,0x3D,0x00,0x00 }, // ASCII - 106
{ 0x7F,0x10,0x28,0x44,0x00,0x00 }, // ASCII - 107
{ 0x00,0x41,0x7F,0x40,0x00,0x00 }, // ASCII - 108
{ 0x7C,0x04,0x78,0x04,0x78,0x00 }, // ASCII - 109
{ 0x7C,0x08,0x04,0x04,0x78,0x00 }, // ASCII - 110
{ 0x38,0x44,0x44,0x44,0x38,0x00 }, // ASCII - 111
{ 0xFC,0x18,0x24,0x24,0x18,0x00 }, // ASCII - 112
{ 0x18,0x24,0x24,0x18,0xFC,0x00 }, // ASCII - 113
{ 0x7C,0x08,0x04,0x04,0x08,0x00 }, // ASCII - 114
{ 0x48,0x54,0x54,0x54,0x24,0x00 }, // ASCII - 115
{ 0x04,0x04,0x3F,0x44,0x24,0x00 }, // ASCII - 116
{ 0x3C,0x40,0x40,0x20,0x7C,0x00 }, // ASCII - 117
{ 0x1C,0x20,0x40,0x20,0x1C,0x00 }, // ASCII - 118
{ 0x3C,0x40,0x30,0x40,0x3C,0x00 }, // ASCII - 119
{ 0x44,0x28,0x10,0x28,0x44,0x00 }, // ASCII - 120
{ 0x4C,0x90,0x90,0x90,0x7C,0x00 }, // ASCII - 121
{ 0x44,0x64,0x54,0x4C,0x44,0x00 }, // ASCII - 122
{ 0x00,0x08,0x36,0x41,0x00,0x00 }, // ASCII - 123
{ 0x00,0x00,0x77,0x00,0x00,0x00 }, // ASCII - 124
{ 0x00,0x41,0x36,0x08,0x00,0x00 }, // ASCII - 125
{ 0x02,0x01,0x02,0x04,0x02,0x00 }, // ASCII - 126
{ 0x3C,0x26,0x23,0x26,0x3C,0x00 }, // ASCII - 127
{ 0x1E,0xA1,0xA1,0x61,0x12,0x00 }, // ASCII - 128 80
{ 0x3A,0x40,0x40,0x20,0x7A,0x00 }, // ASCII - 129
{ 0x38,0x54,0x54,0x55,0x59,0x00 }, // ASCII - 130
{ 0x21,0x55,0x55,0x79,0x41,0x00 }, // ASCII - 131
{ 0x21,0x54,0x54,0x78,0x41,0x00 }, // ASCII - 132
{ 0x21,0x55,0x54,0x78,0x40,0x00 }, // ASCII - 133
{ 0x20,0x54,0x55,0x79,0x40,0x00 }, // ASCII - 134
{ 0x0C,0x1E,0x52,0x72,0x12,0x00 }, // ASCII - 135
{ 0x39,0x55,0x55,0x55,0x59,0x00 }, // ASCII - 136
{ 0x39,0x54,0x54,0x54,0x59,0x00 }, // ASCII - 137
{ 0x39,0x55,0x54,0x54,0x58,0x00 }, // ASCII - 138
{ 0x00,0x00,0x45,0x7C,0x41,0x00 }, // ASCII - 139
{ 0x00,0x02,0x45,0x7D,0x42,0x00 }, // ASCII - 140
{ 0x00,0x01,0x45,0x7C,0x40,0x00 }, // ASCII - 141
// { 0xF0,0x29,0x24,0x29,0xF0,0x00 }, // ASCII - 142 Ä
{ 0x79,0x14,0x12,0x14,0x79,0x00 }, // ASCII - 142 Ä korrigiert
{ 0xF0,0x28,0x25,0x28,0xF0,0x00 }, // ASCII - 143
{ 0x7C,0x54,0x55,0x45,0x00,0x00 }, // ASCII - 144 90
{ 0x20,0x54,0x54,0x7C,0x54,0x44 }, // ASCII - 145
{ 0x7C,0x0A,0x09,0x7F,0x49,0x41 }, // ASCII - 146
{ 0x32,0x49,0x49,0x49,0x32,0x00 }, // ASCII - 147
{ 0x32,0x48,0x48,0x48,0x32,0x00 }, // ASCII - 148
{ 0x32,0x4A,0x48,0x48,0x30,0x00 }, // ASCII - 149
{ 0x3A,0x41,0x41,0x21,0x7A,0x00 }, // ASCII - 150
{ 0x3A,0x42,0x40,0x20,0x78,0x00 }, // ASCII - 151
{ 0x00,0x9D,0xA0,0xA0,0x7D,0x00 }, // ASCII - 152
{ 0x39,0x44,0x44,0x44,0x39,0x00 }, // ASCII - 153
{ 0x3D,0x40,0x40,0x40,0x3D,0x00 }, // ASCII - 154
{ 0x3C,0x24,0xFF,0x24,0x24,0x00 }, // ASCII - 155
{ 0x48,0x7E,0x49,0x43,0x66,0x00 }, // ASCII - 156
{ 0x2B,0x2F,0xFC,0x2F,0x2B,0x00 }, // ASCII - 157
{ 0xFF,0x09,0x29,0xF6,0x20,0x00 }, // ASCII - 158
{ 0xC0,0x88,0x7E,0x09,0x03,0x00 }, // ASCII - 159
{ 0x20,0x54,0x54,0x79,0x41,0x00 }, // ASCII - 160
{ 0x00,0x00,0x44,0x7D,0x41,0x00 }, // ASCII - 161
{ 0x30,0x48,0x48,0x4A,0x32,0x00 }, // ASCII - 162
{ 0x38,0x40,0x40,0x22,0x7A,0x00 }, // ASCII - 163
{ 0x00,0x7A,0x0A,0x0A,0x72,0x00 }, // ASCII - 164
{ 0x7D,0x0D,0x19,0x31,0x7D,0x00 }, // ASCII - 165
{ 0x26,0x29,0x29,0x2F,0x28,0x00 }, // ASCII - 166
{ 0x26,0x29,0x29,0x29,0x26,0x00 }, // ASCII - 167
{ 0x30,0x48,0x4D,0x40,0x20,0x00 }, // ASCII - 168
{ 0x38,0x08,0x08,0x08,0x08,0x00 }, // ASCII - 169
{ 0x08,0x08,0x08,0x08,0x38,0x00 }, // ASCII - 170
{ 0x2F,0x10,0xC8,0xAC,0xBA,0x00 }, // ASCII - 171
{ 0x2F,0x10,0x28,0x34,0xFA,0x00 }, // ASCII - 172
{ 0x00,0x00,0x7B,0x00,0x00,0x00 }, // ASCII - 173
{ 0x08,0x14,0x2A,0x14,0x22,0x00 }, // ASCII - 174
{ 0x22,0x14,0x2A,0x14,0x08,0x00 }, // ASCII - 175
{ 0xAA,0x00,0x55,0x00,0xAA,0x00 }, // ASCII - 176
{ 0xAA,0x55,0xAA,0x55,0xAA,0x55 }, // ASCII - 177
{ 0x55,0xAA,0x55,0xAA,0x55,0xAA }, // ASCII - 178
{ 0x00,0x00,0x00,0xFF,0x00,0x00 }, // ASCII - 179
{ 0x10,0x10,0x10,0xFF,0x00,0x00 }, // ASCII - 180
{ 0x14,0x14,0x14,0xFF,0x00,0x00 }, // ASCII - 181
{ 0x10,0x10,0xFF,0x00,0xFF,0x00 }, // ASCII - 182
{ 0x10,0x10,0xF0,0x10,0xF0,0x00 }, // ASCII - 183
{ 0x14,0x14,0x14,0xFC,0x00,0x00 }, // ASCII - 184
{ 0x14,0x14,0xF7,0x00,0xFF,0x00 }, // ASCII - 185
{ 0x00,0x00,0xFF,0x00,0xFF,0x00 }, // ASCII - 186
{ 0x14,0x14,0xF4,0x04,0xFC,0x00 }, // ASCII - 187
{ 0x14,0x14,0x17,0x10,0x1F,0x00 }, // ASCII - 188
{ 0x10,0x10,0x1F,0x10,0x1F,0x00 }, // ASCII - 189
{ 0x14,0x14,0x14,0x1F,0x00,0x00 }, // ASCII - 190
{ 0x10,0x10,0x10,0xF0,0x00,0x00 }, // ASCII - 191
{ 0x00,0x00,0x00,0x1F,0x10,0x10 }, // ASCII - 192
{ 0x10,0x10,0x10,0x1F,0x10,0x10 }, // ASCII - 193
{ 0x10,0x10,0x10,0xF0,0x10,0x10 }, // ASCII - 194
{ 0x00,0x00,0x00,0xFF,0x10,0x10 }, // ASCII - 195
{ 0x10,0x10,0x10,0x10,0x10,0x10 }, // ASCII - 196
{ 0x10,0x10,0x10,0xFF,0x10,0x10 }, // ASCII - 197
{ 0x00,0x00,0x00,0xFF,0x14,0x14 }, // ASCII - 198
{ 0x00,0x00,0xFF,0x00,0xFF,0x10 }, // ASCII - 199
{ 0x00,0x00,0x1F,0x10,0x17,0x14 }, // ASCII - 200
{ 0x00,0x00,0xFC,0x04,0xF4,0x14 }, // ASCII - 201
{ 0x14,0x14,0x17,0x10,0x17,0x14 }, // ASCII - 202
{ 0x14,0x14,0xF4,0x04,0xF4,0x14 }, // ASCII - 203
{ 0x00,0x00,0xFF,0x00,0xF7,0x14 }, // ASCII - 204
{ 0x14,0x14,0x14,0x14,0x14,0x14 }, // ASCII - 205
{ 0x14,0x14,0xF7,0x00,0xF7,0x14 }, // ASCII - 206
{ 0x14,0x14,0x14,0x17,0x14,0x14 }, // ASCII - 207
{ 0x10,0x10,0x1F,0x10,0x1F,0x10 }, // ASCII - 208
{ 0x14,0x14,0x14,0xF4,0x14,0x14 }, // ASCII - 209
{ 0x10,0x10,0xF0,0x10,0xF0,0x10 }, // ASCII - 210
{ 0x00,0x00,0x1F,0x10,0x1F,0x10 }, // ASCII - 211
{ 0x00,0x00,0x00,0x1F,0x14,0x14 }, // ASCII - 212
{ 0x00,0x00,0x00,0xFC,0x14,0x14 }, // ASCII - 213
{ 0x00,0x00,0xF0,0x10,0xF0,0x10 }, // ASCII - 214
{ 0x10,0x10,0xFF,0x10,0xFF,0x10 }, // ASCII - 215
{ 0x14,0x14,0x14,0xFF,0x14,0x14 }, // ASCII - 216
{ 0x10,0x10,0x10,0x1F,0x00,0x00 }, // ASCII - 217
{ 0x00,0x00,0x00,0xF0,0x10,0x10 }, // ASCII - 218
{ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF }, // ASCII - 219
{ 0xF0,0xF0,0xF0,0xF0,0xF0,0xF0 }, // ASCII - 220
{ 0xFF,0xFF,0xFF,0x00,0x00,0x00 }, // ASCII - 221
{ 0x00,0x00,0x00,0xFF,0xFF,0xFF }, // ASCII - 222
{ 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F }, // ASCII - 223
{ 0x38,0x44,0x44,0x38,0x44,0x00 }, // ASCII - 224
{ 0x7C,0x2A,0x2A,0x3E,0x14,0x00 }, // ASCII - 225
{ 0x7E,0x02,0x02,0x06,0x06,0x00 }, // ASCII - 226
{ 0x02,0x7E,0x02,0x7E,0x02,0x00 }, // ASCII - 227
{ 0x63,0x55,0x49,0x41,0x63,0x00 }, // ASCII - 228
{ 0x38,0x44,0x44,0x3C,0x04,0x00 }, // ASCII - 229
{ 0x40,0x7E,0x20,0x1E,0x20,0x00 }, // ASCII - 230
{ 0x06,0x02,0x7E,0x02,0x02,0x00 }, // ASCII - 231
{ 0x99,0xA5,0xE7,0xA5,0x99,0x00 }, // ASCII - 232
{ 0x1C,0x2A,0x49,0x2A,0x1C,0x00 }, // ASCII - 233
{ 0x4C,0x72,0x01,0x72,0x4C,0x00 }, // ASCII - 234
{ 0x30,0x4A,0x4D,0x4D,0x30,0x00 }, // ASCII - 235
{ 0x30,0x48,0x78,0x48,0x30,0x00 }, // ASCII - 236
{ 0xBC,0x62,0x5A,0x46,0x3D,0x00 }, // ASCII - 237
{ 0x3E,0x49,0x49,0x49,0x00,0x00 }, // ASCII - 238
{ 0x7E,0x01,0x01,0x01,0x7E,0x00 }, // ASCII - 239
{ 0x2A,0x2A,0x2A,0x2A,0x2A,0x00 }, // ASCII - 240
{ 0x44,0x44,0x5F,0x44,0x44,0x00 }, // ASCII - 241
{ 0x40,0x51,0x4A,0x44,0x40,0x00 }, // ASCII - 242
{ 0x40,0x44,0x4A,0x51,0x40,0x00 }, // ASCII - 243
{ 0x00,0x00,0xFF,0x01,0x03,0x00 }, // ASCII - 244
{ 0xE0,0x80,0xFF,0x00,0x00,0x00 }, // ASCII - 245
{ 0x08,0x08,0x6B,0x6B,0x08,0x08 }, // ASCII - 246
{ 0x36,0x12,0x36,0x24,0x36,0x00 }, // ASCII - 247
{ 0x06,0x0F,0x09,0x0F,0x06,0x00 }, // ASCII - 248
{ 0x00,0x00,0x18,0x18,0x00,0x00 }, // ASCII - 249
{ 0x00,0x00,0x10,0x10,0x00,0x00 }, // ASCII - 250
{ 0x30,0x40,0xFF,0x01,0x01,0x00 }, // ASCII - 251
{ 0x00,0x1F,0x01,0x01,0x1E,0x00 }, // ASCII - 252
{ 0x00,0x19,0x1D,0x17,0x12,0x00 }, // ASCII - 253
{ 0x00,0x3C,0x3C,0x3C,0x3C,0x00 }, // ASCII - 254
{ 0x00,0x00,0x00,0x00,0x00,0x00 } // ASCII - 255
};
 
/************************ E n d o f F i l e ****************************/
/Transportables_Koptertool/trunk/V-0.1/F8X6.d
0,0 → 1,0
F8X6.o F8X6.d : F8X6.c
/Transportables_Koptertool/trunk/V-0.1/F8X6.lst
0,0 → 1,1563
1 .file "F8X6.c"
2 .arch atmega32
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
17 .Ltext0:
18 .global f8x6
19 .section .progmem.data,"a",@progbits
22 f8x6:
23 0000 00 .byte 0
24 0001 00 .byte 0
25 0002 00 .byte 0
26 0003 00 .byte 0
27 0004 00 .byte 0
28 0005 00 .byte 0
29 0006 3E .byte 62
30 0007 5B .byte 91
31 0008 4F .byte 79
32 0009 5B .byte 91
33 000a 3E .byte 62
34 000b 00 .byte 0
35 000c 3E .byte 62
36 000d 6B .byte 107
37 000e 4F .byte 79
38 000f 6B .byte 107
39 0010 3E .byte 62
40 0011 00 .byte 0
41 0012 1C .byte 28
42 0013 3E .byte 62
43 0014 7C .byte 124
44 0015 3E .byte 62
45 0016 1C .byte 28
46 0017 00 .byte 0
47 0018 18 .byte 24
48 0019 3C .byte 60
49 001a 7E .byte 126
50 001b 3C .byte 60
51 001c 18 .byte 24
52 001d 00 .byte 0
53 001e 1C .byte 28
54 001f 57 .byte 87
55 0020 7D .byte 125
56 0021 57 .byte 87
57 0022 1C .byte 28
58 0023 00 .byte 0
59 0024 1C .byte 28
60 0025 5E .byte 94
61 0026 7F .byte 127
62 0027 5E .byte 94
63 0028 1C .byte 28
64 0029 00 .byte 0
65 002a 00 .byte 0
66 002b 18 .byte 24
67 002c 3C .byte 60
68 002d 18 .byte 24
69 002e 00 .byte 0
70 002f 00 .byte 0
71 0030 FF .byte -1
72 0031 E7 .byte -25
73 0032 C3 .byte -61
74 0033 E7 .byte -25
75 0034 FF .byte -1
76 0035 00 .byte 0
77 0036 00 .byte 0
78 0037 18 .byte 24
79 0038 24 .byte 36
80 0039 18 .byte 24
81 003a 00 .byte 0
82 003b 00 .byte 0
83 003c FF .byte -1
84 003d E7 .byte -25
85 003e DB .byte -37
86 003f E7 .byte -25
87 0040 FF .byte -1
88 0041 00 .byte 0
89 0042 30 .byte 48
90 0043 48 .byte 72
91 0044 3A .byte 58
92 0045 06 .byte 6
93 0046 0E .byte 14
94 0047 00 .byte 0
95 0048 26 .byte 38
96 0049 29 .byte 41
97 004a 79 .byte 121
98 004b 29 .byte 41
99 004c 26 .byte 38
100 004d 00 .byte 0
101 004e 40 .byte 64
102 004f 7F .byte 127
103 0050 05 .byte 5
104 0051 05 .byte 5
105 0052 07 .byte 7
106 0053 00 .byte 0
107 0054 40 .byte 64
108 0055 7F .byte 127
109 0056 05 .byte 5
110 0057 25 .byte 37
111 0058 3F .byte 63
112 0059 00 .byte 0
113 005a 5A .byte 90
114 005b 3C .byte 60
115 005c E7 .byte -25
116 005d 3C .byte 60
117 005e 5A .byte 90
118 005f 00 .byte 0
119 0060 7F .byte 127
120 0061 3E .byte 62
121 0062 1C .byte 28
122 0063 1C .byte 28
123 0064 08 .byte 8
124 0065 00 .byte 0
125 0066 08 .byte 8
126 0067 1C .byte 28
127 0068 1C .byte 28
128 0069 3E .byte 62
129 006a 7F .byte 127
130 006b 00 .byte 0
131 006c 14 .byte 20
132 006d 22 .byte 34
133 006e 7F .byte 127
134 006f 22 .byte 34
135 0070 14 .byte 20
136 0071 00 .byte 0
137 0072 5F .byte 95
138 0073 5F .byte 95
139 0074 00 .byte 0
140 0075 5F .byte 95
141 0076 5F .byte 95
142 0077 00 .byte 0
143 0078 06 .byte 6
144 0079 09 .byte 9
145 007a 7F .byte 127
146 007b 01 .byte 1
147 007c 7F .byte 127
148 007d 00 .byte 0
149 007e 00 .byte 0
150 007f 66 .byte 102
151 0080 89 .byte -119
152 0081 95 .byte -107
153 0082 6A .byte 106
154 0083 00 .byte 0
155 0084 60 .byte 96
156 0085 60 .byte 96
157 0086 60 .byte 96
158 0087 60 .byte 96
159 0088 60 .byte 96
160 0089 60 .byte 96
161 008a 94 .byte -108
162 008b A2 .byte -94
163 008c FF .byte -1
164 008d A2 .byte -94
165 008e 94 .byte -108
166 008f 00 .byte 0
167 0090 08 .byte 8
168 0091 04 .byte 4
169 0092 7E .byte 126
170 0093 04 .byte 4
171 0094 08 .byte 8
172 0095 00 .byte 0
173 0096 10 .byte 16
174 0097 20 .byte 32
175 0098 7E .byte 126
176 0099 20 .byte 32
177 009a 10 .byte 16
178 009b 00 .byte 0
179 009c 08 .byte 8
180 009d 08 .byte 8
181 009e 2A .byte 42
182 009f 1C .byte 28
183 00a0 08 .byte 8
184 00a1 00 .byte 0
185 00a2 08 .byte 8
186 00a3 1C .byte 28
187 00a4 2A .byte 42
188 00a5 08 .byte 8
189 00a6 08 .byte 8
190 00a7 00 .byte 0
191 00a8 1E .byte 30
192 00a9 10 .byte 16
193 00aa 10 .byte 16
194 00ab 10 .byte 16
195 00ac 10 .byte 16
196 00ad 00 .byte 0
197 00ae 0C .byte 12
198 00af 1E .byte 30
199 00b0 0C .byte 12
200 00b1 1E .byte 30
201 00b2 0C .byte 12
202 00b3 00 .byte 0
203 00b4 30 .byte 48
204 00b5 38 .byte 56
205 00b6 3E .byte 62
206 00b7 38 .byte 56
207 00b8 30 .byte 48
208 00b9 00 .byte 0
209 00ba 06 .byte 6
210 00bb 0E .byte 14
211 00bc 3E .byte 62
212 00bd 0E .byte 14
213 00be 06 .byte 6
214 00bf 00 .byte 0
215 00c0 00 .byte 0
216 00c1 00 .byte 0
217 00c2 00 .byte 0
218 00c3 00 .byte 0
219 00c4 00 .byte 0
220 00c5 00 .byte 0
221 00c6 00 .byte 0
222 00c7 00 .byte 0
223 00c8 5F .byte 95
224 00c9 00 .byte 0
225 00ca 00 .byte 0
226 00cb 00 .byte 0
227 00cc 00 .byte 0
228 00cd 07 .byte 7
229 00ce 00 .byte 0
230 00cf 07 .byte 7
231 00d0 00 .byte 0
232 00d1 00 .byte 0
233 00d2 14 .byte 20
234 00d3 7F .byte 127
235 00d4 14 .byte 20
236 00d5 7F .byte 127
237 00d6 14 .byte 20
238 00d7 00 .byte 0
239 00d8 24 .byte 36
240 00d9 2A .byte 42
241 00da 7F .byte 127
242 00db 2A .byte 42
243 00dc 12 .byte 18
244 00dd 00 .byte 0
245 00de 23 .byte 35
246 00df 13 .byte 19
247 00e0 08 .byte 8
248 00e1 64 .byte 100
249 00e2 62 .byte 98
250 00e3 00 .byte 0
251 00e4 36 .byte 54
252 00e5 49 .byte 73
253 00e6 56 .byte 86
254 00e7 20 .byte 32
255 00e8 50 .byte 80
256 00e9 00 .byte 0
257 00ea 00 .byte 0
258 00eb 08 .byte 8
259 00ec 07 .byte 7
260 00ed 03 .byte 3
261 00ee 00 .byte 0
262 00ef 00 .byte 0
263 00f0 00 .byte 0
264 00f1 1C .byte 28
265 00f2 22 .byte 34
266 00f3 41 .byte 65
267 00f4 00 .byte 0
268 00f5 00 .byte 0
269 00f6 00 .byte 0
270 00f7 41 .byte 65
271 00f8 22 .byte 34
272 00f9 1C .byte 28
273 00fa 00 .byte 0
274 00fb 00 .byte 0
275 00fc 2A .byte 42
276 00fd 1C .byte 28
277 00fe 7F .byte 127
278 00ff 1C .byte 28
279 0100 2A .byte 42
280 0101 00 .byte 0
281 0102 08 .byte 8
282 0103 08 .byte 8
283 0104 3E .byte 62
284 0105 08 .byte 8
285 0106 08 .byte 8
286 0107 00 .byte 0
287 0108 00 .byte 0
288 0109 80 .byte -128
289 010a 70 .byte 112
290 010b 30 .byte 48
291 010c 00 .byte 0
292 010d 00 .byte 0
293 010e 08 .byte 8
294 010f 08 .byte 8
295 0110 08 .byte 8
296 0111 08 .byte 8
297 0112 08 .byte 8
298 0113 00 .byte 0
299 0114 00 .byte 0
300 0115 00 .byte 0
301 0116 60 .byte 96
302 0117 60 .byte 96
303 0118 00 .byte 0
304 0119 00 .byte 0
305 011a 20 .byte 32
306 011b 10 .byte 16
307 011c 08 .byte 8
308 011d 04 .byte 4
309 011e 02 .byte 2
310 011f 00 .byte 0
311 0120 3E .byte 62
312 0121 51 .byte 81
313 0122 49 .byte 73
314 0123 45 .byte 69
315 0124 3E .byte 62
316 0125 00 .byte 0
317 0126 00 .byte 0
318 0127 42 .byte 66
319 0128 7F .byte 127
320 0129 40 .byte 64
321 012a 00 .byte 0
322 012b 00 .byte 0
323 012c 72 .byte 114
324 012d 49 .byte 73
325 012e 49 .byte 73
326 012f 49 .byte 73
327 0130 46 .byte 70
328 0131 00 .byte 0
329 0132 21 .byte 33
330 0133 41 .byte 65
331 0134 49 .byte 73
332 0135 4D .byte 77
333 0136 33 .byte 51
334 0137 00 .byte 0
335 0138 18 .byte 24
336 0139 14 .byte 20
337 013a 12 .byte 18
338 013b 7F .byte 127
339 013c 10 .byte 16
340 013d 00 .byte 0
341 013e 27 .byte 39
342 013f 45 .byte 69
343 0140 45 .byte 69
344 0141 45 .byte 69
345 0142 39 .byte 57
346 0143 00 .byte 0
347 0144 3C .byte 60
348 0145 4A .byte 74
349 0146 49 .byte 73
350 0147 49 .byte 73
351 0148 31 .byte 49
352 0149 00 .byte 0
353 014a 41 .byte 65
354 014b 21 .byte 33
355 014c 11 .byte 17
356 014d 09 .byte 9
357 014e 07 .byte 7
358 014f 00 .byte 0
359 0150 36 .byte 54
360 0151 49 .byte 73
361 0152 49 .byte 73
362 0153 49 .byte 73
363 0154 36 .byte 54
364 0155 00 .byte 0
365 0156 46 .byte 70
366 0157 49 .byte 73
367 0158 49 .byte 73
368 0159 29 .byte 41
369 015a 1E .byte 30
370 015b 00 .byte 0
371 015c 00 .byte 0
372 015d 00 .byte 0
373 015e 14 .byte 20
374 015f 00 .byte 0
375 0160 00 .byte 0
376 0161 00 .byte 0
377 0162 00 .byte 0
378 0163 40 .byte 64
379 0164 34 .byte 52
380 0165 00 .byte 0
381 0166 00 .byte 0
382 0167 00 .byte 0
383 0168 00 .byte 0
384 0169 08 .byte 8
385 016a 14 .byte 20
386 016b 22 .byte 34
387 016c 41 .byte 65
388 016d 00 .byte 0
389 016e 14 .byte 20
390 016f 14 .byte 20
391 0170 14 .byte 20
392 0171 14 .byte 20
393 0172 14 .byte 20
394 0173 00 .byte 0
395 0174 00 .byte 0
396 0175 41 .byte 65
397 0176 22 .byte 34
398 0177 14 .byte 20
399 0178 08 .byte 8
400 0179 00 .byte 0
401 017a 02 .byte 2
402 017b 01 .byte 1
403 017c 59 .byte 89
404 017d 09 .byte 9
405 017e 06 .byte 6
406 017f 00 .byte 0
407 0180 3E .byte 62
408 0181 41 .byte 65
409 0182 5D .byte 93
410 0183 59 .byte 89
411 0184 4E .byte 78
412 0185 00 .byte 0
413 0186 7C .byte 124
414 0187 12 .byte 18
415 0188 11 .byte 17
416 0189 12 .byte 18
417 018a 7C .byte 124
418 018b 00 .byte 0
419 018c 7F .byte 127
420 018d 49 .byte 73
421 018e 49 .byte 73
422 018f 49 .byte 73
423 0190 36 .byte 54
424 0191 00 .byte 0
425 0192 3E .byte 62
426 0193 41 .byte 65
427 0194 41 .byte 65
428 0195 41 .byte 65
429 0196 22 .byte 34
430 0197 00 .byte 0
431 0198 7F .byte 127
432 0199 41 .byte 65
433 019a 41 .byte 65
434 019b 41 .byte 65
435 019c 3E .byte 62
436 019d 00 .byte 0
437 019e 7F .byte 127
438 019f 49 .byte 73
439 01a0 49 .byte 73
440 01a1 49 .byte 73
441 01a2 41 .byte 65
442 01a3 00 .byte 0
443 01a4 7F .byte 127
444 01a5 09 .byte 9
445 01a6 09 .byte 9
446 01a7 09 .byte 9
447 01a8 01 .byte 1
448 01a9 00 .byte 0
449 01aa 3E .byte 62
450 01ab 41 .byte 65
451 01ac 41 .byte 65
452 01ad 51 .byte 81
453 01ae 73 .byte 115
454 01af 00 .byte 0
455 01b0 7F .byte 127
456 01b1 08 .byte 8
457 01b2 08 .byte 8
458 01b3 08 .byte 8
459 01b4 7F .byte 127
460 01b5 00 .byte 0
461 01b6 00 .byte 0
462 01b7 41 .byte 65
463 01b8 7F .byte 127
464 01b9 41 .byte 65
465 01ba 00 .byte 0
466 01bb 00 .byte 0
467 01bc 20 .byte 32
468 01bd 40 .byte 64
469 01be 41 .byte 65
470 01bf 3F .byte 63
471 01c0 01 .byte 1
472 01c1 00 .byte 0
473 01c2 7F .byte 127
474 01c3 08 .byte 8
475 01c4 14 .byte 20
476 01c5 22 .byte 34
477 01c6 41 .byte 65
478 01c7 00 .byte 0
479 01c8 7F .byte 127
480 01c9 40 .byte 64
481 01ca 40 .byte 64
482 01cb 40 .byte 64
483 01cc 40 .byte 64
484 01cd 00 .byte 0
485 01ce 7F .byte 127
486 01cf 02 .byte 2
487 01d0 1C .byte 28
488 01d1 02 .byte 2
489 01d2 7F .byte 127
490 01d3 00 .byte 0
491 01d4 7F .byte 127
492 01d5 04 .byte 4
493 01d6 08 .byte 8
494 01d7 10 .byte 16
495 01d8 7F .byte 127
496 01d9 00 .byte 0
497 01da 3E .byte 62
498 01db 41 .byte 65
499 01dc 41 .byte 65
500 01dd 41 .byte 65
501 01de 3E .byte 62
502 01df 00 .byte 0
503 01e0 7F .byte 127
504 01e1 09 .byte 9
505 01e2 09 .byte 9
506 01e3 09 .byte 9
507 01e4 06 .byte 6
508 01e5 00 .byte 0
509 01e6 3E .byte 62
510 01e7 41 .byte 65
511 01e8 51 .byte 81
512 01e9 21 .byte 33
513 01ea 5E .byte 94
514 01eb 00 .byte 0
515 01ec 7F .byte 127
516 01ed 09 .byte 9
517 01ee 19 .byte 25
518 01ef 29 .byte 41
519 01f0 46 .byte 70
520 01f1 00 .byte 0
521 01f2 26 .byte 38
522 01f3 49 .byte 73
523 01f4 49 .byte 73
524 01f5 49 .byte 73
525 01f6 32 .byte 50
526 01f7 00 .byte 0
527 01f8 03 .byte 3
528 01f9 01 .byte 1
529 01fa 7F .byte 127
530 01fb 01 .byte 1
531 01fc 03 .byte 3
532 01fd 00 .byte 0
533 01fe 3F .byte 63
534 01ff 40 .byte 64
535 0200 40 .byte 64
536 0201 40 .byte 64
537 0202 3F .byte 63
538 0203 00 .byte 0
539 0204 1F .byte 31
540 0205 20 .byte 32
541 0206 40 .byte 64
542 0207 20 .byte 32
543 0208 1F .byte 31
544 0209 00 .byte 0
545 020a 3F .byte 63
546 020b 40 .byte 64
547 020c 38 .byte 56
548 020d 40 .byte 64
549 020e 3F .byte 63
550 020f 00 .byte 0
551 0210 63 .byte 99
552 0211 14 .byte 20
553 0212 08 .byte 8
554 0213 14 .byte 20
555 0214 63 .byte 99
556 0215 00 .byte 0
557 0216 03 .byte 3
558 0217 04 .byte 4
559 0218 78 .byte 120
560 0219 04 .byte 4
561 021a 03 .byte 3
562 021b 00 .byte 0
563 021c 61 .byte 97
564 021d 59 .byte 89
565 021e 49 .byte 73
566 021f 4D .byte 77
567 0220 43 .byte 67
568 0221 00 .byte 0
569 0222 00 .byte 0
570 0223 7F .byte 127
571 0224 41 .byte 65
572 0225 41 .byte 65
573 0226 41 .byte 65
574 0227 00 .byte 0
575 0228 02 .byte 2
576 0229 04 .byte 4
577 022a 08 .byte 8
578 022b 10 .byte 16
579 022c 20 .byte 32
580 022d 00 .byte 0
581 022e 00 .byte 0
582 022f 41 .byte 65
583 0230 41 .byte 65
584 0231 41 .byte 65
585 0232 7F .byte 127
586 0233 00 .byte 0
587 0234 04 .byte 4
588 0235 02 .byte 2
589 0236 01 .byte 1
590 0237 02 .byte 2
591 0238 04 .byte 4
592 0239 00 .byte 0
593 023a 40 .byte 64
594 023b 40 .byte 64
595 023c 40 .byte 64
596 023d 40 .byte 64
597 023e 40 .byte 64
598 023f 00 .byte 0
599 0240 00 .byte 0
600 0241 03 .byte 3
601 0242 07 .byte 7
602 0243 08 .byte 8
603 0244 00 .byte 0
604 0245 00 .byte 0
605 0246 20 .byte 32
606 0247 54 .byte 84
607 0248 54 .byte 84
608 0249 78 .byte 120
609 024a 40 .byte 64
610 024b 00 .byte 0
611 024c 7F .byte 127
612 024d 28 .byte 40
613 024e 44 .byte 68
614 024f 44 .byte 68
615 0250 38 .byte 56
616 0251 00 .byte 0
617 0252 38 .byte 56
618 0253 44 .byte 68
619 0254 44 .byte 68
620 0255 44 .byte 68
621 0256 28 .byte 40
622 0257 00 .byte 0
623 0258 38 .byte 56
624 0259 44 .byte 68
625 025a 44 .byte 68
626 025b 28 .byte 40
627 025c 7F .byte 127
628 025d 00 .byte 0
629 025e 38 .byte 56
630 025f 54 .byte 84
631 0260 54 .byte 84
632 0261 54 .byte 84
633 0262 18 .byte 24
634 0263 00 .byte 0
635 0264 00 .byte 0
636 0265 08 .byte 8
637 0266 7E .byte 126
638 0267 09 .byte 9
639 0268 02 .byte 2
640 0269 00 .byte 0
641 026a 18 .byte 24
642 026b A4 .byte -92
643 026c A4 .byte -92
644 026d 9C .byte -100
645 026e 78 .byte 120
646 026f 00 .byte 0
647 0270 7F .byte 127
648 0271 08 .byte 8
649 0272 04 .byte 4
650 0273 04 .byte 4
651 0274 78 .byte 120
652 0275 00 .byte 0
653 0276 00 .byte 0
654 0277 44 .byte 68
655 0278 7D .byte 125
656 0279 40 .byte 64
657 027a 00 .byte 0
658 027b 00 .byte 0
659 027c 20 .byte 32
660 027d 40 .byte 64
661 027e 40 .byte 64
662 027f 3D .byte 61
663 0280 00 .byte 0
664 0281 00 .byte 0
665 0282 7F .byte 127
666 0283 10 .byte 16
667 0284 28 .byte 40
668 0285 44 .byte 68
669 0286 00 .byte 0
670 0287 00 .byte 0
671 0288 00 .byte 0
672 0289 41 .byte 65
673 028a 7F .byte 127
674 028b 40 .byte 64
675 028c 00 .byte 0
676 028d 00 .byte 0
677 028e 7C .byte 124
678 028f 04 .byte 4
679 0290 78 .byte 120
680 0291 04 .byte 4
681 0292 78 .byte 120
682 0293 00 .byte 0
683 0294 7C .byte 124
684 0295 08 .byte 8
685 0296 04 .byte 4
686 0297 04 .byte 4
687 0298 78 .byte 120
688 0299 00 .byte 0
689 029a 38 .byte 56
690 029b 44 .byte 68
691 029c 44 .byte 68
692 029d 44 .byte 68
693 029e 38 .byte 56
694 029f 00 .byte 0
695 02a0 FC .byte -4
696 02a1 18 .byte 24
697 02a2 24 .byte 36
698 02a3 24 .byte 36
699 02a4 18 .byte 24
700 02a5 00 .byte 0
701 02a6 18 .byte 24
702 02a7 24 .byte 36
703 02a8 24 .byte 36
704 02a9 18 .byte 24
705 02aa FC .byte -4
706 02ab 00 .byte 0
707 02ac 7C .byte 124
708 02ad 08 .byte 8
709 02ae 04 .byte 4
710 02af 04 .byte 4
711 02b0 08 .byte 8
712 02b1 00 .byte 0
713 02b2 48 .byte 72
714 02b3 54 .byte 84
715 02b4 54 .byte 84
716 02b5 54 .byte 84
717 02b6 24 .byte 36
718 02b7 00 .byte 0
719 02b8 04 .byte 4
720 02b9 04 .byte 4
721 02ba 3F .byte 63
722 02bb 44 .byte 68
723 02bc 24 .byte 36
724 02bd 00 .byte 0
725 02be 3C .byte 60
726 02bf 40 .byte 64
727 02c0 40 .byte 64
728 02c1 20 .byte 32
729 02c2 7C .byte 124
730 02c3 00 .byte 0
731 02c4 1C .byte 28
732 02c5 20 .byte 32
733 02c6 40 .byte 64
734 02c7 20 .byte 32
735 02c8 1C .byte 28
736 02c9 00 .byte 0
737 02ca 3C .byte 60
738 02cb 40 .byte 64
739 02cc 30 .byte 48
740 02cd 40 .byte 64
741 02ce 3C .byte 60
742 02cf 00 .byte 0
743 02d0 44 .byte 68
744 02d1 28 .byte 40
745 02d2 10 .byte 16
746 02d3 28 .byte 40
747 02d4 44 .byte 68
748 02d5 00 .byte 0
749 02d6 4C .byte 76
750 02d7 90 .byte -112
751 02d8 90 .byte -112
752 02d9 90 .byte -112
753 02da 7C .byte 124
754 02db 00 .byte 0
755 02dc 44 .byte 68
756 02dd 64 .byte 100
757 02de 54 .byte 84
758 02df 4C .byte 76
759 02e0 44 .byte 68
760 02e1 00 .byte 0
761 02e2 00 .byte 0
762 02e3 08 .byte 8
763 02e4 36 .byte 54
764 02e5 41 .byte 65
765 02e6 00 .byte 0
766 02e7 00 .byte 0
767 02e8 00 .byte 0
768 02e9 00 .byte 0
769 02ea 77 .byte 119
770 02eb 00 .byte 0
771 02ec 00 .byte 0
772 02ed 00 .byte 0
773 02ee 00 .byte 0
774 02ef 41 .byte 65
775 02f0 36 .byte 54
776 02f1 08 .byte 8
777 02f2 00 .byte 0
778 02f3 00 .byte 0
779 02f4 02 .byte 2
780 02f5 01 .byte 1
781 02f6 02 .byte 2
782 02f7 04 .byte 4
783 02f8 02 .byte 2
784 02f9 00 .byte 0
785 02fa 3C .byte 60
786 02fb 26 .byte 38
787 02fc 23 .byte 35
788 02fd 26 .byte 38
789 02fe 3C .byte 60
790 02ff 00 .byte 0
791 0300 1E .byte 30
792 0301 A1 .byte -95
793 0302 A1 .byte -95
794 0303 61 .byte 97
795 0304 12 .byte 18
796 0305 00 .byte 0
797 0306 3A .byte 58
798 0307 40 .byte 64
799 0308 40 .byte 64
800 0309 20 .byte 32
801 030a 7A .byte 122
802 030b 00 .byte 0
803 030c 38 .byte 56
804 030d 54 .byte 84
805 030e 54 .byte 84
806 030f 55 .byte 85
807 0310 59 .byte 89
808 0311 00 .byte 0
809 0312 21 .byte 33
810 0313 55 .byte 85
811 0314 55 .byte 85
812 0315 79 .byte 121
813 0316 41 .byte 65
814 0317 00 .byte 0
815 0318 21 .byte 33
816 0319 54 .byte 84
817 031a 54 .byte 84
818 031b 78 .byte 120
819 031c 41 .byte 65
820 031d 00 .byte 0
821 031e 21 .byte 33
822 031f 55 .byte 85
823 0320 54 .byte 84
824 0321 78 .byte 120
825 0322 40 .byte 64
826 0323 00 .byte 0
827 0324 20 .byte 32
828 0325 54 .byte 84
829 0326 55 .byte 85
830 0327 79 .byte 121
831 0328 40 .byte 64
832 0329 00 .byte 0
833 032a 0C .byte 12
834 032b 1E .byte 30
835 032c 52 .byte 82
836 032d 72 .byte 114
837 032e 12 .byte 18
838 032f 00 .byte 0
839 0330 39 .byte 57
840 0331 55 .byte 85
841 0332 55 .byte 85
842 0333 55 .byte 85
843 0334 59 .byte 89
844 0335 00 .byte 0
845 0336 39 .byte 57
846 0337 54 .byte 84
847 0338 54 .byte 84
848 0339 54 .byte 84
849 033a 59 .byte 89
850 033b 00 .byte 0
851 033c 39 .byte 57
852 033d 55 .byte 85
853 033e 54 .byte 84
854 033f 54 .byte 84
855 0340 58 .byte 88
856 0341 00 .byte 0
857 0342 00 .byte 0
858 0343 00 .byte 0
859 0344 45 .byte 69
860 0345 7C .byte 124
861 0346 41 .byte 65
862 0347 00 .byte 0
863 0348 00 .byte 0
864 0349 02 .byte 2
865 034a 45 .byte 69
866 034b 7D .byte 125
867 034c 42 .byte 66
868 034d 00 .byte 0
869 034e 00 .byte 0
870 034f 01 .byte 1
871 0350 45 .byte 69
872 0351 7C .byte 124
873 0352 40 .byte 64
874 0353 00 .byte 0
875 0354 79 .byte 121
876 0355 14 .byte 20
877 0356 12 .byte 18
878 0357 14 .byte 20
879 0358 79 .byte 121
880 0359 00 .byte 0
881 035a F0 .byte -16
882 035b 28 .byte 40
883 035c 25 .byte 37
884 035d 28 .byte 40
885 035e F0 .byte -16
886 035f 00 .byte 0
887 0360 7C .byte 124
888 0361 54 .byte 84
889 0362 55 .byte 85
890 0363 45 .byte 69
891 0364 00 .byte 0
892 0365 00 .byte 0
893 0366 20 .byte 32
894 0367 54 .byte 84
895 0368 54 .byte 84
896 0369 7C .byte 124
897 036a 54 .byte 84
898 036b 44 .byte 68
899 036c 7C .byte 124
900 036d 0A .byte 10
901 036e 09 .byte 9
902 036f 7F .byte 127
903 0370 49 .byte 73
904 0371 41 .byte 65
905 0372 32 .byte 50
906 0373 49 .byte 73
907 0374 49 .byte 73
908 0375 49 .byte 73
909 0376 32 .byte 50
910 0377 00 .byte 0
911 0378 32 .byte 50
912 0379 48 .byte 72
913 037a 48 .byte 72
914 037b 48 .byte 72
915 037c 32 .byte 50
916 037d 00 .byte 0
917 037e 32 .byte 50
918 037f 4A .byte 74
919 0380 48 .byte 72
920 0381 48 .byte 72
921 0382 30 .byte 48
922 0383 00 .byte 0
923 0384 3A .byte 58
924 0385 41 .byte 65
925 0386 41 .byte 65
926 0387 21 .byte 33
927 0388 7A .byte 122
928 0389 00 .byte 0
929 038a 3A .byte 58
930 038b 42 .byte 66
931 038c 40 .byte 64
932 038d 20 .byte 32
933 038e 78 .byte 120
934 038f 00 .byte 0
935 0390 00 .byte 0
936 0391 9D .byte -99
937 0392 A0 .byte -96
938 0393 A0 .byte -96
939 0394 7D .byte 125
940 0395 00 .byte 0
941 0396 39 .byte 57
942 0397 44 .byte 68
943 0398 44 .byte 68
944 0399 44 .byte 68
945 039a 39 .byte 57
946 039b 00 .byte 0
947 039c 3D .byte 61
948 039d 40 .byte 64
949 039e 40 .byte 64
950 039f 40 .byte 64
951 03a0 3D .byte 61
952 03a1 00 .byte 0
953 03a2 3C .byte 60
954 03a3 24 .byte 36
955 03a4 FF .byte -1
956 03a5 24 .byte 36
957 03a6 24 .byte 36
958 03a7 00 .byte 0
959 03a8 48 .byte 72
960 03a9 7E .byte 126
961 03aa 49 .byte 73
962 03ab 43 .byte 67
963 03ac 66 .byte 102
964 03ad 00 .byte 0
965 03ae 2B .byte 43
966 03af 2F .byte 47
967 03b0 FC .byte -4
968 03b1 2F .byte 47
969 03b2 2B .byte 43
970 03b3 00 .byte 0
971 03b4 FF .byte -1
972 03b5 09 .byte 9
973 03b6 29 .byte 41
974 03b7 F6 .byte -10
975 03b8 20 .byte 32
976 03b9 00 .byte 0
977 03ba C0 .byte -64
978 03bb 88 .byte -120
979 03bc 7E .byte 126
980 03bd 09 .byte 9
981 03be 03 .byte 3
982 03bf 00 .byte 0
983 03c0 20 .byte 32
984 03c1 54 .byte 84
985 03c2 54 .byte 84
986 03c3 79 .byte 121
987 03c4 41 .byte 65
988 03c5 00 .byte 0
989 03c6 00 .byte 0
990 03c7 00 .byte 0
991 03c8 44 .byte 68
992 03c9 7D .byte 125
993 03ca 41 .byte 65
994 03cb 00 .byte 0
995 03cc 30 .byte 48
996 03cd 48 .byte 72
997 03ce 48 .byte 72
998 03cf 4A .byte 74
999 03d0 32 .byte 50
1000 03d1 00 .byte 0
1001 03d2 38 .byte 56
1002 03d3 40 .byte 64
1003 03d4 40 .byte 64
1004 03d5 22 .byte 34
1005 03d6 7A .byte 122
1006 03d7 00 .byte 0
1007 03d8 00 .byte 0
1008 03d9 7A .byte 122
1009 03da 0A .byte 10
1010 03db 0A .byte 10
1011 03dc 72 .byte 114
1012 03dd 00 .byte 0
1013 03de 7D .byte 125
1014 03df 0D .byte 13
1015 03e0 19 .byte 25
1016 03e1 31 .byte 49
1017 03e2 7D .byte 125
1018 03e3 00 .byte 0
1019 03e4 26 .byte 38
1020 03e5 29 .byte 41
1021 03e6 29 .byte 41
1022 03e7 2F .byte 47
1023 03e8 28 .byte 40
1024 03e9 00 .byte 0
1025 03ea 26 .byte 38
1026 03eb 29 .byte 41
1027 03ec 29 .byte 41
1028 03ed 29 .byte 41
1029 03ee 26 .byte 38
1030 03ef 00 .byte 0
1031 03f0 30 .byte 48
1032 03f1 48 .byte 72
1033 03f2 4D .byte 77
1034 03f3 40 .byte 64
1035 03f4 20 .byte 32
1036 03f5 00 .byte 0
1037 03f6 38 .byte 56
1038 03f7 08 .byte 8
1039 03f8 08 .byte 8
1040 03f9 08 .byte 8
1041 03fa 08 .byte 8
1042 03fb 00 .byte 0
1043 03fc 08 .byte 8
1044 03fd 08 .byte 8
1045 03fe 08 .byte 8
1046 03ff 08 .byte 8
1047 0400 38 .byte 56
1048 0401 00 .byte 0
1049 0402 2F .byte 47
1050 0403 10 .byte 16
1051 0404 C8 .byte -56
1052 0405 AC .byte -84
1053 0406 BA .byte -70
1054 0407 00 .byte 0
1055 0408 2F .byte 47
1056 0409 10 .byte 16
1057 040a 28 .byte 40
1058 040b 34 .byte 52
1059 040c FA .byte -6
1060 040d 00 .byte 0
1061 040e 00 .byte 0
1062 040f 00 .byte 0
1063 0410 7B .byte 123
1064 0411 00 .byte 0
1065 0412 00 .byte 0
1066 0413 00 .byte 0
1067 0414 08 .byte 8
1068 0415 14 .byte 20
1069 0416 2A .byte 42
1070 0417 14 .byte 20
1071 0418 22 .byte 34
1072 0419 00 .byte 0
1073 041a 22 .byte 34
1074 041b 14 .byte 20
1075 041c 2A .byte 42
1076 041d 14 .byte 20
1077 041e 08 .byte 8
1078 041f 00 .byte 0
1079 0420 AA .byte -86
1080 0421 00 .byte 0
1081 0422 55 .byte 85
1082 0423 00 .byte 0
1083 0424 AA .byte -86
1084 0425 00 .byte 0
1085 0426 AA .byte -86
1086 0427 55 .byte 85
1087 0428 AA .byte -86
1088 0429 55 .byte 85
1089 042a AA .byte -86
1090 042b 55 .byte 85
1091 042c 55 .byte 85
1092 042d AA .byte -86
1093 042e 55 .byte 85
1094 042f AA .byte -86
1095 0430 55 .byte 85
1096 0431 AA .byte -86
1097 0432 00 .byte 0
1098 0433 00 .byte 0
1099 0434 00 .byte 0
1100 0435 FF .byte -1
1101 0436 00 .byte 0
1102 0437 00 .byte 0
1103 0438 10 .byte 16
1104 0439 10 .byte 16
1105 043a 10 .byte 16
1106 043b FF .byte -1
1107 043c 00 .byte 0
1108 043d 00 .byte 0
1109 043e 14 .byte 20
1110 043f 14 .byte 20
1111 0440 14 .byte 20
1112 0441 FF .byte -1
1113 0442 00 .byte 0
1114 0443 00 .byte 0
1115 0444 10 .byte 16
1116 0445 10 .byte 16
1117 0446 FF .byte -1
1118 0447 00 .byte 0
1119 0448 FF .byte -1
1120 0449 00 .byte 0
1121 044a 10 .byte 16
1122 044b 10 .byte 16
1123 044c F0 .byte -16
1124 044d 10 .byte 16
1125 044e F0 .byte -16
1126 044f 00 .byte 0
1127 0450 14 .byte 20
1128 0451 14 .byte 20
1129 0452 14 .byte 20
1130 0453 FC .byte -4
1131 0454 00 .byte 0
1132 0455 00 .byte 0
1133 0456 14 .byte 20
1134 0457 14 .byte 20
1135 0458 F7 .byte -9
1136 0459 00 .byte 0
1137 045a FF .byte -1
1138 045b 00 .byte 0
1139 045c 00 .byte 0
1140 045d 00 .byte 0
1141 045e FF .byte -1
1142 045f 00 .byte 0
1143 0460 FF .byte -1
1144 0461 00 .byte 0
1145 0462 14 .byte 20
1146 0463 14 .byte 20
1147 0464 F4 .byte -12
1148 0465 04 .byte 4
1149 0466 FC .byte -4
1150 0467 00 .byte 0
1151 0468 14 .byte 20
1152 0469 14 .byte 20
1153 046a 17 .byte 23
1154 046b 10 .byte 16
1155 046c 1F .byte 31
1156 046d 00 .byte 0
1157 046e 10 .byte 16
1158 046f 10 .byte 16
1159 0470 1F .byte 31
1160 0471 10 .byte 16
1161 0472 1F .byte 31
1162 0473 00 .byte 0
1163 0474 14 .byte 20
1164 0475 14 .byte 20
1165 0476 14 .byte 20
1166 0477 1F .byte 31
1167 0478 00 .byte 0
1168 0479 00 .byte 0
1169 047a 10 .byte 16
1170 047b 10 .byte 16
1171 047c 10 .byte 16
1172 047d F0 .byte -16
1173 047e 00 .byte 0
1174 047f 00 .byte 0
1175 0480 00 .byte 0
1176 0481 00 .byte 0
1177 0482 00 .byte 0
1178 0483 1F .byte 31
1179 0484 10 .byte 16
1180 0485 10 .byte 16
1181 0486 10 .byte 16
1182 0487 10 .byte 16
1183 0488 10 .byte 16
1184 0489 1F .byte 31
1185 048a 10 .byte 16
1186 048b 10 .byte 16
1187 048c 10 .byte 16
1188 048d 10 .byte 16
1189 048e 10 .byte 16
1190 048f F0 .byte -16
1191 0490 10 .byte 16
1192 0491 10 .byte 16
1193 0492 00 .byte 0
1194 0493 00 .byte 0
1195 0494 00 .byte 0
1196 0495 FF .byte -1
1197 0496 10 .byte 16
1198 0497 10 .byte 16
1199 0498 10 .byte 16
1200 0499 10 .byte 16
1201 049a 10 .byte 16
1202 049b 10 .byte 16
1203 049c 10 .byte 16
1204 049d 10 .byte 16
1205 049e 10 .byte 16
1206 049f 10 .byte 16
1207 04a0 10 .byte 16
1208 04a1 FF .byte -1
1209 04a2 10 .byte 16
1210 04a3 10 .byte 16
1211 04a4 00 .byte 0
1212 04a5 00 .byte 0
1213 04a6 00 .byte 0
1214 04a7 FF .byte -1
1215 04a8 14 .byte 20
1216 04a9 14 .byte 20
1217 04aa 00 .byte 0
1218 04ab 00 .byte 0
1219 04ac FF .byte -1
1220 04ad 00 .byte 0
1221 04ae FF .byte -1
1222 04af 10 .byte 16
1223 04b0 00 .byte 0
1224 04b1 00 .byte 0
1225 04b2 1F .byte 31
1226 04b3 10 .byte 16
1227 04b4 17 .byte 23
1228 04b5 14 .byte 20
1229 04b6 00 .byte 0
1230 04b7 00 .byte 0
1231 04b8 FC .byte -4
1232 04b9 04 .byte 4
1233 04ba F4 .byte -12
1234 04bb 14 .byte 20
1235 04bc 14 .byte 20
1236 04bd 14 .byte 20
1237 04be 17 .byte 23
1238 04bf 10 .byte 16
1239 04c0 17 .byte 23
1240 04c1 14 .byte 20
1241 04c2 14 .byte 20
1242 04c3 14 .byte 20
1243 04c4 F4 .byte -12
1244 04c5 04 .byte 4
1245 04c6 F4 .byte -12
1246 04c7 14 .byte 20
1247 04c8 00 .byte 0
1248 04c9 00 .byte 0
1249 04ca FF .byte -1
1250 04cb 00 .byte 0
1251 04cc F7 .byte -9
1252 04cd 14 .byte 20
1253 04ce 14 .byte 20
1254 04cf 14 .byte 20
1255 04d0 14 .byte 20
1256 04d1 14 .byte 20
1257 04d2 14 .byte 20
1258 04d3 14 .byte 20
1259 04d4 14 .byte 20
1260 04d5 14 .byte 20
1261 04d6 F7 .byte -9
1262 04d7 00 .byte 0
1263 04d8 F7 .byte -9
1264 04d9 14 .byte 20
1265 04da 14 .byte 20
1266 04db 14 .byte 20
1267 04dc 14 .byte 20
1268 04dd 17 .byte 23
1269 04de 14 .byte 20
1270 04df 14 .byte 20
1271 04e0 10 .byte 16
1272 04e1 10 .byte 16
1273 04e2 1F .byte 31
1274 04e3 10 .byte 16
1275 04e4 1F .byte 31
1276 04e5 10 .byte 16
1277 04e6 14 .byte 20
1278 04e7 14 .byte 20
1279 04e8 14 .byte 20
1280 04e9 F4 .byte -12
1281 04ea 14 .byte 20
1282 04eb 14 .byte 20
1283 04ec 10 .byte 16
1284 04ed 10 .byte 16
1285 04ee F0 .byte -16
1286 04ef 10 .byte 16
1287 04f0 F0 .byte -16
1288 04f1 10 .byte 16
1289 04f2 00 .byte 0
1290 04f3 00 .byte 0
1291 04f4 1F .byte 31
1292 04f5 10 .byte 16
1293 04f6 1F .byte 31
1294 04f7 10 .byte 16
1295 04f8 00 .byte 0
1296 04f9 00 .byte 0
1297 04fa 00 .byte 0
1298 04fb 1F .byte 31
1299 04fc 14 .byte 20
1300 04fd 14 .byte 20
1301 04fe 00 .byte 0
1302 04ff 00 .byte 0
1303 0500 00 .byte 0
1304 0501 FC .byte -4
1305 0502 14 .byte 20
1306 0503 14 .byte 20
1307 0504 00 .byte 0
1308 0505 00 .byte 0
1309 0506 F0 .byte -16
1310 0507 10 .byte 16
1311 0508 F0 .byte -16
1312 0509 10 .byte 16
1313 050a 10 .byte 16
1314 050b 10 .byte 16
1315 050c FF .byte -1
1316 050d 10 .byte 16
1317 050e FF .byte -1
1318 050f 10 .byte 16
1319 0510 14 .byte 20
1320 0511 14 .byte 20
1321 0512 14 .byte 20
1322 0513 FF .byte -1
1323 0514 14 .byte 20
1324 0515 14 .byte 20
1325 0516 10 .byte 16
1326 0517 10 .byte 16
1327 0518 10 .byte 16
1328 0519 1F .byte 31
1329 051a 00 .byte 0
1330 051b 00 .byte 0
1331 051c 00 .byte 0
1332 051d 00 .byte 0
1333 051e 00 .byte 0
1334 051f F0 .byte -16
1335 0520 10 .byte 16
1336 0521 10 .byte 16
1337 0522 FF .byte -1
1338 0523 FF .byte -1
1339 0524 FF .byte -1
1340 0525 FF .byte -1
1341 0526 FF .byte -1
1342 0527 FF .byte -1
1343 0528 F0 .byte -16
1344 0529 F0 .byte -16
1345 052a F0 .byte -16
1346 052b F0 .byte -16
1347 052c F0 .byte -16
1348 052d F0 .byte -16
1349 052e FF .byte -1
1350 052f FF .byte -1
1351 0530 FF .byte -1
1352 0531 00 .byte 0
1353 0532 00 .byte 0
1354 0533 00 .byte 0
1355 0534 00 .byte 0
1356 0535 00 .byte 0
1357 0536 00 .byte 0
1358 0537 FF .byte -1
1359 0538 FF .byte -1
1360 0539 FF .byte -1
1361 053a 0F .byte 15
1362 053b 0F .byte 15
1363 053c 0F .byte 15
1364 053d 0F .byte 15
1365 053e 0F .byte 15
1366 053f 0F .byte 15
1367 0540 38 .byte 56
1368 0541 44 .byte 68
1369 0542 44 .byte 68
1370 0543 38 .byte 56
1371 0544 44 .byte 68
1372 0545 00 .byte 0
1373 0546 7C .byte 124
1374 0547 2A .byte 42
1375 0548 2A .byte 42
1376 0549 3E .byte 62
1377 054a 14 .byte 20
1378 054b 00 .byte 0
1379 054c 7E .byte 126
1380 054d 02 .byte 2
1381 054e 02 .byte 2
1382 054f 06 .byte 6
1383 0550 06 .byte 6
1384 0551 00 .byte 0
1385 0552 02 .byte 2
1386 0553 7E .byte 126
1387 0554 02 .byte 2
1388 0555 7E .byte 126
1389 0556 02 .byte 2
1390 0557 00 .byte 0
1391 0558 63 .byte 99
1392 0559 55 .byte 85
1393 055a 49 .byte 73
1394 055b 41 .byte 65
1395 055c 63 .byte 99
1396 055d 00 .byte 0
1397 055e 38 .byte 56
1398 055f 44 .byte 68
1399 0560 44 .byte 68
1400 0561 3C .byte 60
1401 0562 04 .byte 4
1402 0563 00 .byte 0
1403 0564 40 .byte 64
1404 0565 7E .byte 126
1405 0566 20 .byte 32
1406 0567 1E .byte 30
1407 0568 20 .byte 32
1408 0569 00 .byte 0
1409 056a 06 .byte 6
1410 056b 02 .byte 2
1411 056c 7E .byte 126
1412 056d 02 .byte 2
1413 056e 02 .byte 2
1414 056f 00 .byte 0
1415 0570 99 .byte -103
1416 0571 A5 .byte -91
1417 0572 E7 .byte -25
1418 0573 A5 .byte -91
1419 0574 99 .byte -103
1420 0575 00 .byte 0
1421 0576 1C .byte 28
1422 0577 2A .byte 42
1423 0578 49 .byte 73
1424 0579 2A .byte 42
1425 057a 1C .byte 28
1426 057b 00 .byte 0
1427 057c 4C .byte 76
1428 057d 72 .byte 114
1429 057e 01 .byte 1
1430 057f 72 .byte 114
1431 0580 4C .byte 76
1432 0581 00 .byte 0
1433 0582 30 .byte 48
1434 0583 4A .byte 74
1435 0584 4D .byte 77
1436 0585 4D .byte 77
1437 0586 30 .byte 48
1438 0587 00 .byte 0
1439 0588 30 .byte 48
1440 0589 48 .byte 72
1441 058a 78 .byte 120
1442 058b 48 .byte 72
1443 058c 30 .byte 48
1444 058d 00 .byte 0
1445 058e BC .byte -68
1446 058f 62 .byte 98
1447 0590 5A .byte 90
1448 0591 46 .byte 70
1449 0592 3D .byte 61
1450 0593 00 .byte 0
1451 0594 3E .byte 62
1452 0595 49 .byte 73
1453 0596 49 .byte 73
1454 0597 49 .byte 73
1455 0598 00 .byte 0
1456 0599 00 .byte 0
1457 059a 7E .byte 126
1458 059b 01 .byte 1
1459 059c 01 .byte 1
1460 059d 01 .byte 1
1461 059e 7E .byte 126
1462 059f 00 .byte 0
1463 05a0 2A .byte 42
1464 05a1 2A .byte 42
1465 05a2 2A .byte 42
1466 05a3 2A .byte 42
1467 05a4 2A .byte 42
1468 05a5 00 .byte 0
1469 05a6 44 .byte 68
1470 05a7 44 .byte 68
1471 05a8 5F .byte 95
1472 05a9 44 .byte 68
1473 05aa 44 .byte 68
1474 05ab 00 .byte 0
1475 05ac 40 .byte 64
1476 05ad 51 .byte 81
1477 05ae 4A .byte 74
1478 05af 44 .byte 68
1479 05b0 40 .byte 64
1480 05b1 00 .byte 0
1481 05b2 40 .byte 64
1482 05b3 44 .byte 68
1483 05b4 4A .byte 74
1484 05b5 51 .byte 81
1485 05b6 40 .byte 64
1486 05b7 00 .byte 0
1487 05b8 00 .byte 0
1488 05b9 00 .byte 0
1489 05ba FF .byte -1
1490 05bb 01 .byte 1
1491 05bc 03 .byte 3
1492 05bd 00 .byte 0
1493 05be E0 .byte -32
1494 05bf 80 .byte -128
1495 05c0 FF .byte -1
1496 05c1 00 .byte 0
1497 05c2 00 .byte 0
1498 05c3 00 .byte 0
1499 05c4 08 .byte 8
1500 05c5 08 .byte 8
1501 05c6 6B .byte 107
1502 05c7 6B .byte 107
1503 05c8 08 .byte 8
1504 05c9 08 .byte 8
1505 05ca 36 .byte 54
1506 05cb 12 .byte 18
1507 05cc 36 .byte 54
1508 05cd 24 .byte 36
1509 05ce 36 .byte 54
1510 05cf 00 .byte 0
1511 05d0 06 .byte 6
1512 05d1 0F .byte 15
1513 05d2 09 .byte 9
1514 05d3 0F .byte 15
1515 05d4 06 .byte 6
1516 05d5 00 .byte 0
1517 05d6 00 .byte 0
1518 05d7 00 .byte 0
1519 05d8 18 .byte 24
1520 05d9 18 .byte 24
1521 05da 00 .byte 0
1522 05db 00 .byte 0
1523 05dc 00 .byte 0
1524 05dd 00 .byte 0
1525 05de 10 .byte 16
1526 05df 10 .byte 16
1527 05e0 00 .byte 0
1528 05e1 00 .byte 0
1529 05e2 30 .byte 48
1530 05e3 40 .byte 64
1531 05e4 FF .byte -1
1532 05e5 01 .byte 1
1533 05e6 01 .byte 1
1534 05e7 00 .byte 0
1535 05e8 00 .byte 0
1536 05e9 1F .byte 31
1537 05ea 01 .byte 1
1538 05eb 01 .byte 1
1539 05ec 1E .byte 30
1540 05ed 00 .byte 0
1541 05ee 00 .byte 0
1542 05ef 19 .byte 25
1543 05f0 1D .byte 29
1544 05f1 17 .byte 23
1545 05f2 12 .byte 18
1546 05f3 00 .byte 0
1547 05f4 00 .byte 0
1548 05f5 3C .byte 60
1549 05f6 3C .byte 60
1550 05f7 3C .byte 60
1551 05f8 3C .byte 60
1552 05f9 00 .byte 0
1553 05fa 00 .byte 0
1554 05fb 00 .byte 0
1555 05fc 00 .byte 0
1556 05fd 00 .byte 0
1557 05fe 00 .byte 0
1558 05ff 00 .byte 0
1559 .text
1560 .Letext0:
DEFINED SYMBOLS
*ABS*:00000000 F8X6.c
C:\DOKUME~1\thomas\LOKALE~1\Temp/cceYaaaa.s:3 *ABS*:0000003f __SREG__
C:\DOKUME~1\thomas\LOKALE~1\Temp/cceYaaaa.s:4 *ABS*:0000003e __SP_H__
C:\DOKUME~1\thomas\LOKALE~1\Temp/cceYaaaa.s:5 *ABS*:0000003d __SP_L__
C:\DOKUME~1\thomas\LOKALE~1\Temp/cceYaaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\DOKUME~1\thomas\LOKALE~1\Temp/cceYaaaa.s:7 *ABS*:00000001 __zero_reg__
C:\DOKUME~1\thomas\LOKALE~1\Temp/cceYaaaa.s:22 .progmem.data:00000000 f8x6
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
/Transportables_Koptertool/trunk/V-0.1/MMT.aps
0,0 → 1,0
<AVRStudio><MANAGEMENT><ProjectName>MMT</ProjectName><Created>16-May-2008 00:42:21</Created><LastEdit>22-May-2008 20:56:53</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>16-May-2008 00:42:21</Created><Version>4</Version><Build>4, 13, 0, 528</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>default\MMT.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>D:\Develop\MMT\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>ICE50</CURRENT_TARGET><CURRENT_PART>ATmega32</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>1</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>base64.c</SOURCEFILE><SOURCEFILE>displ_val.c</SOURCEFILE><SOURCEFILE>display.c</SOURCEFILE><SOURCEFILE>F8X6.c</SOURCEFILE><SOURCEFILE>lcd.c</SOURCEFILE><SOURCEFILE>main.c</SOURCEFILE><SOURCEFILE>menu.c</SOURCEFILE><SOURCEFILE>motortest.c</SOURCEFILE><SOURCEFILE>parameter.c</SOURCEFILE><SOURCEFILE>rs232.c</SOURCEFILE><SOURCEFILE>timer.c</SOURCEFILE><SOURCEFILE>settings.c</SOURCEFILE><SOURCEFILE>debug.c</SOURCEFILE><HEADERFILE>base64.h</HEADERFILE><HEADERFILE>displ_val.h</HEADERFILE><HEADERFILE>display.h</HEADERFILE><HEADERFILE>font8x6.h</HEADERFILE><HEADERFILE>lcd.h</HEADERFILE><HEADERFILE>main.h</HEADERFILE><HEADERFILE>menu.h</HEADERFILE><HEADERFILE>motortest.h</HEADERFILE><HEADERFILE>parameter.h</HEADERFILE><HEADERFILE>rs232.h</HEADERFILE><HEADERFILE>timer.h</HEADERFILE><HEADERFILE>settings.h</HEADERFILE><HEADERFILE>debug.h</HEADERFILE></FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega32</PART><HEX>1</HEX><LIST>0</LIST><MAP>0</MAP><OUTPUTFILENAME>MMT.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>1</ISDIRTY><OPTIONS/><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>D:\WinAVR-20070525\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>D:\WinAVR-20070525\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><IOView><usergroups/></IOView><Files><File00000><FileId>00000</FileId><FileName>lcd.c</FileName><Status>1</Status></File00000><File00001><FileId>00001</FileId><FileName>settings.c</FileName><Status>1</Status></File00001><File00002><FileId>00002</FileId><FileName>settings.h</FileName><Status>1</Status></File00002><File00003><FileId>00003</FileId><FileName>main.h</FileName><Status>1</Status></File00003><File00004><FileId>00004</FileId><FileName>lcd.h</FileName><Status>1</Status></File00004><File00005><FileId>00005</FileId><FileName>main.c</FileName><Status>1</Status></File00005><File00006><FileId>00006</FileId><FileName>menu.c</FileName><Status>1</Status></File00006></Files><Workspace><File00000><Position>270 211 1117 677</Position><LineCol>26 0</LineCol></File00000><File00001><Position>312 267 1159 733</Position><LineCol>9 0</LineCol></File00001><File00002><Position>179 65 1188 768</Position><LineCol>4 0</LineCol></File00002><File00003><Position>211 128 1058 594</Position><LineCol>43 0</LineCol></File00003><File00004><Position>255 186 1102 652</Position><LineCol>27 0</LineCol></File00004><File00005><Position>277 215 1124 681</Position><LineCol>88 0</LineCol></File00005><File00006><Position>188 71 1197 774</Position><LineCol>0 0</LineCol><State>Maximized</State></File00006></Workspace><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>
/Transportables_Koptertool/trunk/V-0.1/displ_val.c
0,0 → 1,83
 
#include <avr/io.h>
#include <inttypes.h>
#include <stdlib.h>
#include <avr/pgmspace.h>
 
#include "main.h"
#include "base64.h"
#include "lcd.h"
#include "rs232.h"
 
// Insgesamt 32 Werte können angezeigt werden
// jeweils 8 Stück werden gleichzeitg angezeigt
// Auswahl über Tasten
 
uint8_t displ_page;
 
 
void displ_get_text(uint8_t number)
{
uint8_t text[17];
uint8_t i;
p_buffer[0] = '#';
p_buffer[1] = 'a';
p_buffer[2] = 'a';
p_buffer[3] = number;
p_buffer[4] = 0;
p_buffer[5] = 0;
base64_send(6);
 
do
{
get_message();
}
while (r_buffer[1] != 'A');
 
for (i=0;i<16;i++)
text[i] = p_buffer[i];
text[16] = 0x00;
lcd_print_at(0,(number & 0x07),text,0);
}
 
void displ_values(void)
{
uint8_t displ_page, i;
int16_t value;
uint8_t text[17];
 
displ_page = 0; // Page 0..3 (4 Pages zu je 8 Werte)
lcd_cls(); // LCD löschen
do
{
for (i=0;i<8;i++) // Texte lesen und anzeigen
displ_get_text(i+displ_page*8);
do
{
get_message();
if(r_buffer[1] == 'D')
{
for (i=0;i<8;i++)
{
value = p_buffer[i*2+displ_page*16+2] + 256*p_buffer[i*2+displ_page*16+3];
itoa(value,text,10);
lcd_print_atp(14,i,PSTR(" "),0);
lcd_print_at(14,i,text,0);
}
}
}
while (key == 0x00);
if (key == 0x01)
displ_page++;
if (key == 0x02)
displ_page--;
displ_page &= 0x03;
}
while(key != 0x08);
}
 
/Transportables_Koptertool/trunk/V-0.1/displ_val.d
0,0 → 1,0
displ_val.o displ_val.d : displ_val.c main.h base64.h lcd.h rs232.h
/Transportables_Koptertool/trunk/V-0.1/displ_val.h
0,0 → 1,6
#ifndef displ_val_h
#define displ_val_h
 
void displ_values(void);
 
#endif
/Transportables_Koptertool/trunk/V-0.1/displ_val.lst
0,0 → 1,284
1 .file "displ_val.c"
2 .arch atmega32
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
17 .Ltext0:
18 .global displ_get_text
20 displ_get_text:
21 .LFB4:
22 .LM1:
23 /* prologue: frame size=17 */
24 0000 1F93 push r17
25 0002 CF93 push r28
26 0004 DF93 push r29
27 0006 CDB7 in r28,__SP_L__
28 0008 DEB7 in r29,__SP_H__
29 000a 6197 sbiw r28,17
30 000c 0FB6 in __tmp_reg__,__SREG__
31 000e F894 cli
32 0010 DEBF out __SP_H__,r29
33 0012 0FBE out __SREG__,__tmp_reg__
34 0014 CDBF out __SP_L__,r28
35 /* prologue end (size=11) */
36 0016 182F mov r17,r24
37 .LM2:
38 0018 83E2 ldi r24,lo8(35)
39 001a 8093 0000 sts p_buffer,r24
40 .LM3:
41 001e 81E6 ldi r24,lo8(97)
42 0020 8093 0000 sts p_buffer+1,r24
43 .LM4:
44 0024 8093 0000 sts p_buffer+2,r24
45 .LM5:
46 0028 1093 0000 sts p_buffer+3,r17
47 .LM6:
48 002c 1092 0000 sts p_buffer+4,__zero_reg__
49 .LM7:
50 0030 1092 0000 sts p_buffer+5,__zero_reg__
51 .LM8:
52 0034 86E0 ldi r24,lo8(6)
53 0036 0E94 0000 call base64_send
54 .L2:
55 .LM9:
56 003a 0E94 0000 call get_message
57 .LM10:
58 003e 8091 0000 lds r24,r_buffer+1
59 0042 8134 cpi r24,lo8(65)
60 0044 D1F7 brne .L2
61 0046 DE01 movw r26,r28
62 0048 1196 adiw r26,1
63 004a E0E0 ldi r30,lo8(p_buffer)
64 004c F0E0 ldi r31,hi8(p_buffer)
65 004e 9FE0 ldi r25,lo8(15)
66 .L8:
67 .LM11:
68 0050 8191 ld r24,Z+
69 0052 8D93 st X+,r24
70 .LM12:
71 0054 9150 subi r25,lo8(-(-1))
72 0056 97FF sbrs r25,7
73 0058 FBCF rjmp .L8
74 .LM13:
75 005a 198A std Y+17,__zero_reg__
76 .LM14:
77 005c 1770 andi r17,lo8(7)
78 005e 2989 ldd r18,Y+17
79 0060 AE01 movw r20,r28
80 0062 4F5F subi r20,lo8(-(1))
81 0064 5F4F sbci r21,hi8(-(1))
82 0066 612F mov r22,r17
83 0068 822F mov r24,r18
84 006a 0E94 0000 call lcd_print_at
85 /* epilogue: frame size=17 */
86 006e 6196 adiw r28,17
87 0070 0FB6 in __tmp_reg__,__SREG__
88 0072 F894 cli
89 0074 DEBF out __SP_H__,r29
90 0076 0FBE out __SREG__,__tmp_reg__
91 0078 CDBF out __SP_L__,r28
92 007a DF91 pop r29
93 007c CF91 pop r28
94 007e 1F91 pop r17
95 0080 0895 ret
96 /* epilogue end (size=10) */
97 /* function displ_get_text size 65 (44) */
98 .LFE4:
100 .section .progmem.data,"a",@progbits
103 __c.0:
104 0000 2020 2020 .string " "
104 2020 00
105 .text
106 .global displ_values
108 displ_values:
109 .LFB5:
110 .LM15:
111 /* prologue: frame size=17 */
112 0082 CF92 push r12
113 0084 DF92 push r13
114 0086 EF92 push r14
115 0088 FF92 push r15
116 008a 0F93 push r16
117 008c 1F93 push r17
118 008e CF93 push r28
119 0090 DF93 push r29
120 0092 CDB7 in r28,__SP_L__
121 0094 DEB7 in r29,__SP_H__
122 0096 6197 sbiw r28,17
123 0098 0FB6 in __tmp_reg__,__SREG__
124 009a F894 cli
125 009c DEBF out __SP_H__,r29
126 009e 0FBE out __SREG__,__tmp_reg__
127 00a0 CDBF out __SP_L__,r28
128 /* prologue end (size=16) */
129 .LM16:
130 00a2 00E0 ldi r16,lo8(0)
131 .LM17:
132 00a4 0E94 0000 call lcd_cls
133 .L12:
134 .LM18:
135 00a8 10E0 ldi r17,lo8(0)
136 .L18:
137 .LM19:
138 00aa C02E mov r12,r16
139 00ac DD24 clr r13
140 00ae C601 movw r24,r12
141 00b0 53E0 ldi r21,3
142 00b2 880F 1: lsl r24
143 00b4 991F rol r25
144 00b6 5A95 dec r21
145 00b8 E1F7 brne 1b
146 00ba 810F add r24,r17
147 00bc 0E94 0000 call displ_get_text
148 .LM20:
149 00c0 1F5F subi r17,lo8(-(1))
150 00c2 1830 cpi r17,lo8(8)
151 00c4 90F3 brlo .L18
152 .L19:
153 .LM21:
154 00c6 0E94 0000 call get_message
155 .LM22:
156 00ca 8091 0000 lds r24,r_buffer+1
157 00ce 8434 cpi r24,lo8(68)
158 00d0 91F5 brne .L21
159 .LM23:
160 00d2 10E0 ldi r17,lo8(0)
161 00d4 EE24 clr r14
162 00d6 FF24 clr r15
163 .L26:
164 .LM24:
165 00d8 F601 movw r30,r12
166 00da 43E0 ldi r20,3
167 00dc EE0F 1: lsl r30
168 00de FF1F rol r31
169 00e0 4A95 dec r20
170 00e2 E1F7 brne 1b
171 00e4 EE0D add r30,r14
172 00e6 FF1D adc r31,r15
173 00e8 EE0F add r30,r30
174 00ea FF1F adc r31,r31
175 00ec E050 subi r30,lo8(-(p_buffer))
176 00ee F040 sbci r31,hi8(-(p_buffer))
177 00f0 2281 ldd r18,Z+2
178 00f2 8381 ldd r24,Z+3
179 00f4 9927 clr r25
180 00f6 982F mov r25,r24
181 00f8 8827 clr r24
182 .LM25:
183 00fa 4AE0 ldi r20,lo8(10)
184 00fc 50E0 ldi r21,hi8(10)
185 00fe BE01 movw r22,r28
186 0100 6F5F subi r22,lo8(-(1))
187 0102 7F4F sbci r23,hi8(-(1))
188 0104 820F add r24,r18
189 0106 911D adc r25,__zero_reg__
190 0108 0E94 0000 call itoa
191 .LM26:
192 010c 20E0 ldi r18,lo8(0)
193 010e 40E0 ldi r20,lo8(__c.0)
194 0110 50E0 ldi r21,hi8(__c.0)
195 0112 612F mov r22,r17
196 0114 8EE0 ldi r24,lo8(14)
197 0116 0E94 0000 call lcd_print_atp
198 .LM27:
199 011a 20E0 ldi r18,lo8(0)
200 011c AE01 movw r20,r28
201 011e 4F5F subi r20,lo8(-(1))
202 0120 5F4F sbci r21,hi8(-(1))
203 0122 612F mov r22,r17
204 0124 8EE0 ldi r24,lo8(14)
205 0126 0E94 0000 call lcd_print_at
206 .LM28:
207 012a 1F5F subi r17,lo8(-(1))
208 012c 0894 sec
209 012e E11C adc r14,__zero_reg__
210 0130 F11C adc r15,__zero_reg__
211 0132 1830 cpi r17,lo8(8)
212 0134 88F2 brlo .L26
213 .L21:
214 .LM29:
215 0136 8091 0000 lds r24,key
216 013a 8823 tst r24
217 013c 21F2 breq .L19
218 .LM30:
219 013e 8091 0000 lds r24,key
220 0142 8130 cpi r24,lo8(1)
221 0144 09F4 brne .L27
222 .LM31:
223 0146 0F5F subi r16,lo8(-(1))
224 .L27:
225 .LM32:
226 0148 8091 0000 lds r24,key
227 014c 8230 cpi r24,lo8(2)
228 014e 09F4 brne .L28
229 .LM33:
230 0150 0150 subi r16,lo8(-(-1))
231 .L28:
232 .LM34:
233 0152 0370 andi r16,lo8(3)
234 .LM35:
235 0154 8091 0000 lds r24,key
236 0158 8830 cpi r24,lo8(8)
237 015a 09F0 breq .+2
238 015c A5CF rjmp .L12
239 /* epilogue: frame size=17 */
240 015e 6196 adiw r28,17
241 0160 0FB6 in __tmp_reg__,__SREG__
242 0162 F894 cli
243 0164 DEBF out __SP_H__,r29
244 0166 0FBE out __SREG__,__tmp_reg__
245 0168 CDBF out __SP_L__,r28
246 016a DF91 pop r29
247 016c CF91 pop r28
248 016e 1F91 pop r17
249 0170 0F91 pop r16
250 0172 FF90 pop r15
251 0174 EF90 pop r14
252 0176 DF90 pop r13
253 0178 CF90 pop r12
254 017a 0895 ret
255 /* epilogue end (size=15) */
256 /* function displ_values size 125 (94) */
257 .LFE5:
259 .comm r_buffer,128,1
260 .comm p_buffer,128,1
261 .comm display_buffer,1024,1
262 .comm display_buffer_pointer,2,1
263 .comm display_buffer_counter,1,1
264 .comm display_page_counter,1,1
265 .comm display_mode,1,1
266 .comm displ_page,1,1
267 .Letext0:
DEFINED SYMBOLS
*ABS*:00000000 displ_val.c
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccG6aaaa.s:3 *ABS*:0000003f __SREG__
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccG6aaaa.s:4 *ABS*:0000003e __SP_H__
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccG6aaaa.s:5 *ABS*:0000003d __SP_L__
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccG6aaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccG6aaaa.s:7 *ABS*:00000001 __zero_reg__
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccG6aaaa.s:20 .text:00000000 displ_get_text
*COM*:00000080 p_buffer
*COM*:00000080 r_buffer
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccG6aaaa.s:103 .progmem.data:00000000 __c.0
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccG6aaaa.s:108 .text:00000082 displ_values
*COM*:00000400 display_buffer
*COM*:00000002 display_buffer_pointer
*COM*:00000001 display_buffer_counter
*COM*:00000001 display_page_counter
*COM*:00000001 display_mode
*COM*:00000001 displ_page
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
base64_send
get_message
lcd_print_at
lcd_cls
itoa
lcd_print_atp
key
/Transportables_Koptertool/trunk/V-0.1/display.c
0,0 → 1,78
 
#include <avr/io.h>
#include <inttypes.h>
#include <stdlib.h>
#include <avr/pgmspace.h>
 
#include "main.h"
#include "lcd.h"
#include "rs232.h"
#include "base64.h"
#include "parameter.h"
#include "menu.h"
 
uint8_t read_display (uint8_t command) //
{
uint8_t timeout;
timeout = 0;
p_buffer[0] = '#'; // Display-Zeile anfordern
p_buffer[1] = 'a';
p_buffer[2] = 'h';
p_buffer[3] = command;
p_buffer[4] = 0;
p_buffer[5] = 0;
base64_send(6);
do // warten, bis die Parameter gesendet werden
{
if (get_message() == 1)
timeout = 10;
timeout ++;
}
while (((r_buffer[1] < '0') || (r_buffer[1] > '4')) && (timeout < 10));
if (timeout >= 10)
return 1;
else
return 0;
}
 
void display_data (void)
{
uint8_t line;
uint8_t text[10];
 
lcd_cls();
lcd_printp(PSTR("Display"),0);
do
{
while (key != 0x00);
if (read_display(0) == 1)
{
lcd_printp(PSTR("\r\nTimeout!"),0);
timer = 200;
while (timer > 0);
break;
}
else
{
line = r_buffer[1];
text[0] = line;
text[1] = 0x00;
lcd_print_at(10,0,text,0);
lcd_print_at(0,line+1,p_buffer,0);
timer = 10;
while(timer > 0);
if (key == 0x01)
read_display(1);
if (key == 0x02)
read_display(2);
}
}
while (key != 0x04);
}
/Transportables_Koptertool/trunk/V-0.1/display.d
0,0 → 1,0
display.o display.d : display.c main.h lcd.h rs232.h base64.h parameter.h menu.h
/Transportables_Koptertool/trunk/V-0.1/display.h
0,0 → 1,6
#ifndef display_h
#define display_h
 
void display_data (void);
 
#endif
/Transportables_Koptertool/trunk/V-0.1/display.lst
0,0 → 1,235
1 .file "display.c"
2 .arch atmega32
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
17 .Ltext0:
18 .global read_display
20 read_display:
21 .LFB4:
22 .LM1:
23 /* prologue: frame size=0 */
24 0000 CF93 push r28
25 /* prologue end (size=1) */
26 .LM2:
27 0002 C0E0 ldi r28,lo8(0)
28 .LM3:
29 0004 93E2 ldi r25,lo8(35)
30 0006 9093 0000 sts p_buffer,r25
31 .LM4:
32 000a 91E6 ldi r25,lo8(97)
33 000c 9093 0000 sts p_buffer+1,r25
34 .LM5:
35 0010 98E6 ldi r25,lo8(104)
36 0012 9093 0000 sts p_buffer+2,r25
37 .LM6:
38 0016 8093 0000 sts p_buffer+3,r24
39 .LM7:
40 001a C093 0000 sts p_buffer+4,r28
41 .LM8:
42 001e C093 0000 sts p_buffer+5,r28
43 .LM9:
44 0022 86E0 ldi r24,lo8(6)
45 0024 0E94 0000 call base64_send
46 .L2:
47 .LM10:
48 0028 0E94 0000 call get_message
49 002c 8130 cpi r24,lo8(1)
50 002e 09F4 brne .L5
51 .LM11:
52 0030 CAE0 ldi r28,lo8(10)
53 .L5:
54 .LM12:
55 0032 CF5F subi r28,lo8(-(1))
56 .LM13:
57 0034 8091 0000 lds r24,r_buffer+1
58 0038 8053 subi r24,lo8(-(-48))
59 003a 8530 cpi r24,lo8(5)
60 003c 10F0 brlo .L3
61 003e CA30 cpi r28,lo8(10)
62 0040 98F3 brlo .L2
63 .L3:
64 .LM14:
65 0042 CA30 cpi r28,lo8(10)
66 0044 18F0 brlo .L6
67 .LM15:
68 0046 81E0 ldi r24,lo8(1)
69 0048 90E0 ldi r25,hi8(1)
70 004a 02C0 rjmp .L1
71 .L6:
72 .LM16:
73 004c 80E0 ldi r24,lo8(0)
74 004e 90E0 ldi r25,hi8(0)
75 .L1:
76 /* epilogue: frame size=0 */
77 0050 CF91 pop r28
78 0052 0895 ret
79 /* epilogue end (size=2) */
80 /* function read_display size 42 (39) */
81 .LFE4:
83 .section .progmem.data,"a",@progbits
86 __c.0:
87 0000 4469 7370 .string "Display"
87 6C61 7900
90 __c.1:
91 0008 0D0A 5469 .string "\r\nTimeout!"
91 6D65 6F75
91 7421 00
92 .text
93 .global display_data
95 display_data:
96 .LFB5:
97 .LM17:
98 /* prologue: frame size=10 */
99 0054 0F93 push r16
100 0056 1F93 push r17
101 0058 CF93 push r28
102 005a DF93 push r29
103 005c CDB7 in r28,__SP_L__
104 005e DEB7 in r29,__SP_H__
105 0060 2A97 sbiw r28,10
106 0062 0FB6 in __tmp_reg__,__SREG__
107 0064 F894 cli
108 0066 DEBF out __SP_H__,r29
109 0068 0FBE out __SREG__,__tmp_reg__
110 006a CDBF out __SP_L__,r28
111 /* prologue end (size=12) */
112 .LM18:
113 006c 0E94 0000 call lcd_cls
114 .LM19:
115 0070 60E0 ldi r22,lo8(0)
116 0072 80E0 ldi r24,lo8(__c.0)
117 0074 90E0 ldi r25,hi8(__c.0)
118 0076 0E94 0000 call lcd_printp
119 .L28:
120 .LM20:
121 007a 0091 0000 lds r16,key
122 007e 0023 tst r16
123 0080 E1F7 brne .L28
124 .LM21:
125 0082 802F mov r24,r16
126 0084 0E94 0000 call read_display
127 0088 8130 cpi r24,lo8(1)
128 008a 69F4 brne .L15
129 .LM22:
130 008c 602F mov r22,r16
131 008e 80E0 ldi r24,lo8(__c.1)
132 0090 90E0 ldi r25,hi8(__c.1)
133 0092 0E94 0000 call lcd_printp
134 .LM23:
135 0096 88EC ldi r24,lo8(-56)
136 0098 8093 0000 sts timer,r24
137 .L16:
138 .LM24:
139 009c 8091 0000 lds r24,timer
140 00a0 8823 tst r24
141 00a2 E1F7 brne .L16
142 .LM25:
143 00a4 2CC0 rjmp .L10
144 .L15:
145 .LM26:
146 00a6 1091 0000 lds r17,r_buffer+1
147 .LM27:
148 00aa 1983 std Y+1,r17
149 .LM28:
150 00ac 0A83 std Y+2,r16
151 .LM29:
152 00ae 202F mov r18,r16
153 00b0 AE01 movw r20,r28
154 00b2 4F5F subi r20,lo8(-(1))
155 00b4 5F4F sbci r21,hi8(-(1))
156 00b6 602F mov r22,r16
157 00b8 8AE0 ldi r24,lo8(10)
158 00ba 0E94 0000 call lcd_print_at
159 .LM30:
160 00be 1F5F subi r17,lo8(-(1))
161 00c0 202F mov r18,r16
162 00c2 40E0 ldi r20,lo8(p_buffer)
163 00c4 50E0 ldi r21,hi8(p_buffer)
164 00c6 612F mov r22,r17
165 00c8 802F mov r24,r16
166 00ca 0E94 0000 call lcd_print_at
167 .LM31:
168 00ce 8AE0 ldi r24,lo8(10)
169 00d0 8093 0000 sts timer,r24
170 .L20:
171 .LM32:
172 00d4 8091 0000 lds r24,timer
173 00d8 8823 tst r24
174 00da E1F7 brne .L20
175 .LM33:
176 00dc 8091 0000 lds r24,key
177 00e0 8130 cpi r24,lo8(1)
178 00e2 11F4 brne .L23
179 .LM34:
180 00e4 0E94 0000 call read_display
181 .L23:
182 .LM35:
183 00e8 8091 0000 lds r24,key
184 00ec 8230 cpi r24,lo8(2)
185 00ee 11F4 brne .L11
186 .LM36:
187 00f0 0E94 0000 call read_display
188 .L11:
189 .LM37:
190 00f4 8091 0000 lds r24,key
191 00f8 8430 cpi r24,lo8(4)
192 00fa 09F0 breq .+2
193 00fc BECF rjmp .L28
194 .L10:
195 /* epilogue: frame size=10 */
196 00fe 2A96 adiw r28,10
197 0100 0FB6 in __tmp_reg__,__SREG__
198 0102 F894 cli
199 0104 DEBF out __SP_H__,r29
200 0106 0FBE out __SREG__,__tmp_reg__
201 0108 CDBF out __SP_L__,r28
202 010a DF91 pop r29
203 010c CF91 pop r28
204 010e 1F91 pop r17
205 0110 0F91 pop r16
206 0112 0895 ret
207 /* epilogue end (size=11) */
208 /* function display_data size 96 (73) */
209 .LFE5:
211 .comm r_buffer,128,1
212 .comm p_buffer,128,1
213 .comm display_buffer,1024,1
214 .comm display_buffer_pointer,2,1
215 .comm display_buffer_counter,1,1
216 .comm display_page_counter,1,1
217 .comm display_mode,1,1
218 .Letext0:
DEFINED SYMBOLS
*ABS*:00000000 display.c
C:\DOKUME~1\thomas\LOKALE~1\Temp/cc8Aaaaa.s:3 *ABS*:0000003f __SREG__
C:\DOKUME~1\thomas\LOKALE~1\Temp/cc8Aaaaa.s:4 *ABS*:0000003e __SP_H__
C:\DOKUME~1\thomas\LOKALE~1\Temp/cc8Aaaaa.s:5 *ABS*:0000003d __SP_L__
C:\DOKUME~1\thomas\LOKALE~1\Temp/cc8Aaaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\DOKUME~1\thomas\LOKALE~1\Temp/cc8Aaaaa.s:7 *ABS*:00000001 __zero_reg__
C:\DOKUME~1\thomas\LOKALE~1\Temp/cc8Aaaaa.s:20 .text:00000000 read_display
*COM*:00000080 p_buffer
*COM*:00000080 r_buffer
C:\DOKUME~1\thomas\LOKALE~1\Temp/cc8Aaaaa.s:86 .progmem.data:00000000 __c.0
C:\DOKUME~1\thomas\LOKALE~1\Temp/cc8Aaaaa.s:90 .progmem.data:00000008 __c.1
C:\DOKUME~1\thomas\LOKALE~1\Temp/cc8Aaaaa.s:95 .text:00000054 display_data
*COM*:00000400 display_buffer
*COM*:00000002 display_buffer_pointer
*COM*:00000001 display_buffer_counter
*COM*:00000001 display_page_counter
*COM*:00000001 display_mode
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
base64_send
get_message
lcd_cls
lcd_printp
key
timer
lcd_print_at
/Transportables_Koptertool/trunk/V-0.1/font8x6.h
0,0 → 1,9
 
#ifndef font8x6_h
#define font8x6_h
 
#include <avr/pgmspace.h>
 
extern prog_uint8_t f8x6[256][6];
 
#endif
/Transportables_Koptertool/trunk/V-0.1/lcd.c
0,0 → 1,557
 
#define F_CPU 7372800UL
#include <avr/io.h>
#include <inttypes.h>
#include <stdlib.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
 
#include "font8x6.h"
#include "main.h"
#include "lcd.h"
 
#define DISP_W 128
#define DISP_H 64
// #define LCD_ORIENTATION 0 // 0 MJ Tasten unten / 4 Original Tasten oben
 
 
uint8_t lcd_xpos;
uint8_t lcd_ypos;
//volatile uint8_t display_buffer[1024]; // Display-Puffer, weil nicht zurückgelesen werden kann
//volatile uint16_t display_buffer_pointer; // Pointer auf das aktuell übertragene Byte
//volatile uint8_t display_buffer_counter; // Hilfszähler zur Selektierung der Page
//volatile uint8_t display_page_counter; // aktuelle Page-Nummer
//volatile uint8_t display_mode; // Modus für State-Machine
 
 
void send_byte (uint8_t data)
{
clr_cs();
SPDR = data;
while(!(SPSR & (1<<SPIF)));
SPSR = SPSR;
set_cs();
}
 
void cls (void)
{
uint16_t i,j;
for (i=0;i<1024;i++)
display_buffer[i] = 0x00;
for (i=0;i<8;i++)
{
clr_A0();
send_byte(0xB0+i); //1011xxxx
send_byte(0x10); //00010000
// send_byte(0x04); //00000100 gedreht plus 4 Byte
// send_byte(0x00); //00000000
send_byte(LCD_ORIENTATION); //00000000
 
set_A0();
for (j=0;j<128;j++)
send_byte(0x00);
}
lcd_xpos = 0;
lcd_ypos = 0;
}
 
void lcd_cls (void)
{
cls();
}
 
void wait_1ms(void)
{
_delay_ms (1.0);
}
 
void wait_ms (uint16_t time)
{
uint16_t i;
for (i=0; i<time; i++)
wait_1ms();
}
 
void lcd_init (void)
{
lcd_xpos = 0;
lcd_ypos = 0;
 
DDRB = 0xFF;
SPCR = (1<<SPE)|(1<<MSTR)|(1<<CPHA)|(1<<CPOL)|(1<<SPR1);
set_cs();
clr_reset();
wait_ms(10);
set_reset();
clr_cs();
clr_A0();
send_byte(0x40);
 
if (LCD_ORIENTATION == 0)
{
send_byte(0xA1); // A1 normal A0 reverse(original)
send_byte(0xC0); // C0 normal C8 reverse(original)
}
else
{
send_byte(0xA0); // A1 normal A0 reverse(original)
send_byte(0xC8); // C0 normal C8 reverse(original)
}
send_byte(0xA6);
send_byte(0xA2);
send_byte(0x2F);
send_byte(0xF8);
send_byte(0x00);
send_byte(0x27);
send_byte(0x81);
send_byte(0x16);
send_byte(0xAC);
send_byte(0x00);
send_byte(0xAF);
cls();
 
}
 
void set_adress (uint16_t adress, uint8_t data)
{
uint8_t page;
uint8_t column;
page = adress >> 7;
clr_A0();
send_byte(0xB0 + page);
// column = (adress & 0x7F) + 4; Wenn gedreht
// column = (adress & 0x7F);
column = (adress & 0x7F) + LCD_ORIENTATION;
 
send_byte(0x10 + (column >> 4));
send_byte(column & 0x0F);
set_A0();
send_byte(data);
}
 
void scroll (void)
{
uint16_t adress;
for (adress=0;adress<896;adress++)
{
display_buffer[adress] = display_buffer[adress+128];
set_adress(adress,display_buffer[adress]);
}
for (adress=896;adress<1024;adress++)
{
display_buffer[adress] = 0;
set_adress(adress,0);
}
}
 
//
// x,y = character-Pos. !
//
// mode: 0=Overwrite, 1 = OR, 2 = XOR, 3 = AND, 4 = Delete
void put_char (uint8_t x, uint8_t y, uint8_t c, uint8_t mode)
{
uint8_t ch;
uint8_t i;
uint16_t adress;
 
switch(c)
{
case 'ä':
c = 0x84;
break;
case 'ö':
c = 0x94;
break;
case 'ü':
c = 0x81;
break;
case 'Ä':
c = 0x8E;
break;
case 'Ö':
c = 0x99;
break;
case 'Ü':
c = 0x9A;
break;
case 'ß':
c = 0xE1;
break;
}
adress = y*128 + x*6;
adress &= 0x3FF;
for (i=0;i<6;i++)
{
ch = pgm_read_byte (&f8x6[0][0] + i + c * 6);
switch (mode)
{
case 0:
display_buffer[adress+i] = ch;
break;
case 1:
display_buffer[adress+i] |= ch;
break;
case 2:
display_buffer[adress+i] ^= ch;
break;
case 3:
display_buffer[adress+i] &= ch;
break;
case 4:
display_buffer[adress+i] &= ~ch;
break;
}
set_adress(adress+i,display_buffer[adress+i]);
}
}
 
void new_line (void)
{
lcd_ypos++;
if (lcd_ypos > 7)
{
scroll();
lcd_ypos = 7;
}
}
 
 
void lcd_printp (const char *text, uint8_t mode)
{
while (pgm_read_byte(text))
{
if (pgm_read_byte(text) > 0x1F)
{
put_char(lcd_xpos,lcd_ypos,pgm_read_byte(text++),mode);
lcd_xpos++;
if (lcd_xpos > 20)
{
lcd_xpos = 0;
new_line();
}
}
else
{
switch (pgm_read_byte(text))
{
case 0x0D:
lcd_xpos = 0;
break;
case 0x0A:
new_line();
break;
}
text++;
}
}
}
 
void lcd_print_atp (uint8_t x, uint8_t y, const char *text, uint8_t mode)
{
lcd_xpos = x;
lcd_ypos = y;
lcd_printp (text, mode);
}
 
 
void lcd_print (uint8_t *text, uint8_t mode)
{
while (*text)
{
if (*text > 0x1F)
{
put_char(lcd_xpos,lcd_ypos,*text++,mode);
lcd_xpos++;
if (lcd_xpos > 20)
{
lcd_xpos = 0;
new_line();
}
}
else
{
switch (*text)
{
case 0x0D:
lcd_xpos = 0;
break;
case 0x0A:
new_line();
break;
}
text++;
}
}
}
 
void lcd_print_at (uint8_t x, uint8_t y, uint8_t *text, uint8_t mode)
{
lcd_xpos = x;
lcd_ypos = y;
lcd_print(text, mode);
}
 
 
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Plot (set one Pixel)
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// mode:
// 0=Clear, 1=Set, 2=XOR
void lcd_plot (uint8_t xpos, uint8_t ypos, uint8_t mode)
{
uint16_t adress;
uint8_t mask;
if ((xpos < 128) && (ypos < 64))
{
adress = (ypos/8) * 128 + xpos; // adress = 0/8 * 128 + 0 = 0
mask = 1<<(ypos & 0x07); // mask = 1<<0 = 1
adress &= 0x3FF;
switch (mode)
{
case 0:
display_buffer[adress] &=~mask;
break;
case 1:
display_buffer[adress] |= mask;
break;
case 2:
display_buffer[adress] ^= mask;
break;
}
set_adress(adress,display_buffer[adress]);
}
}
 
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Line (draws a line from x1,y1 to x2,y2
// + Based on Bresenham line-Algorithm
// + found in the internet, modified by thkais 2007
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
void lcd_line(unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, uint8_t mode)
 
{
int x,y,count,xs,ys,xm,ym;
 
x=(int)x1;
y=(int)y1;
xs=(int)x2 - (int)x1;
ys=(int)y2 - (int)y1;
if(xs < 0)
xm= -1;
else
if(xs > 0)
xm= 1;
else
xm= 0;
if(ys < 0)
ym= -1;
else
if(ys > 0)
ym= 1;
else
ym= 0;
if(xs < 0)
xs= -xs;
if(ys < 0)
ys= -ys;
 
lcd_plot((unsigned char)x, (unsigned char)y, mode);
 
if(xs > ys) // Flat Line <45 degrees
{
count= -(xs / 2);
while(x != x2)
{
count= count + ys;
x= x + xm;
if(count > 0)
{
y= y + ym;
count= count - xs;
}
lcd_plot((unsigned char)x, (unsigned char)y, mode);
}
}
else // Line >=45 degrees
{
count=- (ys / 2);
while(y != y2)
{
count= count + xs;
y= y + ym;
if(count > 0)
{
x= x + xm;
count= count - ys;
}
lcd_plot((unsigned char)x, (unsigned char)y, mode);
}
}
}
 
 
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Filled rectangle
// + x1, y1 = upper left corner
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
void lcd_frect (uint8_t x1, uint8_t y1, uint8_t widthx, uint8_t widthy, uint8_t mode)
{
uint16_t x2, y2;
uint16_t i;
 
if (x1 >= DISP_W)
x1 = DISP_W - 1;
if (y1 >= DISP_H)
y1 = DISP_H - 1;
x2 = x1 + widthx;
y2 = y1 + widthy;
if (x2 > DISP_W)
x2 = DISP_W;
if (y2 > DISP_H)
y2 = DISP_H;
for (i=y1;i<=y2;i++)
{
lcd_line(x1,i,x2,i,mode);
}
}
 
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + outline of rectangle
// + x1, y1 = upper left corner
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
void lcd_rect (uint8_t x1, uint8_t y1, uint8_t widthx, uint8_t widthy, uint8_t mode)
{
uint16_t x2, y2;
 
if (x1 >= DISP_W)
x1 = DISP_W - 1;
if (y1 >= DISP_H)
y1 = DISP_H - 1;
x2 = x1 + widthx;
y2 = y1 + widthy;
if (x2 > DISP_W)
x2 = DISP_W;
if (y2 > DISP_H)
y2 = DISP_H;
 
lcd_line (x1, y1, x2, y1, mode);
lcd_line (x2, y1, x2, y2, mode);
lcd_line (x2, y2, x1, y2, mode);
lcd_line (x1, y2, x1, y1, mode);
}
 
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + outline of a circle
// + Based on Bresenham-algorithm found in wikipedia
// + modified by thkais (2007)
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 
void draw_circle(int16_t x0, int16_t y0, int16_t radius, uint8_t mode)
{
int16_t f = 1 - radius;
int16_t ddF_x = 0;
int16_t ddF_y = -2 * radius;
int16_t x = 0;
int16_t y = radius;
 
lcd_plot(x0, y0 + radius, mode);
lcd_plot(x0, y0 - radius, mode);
lcd_plot(x0 + radius, y0, mode);
lcd_plot(x0 - radius, y0, mode);
 
while(x < y)
{
if(f >= 0)
{
y --;
ddF_y += 2;
f += ddF_y;
}
x ++;
ddF_x += 2;
f += ddF_x + 1;
 
lcd_plot(x0 + x, y0 + y, mode);
lcd_plot(x0 - x, y0 + y, mode);
lcd_plot(x0 + x, y0 - y, mode);
lcd_plot(x0 - x, y0 - y, mode);
lcd_plot(x0 + y, y0 + x, mode);
lcd_plot(x0 - y, y0 + x, mode);
lcd_plot(x0 + y, y0 - x, mode);
lcd_plot(x0 - y, y0 - x, mode);
}
}
 
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + filled Circle
// + modified circle-algorithm thkais (2007)
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
void draw_fcircle(int16_t x0, int16_t y0, int16_t radius)
{
int16_t f = 1 - radius;
int16_t ddF_x = 0;
int16_t ddF_y = -2 * radius;
int16_t x = 0;
int16_t y = radius;
lcd_line(x0, y0 + radius,x0, y0 - radius,1);
lcd_line(x0 + radius, y0,x0 - radius, y0,1);
while(x < y)
{
if(f >= 0)
{
y--;
ddF_y += 2;
f += ddF_y;
}
x++;
ddF_x += 2;
f += ddF_x + 1;
lcd_line(x0 + x, y0 + y,x0 - x, y0 + y,1);
lcd_line(x0 + x, y0 - y,x0 - x, y0 - y,1);
lcd_line(x0 + y, y0 + x,x0 - y, y0 + x,1);
lcd_line(x0 + y, y0 - x,x0 - y, y0 - x,1);
}
}
/Transportables_Koptertool/trunk/V-0.1/lcd.d
0,0 → 1,0
lcd.o lcd.d : lcd.c font8x6.h main.h lcd.h
/Transportables_Koptertool/trunk/V-0.1/lcd.h
0,0 → 1,27
 
#ifndef graphics_h
#define graphics_h
 
void lcd_init (void);
void lcd_plot (uint8_t x, uint8_t y, uint8_t mode);
void lcd_rect (uint8_t x1, uint8_t y1, uint8_t widthx, uint8_t widthy,uint8_t mode);
void lcd_frect (uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t mode);
void draw_circle(int16_t x0, int16_t y0, int16_t radius, uint8_t mode);
void draw_fcircle(int16_t x0, int16_t y0, int16_t radius);
void put_char (uint8_t x, uint8_t y, uint8_t c, uint8_t mode);
void lcd_line(unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, uint8_t mode);
void send_byte (uint8_t data);
void lcd_print(uint8_t *text, uint8_t mode);
void lcd_print_at (uint8_t x, uint8_t y, uint8_t *text, uint8_t mode);
void lcd_printp (const char *text, uint8_t mode);
void lcd_print_atp (uint8_t x, uint8_t y, const char *text, uint8_t mode);
void lcd_cls (void);
 
volatile uint8_t display_buffer[1024]; // Display-Puffer, weil nicht zurückgelesen werden kann
volatile uint16_t display_buffer_pointer; // Pointer auf das aktuell übertragene Byte
volatile uint8_t display_buffer_counter; // Hilfszähler zur Selektierung der Page
volatile uint8_t display_page_counter; // aktuelle Page-Nummer
volatile uint8_t display_mode; // Modus für State-Machine
volatile uint8_t LCD_ORIENTATION;
 
#endif
/Transportables_Koptertool/trunk/V-0.1/lcd.lst
0,0 → 1,1805
1 .file "lcd.c"
2 .arch atmega32
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
17 .Ltext0:
18 .global send_byte
20 send_byte:
21 .LFB8:
22 .LM1:
23 /* prologue: frame size=0 */
24 /* prologue end (size=0) */
25 .LM2:
26 0000 C498 cbi 56-0x20,4
27 .LM3:
28 0002 8FB9 out 47-0x20,r24
29 .L2:
30 .LM4:
31 0004 779B sbis 46-0x20,7
32 0006 FECF rjmp .L2
33 .LM5:
34 0008 8EB1 in r24,46-0x20
35 000a 8EB9 out 46-0x20,r24
36 .LM6:
37 000c C49A sbi 56-0x20,4
38 /* epilogue: frame size=0 */
39 000e 0895 ret
40 /* epilogue end (size=1) */
41 /* function send_byte size 8 (7) */
42 .LFE8:
44 .global cls
46 cls:
47 .LFB9:
48 .LM7:
49 /* prologue: frame size=0 */
50 0010 0F93 push r16
51 0012 1F93 push r17
52 0014 CF93 push r28
53 0016 DF93 push r29
54 /* prologue end (size=4) */
55 0018 80E0 ldi r24,lo8(display_buffer)
56 001a 90E0 ldi r25,hi8(display_buffer)
57 001c FC01 movw r30,r24
58 .L9:
59 .LM8:
60 001e 1192 st Z+,__zero_reg__
61 0020 0196 adiw r24,1
62 .LM9:
63 0022 20E0 ldi r18,hi8(display_buffer+1023)
64 0024 8030 cpi r24,lo8(display_buffer+1023)
65 0026 9207 cpc r25,r18
66 0028 D1F3 breq .L9
67 002a C8F3 brlo .L9
68 .LM10:
69 002c 00E0 ldi r16,lo8(0)
70 002e 10E0 ldi r17,hi8(0)
71 .L17:
72 .LM11:
73 0030 C398 cbi 56-0x20,3
74 .LM12:
75 0032 802F mov r24,r16
76 0034 8055 subi r24,lo8(-(-80))
77 0036 0E94 0000 call send_byte
78 .LM13:
79 003a 80E1 ldi r24,lo8(16)
80 003c 0E94 0000 call send_byte
81 .LM14:
82 0040 84E0 ldi r24,lo8(4)
83 0042 0E94 0000 call send_byte
84 .LM15:
85 0046 C39A sbi 56-0x20,3
86 0048 CFE7 ldi r28,lo8(127)
87 004a D0E0 ldi r29,hi8(127)
88 .L16:
89 .LM16:
90 004c 80E0 ldi r24,lo8(0)
91 004e 0E94 0000 call send_byte
92 .LM17:
93 0052 2197 sbiw r28,1
94 0054 D7FF sbrs r29,7
95 0056 FACF rjmp .L16
96 .LM18:
97 0058 0F5F subi r16,lo8(-(1))
98 005a 1F4F sbci r17,hi8(-(1))
99 005c 0830 cpi r16,8
100 005e 1105 cpc r17,__zero_reg__
101 0060 38F3 brlo .L17
102 .LM19:
103 0062 1092 0000 sts lcd_xpos,__zero_reg__
104 .LM20:
105 0066 1092 0000 sts lcd_ypos,__zero_reg__
106 /* epilogue: frame size=0 */
107 006a DF91 pop r29
108 006c CF91 pop r28
109 006e 1F91 pop r17
110 0070 0F91 pop r16
111 0072 0895 ret
112 /* epilogue end (size=5) */
113 /* function cls size 50 (41) */
114 .LFE9:
116 .global lcd_cls
118 lcd_cls:
119 .LFB10:
120 .LM21:
121 /* prologue: frame size=0 */
122 /* prologue end (size=0) */
123 .LM22:
124 0074 0E94 0000 call cls
125 /* epilogue: frame size=0 */
126 0078 0895 ret
127 /* epilogue end (size=1) */
128 /* function lcd_cls size 3 (2) */
129 .LFE10:
131 .global wait_1ms
133 wait_1ms:
134 .LFB11:
135 .LM23:
136 /* prologue: frame size=0 */
137 /* prologue end (size=0) */
138 .LBB2:
139 .LBB3:
140 .LM24:
141 007a 83E3 ldi r24,lo8(1843)
142 007c 97E0 ldi r25,hi8(1843)
143 .LBB4:
144 .LBB5:
145 .LM25:
146 /* #APP */
147 007e 0197 1: sbiw r24,1
148 0080 F1F7 brne 1b
149 /* #NOAPP */
150 .LBE5:
151 .LBE4:
152 .LBE3:
153 .LBE2:
154 /* epilogue: frame size=0 */
155 0082 0895 ret
156 /* epilogue end (size=1) */
157 /* function wait_1ms size 7 (6) */
158 .LFE11:
160 .global wait_ms
162 wait_ms:
163 .LFB12:
164 .LM26:
165 /* prologue: frame size=0 */
166 0084 0F93 push r16
167 0086 1F93 push r17
168 0088 CF93 push r28
169 008a DF93 push r29
170 /* prologue end (size=4) */
171 008c 8C01 movw r16,r24
172 .LM27:
173 008e C0E0 ldi r28,lo8(0)
174 0090 D0E0 ldi r29,hi8(0)
175 0092 C817 cp r28,r24
176 0094 D907 cpc r29,r25
177 0096 30F4 brsh .L40
178 .L38:
179 .LM28:
180 0098 0E94 0000 call wait_1ms
181 .LM29:
182 009c 2196 adiw r28,1
183 009e C017 cp r28,r16
184 00a0 D107 cpc r29,r17
185 00a2 D0F3 brlo .L38
186 .L40:
187 /* epilogue: frame size=0 */
188 00a4 DF91 pop r29
189 00a6 CF91 pop r28
190 00a8 1F91 pop r17
191 00aa 0F91 pop r16
192 00ac 0895 ret
193 /* epilogue end (size=5) */
194 /* function wait_ms size 21 (12) */
195 .LFE12:
197 .global lcd_init
199 lcd_init:
200 .LFB13:
201 .LM30:
202 /* prologue: frame size=0 */
203 /* prologue end (size=0) */
204 .LM31:
205 00ae 1092 0000 sts lcd_xpos,__zero_reg__
206 .LM32:
207 00b2 1092 0000 sts lcd_ypos,__zero_reg__
208 .LM33:
209 00b6 8FEF ldi r24,lo8(-1)
210 00b8 87BB out 55-0x20,r24
211 .LM34:
212 00ba 8EE5 ldi r24,lo8(94)
213 00bc 8DB9 out 45-0x20,r24
214 .LM35:
215 00be C49A sbi 56-0x20,4
216 .LM36:
217 00c0 C298 cbi 56-0x20,2
218 .LM37:
219 00c2 8AE0 ldi r24,lo8(10)
220 00c4 90E0 ldi r25,hi8(10)
221 00c6 0E94 0000 call wait_ms
222 .LM38:
223 00ca C29A sbi 56-0x20,2
224 .LM39:
225 00cc C498 cbi 56-0x20,4
226 .LM40:
227 00ce C398 cbi 56-0x20,3
228 .LM41:
229 00d0 80E4 ldi r24,lo8(64)
230 00d2 0E94 0000 call send_byte
231 .LM42:
232 00d6 80EA ldi r24,lo8(-96)
233 00d8 0E94 0000 call send_byte
234 .LM43:
235 00dc 88EC ldi r24,lo8(-56)
236 00de 0E94 0000 call send_byte
237 .LM44:
238 00e2 86EA ldi r24,lo8(-90)
239 00e4 0E94 0000 call send_byte
240 .LM45:
241 00e8 82EA ldi r24,lo8(-94)
242 00ea 0E94 0000 call send_byte
243 .LM46:
244 00ee 8FE2 ldi r24,lo8(47)
245 00f0 0E94 0000 call send_byte
246 .LM47:
247 00f4 88EF ldi r24,lo8(-8)
248 00f6 0E94 0000 call send_byte
249 .LM48:
250 00fa 80E0 ldi r24,lo8(0)
251 00fc 0E94 0000 call send_byte
252 .LM49:
253 0100 87E2 ldi r24,lo8(39)
254 0102 0E94 0000 call send_byte
255 .LM50:
256 0106 81E8 ldi r24,lo8(-127)
257 0108 0E94 0000 call send_byte
258 .LM51:
259 010c 86E1 ldi r24,lo8(22)
260 010e 0E94 0000 call send_byte
261 .LM52:
262 0112 8CEA ldi r24,lo8(-84)
263 0114 0E94 0000 call send_byte
264 .LM53:
265 0118 80E0 ldi r24,lo8(0)
266 011a 0E94 0000 call send_byte
267 .LM54:
268 011e 8FEA ldi r24,lo8(-81)
269 0120 0E94 0000 call send_byte
270 .LM55:
271 0124 0E94 0000 call cls
272 /* epilogue: frame size=0 */
273 0128 0895 ret
274 /* epilogue end (size=1) */
275 /* function lcd_init size 62 (61) */
276 .LFE13:
278 .global set_adress
280 set_adress:
281 .LFB14:
282 .LM56:
283 /* prologue: frame size=0 */
284 012a FF92 push r15
285 012c 0F93 push r16
286 012e 1F93 push r17
287 /* prologue end (size=3) */
288 0130 8C01 movw r16,r24
289 0132 F62E mov r15,r22
290 .LM57:
291 0134 880F lsl r24
292 0136 892F mov r24,r25
293 0138 881F rol r24
294 013a 990B sbc r25,r25
295 013c 9195 neg r25
296 .LM58:
297 013e C398 cbi 56-0x20,3
298 .LM59:
299 0140 8055 subi r24,lo8(-(-80))
300 0142 0E94 0000 call send_byte
301 .LM60:
302 0146 102F mov r17,r16
303 0148 1F77 andi r17,lo8(127)
304 014a 1C5F subi r17,lo8(-(4))
305 .LM61:
306 014c 812F mov r24,r17
307 014e 8295 swap r24
308 0150 8F70 andi r24,0x0f
309 0152 805F subi r24,lo8(-(16))
310 0154 0E94 0000 call send_byte
311 .LM62:
312 0158 812F mov r24,r17
313 015a 8F70 andi r24,lo8(15)
314 015c 0E94 0000 call send_byte
315 .LM63:
316 0160 C39A sbi 56-0x20,3
317 .LM64:
318 0162 8F2D mov r24,r15
319 0164 0E94 0000 call send_byte
320 /* epilogue: frame size=0 */
321 0168 1F91 pop r17
322 016a 0F91 pop r16
323 016c FF90 pop r15
324 016e 0895 ret
325 /* epilogue end (size=4) */
326 /* function set_adress size 35 (28) */
327 .LFE14:
329 .global scroll
331 scroll:
332 .LFB15:
333 .LM65:
334 /* prologue: frame size=0 */
335 0170 EF92 push r14
336 0172 FF92 push r15
337 0174 0F93 push r16
338 0176 1F93 push r17
339 0178 CF93 push r28
340 017a DF93 push r29
341 /* prologue end (size=6) */
342 .LM66:
343 017c C0E0 ldi r28,lo8(0)
344 017e D0E0 ldi r29,hi8(0)
345 0180 30E0 ldi r19,lo8(display_buffer+128)
346 0182 E32E mov r14,r19
347 0184 30E0 ldi r19,hi8(display_buffer+128)
348 0186 F32E mov r15,r19
349 0188 8701 movw r16,r14
350 018a 0058 subi r16,lo8(-(-128))
351 018c 1040 sbci r17,hi8(-(-128))
352 .L47:
353 .LM67:
354 018e F701 movw r30,r14
355 0190 8191 ld r24,Z+
356 0192 7F01 movw r14,r30
357 0194 F801 movw r30,r16
358 0196 8083 st Z,r24
359 .LM68:
360 0198 6191 ld r22,Z+
361 019a 8F01 movw r16,r30
362 019c CE01 movw r24,r28
363 019e 0E94 0000 call set_adress
364 .LM69:
365 01a2 2196 adiw r28,1
366 01a4 F3E0 ldi r31,hi8(896)
367 01a6 C038 cpi r28,lo8(896)
368 01a8 DF07 cpc r29,r31
369 01aa 88F3 brlo .L47
370 01ac C0E8 ldi r28,lo8(896)
371 01ae D3E0 ldi r29,hi8(896)
372 01b0 00E0 ldi r16,lo8(display_buffer+896)
373 01b2 10E0 ldi r17,hi8(display_buffer+896)
374 .L51:
375 .LM70:
376 01b4 F801 movw r30,r16
377 01b6 1192 st Z+,__zero_reg__
378 01b8 8F01 movw r16,r30
379 .LM71:
380 01ba 60E0 ldi r22,lo8(0)
381 01bc CE01 movw r24,r28
382 01be 0E94 0000 call set_adress
383 .LM72:
384 01c2 2196 adiw r28,1
385 01c4 F4E0 ldi r31,hi8(1024)
386 01c6 C030 cpi r28,lo8(1024)
387 01c8 DF07 cpc r29,r31
388 01ca A0F3 brlo .L51
389 /* epilogue: frame size=0 */
390 01cc DF91 pop r29
391 01ce CF91 pop r28
392 01d0 1F91 pop r17
393 01d2 0F91 pop r16
394 01d4 FF90 pop r15
395 01d6 EF90 pop r14
396 01d8 0895 ret
397 /* epilogue end (size=7) */
398 /* function scroll size 53 (40) */
399 .LFE15:
401 .global put_char
403 put_char:
404 .LFB16:
405 .LM73:
406 /* prologue: frame size=0 */
407 01da BF92 push r11
408 01dc CF92 push r12
409 01de DF92 push r13
410 01e0 EF92 push r14
411 01e2 FF92 push r15
412 01e4 0F93 push r16
413 01e6 1F93 push r17
414 01e8 CF93 push r28
415 01ea DF93 push r29
416 /* prologue end (size=9) */
417 01ec 382F mov r19,r24
418 01ee F42E mov r15,r20
419 01f0 B22E mov r11,r18
420 .LM74:
421 01f2 842F mov r24,r20
422 01f4 9927 clr r25
423 01f6 8F3D cpi r24,223
424 01f8 9105 cpc r25,__zero_reg__
425 01fa 89F1 breq .L64
426 .LM75:
427 01fc 803E cpi r24,224
428 01fe 9105 cpc r25,__zero_reg__
429 0200 74F4 brge .L65
430 0202 863D cpi r24,214
431 0204 9105 cpc r25,__zero_reg__
432 0206 29F1 breq .L62
433 0208 873D cpi r24,215
434 020a 9105 cpc r25,__zero_reg__
435 020c 24F4 brge .L66
436 020e 843C cpi r24,196
437 0210 9105 cpc r25,__zero_reg__
438 0212 E1F0 breq .L61
439 0214 26C0 rjmp .L57
440 .L66:
441 0216 8C3D cpi r24,220
442 0218 9105 cpc r25,__zero_reg__
443 021a F1F0 breq .L63
444 021c 22C0 rjmp .L57
445 .L65:
446 021e 863F cpi r24,246
447 0220 9105 cpc r25,__zero_reg__
448 0222 71F0 breq .L59
449 0224 873F cpi r24,247
450 0226 9105 cpc r25,__zero_reg__
451 0228 24F4 brge .L67
452 022a 843E cpi r24,228
453 022c 9105 cpc r25,__zero_reg__
454 022e 29F0 breq .L58
455 0230 18C0 rjmp .L57
456 .L67:
457 0232 8C3F cpi r24,252
458 0234 9105 cpc r25,__zero_reg__
459 0236 39F0 breq .L60
460 0238 14C0 rjmp .L57
461 .L58:
462 .LM76:
463 023a 14E8 ldi r17,lo8(-124)
464 023c F12E mov r15,r17
465 .LM77:
466 023e 11C0 rjmp .L57
467 .L59:
468 .LM78:
469 0240 C4E9 ldi r28,lo8(-108)
470 0242 FC2E mov r15,r28
471 .LM79:
472 0244 0EC0 rjmp .L57
473 .L60:
474 .LM80:
475 0246 B1E8 ldi r27,lo8(-127)
476 0248 FB2E mov r15,r27
477 .LM81:
478 024a 0BC0 rjmp .L57
479 .L61:
480 .LM82:
481 024c AEE8 ldi r26,lo8(-114)
482 024e FA2E mov r15,r26
483 .LM83:
484 0250 08C0 rjmp .L57
485 .L62:
486 .LM84:
487 0252 F9E9 ldi r31,lo8(-103)
488 0254 FF2E mov r15,r31
489 .LM85:
490 0256 05C0 rjmp .L57
491 .L63:
492 .LM86:
493 0258 EAE9 ldi r30,lo8(-102)
494 025a FE2E mov r15,r30
495 .LM87:
496 025c 02C0 rjmp .L57
497 .L64:
498 .LM88:
499 025e 71EE ldi r23,lo8(-31)
500 0260 F72E mov r15,r23
501 .L57:
502 .LM89:
503 0262 C62F mov r28,r22
504 0264 DD27 clr r29
505 0266 D695 lsr r29
506 0268 DC2F mov r29,r28
507 026a CC27 clr r28
508 026c D795 ror r29
509 026e C795 ror r28
510 0270 86E0 ldi r24,lo8(6)
511 0272 389F mul r19,r24
512 0274 C001 movw r24,r0
513 0276 1124 clr r1
514 0278 C80F add r28,r24
515 027a D91F adc r29,r25
516 .LM90:
517 027c D370 andi r29,hi8(1023)
518 027e 6E01 movw r12,r28
519 0280 00E0 ldi r16,lo8(0)
520 0282 10E0 ldi r17,hi8(0)
521 0284 45E0 ldi r20,lo8(5)
522 0286 E42E mov r14,r20
523 .L78:
524 .LBB6:
525 .LM91:
526 0288 86E0 ldi r24,lo8(6)
527 028a F89E mul r15,r24
528 028c F001 movw r30,r0
529 028e 1124 clr r1
530 0290 E00F add r30,r16
531 0292 F11F adc r31,r17
532 0294 E050 subi r30,lo8(-(f8x6))
533 0296 F040 sbci r31,hi8(-(f8x6))
534 /* #APP */
535 0298 2491 lpm r18, Z
536
537 /* #NOAPP */
538 .LBE6:
539 .LM92:
540 029a 8B2D mov r24,r11
541 029c 9927 clr r25
542 029e 8230 cpi r24,2
543 02a0 9105 cpc r25,__zero_reg__
544 02a2 E9F0 breq .L74
545 02a4 8330 cpi r24,3
546 02a6 9105 cpc r25,__zero_reg__
547 02a8 2CF4 brge .L77
548 02aa 0097 sbiw r24,0
549 02ac 49F0 breq .L72
550 02ae 0197 sbiw r24,1
551 02b0 71F0 breq .L73
552 02b2 2CC0 rjmp .L71
553 .L77:
554 02b4 8330 cpi r24,3
555 02b6 9105 cpc r25,__zero_reg__
556 02b8 D1F0 breq .L75
557 02ba 0497 sbiw r24,4
558 02bc F1F0 breq .L76
559 02be 26C0 rjmp .L71
560 .L72:
561 .LM93:
562 02c0 FE01 movw r30,r28
563 02c2 E050 subi r30,lo8(-(display_buffer))
564 02c4 F040 sbci r31,hi8(-(display_buffer))
565 02c6 E00F add r30,r16
566 02c8 F11F adc r31,r17
567 02ca 2083 st Z,r18
568 .LM94:
569 02cc 1FC0 rjmp .L71
570 .L73:
571 .LM95:
572 02ce FE01 movw r30,r28
573 02d0 E050 subi r30,lo8(-(display_buffer))
574 02d2 F040 sbci r31,hi8(-(display_buffer))
575 02d4 E00F add r30,r16
576 02d6 F11F adc r31,r17
577 02d8 8081 ld r24,Z
578 02da 822B or r24,r18
579 02dc 16C0 rjmp .L82
580 .L74:
581 .LM96:
582 02de FE01 movw r30,r28
583 02e0 E050 subi r30,lo8(-(display_buffer))
584 02e2 F040 sbci r31,hi8(-(display_buffer))
585 02e4 E00F add r30,r16
586 02e6 F11F adc r31,r17
587 02e8 8081 ld r24,Z
588 02ea 8227 eor r24,r18
589 02ec 0EC0 rjmp .L82
590 .L75:
591 .LM97:
592 02ee FE01 movw r30,r28
593 02f0 E050 subi r30,lo8(-(display_buffer))
594 02f2 F040 sbci r31,hi8(-(display_buffer))
595 02f4 E00F add r30,r16
596 02f6 F11F adc r31,r17
597 02f8 06C0 rjmp .L81
598 .L76:
599 .LM98:
600 02fa FE01 movw r30,r28
601 02fc E050 subi r30,lo8(-(display_buffer))
602 02fe F040 sbci r31,hi8(-(display_buffer))
603 0300 E00F add r30,r16
604 0302 F11F adc r31,r17
605 0304 2095 com r18
606 .L81:
607 0306 8081 ld r24,Z
608 0308 8223 and r24,r18
609 .L82:
610 030a 8083 st Z,r24
611 .L71:
612 .LM99:
613 030c FE01 movw r30,r28
614 030e E050 subi r30,lo8(-(display_buffer))
615 0310 F040 sbci r31,hi8(-(display_buffer))
616 0312 E00F add r30,r16
617 0314 F11F adc r31,r17
618 0316 6081 ld r22,Z
619 0318 C601 movw r24,r12
620 031a 0E94 0000 call set_adress
621 .LM100:
622 031e EA94 dec r14
623 0320 0F5F subi r16,lo8(-(1))
624 0322 1F4F sbci r17,hi8(-(1))
625 0324 0894 sec
626 0326 C11C adc r12,__zero_reg__
627 0328 D11C adc r13,__zero_reg__
628 032a E7FE sbrs r14,7
629 032c ADCF rjmp .L78
630 /* epilogue: frame size=0 */
631 032e DF91 pop r29
632 0330 CF91 pop r28
633 0332 1F91 pop r17
634 0334 0F91 pop r16
635 0336 FF90 pop r15
636 0338 EF90 pop r14
637 033a DF90 pop r13
638 033c CF90 pop r12
639 033e BF90 pop r11
640 0340 0895 ret
641 /* epilogue end (size=10) */
642 /* function put_char size 186 (167) */
643 .LFE16:
645 .global new_line
647 new_line:
648 .LFB17:
649 .LM101:
650 /* prologue: frame size=0 */
651 /* prologue end (size=0) */
652 .LM102:
653 0342 8091 0000 lds r24,lcd_ypos
654 0346 8F5F subi r24,lo8(-(1))
655 0348 8093 0000 sts lcd_ypos,r24
656 .LM103:
657 034c 8830 cpi r24,lo8(8)
658 034e 28F0 brlo .L83
659 .LM104:
660 0350 0E94 0000 call scroll
661 .LM105:
662 0354 87E0 ldi r24,lo8(7)
663 0356 8093 0000 sts lcd_ypos,r24
664 .L83:
665 035a 0895 ret
666 /* epilogue: frame size=0 */
667 /* epilogue: noreturn */
668 /* epilogue end (size=0) */
669 /* function new_line size 13 (13) */
670 .LFE17:
672 .global lcd_printp
674 lcd_printp:
675 .LFB18:
676 .LM106:
677 /* prologue: frame size=0 */
678 035c 1F93 push r17
679 035e CF93 push r28
680 0360 DF93 push r29
681 /* prologue end (size=3) */
682 0362 EC01 movw r28,r24
683 0364 162F mov r17,r22
684 .LBB7:
685 .LM107:
686 0366 FC01 movw r30,r24
687 /* #APP */
688 0368 8491 lpm r24, Z
689
690 /* #NOAPP */
691 .LBE7:
692 036a 8823 tst r24
693 036c 51F1 breq .L96
694 .L94:
695 .LBB8:
696 .LM108:
697 036e FE01 movw r30,r28
698 /* #APP */
699 0370 8491 lpm r24, Z
700
701 /* #NOAPP */
702 .LBE8:
703 0372 8032 cpi r24,lo8(32)
704 0374 B0F0 brlo .L88
705 .LBB9:
706 .LM109:
707 0376 2196 adiw r28,1
708 /* #APP */
709 0378 8491 lpm r24, Z
710
711 /* #NOAPP */
712 .LBE9:
713 037a 212F mov r18,r17
714 037c 482F mov r20,r24
715 037e 6091 0000 lds r22,lcd_ypos
716 0382 8091 0000 lds r24,lcd_xpos
717 0386 0E94 0000 call put_char
718 .LM110:
719 038a 8091 0000 lds r24,lcd_xpos
720 038e 8F5F subi r24,lo8(-(1))
721 0390 8093 0000 sts lcd_xpos,r24
722 .LM111:
723 0394 8531 cpi r24,lo8(21)
724 0396 88F0 brlo .L86
725 .LM112:
726 0398 1092 0000 sts lcd_xpos,__zero_reg__
727 .LM113:
728 039c 0E94 0000 call new_line
729 03a0 0CC0 rjmp .L86
730 .L88:
731 .LM114:
732 03a2 9927 clr r25
733 03a4 8A30 cpi r24,10
734 03a6 9105 cpc r25,__zero_reg__
735 03a8 29F0 breq .L93
736 03aa 0D97 sbiw r24,13
737 03ac 29F4 brne .L91
738 .LM115:
739 03ae 1092 0000 sts lcd_xpos,__zero_reg__
740 .LM116:
741 03b2 02C0 rjmp .L91
742 .L93:
743 .LM117:
744 03b4 0E94 0000 call new_line
745 .L91:
746 .LM118:
747 03b8 2196 adiw r28,1
748 .L86:
749 .LBB10:
750 03ba FE01 movw r30,r28
751 /* #APP */
752 03bc 8491 lpm r24, Z
753
754 /* #NOAPP */
755 .LBE10:
756 03be 8823 tst r24
757 03c0 B1F6 brne .L94
758 .L96:
759 /* epilogue: frame size=0 */
760 03c2 DF91 pop r29
761 03c4 CF91 pop r28
762 03c6 1F91 pop r17
763 03c8 0895 ret
764 /* epilogue end (size=4) */
765 /* function lcd_printp size 68 (61) */
766 .LFE18:
768 .global lcd_print_atp
770 lcd_print_atp:
771 .LFB19:
772 .LM119:
773 /* prologue: frame size=0 */
774 /* prologue end (size=0) */
775 .LM120:
776 03ca 8093 0000 sts lcd_xpos,r24
777 .LM121:
778 03ce 6093 0000 sts lcd_ypos,r22
779 .LM122:
780 03d2 622F mov r22,r18
781 03d4 CA01 movw r24,r20
782 03d6 0E94 0000 call lcd_printp
783 /* epilogue: frame size=0 */
784 03da 0895 ret
785 /* epilogue end (size=1) */
786 /* function lcd_print_atp size 9 (8) */
787 .LFE19:
789 .global lcd_print
791 lcd_print:
792 .LFB20:
793 .LM123:
794 /* prologue: frame size=0 */
795 03dc 1F93 push r17
796 03de CF93 push r28
797 03e0 DF93 push r29
798 /* prologue end (size=3) */
799 03e2 EC01 movw r28,r24
800 03e4 162F mov r17,r22
801 .LM124:
802 03e6 8881 ld r24,Y
803 03e8 8823 tst r24
804 03ea 39F1 breq .L109
805 .L107:
806 .LM125:
807 03ec 4881 ld r20,Y
808 03ee 4032 cpi r20,lo8(32)
809 03f0 A0F0 brlo .L101
810 .LM126:
811 03f2 2196 adiw r28,1
812 03f4 212F mov r18,r17
813 03f6 6091 0000 lds r22,lcd_ypos
814 03fa 8091 0000 lds r24,lcd_xpos
815 03fe 0E94 0000 call put_char
816 .LM127:
817 0402 8091 0000 lds r24,lcd_xpos
818 0406 8F5F subi r24,lo8(-(1))
819 0408 8093 0000 sts lcd_xpos,r24
820 .LM128:
821 040c 8531 cpi r24,lo8(21)
822 040e 90F0 brlo .L99
823 .LM129:
824 0410 1092 0000 sts lcd_xpos,__zero_reg__
825 .LM130:
826 0414 0E94 0000 call new_line
827 0418 0DC0 rjmp .L99
828 .L101:
829 .LM131:
830 041a 5527 clr r21
831 041c 4A30 cpi r20,10
832 041e 5105 cpc r21,__zero_reg__
833 0420 31F0 breq .L106
834 0422 4D30 cpi r20,13
835 0424 5105 cpc r21,__zero_reg__
836 0426 29F4 brne .L104
837 .LM132:
838 0428 1092 0000 sts lcd_xpos,__zero_reg__
839 .LM133:
840 042c 02C0 rjmp .L104
841 .L106:
842 .LM134:
843 042e 0E94 0000 call new_line
844 .L104:
845 .LM135:
846 0432 2196 adiw r28,1
847 .L99:
848 0434 8881 ld r24,Y
849 0436 8823 tst r24
850 0438 C9F6 brne .L107
851 .L109:
852 /* epilogue: frame size=0 */
853 043a DF91 pop r29
854 043c CF91 pop r28
855 043e 1F91 pop r17
856 0440 0895 ret
857 /* epilogue end (size=4) */
858 /* function lcd_print size 51 (44) */
859 .LFE20:
861 .global lcd_print_at
863 lcd_print_at:
864 .LFB21:
865 .LM136:
866 /* prologue: frame size=0 */
867 /* prologue end (size=0) */
868 .LM137:
869 0442 8093 0000 sts lcd_xpos,r24
870 .LM138:
871 0446 6093 0000 sts lcd_ypos,r22
872 .LM139:
873 044a 622F mov r22,r18
874 044c CA01 movw r24,r20
875 044e 0E94 0000 call lcd_print
876 /* epilogue: frame size=0 */
877 0452 0895 ret
878 /* epilogue end (size=1) */
879 /* function lcd_print_at size 9 (8) */
880 .LFE21:
882 .global lcd_plot
884 lcd_plot:
885 .LFB22:
886 .LM140:
887 /* prologue: frame size=0 */
888 /* prologue end (size=0) */
889 0454 982F mov r25,r24
890 .LM141:
891 0456 87FD sbrc r24,7
892 0458 45C0 rjmp .L111
893 .LM142:
894 045a 6034 cpi r22,lo8(64)
895 045c 08F0 brlo .+2
896 045e 42C0 rjmp .L111
897 .LM143:
898 0460 862F mov r24,r22
899 0462 8695 lsr r24
900 0464 8695 lsr r24
901 0466 8695 lsr r24
902 0468 A82F mov r26,r24
903 046a BB27 clr r27
904 046c B695 lsr r27
905 046e BA2F mov r27,r26
906 0470 AA27 clr r26
907 0472 B795 ror r27
908 0474 A795 ror r26
909 0476 A90F add r26,r25
910 0478 B11D adc r27,__zero_reg__
911 .LM144:
912 047a 262F mov r18,r22
913 047c 3327 clr r19
914 047e 2770 andi r18,lo8(7)
915 0480 3070 andi r19,hi8(7)
916 0482 81E0 ldi r24,lo8(1)
917 0484 90E0 ldi r25,hi8(1)
918 0486 02C0 rjmp 2f
919 0488 880F 1: lsl r24
920 048a 991F rol r25
921 048c 2A95 2: dec r18
922 048e E2F7 brpl 1b
923 0490 982F mov r25,r24
924 .LM145:
925 0492 B370 andi r27,hi8(1023)
926 .LM146:
927 0494 5527 clr r21
928 0496 4130 cpi r20,1
929 0498 5105 cpc r21,__zero_reg__
930 049a 89F0 breq .L115
931 049c 4230 cpi r20,2
932 049e 5105 cpc r21,__zero_reg__
933 04a0 1CF4 brge .L117
934 04a2 452B or r20,r21
935 04a4 29F0 breq .L114
936 04a6 17C0 rjmp .L113
937 .L117:
938 04a8 4230 cpi r20,2
939 04aa 5105 cpc r21,__zero_reg__
940 04ac 71F0 breq .L116
941 04ae 13C0 rjmp .L113
942 .L114:
943 .LM147:
944 04b0 FD01 movw r30,r26
945 04b2 E050 subi r30,lo8(-(display_buffer))
946 04b4 F040 sbci r31,hi8(-(display_buffer))
947 04b6 9095 com r25
948 04b8 8081 ld r24,Z
949 04ba 8923 and r24,r25
950 04bc 0BC0 rjmp .L118
951 .L115:
952 .LM148:
953 04be FD01 movw r30,r26
954 04c0 E050 subi r30,lo8(-(display_buffer))
955 04c2 F040 sbci r31,hi8(-(display_buffer))
956 04c4 8081 ld r24,Z
957 04c6 892B or r24,r25
958 04c8 05C0 rjmp .L118
959 .L116:
960 .LM149:
961 04ca FD01 movw r30,r26
962 04cc E050 subi r30,lo8(-(display_buffer))
963 04ce F040 sbci r31,hi8(-(display_buffer))
964 04d0 8081 ld r24,Z
965 04d2 8927 eor r24,r25
966 .L118:
967 04d4 8083 st Z,r24
968 .L113:
969 .LM150:
970 04d6 FD01 movw r30,r26
971 04d8 E050 subi r30,lo8(-(display_buffer))
972 04da F040 sbci r31,hi8(-(display_buffer))
973 04dc 6081 ld r22,Z
974 04de CD01 movw r24,r26
975 04e0 0E94 0000 call set_adress
976 .L111:
977 04e4 0895 ret
978 /* epilogue: frame size=0 */
979 /* epilogue: noreturn */
980 /* epilogue end (size=0) */
981 /* function lcd_plot size 75 (75) */
982 .LFE22:
984 .global lcd_line
986 lcd_line:
987 .LFB23:
988 .LM151:
989 /* prologue: frame size=3 */
990 04e6 2F92 push r2
991 04e8 3F92 push r3
992 04ea 4F92 push r4
993 04ec 5F92 push r5
994 04ee 6F92 push r6
995 04f0 7F92 push r7
996 04f2 8F92 push r8
997 04f4 9F92 push r9
998 04f6 AF92 push r10
999 04f8 BF92 push r11
1000 04fa CF92 push r12
1001 04fc DF92 push r13
1002 04fe EF92 push r14
1003 0500 FF92 push r15
1004 0502 0F93 push r16
1005 0504 1F93 push r17
1006 0506 CF93 push r28
1007 0508 DF93 push r29
1008 050a CDB7 in r28,__SP_L__
1009 050c DEB7 in r29,__SP_H__
1010 050e 2397 sbiw r28,3
1011 0510 0FB6 in __tmp_reg__,__SREG__
1012 0512 F894 cli
1013 0514 DEBF out __SP_H__,r29
1014 0516 0FBE out __SREG__,__tmp_reg__
1015 0518 CDBF out __SP_L__,r28
1016 /* prologue end (size=26) */
1017 051a 0983 std Y+1,r16
1018 .LM152:
1019 051c A82E mov r10,r24
1020 051e BB24 clr r11
1021 .LM153:
1022 0520 C62E mov r12,r22
1023 0522 DD24 clr r13
1024 .LM154:
1025 0524 642E mov r6,r20
1026 0526 7724 clr r7
1027 0528 7301 movw r14,r6
1028 052a EA18 sub r14,r10
1029 052c FB08 sbc r15,r11
1030 .LM155:
1031 052e 822E mov r8,r18
1032 0530 9924 clr r9
1033 0532 8401 movw r16,r8
1034 0534 0C19 sub r16,r12
1035 0536 1D09 sbc r17,r13
1036 .LM156:
1037 0538 F7FE sbrs r15,7
1038 053a 04C0 rjmp .L120
1039 .LM157:
1040 053c 7FEF ldi r23,lo8(-1)
1041 053e 272E mov r2,r23
1042 0540 372E mov r3,r23
1043 0542 09C0 rjmp .L121
1044 .L120:
1045 .LM158:
1046 0544 1E14 cp __zero_reg__,r14
1047 0546 1F04 cpc __zero_reg__,r15
1048 0548 24F4 brge .L122
1049 .LM159:
1050 054a 61E0 ldi r22,lo8(1)
1051 054c 262E mov r2,r22
1052 054e 312C mov r3,__zero_reg__
1053 0550 02C0 rjmp .L121
1054 .L122:
1055 .LM160:
1056 0552 2224 clr r2
1057 0554 3324 clr r3
1058 .L121:
1059 .LM161:
1060 0556 17FF sbrs r17,7
1061 0558 04C0 rjmp .L124
1062 .LM162:
1063 055a 5FEF ldi r21,lo8(-1)
1064 055c 452E mov r4,r21
1065 055e 552E mov r5,r21
1066 0560 09C0 rjmp .L125
1067 .L124:
1068 .LM163:
1069 0562 1016 cp __zero_reg__,r16
1070 0564 1106 cpc __zero_reg__,r17
1071 0566 24F4 brge .L126
1072 .LM164:
1073 0568 41E0 ldi r20,lo8(1)
1074 056a 442E mov r4,r20
1075 056c 512C mov r5,__zero_reg__
1076 056e 02C0 rjmp .L125
1077 .L126:
1078 .LM165:
1079 0570 4424 clr r4
1080 0572 5524 clr r5
1081 .L125:
1082 .LM166:
1083 0574 F7FE sbrs r15,7
1084 0576 04C0 rjmp .L128
1085 .LM167:
1086 0578 F094 com r15
1087 057a E194 neg r14
1088 057c F108 sbc r15,__zero_reg__
1089 057e F394 inc r15
1090 .L128:
1091 .LM168:
1092 0580 17FF sbrs r17,7
1093 0582 03C0 rjmp .L129
1094 .LM169:
1095 0584 1095 com r17
1096 0586 0195 neg r16
1097 0588 1F4F sbci r17,lo8(-1)
1098 .L129:
1099 .LM170:
1100 058a 4981 ldd r20,Y+1
1101 058c 6C2D mov r22,r12
1102 058e 8A2D mov r24,r10
1103 0590 0E94 0000 call lcd_plot
1104 .LM171:
1105 0594 0E15 cp r16,r14
1106 0596 1F05 cpc r17,r15
1107 0598 4CF5 brge .L130
1108 .LM172:
1109 059a C701 movw r24,r14
1110 059c F7FC sbrc r15,7
1111 059e 0196 adiw r24,1
1112 .L131:
1113 05a0 9595 asr r25
1114 05a2 8795 ror r24
1115 05a4 2227 clr r18
1116 05a6 3327 clr r19
1117 05a8 281B sub r18,r24
1118 05aa 390B sbc r19,r25
1119 05ac 3B83 std Y+3,r19
1120 05ae 2A83 std Y+2,r18
1121 .LM173:
1122 05b0 A614 cp r10,r6
1123 05b2 B704 cpc r11,r7
1124 05b4 09F4 brne .+2
1125 05b6 41C0 rjmp .L119
1126 .L135:
1127 .LM174:
1128 05b8 8A81 ldd r24,Y+2
1129 05ba 9B81 ldd r25,Y+3
1130 05bc 800F add r24,r16
1131 05be 911F adc r25,r17
1132 05c0 9B83 std Y+3,r25
1133 05c2 8A83 std Y+2,r24
1134 .LM175:
1135 05c4 A20C add r10,r2
1136 05c6 B31C adc r11,r3
1137 .LM176:
1138 05c8 1816 cp __zero_reg__,r24
1139 05ca 1906 cpc __zero_reg__,r25
1140 05cc 34F4 brge .L134
1141 .LM177:
1142 05ce C40C add r12,r4
1143 05d0 D51C adc r13,r5
1144 .LM178:
1145 05d2 8E19 sub r24,r14
1146 05d4 9F09 sbc r25,r15
1147 05d6 9B83 std Y+3,r25
1148 05d8 8A83 std Y+2,r24
1149 .L134:
1150 .LM179:
1151 05da 4981 ldd r20,Y+1
1152 05dc 6C2D mov r22,r12
1153 05de 8A2D mov r24,r10
1154 05e0 0E94 0000 call lcd_plot
1155 05e4 A614 cp r10,r6
1156 05e6 B704 cpc r11,r7
1157 05e8 39F7 brne .L135
1158 05ea 27C0 rjmp .L119
1159 .L130:
1160 .LM180:
1161 05ec C801 movw r24,r16
1162 05ee 17FD sbrc r17,7
1163 05f0 0196 adiw r24,1
1164 .L137:
1165 05f2 9595 asr r25
1166 05f4 8795 ror r24
1167 05f6 EE27 clr r30
1168 05f8 FF27 clr r31
1169 05fa E81B sub r30,r24
1170 05fc F90B sbc r31,r25
1171 05fe FB83 std Y+3,r31
1172 0600 EA83 std Y+2,r30
1173 .LM181:
1174 0602 C814 cp r12,r8
1175 0604 D904 cpc r13,r9
1176 0606 C9F0 breq .L119
1177 .L141:
1178 .LM182:
1179 0608 2A81 ldd r18,Y+2
1180 060a 3B81 ldd r19,Y+3
1181 060c 2E0D add r18,r14
1182 060e 3F1D adc r19,r15
1183 0610 3B83 std Y+3,r19
1184 0612 2A83 std Y+2,r18
1185 .LM183:
1186 0614 C40C add r12,r4
1187 0616 D51C adc r13,r5
1188 .LM184:
1189 0618 1216 cp __zero_reg__,r18
1190 061a 1306 cpc __zero_reg__,r19
1191 061c 34F4 brge .L140
1192 .LM185:
1193 061e A20C add r10,r2
1194 0620 B31C adc r11,r3
1195 .LM186:
1196 0622 201B sub r18,r16
1197 0624 310B sbc r19,r17
1198 0626 3B83 std Y+3,r19
1199 0628 2A83 std Y+2,r18
1200 .L140:
1201 .LM187:
1202 062a 4981 ldd r20,Y+1
1203 062c 6C2D mov r22,r12
1204 062e 8A2D mov r24,r10
1205 0630 0E94 0000 call lcd_plot
1206 0634 C814 cp r12,r8
1207 0636 D904 cpc r13,r9
1208 0638 39F7 brne .L141
1209 .L119:
1210 /* epilogue: frame size=3 */
1211 063a 2396 adiw r28,3
1212 063c 0FB6 in __tmp_reg__,__SREG__
1213 063e F894 cli
1214 0640 DEBF out __SP_H__,r29
1215 0642 0FBE out __SREG__,__tmp_reg__
1216 0644 CDBF out __SP_L__,r28
1217 0646 DF91 pop r29
1218 0648 CF91 pop r28
1219 064a 1F91 pop r17
1220 064c 0F91 pop r16
1221 064e FF90 pop r15
1222 0650 EF90 pop r14
1223 0652 DF90 pop r13
1224 0654 CF90 pop r12
1225 0656 BF90 pop r11
1226 0658 AF90 pop r10
1227 065a 9F90 pop r9
1228 065c 8F90 pop r8
1229 065e 7F90 pop r7
1230 0660 6F90 pop r6
1231 0662 5F90 pop r5
1232 0664 4F90 pop r4
1233 0666 3F90 pop r3
1234 0668 2F90 pop r2
1235 066a 0895 ret
1236 /* epilogue end (size=25) */
1237 /* function lcd_line size 197 (146) */
1238 .LFE23:
1240 .global lcd_frect
1242 lcd_frect:
1243 .LFB24:
1244 .LM188:
1245 /* prologue: frame size=0 */
1246 066c BF92 push r11
1247 066e CF92 push r12
1248 0670 DF92 push r13
1249 0672 EF92 push r14
1250 0674 FF92 push r15
1251 0676 0F93 push r16
1252 0678 1F93 push r17
1253 067a CF93 push r28
1254 067c DF93 push r29
1255 /* prologue end (size=9) */
1256 067e 182F mov r17,r24
1257 0680 822F mov r24,r18
1258 0682 B02E mov r11,r16
1259 .LM189:
1260 0684 17FD sbrc r17,7
1261 .LM190:
1262 0686 1FE7 ldi r17,lo8(127)
1263 .L146:
1264 .LM191:
1265 0688 6034 cpi r22,lo8(64)
1266 068a 08F0 brlo .L147
1267 .LM192:
1268 068c 6FE3 ldi r22,lo8(63)
1269 .L147:
1270 .LM193:
1271 068e 212F mov r18,r17
1272 0690 240F add r18,r20
1273 0692 312D mov r19,__zero_reg__
1274 0694 311D adc r19,__zero_reg__
1275 0696 6901 movw r12,r18
1276 .LM194:
1277 0698 262F mov r18,r22
1278 069a 3327 clr r19
1279 069c 7901 movw r14,r18
1280 069e E80E add r14,r24
1281 06a0 F11C adc r15,__zero_reg__
1282 .LM195:
1283 06a2 81E8 ldi r24,lo8(129)
1284 06a4 C816 cp r12,r24
1285 06a6 D104 cpc r13,__zero_reg__
1286 06a8 18F0 brlo .L148
1287 .LM196:
1288 06aa F0E8 ldi r31,lo8(128)
1289 06ac CF2E mov r12,r31
1290 06ae D12C mov r13,__zero_reg__
1291 .L148:
1292 .LM197:
1293 06b0 81E4 ldi r24,lo8(65)
1294 06b2 E816 cp r14,r24
1295 06b4 F104 cpc r15,__zero_reg__
1296 06b6 18F0 brlo .L149
1297 .LM198:
1298 06b8 E0E4 ldi r30,lo8(64)
1299 06ba EE2E mov r14,r30
1300 06bc F12C mov r15,__zero_reg__
1301 .L149:
1302 .LM199:
1303 06be E901 movw r28,r18
1304 06c0 E216 cp r14,r18
1305 06c2 F306 cpc r15,r19
1306 06c4 58F0 brlo .L155
1307 .L153:
1308 .LM200:
1309 06c6 0B2D mov r16,r11
1310 06c8 2C2F mov r18,r28
1311 06ca 4C2D mov r20,r12
1312 06cc 6C2F mov r22,r28
1313 06ce 812F mov r24,r17
1314 06d0 0E94 0000 call lcd_line
1315 .LM201:
1316 06d4 2196 adiw r28,1
1317 06d6 EC16 cp r14,r28
1318 06d8 FD06 cpc r15,r29
1319 06da A8F7 brsh .L153
1320 .L155:
1321 /* epilogue: frame size=0 */
1322 06dc DF91 pop r29
1323 06de CF91 pop r28
1324 06e0 1F91 pop r17
1325 06e2 0F91 pop r16
1326 06e4 FF90 pop r15
1327 06e6 EF90 pop r14
1328 06e8 DF90 pop r13
1329 06ea CF90 pop r12
1330 06ec BF90 pop r11
1331 06ee 0895 ret
1332 /* epilogue end (size=10) */
1333 /* function lcd_frect size 67 (48) */
1334 .LFE24:
1336 .global lcd_rect
1338 lcd_rect:
1339 .LFB25:
1340 .LM202:
1341 /* prologue: frame size=0 */
1342 06f0 CF92 push r12
1343 06f2 DF92 push r13
1344 06f4 EF92 push r14
1345 06f6 FF92 push r15
1346 06f8 0F93 push r16
1347 06fa 1F93 push r17
1348 06fc CF93 push r28
1349 06fe DF93 push r29
1350 /* prologue end (size=8) */
1351 0700 D82E mov r13,r24
1352 0702 162F mov r17,r22
1353 0704 C02E mov r12,r16
1354 .LM203:
1355 0706 87FF sbrs r24,7
1356 0708 02C0 rjmp .L157
1357 .LM204:
1358 070a BFE7 ldi r27,lo8(127)
1359 070c DB2E mov r13,r27
1360 .L157:
1361 .LM205:
1362 070e 1034 cpi r17,lo8(64)
1363 0710 08F0 brlo .L158
1364 .LM206:
1365 0712 1FE3 ldi r17,lo8(63)
1366 .L158:
1367 .LM207:
1368 0714 8D2D mov r24,r13
1369 0716 840F add r24,r20
1370 0718 912D mov r25,__zero_reg__
1371 071a 911D adc r25,__zero_reg__
1372 071c EC01 movw r28,r24
1373 .LM208:
1374 071e 812F mov r24,r17
1375 0720 820F add r24,r18
1376 0722 912D mov r25,__zero_reg__
1377 0724 911D adc r25,__zero_reg__
1378 0726 7C01 movw r14,r24
1379 .LM209:
1380 0728 C138 cpi r28,129
1381 072a D105 cpc r29,__zero_reg__
1382 072c 10F0 brlo .L159
1383 .LM210:
1384 072e C0E8 ldi r28,lo8(128)
1385 0730 D0E0 ldi r29,hi8(128)
1386 .L159:
1387 .LM211:
1388 0732 91E4 ldi r25,lo8(65)
1389 0734 E916 cp r14,r25
1390 0736 F104 cpc r15,__zero_reg__
1391 0738 18F0 brlo .L160
1392 .LM212:
1393 073a A0E4 ldi r26,lo8(64)
1394 073c EA2E mov r14,r26
1395 073e F12C mov r15,__zero_reg__
1396 .L160:
1397 .LM213:
1398 0740 0C2D mov r16,r12
1399 0742 212F mov r18,r17
1400 0744 4C2F mov r20,r28
1401 0746 612F mov r22,r17
1402 0748 8D2D mov r24,r13
1403 074a 0E94 0000 call lcd_line
1404 .LM214:
1405 074e 2E2D mov r18,r14
1406 0750 4C2F mov r20,r28
1407 0752 612F mov r22,r17
1408 0754 8C2F mov r24,r28
1409 0756 0E94 0000 call lcd_line
1410 .LM215:
1411 075a 2E2D mov r18,r14
1412 075c 4D2D mov r20,r13
1413 075e 6E2D mov r22,r14
1414 0760 8C2F mov r24,r28
1415 0762 0E94 0000 call lcd_line
1416 .LM216:
1417 0766 212F mov r18,r17
1418 0768 4D2D mov r20,r13
1419 076a 6E2D mov r22,r14
1420 076c 8D2D mov r24,r13
1421 076e 0E94 0000 call lcd_line
1422 /* epilogue: frame size=0 */
1423 0772 DF91 pop r29
1424 0774 CF91 pop r28
1425 0776 1F91 pop r17
1426 0778 0F91 pop r16
1427 077a FF90 pop r15
1428 077c EF90 pop r14
1429 077e DF90 pop r13
1430 0780 CF90 pop r12
1431 0782 0895 ret
1432 /* epilogue end (size=9) */
1433 /* function lcd_rect size 74 (57) */
1434 .LFE25:
1436 .global draw_circle
1438 draw_circle:
1439 .LFB26:
1440 .LM217:
1441 /* prologue: frame size=0 */
1442 0784 2F92 push r2
1443 0786 3F92 push r3
1444 0788 4F92 push r4
1445 078a 5F92 push r5
1446 078c 6F92 push r6
1447 078e 7F92 push r7
1448 0790 8F92 push r8
1449 0792 9F92 push r9
1450 0794 AF92 push r10
1451 0796 BF92 push r11
1452 0798 CF92 push r12
1453 079a DF92 push r13
1454 079c EF92 push r14
1455 079e FF92 push r15
1456 07a0 0F93 push r16
1457 07a2 1F93 push r17
1458 07a4 CF93 push r28
1459 07a6 DF93 push r29
1460 /* prologue end (size=18) */
1461 07a8 5C01 movw r10,r24
1462 07aa 6B01 movw r12,r22
1463 07ac E22E mov r14,r18
1464 .LM218:
1465 07ae C1E0 ldi r28,lo8(1)
1466 07b0 8C2E mov r8,r28
1467 07b2 912C mov r9,__zero_reg__
1468 07b4 841A sub r8,r20
1469 07b6 950A sbc r9,r21
1470 .LM219:
1471 07b8 2224 clr r2
1472 07ba 3324 clr r3
1473 .LM220:
1474 07bc 8EEF ldi r24,lo8(-2)
1475 07be 9FEF ldi r25,hi8(-2)
1476 07c0 489F mul r20,r24
1477 07c2 2001 movw r4,r0
1478 07c4 499F mul r20,r25
1479 07c6 500C add r5,r0
1480 07c8 589F mul r21,r24
1481 07ca 500C add r5,r0
1482 07cc 1124 clr r1
1483 .LM221:
1484 07ce 3101 movw r6,r2
1485 .LM222:
1486 07d0 EA01 movw r28,r20
1487 .LM223:
1488 07d2 862F mov r24,r22
1489 07d4 840F add r24,r20
1490 07d6 422F mov r20,r18
1491 07d8 682F mov r22,r24
1492 07da 8A2D mov r24,r10
1493 07dc 0E94 0000 call lcd_plot
1494 .LM224:
1495 07e0 8C2D mov r24,r12
1496 07e2 8C1B sub r24,r28
1497 07e4 4E2D mov r20,r14
1498 07e6 682F mov r22,r24
1499 07e8 8A2D mov r24,r10
1500 07ea 0E94 0000 call lcd_plot
1501 .LM225:
1502 07ee 4E2D mov r20,r14
1503 07f0 6C2D mov r22,r12
1504 07f2 8A2D mov r24,r10
1505 07f4 8C0F add r24,r28
1506 07f6 0E94 0000 call lcd_plot
1507 .LM226:
1508 07fa 4E2D mov r20,r14
1509 07fc 6C2D mov r22,r12
1510 07fe 8A2D mov r24,r10
1511 0800 8C1B sub r24,r28
1512 0802 0E94 0000 call lcd_plot
1513 .LM227:
1514 0806 2C16 cp r2,r28
1515 0808 3D06 cpc r3,r29
1516 080a 0CF0 brlt .+2
1517 080c 51C0 rjmp .L167
1518 .L165:
1519 .LM228:
1520 080e 97FC sbrc r9,7
1521 0810 07C0 rjmp .L164
1522 .LM229:
1523 0812 2197 sbiw r28,1
1524 .LM230:
1525 0814 82E0 ldi r24,lo8(2)
1526 0816 90E0 ldi r25,hi8(2)
1527 0818 480E add r4,r24
1528 081a 591E adc r5,r25
1529 .LM231:
1530 081c 840C add r8,r4
1531 081e 951C adc r9,r5
1532 .L164:
1533 .LM232:
1534 0820 0894 sec
1535 0822 611C adc r6,__zero_reg__
1536 0824 711C adc r7,__zero_reg__
1537 .LM233:
1538 0826 82E0 ldi r24,lo8(2)
1539 0828 90E0 ldi r25,hi8(2)
1540 082a 280E add r2,r24
1541 082c 391E adc r3,r25
1542 .LM234:
1543 082e 820C add r8,r2
1544 0830 931C adc r9,r3
1545 0832 0894 sec
1546 0834 811C adc r8,__zero_reg__
1547 0836 911C adc r9,__zero_reg__
1548 .LM235:
1549 0838 1C2D mov r17,r12
1550 083a 1C0F add r17,r28
1551 083c FA2C mov r15,r10
1552 083e F60C add r15,r6
1553 0840 4E2D mov r20,r14
1554 0842 612F mov r22,r17
1555 0844 8F2D mov r24,r15
1556 0846 0E94 0000 call lcd_plot
1557 .LM236:
1558 084a 0A2D mov r16,r10
1559 084c 0619 sub r16,r6
1560 084e 4E2D mov r20,r14
1561 0850 612F mov r22,r17
1562 0852 802F mov r24,r16
1563 0854 0E94 0000 call lcd_plot
1564 .LM237:
1565 0858 1C2D mov r17,r12
1566 085a 1C1B sub r17,r28
1567 085c 4E2D mov r20,r14
1568 085e 612F mov r22,r17
1569 0860 8F2D mov r24,r15
1570 0862 0E94 0000 call lcd_plot
1571 .LM238:
1572 0866 4E2D mov r20,r14
1573 0868 612F mov r22,r17
1574 086a 802F mov r24,r16
1575 086c 0E94 0000 call lcd_plot
1576 .LM239:
1577 0870 1C2D mov r17,r12
1578 0872 160D add r17,r6
1579 0874 FA2C mov r15,r10
1580 0876 FC0E add r15,r28
1581 0878 4E2D mov r20,r14
1582 087a 612F mov r22,r17
1583 087c 8F2D mov r24,r15
1584 087e 0E94 0000 call lcd_plot
1585 .LM240:
1586 0882 0A2D mov r16,r10
1587 0884 0C1B sub r16,r28
1588 0886 4E2D mov r20,r14
1589 0888 612F mov r22,r17
1590 088a 802F mov r24,r16
1591 088c 0E94 0000 call lcd_plot
1592 .LM241:
1593 0890 1C2D mov r17,r12
1594 0892 1619 sub r17,r6
1595 0894 4E2D mov r20,r14
1596 0896 612F mov r22,r17
1597 0898 8F2D mov r24,r15
1598 089a 0E94 0000 call lcd_plot
1599 .LM242:
1600 089e 4E2D mov r20,r14
1601 08a0 612F mov r22,r17
1602 08a2 802F mov r24,r16
1603 08a4 0E94 0000 call lcd_plot
1604 08a8 6C16 cp r6,r28
1605 08aa 7D06 cpc r7,r29
1606 08ac 0CF4 brge .+2
1607 08ae AFCF rjmp .L165
1608 .L167:
1609 /* epilogue: frame size=0 */
1610 08b0 DF91 pop r29
1611 08b2 CF91 pop r28
1612 08b4 1F91 pop r17
1613 08b6 0F91 pop r16
1614 08b8 FF90 pop r15
1615 08ba EF90 pop r14
1616 08bc DF90 pop r13
1617 08be CF90 pop r12
1618 08c0 BF90 pop r11
1619 08c2 AF90 pop r10
1620 08c4 9F90 pop r9
1621 08c6 8F90 pop r8
1622 08c8 7F90 pop r7
1623 08ca 6F90 pop r6
1624 08cc 5F90 pop r5
1625 08ce 4F90 pop r4
1626 08d0 3F90 pop r3
1627 08d2 2F90 pop r2
1628 08d4 0895 ret
1629 /* epilogue end (size=19) */
1630 /* function draw_circle size 169 (132) */
1631 .LFE26:
1633 .global draw_fcircle
1635 draw_fcircle:
1636 .LFB27:
1637 .LM243:
1638 /* prologue: frame size=0 */
1639 08d6 2F92 push r2
1640 08d8 3F92 push r3
1641 08da 4F92 push r4
1642 08dc 5F92 push r5
1643 08de 6F92 push r6
1644 08e0 7F92 push r7
1645 08e2 8F92 push r8
1646 08e4 9F92 push r9
1647 08e6 AF92 push r10
1648 08e8 BF92 push r11
1649 08ea CF92 push r12
1650 08ec DF92 push r13
1651 08ee FF92 push r15
1652 08f0 0F93 push r16
1653 08f2 1F93 push r17
1654 08f4 CF93 push r28
1655 08f6 DF93 push r29
1656 /* prologue end (size=17) */
1657 08f8 5C01 movw r10,r24
1658 08fa 6B01 movw r12,r22
1659 .LM244:
1660 08fc 11E0 ldi r17,lo8(1)
1661 08fe 612E mov r6,r17
1662 0900 712C mov r7,__zero_reg__
1663 0902 641A sub r6,r20
1664 0904 750A sbc r7,r21
1665 .LM245:
1666 0906 2224 clr r2
1667 0908 3324 clr r3
1668 .LM246:
1669 090a 8EEF ldi r24,lo8(-2)
1670 090c 9FEF ldi r25,hi8(-2)
1671 090e 489F mul r20,r24
1672 0910 2001 movw r4,r0
1673 0912 499F mul r20,r25
1674 0914 500C add r5,r0
1675 0916 589F mul r21,r24
1676 0918 500C add r5,r0
1677 091a 1124 clr r1
1678 .LM247:
1679 091c 4101 movw r8,r2
1680 .LM248:
1681 091e EA01 movw r28,r20
1682 .LM249:
1683 0920 862F mov r24,r22
1684 0922 841B sub r24,r20
1685 0924 962F mov r25,r22
1686 0926 940F add r25,r20
1687 0928 01E0 ldi r16,lo8(1)
1688 092a 282F mov r18,r24
1689 092c 4A2D mov r20,r10
1690 092e 692F mov r22,r25
1691 0930 8A2D mov r24,r10
1692 0932 0E94 0000 call lcd_line
1693 .LM250:
1694 0936 8A2D mov r24,r10
1695 0938 8C1B sub r24,r28
1696 093a 2C2D mov r18,r12
1697 093c 482F mov r20,r24
1698 093e 6C2D mov r22,r12
1699 0940 8A2D mov r24,r10
1700 0942 8C0F add r24,r28
1701 0944 0E94 0000 call lcd_line
1702 .LM251:
1703 0948 2C16 cp r2,r28
1704 094a 3D06 cpc r3,r29
1705 094c 0CF0 brlt .+2
1706 094e 42C0 rjmp .L174
1707 .L172:
1708 .LM252:
1709 0950 77FC sbrc r7,7
1710 0952 07C0 rjmp .L171
1711 .LM253:
1712 0954 2197 sbiw r28,1
1713 .LM254:
1714 0956 82E0 ldi r24,lo8(2)
1715 0958 90E0 ldi r25,hi8(2)
1716 095a 480E add r4,r24
1717 095c 591E adc r5,r25
1718 .LM255:
1719 095e 640C add r6,r4
1720 0960 751C adc r7,r5
1721 .L171:
1722 .LM256:
1723 0962 0894 sec
1724 0964 811C adc r8,__zero_reg__
1725 0966 911C adc r9,__zero_reg__
1726 .LM257:
1727 0968 82E0 ldi r24,lo8(2)
1728 096a 90E0 ldi r25,hi8(2)
1729 096c 280E add r2,r24
1730 096e 391E adc r3,r25
1731 .LM258:
1732 0970 620C add r6,r2
1733 0972 731C adc r7,r3
1734 0974 0894 sec
1735 0976 611C adc r6,__zero_reg__
1736 0978 711C adc r7,__zero_reg__
1737 .LM259:
1738 097a 8C2D mov r24,r12
1739 097c 8C0F add r24,r28
1740 097e 1A2D mov r17,r10
1741 0980 1819 sub r17,r8
1742 0982 FA2C mov r15,r10
1743 0984 F80C add r15,r8
1744 0986 01E0 ldi r16,lo8(1)
1745 0988 282F mov r18,r24
1746 098a 412F mov r20,r17
1747 098c 682F mov r22,r24
1748 098e 8F2D mov r24,r15
1749 0990 0E94 0000 call lcd_line
1750 .LM260:
1751 0994 8C2D mov r24,r12
1752 0996 8C1B sub r24,r28
1753 0998 282F mov r18,r24
1754 099a 412F mov r20,r17
1755 099c 682F mov r22,r24
1756 099e 8F2D mov r24,r15
1757 09a0 0E94 0000 call lcd_line
1758 .LM261:
1759 09a4 8C2D mov r24,r12
1760 09a6 880D add r24,r8
1761 09a8 1A2D mov r17,r10
1762 09aa 1C1B sub r17,r28
1763 09ac FA2C mov r15,r10
1764 09ae FC0E add r15,r28
1765 09b0 282F mov r18,r24
1766 09b2 412F mov r20,r17
1767 09b4 682F mov r22,r24
1768 09b6 8F2D mov r24,r15
1769 09b8 0E94 0000 call lcd_line
1770 .LM262:
1771 09bc 8C2D mov r24,r12
1772 09be 8819 sub r24,r8
1773 09c0 282F mov r18,r24
1774 09c2 412F mov r20,r17
1775 09c4 682F mov r22,r24
1776 09c6 8F2D mov r24,r15
1777 09c8 0E94 0000 call lcd_line
1778 09cc 8C16 cp r8,r28
1779 09ce 9D06 cpc r9,r29
1780 09d0 0CF4 brge .+2
1781 09d2 BECF rjmp .L172
1782 .L174:
1783 /* epilogue: frame size=0 */
1784 09d4 DF91 pop r29
1785 09d6 CF91 pop r28
1786 09d8 1F91 pop r17
1787 09da 0F91 pop r16
1788 09dc FF90 pop r15
1789 09de DF90 pop r13
1790 09e0 CF90 pop r12
1791 09e2 BF90 pop r11
1792 09e4 AF90 pop r10
1793 09e6 9F90 pop r9
1794 09e8 8F90 pop r8
1795 09ea 7F90 pop r7
1796 09ec 6F90 pop r6
1797 09ee 5F90 pop r5
1798 09f0 4F90 pop r4
1799 09f2 3F90 pop r3
1800 09f4 2F90 pop r2
1801 09f6 0895 ret
1802 /* epilogue end (size=18) */
1803 /* function draw_fcircle size 145 (110) */
1804 .LFE27:
1806 .comm display_buffer,1024,1
1807 .comm display_buffer_pointer,2,1
1808 .comm display_buffer_counter,1,1
1809 .comm display_page_counter,1,1
1810 .comm display_mode,1,1
1811 .comm lcd_xpos,1,1
1812 .comm lcd_ypos,1,1
1813 .Letext0:
DEFINED SYMBOLS
*ABS*:00000000 lcd.c
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:3 *ABS*:0000003f __SREG__
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:4 *ABS*:0000003e __SP_H__
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:5 *ABS*:0000003d __SP_L__
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:7 *ABS*:00000001 __zero_reg__
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:20 .text:00000000 send_byte
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:46 .text:00000010 cls
*COM*:00000400 display_buffer
*COM*:00000001 lcd_xpos
*COM*:00000001 lcd_ypos
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:118 .text:00000074 lcd_cls
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:133 .text:0000007a wait_1ms
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:162 .text:00000084 wait_ms
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:199 .text:000000ae lcd_init
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:280 .text:0000012a set_adress
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:331 .text:00000170 scroll
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:403 .text:000001da put_char
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:647 .text:00000342 new_line
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:674 .text:0000035c lcd_printp
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:770 .text:000003ca lcd_print_atp
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:791 .text:000003dc lcd_print
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:863 .text:00000442 lcd_print_at
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:884 .text:00000454 lcd_plot
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:986 .text:000004e6 lcd_line
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:1242 .text:0000066c lcd_frect
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:1338 .text:000006f0 lcd_rect
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:1438 .text:00000784 draw_circle
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:1635 .text:000008d6 draw_fcircle
*COM*:00000002 display_buffer_pointer
*COM*:00000001 display_buffer_counter
*COM*:00000001 display_page_counter
*COM*:00000001 display_mode
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
f8x6
/Transportables_Koptertool/trunk/V-0.1/main.c
0,0 → 1,88
/*
Mobiles Mikrokopter-Tool
+++++ BETA 0.1 +++++
Diese Software ist Open-Source und darf nicht für kommerzielle Zwecke verwendet werden.
Die Software darf kopiert, verändert und weitergegeben werden, unter der Bedingung,
dass immer der komplette Source inklusive dieser Lizenz weitergegeben wird.
Für den LCD-Font gilt das dort angegebene Copyright.
(C) 2008 Thomas Kaiser, thomas@ft-fanpage.de
 
Die Software wird "so wie sie ist" geliefert.
Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion.
Benutzung auf eigene Gefahr.
Ich übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden.
Dies gilt insbesondere für die vorliegende Beta-Version.
 
Teile des Source (z.B. die base64-Funktionen) sind abgewandelte Funktionen aus dem Mikrokopter-Source,
siehe http://www.mikrokopter.de
 
*/
 
//#define F_CPU 7378200ul
 
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <stdlib.h>
#include <avr/pgmspace.h>
 
#include "main.h"
#include "lcd.h"
#include "rs232.h"
#include "parameter.h"
#include "menu.h"
#include "display.h"
#include "base64.h"
#include "timer.h"
 
unsigned char EEPromArray[E2END+1] EEMEM;
 
void ReadParameter(void)
{
// unsigned char *buffer;
 
LCD_ORIENTATION = eeprom_read_byte(&EEPromArray[EEPROM_ADR_ORIENTATION]);
 
// set = eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET]);
// if (number > 5) number = 5;
// eeprom_read_block(buffer, &EEPromArray[EEPROM_ADR_PARAM_BEGIN + length * number], length);
}
 
void WriteParameterset(void)
{
 
eeprom_write_byte(&EEPromArray[EEPROM_ADR_VALID], 1);
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ORIENTATION], 0);
 
// if(number > 5) number = 5;
// eeprom_write_block(buffer, &EEPromArray[EEPROM_ADR_PARAM_BEGIN + length * number], length);
// eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], number); // diesen Parametersatz als aktuell merken
}
 
 
int main (void)
{
PORTA = 0xFF; // unbenutzte Pins auf Pull-Up
PORTB = 0x43;
PORTC = 0xFC;
PORTD = 0x7C;
DDRC = 0x03; // Pins für Beleuchtung auf Ausgang
DDRD = 0x80;
 
if ((eeprom_read_byte(&EEPromArray[EEPROM_ADR_VALID])) != 1)
WriteParameterset();
 
ReadParameter();
// LCD_ORIENTATION = 0;
 
lcd_init();
RS232_init();
timer_init();
sei();
 
for (;;)
main_menu();
}
/Transportables_Koptertool/trunk/V-0.1/main.d
0,0 → 1,2
main.o main.d : main.c main.h lcd.h rs232.h parameter.h menu.h display.h base64.h \
timer.h
/Transportables_Koptertool/trunk/V-0.1/main.eep
0,0 → 1,0
:00000001FF
/Transportables_Koptertool/trunk/V-0.1/main.elf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Transportables_Koptertool/trunk/V-0.1/main.elf
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Transportables_Koptertool/trunk/V-0.1/main.h
0,0 → 1,45
 
#ifndef main_h
#define main_h
 
#include <avr/eeprom.h>
 
#define set_cs() PORTB |= (1<<4)
#define clr_cs() PORTB &=~(1<<4)
#define set_reset() PORTB |= (1<<2)
#define clr_reset() PORTB &=~(1<<2)
#define set_A0() PORTB |= (1<<3) // Data
#define clr_A0() PORTB &=~(1<<3) // Command
#define set_scl() PORTB |= (1<<7)
#define clr_scl() PORTB &=~(1<<7)
#define set_si() PORTB |= (1<<5)
#define clr_si() PORTB &=~(1<<5)
 
#define key_enter 0x08
#define key_esc 0x04
#define key_plus 0x02
#define key_minus 0x01
#define key_nokey 0x00
 
extern uint8_t r_buffer[128];
extern uint8_t p_buffer[128];
//extern struct str_DebugIn *p_buffer;
 
extern volatile uint8_t key;
 
extern volatile uint8_t timer;
extern volatile uint8_t rs232_timer;
 
#endif
 
//#define EEPROM_ADR_VALID 1
 
#define EEPROM_ADR_VALID 1
#define EEPROM_ADR_ORIENTATION 2
 
 
extern unsigned char EEPromArray[];
 
#ifndef EEMEM
#define EEMEM __attribute__ ((section (".eeprom")))
#endif
/Transportables_Koptertool/trunk/V-0.1/main.hex
0,0 → 1,616
:100000000C947E060C9499060C9499060C9499060F
:100010000C9499060C9499060C9499060C949906E4
:100020000C9499060C9499060C94B5060C949906B8
:100030000C9499060C94F80B0C9499060C94990660
:100040000C9499060C9499060C9499060C949906B4
:100050000C9499060000000000003E5B4F5B3E00E0
:100060003E6B4F6B3E001C3E7C3E1C00183C7E3CB1
:1000700018001C577D571C001C5E7F5E1C0000187A
:100080003C180000FFE7C3E7FF0000182418000039
:10009000FFE7DBE7FF0030483A060E002629792902
:1000A0002600407F05050700407F05253F005A3C9C
:1000B000E73C5A007F3E1C1C0800081C1C3E7F00C9
:1000C00014227F2214005F5F005F5F0006097F013A
:1000D0007F00006689956A0060606060606094A23D
:1000E000FFA2940008047E04080010207E20100067
:1000F00008082A1C0800081C2A0808001E101010F6
:1001000010000C1E0C1E0C0030383E383000060E5D
:100110003E0E060000000000000000005F0000002E
:10012000000700070000147F147F1400242A7F2A90
:10013000120023130864620036495620500000085C
:1001400007030000001C224100000041221C0000A7
:100150002A1C7F1C2A0008083E0808000080703016
:100160000000080808080800000060600000201077
:10017000080402003E5149453E0000427F40000015
:100180007249494946002141494D33001814127FF4
:1001900010002745454539003C4A49493100412175
:1001A00011090700364949493600464949291E00C8
:1001B0000000140000000040340000000008142279
:1001C0004100141414141400004122140800020108
:1001D000590906003E415D594E007C1211127C0007
:1001E0007F49494936003E41414122007F4141411A
:1001F0003E007F49494941007F09090901003E410C
:10020000415173007F0808087F0000417F410000D2
:100210002040413F01007F08142241007F404040C0
:1002200040007F021C027F007F0408107F003E41D7
:1002300041413E007F09090906003E4151215E000F
:100240007F091929460026494949320003017F01E7
:1002500003003F4040403F001F2040201F003F4020
:1002600038403F006314081463000304780403005B
:100270006159494D4300007F41414100020408108B
:100280002000004141417F0004020102040040407F
:10029000404040000003070800002054547840000C
:1002A0007F284444380038444444280038444428D3
:1002B0007F0038545454180000087E09020018A426
:1002C000A49C78007F080404780000447D4000006E
:1002D0002040403D00007F102844000000417F4046
:1002E00000007C04780478007C080404780038441A
:1002F00044443800FC182424180018242418FC0056
:100300007C080404080048545454240004043F4466
:1003100024003C4040207C001C2040201C003C402D
:1003200030403C004428102844004C9090907C00C1
:100330004464544C4400000836410000000077003B
:1003400000000041360800000201020402003C26C1
:1003500023263C001EA1A16112003A4040207A00F1
:100360003854545559002155557941002154547839
:1003700041002155547840002054557940000C1E0E
:100380005272120039555555590039545454590078
:100390003955545458000000457C41000002457D09
:1003A00042000001457C4000791412147900F028C5
:1003B0002528F0007C54554500002054547C5444BA
:1003C0007C0A097F4941324949493200324848484C
:1003D0003200324A484830003A4141217A003A42DC
:1003E00040207800009DA0A07D003944444439009D
:1003F0003D4040403D003C24FF242400487E4943CA
:1004000066002B2FFC2F2B00FF0929F62000C08847
:100410007E0903002054547941000000447D4100CE
:100420003048484A3200384040227A00007A0A0AAE
:1004300072007D0D19317D002629292F28002629DB
:100440002929260030484D402000380808080800B7
:100450000808080838002F10C8ACBA002F1028343C
:10046000FA0000007B00000008142A142200221465
:100470002A140800AA005500AA00AA55AA55AA5590
:1004800055AA55AA55AA000000FF0000101010FF41
:100490000000141414FF00001010FF00FF001010E3
:1004A000F010F000141414FC00001414F700FF0006
:1004B0000000FF00FF001414F404FC0014141710D3
:1004C0001F0010101F101F001414141F0000101024
:1004D00010F000000000001F10101010101F10106E
:1004E000101010F01010000000FF1010101010106D
:1004F0001010101010FF1010000000FF1414000066
:10050000FF00FF1000001F1017140000FC04F4147B
:100510001414171017141414F404F4140000FF003A
:10052000F7141414141414141414F700F7141414F6
:100530001417141410101F101F10141414F4141492
:100540001010F010F01000001F101F100000001F0E
:100550001414000000FC14140000F010F01010102F
:10056000FF10FF10141414FF14141010101F0000BB
:10057000000000F01010FFFFFFFFFFFFF0F0F0F0B1
:10058000F0F0FFFFFF000000000000FFFFFF0F0F73
:100590000F0F0F0F3844443844007C2A2A3E1400C1
:1005A0007E0202060600027E027E02006355494179
:1005B00063003844443C0400407E201E20000602B4
:1005C0007E02020099A5E7A599001C2A492A1C0071
:1005D0004C7201724C00304A4D4D30003048784822
:1005E0003000BC625A463D003E49494900007E0148
:1005F00001017E002A2A2A2A2A0044445F4444003A
:1006000040514A44400040444A5140000000FF012C
:100610000300E080FF00000008086B6B080836123A
:1006200036243600060F090F0600000018180000D7
:100630000000101000003040FF010100001F010108
:100640001E0000191D171200003C3C3C3C0000003D
:1006500000000000202020202020004E69636B2035
:100660002020202020202020202000526F6C6C2091
:1006700020202020202020202020004761732020DF
:10068000202020202020202020200047696572099A
:100690000909000000000000000000506F7469317B
:1006A0000909090000000000000000506F74693261
:1006B0000909090000000000000000506F74693350
:1006C0000909090000000000000000506F7469343F
:1006D0000909090000000000000000436F6E666910
:1006E0006709090900000000000000486F6568659F
:1006F0005F4D696E476173202020004C75667464FD
:100700007275636B5F4420202020004D6178486F34
:100710006568652020202020202000486F656865DE
:100720005F50202020202020202000486F65686531
:100730005F56657273746165726B00486F656865BA
:100740005F4143435F5769726B2E00537469636B5B
:100750005F50202020202020202000537469636BEC
:100760005F44202020202020202000476965725F00
:1007700050202020202020202020004761735F4D42
:10078000696E2020202020202020004761735F4DCB
:1007900061782020202020202020004779726F419E
:1007A000636346616B746F720900004B6F6D70611B
:1007B00073735769726B756E6720004779726F5F4C
:1007C00050200909000000000000004779726F5FA7
:1007D0004909090900000000000000556E746572A7
:1007E0007370616E6E756E672020004E6F74476186
:1007F00073090909000000000000004E6F74476192
:10080000735A65697420202020200055666F417559
:10081000737269636874756E672000495F46616B27
:10082000746F7220202020202020005573657250A4
:100830006172616D310909000000005573657250E5
:100840006172616D320909000000005573657250D4
:100850006172616D330909000000005573657250C3
:100860006172616D34090900000000536572766F92
:100870004E69636B4374726C090000536572766F46
:100880004E69636B436F6D70090000536572766F3C
:100890004E69636B4D696E09000000536572766F97
:1008A0004E69636B4D617809000000536572766F85
:1008B0004E69636B526566727368004C6F6F704768
:1008C00061734C696D6974090000004C6F6F70545E
:1008D00068726573686F6C640900004C6F6F7048D4
:1008E0007973746572657365090000416368734BC1
:1008F0006F70706C756E6709000000416368734724
:100900006567656E4B6F70706C2E0057696E6B6C0F
:10091000556D7363686C4E69636B0057696E6B6CE1
:10092000556D7363686C526F6C6C004779726F41E0
:1009300063634162676C65696368004472696674E9
:100940006B6F6D700909000000000044796E616DE5
:10095000696353746162696C6974005573657250A0
:100960006172616D350909000000005573657250B0
:100970006172616D3609090000000055736572509F
:100980006172616D3709090000000055736572508E
:100990006172616D380909000000004C6F6F70438F
:1009A0006F6E666967090900000000536572766F13
:1009B0004E69636B436F6D70496E004C6F6F7020B2
:1009C00075702020202020202020004C6F6F702088
:1009D000646F776E092020202000004C6F6F70201C
:1009E0006C656674202020202020004C6F6F7020E2
:1009F000726967687420202020200048F668656EC0
:100A00007265676C6572202020200048F668656E6C
:100A1000736368616C746572202000486561646866
:100A20006F6C6409090000000000004B6F6D70617D
:100A300073730909000000000000004B6F6D7061C6
:100A4000737346697809090000000047505309098B
:100A500009000000000000000000004163687365A9
:100A60006E6B6F70706C756E672000447265687293
:100A70006174650909000000000000010802010816
:100A8000020108020108020108020108020108022D
:100A900001080200000000FF0400FF0400FF040042
:100AA000FF0400320400FF040006030040030014AA
:100AB0000300200821FA0800320800FF08000005A2
:100AC00000000500FA0800FA0800FA08000100001A
:100AD000FF0500FF0900FF0900FF0900FF0900FFF3
:100AE0000700FA0700FA0700FA0700190700FF06D7
:100AF00000FA0600FA0600FF0A00FF0A00FA0600E4
:100B0000FA0600FA0500FA0500FF0500FF0900FFDC
:100B10000900FF0900FF09000001000107000000B3
:100B200000000000000000000000000000000000C5
:100B300000000000000000000000000000000000B5
:100B40000000020202020202020200040404040481
:100B50000403030308080808050508080800050938
:100B60000909090707070707070606060A0A06060E
:100B70000505050909090900070B0B0B0B0C0C0CEB
:100B80000C0C0C0C0C436F6E666967202020200053
:100B90004368616E6E656C73202000537469636BEB
:100BA000202020202000486F65686520202020201C
:100BB000004779726F202020202020004C6F6F703A
:100BC000696E672020200043616D657261202020DE
:100BD0002000536F6E7374696765732000557365E9
:100BE0007220202020202000436F75706C696E6792
:100BF000202000436F6E66696728322920004C6F01
:100C00006F70696E67736574002D002D002D004CA8
:100C100061646520506172616D657465720D0A00D2
:100C200020313A0D0A0020323A0D0A0020333A0DE5
:100C30000A0020343A0D0A0020353A0D0A005469A2
:100C40006D656F757400506172616D6574657220B9
:100C500073706569636865726E3F0D0A20206A6172
:100C60000D0A20206E65696E000D0A2D2D2D3E00A7
:100C70000D0A506172616D657465722067657370ED
:100C800065696368657274000D0A4E696368742053
:100C900067657370656963686572740020002A0077
:100CA00048617570746D656EFC284245544120564C
:100CB000302E31290D0A000D0A446973706C617978
:100CC0000D0A00506172616D657465720D0A004D08
:100CD0006F746F727465737400446973706C6179BA
:100CE000000D0A54696D656F757421005461737449
:100CF00065206472FC636B656E0D0A0011241FBED3
:100D0000CFE5D8E0DEBFCDBF10E0A0E6B0E0ECE676
:100D1000F6E202C005900D92A036B107D9F715E0B2
:100D2000A0E6B0E001C01D92A738B107E1F70C942E
:100D30009B060C940000CFE5D8E0DEBFCDBF8FEF5F
:100D40008BBB83E488BB8CEF85BB8CE782BB83E0E5
:100D500084BB80E881BB0E9453070E941A0C0E944A
:100D6000F40678940E94C811FDCF1F920F920FB61F
:100D70000F9211248F939F938091E404882331F084
:100D80008091E40481508093E40415C08AE080934C
:100D9000E40489B3992780959095689413F8959504
:100DA00087951694E1F78F708093E604809169052A
:100DB0008F5F8093690580916100882329F080917D
:100DC00061008150809361008091E504882329F0BF
:100DD0008091E50481508093E5049F918F910F905D
:100DE0000FBE0F901F9018958DE083BF88E48CBFD5
:100DF00089B7826089BF0895C4988FB9779BFECF69
:100E00008EB18EB9C49A08950F931F93CF93DF9339
:100E100082E690E0FC011192019624E0813692076F
:100E2000D1F3C8F300E010E0C398802F80550E94F2
:100E3000FC0680E10E94FC0684E00E94FC06C39A46
:100E4000CFE7D0E080E00E94FC062197D7FFFACFE1
:100E50000F5F1F4F0830110538F310926A0510928A
:100E60006B05DF91CF911F910F9108950E940407A8
:100E7000089583E397E00197F1F708950F931F9387
:100E8000CF93DF938C01C0E0D0E0C817D90730F4CE
:100E90000E9439072196C017D107D0F3DF91CF9177
:100EA0001F910F91089510926A0510926B058FEFB4
:100EB00087BB8EE58DB9C49AC2988AE090E00E9403
:100EC0003E07C29AC498C39880E40E94FC0680EA58
:100ED0000E94FC0688EC0E94FC0686EA0E94FC0642
:100EE00082EA0E94FC068FE20E94FC0688EF0E94C4
:100EF000FC0680E00E94FC0687E20E94FC0681E876
:100F00000E94FC0686E10E94FC068CEA0E94FC0618
:100F100080E00E94FC068FEA0E94FC060E94040703
:100F20000895FF920F931F938C01F62E880F892F3F
:100F3000881F990B9195C39880550E94FC06102F2D
:100F40001F771C5F812F82958F70805F0E94FC0647
:100F5000812F8F700E94FC06C39A8F2D0E94FC0681
:100F60001F910F91FF900895EF92FF920F931F939F
:100F7000CF93DF93C0E0D0E032EEE32E30E0F32EEB
:100F8000870100581040F70181917F01F8018083AB
:100F900061918F01CE010E9491072196F3E0C03844
:100FA000DF0788F3C0E8D3E002EE13E0F801119206
:100FB0008F0160E0CE010E9491072196F4E0C030DD
:100FC000DF07A0F3DF91CF911F910F91FF90EF907A
:100FD0000895BF92CF92DF92EF92FF920F931F93EB
:100FE000CF93DF93382FF42EB22E842F99278F3D85
:100FF000910589F1803E910574F4863D910529F1B2
:10100000873D910524F4843C9105E1F026C08C3D98
:101010009105F1F022C0863F910571F0873F91055F
:1010200024F4843E910529F018C08C3F910539F0D5
:1010300014C014E8F12E11C0C4E9FC2E0EC0B1E8B2
:10104000FB2E0BC0AEE8FA2E08C0F9E9FF2E05C052
:10105000EAE9FE2E02C071EEF72EC62FDD27D695E7
:10106000DC2FCC27D795C79586E0389FC001112487
:10107000C80FD91FD3706E0100E010E045E0E42EE8
:1010800086E0F89EF0011124E00FF11FEC5AFF4FAB
:1010900024918B2D992782309105E9F083309105B9
:1010A0002CF4009749F0019771F02CC08330910522
:1010B000D1F00497F1F026C0FE01EE59FF4FE00F8A
:1010C000F11F20831FC0FE01EE59FF4FE00FF11FFB
:1010D0008081822B16C0FE01EE59FF4FE00FF11FF9
:1010E000808182270EC0FE01EE59FF4FE00FF11FF5
:1010F00006C0FE01EE59FF4FE00FF11F20958081E1
:1011000082238083FE01EE59FF4FE00FF11F6081C3
:10111000C6010E949107EA940F5F1F4F0894C11CFB
:10112000D11CE7FEADCFDF91CF911F910F91FF90C2
:10113000EF90DF90CF90BF90089580916B058F5F07
:1011400080936B05883028F00E94B40787E0809375
:101150006B0508951F93CF93DF93EC01162FFC01CD
:101160008491882351F1FE0184918032B0F0219660
:101170008491212F482F60916B0580916A050E9410
:10118000E90780916A058F5F80936A05853188F051
:1011900010926A050E949D080CC099278A3091051B
:1011A00029F00D9729F410926A0502C00E949D084B
:1011B0002196FE0184918823B1F6DF91CF911F9192
:1011C000089580936A0560936B05622FCA010E949F
:1011D000AA0808951F93CF93DF93EC01162F8881FF
:1011E000882339F148814032A0F02196212F609167
:1011F0006B0580916A050E94E90780916A058F5FFF
:1012000080936A05853190F010926A050E949D08CE
:101210000DC055274A30510531F04D30510529F4A4
:1012200010926A0502C00E949D0821968881882339
:10123000C9F6DF91CF911F91089580936A0560935D
:101240006B05622FCA010E94EA080895982F87FD56
:1012500045C0603408F042C0862F869586958695F5
:10126000A82FBB27B695BA2FAA27B795A795A90F80
:10127000B11D262F33272770307081E090E002C027
:10128000880F991F2A95E2F7982FB37055274130A0
:10129000510589F0423051051CF4452B29F017C047
:1012A0004230510571F013C0FD01EE59FF4F90958A
:1012B000808189230BC0FD01EE59FF4F8081892B6E
:1012C00005C0FD01EE59FF4F808189278083FD0114
:1012D000EE59FF4F6081CD010E94910708952F9232
:1012E0003F924F925F926F927F928F929F92AF92B6
:1012F000BF92CF92DF92EF92FF920F931F93CF9303
:10130000DF93CDB7DEB723970FB6F894DEBF0FBEDD
:10131000CDBF0983A82EBB24C62EDD24642E7724DE
:101320007301EA18FB08822E992484010C191D0907
:10133000F7FE04C07FEF272E372E09C01E141F04AE
:1013400024F461E0262E312C02C02224332417FF1E
:1013500004C05FEF452E552E09C01016110624F467
:1013600041E0442E512C02C044245524F7FE04C011
:10137000F094E194F108F39417FF03C010950195E0
:101380001F4F49816C2D8A2D0E9426090E151F05BD
:101390004CF5C701F7FC01969595879522273327D1
:1013A000281B390B3B832A83A614B70409F441C0D8
:1013B0008A819B81800F911F9B838A83A20CB31C1F
:1013C0001816190634F4C40CD51C8E199F099B837A
:1013D0008A8349816C2D8A2D0E942609A614B704A0
:1013E00039F727C0C80117FD019695958795EE2717
:1013F000FF27E81BF90BFB83EA83C814D904C9F063
:101400002A813B812E0D3F1D3B832A83C40CD51CB2
:101410001216130634F4A20CB31C201B310B3B83B1
:101420002A8349816C2D8A2D0E942609C814D9046B
:1014300039F723960FB6F894DEBF0FBECDBFDF910C
:10144000CF911F910F91FF90EF90DF90CF90BF90C1
:10145000AF909F908F907F906F905F904F903F9054
:101460002F900895BF92CF92DF92EF92FF920F9349
:101470001F93CF93DF93182F822FB02E17FD1FE7F6
:10148000603408F06FE3212F240F312D311D6901E5
:10149000262F33277901E80EF11C81E8C816D10404
:1014A00018F0F0E8CF2ED12C81E4E816F10418F002
:1014B000E0E4EE2EF12CE901E216F30658F00B2DD4
:1014C0002C2F4C2D6C2F812F0E946F092196EC162A
:1014D000FD06A8F7DF91CF911F910F91FF90EF903C
:1014E000DF90CF90BF900895CF92DF92EF92FF925E
:1014F0000F931F93CF93DF93D82E162FC02E87FF05
:1015000002C0BFE7DB2E103408F01FE38D2D840FDF
:10151000912D911DEC01812F820F912D911D7C0148
:10152000C138D10510F0C0E8D0E091E4E916F1042B
:1015300018F0A0E4EA2EF12C0C2D212F4C2F612F56
:101540008D2D0E946F092E2D4C2F612F8C2F0E9404
:101550006F092E2D4D2D6E2D8C2F0E946F09212F7E
:101560004D2D6E2D8D2D0E946F09DF91CF911F9112
:101570000F91FF90EF90DF90CF9008952F923F92C0
:101580004F925F926F927F928F929F92AF92BF9293
:10159000CF92DF92EF92FF920F931F93CF93DF933F
:1015A0005C016B01E22EC1E08C2E912C841A950A0D
:1015B000222433248EEF9FEF489F2001499F500C37
:1015C000589F500C11243101EA01862F840F422FBD
:1015D000682F8A2D0E9426098C2D8C1B4E2D682F7A
:1015E0008A2D0E9426094E2D6C2D8A2D8C0F0E946B
:1015F00026094E2D6C2D8A2D8C1B0E9426092C1637
:101600003D060CF051C097FC07C0219782E090E0A6
:10161000480E591E840C951C0894611C711C82E0B4
:1016200090E0280E391E820C931C0894811C911C9A
:101630001C2D1C0FFA2CF60C4E2D612F8F2D0E94A5
:1016400026090A2D06194E2D612F802F0E9426098A
:101650001C2D1C1B4E2D612F8F2D0E9426094E2DF7
:10166000612F802F0E9426091C2D160DFA2CFC0ECE
:101670004E2D612F8F2D0E9426090A2D0C1B4E2DF9
:10168000612F802F0E9426091C2D16194E2D612FC7
:101690008F2D0E9426094E2D612F802F0E94260932
:1016A0006C167D060CF4AFCFDF91CF911F910F9197
:1016B000FF90EF90DF90CF90BF90AF909F908F9072
:1016C0007F906F905F904F903F902F9008952F9252
:1016D0003F924F925F926F927F928F929F92AF92C2
:1016E000BF92CF92DF92FF920F931F93CF93DF931E
:1016F0005C016B0111E0612E712C641A750A2224C1
:1017000033248EEF9FEF489F2001499F500C589F34
:10171000500C11244101EA01862F841B962F940F4F
:1017200001E0282F4A2D692F8A2D0E946F098A2DEA
:101730008C1B2C2D482F6C2D8A2D8C0F0E946F092D
:101740002C163D060CF042C077FC07C0219782E0C2
:1017500090E0480E591E640C751C0894811C911C65
:1017600082E090E0280E391E620C731C0894611C04
:10177000711C8C2D8C0F1A2D1819FA2CF80C01E005
:10178000282F412F682F8F2D0E946F098C2D8C1BC5
:10179000282F412F682F8F2D0E946F098C2D880DC7
:1017A0001A2D1C1BFA2CFC0E282F412F682F8F2D71
:1017B0000E946F098C2D8819282F412F682F8F2D9B
:1017C0000E946F098C169D060CF4BECFDF91CF915D
:1017D0001F910F91FF90DF90CF90BF90AF909F909F
:1017E0008F907F906F905F904F903F902F900895D3
:1017F0001F920F920FB60F9211248F939F93EF9326
:10180000FF9390916C05EEE6F5E0E90FF11D8CB1C8
:1018100080839F5F90936C0580916C058F7080939F
:101820006C05FF91EF919F918F910F900FBE0F90DC
:101830001F90189588E98AB987E089B908958AE0E8
:101840008093E50490916D0580916C05981721F4C3
:101850008091E5048823B1F78091E504882381F025
:1018600080916D05E82FFF27E259FA4F8F5F809333
:101870006D05E08180916D058F7080936D0501C0CD
:10188000E82F8E2F992708955D9BFECF8CB9089580
:10189000CF93DF93EC018881882331F089910E94F6
:1018A000440C88818823D1F7DF91CF910895A82F28
:1018B00062E070E06A17B0F5E62FFF27E751FB4FB3
:1018C00080818D5331813D5352815D5343814D530E
:1018D0006C5FE72FFF27ED59FB4F9927880F991F62
:1018E000880F991F232F22952F70282B2083832F59
:1018F00099278F70907034E0880F991F3A95E1F71F
:10190000252F26952695282B2183852F99278370AF
:10191000907026E0880F991F2A95E1F7482B4283A3
:101920007D5FC8CF872F99270895CF9384E1809357
:1019300061000E941F0C833221F080916100882396
:10194000C1F780916100882399F0C0E00E941F0CCC
:10195000EC2FFF27E751FB4F8083CF5FC7FDCFE719
:101960008D30A1F78C2F0E94570C80E090E002C0D0
:1019700081E090E0CF910895FF920F931F93CF9352
:10198000A82F809163048093E9048091640480937C
:10199000EA04809165048093EB0443E0F42E7F2DEC
:1019A000FA16E0F5E72FFF27ED59FB4F90812181D3
:1019B00062817D5FEF2DFF27E751FB4F892F8695D1
:1019C0008695835C8083892F99278370907034E09B
:1019D000880F991F3A95E1F7422F55279A0194E015
:1019E000369527959A95E1F7822B835C81834F701A
:1019F0005070440F551F440F551F862F992716E02E
:101A0000969587951A95E1F7842B835C82836F7393
:101A1000635C638384E0F80E7A1720F220E030E004
:101A2000C0E0CF1540F4E9EEF4E08191280F311DBC
:101A3000CF5FCF15D0F33F70EF2DFF27E751FB4F5E
:101A4000C901C6E096958795CA95E1F7835C8083C6
:101A50002F733070822F835C81838DE082831382A9
:101A600083E0F80EC381CF1550F409EE14E0F801BD
:101A700081918F010E94440CCF5FCF15C0F3CF91AD
:101A80001F910F91FF9008951F93CF93DF93CDB7D0
:101A9000DEB761970FB6F894DEBF0FBECDBF182F2B
:101AA00083E28093630481E68093640480936504F9
:101AB00010936604109267041092680486E00E94F6
:101AC000BC0C0E94950C8091EA048134D1F7DE01B0
:101AD0001196E3E6F4E09FE081918D93915097FF9A
:101AE000FBCF198A17702989AE014F5F5F4F612FB5
:101AF000822F0E941D0961960FB6F894DEBF0FBEBB
:101B0000CDBFDF91CF911F910895CF92DF92EF92D9
:101B1000FF920F931F93CF93DF93CDB7DEB76197FB
:101B20000FB6F894DEBF0FBECDBF00E00E943607AF
:101B300010E0C02EDD24C60153E0880F991F5A958E
:101B4000E1F7810F0E94440D1F5F183090F30E944F
:101B5000950C8091EA04843491F510E0EE24FF2482
:101B6000F60143E0EE0FFF1F4A95E1F7EE0DFF1D72
:101B7000EE0FFF1FED59FB4F228183819927982F8C
:101B800088274AE050E0BE016F5F7F4F820F911DB2
:101B90000E94CF1220E044E556E0612F8EE00E94C3
:101BA000E10820E0AE014F5F5F4F612F8EE00E94A1
:101BB0001D091F5F0894E11CF11C183088F2809108
:101BC000E604882321F28091E604813009F40F5F56
:101BD0008091E604823009F4015003708091E6049C
:101BE000883009F0A5CF61960FB6F894DEBF0FBE1E
:101BF000CDBFDF91CF911F910F91FF90EF90DF90BC
:101C0000CF900895CF93C0E093E29093630491E660
:101C10009093640491E79093650480936604C09365
:101C20006704C093680486E00E94BC0C0E94950C77
:101C3000813009F4CEE1CF5F8091EA048C54853085
:101C400010F0CE3198F3CE3118F081E090E002C070
:101C500080E090E0CF910895982F8630B8F4E9EABB
:101C6000F4E026E4808183832150319727FFFACF67
:101C700083E28093630481E6809364049559909392
:101C800065041092AD048BE40E94BC0C08959B0186
:101C9000682F772751E0F90120E030E047E0CB01E1
:101CA000022E02C0959587950A94E2F780FF02C044
:101CB000508301C0108241502F5F3F4F319647FF44
:101CC000EECF089550E061E070E0FC0120E030E0EC
:101CD00047E08191813041F4CB01022E02C0880F90
:101CE000991F0A94E2F7580F41502F5F3F4F47FF6B
:101CF000F0CF852F99270895282FFB0134E6632F15
:101D00000E941613582F839FC0011124281B3AE00C
:101D1000822F632F0E941613482F839FC001112426
:101D2000281B205D2283852F805D8083405D418359
:101D3000803329F480E28083403309F48183138265
:101D400008959F92AF92BF92CF92DF92EF92FF924F
:101D50000F931F93CF93DF93CDB7DEB7A1970FB645
:101D6000F894DEBF0FBECDBF082F9924823008F44F
:101D70003EC0192D4BE5A42E46E0B42E33E6C32E0B
:101D800034E0D32E2DE7E22E2AE0F22EF7018491E3
:101D90008017F1F4E92DFF27E158FA4F1083BE01B7
:101DA0006F5F7F4FF60180810E947C0E20E0AE01C4
:101DB0004F5F5F4F692D822F0E941D0920E0A50112
:101DC000692D85E00E94E108F7E0F91508F0939489
:101DD0001F5F83E090E0E80EF91E0894C11CD11C3F
:101DE000E0E1F0E0AE0EBF1E123480F25FC0813041
:101DF00071F5BE01665E7F4F809197040E94470E89
:101E00009A82192D9BEBC92E99E0D92EEE24FF243E
:101E1000CE010196F701E80FF91F218D205D29837E
:101E200020E0AC01612F822F0E941D0920E0A60155
:101E3000612F85E00E94E1081F5F0894E11CF11CFE
:101E400080E190E0C80ED91E143010F32FC0882313
:101E500069F5BE01665E7F4F80916B040E94470E5C
:101E60009A82192D8BEFC82E89E0D82EEE24FF24FC
:101E7000CE010196F701E80FF91F218D205D29831E
:101E800020E0AC01612F822F0E941D0920E0A601F5
:101E9000612F85E00E94E1081F5F0894E11CF11C9E
:101EA000E0E1F0E0CE0EDF1E183010F3892D992707
:101EB000A1960FB6F894DEBF0FBECDBFDF91CF91D4
:101EC0001F910F91FF90EF90DF90CF90BF90AF9058
:101ED0009F9008958F929F92AF92BF92DF92EF9260
:101EE000FF920F931F93CF93DF93CDB7DEB7629727
:101EF0000FB6F894DEBF0FBECDBFD82E81E08D1592
:101F000008F055C0615044E080E00E948611082F1F
:101F10008F3F09F44CC0E82EFF24F701E158FA4F37
:101F20008081E82FFF27ED59FB4F108120E049E029
:101F30005CE0602F84E00E94E1088091E604882341
:101F4000E1F78091E604813009F411508091E604B4
:101F5000823009F41F5FBE016F5F7F4F812F0E94A7
:101F60007C0E20E0AE014F5F5F4F602F822F0E94FA
:101F70001D0984E180936100809161008823E1F76D
:101F80008091E604843021F08091E6048830C9F61F
:101F90008091E604883059F4EFE7F5E0EE0EFF1E7D
:101FA000F7018081E82FFF27ED59FB4F1083F1E007
:101FB000DF1609F06CC06BE0862E912C8C0E9D1EF6
:101FC000B401809197040E94470E1A8244E063E0B6
:101FD0008A810E948611082F8F3F09F4C6C0E82E1F
:101FE000FF245E010894A11CB11CF701EA0DFB1D42
:101FF000128520E04BE05CE0682F84E00E94E1085D
:102000008091E604813009F410E08091E60482308A
:1020100009F411E0105D1983105320E0AE014F5F09
:102020005F4F602F822F0E941D0984E18093610021
:10203000D0906100DD20E1F78091E604883021F046
:102040008091E6048430E1F68091E604883049F41A
:10205000EA0CFB1CF7011287C4010E94620E8093F8
:1020600097040E943607BE016F5F7F4F80919704EF
:102070000E947C0E6D2DCE0101960E94EA0888EC2C
:1020800080936100809161008823E1F76EC0DD20BC
:1020900009F06BC05BE0852E912C8C0E9D1EB40167
:1020A00080916B040E94470EDA8244E067E08D2D38
:1020B0000E948611082F8F3F09F457C0E82EFF2495
:1020C0005E010894A11CB11CF701EA0DFB1D1285ED
:1020D0002D2D4DE05CE0682F84E00E94E1088091A6
:1020E000E604813009F410E08091E604823009F4BE
:1020F00011E0105D1983105320E0AE014F5F5F4F78
:10210000602F822F0E941D0984E180936100D0908E
:102110006100DD20E1F78091E604883021F08091B4
:10212000E6048430E1F68091E604883049F4EA0C54
:10213000FB1CF7011287C4010E94620E80936B049E
:102140000E943607BE016F5F7F4F80916B040E9433
:102150007C0E6D2DCE0101960E94EA0888EC8093DA
:102160006100809161008823E1F762960FB6F894D0
:10217000DEBF0FBECDBFDF91CF911F910F91FF90BA
:10218000EF90DF90BF90AF909F908F9008951F9336
:10219000CF93DF93CDB7DEB72F970FB6F894DEBF9E
:1021A0000FBECDBF0E94360760E08FE09CE00E942A
:1021B000AA0860E080E29CE00E94AA0860E086E253
:1021C0009CE00E94AA0860E08CE29CE00E94AA08C1
:1021D00060E082E39CE00E94AA0860E088E39CE063
:1021E0000E94AA0840E065E081E00E94861112E0AA
:1021F0000E94020E813041F420E04EE35CE066E094
:10220000822F0E94E1085CC00E9436074AE050E03D
:10221000BE016F5F7F4F812F99270E94F01260E00F
:10222000CE0101960E94EA0882E3809361008091CA
:1022300061008823E1F70E943607812F0E94A10EDA
:10224000682F8091E6048823E1F38091E6048230D0
:1022500009F41F5F8091E604813009F411501F3F9B
:1022600011F41CE003C01D3008F010E08091E6047A
:10227000883019F4812F0E946A0F8091E60484301F
:1022800019F60E94360760E086E49CE00E94AA08E6
:1022900040E062E081E00E948611813061F460E0FC
:1022A00089E69CE00E94AA0885E00E942C0E60E06E
:1022B00080E79CE003C060E088E89CE00E94AA08F8
:1022C00084E680936100809161008823E1F72F9676
:1022D0000FB6F894DEBF0FBECDBFDF91CF911F9137
:1022E00008950F931F93062F142F20E04CE95CE014
:1022F000682F812F0E94E10820E04EE95CE0602F0A
:10230000812F0E94E1081F910F910895EF92FF9293
:102310000F931F93CF93F82EE62E042FC82F182F5C
:10232000682F0E9471118091E6048823E1F7809163
:10233000E6048823E1F38091E604823019F4CE1597
:1023400008F4CF5F8091E604813019F4FC1608F49C
:10235000C150402F6C2F812F0E9471111C2F809132
:10236000E604883021F08091E6048430E1F6809123
:10237000E604843009F4CFEF8091E6048823E1F786
:102380008C2F9927CF911F910F91FF90EF90089577
:102390000E94360760E080EA9CE00E94AA0860E0A4
:1023A00087EB9CE00E94AA0860E083EC9CE00E941E
:1023B000AA0860E08FEC9CE00E94AA084AE064E072
:1023C00082E00E94861199278330910561F0843064
:1023D00091051CF4029721F00895049739F00895AF
:1023E0000E94231208950E94C71008950E9483122C
:1023F0000895CF93C0E093E29093630491E69093A5
:10240000640498E69093650480936604C09367041F
:10241000C093680486E00E94BC0C0E94950C813039
:1024200009F4CAE0CF5F8091EA048053853010F050
:10243000CA3098F3CA3018F081E090E002C080E022
:1024400090E0CF9108950F931F93CF93DF93CDB773
:10245000DEB72A970FB6F894DEBF0FBECDBF0E943D
:10246000360760E089ED9CE00E94AA080091E6042E
:102470000023E1F7802F0E94F911813069F4602F69
:1024800081EE9CE00E94AA0888EC80936100809114
:1024900061008823E1F72CC01091EA0419830A83B4
:1024A000202FAE014F5F5F4F602F8AE00E941D0911
:1024B0001F5F202F43E654E0612F802F0E941D09EB
:1024C0008AE080936100809161008823E1F7809128
:1024D000E604813011F40E94F9118091E604823003
:1024E00011F40E94F9118091E604843009F0BECF06
:1024F0002A960FB6F894DEBF0FBECDBFDF91CF9105
:102500001F910F9108950E9436076091E60466239B
:10251000E1F78CEE9CE00E94AA088091E6048823F3
:10252000E1F38091E6048830C9F483E28093630488
:1025300081E68093640484E7809365048AE0809355
:102540006604809367048093680480936904109202
:102550006A0410926B0489E00E94BC0C8091E6042E
:102560008823E1F78091E6048823E1F383E28093F6
:10257000630481E68093640484E780936504109289
:102580006604109267041092680410926904109215
:102590006A0410926B0489E00E94BC0C0895FB0150
:1025A0009F01E8944230C4F04532B4F44A3029F433
:1025B00097FB1EF4909581959F4F642F77270E947B
:1025C0002213805D8A330CF0895D8193CB010097E3
:1025D000A1F716F45DE251931082C9010C94061321
:1025E000FB019F01423074F0453264F4642F772779
:1025F0000E942213805D8A330CF0895D8193CB01A8
:102600000097A1F71082C9010C940613DC01FC01AC
:1026100001900020E9F73297AE17BF0730F47C91A4
:102620006081708331976D93F7CF0895991B79E09E
:1026300004C0991F961708F0961B881F7A95C9F752
:1026400080950895AA1BBB1B51E107C0AA1FBB1FA1
:10265000A617B70710F0A61BB70B881F991F5A952E
:0C266000A9F780959095BC01CD0108956C
:00000001FF
/Transportables_Koptertool/trunk/V-0.1/main.lss
0,0 → 1,5331
 
main.elf: file format elf32-avr
 
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0000266c 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000000 00800060 0000266c 00002700 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000527 00800060 00800060 00002700 2**0
ALLOC
3 .noinit 00000000 00800587 00800587 00002700 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 00002700 2**0
CONTENTS
5 .stab 0000036c 00000000 00000000 00002700 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000084 00000000 00000000 00002a6c 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_aranges 000000c8 00000000 00000000 00002af0 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_pubnames 00000902 00000000 00000000 00002bb8 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_info 00001dfa 00000000 00000000 000034ba 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_abbrev 0000098e 00000000 00000000 000052b4 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_line 00001982 00000000 00000000 00005c42 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_str 000004dc 00000000 00000000 000075c4 2**0
CONTENTS, READONLY, DEBUGGING
13 .debug_ranges 0000000c 0000266c 0000266c 00007aa0 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
 
00000000 <__vectors>:
0: 0c 94 7e 06 jmp 0xcfc <__init>
4: 0c 94 99 06 jmp 0xd32 <__bad_interrupt>
8: 0c 94 99 06 jmp 0xd32 <__bad_interrupt>
c: 0c 94 99 06 jmp 0xd32 <__bad_interrupt>
10: 0c 94 99 06 jmp 0xd32 <__bad_interrupt>
14: 0c 94 99 06 jmp 0xd32 <__bad_interrupt>
18: 0c 94 99 06 jmp 0xd32 <__bad_interrupt>
1c: 0c 94 99 06 jmp 0xd32 <__bad_interrupt>
20: 0c 94 99 06 jmp 0xd32 <__bad_interrupt>
24: 0c 94 99 06 jmp 0xd32 <__bad_interrupt>
28: 0c 94 b5 06 jmp 0xd6a <__vector_10>
2c: 0c 94 99 06 jmp 0xd32 <__bad_interrupt>
30: 0c 94 99 06 jmp 0xd32 <__bad_interrupt>
34: 0c 94 f8 0b jmp 0x17f0 <__vector_13>
38: 0c 94 99 06 jmp 0xd32 <__bad_interrupt>
3c: 0c 94 99 06 jmp 0xd32 <__bad_interrupt>
40: 0c 94 99 06 jmp 0xd32 <__bad_interrupt>
44: 0c 94 99 06 jmp 0xd32 <__bad_interrupt>
48: 0c 94 99 06 jmp 0xd32 <__bad_interrupt>
4c: 0c 94 99 06 jmp 0xd32 <__bad_interrupt>
50: 0c 94 99 06 jmp 0xd32 <__bad_interrupt>
 
00000054 <__ctors_end>:
54: 00 00 nop
56: 00 00 nop
58: 00 00 nop
5a: 3e 5b subi r19, 0xBE ; 190
5c: 4f 5b subi r20, 0xBF ; 191
5e: 3e 00 .word 0x003e ; ????
60: 3e 6b ori r19, 0xBE ; 190
62: 4f 6b ori r20, 0xBF ; 191
64: 3e 00 .word 0x003e ; ????
66: 1c 3e cpi r17, 0xEC ; 236
68: 7c 3e cpi r23, 0xEC ; 236
6a: 1c 00 .word 0x001c ; ????
6c: 18 3c cpi r17, 0xC8 ; 200
6e: 7e 3c cpi r23, 0xCE ; 206
70: 18 00 .word 0x0018 ; ????
72: 1c 57 subi r17, 0x7C ; 124
74: 7d 57 subi r23, 0x7D ; 125
76: 1c 00 .word 0x001c ; ????
78: 1c 5e subi r17, 0xEC ; 236
7a: 7f 5e subi r23, 0xEF ; 239
7c: 1c 00 .word 0x001c ; ????
7e: 00 18 sub r0, r0
80: 3c 18 sub r3, r12
82: 00 00 nop
84: ff e7 ldi r31, 0x7F ; 127
86: c3 e7 ldi r28, 0x73 ; 115
88: ff 00 .word 0x00ff ; ????
8a: 00 18 sub r0, r0
8c: 24 18 sub r2, r4
8e: 00 00 nop
90: ff e7 ldi r31, 0x7F ; 127
92: db e7 ldi r29, 0x7B ; 123
94: ff 00 .word 0x00ff ; ????
96: 30 48 sbci r19, 0x80 ; 128
98: 3a 06 cpc r3, r26
9a: 0e 00 .word 0x000e ; ????
9c: 26 29 or r18, r6
9e: 79 29 or r23, r9
a0: 26 00 .word 0x0026 ; ????
a2: 40 7f andi r20, 0xF0 ; 240
a4: 05 05 cpc r16, r5
a6: 07 00 .word 0x0007 ; ????
a8: 40 7f andi r20, 0xF0 ; 240
aa: 05 25 eor r16, r5
ac: 3f 00 .word 0x003f ; ????
ae: 5a 3c cpi r21, 0xCA ; 202
b0: e7 3c cpi r30, 0xC7 ; 199
b2: 5a 00 .word 0x005a ; ????
b4: 7f 3e cpi r23, 0xEF ; 239
b6: 1c 1c adc r1, r12
b8: 08 00 .word 0x0008 ; ????
ba: 08 1c adc r0, r8
bc: 1c 3e cpi r17, 0xEC ; 236
be: 7f 00 .word 0x007f ; ????
c0: 14 22 and r1, r20
c2: 7f 22 and r7, r31
c4: 14 00 .word 0x0014 ; ????
c6: 5f 5f subi r21, 0xFF ; 255
c8: 00 5f subi r16, 0xF0 ; 240
ca: 5f 00 .word 0x005f ; ????
cc: 06 09 sbc r16, r6
ce: 7f 01 movw r14, r30
d0: 7f 00 .word 0x007f ; ????
d2: 00 66 ori r16, 0x60 ; 96
d4: 89 95 .word 0x9589 ; ????
d6: 6a 00 .word 0x006a ; ????
d8: 60 60 ori r22, 0x00 ; 0
da: 60 60 ori r22, 0x00 ; 0
dc: 60 60 ori r22, 0x00 ; 0
de: 94 a2 std Z+36, r9 ; 0x24
e0: ff a2 std Y+39, r15 ; 0x27
e2: 94 00 .word 0x0094 ; ????
e4: 08 04 cpc r0, r8
e6: 7e 04 cpc r7, r14
e8: 08 00 .word 0x0008 ; ????
ea: 10 20 and r1, r0
ec: 7e 20 and r7, r14
ee: 10 00 .word 0x0010 ; ????
f0: 08 08 sbc r0, r8
f2: 2a 1c adc r2, r10
f4: 08 00 .word 0x0008 ; ????
f6: 08 1c adc r0, r8
f8: 2a 08 sbc r2, r10
fa: 08 00 .word 0x0008 ; ????
fc: 1e 10 cpse r1, r14
fe: 10 10 cpse r1, r0
100: 10 00 .word 0x0010 ; ????
102: 0c 1e adc r0, r28
104: 0c 1e adc r0, r28
106: 0c 00 .word 0x000c ; ????
108: 30 38 cpi r19, 0x80 ; 128
10a: 3e 38 cpi r19, 0x8E ; 142
10c: 30 00 .word 0x0030 ; ????
10e: 06 0e add r0, r22
110: 3e 0e add r3, r30
112: 06 00 .word 0x0006 ; ????
...
11c: 5f 00 .word 0x005f ; ????
11e: 00 00 nop
120: 00 07 cpc r16, r16
122: 00 07 cpc r16, r16
124: 00 00 nop
126: 14 7f andi r17, 0xF4 ; 244
128: 14 7f andi r17, 0xF4 ; 244
12a: 14 00 .word 0x0014 ; ????
12c: 24 2a or r2, r20
12e: 7f 2a or r7, r31
130: 12 00 .word 0x0012 ; ????
132: 23 13 cpse r18, r19
134: 08 64 ori r16, 0x48 ; 72
136: 62 00 .word 0x0062 ; ????
138: 36 49 sbci r19, 0x96 ; 150
13a: 56 20 and r5, r6
13c: 50 00 .word 0x0050 ; ????
13e: 00 08 sbc r0, r0
140: 07 03 mulsu r16, r23
142: 00 00 nop
144: 00 1c adc r0, r0
146: 22 41 sbci r18, 0x12 ; 18
148: 00 00 nop
14a: 00 41 sbci r16, 0x10 ; 16
14c: 22 1c adc r2, r2
14e: 00 00 nop
150: 2a 1c adc r2, r10
152: 7f 1c adc r7, r15
154: 2a 00 .word 0x002a ; ????
156: 08 08 sbc r0, r8
158: 3e 08 sbc r3, r14
15a: 08 00 .word 0x0008 ; ????
15c: 00 80 ld r0, Z
15e: 70 30 cpi r23, 0x00 ; 0
160: 00 00 nop
162: 08 08 sbc r0, r8
164: 08 08 sbc r0, r8
166: 08 00 .word 0x0008 ; ????
168: 00 00 nop
16a: 60 60 ori r22, 0x00 ; 0
16c: 00 00 nop
16e: 20 10 cpse r2, r0
170: 08 04 cpc r0, r8
172: 02 00 .word 0x0002 ; ????
174: 3e 51 subi r19, 0x1E ; 30
176: 49 45 sbci r20, 0x59 ; 89
178: 3e 00 .word 0x003e ; ????
17a: 00 42 sbci r16, 0x20 ; 32
17c: 7f 40 sbci r23, 0x0F ; 15
17e: 00 00 nop
180: 72 49 sbci r23, 0x92 ; 146
182: 49 49 sbci r20, 0x99 ; 153
184: 46 00 .word 0x0046 ; ????
186: 21 41 sbci r18, 0x11 ; 17
188: 49 4d sbci r20, 0xD9 ; 217
18a: 33 00 .word 0x0033 ; ????
18c: 18 14 cp r1, r8
18e: 12 7f andi r17, 0xF2 ; 242
190: 10 00 .word 0x0010 ; ????
192: 27 45 sbci r18, 0x57 ; 87
194: 45 45 sbci r20, 0x55 ; 85
196: 39 00 .word 0x0039 ; ????
198: 3c 4a sbci r19, 0xAC ; 172
19a: 49 49 sbci r20, 0x99 ; 153
19c: 31 00 .word 0x0031 ; ????
19e: 41 21 and r20, r1
1a0: 11 09 sbc r17, r1
1a2: 07 00 .word 0x0007 ; ????
1a4: 36 49 sbci r19, 0x96 ; 150
1a6: 49 49 sbci r20, 0x99 ; 153
1a8: 36 00 .word 0x0036 ; ????
1aa: 46 49 sbci r20, 0x96 ; 150
1ac: 49 29 or r20, r9
1ae: 1e 00 .word 0x001e ; ????
1b0: 00 00 nop
1b2: 14 00 .word 0x0014 ; ????
1b4: 00 00 nop
1b6: 00 40 sbci r16, 0x00 ; 0
1b8: 34 00 .word 0x0034 ; ????
1ba: 00 00 nop
1bc: 00 08 sbc r0, r0
1be: 14 22 and r1, r20
1c0: 41 00 .word 0x0041 ; ????
1c2: 14 14 cp r1, r4
1c4: 14 14 cp r1, r4
1c6: 14 00 .word 0x0014 ; ????
1c8: 00 41 sbci r16, 0x10 ; 16
1ca: 22 14 cp r2, r2
1cc: 08 00 .word 0x0008 ; ????
1ce: 02 01 movw r0, r4
1d0: 59 09 sbc r21, r9
1d2: 06 00 .word 0x0006 ; ????
1d4: 3e 41 sbci r19, 0x1E ; 30
1d6: 5d 59 subi r21, 0x9D ; 157
1d8: 4e 00 .word 0x004e ; ????
1da: 7c 12 cpse r7, r28
1dc: 11 12 cpse r1, r17
1de: 7c 00 .word 0x007c ; ????
1e0: 7f 49 sbci r23, 0x9F ; 159
1e2: 49 49 sbci r20, 0x99 ; 153
1e4: 36 00 .word 0x0036 ; ????
1e6: 3e 41 sbci r19, 0x1E ; 30
1e8: 41 41 sbci r20, 0x11 ; 17
1ea: 22 00 .word 0x0022 ; ????
1ec: 7f 41 sbci r23, 0x1F ; 31
1ee: 41 41 sbci r20, 0x11 ; 17
1f0: 3e 00 .word 0x003e ; ????
1f2: 7f 49 sbci r23, 0x9F ; 159
1f4: 49 49 sbci r20, 0x99 ; 153
1f6: 41 00 .word 0x0041 ; ????
1f8: 7f 09 sbc r23, r15
1fa: 09 09 sbc r16, r9
1fc: 01 00 .word 0x0001 ; ????
1fe: 3e 41 sbci r19, 0x1E ; 30
200: 41 51 subi r20, 0x11 ; 17
202: 73 00 .word 0x0073 ; ????
204: 7f 08 sbc r7, r15
206: 08 08 sbc r0, r8
208: 7f 00 .word 0x007f ; ????
20a: 00 41 sbci r16, 0x10 ; 16
20c: 7f 41 sbci r23, 0x1F ; 31
20e: 00 00 nop
210: 20 40 sbci r18, 0x00 ; 0
212: 41 3f cpi r20, 0xF1 ; 241
214: 01 00 .word 0x0001 ; ????
216: 7f 08 sbc r7, r15
218: 14 22 and r1, r20
21a: 41 00 .word 0x0041 ; ????
21c: 7f 40 sbci r23, 0x0F ; 15
21e: 40 40 sbci r20, 0x00 ; 0
220: 40 00 .word 0x0040 ; ????
222: 7f 02 muls r23, r31
224: 1c 02 muls r17, r28
226: 7f 00 .word 0x007f ; ????
228: 7f 04 cpc r7, r15
22a: 08 10 cpse r0, r8
22c: 7f 00 .word 0x007f ; ????
22e: 3e 41 sbci r19, 0x1E ; 30
230: 41 41 sbci r20, 0x11 ; 17
232: 3e 00 .word 0x003e ; ????
234: 7f 09 sbc r23, r15
236: 09 09 sbc r16, r9
238: 06 00 .word 0x0006 ; ????
23a: 3e 41 sbci r19, 0x1E ; 30
23c: 51 21 and r21, r1
23e: 5e 00 .word 0x005e ; ????
240: 7f 09 sbc r23, r15
242: 19 29 or r17, r9
244: 46 00 .word 0x0046 ; ????
246: 26 49 sbci r18, 0x96 ; 150
248: 49 49 sbci r20, 0x99 ; 153
24a: 32 00 .word 0x0032 ; ????
24c: 03 01 movw r0, r6
24e: 7f 01 movw r14, r30
250: 03 00 .word 0x0003 ; ????
252: 3f 40 sbci r19, 0x0F ; 15
254: 40 40 sbci r20, 0x00 ; 0
256: 3f 00 .word 0x003f ; ????
258: 1f 20 and r1, r15
25a: 40 20 and r4, r0
25c: 1f 00 .word 0x001f ; ????
25e: 3f 40 sbci r19, 0x0F ; 15
260: 38 40 sbci r19, 0x08 ; 8
262: 3f 00 .word 0x003f ; ????
264: 63 14 cp r6, r3
266: 08 14 cp r0, r8
268: 63 00 .word 0x0063 ; ????
26a: 03 04 cpc r0, r3
26c: 78 04 cpc r7, r8
26e: 03 00 .word 0x0003 ; ????
270: 61 59 subi r22, 0x91 ; 145
272: 49 4d sbci r20, 0xD9 ; 217
274: 43 00 .word 0x0043 ; ????
276: 00 7f andi r16, 0xF0 ; 240
278: 41 41 sbci r20, 0x11 ; 17
27a: 41 00 .word 0x0041 ; ????
27c: 02 04 cpc r0, r2
27e: 08 10 cpse r0, r8
280: 20 00 .word 0x0020 ; ????
282: 00 41 sbci r16, 0x10 ; 16
284: 41 41 sbci r20, 0x11 ; 17
286: 7f 00 .word 0x007f ; ????
288: 04 02 muls r16, r20
28a: 01 02 muls r16, r17
28c: 04 00 .word 0x0004 ; ????
28e: 40 40 sbci r20, 0x00 ; 0
290: 40 40 sbci r20, 0x00 ; 0
292: 40 00 .word 0x0040 ; ????
294: 00 03 mulsu r16, r16
296: 07 08 sbc r0, r7
298: 00 00 nop
29a: 20 54 subi r18, 0x40 ; 64
29c: 54 78 andi r21, 0x84 ; 132
29e: 40 00 .word 0x0040 ; ????
2a0: 7f 28 or r7, r15
2a2: 44 44 sbci r20, 0x44 ; 68
2a4: 38 00 .word 0x0038 ; ????
2a6: 38 44 sbci r19, 0x48 ; 72
2a8: 44 44 sbci r20, 0x44 ; 68
2aa: 28 00 .word 0x0028 ; ????
2ac: 38 44 sbci r19, 0x48 ; 72
2ae: 44 28 or r4, r4
2b0: 7f 00 .word 0x007f ; ????
2b2: 38 54 subi r19, 0x48 ; 72
2b4: 54 54 subi r21, 0x44 ; 68
2b6: 18 00 .word 0x0018 ; ????
2b8: 00 08 sbc r0, r0
2ba: 7e 09 sbc r23, r14
2bc: 02 00 .word 0x0002 ; ????
2be: 18 a4 ldd r1, Y+40 ; 0x28
2c0: a4 9c mul r10, r4
2c2: 78 00 .word 0x0078 ; ????
2c4: 7f 08 sbc r7, r15
2c6: 04 04 cpc r0, r4
2c8: 78 00 .word 0x0078 ; ????
2ca: 00 44 sbci r16, 0x40 ; 64
2cc: 7d 40 sbci r23, 0x0D ; 13
2ce: 00 00 nop
2d0: 20 40 sbci r18, 0x00 ; 0
2d2: 40 3d cpi r20, 0xD0 ; 208
2d4: 00 00 nop
2d6: 7f 10 cpse r7, r15
2d8: 28 44 sbci r18, 0x48 ; 72
2da: 00 00 nop
2dc: 00 41 sbci r16, 0x10 ; 16
2de: 7f 40 sbci r23, 0x0F ; 15
2e0: 00 00 nop
2e2: 7c 04 cpc r7, r12
2e4: 78 04 cpc r7, r8
2e6: 78 00 .word 0x0078 ; ????
2e8: 7c 08 sbc r7, r12
2ea: 04 04 cpc r0, r4
2ec: 78 00 .word 0x0078 ; ????
2ee: 38 44 sbci r19, 0x48 ; 72
2f0: 44 44 sbci r20, 0x44 ; 68
2f2: 38 00 .word 0x0038 ; ????
2f4: fc 18 sub r15, r12
2f6: 24 24 eor r2, r4
2f8: 18 00 .word 0x0018 ; ????
2fa: 18 24 eor r1, r8
2fc: 24 18 sub r2, r4
2fe: fc 00 .word 0x00fc ; ????
300: 7c 08 sbc r7, r12
302: 04 04 cpc r0, r4
304: 08 00 .word 0x0008 ; ????
306: 48 54 subi r20, 0x48 ; 72
308: 54 54 subi r21, 0x44 ; 68
30a: 24 00 .word 0x0024 ; ????
30c: 04 04 cpc r0, r4
30e: 3f 44 sbci r19, 0x4F ; 79
310: 24 00 .word 0x0024 ; ????
312: 3c 40 sbci r19, 0x0C ; 12
314: 40 20 and r4, r0
316: 7c 00 .word 0x007c ; ????
318: 1c 20 and r1, r12
31a: 40 20 and r4, r0
31c: 1c 00 .word 0x001c ; ????
31e: 3c 40 sbci r19, 0x0C ; 12
320: 30 40 sbci r19, 0x00 ; 0
322: 3c 00 .word 0x003c ; ????
324: 44 28 or r4, r4
326: 10 28 or r1, r0
328: 44 00 .word 0x0044 ; ????
32a: 4c 90 ld r4, X
32c: 90 90 7c 00 lds r9, 0x007C
330: 44 64 ori r20, 0x44 ; 68
332: 54 4c sbci r21, 0xC4 ; 196
334: 44 00 .word 0x0044 ; ????
336: 00 08 sbc r0, r0
338: 36 41 sbci r19, 0x16 ; 22
33a: 00 00 nop
33c: 00 00 nop
33e: 77 00 .word 0x0077 ; ????
340: 00 00 nop
342: 00 41 sbci r16, 0x10 ; 16
344: 36 08 sbc r3, r6
346: 00 00 nop
348: 02 01 movw r0, r4
34a: 02 04 cpc r0, r2
34c: 02 00 .word 0x0002 ; ????
34e: 3c 26 eor r3, r28
350: 23 26 eor r2, r19
352: 3c 00 .word 0x003c ; ????
354: 1e a1 ldd r17, Y+38 ; 0x26
356: a1 61 ori r26, 0x11 ; 17
358: 12 00 .word 0x0012 ; ????
35a: 3a 40 sbci r19, 0x0A ; 10
35c: 40 20 and r4, r0
35e: 7a 00 .word 0x007a ; ????
360: 38 54 subi r19, 0x48 ; 72
362: 54 55 subi r21, 0x54 ; 84
364: 59 00 .word 0x0059 ; ????
366: 21 55 subi r18, 0x51 ; 81
368: 55 79 andi r21, 0x95 ; 149
36a: 41 00 .word 0x0041 ; ????
36c: 21 54 subi r18, 0x41 ; 65
36e: 54 78 andi r21, 0x84 ; 132
370: 41 00 .word 0x0041 ; ????
372: 21 55 subi r18, 0x51 ; 81
374: 54 78 andi r21, 0x84 ; 132
376: 40 00 .word 0x0040 ; ????
378: 20 54 subi r18, 0x40 ; 64
37a: 55 79 andi r21, 0x95 ; 149
37c: 40 00 .word 0x0040 ; ????
37e: 0c 1e adc r0, r28
380: 52 72 andi r21, 0x22 ; 34
382: 12 00 .word 0x0012 ; ????
384: 39 55 subi r19, 0x59 ; 89
386: 55 55 subi r21, 0x55 ; 85
388: 59 00 .word 0x0059 ; ????
38a: 39 54 subi r19, 0x49 ; 73
38c: 54 54 subi r21, 0x44 ; 68
38e: 59 00 .word 0x0059 ; ????
390: 39 55 subi r19, 0x59 ; 89
392: 54 54 subi r21, 0x44 ; 68
394: 58 00 .word 0x0058 ; ????
396: 00 00 nop
398: 45 7c andi r20, 0xC5 ; 197
39a: 41 00 .word 0x0041 ; ????
39c: 00 02 muls r16, r16
39e: 45 7d andi r20, 0xD5 ; 213
3a0: 42 00 .word 0x0042 ; ????
3a2: 00 01 movw r0, r0
3a4: 45 7c andi r20, 0xC5 ; 197
3a6: 40 00 .word 0x0040 ; ????
3a8: 79 14 cp r7, r9
3aa: 12 14 cp r1, r2
3ac: 79 00 .word 0x0079 ; ????
3ae: f0 28 or r15, r0
3b0: 25 28 or r2, r5
3b2: f0 00 .word 0x00f0 ; ????
3b4: 7c 54 subi r23, 0x4C ; 76
3b6: 55 45 sbci r21, 0x55 ; 85
3b8: 00 00 nop
3ba: 20 54 subi r18, 0x40 ; 64
3bc: 54 7c andi r21, 0xC4 ; 196
3be: 54 44 sbci r21, 0x44 ; 68
3c0: 7c 0a sbc r7, r28
3c2: 09 7f andi r16, 0xF9 ; 249
3c4: 49 41 sbci r20, 0x19 ; 25
3c6: 32 49 sbci r19, 0x92 ; 146
3c8: 49 49 sbci r20, 0x99 ; 153
3ca: 32 00 .word 0x0032 ; ????
3cc: 32 48 sbci r19, 0x82 ; 130
3ce: 48 48 sbci r20, 0x88 ; 136
3d0: 32 00 .word 0x0032 ; ????
3d2: 32 4a sbci r19, 0xA2 ; 162
3d4: 48 48 sbci r20, 0x88 ; 136
3d6: 30 00 .word 0x0030 ; ????
3d8: 3a 41 sbci r19, 0x1A ; 26
3da: 41 21 and r20, r1
3dc: 7a 00 .word 0x007a ; ????
3de: 3a 42 sbci r19, 0x2A ; 42
3e0: 40 20 and r4, r0
3e2: 78 00 .word 0x0078 ; ????
3e4: 00 9d mul r16, r0
3e6: a0 a0 ldd r10, Z+32 ; 0x20
3e8: 7d 00 .word 0x007d ; ????
3ea: 39 44 sbci r19, 0x49 ; 73
3ec: 44 44 sbci r20, 0x44 ; 68
3ee: 39 00 .word 0x0039 ; ????
3f0: 3d 40 sbci r19, 0x0D ; 13
3f2: 40 40 sbci r20, 0x00 ; 0
3f4: 3d 00 .word 0x003d ; ????
3f6: 3c 24 eor r3, r12
3f8: ff 24 eor r15, r15
3fa: 24 00 .word 0x0024 ; ????
3fc: 48 7e andi r20, 0xE8 ; 232
3fe: 49 43 sbci r20, 0x39 ; 57
400: 66 00 .word 0x0066 ; ????
402: 2b 2f mov r18, r27
404: fc 2f mov r31, r28
406: 2b 00 .word 0x002b ; ????
408: ff 09 sbc r31, r15
40a: 29 f6 brne .-118 ; 0x396 <__ctors_end+0x342>
40c: 20 00 .word 0x0020 ; ????
40e: c0 88 ldd r12, Z+16 ; 0x10
410: 7e 09 sbc r23, r14
412: 03 00 .word 0x0003 ; ????
414: 20 54 subi r18, 0x40 ; 64
416: 54 79 andi r21, 0x94 ; 148
418: 41 00 .word 0x0041 ; ????
41a: 00 00 nop
41c: 44 7d andi r20, 0xD4 ; 212
41e: 41 00 .word 0x0041 ; ????
420: 30 48 sbci r19, 0x80 ; 128
422: 48 4a sbci r20, 0xA8 ; 168
424: 32 00 .word 0x0032 ; ????
426: 38 40 sbci r19, 0x08 ; 8
428: 40 22 and r4, r16
42a: 7a 00 .word 0x007a ; ????
42c: 00 7a andi r16, 0xA0 ; 160
42e: 0a 0a sbc r0, r26
430: 72 00 .word 0x0072 ; ????
432: 7d 0d add r23, r13
434: 19 31 cpi r17, 0x19 ; 25
436: 7d 00 .word 0x007d ; ????
438: 26 29 or r18, r6
43a: 29 2f mov r18, r25
43c: 28 00 .word 0x0028 ; ????
43e: 26 29 or r18, r6
440: 29 29 or r18, r9
442: 26 00 .word 0x0026 ; ????
444: 30 48 sbci r19, 0x80 ; 128
446: 4d 40 sbci r20, 0x0D ; 13
448: 20 00 .word 0x0020 ; ????
44a: 38 08 sbc r3, r8
44c: 08 08 sbc r0, r8
44e: 08 00 .word 0x0008 ; ????
450: 08 08 sbc r0, r8
452: 08 08 sbc r0, r8
454: 38 00 .word 0x0038 ; ????
456: 2f 10 cpse r2, r15
458: c8 ac ldd r12, Y+56 ; 0x38
45a: ba 00 .word 0x00ba ; ????
45c: 2f 10 cpse r2, r15
45e: 28 34 cpi r18, 0x48 ; 72
460: fa 00 .word 0x00fa ; ????
462: 00 00 nop
464: 7b 00 .word 0x007b ; ????
466: 00 00 nop
468: 08 14 cp r0, r8
46a: 2a 14 cp r2, r10
46c: 22 00 .word 0x0022 ; ????
46e: 22 14 cp r2, r2
470: 2a 14 cp r2, r10
472: 08 00 .word 0x0008 ; ????
474: aa 00 .word 0x00aa ; ????
476: 55 00 .word 0x0055 ; ????
478: aa 00 .word 0x00aa ; ????
47a: aa 55 subi r26, 0x5A ; 90
47c: aa 55 subi r26, 0x5A ; 90
47e: aa 55 subi r26, 0x5A ; 90
480: 55 aa std Z+53, r5 ; 0x35
482: 55 aa std Z+53, r5 ; 0x35
484: 55 aa std Z+53, r5 ; 0x35
486: 00 00 nop
488: 00 ff sbrs r16, 0
48a: 00 00 nop
48c: 10 10 cpse r1, r0
48e: 10 ff sbrs r17, 0
490: 00 00 nop
492: 14 14 cp r1, r4
494: 14 ff sbrs r17, 4
496: 00 00 nop
498: 10 10 cpse r1, r0
49a: ff 00 .word 0x00ff ; ????
49c: ff 00 .word 0x00ff ; ????
49e: 10 10 cpse r1, r0
4a0: f0 10 cpse r15, r0
4a2: f0 00 .word 0x00f0 ; ????
4a4: 14 14 cp r1, r4
4a6: 14 fc sbrc r1, 4
4a8: 00 00 nop
4aa: 14 14 cp r1, r4
4ac: f7 00 .word 0x00f7 ; ????
4ae: ff 00 .word 0x00ff ; ????
4b0: 00 00 nop
4b2: ff 00 .word 0x00ff ; ????
4b4: ff 00 .word 0x00ff ; ????
4b6: 14 14 cp r1, r4
4b8: f4 04 cpc r15, r4
4ba: fc 00 .word 0x00fc ; ????
4bc: 14 14 cp r1, r4
4be: 17 10 cpse r1, r7
4c0: 1f 00 .word 0x001f ; ????
4c2: 10 10 cpse r1, r0
4c4: 1f 10 cpse r1, r15
4c6: 1f 00 .word 0x001f ; ????
4c8: 14 14 cp r1, r4
4ca: 14 1f adc r17, r20
4cc: 00 00 nop
4ce: 10 10 cpse r1, r0
4d0: 10 f0 brcs .+4 ; 0x4d6 <__ctors_end+0x482>
4d2: 00 00 nop
4d4: 00 00 nop
4d6: 00 1f adc r16, r16
4d8: 10 10 cpse r1, r0
4da: 10 10 cpse r1, r0
4dc: 10 1f adc r17, r16
4de: 10 10 cpse r1, r0
4e0: 10 10 cpse r1, r0
4e2: 10 f0 brcs .+4 ; 0x4e8 <__ctors_end+0x494>
4e4: 10 10 cpse r1, r0
4e6: 00 00 nop
4e8: 00 ff sbrs r16, 0
4ea: 10 10 cpse r1, r0
4ec: 10 10 cpse r1, r0
4ee: 10 10 cpse r1, r0
4f0: 10 10 cpse r1, r0
4f2: 10 10 cpse r1, r0
4f4: 10 ff sbrs r17, 0
4f6: 10 10 cpse r1, r0
4f8: 00 00 nop
4fa: 00 ff sbrs r16, 0
4fc: 14 14 cp r1, r4
4fe: 00 00 nop
500: ff 00 .word 0x00ff ; ????
502: ff 10 cpse r15, r15
504: 00 00 nop
506: 1f 10 cpse r1, r15
508: 17 14 cp r1, r7
50a: 00 00 nop
50c: fc 04 cpc r15, r12
50e: f4 14 cp r15, r4
510: 14 14 cp r1, r4
512: 17 10 cpse r1, r7
514: 17 14 cp r1, r7
516: 14 14 cp r1, r4
518: f4 04 cpc r15, r4
51a: f4 14 cp r15, r4
51c: 00 00 nop
51e: ff 00 .word 0x00ff ; ????
520: f7 14 cp r15, r7
522: 14 14 cp r1, r4
524: 14 14 cp r1, r4
526: 14 14 cp r1, r4
528: 14 14 cp r1, r4
52a: f7 00 .word 0x00f7 ; ????
52c: f7 14 cp r15, r7
52e: 14 14 cp r1, r4
530: 14 17 cp r17, r20
532: 14 14 cp r1, r4
534: 10 10 cpse r1, r0
536: 1f 10 cpse r1, r15
538: 1f 10 cpse r1, r15
53a: 14 14 cp r1, r4
53c: 14 f4 brge .+4 ; 0x542 <__ctors_end+0x4ee>
53e: 14 14 cp r1, r4
540: 10 10 cpse r1, r0
542: f0 10 cpse r15, r0
544: f0 10 cpse r15, r0
546: 00 00 nop
548: 1f 10 cpse r1, r15
54a: 1f 10 cpse r1, r15
54c: 00 00 nop
54e: 00 1f adc r16, r16
550: 14 14 cp r1, r4
552: 00 00 nop
554: 00 fc sbrc r0, 0
556: 14 14 cp r1, r4
558: 00 00 nop
55a: f0 10 cpse r15, r0
55c: f0 10 cpse r15, r0
55e: 10 10 cpse r1, r0
560: ff 10 cpse r15, r15
562: ff 10 cpse r15, r15
564: 14 14 cp r1, r4
566: 14 ff sbrs r17, 4
568: 14 14 cp r1, r4
56a: 10 10 cpse r1, r0
56c: 10 1f adc r17, r16
56e: 00 00 nop
570: 00 00 nop
572: 00 f0 brcs .+0 ; 0x574 <__ctors_end+0x520>
574: 10 10 cpse r1, r0
576: ff ff .word 0xffff ; ????
578: ff ff .word 0xffff ; ????
57a: ff ff .word 0xffff ; ????
57c: f0 f0 brcs .+60 ; 0x5ba <__ctors_end+0x566>
57e: f0 f0 brcs .+60 ; 0x5bc <__ctors_end+0x568>
580: f0 f0 brcs .+60 ; 0x5be <__ctors_end+0x56a>
582: ff ff .word 0xffff ; ????
584: ff 00 .word 0x00ff ; ????
586: 00 00 nop
588: 00 00 nop
58a: 00 ff sbrs r16, 0
58c: ff ff .word 0xffff ; ????
58e: 0f 0f add r16, r31
590: 0f 0f add r16, r31
592: 0f 0f add r16, r31
594: 38 44 sbci r19, 0x48 ; 72
596: 44 38 cpi r20, 0x84 ; 132
598: 44 00 .word 0x0044 ; ????
59a: 7c 2a or r7, r28
59c: 2a 3e cpi r18, 0xEA ; 234
59e: 14 00 .word 0x0014 ; ????
5a0: 7e 02 muls r23, r30
5a2: 02 06 cpc r0, r18
5a4: 06 00 .word 0x0006 ; ????
5a6: 02 7e andi r16, 0xE2 ; 226
5a8: 02 7e andi r16, 0xE2 ; 226
5aa: 02 00 .word 0x0002 ; ????
5ac: 63 55 subi r22, 0x53 ; 83
5ae: 49 41 sbci r20, 0x19 ; 25
5b0: 63 00 .word 0x0063 ; ????
5b2: 38 44 sbci r19, 0x48 ; 72
5b4: 44 3c cpi r20, 0xC4 ; 196
5b6: 04 00 .word 0x0004 ; ????
5b8: 40 7e andi r20, 0xE0 ; 224
5ba: 20 1e adc r2, r16
5bc: 20 00 .word 0x0020 ; ????
5be: 06 02 muls r16, r22
5c0: 7e 02 muls r23, r30
5c2: 02 00 .word 0x0002 ; ????
5c4: 99 a5 ldd r25, Y+41 ; 0x29
5c6: e7 a5 ldd r30, Z+47 ; 0x2f
5c8: 99 00 .word 0x0099 ; ????
5ca: 1c 2a or r1, r28
5cc: 49 2a or r4, r25
5ce: 1c 00 .word 0x001c ; ????
5d0: 4c 72 andi r20, 0x2C ; 44
5d2: 01 72 andi r16, 0x21 ; 33
5d4: 4c 00 .word 0x004c ; ????
5d6: 30 4a sbci r19, 0xA0 ; 160
5d8: 4d 4d sbci r20, 0xDD ; 221
5da: 30 00 .word 0x0030 ; ????
5dc: 30 48 sbci r19, 0x80 ; 128
5de: 78 48 sbci r23, 0x88 ; 136
5e0: 30 00 .word 0x0030 ; ????
5e2: bc 62 ori r27, 0x2C ; 44
5e4: 5a 46 sbci r21, 0x6A ; 106
5e6: 3d 00 .word 0x003d ; ????
5e8: 3e 49 sbci r19, 0x9E ; 158
5ea: 49 49 sbci r20, 0x99 ; 153
5ec: 00 00 nop
5ee: 7e 01 movw r14, r28
5f0: 01 01 movw r0, r2
5f2: 7e 00 .word 0x007e ; ????
5f4: 2a 2a or r2, r26
5f6: 2a 2a or r2, r26
5f8: 2a 00 .word 0x002a ; ????
5fa: 44 44 sbci r20, 0x44 ; 68
5fc: 5f 44 sbci r21, 0x4F ; 79
5fe: 44 00 .word 0x0044 ; ????
600: 40 51 subi r20, 0x10 ; 16
602: 4a 44 sbci r20, 0x4A ; 74
604: 40 00 .word 0x0040 ; ????
606: 40 44 sbci r20, 0x40 ; 64
608: 4a 51 subi r20, 0x1A ; 26
60a: 40 00 .word 0x0040 ; ????
60c: 00 00 nop
60e: ff 01 movw r30, r30
610: 03 00 .word 0x0003 ; ????
612: e0 80 ld r14, Z
614: ff 00 .word 0x00ff ; ????
616: 00 00 nop
618: 08 08 sbc r0, r8
61a: 6b 6b ori r22, 0xBB ; 187
61c: 08 08 sbc r0, r8
61e: 36 12 cpse r3, r22
620: 36 24 eor r3, r6
622: 36 00 .word 0x0036 ; ????
624: 06 0f add r16, r22
626: 09 0f add r16, r25
628: 06 00 .word 0x0006 ; ????
62a: 00 00 nop
62c: 18 18 sub r1, r8
62e: 00 00 nop
630: 00 00 nop
632: 10 10 cpse r1, r0
634: 00 00 nop
636: 30 40 sbci r19, 0x00 ; 0
638: ff 01 movw r30, r30
63a: 01 00 .word 0x0001 ; ????
63c: 00 1f adc r16, r16
63e: 01 01 movw r0, r2
640: 1e 00 .word 0x001e ; ????
642: 00 19 sub r16, r0
644: 1d 17 cp r17, r29
646: 12 00 .word 0x0012 ; ????
648: 00 3c cpi r16, 0xC0 ; 192
64a: 3c 3c cpi r19, 0xCC ; 204
64c: 3c 00 .word 0x003c ; ????
64e: 00 00 nop
650: 00 00 nop
...
 
00000654 <__c.0>:
654: 20 20 20 20 20 20 00 .
 
0000065b <parameter>:
65b: 4e 69 63 6b 20 20 20 20 20 20 20 20 20 20 20 00 Nick .
66b: 52 6f 6c 6c 20 20 20 20 20 20 20 20 20 20 20 00 Roll .
67b: 47 61 73 20 20 20 20 20 20 20 20 20 20 20 20 00 Gas .
68b: 47 69 65 72 09 09 09 00 00 00 00 00 00 00 00 00 Gier............
69b: 50 6f 74 69 31 09 09 09 00 00 00 00 00 00 00 00 Poti1...........
6ab: 50 6f 74 69 32 09 09 09 00 00 00 00 00 00 00 00 Poti2...........
6bb: 50 6f 74 69 33 09 09 09 00 00 00 00 00 00 00 00 Poti3...........
6cb: 50 6f 74 69 34 09 09 09 00 00 00 00 00 00 00 00 Poti4...........
6db: 43 6f 6e 66 69 67 09 09 09 00 00 00 00 00 00 00 Config..........
6eb: 48 6f 65 68 65 5f 4d 69 6e 47 61 73 20 20 20 00 Hoehe_MinGas .
6fb: 4c 75 66 74 64 72 75 63 6b 5f 44 20 20 20 20 00 Luftdruck_D .
70b: 4d 61 78 48 6f 65 68 65 20 20 20 20 20 20 20 00 MaxHoehe .
71b: 48 6f 65 68 65 5f 50 20 20 20 20 20 20 20 20 00 Hoehe_P .
72b: 48 6f 65 68 65 5f 56 65 72 73 74 61 65 72 6b 00 Hoehe_Verstaerk.
73b: 48 6f 65 68 65 5f 41 43 43 5f 57 69 72 6b 2e 00 Hoehe_ACC_Wirk..
74b: 53 74 69 63 6b 5f 50 20 20 20 20 20 20 20 20 00 Stick_P .
75b: 53 74 69 63 6b 5f 44 20 20 20 20 20 20 20 20 00 Stick_D .
76b: 47 69 65 72 5f 50 20 20 20 20 20 20 20 20 20 00 Gier_P .
77b: 47 61 73 5f 4d 69 6e 20 20 20 20 20 20 20 20 00 Gas_Min .
78b: 47 61 73 5f 4d 61 78 20 20 20 20 20 20 20 20 00 Gas_Max .
79b: 47 79 72 6f 41 63 63 46 61 6b 74 6f 72 09 00 00 GyroAccFaktor...
7ab: 4b 6f 6d 70 61 73 73 57 69 72 6b 75 6e 67 20 00 KompassWirkung .
7bb: 47 79 72 6f 5f 50 20 09 09 00 00 00 00 00 00 00 Gyro_P .........
7cb: 47 79 72 6f 5f 49 09 09 09 00 00 00 00 00 00 00 Gyro_I..........
7db: 55 6e 74 65 72 73 70 61 6e 6e 75 6e 67 20 20 00 Unterspannung .
7eb: 4e 6f 74 47 61 73 09 09 09 00 00 00 00 00 00 00 NotGas..........
7fb: 4e 6f 74 47 61 73 5a 65 69 74 20 20 20 20 20 00 NotGasZeit .
80b: 55 66 6f 41 75 73 72 69 63 68 74 75 6e 67 20 00 UfoAusrichtung .
81b: 49 5f 46 61 6b 74 6f 72 20 20 20 20 20 20 20 00 I_Faktor .
82b: 55 73 65 72 50 61 72 61 6d 31 09 09 00 00 00 00 UserParam1......
83b: 55 73 65 72 50 61 72 61 6d 32 09 09 00 00 00 00 UserParam2......
84b: 55 73 65 72 50 61 72 61 6d 33 09 09 00 00 00 00 UserParam3......
85b: 55 73 65 72 50 61 72 61 6d 34 09 09 00 00 00 00 UserParam4......
86b: 53 65 72 76 6f 4e 69 63 6b 43 74 72 6c 09 00 00 ServoNickCtrl...
87b: 53 65 72 76 6f 4e 69 63 6b 43 6f 6d 70 09 00 00 ServoNickComp...
88b: 53 65 72 76 6f 4e 69 63 6b 4d 69 6e 09 00 00 00 ServoNickMin....
89b: 53 65 72 76 6f 4e 69 63 6b 4d 61 78 09 00 00 00 ServoNickMax....
8ab: 53 65 72 76 6f 4e 69 63 6b 52 65 66 72 73 68 00 ServoNickRefrsh.
8bb: 4c 6f 6f 70 47 61 73 4c 69 6d 69 74 09 00 00 00 LoopGasLimit....
8cb: 4c 6f 6f 70 54 68 72 65 73 68 6f 6c 64 09 00 00 LoopThreshold...
8db: 4c 6f 6f 70 48 79 73 74 65 72 65 73 65 09 00 00 LoopHysterese...
8eb: 41 63 68 73 4b 6f 70 70 6c 75 6e 67 09 00 00 00 AchsKopplung....
8fb: 41 63 68 73 47 65 67 65 6e 4b 6f 70 70 6c 2e 00 AchsGegenKoppl..
90b: 57 69 6e 6b 6c 55 6d 73 63 68 6c 4e 69 63 6b 00 WinklUmschlNick.
91b: 57 69 6e 6b 6c 55 6d 73 63 68 6c 52 6f 6c 6c 00 WinklUmschlRoll.
92b: 47 79 72 6f 41 63 63 41 62 67 6c 65 69 63 68 00 GyroAccAbgleich.
93b: 44 72 69 66 74 6b 6f 6d 70 09 09 00 00 00 00 00 Driftkomp.......
94b: 44 79 6e 61 6d 69 63 53 74 61 62 69 6c 69 74 00 DynamicStabilit.
95b: 55 73 65 72 50 61 72 61 6d 35 09 09 00 00 00 00 UserParam5......
96b: 55 73 65 72 50 61 72 61 6d 36 09 09 00 00 00 00 UserParam6......
97b: 55 73 65 72 50 61 72 61 6d 37 09 09 00 00 00 00 UserParam7......
98b: 55 73 65 72 50 61 72 61 6d 38 09 09 00 00 00 00 UserParam8......
99b: 4c 6f 6f 70 43 6f 6e 66 69 67 09 09 00 00 00 00 LoopConfig......
9ab: 53 65 72 76 6f 4e 69 63 6b 43 6f 6d 70 49 6e 00 ServoNickCompIn.
 
000009bb <bin_parameter>:
9bb: 4c 6f 6f 70 20 75 70 20 20 20 20 20 20 20 20 00 Loop up .
9cb: 4c 6f 6f 70 20 64 6f 77 6e 09 20 20 20 20 00 00 Loop down. ..
9db: 4c 6f 6f 70 20 6c 65 66 74 20 20 20 20 20 20 00 Loop left .
9eb: 4c 6f 6f 70 20 72 69 67 68 74 20 20 20 20 20 00 Loop right .
9fb: 48 f6 68 65 6e 72 65 67 6c 65 72 20 20 20 20 00 H.henregler .
a0b: 48 f6 68 65 6e 73 63 68 61 6c 74 65 72 20 20 00 H.henschalter .
a1b: 48 65 61 64 68 6f 6c 64 09 09 00 00 00 00 00 00 Headhold........
a2b: 4b 6f 6d 70 61 73 73 09 09 00 00 00 00 00 00 00 Kompass.........
a3b: 4b 6f 6d 70 61 73 73 46 69 78 09 09 00 00 00 00 KompassFix......
a4b: 47 50 53 09 09 09 00 00 00 00 00 00 00 00 00 00 GPS.............
a5b: 41 63 68 73 65 6e 6b 6f 70 70 6c 75 6e 67 20 00 Achsenkopplung .
a6b: 44 72 65 68 72 61 74 65 09 09 00 00 00 00 00 00 Drehrate........
 
00000a7b <p_limits>:
a7b: 01 08 02 01 08 02 01 08 02 01 08 02 01 08 02 01 ................
a8b: 08 02 01 08 02 01 08 02 00 00 00 00 ff 04 00 ff ................
a9b: 04 00 ff 04 00 ff 04 00 32 04 00 ff 04 00 06 03 ........2.......
aab: 00 40 03 00 14 03 00 20 08 21 fa 08 00 32 08 00 .@..... .!...2..
abb: ff 08 00 00 05 00 00 05 00 fa 08 00 fa 08 00 fa ................
acb: 08 00 01 00 00 ff 05 00 ff 09 00 ff 09 00 ff 09 ................
adb: 00 ff 09 00 ff 07 00 fa 07 00 fa 07 00 fa 07 00 ................
aeb: 19 07 00 ff 06 00 fa 06 00 fa 06 00 ff 0a 00 ff ................
afb: 0a 00 fa 06 00 fa 06 00 fa 05 00 fa 05 00 ff 05 ................
b0b: 00 ff 09 00 ff 09 00 ff 09 00 ff 09 00 00 01 00 ................
b1b: 01 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
...
 
00000b42 <p_menu_number>:
b42: 02 02 02 02 02 02 02 02 00 04 04 04 04 04 04 03 ................
b52: 03 03 08 08 08 08 05 05 08 08 08 00 05 09 09 09 ................
b62: 09 07 07 07 07 07 07 06 06 06 0a 0a 06 06 05 05 ................
b72: 05 09 09 09 09 00 07 0b 0b 0b 0b 0c 0c 0c 0c 0c ................
b82: 0c 0c 0c ...
 
00000b85 <p_menus>:
b85: 43 6f 6e 66 69 67 20 20 20 20 00 43 68 61 6e 6e Config .Chann
b95: 65 6c 73 20 20 00 53 74 69 63 6b 20 20 20 20 20 els .Stick
ba5: 00 48 6f 65 68 65 20 20 20 20 20 00 47 79 72 6f .Hoehe .Gyro
bb5: 20 20 20 20 20 20 00 4c 6f 6f 70 69 6e 67 20 20 .Looping
bc5: 20 00 43 61 6d 65 72 61 20 20 20 20 00 53 6f 6e .Camera .Son
bd5: 73 74 69 67 65 73 20 00 55 73 65 72 20 20 20 20 stiges .User
be5: 20 20 00 43 6f 75 70 6c 69 6e 67 20 20 00 43 6f .Coupling .Co
bf5: 6e 66 69 67 28 32 29 20 00 4c 6f 6f 70 69 6e 67 nfig(2) .Looping
c05: 73 65 74 00 set.
 
00000c09 <__c.11>:
c09: 2d 00 -.
 
00000c0b <__c.12>:
c0b: 2d 00 -.
 
00000c0d <__c.13>:
c0d: 2d 00 -.
 
00000c0f <__c.0>:
c0f: 4c 61 64 65 20 50 61 72 61 6d 65 74 65 72 0d 0a Lade Parameter..
...
 
00000c20 <__c.1>:
c20: 20 31 3a 0d 0a 00 1:...
 
00000c26 <__c.2>:
c26: 20 32 3a 0d 0a 00 2:...
 
00000c2c <__c.3>:
c2c: 20 33 3a 0d 0a 00 3:...
 
00000c32 <__c.4>:
c32: 20 34 3a 0d 0a 00 4:...
 
00000c38 <__c.5>:
c38: 20 35 3a 0d 0a 00 5:...
 
00000c3e <__c.6>:
c3e: 54 69 6d 65 6f 75 74 00 Timeout.
 
00000c46 <__c.7>:
c46: 50 61 72 61 6d 65 74 65 72 20 73 70 65 69 63 68 Parameter speich
c56: 65 72 6e 3f 0d 0a 20 20 6a 61 0d 0a 20 20 6e 65 ern?.. ja.. ne
c66: 69 6e 00 in.
 
00000c69 <__c.8>:
c69: 0d 0a 2d 2d 2d 3e 00 ..--->.
 
00000c70 <__c.9>:
c70: 0d 0a 50 61 72 61 6d 65 74 65 72 20 67 65 73 70 ..Parameter gesp
c80: 65 69 63 68 65 72 74 00 eichert.
 
00000c88 <__c.10>:
c88: 0d 0a 4e 69 63 68 74 20 67 65 73 70 65 69 63 68 ..Nicht gespeich
c98: 65 72 74 00 ert.
 
00000c9c <__c.4>:
c9c: 20 00 .
 
00000c9e <__c.5>:
c9e: 2a 00 *.
 
00000ca0 <__c.0>:
ca0: 48 61 75 70 74 6d 65 6e fc 28 42 45 54 41 20 56 Hauptmen.(BETA V
cb0: 30 2e 31 29 0d 0a 00 0.1)...
 
00000cb7 <__c.1>:
cb7: 0d 0a 44 69 73 70 6c 61 79 0d 0a 00 ..Display...
 
00000cc3 <__c.2>:
cc3: 50 61 72 61 6d 65 74 65 72 0d 0a 00 Parameter...
 
00000ccf <__c.3>:
ccf: 4d 6f 74 6f 72 74 65 73 74 00 Motortest.
 
00000cd9 <__c.0>:
cd9: 44 69 73 70 6c 61 79 00 Display.
 
00000ce1 <__c.1>:
ce1: 0d 0a 54 69 6d 65 6f 75 74 21 00 ..Timeout!.
 
00000cec <__c.0>:
cec: 54 61 73 74 65 20 64 72 fc 63 6b 65 6e 0d 0a 00 Taste dr.cken...
 
00000cfc <__init>:
cfc: 11 24 eor r1, r1
cfe: 1f be out 0x3f, r1 ; 63
d00: cf e5 ldi r28, 0x5F ; 95
d02: d8 e0 ldi r29, 0x08 ; 8
d04: de bf out 0x3e, r29 ; 62
d06: cd bf out 0x3d, r28 ; 61
 
00000d08 <__do_copy_data>:
d08: 10 e0 ldi r17, 0x00 ; 0
d0a: a0 e6 ldi r26, 0x60 ; 96
d0c: b0 e0 ldi r27, 0x00 ; 0
d0e: ec e6 ldi r30, 0x6C ; 108
d10: f6 e2 ldi r31, 0x26 ; 38
d12: 02 c0 rjmp .+4 ; 0xd18 <.do_copy_data_start>
 
00000d14 <.do_copy_data_loop>:
d14: 05 90 lpm r0, Z+
d16: 0d 92 st X+, r0
 
00000d18 <.do_copy_data_start>:
d18: a0 36 cpi r26, 0x60 ; 96
d1a: b1 07 cpc r27, r17
d1c: d9 f7 brne .-10 ; 0xd14 <.do_copy_data_loop>
 
00000d1e <__do_clear_bss>:
d1e: 15 e0 ldi r17, 0x05 ; 5
d20: a0 e6 ldi r26, 0x60 ; 96
d22: b0 e0 ldi r27, 0x00 ; 0
d24: 01 c0 rjmp .+2 ; 0xd28 <.do_clear_bss_start>
 
00000d26 <.do_clear_bss_loop>:
d26: 1d 92 st X+, r1
 
00000d28 <.do_clear_bss_start>:
d28: a7 38 cpi r26, 0x87 ; 135
d2a: b1 07 cpc r27, r17
d2c: e1 f7 brne .-8 ; 0xd26 <.do_clear_bss_loop>
d2e: 0c 94 9b 06 jmp 0xd36 <main>
 
00000d32 <__bad_interrupt>:
d32: 0c 94 00 00 jmp 0x0 <__vectors>
 
00000d36 <main>:
#include "timer.h"
 
 
int main (void)
{
d36: cf e5 ldi r28, 0x5F ; 95
d38: d8 e0 ldi r29, 0x08 ; 8
d3a: de bf out 0x3e, r29 ; 62
d3c: cd bf out 0x3d, r28 ; 61
PORTA = 0xFF; // unbenutzte Pins auf Pull-Up
d3e: 8f ef ldi r24, 0xFF ; 255
d40: 8b bb out 0x1b, r24 ; 27
PORTB = 0x43;
d42: 83 e4 ldi r24, 0x43 ; 67
d44: 88 bb out 0x18, r24 ; 24
PORTC = 0xFC;
d46: 8c ef ldi r24, 0xFC ; 252
d48: 85 bb out 0x15, r24 ; 21
PORTD = 0x7C;
d4a: 8c e7 ldi r24, 0x7C ; 124
d4c: 82 bb out 0x12, r24 ; 18
DDRC = 0x03; // Pins für Beleuchtung auf Ausgang
d4e: 83 e0 ldi r24, 0x03 ; 3
d50: 84 bb out 0x14, r24 ; 20
DDRD = 0x80;
d52: 80 e8 ldi r24, 0x80 ; 128
d54: 81 bb out 0x11, r24 ; 17
 
lcd_init();
d56: 0e 94 53 07 call 0xea6 <lcd_init>
RS232_init();
d5a: 0e 94 1a 0c call 0x1834 <RS232_init>
timer_init();
d5e: 0e 94 f4 06 call 0xde8 <timer_init>
sei();
d62: 78 94 sei
 
for (;;)
main_menu();
d64: 0e 94 c8 11 call 0x2390 <main_menu>
d68: fd cf rjmp .-6 ; 0xd64 <main+0x2e>
 
00000d6a <__vector_10>:
volatile uint8_t rs232_timer;
 
 
ISR(SIG_OUTPUT_COMPARE0) // Timer-Interrupt (100 Hz)
{
d6a: 1f 92 push r1
d6c: 0f 92 push r0
d6e: 0f b6 in r0, 0x3f ; 63
d70: 0f 92 push r0
d72: 11 24 eor r1, r1
d74: 8f 93 push r24
d76: 9f 93 push r25
if (counter > 0)
d78: 80 91 e4 04 lds r24, 0x04E4
d7c: 88 23 and r24, r24
d7e: 31 f0 breq .+12 ; 0xd8c <__vector_10+0x22>
counter --;
d80: 80 91 e4 04 lds r24, 0x04E4
d84: 81 50 subi r24, 0x01 ; 1
d86: 80 93 e4 04 sts 0x04E4, r24
d8a: 15 c0 rjmp .+42 ; 0xdb6 <__vector_10+0x4c>
else
{
counter = 10;
d8c: 8a e0 ldi r24, 0x0A ; 10
d8e: 80 93 e4 04 sts 0x04E4, r24
key = (~PINA >> 4) & 0x0F;
d92: 89 b3 in r24, 0x19 ; 25
d94: 99 27 eor r25, r25
d96: 80 95 com r24
d98: 90 95 com r25
d9a: 68 94 set
d9c: 13 f8 bld r1, 3
d9e: 95 95 asr r25
da0: 87 95 ror r24
da2: 16 94 lsr r1
da4: e1 f7 brne .-8 ; 0xd9e <__vector_10+0x34>
da6: 8f 70 andi r24, 0x0F ; 15
da8: 80 93 e6 04 sts 0x04E6, r24
counter2 ++;
dac: 80 91 69 05 lds r24, 0x0569
db0: 8f 5f subi r24, 0xFF ; 255
db2: 80 93 69 05 sts 0x0569, r24
}
if (timer > 0)
db6: 80 91 61 00 lds r24, 0x0061
dba: 88 23 and r24, r24
dbc: 29 f0 breq .+10 ; 0xdc8 <__vector_10+0x5e>
timer --;
dbe: 80 91 61 00 lds r24, 0x0061
dc2: 81 50 subi r24, 0x01 ; 1
dc4: 80 93 61 00 sts 0x0061, r24
if (rs232_timer > 0)
dc8: 80 91 e5 04 lds r24, 0x04E5
dcc: 88 23 and r24, r24
dce: 29 f0 breq .+10 ; 0xdda <__vector_10+0x70>
rs232_timer --;
dd0: 80 91 e5 04 lds r24, 0x04E5
dd4: 81 50 subi r24, 0x01 ; 1
dd6: 80 93 e5 04 sts 0x04E5, r24
dda: 9f 91 pop r25
ddc: 8f 91 pop r24
dde: 0f 90 pop r0
de0: 0f be out 0x3f, r0 ; 63
de2: 0f 90 pop r0
de4: 1f 90 pop r1
de6: 18 95 reti
 
00000de8 <timer_init>:
}
 
void timer_init (void)
{
TCCR0 = (1<<CS02)|(1<<CS00)|(1<<WGM01); // Prescaler 1024
de8: 8d e0 ldi r24, 0x0D ; 13
dea: 83 bf out 0x33, r24 ; 51
OCR0 = 72; // Interrupt 100Hz für 7,372800 MHz-Quarz
dec: 88 e4 ldi r24, 0x48 ; 72
dee: 8c bf out 0x3c, r24 ; 60
TIMSK |= (1<<OCIE0); // Interrupt freigeben für OCR
df0: 89 b7 in r24, 0x39 ; 57
df2: 82 60 ori r24, 0x02 ; 2
df4: 89 bf out 0x39, r24 ; 57
df6: 08 95 ret
 
00000df8 <send_byte>:
 
 
void send_byte (uint8_t data)
{
clr_cs();
df8: c4 98 cbi 0x18, 4 ; 24
SPDR = data;
dfa: 8f b9 out 0x0f, r24 ; 15
while(!(SPSR & (1<<SPIF)));
dfc: 77 9b sbis 0x0e, 7 ; 14
dfe: fe cf rjmp .-4 ; 0xdfc <send_byte+0x4>
SPSR = SPSR;
e00: 8e b1 in r24, 0x0e ; 14
e02: 8e b9 out 0x0e, r24 ; 14
set_cs();
e04: c4 9a sbi 0x18, 4 ; 24
e06: 08 95 ret
 
00000e08 <cls>:
}
 
void cls (void)
{
e08: 0f 93 push r16
e0a: 1f 93 push r17
e0c: cf 93 push r28
e0e: df 93 push r29
e10: 82 e6 ldi r24, 0x62 ; 98
e12: 90 e0 ldi r25, 0x00 ; 0
e14: fc 01 movw r30, r24
uint16_t i,j;
for (i=0;i<1024;i++)
display_buffer[i] = 0x00;
e16: 11 92 st Z+, r1
e18: 01 96 adiw r24, 0x01 ; 1
e1a: 24 e0 ldi r18, 0x04 ; 4
e1c: 81 36 cpi r24, 0x61 ; 97
e1e: 92 07 cpc r25, r18
e20: d1 f3 breq .-12 ; 0xe16 <cls+0xe>
e22: c8 f3 brcs .-14 ; 0xe16 <cls+0xe>
for (i=0;i<8;i++)
e24: 00 e0 ldi r16, 0x00 ; 0
e26: 10 e0 ldi r17, 0x00 ; 0
{
clr_A0();
e28: c3 98 cbi 0x18, 3 ; 24
send_byte(0xB0+i);
e2a: 80 2f mov r24, r16
e2c: 80 55 subi r24, 0x50 ; 80
e2e: 0e 94 fc 06 call 0xdf8 <send_byte>
send_byte(0x10);
e32: 80 e1 ldi r24, 0x10 ; 16
e34: 0e 94 fc 06 call 0xdf8 <send_byte>
send_byte(0x04);
e38: 84 e0 ldi r24, 0x04 ; 4
e3a: 0e 94 fc 06 call 0xdf8 <send_byte>
set_A0();
e3e: c3 9a sbi 0x18, 3 ; 24
e40: cf e7 ldi r28, 0x7F ; 127
e42: d0 e0 ldi r29, 0x00 ; 0
for (j=0;j<128;j++)
send_byte(0x00);
e44: 80 e0 ldi r24, 0x00 ; 0
e46: 0e 94 fc 06 call 0xdf8 <send_byte>
e4a: 21 97 sbiw r28, 0x01 ; 1
e4c: d7 ff sbrs r29, 7
e4e: fa cf rjmp .-12 ; 0xe44 <cls+0x3c>
e50: 0f 5f subi r16, 0xFF ; 255
e52: 1f 4f sbci r17, 0xFF ; 255
e54: 08 30 cpi r16, 0x08 ; 8
e56: 11 05 cpc r17, r1
e58: 38 f3 brcs .-50 ; 0xe28 <cls+0x20>
}
lcd_xpos = 0;
e5a: 10 92 6a 05 sts 0x056A, r1
lcd_ypos = 0;
e5e: 10 92 6b 05 sts 0x056B, r1
e62: df 91 pop r29
e64: cf 91 pop r28
e66: 1f 91 pop r17
e68: 0f 91 pop r16
e6a: 08 95 ret
 
00000e6c <lcd_cls>:
}
 
void lcd_cls (void)
{
cls();
e6c: 0e 94 04 07 call 0xe08 <cls>
e70: 08 95 ret
 
00000e72 <wait_1ms>:
__ticks = 1;
else if (__tmp > 65535)
__ticks = 0; /* i.e. 65536 */
else
__ticks = (uint16_t)__tmp;
e72: 83 e3 ldi r24, 0x33 ; 51
e74: 97 e0 ldi r25, 0x07 ; 7
e76: 01 97 sbiw r24, 0x01 ; 1
e78: f1 f7 brne .-4 ; 0xe76 <wait_1ms+0x4>
e7a: 08 95 ret
 
00000e7c <wait_ms>:
}
 
void wait_1ms(void)
{
_delay_ms (1.0);
}
 
void wait_ms (uint16_t time)
{
e7c: 0f 93 push r16
e7e: 1f 93 push r17
e80: cf 93 push r28
e82: df 93 push r29
e84: 8c 01 movw r16, r24
uint16_t i;
for (i=0; i<time; i++)
e86: c0 e0 ldi r28, 0x00 ; 0
e88: d0 e0 ldi r29, 0x00 ; 0
e8a: c8 17 cp r28, r24
e8c: d9 07 cpc r29, r25
e8e: 30 f4 brcc .+12 ; 0xe9c <wait_ms+0x20>
wait_1ms();
e90: 0e 94 39 07 call 0xe72 <wait_1ms>
e94: 21 96 adiw r28, 0x01 ; 1
e96: c0 17 cp r28, r16
e98: d1 07 cpc r29, r17
e9a: d0 f3 brcs .-12 ; 0xe90 <wait_ms+0x14>
e9c: df 91 pop r29
e9e: cf 91 pop r28
ea0: 1f 91 pop r17
ea2: 0f 91 pop r16
ea4: 08 95 ret
 
00000ea6 <lcd_init>:
}
 
void lcd_init (void)
{
lcd_xpos = 0;
ea6: 10 92 6a 05 sts 0x056A, r1
lcd_ypos = 0;
eaa: 10 92 6b 05 sts 0x056B, r1
DDRB = 0xFF;
eae: 8f ef ldi r24, 0xFF ; 255
eb0: 87 bb out 0x17, r24 ; 23
SPCR = (1<<SPE)|(1<<MSTR)|(1<<CPHA)|(1<<CPOL)|(1<<SPR1);
eb2: 8e e5 ldi r24, 0x5E ; 94
eb4: 8d b9 out 0x0d, r24 ; 13
set_cs();
eb6: c4 9a sbi 0x18, 4 ; 24
clr_reset();
eb8: c2 98 cbi 0x18, 2 ; 24
wait_ms(10);
eba: 8a e0 ldi r24, 0x0A ; 10
ebc: 90 e0 ldi r25, 0x00 ; 0
ebe: 0e 94 3e 07 call 0xe7c <wait_ms>
set_reset();
ec2: c2 9a sbi 0x18, 2 ; 24
clr_cs();
ec4: c4 98 cbi 0x18, 4 ; 24
clr_A0();
ec6: c3 98 cbi 0x18, 3 ; 24
send_byte(0x40);
ec8: 80 e4 ldi r24, 0x40 ; 64
eca: 0e 94 fc 06 call 0xdf8 <send_byte>
send_byte(0xA0); // A1
ece: 80 ea ldi r24, 0xA0 ; 160
ed0: 0e 94 fc 06 call 0xdf8 <send_byte>
send_byte(0xC8); // C0
ed4: 88 ec ldi r24, 0xC8 ; 200
ed6: 0e 94 fc 06 call 0xdf8 <send_byte>
send_byte(0xA6);
eda: 86 ea ldi r24, 0xA6 ; 166
edc: 0e 94 fc 06 call 0xdf8 <send_byte>
send_byte(0xA2);
ee0: 82 ea ldi r24, 0xA2 ; 162
ee2: 0e 94 fc 06 call 0xdf8 <send_byte>
send_byte(0x2F);
ee6: 8f e2 ldi r24, 0x2F ; 47
ee8: 0e 94 fc 06 call 0xdf8 <send_byte>
send_byte(0xF8);
eec: 88 ef ldi r24, 0xF8 ; 248
eee: 0e 94 fc 06 call 0xdf8 <send_byte>
send_byte(0x00);
ef2: 80 e0 ldi r24, 0x00 ; 0
ef4: 0e 94 fc 06 call 0xdf8 <send_byte>
send_byte(0x27);
ef8: 87 e2 ldi r24, 0x27 ; 39
efa: 0e 94 fc 06 call 0xdf8 <send_byte>
send_byte(0x81);
efe: 81 e8 ldi r24, 0x81 ; 129
f00: 0e 94 fc 06 call 0xdf8 <send_byte>
send_byte(0x16);
f04: 86 e1 ldi r24, 0x16 ; 22
f06: 0e 94 fc 06 call 0xdf8 <send_byte>
send_byte(0xAC);
f0a: 8c ea ldi r24, 0xAC ; 172
f0c: 0e 94 fc 06 call 0xdf8 <send_byte>
send_byte(0x00);
f10: 80 e0 ldi r24, 0x00 ; 0
f12: 0e 94 fc 06 call 0xdf8 <send_byte>
send_byte(0xAF);
f16: 8f ea ldi r24, 0xAF ; 175
f18: 0e 94 fc 06 call 0xdf8 <send_byte>
cls();
f1c: 0e 94 04 07 call 0xe08 <cls>
f20: 08 95 ret
 
00000f22 <set_adress>:
 
}
 
void set_adress (uint16_t adress, uint8_t data)
{
f22: ff 92 push r15
f24: 0f 93 push r16
f26: 1f 93 push r17
f28: 8c 01 movw r16, r24
f2a: f6 2e mov r15, r22
uint8_t page;
uint8_t column;
page = adress >> 7;
f2c: 88 0f add r24, r24
f2e: 89 2f mov r24, r25
f30: 88 1f adc r24, r24
f32: 99 0b sbc r25, r25
f34: 91 95 neg r25
clr_A0();
f36: c3 98 cbi 0x18, 3 ; 24
send_byte(0xB0 + page);
f38: 80 55 subi r24, 0x50 ; 80
f3a: 0e 94 fc 06 call 0xdf8 <send_byte>
column = (adress & 0x7F) + 4;
f3e: 10 2f mov r17, r16
f40: 1f 77 andi r17, 0x7F ; 127
f42: 1c 5f subi r17, 0xFC ; 252
send_byte(0x10 + (column >> 4));
f44: 81 2f mov r24, r17
f46: 82 95 swap r24
f48: 8f 70 andi r24, 0x0F ; 15
f4a: 80 5f subi r24, 0xF0 ; 240
f4c: 0e 94 fc 06 call 0xdf8 <send_byte>
send_byte(column & 0x0F);
f50: 81 2f mov r24, r17
f52: 8f 70 andi r24, 0x0F ; 15
f54: 0e 94 fc 06 call 0xdf8 <send_byte>
set_A0();
f58: c3 9a sbi 0x18, 3 ; 24
send_byte(data);
f5a: 8f 2d mov r24, r15
f5c: 0e 94 fc 06 call 0xdf8 <send_byte>
f60: 1f 91 pop r17
f62: 0f 91 pop r16
f64: ff 90 pop r15
f66: 08 95 ret
 
00000f68 <scroll>:
}
 
void scroll (void)
{
f68: ef 92 push r14
f6a: ff 92 push r15
f6c: 0f 93 push r16
f6e: 1f 93 push r17
f70: cf 93 push r28
f72: df 93 push r29
uint16_t adress;
for (adress=0;adress<896;adress++)
f74: c0 e0 ldi r28, 0x00 ; 0
f76: d0 e0 ldi r29, 0x00 ; 0
f78: 32 ee ldi r19, 0xE2 ; 226
f7a: e3 2e mov r14, r19
f7c: 30 e0 ldi r19, 0x00 ; 0
f7e: f3 2e mov r15, r19
f80: 87 01 movw r16, r14
f82: 00 58 subi r16, 0x80 ; 128
f84: 10 40 sbci r17, 0x00 ; 0
{
display_buffer[adress] = display_buffer[adress+128];
f86: f7 01 movw r30, r14
f88: 81 91 ld r24, Z+
f8a: 7f 01 movw r14, r30
f8c: f8 01 movw r30, r16
f8e: 80 83 st Z, r24
set_adress(adress,display_buffer[adress]);
f90: 61 91 ld r22, Z+
f92: 8f 01 movw r16, r30
f94: ce 01 movw r24, r28
f96: 0e 94 91 07 call 0xf22 <set_adress>
f9a: 21 96 adiw r28, 0x01 ; 1
f9c: f3 e0 ldi r31, 0x03 ; 3
f9e: c0 38 cpi r28, 0x80 ; 128
fa0: df 07 cpc r29, r31
fa2: 88 f3 brcs .-30 ; 0xf86 <scroll+0x1e>
fa4: c0 e8 ldi r28, 0x80 ; 128
fa6: d3 e0 ldi r29, 0x03 ; 3
fa8: 02 ee ldi r16, 0xE2 ; 226
faa: 13 e0 ldi r17, 0x03 ; 3
}
for (adress=896;adress<1024;adress++)
{
display_buffer[adress] = 0;
fac: f8 01 movw r30, r16
fae: 11 92 st Z+, r1
fb0: 8f 01 movw r16, r30
set_adress(adress,0);
fb2: 60 e0 ldi r22, 0x00 ; 0
fb4: ce 01 movw r24, r28
fb6: 0e 94 91 07 call 0xf22 <set_adress>
fba: 21 96 adiw r28, 0x01 ; 1
fbc: f4 e0 ldi r31, 0x04 ; 4
fbe: c0 30 cpi r28, 0x00 ; 0
fc0: df 07 cpc r29, r31
fc2: a0 f3 brcs .-24 ; 0xfac <scroll+0x44>
fc4: df 91 pop r29
fc6: cf 91 pop r28
fc8: 1f 91 pop r17
fca: 0f 91 pop r16
fcc: ff 90 pop r15
fce: ef 90 pop r14
fd0: 08 95 ret
 
00000fd2 <put_char>:
}
}
 
//
// x,y = character-Pos. !
//
// mode: 0=Overwrite, 1 = OR, 2 = XOR, 3 = AND, 4 = Delete
void put_char (uint8_t x, uint8_t y, uint8_t c, uint8_t mode)
{
fd2: bf 92 push r11
fd4: cf 92 push r12
fd6: df 92 push r13
fd8: ef 92 push r14
fda: ff 92 push r15
fdc: 0f 93 push r16
fde: 1f 93 push r17
fe0: cf 93 push r28
fe2: df 93 push r29
fe4: 38 2f mov r19, r24
fe6: f4 2e mov r15, r20
fe8: b2 2e mov r11, r18
uint8_t ch;
uint8_t i;
uint16_t adress;
 
switch(c)
fea: 84 2f mov r24, r20
fec: 99 27 eor r25, r25
fee: 8f 3d cpi r24, 0xDF ; 223
ff0: 91 05 cpc r25, r1
ff2: 89 f1 breq .+98 ; 0x1056 <put_char+0x84>
ff4: 80 3e cpi r24, 0xE0 ; 224
ff6: 91 05 cpc r25, r1
ff8: 74 f4 brge .+28 ; 0x1016 <put_char+0x44>
ffa: 86 3d cpi r24, 0xD6 ; 214
ffc: 91 05 cpc r25, r1
ffe: 29 f1 breq .+74 ; 0x104a <put_char+0x78>
1000: 87 3d cpi r24, 0xD7 ; 215
1002: 91 05 cpc r25, r1
1004: 24 f4 brge .+8 ; 0x100e <put_char+0x3c>
1006: 84 3c cpi r24, 0xC4 ; 196
1008: 91 05 cpc r25, r1
100a: e1 f0 breq .+56 ; 0x1044 <put_char+0x72>
100c: 26 c0 rjmp .+76 ; 0x105a <put_char+0x88>
100e: 8c 3d cpi r24, 0xDC ; 220
1010: 91 05 cpc r25, r1
1012: f1 f0 breq .+60 ; 0x1050 <put_char+0x7e>
1014: 22 c0 rjmp .+68 ; 0x105a <put_char+0x88>
1016: 86 3f cpi r24, 0xF6 ; 246
1018: 91 05 cpc r25, r1
101a: 71 f0 breq .+28 ; 0x1038 <put_char+0x66>
101c: 87 3f cpi r24, 0xF7 ; 247
101e: 91 05 cpc r25, r1
1020: 24 f4 brge .+8 ; 0x102a <put_char+0x58>
1022: 84 3e cpi r24, 0xE4 ; 228
1024: 91 05 cpc r25, r1
1026: 29 f0 breq .+10 ; 0x1032 <put_char+0x60>
1028: 18 c0 rjmp .+48 ; 0x105a <put_char+0x88>
102a: 8c 3f cpi r24, 0xFC ; 252
102c: 91 05 cpc r25, r1
102e: 39 f0 breq .+14 ; 0x103e <put_char+0x6c>
1030: 14 c0 rjmp .+40 ; 0x105a <put_char+0x88>
{
case 'ä':
c = 0x84;
1032: 14 e8 ldi r17, 0x84 ; 132
1034: f1 2e mov r15, r17
break;
1036: 11 c0 rjmp .+34 ; 0x105a <put_char+0x88>
case 'ö':
c = 0x94;
1038: c4 e9 ldi r28, 0x94 ; 148
103a: fc 2e mov r15, r28
break;
103c: 0e c0 rjmp .+28 ; 0x105a <put_char+0x88>
case 'ü':
c = 0x81;
103e: b1 e8 ldi r27, 0x81 ; 129
1040: fb 2e mov r15, r27
break;
1042: 0b c0 rjmp .+22 ; 0x105a <put_char+0x88>
case 'Ä':
c = 0x8E;
1044: ae e8 ldi r26, 0x8E ; 142
1046: fa 2e mov r15, r26
break;
1048: 08 c0 rjmp .+16 ; 0x105a <put_char+0x88>
case 'Ö':
c = 0x99;
104a: f9 e9 ldi r31, 0x99 ; 153
104c: ff 2e mov r15, r31
break;
104e: 05 c0 rjmp .+10 ; 0x105a <put_char+0x88>
case 'Ü':
c = 0x9A;
1050: ea e9 ldi r30, 0x9A ; 154
1052: fe 2e mov r15, r30
break;
1054: 02 c0 rjmp .+4 ; 0x105a <put_char+0x88>
case 'ß':
c = 0xE1;
1056: 71 ee ldi r23, 0xE1 ; 225
1058: f7 2e mov r15, r23
break;
}
adress = y*128 + x*6;
105a: c6 2f mov r28, r22
105c: dd 27 eor r29, r29
105e: d6 95 lsr r29
1060: dc 2f mov r29, r28
1062: cc 27 eor r28, r28
1064: d7 95 ror r29
1066: c7 95 ror r28
1068: 86 e0 ldi r24, 0x06 ; 6
106a: 38 9f mul r19, r24
106c: c0 01 movw r24, r0
106e: 11 24 eor r1, r1
1070: c8 0f add r28, r24
1072: d9 1f adc r29, r25
adress &= 0x3FF;
1074: d3 70 andi r29, 0x03 ; 3
1076: 6e 01 movw r12, r28
1078: 00 e0 ldi r16, 0x00 ; 0
107a: 10 e0 ldi r17, 0x00 ; 0
107c: 45 e0 ldi r20, 0x05 ; 5
107e: e4 2e mov r14, r20
for (i=0;i<6;i++)
{
ch = pgm_read_byte (&f8x6[0][0] + i + c * 6);
1080: 86 e0 ldi r24, 0x06 ; 6
1082: f8 9e mul r15, r24
1084: f0 01 movw r30, r0
1086: 11 24 eor r1, r1
1088: e0 0f add r30, r16
108a: f1 1f adc r31, r17
108c: ec 5a subi r30, 0xAC ; 172
108e: ff 4f sbci r31, 0xFF ; 255
1090: 24 91 lpm r18, Z
switch (mode)
1092: 8b 2d mov r24, r11
1094: 99 27 eor r25, r25
1096: 82 30 cpi r24, 0x02 ; 2
1098: 91 05 cpc r25, r1
109a: e9 f0 breq .+58 ; 0x10d6 <put_char+0x104>
109c: 83 30 cpi r24, 0x03 ; 3
109e: 91 05 cpc r25, r1
10a0: 2c f4 brge .+10 ; 0x10ac <put_char+0xda>
10a2: 00 97 sbiw r24, 0x00 ; 0
10a4: 49 f0 breq .+18 ; 0x10b8 <put_char+0xe6>
10a6: 01 97 sbiw r24, 0x01 ; 1
10a8: 71 f0 breq .+28 ; 0x10c6 <put_char+0xf4>
10aa: 2c c0 rjmp .+88 ; 0x1104 <put_char+0x132>
10ac: 83 30 cpi r24, 0x03 ; 3
10ae: 91 05 cpc r25, r1
10b0: d1 f0 breq .+52 ; 0x10e6 <put_char+0x114>
10b2: 04 97 sbiw r24, 0x04 ; 4
10b4: f1 f0 breq .+60 ; 0x10f2 <put_char+0x120>
10b6: 26 c0 rjmp .+76 ; 0x1104 <put_char+0x132>
{
case 0:
display_buffer[adress+i] = ch;
10b8: fe 01 movw r30, r28
10ba: ee 59 subi r30, 0x9E ; 158
10bc: ff 4f sbci r31, 0xFF ; 255
10be: e0 0f add r30, r16
10c0: f1 1f adc r31, r17
10c2: 20 83 st Z, r18
break;
10c4: 1f c0 rjmp .+62 ; 0x1104 <put_char+0x132>
case 1:
display_buffer[adress+i] |= ch;
10c6: fe 01 movw r30, r28
10c8: ee 59 subi r30, 0x9E ; 158
10ca: ff 4f sbci r31, 0xFF ; 255
10cc: e0 0f add r30, r16
10ce: f1 1f adc r31, r17
10d0: 80 81 ld r24, Z
10d2: 82 2b or r24, r18
10d4: 16 c0 rjmp .+44 ; 0x1102 <put_char+0x130>
break;
case 2:
display_buffer[adress+i] ^= ch;
10d6: fe 01 movw r30, r28
10d8: ee 59 subi r30, 0x9E ; 158
10da: ff 4f sbci r31, 0xFF ; 255
10dc: e0 0f add r30, r16
10de: f1 1f adc r31, r17
10e0: 80 81 ld r24, Z
10e2: 82 27 eor r24, r18
10e4: 0e c0 rjmp .+28 ; 0x1102 <put_char+0x130>
break;
case 3:
display_buffer[adress+i] &= ch;
10e6: fe 01 movw r30, r28
10e8: ee 59 subi r30, 0x9E ; 158
10ea: ff 4f sbci r31, 0xFF ; 255
10ec: e0 0f add r30, r16
10ee: f1 1f adc r31, r17
10f0: 06 c0 rjmp .+12 ; 0x10fe <put_char+0x12c>
break;
case 4:
display_buffer[adress+i] &= ~ch;
10f2: fe 01 movw r30, r28
10f4: ee 59 subi r30, 0x9E ; 158
10f6: ff 4f sbci r31, 0xFF ; 255
10f8: e0 0f add r30, r16
10fa: f1 1f adc r31, r17
10fc: 20 95 com r18
10fe: 80 81 ld r24, Z
1100: 82 23 and r24, r18
1102: 80 83 st Z, r24
break;
}
set_adress(adress+i,display_buffer[adress+i]);
1104: fe 01 movw r30, r28
1106: ee 59 subi r30, 0x9E ; 158
1108: ff 4f sbci r31, 0xFF ; 255
110a: e0 0f add r30, r16
110c: f1 1f adc r31, r17
110e: 60 81 ld r22, Z
1110: c6 01 movw r24, r12
1112: 0e 94 91 07 call 0xf22 <set_adress>
1116: ea 94 dec r14
1118: 0f 5f subi r16, 0xFF ; 255
111a: 1f 4f sbci r17, 0xFF ; 255
111c: 08 94 sec
111e: c1 1c adc r12, r1
1120: d1 1c adc r13, r1
1122: e7 fe sbrs r14, 7
1124: ad cf rjmp .-166 ; 0x1080 <put_char+0xae>
1126: df 91 pop r29
1128: cf 91 pop r28
112a: 1f 91 pop r17
112c: 0f 91 pop r16
112e: ff 90 pop r15
1130: ef 90 pop r14
1132: df 90 pop r13
1134: cf 90 pop r12
1136: bf 90 pop r11
1138: 08 95 ret
 
0000113a <new_line>:
}
}
 
void new_line (void)
{
lcd_ypos++;
113a: 80 91 6b 05 lds r24, 0x056B
113e: 8f 5f subi r24, 0xFF ; 255
1140: 80 93 6b 05 sts 0x056B, r24
if (lcd_ypos > 7)
1144: 88 30 cpi r24, 0x08 ; 8
1146: 28 f0 brcs .+10 ; 0x1152 <new_line+0x18>
{
scroll();
1148: 0e 94 b4 07 call 0xf68 <scroll>
lcd_ypos = 7;
114c: 87 e0 ldi r24, 0x07 ; 7
114e: 80 93 6b 05 sts 0x056B, r24
1152: 08 95 ret
 
00001154 <lcd_printp>:
}
}
 
 
void lcd_printp (const char *text, uint8_t mode)
{
1154: 1f 93 push r17
1156: cf 93 push r28
1158: df 93 push r29
115a: ec 01 movw r28, r24
115c: 16 2f mov r17, r22
while (pgm_read_byte(text))
{
if (pgm_read_byte(text) > 0x1F)
{
put_char(lcd_xpos,lcd_ypos,pgm_read_byte(text++),mode);
lcd_xpos++;
if (lcd_xpos > 20)
{
lcd_xpos = 0;
new_line();
}
}
else
{
switch (pgm_read_byte(text))
{
case 0x0D:
lcd_xpos = 0;
break;
case 0x0A:
new_line();
break;
}
text++;
115e: fc 01 movw r30, r24
1160: 84 91 lpm r24, Z
1162: 88 23 and r24, r24
1164: 51 f1 breq .+84 ; 0x11ba <lcd_printp+0x66>
1166: fe 01 movw r30, r28
1168: 84 91 lpm r24, Z
116a: 80 32 cpi r24, 0x20 ; 32
116c: b0 f0 brcs .+44 ; 0x119a <lcd_printp+0x46>
116e: 21 96 adiw r28, 0x01 ; 1
1170: 84 91 lpm r24, Z
1172: 21 2f mov r18, r17
1174: 48 2f mov r20, r24
1176: 60 91 6b 05 lds r22, 0x056B
117a: 80 91 6a 05 lds r24, 0x056A
117e: 0e 94 e9 07 call 0xfd2 <put_char>
1182: 80 91 6a 05 lds r24, 0x056A
1186: 8f 5f subi r24, 0xFF ; 255
1188: 80 93 6a 05 sts 0x056A, r24
118c: 85 31 cpi r24, 0x15 ; 21
118e: 88 f0 brcs .+34 ; 0x11b2 <lcd_printp+0x5e>
1190: 10 92 6a 05 sts 0x056A, r1
1194: 0e 94 9d 08 call 0x113a <new_line>
1198: 0c c0 rjmp .+24 ; 0x11b2 <lcd_printp+0x5e>
119a: 99 27 eor r25, r25
119c: 8a 30 cpi r24, 0x0A ; 10
119e: 91 05 cpc r25, r1
11a0: 29 f0 breq .+10 ; 0x11ac <lcd_printp+0x58>
11a2: 0d 97 sbiw r24, 0x0d ; 13
11a4: 29 f4 brne .+10 ; 0x11b0 <lcd_printp+0x5c>
11a6: 10 92 6a 05 sts 0x056A, r1
11aa: 02 c0 rjmp .+4 ; 0x11b0 <lcd_printp+0x5c>
11ac: 0e 94 9d 08 call 0x113a <new_line>
11b0: 21 96 adiw r28, 0x01 ; 1
11b2: fe 01 movw r30, r28
11b4: 84 91 lpm r24, Z
11b6: 88 23 and r24, r24
11b8: b1 f6 brne .-84 ; 0x1166 <lcd_printp+0x12>
11ba: df 91 pop r29
11bc: cf 91 pop r28
11be: 1f 91 pop r17
11c0: 08 95 ret
 
000011c2 <lcd_print_atp>:
}
}
}
 
void lcd_print_atp (uint8_t x, uint8_t y, const char *text, uint8_t mode)
{
lcd_xpos = x;
11c2: 80 93 6a 05 sts 0x056A, r24
lcd_ypos = y;
11c6: 60 93 6b 05 sts 0x056B, r22
lcd_printp (text, mode);
11ca: 62 2f mov r22, r18
11cc: ca 01 movw r24, r20
11ce: 0e 94 aa 08 call 0x1154 <lcd_printp>
11d2: 08 95 ret
 
000011d4 <lcd_print>:
}
 
 
void lcd_print (uint8_t *text, uint8_t mode)
{
11d4: 1f 93 push r17
11d6: cf 93 push r28
11d8: df 93 push r29
11da: ec 01 movw r28, r24
11dc: 16 2f mov r17, r22
while (*text)
{
if (*text > 0x1F)
{
put_char(lcd_xpos,lcd_ypos,*text++,mode);
lcd_xpos++;
if (lcd_xpos > 20)
{
lcd_xpos = 0;
new_line();
}
}
else
{
switch (*text)
{
case 0x0D:
lcd_xpos = 0;
break;
case 0x0A:
new_line();
break;
}
text++;
11de: 88 81 ld r24, Y
11e0: 88 23 and r24, r24
11e2: 39 f1 breq .+78 ; 0x1232 <lcd_print+0x5e>
11e4: 48 81 ld r20, Y
11e6: 40 32 cpi r20, 0x20 ; 32
11e8: a0 f0 brcs .+40 ; 0x1212 <lcd_print+0x3e>
11ea: 21 96 adiw r28, 0x01 ; 1
11ec: 21 2f mov r18, r17
11ee: 60 91 6b 05 lds r22, 0x056B
11f2: 80 91 6a 05 lds r24, 0x056A
11f6: 0e 94 e9 07 call 0xfd2 <put_char>
11fa: 80 91 6a 05 lds r24, 0x056A
11fe: 8f 5f subi r24, 0xFF ; 255
1200: 80 93 6a 05 sts 0x056A, r24
1204: 85 31 cpi r24, 0x15 ; 21
1206: 90 f0 brcs .+36 ; 0x122c <lcd_print+0x58>
1208: 10 92 6a 05 sts 0x056A, r1
120c: 0e 94 9d 08 call 0x113a <new_line>
1210: 0d c0 rjmp .+26 ; 0x122c <lcd_print+0x58>
1212: 55 27 eor r21, r21
1214: 4a 30 cpi r20, 0x0A ; 10
1216: 51 05 cpc r21, r1
1218: 31 f0 breq .+12 ; 0x1226 <lcd_print+0x52>
121a: 4d 30 cpi r20, 0x0D ; 13
121c: 51 05 cpc r21, r1
121e: 29 f4 brne .+10 ; 0x122a <lcd_print+0x56>
1220: 10 92 6a 05 sts 0x056A, r1
1224: 02 c0 rjmp .+4 ; 0x122a <lcd_print+0x56>
1226: 0e 94 9d 08 call 0x113a <new_line>
122a: 21 96 adiw r28, 0x01 ; 1
122c: 88 81 ld r24, Y
122e: 88 23 and r24, r24
1230: c9 f6 brne .-78 ; 0x11e4 <lcd_print+0x10>
1232: df 91 pop r29
1234: cf 91 pop r28
1236: 1f 91 pop r17
1238: 08 95 ret
 
0000123a <lcd_print_at>:
}
}
}
 
void lcd_print_at (uint8_t x, uint8_t y, uint8_t *text, uint8_t mode)
{
lcd_xpos = x;
123a: 80 93 6a 05 sts 0x056A, r24
lcd_ypos = y;
123e: 60 93 6b 05 sts 0x056B, r22
lcd_print(text, mode);
1242: 62 2f mov r22, r18
1244: ca 01 movw r24, r20
1246: 0e 94 ea 08 call 0x11d4 <lcd_print>
124a: 08 95 ret
 
0000124c <lcd_plot>:
}
 
 
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Plot (set one Pixel)
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// mode:
// 0=Clear, 1=Set, 2=XOR
void lcd_plot (uint8_t xpos, uint8_t ypos, uint8_t mode)
{
124c: 98 2f mov r25, r24
uint16_t adress;
uint8_t mask;
if ((xpos < 128) && (ypos < 64))
124e: 87 fd sbrc r24, 7
1250: 45 c0 rjmp .+138 ; 0x12dc <lcd_plot+0x90>
1252: 60 34 cpi r22, 0x40 ; 64
1254: 08 f0 brcs .+2 ; 0x1258 <lcd_plot+0xc>
1256: 42 c0 rjmp .+132 ; 0x12dc <lcd_plot+0x90>
{
adress = (ypos/8) * 128 + xpos; // adress = 0/8 * 128 + 0 = 0
1258: 86 2f mov r24, r22
125a: 86 95 lsr r24
125c: 86 95 lsr r24
125e: 86 95 lsr r24
1260: a8 2f mov r26, r24
1262: bb 27 eor r27, r27
1264: b6 95 lsr r27
1266: ba 2f mov r27, r26
1268: aa 27 eor r26, r26
126a: b7 95 ror r27
126c: a7 95 ror r26
126e: a9 0f add r26, r25
1270: b1 1d adc r27, r1
mask = 1<<(ypos & 0x07); // mask = 1<<0 = 1
1272: 26 2f mov r18, r22
1274: 33 27 eor r19, r19
1276: 27 70 andi r18, 0x07 ; 7
1278: 30 70 andi r19, 0x00 ; 0
127a: 81 e0 ldi r24, 0x01 ; 1
127c: 90 e0 ldi r25, 0x00 ; 0
127e: 02 c0 rjmp .+4 ; 0x1284 <lcd_plot+0x38>
1280: 88 0f add r24, r24
1282: 99 1f adc r25, r25
1284: 2a 95 dec r18
1286: e2 f7 brpl .-8 ; 0x1280 <lcd_plot+0x34>
1288: 98 2f mov r25, r24
adress &= 0x3FF;
128a: b3 70 andi r27, 0x03 ; 3
switch (mode)
128c: 55 27 eor r21, r21
128e: 41 30 cpi r20, 0x01 ; 1
1290: 51 05 cpc r21, r1
1292: 89 f0 breq .+34 ; 0x12b6 <lcd_plot+0x6a>
1294: 42 30 cpi r20, 0x02 ; 2
1296: 51 05 cpc r21, r1
1298: 1c f4 brge .+6 ; 0x12a0 <lcd_plot+0x54>
129a: 45 2b or r20, r21
129c: 29 f0 breq .+10 ; 0x12a8 <lcd_plot+0x5c>
129e: 17 c0 rjmp .+46 ; 0x12ce <lcd_plot+0x82>
12a0: 42 30 cpi r20, 0x02 ; 2
12a2: 51 05 cpc r21, r1
12a4: 71 f0 breq .+28 ; 0x12c2 <lcd_plot+0x76>
12a6: 13 c0 rjmp .+38 ; 0x12ce <lcd_plot+0x82>
{
case 0:
display_buffer[adress] &=~mask;
12a8: fd 01 movw r30, r26
12aa: ee 59 subi r30, 0x9E ; 158
12ac: ff 4f sbci r31, 0xFF ; 255
12ae: 90 95 com r25
12b0: 80 81 ld r24, Z
12b2: 89 23 and r24, r25
12b4: 0b c0 rjmp .+22 ; 0x12cc <lcd_plot+0x80>
break;
case 1:
display_buffer[adress] |= mask;
12b6: fd 01 movw r30, r26
12b8: ee 59 subi r30, 0x9E ; 158
12ba: ff 4f sbci r31, 0xFF ; 255
12bc: 80 81 ld r24, Z
12be: 89 2b or r24, r25
12c0: 05 c0 rjmp .+10 ; 0x12cc <lcd_plot+0x80>
break;
case 2:
display_buffer[adress] ^= mask;
12c2: fd 01 movw r30, r26
12c4: ee 59 subi r30, 0x9E ; 158
12c6: ff 4f sbci r31, 0xFF ; 255
12c8: 80 81 ld r24, Z
12ca: 89 27 eor r24, r25
12cc: 80 83 st Z, r24
break;
}
set_adress(adress,display_buffer[adress]);
12ce: fd 01 movw r30, r26
12d0: ee 59 subi r30, 0x9E ; 158
12d2: ff 4f sbci r31, 0xFF ; 255
12d4: 60 81 ld r22, Z
12d6: cd 01 movw r24, r26
12d8: 0e 94 91 07 call 0xf22 <set_adress>
12dc: 08 95 ret
 
000012de <lcd_line>:
}
}
 
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Line (draws a line from x1,y1 to x2,y2
// + Based on Bresenham line-Algorithm
// + found in the internet, modified by thkais 2007
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
void lcd_line(unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, uint8_t mode)
 
{
12de: 2f 92 push r2
12e0: 3f 92 push r3
12e2: 4f 92 push r4
12e4: 5f 92 push r5
12e6: 6f 92 push r6
12e8: 7f 92 push r7
12ea: 8f 92 push r8
12ec: 9f 92 push r9
12ee: af 92 push r10
12f0: bf 92 push r11
12f2: cf 92 push r12
12f4: df 92 push r13
12f6: ef 92 push r14
12f8: ff 92 push r15
12fa: 0f 93 push r16
12fc: 1f 93 push r17
12fe: cf 93 push r28
1300: df 93 push r29
1302: cd b7 in r28, 0x3d ; 61
1304: de b7 in r29, 0x3e ; 62
1306: 23 97 sbiw r28, 0x03 ; 3
1308: 0f b6 in r0, 0x3f ; 63
130a: f8 94 cli
130c: de bf out 0x3e, r29 ; 62
130e: 0f be out 0x3f, r0 ; 63
1310: cd bf out 0x3d, r28 ; 61
1312: 09 83 std Y+1, r16 ; 0x01
int x,y,count,xs,ys,xm,ym;
 
x=(int)x1;
1314: a8 2e mov r10, r24
1316: bb 24 eor r11, r11
y=(int)y1;
1318: c6 2e mov r12, r22
131a: dd 24 eor r13, r13
xs=(int)x2 - (int)x1;
131c: 64 2e mov r6, r20
131e: 77 24 eor r7, r7
1320: 73 01 movw r14, r6
1322: ea 18 sub r14, r10
1324: fb 08 sbc r15, r11
ys=(int)y2 - (int)y1;
1326: 82 2e mov r8, r18
1328: 99 24 eor r9, r9
132a: 84 01 movw r16, r8
132c: 0c 19 sub r16, r12
132e: 1d 09 sbc r17, r13
if(xs < 0)
1330: f7 fe sbrs r15, 7
1332: 04 c0 rjmp .+8 ; 0x133c <lcd_line+0x5e>
xm= -1;
1334: 7f ef ldi r23, 0xFF ; 255
1336: 27 2e mov r2, r23
1338: 37 2e mov r3, r23
133a: 09 c0 rjmp .+18 ; 0x134e <lcd_line+0x70>
else
if(xs > 0)
133c: 1e 14 cp r1, r14
133e: 1f 04 cpc r1, r15
1340: 24 f4 brge .+8 ; 0x134a <lcd_line+0x6c>
xm= 1;
1342: 61 e0 ldi r22, 0x01 ; 1
1344: 26 2e mov r2, r22
1346: 31 2c mov r3, r1
1348: 02 c0 rjmp .+4 ; 0x134e <lcd_line+0x70>
else
xm= 0;
134a: 22 24 eor r2, r2
134c: 33 24 eor r3, r3
if(ys < 0)
134e: 17 ff sbrs r17, 7
1350: 04 c0 rjmp .+8 ; 0x135a <lcd_line+0x7c>
ym= -1;
1352: 5f ef ldi r21, 0xFF ; 255
1354: 45 2e mov r4, r21
1356: 55 2e mov r5, r21
1358: 09 c0 rjmp .+18 ; 0x136c <lcd_line+0x8e>
else
if(ys > 0)
135a: 10 16 cp r1, r16
135c: 11 06 cpc r1, r17
135e: 24 f4 brge .+8 ; 0x1368 <lcd_line+0x8a>
ym= 1;
1360: 41 e0 ldi r20, 0x01 ; 1
1362: 44 2e mov r4, r20
1364: 51 2c mov r5, r1
1366: 02 c0 rjmp .+4 ; 0x136c <lcd_line+0x8e>
else
ym= 0;
1368: 44 24 eor r4, r4
136a: 55 24 eor r5, r5
if(xs < 0)
136c: f7 fe sbrs r15, 7
136e: 04 c0 rjmp .+8 ; 0x1378 <lcd_line+0x9a>
xs= -xs;
1370: f0 94 com r15
1372: e1 94 neg r14
1374: f1 08 sbc r15, r1
1376: f3 94 inc r15
if(ys < 0)
1378: 17 ff sbrs r17, 7
137a: 03 c0 rjmp .+6 ; 0x1382 <lcd_line+0xa4>
ys= -ys;
137c: 10 95 com r17
137e: 01 95 neg r16
1380: 1f 4f sbci r17, 0xFF ; 255
 
lcd_plot((unsigned char)x, (unsigned char)y, mode);
1382: 49 81 ldd r20, Y+1 ; 0x01
1384: 6c 2d mov r22, r12
1386: 8a 2d mov r24, r10
1388: 0e 94 26 09 call 0x124c <lcd_plot>
 
if(xs > ys) // Flat Line <45 degrees
138c: 0e 15 cp r16, r14
138e: 1f 05 cpc r17, r15
1390: 4c f5 brge .+82 ; 0x13e4 <lcd_line+0x106>
{
count= -(xs / 2);
1392: c7 01 movw r24, r14
1394: f7 fc sbrc r15, 7
1396: 01 96 adiw r24, 0x01 ; 1
1398: 95 95 asr r25
139a: 87 95 ror r24
139c: 22 27 eor r18, r18
139e: 33 27 eor r19, r19
13a0: 28 1b sub r18, r24
13a2: 39 0b sbc r19, r25
13a4: 3b 83 std Y+3, r19 ; 0x03
13a6: 2a 83 std Y+2, r18 ; 0x02
while(x != x2)
{
count= count + ys;
x= x + xm;
if(count > 0)
{
y= y + ym;
count= count - xs;
}
lcd_plot((unsigned char)x, (unsigned char)y, mode);
13a8: a6 14 cp r10, r6
13aa: b7 04 cpc r11, r7
13ac: 09 f4 brne .+2 ; 0x13b0 <lcd_line+0xd2>
13ae: 41 c0 rjmp .+130 ; 0x1432 <lcd_line+0x154>
13b0: 8a 81 ldd r24, Y+2 ; 0x02
13b2: 9b 81 ldd r25, Y+3 ; 0x03
13b4: 80 0f add r24, r16
13b6: 91 1f adc r25, r17
13b8: 9b 83 std Y+3, r25 ; 0x03
13ba: 8a 83 std Y+2, r24 ; 0x02
13bc: a2 0c add r10, r2
13be: b3 1c adc r11, r3
13c0: 18 16 cp r1, r24
13c2: 19 06 cpc r1, r25
13c4: 34 f4 brge .+12 ; 0x13d2 <lcd_line+0xf4>
13c6: c4 0c add r12, r4
13c8: d5 1c adc r13, r5
13ca: 8e 19 sub r24, r14
13cc: 9f 09 sbc r25, r15
13ce: 9b 83 std Y+3, r25 ; 0x03
13d0: 8a 83 std Y+2, r24 ; 0x02
13d2: 49 81 ldd r20, Y+1 ; 0x01
13d4: 6c 2d mov r22, r12
13d6: 8a 2d mov r24, r10
13d8: 0e 94 26 09 call 0x124c <lcd_plot>
13dc: a6 14 cp r10, r6
13de: b7 04 cpc r11, r7
13e0: 39 f7 brne .-50 ; 0x13b0 <lcd_line+0xd2>
13e2: 27 c0 rjmp .+78 ; 0x1432 <lcd_line+0x154>
}
}
else // Line >=45 degrees
{
count=- (ys / 2);
13e4: c8 01 movw r24, r16
13e6: 17 fd sbrc r17, 7
13e8: 01 96 adiw r24, 0x01 ; 1
13ea: 95 95 asr r25
13ec: 87 95 ror r24
13ee: ee 27 eor r30, r30
13f0: ff 27 eor r31, r31
13f2: e8 1b sub r30, r24
13f4: f9 0b sbc r31, r25
13f6: fb 83 std Y+3, r31 ; 0x03
13f8: ea 83 std Y+2, r30 ; 0x02
while(y != y2)
{
count= count + xs;
y= y + ym;
if(count > 0)
{
x= x + xm;
count= count - ys;
}
lcd_plot((unsigned char)x, (unsigned char)y, mode);
13fa: c8 14 cp r12, r8
13fc: d9 04 cpc r13, r9
13fe: c9 f0 breq .+50 ; 0x1432 <lcd_line+0x154>
1400: 2a 81 ldd r18, Y+2 ; 0x02
1402: 3b 81 ldd r19, Y+3 ; 0x03
1404: 2e 0d add r18, r14
1406: 3f 1d adc r19, r15
1408: 3b 83 std Y+3, r19 ; 0x03
140a: 2a 83 std Y+2, r18 ; 0x02
140c: c4 0c add r12, r4
140e: d5 1c adc r13, r5
1410: 12 16 cp r1, r18
1412: 13 06 cpc r1, r19
1414: 34 f4 brge .+12 ; 0x1422 <lcd_line+0x144>
1416: a2 0c add r10, r2
1418: b3 1c adc r11, r3
141a: 20 1b sub r18, r16
141c: 31 0b sbc r19, r17
141e: 3b 83 std Y+3, r19 ; 0x03
1420: 2a 83 std Y+2, r18 ; 0x02
1422: 49 81 ldd r20, Y+1 ; 0x01
1424: 6c 2d mov r22, r12
1426: 8a 2d mov r24, r10
1428: 0e 94 26 09 call 0x124c <lcd_plot>
142c: c8 14 cp r12, r8
142e: d9 04 cpc r13, r9
1430: 39 f7 brne .-50 ; 0x1400 <lcd_line+0x122>
1432: 23 96 adiw r28, 0x03 ; 3
1434: 0f b6 in r0, 0x3f ; 63
1436: f8 94 cli
1438: de bf out 0x3e, r29 ; 62
143a: 0f be out 0x3f, r0 ; 63
143c: cd bf out 0x3d, r28 ; 61
143e: df 91 pop r29
1440: cf 91 pop r28
1442: 1f 91 pop r17
1444: 0f 91 pop r16
1446: ff 90 pop r15
1448: ef 90 pop r14
144a: df 90 pop r13
144c: cf 90 pop r12
144e: bf 90 pop r11
1450: af 90 pop r10
1452: 9f 90 pop r9
1454: 8f 90 pop r8
1456: 7f 90 pop r7
1458: 6f 90 pop r6
145a: 5f 90 pop r5
145c: 4f 90 pop r4
145e: 3f 90 pop r3
1460: 2f 90 pop r2
1462: 08 95 ret
 
00001464 <lcd_frect>:
}
}
}
 
 
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Filled rectangle
// + x1, y1 = upper left corner
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
void lcd_frect (uint8_t x1, uint8_t y1, uint8_t widthx, uint8_t widthy, uint8_t mode)
{
1464: bf 92 push r11
1466: cf 92 push r12
1468: df 92 push r13
146a: ef 92 push r14
146c: ff 92 push r15
146e: 0f 93 push r16
1470: 1f 93 push r17
1472: cf 93 push r28
1474: df 93 push r29
1476: 18 2f mov r17, r24
1478: 82 2f mov r24, r18
147a: b0 2e mov r11, r16
uint16_t x2, y2;
uint16_t i;
 
if (x1 >= DISP_W)
147c: 17 fd sbrc r17, 7
x1 = DISP_W - 1;
147e: 1f e7 ldi r17, 0x7F ; 127
if (y1 >= DISP_H)
1480: 60 34 cpi r22, 0x40 ; 64
1482: 08 f0 brcs .+2 ; 0x1486 <lcd_frect+0x22>
y1 = DISP_H - 1;
1484: 6f e3 ldi r22, 0x3F ; 63
x2 = x1 + widthx;
1486: 21 2f mov r18, r17
1488: 24 0f add r18, r20
148a: 31 2d mov r19, r1
148c: 31 1d adc r19, r1
148e: 69 01 movw r12, r18
y2 = y1 + widthy;
1490: 26 2f mov r18, r22
1492: 33 27 eor r19, r19
1494: 79 01 movw r14, r18
1496: e8 0e add r14, r24
1498: f1 1c adc r15, r1
if (x2 > DISP_W)
149a: 81 e8 ldi r24, 0x81 ; 129
149c: c8 16 cp r12, r24
149e: d1 04 cpc r13, r1
14a0: 18 f0 brcs .+6 ; 0x14a8 <lcd_frect+0x44>
x2 = DISP_W;
14a2: f0 e8 ldi r31, 0x80 ; 128
14a4: cf 2e mov r12, r31
14a6: d1 2c mov r13, r1
if (y2 > DISP_H)
14a8: 81 e4 ldi r24, 0x41 ; 65
14aa: e8 16 cp r14, r24
14ac: f1 04 cpc r15, r1
14ae: 18 f0 brcs .+6 ; 0x14b6 <lcd_frect+0x52>
y2 = DISP_H;
14b0: e0 e4 ldi r30, 0x40 ; 64
14b2: ee 2e mov r14, r30
14b4: f1 2c mov r15, r1
for (i=y1;i<=y2;i++)
14b6: e9 01 movw r28, r18
14b8: e2 16 cp r14, r18
14ba: f3 06 cpc r15, r19
14bc: 58 f0 brcs .+22 ; 0x14d4 <lcd_frect+0x70>
{
lcd_line(x1,i,x2,i,mode);
14be: 0b 2d mov r16, r11
14c0: 2c 2f mov r18, r28
14c2: 4c 2d mov r20, r12
14c4: 6c 2f mov r22, r28
14c6: 81 2f mov r24, r17
14c8: 0e 94 6f 09 call 0x12de <lcd_line>
14cc: 21 96 adiw r28, 0x01 ; 1
14ce: ec 16 cp r14, r28
14d0: fd 06 cpc r15, r29
14d2: a8 f7 brcc .-22 ; 0x14be <lcd_frect+0x5a>
14d4: df 91 pop r29
14d6: cf 91 pop r28
14d8: 1f 91 pop r17
14da: 0f 91 pop r16
14dc: ff 90 pop r15
14de: ef 90 pop r14
14e0: df 90 pop r13
14e2: cf 90 pop r12
14e4: bf 90 pop r11
14e6: 08 95 ret
 
000014e8 <lcd_rect>:
}
}
 
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + outline of rectangle
// + x1, y1 = upper left corner
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
void lcd_rect (uint8_t x1, uint8_t y1, uint8_t widthx, uint8_t widthy, uint8_t mode)
{
14e8: cf 92 push r12
14ea: df 92 push r13
14ec: ef 92 push r14
14ee: ff 92 push r15
14f0: 0f 93 push r16
14f2: 1f 93 push r17
14f4: cf 93 push r28
14f6: df 93 push r29
14f8: d8 2e mov r13, r24
14fa: 16 2f mov r17, r22
14fc: c0 2e mov r12, r16
uint16_t x2, y2;
 
if (x1 >= DISP_W)
14fe: 87 ff sbrs r24, 7
1500: 02 c0 rjmp .+4 ; 0x1506 <lcd_rect+0x1e>
x1 = DISP_W - 1;
1502: bf e7 ldi r27, 0x7F ; 127
1504: db 2e mov r13, r27
if (y1 >= DISP_H)
1506: 10 34 cpi r17, 0x40 ; 64
1508: 08 f0 brcs .+2 ; 0x150c <lcd_rect+0x24>
y1 = DISP_H - 1;
150a: 1f e3 ldi r17, 0x3F ; 63
x2 = x1 + widthx;
150c: 8d 2d mov r24, r13
150e: 84 0f add r24, r20
1510: 91 2d mov r25, r1
1512: 91 1d adc r25, r1
1514: ec 01 movw r28, r24
y2 = y1 + widthy;
1516: 81 2f mov r24, r17
1518: 82 0f add r24, r18
151a: 91 2d mov r25, r1
151c: 91 1d adc r25, r1
151e: 7c 01 movw r14, r24
if (x2 > DISP_W)
1520: c1 38 cpi r28, 0x81 ; 129
1522: d1 05 cpc r29, r1
1524: 10 f0 brcs .+4 ; 0x152a <lcd_rect+0x42>
x2 = DISP_W;
1526: c0 e8 ldi r28, 0x80 ; 128
1528: d0 e0 ldi r29, 0x00 ; 0
if (y2 > DISP_H)
152a: 91 e4 ldi r25, 0x41 ; 65
152c: e9 16 cp r14, r25
152e: f1 04 cpc r15, r1
1530: 18 f0 brcs .+6 ; 0x1538 <lcd_rect+0x50>
y2 = DISP_H;
1532: a0 e4 ldi r26, 0x40 ; 64
1534: ea 2e mov r14, r26
1536: f1 2c mov r15, r1
 
lcd_line (x1, y1, x2, y1, mode);
1538: 0c 2d mov r16, r12
153a: 21 2f mov r18, r17
153c: 4c 2f mov r20, r28
153e: 61 2f mov r22, r17
1540: 8d 2d mov r24, r13
1542: 0e 94 6f 09 call 0x12de <lcd_line>
lcd_line (x2, y1, x2, y2, mode);
1546: 2e 2d mov r18, r14
1548: 4c 2f mov r20, r28
154a: 61 2f mov r22, r17
154c: 8c 2f mov r24, r28
154e: 0e 94 6f 09 call 0x12de <lcd_line>
lcd_line (x2, y2, x1, y2, mode);
1552: 2e 2d mov r18, r14
1554: 4d 2d mov r20, r13
1556: 6e 2d mov r22, r14
1558: 8c 2f mov r24, r28
155a: 0e 94 6f 09 call 0x12de <lcd_line>
lcd_line (x1, y2, x1, y1, mode);
155e: 21 2f mov r18, r17
1560: 4d 2d mov r20, r13
1562: 6e 2d mov r22, r14
1564: 8d 2d mov r24, r13
1566: 0e 94 6f 09 call 0x12de <lcd_line>
156a: df 91 pop r29
156c: cf 91 pop r28
156e: 1f 91 pop r17
1570: 0f 91 pop r16
1572: ff 90 pop r15
1574: ef 90 pop r14
1576: df 90 pop r13
1578: cf 90 pop r12
157a: 08 95 ret
 
0000157c <draw_circle>:
}
 
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + outline of a circle
// + Based on Bresenham-algorithm found in wikipedia
// + modified by thkais (2007)
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 
void draw_circle(int16_t x0, int16_t y0, int16_t radius, uint8_t mode)
{
157c: 2f 92 push r2
157e: 3f 92 push r3
1580: 4f 92 push r4
1582: 5f 92 push r5
1584: 6f 92 push r6
1586: 7f 92 push r7
1588: 8f 92 push r8
158a: 9f 92 push r9
158c: af 92 push r10
158e: bf 92 push r11
1590: cf 92 push r12
1592: df 92 push r13
1594: ef 92 push r14
1596: ff 92 push r15
1598: 0f 93 push r16
159a: 1f 93 push r17
159c: cf 93 push r28
159e: df 93 push r29
15a0: 5c 01 movw r10, r24
15a2: 6b 01 movw r12, r22
15a4: e2 2e mov r14, r18
int16_t f = 1 - radius;
15a6: c1 e0 ldi r28, 0x01 ; 1
15a8: 8c 2e mov r8, r28
15aa: 91 2c mov r9, r1
15ac: 84 1a sub r8, r20
15ae: 95 0a sbc r9, r21
int16_t ddF_x = 0;
15b0: 22 24 eor r2, r2
15b2: 33 24 eor r3, r3
int16_t ddF_y = -2 * radius;
15b4: 8e ef ldi r24, 0xFE ; 254
15b6: 9f ef ldi r25, 0xFF ; 255
15b8: 48 9f mul r20, r24
15ba: 20 01 movw r4, r0
15bc: 49 9f mul r20, r25
15be: 50 0c add r5, r0
15c0: 58 9f mul r21, r24
15c2: 50 0c add r5, r0
15c4: 11 24 eor r1, r1
int16_t x = 0;
15c6: 31 01 movw r6, r2
int16_t y = radius;
15c8: ea 01 movw r28, r20
 
lcd_plot(x0, y0 + radius, mode);
15ca: 86 2f mov r24, r22
15cc: 84 0f add r24, r20
15ce: 42 2f mov r20, r18
15d0: 68 2f mov r22, r24
15d2: 8a 2d mov r24, r10
15d4: 0e 94 26 09 call 0x124c <lcd_plot>
lcd_plot(x0, y0 - radius, mode);
15d8: 8c 2d mov r24, r12
15da: 8c 1b sub r24, r28
15dc: 4e 2d mov r20, r14
15de: 68 2f mov r22, r24
15e0: 8a 2d mov r24, r10
15e2: 0e 94 26 09 call 0x124c <lcd_plot>
lcd_plot(x0 + radius, y0, mode);
15e6: 4e 2d mov r20, r14
15e8: 6c 2d mov r22, r12
15ea: 8a 2d mov r24, r10
15ec: 8c 0f add r24, r28
15ee: 0e 94 26 09 call 0x124c <lcd_plot>
lcd_plot(x0 - radius, y0, mode);
15f2: 4e 2d mov r20, r14
15f4: 6c 2d mov r22, r12
15f6: 8a 2d mov r24, r10
15f8: 8c 1b sub r24, r28
15fa: 0e 94 26 09 call 0x124c <lcd_plot>
 
while(x < y)
{
if(f >= 0)
{
y --;
ddF_y += 2;
f += ddF_y;
}
x ++;
ddF_x += 2;
f += ddF_x + 1;
 
lcd_plot(x0 + x, y0 + y, mode);
lcd_plot(x0 - x, y0 + y, mode);
lcd_plot(x0 + x, y0 - y, mode);
lcd_plot(x0 - x, y0 - y, mode);
lcd_plot(x0 + y, y0 + x, mode);
lcd_plot(x0 - y, y0 + x, mode);
lcd_plot(x0 + y, y0 - x, mode);
lcd_plot(x0 - y, y0 - x, mode);
15fe: 2c 16 cp r2, r28
1600: 3d 06 cpc r3, r29
1602: 0c f0 brlt .+2 ; 0x1606 <draw_circle+0x8a>
1604: 51 c0 rjmp .+162 ; 0x16a8 <draw_circle+0x12c>
1606: 97 fc sbrc r9, 7
1608: 07 c0 rjmp .+14 ; 0x1618 <draw_circle+0x9c>
160a: 21 97 sbiw r28, 0x01 ; 1
160c: 82 e0 ldi r24, 0x02 ; 2
160e: 90 e0 ldi r25, 0x00 ; 0
1610: 48 0e add r4, r24
1612: 59 1e adc r5, r25
1614: 84 0c add r8, r4
1616: 95 1c adc r9, r5
1618: 08 94 sec
161a: 61 1c adc r6, r1
161c: 71 1c adc r7, r1
161e: 82 e0 ldi r24, 0x02 ; 2
1620: 90 e0 ldi r25, 0x00 ; 0
1622: 28 0e add r2, r24
1624: 39 1e adc r3, r25
1626: 82 0c add r8, r2
1628: 93 1c adc r9, r3
162a: 08 94 sec
162c: 81 1c adc r8, r1
162e: 91 1c adc r9, r1
1630: 1c 2d mov r17, r12
1632: 1c 0f add r17, r28
1634: fa 2c mov r15, r10
1636: f6 0c add r15, r6
1638: 4e 2d mov r20, r14
163a: 61 2f mov r22, r17
163c: 8f 2d mov r24, r15
163e: 0e 94 26 09 call 0x124c <lcd_plot>
1642: 0a 2d mov r16, r10
1644: 06 19 sub r16, r6
1646: 4e 2d mov r20, r14
1648: 61 2f mov r22, r17
164a: 80 2f mov r24, r16
164c: 0e 94 26 09 call 0x124c <lcd_plot>
1650: 1c 2d mov r17, r12
1652: 1c 1b sub r17, r28
1654: 4e 2d mov r20, r14
1656: 61 2f mov r22, r17
1658: 8f 2d mov r24, r15
165a: 0e 94 26 09 call 0x124c <lcd_plot>
165e: 4e 2d mov r20, r14
1660: 61 2f mov r22, r17
1662: 80 2f mov r24, r16
1664: 0e 94 26 09 call 0x124c <lcd_plot>
1668: 1c 2d mov r17, r12
166a: 16 0d add r17, r6
166c: fa 2c mov r15, r10
166e: fc 0e add r15, r28
1670: 4e 2d mov r20, r14
1672: 61 2f mov r22, r17
1674: 8f 2d mov r24, r15
1676: 0e 94 26 09 call 0x124c <lcd_plot>
167a: 0a 2d mov r16, r10
167c: 0c 1b sub r16, r28
167e: 4e 2d mov r20, r14
1680: 61 2f mov r22, r17
1682: 80 2f mov r24, r16
1684: 0e 94 26 09 call 0x124c <lcd_plot>
1688: 1c 2d mov r17, r12
168a: 16 19 sub r17, r6
168c: 4e 2d mov r20, r14
168e: 61 2f mov r22, r17
1690: 8f 2d mov r24, r15
1692: 0e 94 26 09 call 0x124c <lcd_plot>
1696: 4e 2d mov r20, r14
1698: 61 2f mov r22, r17
169a: 80 2f mov r24, r16
169c: 0e 94 26 09 call 0x124c <lcd_plot>
16a0: 6c 16 cp r6, r28
16a2: 7d 06 cpc r7, r29
16a4: 0c f4 brge .+2 ; 0x16a8 <draw_circle+0x12c>
16a6: af cf rjmp .-162 ; 0x1606 <draw_circle+0x8a>
16a8: df 91 pop r29
16aa: cf 91 pop r28
16ac: 1f 91 pop r17
16ae: 0f 91 pop r16
16b0: ff 90 pop r15
16b2: ef 90 pop r14
16b4: df 90 pop r13
16b6: cf 90 pop r12
16b8: bf 90 pop r11
16ba: af 90 pop r10
16bc: 9f 90 pop r9
16be: 8f 90 pop r8
16c0: 7f 90 pop r7
16c2: 6f 90 pop r6
16c4: 5f 90 pop r5
16c6: 4f 90 pop r4
16c8: 3f 90 pop r3
16ca: 2f 90 pop r2
16cc: 08 95 ret
 
000016ce <draw_fcircle>:
}
}
 
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + filled Circle
// + modified circle-algorithm thkais (2007)
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
void draw_fcircle(int16_t x0, int16_t y0, int16_t radius)
{
16ce: 2f 92 push r2
16d0: 3f 92 push r3
16d2: 4f 92 push r4
16d4: 5f 92 push r5
16d6: 6f 92 push r6
16d8: 7f 92 push r7
16da: 8f 92 push r8
16dc: 9f 92 push r9
16de: af 92 push r10
16e0: bf 92 push r11
16e2: cf 92 push r12
16e4: df 92 push r13
16e6: ff 92 push r15
16e8: 0f 93 push r16
16ea: 1f 93 push r17
16ec: cf 93 push r28
16ee: df 93 push r29
16f0: 5c 01 movw r10, r24
16f2: 6b 01 movw r12, r22
int16_t f = 1 - radius;
16f4: 11 e0 ldi r17, 0x01 ; 1
16f6: 61 2e mov r6, r17
16f8: 71 2c mov r7, r1
16fa: 64 1a sub r6, r20
16fc: 75 0a sbc r7, r21
int16_t ddF_x = 0;
16fe: 22 24 eor r2, r2
1700: 33 24 eor r3, r3
int16_t ddF_y = -2 * radius;
1702: 8e ef ldi r24, 0xFE ; 254
1704: 9f ef ldi r25, 0xFF ; 255
1706: 48 9f mul r20, r24
1708: 20 01 movw r4, r0
170a: 49 9f mul r20, r25
170c: 50 0c add r5, r0
170e: 58 9f mul r21, r24
1710: 50 0c add r5, r0
1712: 11 24 eor r1, r1
int16_t x = 0;
1714: 41 01 movw r8, r2
int16_t y = radius;
1716: ea 01 movw r28, r20
lcd_line(x0, y0 + radius,x0, y0 - radius,1);
1718: 86 2f mov r24, r22
171a: 84 1b sub r24, r20
171c: 96 2f mov r25, r22
171e: 94 0f add r25, r20
1720: 01 e0 ldi r16, 0x01 ; 1
1722: 28 2f mov r18, r24
1724: 4a 2d mov r20, r10
1726: 69 2f mov r22, r25
1728: 8a 2d mov r24, r10
172a: 0e 94 6f 09 call 0x12de <lcd_line>
lcd_line(x0 + radius, y0,x0 - radius, y0,1);
172e: 8a 2d mov r24, r10
1730: 8c 1b sub r24, r28
1732: 2c 2d mov r18, r12
1734: 48 2f mov r20, r24
1736: 6c 2d mov r22, r12
1738: 8a 2d mov r24, r10
173a: 8c 0f add r24, r28
173c: 0e 94 6f 09 call 0x12de <lcd_line>
while(x < y)
{
if(f >= 0)
{
y--;
ddF_y += 2;
f += ddF_y;
}
x++;
ddF_x += 2;
f += ddF_x + 1;
lcd_line(x0 + x, y0 + y,x0 - x, y0 + y,1);
lcd_line(x0 + x, y0 - y,x0 - x, y0 - y,1);
lcd_line(x0 + y, y0 + x,x0 - y, y0 + x,1);
lcd_line(x0 + y, y0 - x,x0 - y, y0 - x,1);
1740: 2c 16 cp r2, r28
1742: 3d 06 cpc r3, r29
1744: 0c f0 brlt .+2 ; 0x1748 <draw_fcircle+0x7a>
1746: 42 c0 rjmp .+132 ; 0x17cc <draw_fcircle+0xfe>
1748: 77 fc sbrc r7, 7
174a: 07 c0 rjmp .+14 ; 0x175a <draw_fcircle+0x8c>
174c: 21 97 sbiw r28, 0x01 ; 1
174e: 82 e0 ldi r24, 0x02 ; 2
1750: 90 e0 ldi r25, 0x00 ; 0
1752: 48 0e add r4, r24
1754: 59 1e adc r5, r25
1756: 64 0c add r6, r4
1758: 75 1c adc r7, r5
175a: 08 94 sec
175c: 81 1c adc r8, r1
175e: 91 1c adc r9, r1
1760: 82 e0 ldi r24, 0x02 ; 2
1762: 90 e0 ldi r25, 0x00 ; 0
1764: 28 0e add r2, r24
1766: 39 1e adc r3, r25
1768: 62 0c add r6, r2
176a: 73 1c adc r7, r3
176c: 08 94 sec
176e: 61 1c adc r6, r1
1770: 71 1c adc r7, r1
1772: 8c 2d mov r24, r12
1774: 8c 0f add r24, r28
1776: 1a 2d mov r17, r10
1778: 18 19 sub r17, r8
177a: fa 2c mov r15, r10
177c: f8 0c add r15, r8
177e: 01 e0 ldi r16, 0x01 ; 1
1780: 28 2f mov r18, r24
1782: 41 2f mov r20, r17
1784: 68 2f mov r22, r24
1786: 8f 2d mov r24, r15
1788: 0e 94 6f 09 call 0x12de <lcd_line>
178c: 8c 2d mov r24, r12
178e: 8c 1b sub r24, r28
1790: 28 2f mov r18, r24
1792: 41 2f mov r20, r17
1794: 68 2f mov r22, r24
1796: 8f 2d mov r24, r15
1798: 0e 94 6f 09 call 0x12de <lcd_line>
179c: 8c 2d mov r24, r12
179e: 88 0d add r24, r8
17a0: 1a 2d mov r17, r10
17a2: 1c 1b sub r17, r28
17a4: fa 2c mov r15, r10
17a6: fc 0e add r15, r28
17a8: 28 2f mov r18, r24
17aa: 41 2f mov r20, r17
17ac: 68 2f mov r22, r24
17ae: 8f 2d mov r24, r15
17b0: 0e 94 6f 09 call 0x12de <lcd_line>
17b4: 8c 2d mov r24, r12
17b6: 88 19 sub r24, r8
17b8: 28 2f mov r18, r24
17ba: 41 2f mov r20, r17
17bc: 68 2f mov r22, r24
17be: 8f 2d mov r24, r15
17c0: 0e 94 6f 09 call 0x12de <lcd_line>
17c4: 8c 16 cp r8, r28
17c6: 9d 06 cpc r9, r29
17c8: 0c f4 brge .+2 ; 0x17cc <draw_fcircle+0xfe>
17ca: be cf rjmp .-132 ; 0x1748 <draw_fcircle+0x7a>
17cc: df 91 pop r29
17ce: cf 91 pop r28
17d0: 1f 91 pop r17
17d2: 0f 91 pop r16
17d4: ff 90 pop r15
17d6: df 90 pop r13
17d8: cf 90 pop r12
17da: bf 90 pop r11
17dc: af 90 pop r10
17de: 9f 90 pop r9
17e0: 8f 90 pop r8
17e2: 7f 90 pop r7
17e4: 6f 90 pop r6
17e6: 5f 90 pop r5
17e8: 4f 90 pop r4
17ea: 3f 90 pop r3
17ec: 2f 90 pop r2
17ee: 08 95 ret
 
000017f0 <__vector_13>:
volatile uint8_t read_index, write_index;
volatile uint8_t rs232_buffer[16];
 
ISR(USART_RXC_vect)
{
17f0: 1f 92 push r1
17f2: 0f 92 push r0
17f4: 0f b6 in r0, 0x3f ; 63
17f6: 0f 92 push r0
17f8: 11 24 eor r1, r1
17fa: 8f 93 push r24
17fc: 9f 93 push r25
17fe: ef 93 push r30
1800: ff 93 push r31
rs232_buffer[write_index++] = UDR;
1802: 90 91 6c 05 lds r25, 0x056C
1806: ee e6 ldi r30, 0x6E ; 110
1808: f5 e0 ldi r31, 0x05 ; 5
180a: e9 0f add r30, r25
180c: f1 1d adc r31, r1
180e: 8c b1 in r24, 0x0c ; 12
1810: 80 83 st Z, r24
1812: 9f 5f subi r25, 0xFF ; 255
1814: 90 93 6c 05 sts 0x056C, r25
write_index &= 15;
1818: 80 91 6c 05 lds r24, 0x056C
181c: 8f 70 andi r24, 0x0F ; 15
181e: 80 93 6c 05 sts 0x056C, r24
1822: ff 91 pop r31
1824: ef 91 pop r30
1826: 9f 91 pop r25
1828: 8f 91 pop r24
182a: 0f 90 pop r0
182c: 0f be out 0x3f, r0 ; 63
182e: 0f 90 pop r0
1830: 1f 90 pop r1
1832: 18 95 reti
 
00001834 <RS232_init>:
}
 
void RS232_init (void)
{
UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXCIE);
1834: 88 e9 ldi r24, 0x98 ; 152
1836: 8a b9 out 0x0a, r24 ; 10
UBRRL = 7; // 57600 Baud @ 7,372800 MHz
1838: 87 e0 ldi r24, 0x07 ; 7
183a: 89 b9 out 0x09, r24 ; 9
183c: 08 95 ret
 
0000183e <RS232_get>:
}
 
uint8_t RS232_get (void)
{
uint8_t c;
 
rs232_timer = 10;
183e: 8a e0 ldi r24, 0x0A ; 10
1840: 80 93 e5 04 sts 0x04E5, r24
while ((read_index == write_index) && (rs232_timer > 0));
1844: 90 91 6d 05 lds r25, 0x056D
1848: 80 91 6c 05 lds r24, 0x056C
184c: 98 17 cp r25, r24
184e: 21 f4 brne .+8 ; 0x1858 <RS232_get+0x1a>
1850: 80 91 e5 04 lds r24, 0x04E5
1854: 88 23 and r24, r24
1856: b1 f7 brne .-20 ; 0x1844 <RS232_get+0x6>
if (rs232_timer != 0)
1858: 80 91 e5 04 lds r24, 0x04E5
185c: 88 23 and r24, r24
185e: 81 f0 breq .+32 ; 0x1880 <RS232_get+0x42>
{
c = rs232_buffer[read_index++];
1860: 80 91 6d 05 lds r24, 0x056D
1864: e8 2f mov r30, r24
1866: ff 27 eor r31, r31
1868: e2 59 subi r30, 0x92 ; 146
186a: fa 4f sbci r31, 0xFA ; 250
186c: 8f 5f subi r24, 0xFF ; 255
186e: 80 93 6d 05 sts 0x056D, r24
1872: e0 81 ld r30, Z
read_index &= 15;
1874: 80 91 6d 05 lds r24, 0x056D
1878: 8f 70 andi r24, 0x0F ; 15
187a: 80 93 6d 05 sts 0x056D, r24
187e: 01 c0 rjmp .+2 ; 0x1882 <RS232_get+0x44>
}
else
{
c=0;
1880: e8 2f mov r30, r24
}
return c;
}
1882: 8e 2f mov r24, r30
1884: 99 27 eor r25, r25
1886: 08 95 ret
 
00001888 <RS232_send>:
void RS232_send (uint8_t data)
{
while ((UCSRA & (1<<UDRE)) == 0);
1888: 5d 9b sbis 0x0b, 5 ; 11
188a: fe cf rjmp .-4 ; 0x1888 <RS232_send>
UDR = data;
188c: 8c b9 out 0x0c, r24 ; 12
188e: 08 95 ret
 
00001890 <RS232_text>:
}
void RS232_text (uint8_t *text)
{
1890: cf 93 push r28
1892: df 93 push r29
1894: ec 01 movw r28, r24
while (*text)
{
RS232_send(*text);
text++;
1896: 88 81 ld r24, Y
1898: 88 23 and r24, r24
189a: 31 f0 breq .+12 ; 0x18a8 <RS232_text+0x18>
189c: 89 91 ld r24, Y+
189e: 0e 94 44 0c call 0x1888 <RS232_send>
18a2: 88 81 ld r24, Y
18a4: 88 23 and r24, r24
18a6: d1 f7 brne .-12 ; 0x189c <RS232_text+0xc>
18a8: df 91 pop r29
18aa: cf 91 pop r28
18ac: 08 95 ret
 
000018ae <base64_decode>:
}
 
 
uint8_t base64_decode(uint8_t number) // Wandelt die base64-Rohdaten in lesbare Daten um
{
18ae: a8 2f mov r26, r24
uint8_t p,q;
uint8_t a,b,c,d;
 
p = 2;
18b0: 62 e0 ldi r22, 0x02 ; 2
q = 0;
18b2: 70 e0 ldi r23, 0x00 ; 0
while (p < number)
{
a = r_buffer[p + 0] - 61;
b = r_buffer[p + 1] - 61;
c = r_buffer[p + 2] - 61;
d = r_buffer[p + 3] - 61;
p += 4;
p_buffer[q + 0] = (a << 2) | (b >> 4); // gespeichert werden die Daten in p_buffer
p_buffer[q + 1] = ((b & 0x0F) << 4) | (c >> 2);
p_buffer[q + 2] = ((c & 0x03) << 6) | d;
q += 3;
18b4: 6a 17 cp r22, r26
18b6: b0 f5 brcc .+108 ; 0x1924 <base64_decode+0x76>
18b8: e6 2f mov r30, r22
18ba: ff 27 eor r31, r31
18bc: e7 51 subi r30, 0x17 ; 23
18be: fb 4f sbci r31, 0xFB ; 251
18c0: 80 81 ld r24, Z
18c2: 8d 53 subi r24, 0x3D ; 61
18c4: 31 81 ldd r19, Z+1 ; 0x01
18c6: 3d 53 subi r19, 0x3D ; 61
18c8: 52 81 ldd r21, Z+2 ; 0x02
18ca: 5d 53 subi r21, 0x3D ; 61
18cc: 43 81 ldd r20, Z+3 ; 0x03
18ce: 4d 53 subi r20, 0x3D ; 61
18d0: 6c 5f subi r22, 0xFC ; 252
18d2: e7 2f mov r30, r23
18d4: ff 27 eor r31, r31
18d6: ed 59 subi r30, 0x9D ; 157
18d8: fb 4f sbci r31, 0xFB ; 251
18da: 99 27 eor r25, r25
18dc: 88 0f add r24, r24
18de: 99 1f adc r25, r25
18e0: 88 0f add r24, r24
18e2: 99 1f adc r25, r25
18e4: 23 2f mov r18, r19
18e6: 22 95 swap r18
18e8: 2f 70 andi r18, 0x0F ; 15
18ea: 28 2b or r18, r24
18ec: 20 83 st Z, r18
18ee: 83 2f mov r24, r19
18f0: 99 27 eor r25, r25
18f2: 8f 70 andi r24, 0x0F ; 15
18f4: 90 70 andi r25, 0x00 ; 0
18f6: 34 e0 ldi r19, 0x04 ; 4
18f8: 88 0f add r24, r24
18fa: 99 1f adc r25, r25
18fc: 3a 95 dec r19
18fe: e1 f7 brne .-8 ; 0x18f8 <base64_decode+0x4a>
1900: 25 2f mov r18, r21
1902: 26 95 lsr r18
1904: 26 95 lsr r18
1906: 28 2b or r18, r24
1908: 21 83 std Z+1, r18 ; 0x01
190a: 85 2f mov r24, r21
190c: 99 27 eor r25, r25
190e: 83 70 andi r24, 0x03 ; 3
1910: 90 70 andi r25, 0x00 ; 0
1912: 26 e0 ldi r18, 0x06 ; 6
1914: 88 0f add r24, r24
1916: 99 1f adc r25, r25
1918: 2a 95 dec r18
191a: e1 f7 brne .-8 ; 0x1914 <base64_decode+0x66>
191c: 48 2b or r20, r24
191e: 42 83 std Z+2, r20 ; 0x02
1920: 7d 5f subi r23, 0xFD ; 253
1922: c8 cf rjmp .-112 ; 0x18b4 <base64_decode+0x6>
}
return q; // Rückgabe der Anzahl der Datenbytes
}
1924: 87 2f mov r24, r23
1926: 99 27 eor r25, r25
1928: 08 95 ret
 
0000192a <get_message>:
192a: cf 93 push r28
192c: 84 e1 ldi r24, 0x14 ; 20
192e: 80 93 61 00 sts 0x0061, r24
1932: 0e 94 1f 0c call 0x183e <RS232_get>
1936: 83 32 cpi r24, 0x23 ; 35
1938: 21 f0 breq .+8 ; 0x1942 <get_message+0x18>
193a: 80 91 61 00 lds r24, 0x0061
193e: 88 23 and r24, r24
1940: c1 f7 brne .-16 ; 0x1932 <get_message+0x8>
1942: 80 91 61 00 lds r24, 0x0061
1946: 88 23 and r24, r24
1948: 99 f0 breq .+38 ; 0x1970 <get_message+0x46>
194a: c0 e0 ldi r28, 0x00 ; 0
194c: 0e 94 1f 0c call 0x183e <RS232_get>
1950: ec 2f mov r30, r28
1952: ff 27 eor r31, r31
1954: e7 51 subi r30, 0x17 ; 23
1956: fb 4f sbci r31, 0xFB ; 251
1958: 80 83 st Z, r24
195a: cf 5f subi r28, 0xFF ; 255
195c: c7 fd sbrc r28, 7
195e: cf e7 ldi r28, 0x7F ; 127
1960: 8d 30 cpi r24, 0x0D ; 13
1962: a1 f7 brne .-24 ; 0x194c <get_message+0x22>
1964: 8c 2f mov r24, r28
1966: 0e 94 57 0c call 0x18ae <base64_decode>
196a: 80 e0 ldi r24, 0x00 ; 0
196c: 90 e0 ldi r25, 0x00 ; 0
196e: 02 c0 rjmp .+4 ; 0x1974 <get_message+0x4a>
1970: 81 e0 ldi r24, 0x01 ; 1
1972: 90 e0 ldi r25, 0x00 ; 0
1974: cf 91 pop r28
1976: 08 95 ret
 
00001978 <base64_send>:
 
void base64_send(uint8_t number) // Sendet Daten zur Flight-Control
{ // Die Daten werden in p_buffer erwartet, umcodiert und gesendet
1978: ff 92 push r15
197a: 0f 93 push r16
197c: 1f 93 push r17
197e: cf 93 push r28
1980: a8 2f mov r26, r24
uint8_t bpointer,spointer;
uint8_t x,y,z,a;
uint16_t checksum;
 
r_buffer[0] = p_buffer[0];
1982: 80 91 63 04 lds r24, 0x0463
1986: 80 93 e9 04 sts 0x04E9, r24
r_buffer[1] = p_buffer[1];
198a: 80 91 64 04 lds r24, 0x0464
198e: 80 93 ea 04 sts 0x04EA, r24
r_buffer[2] = p_buffer[2];
1992: 80 91 65 04 lds r24, 0x0465
1996: 80 93 eb 04 sts 0x04EB, r24
 
bpointer = 3;
199a: 43 e0 ldi r20, 0x03 ; 3
199c: f4 2e mov r15, r20
spointer = 3;
199e: 7f 2d mov r23, r15
 
while (spointer < number)
{
x = p_buffer[spointer];
y = p_buffer[spointer + 1];
z = p_buffer[spointer + 2];
spointer += 3;
r_buffer[bpointer + 0] = (x >> 2) + 61;
r_buffer[bpointer + 1] = (((x & 0x03) << 4) | ((y & 0xF0) >> 4)) + 61;
r_buffer[bpointer + 2] = (((y & 0x0F) << 2) | ((z & 0xC0) >> 6)) + 61;
r_buffer[bpointer + 3] = (z & 0x3F) + 61;
bpointer += 4;
19a0: fa 16 cp r15, r26
19a2: e0 f5 brcc .+120 ; 0x1a1c <base64_send+0xa4>
19a4: e7 2f mov r30, r23
19a6: ff 27 eor r31, r31
19a8: ed 59 subi r30, 0x9D ; 157
19aa: fb 4f sbci r31, 0xFB ; 251
19ac: 90 81 ld r25, Z
19ae: 21 81 ldd r18, Z+1 ; 0x01
19b0: 62 81 ldd r22, Z+2 ; 0x02
19b2: 7d 5f subi r23, 0xFD ; 253
19b4: ef 2d mov r30, r15
19b6: ff 27 eor r31, r31
19b8: e7 51 subi r30, 0x17 ; 23
19ba: fb 4f sbci r31, 0xFB ; 251
19bc: 89 2f mov r24, r25
19be: 86 95 lsr r24
19c0: 86 95 lsr r24
19c2: 83 5c subi r24, 0xC3 ; 195
19c4: 80 83 st Z, r24
19c6: 89 2f mov r24, r25
19c8: 99 27 eor r25, r25
19ca: 83 70 andi r24, 0x03 ; 3
19cc: 90 70 andi r25, 0x00 ; 0
19ce: 34 e0 ldi r19, 0x04 ; 4
19d0: 88 0f add r24, r24
19d2: 99 1f adc r25, r25
19d4: 3a 95 dec r19
19d6: e1 f7 brne .-8 ; 0x19d0 <base64_send+0x58>
19d8: 42 2f mov r20, r18
19da: 55 27 eor r21, r21
19dc: 9a 01 movw r18, r20
19de: 94 e0 ldi r25, 0x04 ; 4
19e0: 36 95 lsr r19
19e2: 27 95 ror r18
19e4: 9a 95 dec r25
19e6: e1 f7 brne .-8 ; 0x19e0 <base64_send+0x68>
19e8: 82 2b or r24, r18
19ea: 83 5c subi r24, 0xC3 ; 195
19ec: 81 83 std Z+1, r24 ; 0x01
19ee: 4f 70 andi r20, 0x0F ; 15
19f0: 50 70 andi r21, 0x00 ; 0
19f2: 44 0f add r20, r20
19f4: 55 1f adc r21, r21
19f6: 44 0f add r20, r20
19f8: 55 1f adc r21, r21
19fa: 86 2f mov r24, r22
19fc: 99 27 eor r25, r25
19fe: 16 e0 ldi r17, 0x06 ; 6
1a00: 96 95 lsr r25
1a02: 87 95 ror r24
1a04: 1a 95 dec r17
1a06: e1 f7 brne .-8 ; 0x1a00 <base64_send+0x88>
1a08: 84 2b or r24, r20
1a0a: 83 5c subi r24, 0xC3 ; 195
1a0c: 82 83 std Z+2, r24 ; 0x02
1a0e: 6f 73 andi r22, 0x3F ; 63
1a10: 63 5c subi r22, 0xC3 ; 195
1a12: 63 83 std Z+3, r22 ; 0x03
1a14: 84 e0 ldi r24, 0x04 ; 4
1a16: f8 0e add r15, r24
1a18: 7a 17 cp r23, r26
1a1a: 20 f2 brcs .-120 ; 0x19a4 <base64_send+0x2c>
}
 
checksum = 0;
1a1c: 20 e0 ldi r18, 0x00 ; 0
1a1e: 30 e0 ldi r19, 0x00 ; 0
for(a=0;a<bpointer;a++)
1a20: c0 e0 ldi r28, 0x00 ; 0
1a22: cf 15 cp r28, r15
1a24: 40 f4 brcc .+16 ; 0x1a36 <base64_send+0xbe>
1a26: e9 ee ldi r30, 0xE9 ; 233
1a28: f4 e0 ldi r31, 0x04 ; 4
checksum += r_buffer[a];
1a2a: 81 91 ld r24, Z+
1a2c: 28 0f add r18, r24
1a2e: 31 1d adc r19, r1
1a30: cf 5f subi r28, 0xFF ; 255
1a32: cf 15 cp r28, r15
1a34: d0 f3 brcs .-12 ; 0x1a2a <base64_send+0xb2>
checksum %= 4096;
1a36: 3f 70 andi r19, 0x0F ; 15
r_buffer[bpointer] = (checksum / 64) + 61;
1a38: ef 2d mov r30, r15
1a3a: ff 27 eor r31, r31
1a3c: e7 51 subi r30, 0x17 ; 23
1a3e: fb 4f sbci r31, 0xFB ; 251
1a40: c9 01 movw r24, r18
1a42: c6 e0 ldi r28, 0x06 ; 6
1a44: 96 95 lsr r25
1a46: 87 95 ror r24
1a48: ca 95 dec r28
1a4a: e1 f7 brne .-8 ; 0x1a44 <base64_send+0xcc>
1a4c: 83 5c subi r24, 0xC3 ; 195
1a4e: 80 83 st Z, r24
r_buffer[bpointer + 1] = (checksum % 64) + 61;
1a50: 2f 73 andi r18, 0x3F ; 63
1a52: 30 70 andi r19, 0x00 ; 0
1a54: 82 2f mov r24, r18
1a56: 83 5c subi r24, 0xC3 ; 195
1a58: 81 83 std Z+1, r24 ; 0x01
r_buffer[bpointer + 2] = 13;
1a5a: 8d e0 ldi r24, 0x0D ; 13
1a5c: 82 83 std Z+2, r24 ; 0x02
r_buffer[bpointer + 3] = 0;
1a5e: 13 82 std Z+3, r1 ; 0x03
bpointer += 3;
1a60: 83 e0 ldi r24, 0x03 ; 3
1a62: f8 0e add r15, r24
for(a=0;a<bpointer;a++)
1a64: c3 81 ldd r28, Z+3 ; 0x03
1a66: cf 15 cp r28, r15
1a68: 50 f4 brcc .+20 ; 0x1a7e <base64_send+0x106>
1a6a: 09 ee ldi r16, 0xE9 ; 233
1a6c: 14 e0 ldi r17, 0x04 ; 4
RS232_send(r_buffer[a]);
1a6e: f8 01 movw r30, r16
1a70: 81 91 ld r24, Z+
1a72: 8f 01 movw r16, r30
1a74: 0e 94 44 0c call 0x1888 <RS232_send>
1a78: cf 5f subi r28, 0xFF ; 255
1a7a: cf 15 cp r28, r15
1a7c: c0 f3 brcs .-16 ; 0x1a6e <base64_send+0xf6>
1a7e: cf 91 pop r28
1a80: 1f 91 pop r17
1a82: 0f 91 pop r16
1a84: ff 90 pop r15
1a86: 08 95 ret
 
00001a88 <displ_get_text>:
uint8_t displ_page;
 
 
void displ_get_text(uint8_t number)
{
1a88: 1f 93 push r17
1a8a: cf 93 push r28
1a8c: df 93 push r29
1a8e: cd b7 in r28, 0x3d ; 61
1a90: de b7 in r29, 0x3e ; 62
1a92: 61 97 sbiw r28, 0x11 ; 17
1a94: 0f b6 in r0, 0x3f ; 63
1a96: f8 94 cli
1a98: de bf out 0x3e, r29 ; 62
1a9a: 0f be out 0x3f, r0 ; 63
1a9c: cd bf out 0x3d, r28 ; 61
1a9e: 18 2f mov r17, r24
uint8_t text[17];
uint8_t i;
p_buffer[0] = '#';
1aa0: 83 e2 ldi r24, 0x23 ; 35
1aa2: 80 93 63 04 sts 0x0463, r24
p_buffer[1] = 'a';
1aa6: 81 e6 ldi r24, 0x61 ; 97
1aa8: 80 93 64 04 sts 0x0464, r24
p_buffer[2] = 'a';
1aac: 80 93 65 04 sts 0x0465, r24
p_buffer[3] = number;
1ab0: 10 93 66 04 sts 0x0466, r17
p_buffer[4] = 0;
1ab4: 10 92 67 04 sts 0x0467, r1
p_buffer[5] = 0;
1ab8: 10 92 68 04 sts 0x0468, r1
base64_send(6);
1abc: 86 e0 ldi r24, 0x06 ; 6
1abe: 0e 94 bc 0c call 0x1978 <base64_send>
 
do
{
get_message();
1ac2: 0e 94 95 0c call 0x192a <get_message>
}
1ac6: 80 91 ea 04 lds r24, 0x04EA
1aca: 81 34 cpi r24, 0x41 ; 65
1acc: d1 f7 brne .-12 ; 0x1ac2 <displ_get_text+0x3a>
1ace: de 01 movw r26, r28
1ad0: 11 96 adiw r26, 0x01 ; 1
1ad2: e3 e6 ldi r30, 0x63 ; 99
1ad4: f4 e0 ldi r31, 0x04 ; 4
1ad6: 9f e0 ldi r25, 0x0F ; 15
while (r_buffer[1] != 'A');
 
for (i=0;i<16;i++)
text[i] = p_buffer[i];
1ad8: 81 91 ld r24, Z+
1ada: 8d 93 st X+, r24
1adc: 91 50 subi r25, 0x01 ; 1
1ade: 97 ff sbrs r25, 7
1ae0: fb cf rjmp .-10 ; 0x1ad8 <displ_get_text+0x50>
text[16] = 0x00;
1ae2: 19 8a std Y+17, r1 ; 0x11
lcd_print_at(0,(number & 0x07),text,0);
1ae4: 17 70 andi r17, 0x07 ; 7
1ae6: 29 89 ldd r18, Y+17 ; 0x11
1ae8: ae 01 movw r20, r28
1aea: 4f 5f subi r20, 0xFF ; 255
1aec: 5f 4f sbci r21, 0xFF ; 255
1aee: 61 2f mov r22, r17
1af0: 82 2f mov r24, r18
1af2: 0e 94 1d 09 call 0x123a <lcd_print_at>
1af6: 61 96 adiw r28, 0x11 ; 17
1af8: 0f b6 in r0, 0x3f ; 63
1afa: f8 94 cli
1afc: de bf out 0x3e, r29 ; 62
1afe: 0f be out 0x3f, r0 ; 63
1b00: cd bf out 0x3d, r28 ; 61
1b02: df 91 pop r29
1b04: cf 91 pop r28
1b06: 1f 91 pop r17
1b08: 08 95 ret
 
00001b0a <displ_values>:
}
 
void displ_values(void)
{
1b0a: cf 92 push r12
1b0c: df 92 push r13
1b0e: ef 92 push r14
1b10: ff 92 push r15
1b12: 0f 93 push r16
1b14: 1f 93 push r17
1b16: cf 93 push r28
1b18: df 93 push r29
1b1a: cd b7 in r28, 0x3d ; 61
1b1c: de b7 in r29, 0x3e ; 62
1b1e: 61 97 sbiw r28, 0x11 ; 17
1b20: 0f b6 in r0, 0x3f ; 63
1b22: f8 94 cli
1b24: de bf out 0x3e, r29 ; 62
1b26: 0f be out 0x3f, r0 ; 63
1b28: cd bf out 0x3d, r28 ; 61
uint8_t displ_page, i;
int16_t value;
uint8_t text[17];
 
displ_page = 0; // Page 0..3 (4 Pages zu je 8 Werte)
1b2a: 00 e0 ldi r16, 0x00 ; 0
lcd_cls(); // LCD löschen
1b2c: 0e 94 36 07 call 0xe6c <lcd_cls>
do
{
for (i=0;i<8;i++) // Texte lesen und anzeigen
1b30: 10 e0 ldi r17, 0x00 ; 0
displ_get_text(i+displ_page*8);
1b32: c0 2e mov r12, r16
1b34: dd 24 eor r13, r13
1b36: c6 01 movw r24, r12
1b38: 53 e0 ldi r21, 0x03 ; 3
1b3a: 88 0f add r24, r24
1b3c: 99 1f adc r25, r25
1b3e: 5a 95 dec r21
1b40: e1 f7 brne .-8 ; 0x1b3a <displ_values+0x30>
1b42: 81 0f add r24, r17
1b44: 0e 94 44 0d call 0x1a88 <displ_get_text>
1b48: 1f 5f subi r17, 0xFF ; 255
1b4a: 18 30 cpi r17, 0x08 ; 8
1b4c: 90 f3 brcs .-28 ; 0x1b32 <displ_values+0x28>
do
{
get_message();
1b4e: 0e 94 95 0c call 0x192a <get_message>
if(r_buffer[1] == 'D')
1b52: 80 91 ea 04 lds r24, 0x04EA
1b56: 84 34 cpi r24, 0x44 ; 68
1b58: 91 f5 brne .+100 ; 0x1bbe <displ_values+0xb4>
{
for (i=0;i<8;i++)
1b5a: 10 e0 ldi r17, 0x00 ; 0
1b5c: ee 24 eor r14, r14
1b5e: ff 24 eor r15, r15
{
value = p_buffer[i*2+displ_page*16+2] + 256*p_buffer[i*2+displ_page*16+3];
1b60: f6 01 movw r30, r12
1b62: 43 e0 ldi r20, 0x03 ; 3
1b64: ee 0f add r30, r30
1b66: ff 1f adc r31, r31
1b68: 4a 95 dec r20
1b6a: e1 f7 brne .-8 ; 0x1b64 <displ_values+0x5a>
1b6c: ee 0d add r30, r14
1b6e: ff 1d adc r31, r15
1b70: ee 0f add r30, r30
1b72: ff 1f adc r31, r31
1b74: ed 59 subi r30, 0x9D ; 157
1b76: fb 4f sbci r31, 0xFB ; 251
1b78: 22 81 ldd r18, Z+2 ; 0x02
1b7a: 83 81 ldd r24, Z+3 ; 0x03
1b7c: 99 27 eor r25, r25
1b7e: 98 2f mov r25, r24
1b80: 88 27 eor r24, r24
itoa(value,text,10);
1b82: 4a e0 ldi r20, 0x0A ; 10
1b84: 50 e0 ldi r21, 0x00 ; 0
1b86: be 01 movw r22, r28
1b88: 6f 5f subi r22, 0xFF ; 255
1b8a: 7f 4f sbci r23, 0xFF ; 255
1b8c: 82 0f add r24, r18
1b8e: 91 1d adc r25, r1
1b90: 0e 94 cf 12 call 0x259e <itoa>
lcd_print_atp(14,i,PSTR(" "),0);
1b94: 20 e0 ldi r18, 0x00 ; 0
1b96: 44 e5 ldi r20, 0x54 ; 84
1b98: 56 e0 ldi r21, 0x06 ; 6
1b9a: 61 2f mov r22, r17
1b9c: 8e e0 ldi r24, 0x0E ; 14
1b9e: 0e 94 e1 08 call 0x11c2 <lcd_print_atp>
lcd_print_at(14,i,text,0);
1ba2: 20 e0 ldi r18, 0x00 ; 0
1ba4: ae 01 movw r20, r28
1ba6: 4f 5f subi r20, 0xFF ; 255
1ba8: 5f 4f sbci r21, 0xFF ; 255
1baa: 61 2f mov r22, r17
1bac: 8e e0 ldi r24, 0x0E ; 14
1bae: 0e 94 1d 09 call 0x123a <lcd_print_at>
1bb2: 1f 5f subi r17, 0xFF ; 255
1bb4: 08 94 sec
1bb6: e1 1c adc r14, r1
1bb8: f1 1c adc r15, r1
1bba: 18 30 cpi r17, 0x08 ; 8
1bbc: 88 f2 brcs .-94 ; 0x1b60 <displ_values+0x56>
}
}
}
1bbe: 80 91 e6 04 lds r24, 0x04E6
1bc2: 88 23 and r24, r24
1bc4: 21 f2 breq .-120 ; 0x1b4e <displ_values+0x44>
while (key == 0x00);
if (key == 0x01)
1bc6: 80 91 e6 04 lds r24, 0x04E6
1bca: 81 30 cpi r24, 0x01 ; 1
1bcc: 09 f4 brne .+2 ; 0x1bd0 <displ_values+0xc6>
displ_page++;
1bce: 0f 5f subi r16, 0xFF ; 255
if (key == 0x02)
1bd0: 80 91 e6 04 lds r24, 0x04E6
1bd4: 82 30 cpi r24, 0x02 ; 2
1bd6: 09 f4 brne .+2 ; 0x1bda <displ_values+0xd0>
displ_page--;
1bd8: 01 50 subi r16, 0x01 ; 1
displ_page &= 0x03;
1bda: 03 70 andi r16, 0x03 ; 3
}
1bdc: 80 91 e6 04 lds r24, 0x04E6
1be0: 88 30 cpi r24, 0x08 ; 8
1be2: 09 f0 breq .+2 ; 0x1be6 <displ_values+0xdc>
1be4: a5 cf rjmp .-182 ; 0x1b30 <displ_values+0x26>
1be6: 61 96 adiw r28, 0x11 ; 17
1be8: 0f b6 in r0, 0x3f ; 63
1bea: f8 94 cli
1bec: de bf out 0x3e, r29 ; 62
1bee: 0f be out 0x3f, r0 ; 63
1bf0: cd bf out 0x3d, r28 ; 61
1bf2: df 91 pop r29
1bf4: cf 91 pop r28
1bf6: 1f 91 pop r17
1bf8: 0f 91 pop r16
1bfa: ff 90 pop r15
1bfc: ef 90 pop r14
1bfe: df 90 pop r13
1c00: cf 90 pop r12
1c02: 08 95 ret
 
00001c04 <read_parameter>:
 
// Parameter lesen, editieren und zurückschreiben
 
uint8_t read_parameter (uint8_t number) // Number = Parameter-Set#
{
1c04: cf 93 push r28
uint8_t timeout;
timeout = 0;
1c06: c0 e0 ldi r28, 0x00 ; 0
p_buffer[0] = '#'; // Parameter anfordern
1c08: 93 e2 ldi r25, 0x23 ; 35
1c0a: 90 93 63 04 sts 0x0463, r25
p_buffer[1] = 'a';
1c0e: 91 e6 ldi r25, 0x61 ; 97
1c10: 90 93 64 04 sts 0x0464, r25
p_buffer[2] = 'q';
1c14: 91 e7 ldi r25, 0x71 ; 113
1c16: 90 93 65 04 sts 0x0465, r25
p_buffer[3] = number;
1c1a: 80 93 66 04 sts 0x0466, r24
p_buffer[4] = 0;
1c1e: c0 93 67 04 sts 0x0467, r28
p_buffer[5] = 0;
1c22: c0 93 68 04 sts 0x0468, r28
base64_send(6);
1c26: 86 e0 ldi r24, 0x06 ; 6
1c28: 0e 94 bc 0c call 0x1978 <base64_send>
 
do // warten, bis die Parameter gesendet werden
{
if (get_message() == 1) // Fehler bei der Übertragung?
1c2c: 0e 94 95 0c call 0x192a <get_message>
1c30: 81 30 cpi r24, 0x01 ; 1
1c32: 09 f4 brne .+2 ; 0x1c36 <read_parameter+0x32>
timeout = 30; // Timeout sofort auf Endwert setzen
1c34: ce e1 ldi r28, 0x1E ; 30
timeout ++;
1c36: cf 5f subi r28, 0xFF ; 255
}
1c38: 80 91 ea 04 lds r24, 0x04EA
1c3c: 8c 54 subi r24, 0x4C ; 76
1c3e: 85 30 cpi r24, 0x05 ; 5
1c40: 10 f0 brcs .+4 ; 0x1c46 <read_parameter+0x42>
1c42: ce 31 cpi r28, 0x1E ; 30
1c44: 98 f3 brcs .-26 ; 0x1c2c <read_parameter+0x28>
while (((r_buffer[1] < 'L') || (r_buffer[1] > 'P')) && (timeout < 30)); // warten, bis Parameter empfangen wurden oder ein Timeout auftrat
if (timeout >= 30) // Wenn ein Timeout (=Fehler) auftrat, eine 1 zurückgeben, ansonsten 0
1c46: ce 31 cpi r28, 0x1E ; 30
1c48: 18 f0 brcs .+6 ; 0x1c50 <read_parameter+0x4c>
return 1;
1c4a: 81 e0 ldi r24, 0x01 ; 1
1c4c: 90 e0 ldi r25, 0x00 ; 0
1c4e: 02 c0 rjmp .+4 ; 0x1c54 <read_parameter+0x50>
else
return 0;
1c50: 80 e0 ldi r24, 0x00 ; 0
1c52: 90 e0 ldi r25, 0x00 ; 0
1c54: cf 91 pop r28
1c56: 08 95 ret
 
00001c58 <write_parameter>:
}
 
void write_parameter(uint8_t number) // Schreibe Parameter-Satz
{
1c58: 98 2f mov r25, r24
uint8_t i;
if (number <= 5)
1c5a: 86 30 cpi r24, 0x06 ; 6
1c5c: b8 f4 brcc .+46 ; 0x1c8c <write_parameter+0x34>
1c5e: e9 ea ldi r30, 0xA9 ; 169
1c60: f4 e0 ldi r31, 0x04 ; 4
1c62: 26 e4 ldi r18, 0x46 ; 70
{
 
for (i=0;i<71;i++) // Den gesamten Parameter-Puffer um 3 Bytes nach hinten verschieben
p_buffer[(70-i)+3] = p_buffer[70-i];
1c64: 80 81 ld r24, Z
1c66: 83 83 std Z+3, r24 ; 0x03
1c68: 21 50 subi r18, 0x01 ; 1
1c6a: 31 97 sbiw r30, 0x01 ; 1
1c6c: 27 ff sbrs r18, 7
1c6e: fa cf rjmp .-12 ; 0x1c64 <write_parameter+0xc>
p_buffer[0] = '#'; // Befehl zum Schreiben der Parameter
1c70: 83 e2 ldi r24, 0x23 ; 35
1c72: 80 93 63 04 sts 0x0463, r24
p_buffer[1] = 'a';
1c76: 81 e6 ldi r24, 0x61 ; 97
1c78: 80 93 64 04 sts 0x0464, r24
p_buffer[2] = number + 'k'; // Nummer des Parameters
1c7c: 95 59 subi r25, 0x95 ; 149
1c7e: 90 93 65 04 sts 0x0465, r25
p_buffer[74] = 0;
1c82: 10 92 ad 04 sts 0x04AD, r1
base64_send(75); // Parameter in base64 kodieren und senden, 75 Bytes
1c86: 8b e4 ldi r24, 0x4B ; 75
1c88: 0e 94 bc 0c call 0x1978 <base64_send>
1c8c: 08 95 ret
 
00001c8e <binary>:
}
}
 
void binary (uint8_t data, uint8_t *feld) // Wandelt eine 8-Bit Zahl in eine Binärzahl um (Array mit 8 Elementen)
{ // Wird für die Flags (Loop + Grundkonfiguration) benötigt
1c8e: 9b 01 movw r18, r22
1c90: 68 2f mov r22, r24
1c92: 77 27 eor r23, r23
1c94: 51 e0 ldi r21, 0x01 ; 1
1c96: f9 01 movw r30, r18
1c98: 20 e0 ldi r18, 0x00 ; 0
1c9a: 30 e0 ldi r19, 0x00 ; 0
1c9c: 47 e0 ldi r20, 0x07 ; 7
uint8_t i;
i=0;
for (i=0;i<8;i++)
{
if ((1<<i) & data)
1c9e: cb 01 movw r24, r22
1ca0: 02 2e mov r0, r18
1ca2: 02 c0 rjmp .+4 ; 0x1ca8 <binary+0x1a>
1ca4: 95 95 asr r25
1ca6: 87 95 ror r24
1ca8: 0a 94 dec r0
1caa: e2 f7 brpl .-8 ; 0x1ca4 <binary+0x16>
1cac: 80 ff sbrs r24, 0
1cae: 02 c0 rjmp .+4 ; 0x1cb4 <binary+0x26>
feld[i] = 1;
1cb0: 50 83 st Z, r21
1cb2: 01 c0 rjmp .+2 ; 0x1cb6 <binary+0x28>
else
feld[i] = 0;
1cb4: 10 82 st Z, r1
1cb6: 41 50 subi r20, 0x01 ; 1
1cb8: 2f 5f subi r18, 0xFF ; 255
1cba: 3f 4f sbci r19, 0xFF ; 255
1cbc: 31 96 adiw r30, 0x01 ; 1
1cbe: 47 ff sbrs r20, 7
1cc0: ee cf rjmp .-36 ; 0x1c9e <binary+0x10>
1cc2: 08 95 ret
 
00001cc4 <bindec>:
}
}
 
uint8_t bindec (uint8_t *feld) // wandelt eine Binärzahl (im Array) in eine 8-Bit Zahl
{ // Wird für die Flags (Loop + Grundkonfiguration) benötigt
uint8_t i;
uint8_t result;
result = 0;
1cc4: 50 e0 ldi r21, 0x00 ; 0
1cc6: 61 e0 ldi r22, 0x01 ; 1
1cc8: 70 e0 ldi r23, 0x00 ; 0
1cca: fc 01 movw r30, r24
1ccc: 20 e0 ldi r18, 0x00 ; 0
1cce: 30 e0 ldi r19, 0x00 ; 0
1cd0: 47 e0 ldi r20, 0x07 ; 7
for (i=0;i<8;i++)
{
if (feld[i] == 1)
1cd2: 81 91 ld r24, Z+
1cd4: 81 30 cpi r24, 0x01 ; 1
1cd6: 41 f4 brne .+16 ; 0x1ce8 <bindec+0x24>
result += 1<<i;
1cd8: cb 01 movw r24, r22
1cda: 02 2e mov r0, r18
1cdc: 02 c0 rjmp .+4 ; 0x1ce2 <bindec+0x1e>
1cde: 88 0f add r24, r24
1ce0: 99 1f adc r25, r25
1ce2: 0a 94 dec r0
1ce4: e2 f7 brpl .-8 ; 0x1cde <bindec+0x1a>
1ce6: 58 0f add r21, r24
1ce8: 41 50 subi r20, 0x01 ; 1
1cea: 2f 5f subi r18, 0xFF ; 255
1cec: 3f 4f sbci r19, 0xFF ; 255
1cee: 47 ff sbrs r20, 7
1cf0: f0 cf rjmp .-32 ; 0x1cd2 <bindec+0xe>
}
return result;
}
1cf2: 85 2f mov r24, r21
1cf4: 99 27 eor r25, r25
1cf6: 08 95 ret
 
00001cf8 <decimal>:
 
 
 
 
void decimal (uint8_t data, uint8_t *text) // wandelt Wert in rechtsbündigen Text um
{ // (schneller/kleiner als printf())
1cf8: 28 2f mov r18, r24
1cfa: fb 01 movw r30, r22
text[0] = data/100;
1cfc: 34 e6 ldi r19, 0x64 ; 100
1cfe: 63 2f mov r22, r19
1d00: 0e 94 16 13 call 0x262c <__udivmodqi4>
1d04: 58 2f mov r21, r24
data -= (text[0] * 100);
1d06: 83 9f mul r24, r19
1d08: c0 01 movw r24, r0
1d0a: 11 24 eor r1, r1
1d0c: 28 1b sub r18, r24
text[1] = data/10;
1d0e: 3a e0 ldi r19, 0x0A ; 10
1d10: 82 2f mov r24, r18
1d12: 63 2f mov r22, r19
1d14: 0e 94 16 13 call 0x262c <__udivmodqi4>
1d18: 48 2f mov r20, r24
data -= (text[1] *10);
1d1a: 83 9f mul r24, r19
1d1c: c0 01 movw r24, r0
1d1e: 11 24 eor r1, r1
1d20: 28 1b sub r18, r24
text[2] = data + 0x30;
1d22: 20 5d subi r18, 0xD0 ; 208
1d24: 22 83 std Z+2, r18 ; 0x02
text[0] += 0x30;
1d26: 85 2f mov r24, r21
1d28: 80 5d subi r24, 0xD0 ; 208
1d2a: 80 83 st Z, r24
text[1] += 0x30;
1d2c: 40 5d subi r20, 0xD0 ; 208
1d2e: 41 83 std Z+1, r20 ; 0x01
 
if (text[0] == 0x30)
1d30: 80 33 cpi r24, 0x30 ; 48
1d32: 29 f4 brne .+10 ; 0x1d3e <decimal+0x46>
{
text[0] = 0x20;
1d34: 80 e2 ldi r24, 0x20 ; 32
1d36: 80 83 st Z, r24
if (text[1] == 0x30)
1d38: 40 33 cpi r20, 0x30 ; 48
1d3a: 09 f4 brne .+2 ; 0x1d3e <decimal+0x46>
text[1] = 0x20;
1d3c: 81 83 std Z+1, r24 ; 0x01
}
text[3] = 0x00;
1d3e: 13 82 std Z+3, r1 ; 0x03
1d40: 08 95 ret
 
00001d42 <show_parameter>:
}
 
uint8_t show_parameter (uint8_t number) // Zeigt eine Parameter-Seite an und gibt die ausgewählte Zeile zurück
{
1d42: 9f 92 push r9
1d44: af 92 push r10
1d46: bf 92 push r11
1d48: cf 92 push r12
1d4a: df 92 push r13
1d4c: ef 92 push r14
1d4e: ff 92 push r15
1d50: 0f 93 push r16
1d52: 1f 93 push r17
1d54: cf 93 push r28
1d56: df 93 push r29
1d58: cd b7 in r28, 0x3d ; 61
1d5a: de b7 in r29, 0x3e ; 62
1d5c: a1 97 sbiw r28, 0x21 ; 33
1d5e: 0f b6 in r0, 0x3f ; 63
1d60: f8 94 cli
1d62: de bf out 0x3e, r29 ; 62
1d64: 0f be out 0x3f, r0 ; 63
1d66: cd bf out 0x3d, r28 ; 61
1d68: 08 2f mov r16, r24
uint8_t i;
uint8_t line;
uint8_t text[25];
uint8_t bin[8];
line = 0;
1d6a: 99 24 eor r9, r9
if (number > 1)
1d6c: 82 30 cpi r24, 0x02 ; 2
1d6e: 08 f4 brcc .+2 ; 0x1d72 <show_parameter+0x30>
1d70: 3e c0 rjmp .+124 ; 0x1dee <show_parameter+0xac>
{
for (i = 0; i<66; i++)
1d72: 19 2d mov r17, r9
1d74: 4b e5 ldi r20, 0x5B ; 91
1d76: a4 2e mov r10, r20
1d78: 46 e0 ldi r20, 0x06 ; 6
1d7a: b4 2e mov r11, r20
1d7c: 33 e6 ldi r19, 0x63 ; 99
1d7e: c3 2e mov r12, r19
1d80: 34 e0 ldi r19, 0x04 ; 4
1d82: d3 2e mov r13, r19
1d84: 2d e7 ldi r18, 0x7D ; 125
1d86: e2 2e mov r14, r18
1d88: 2a e0 ldi r18, 0x0A ; 10
1d8a: f2 2e mov r15, r18
{
if (pgm_read_byte(p_limits+i*3+2) == number)
1d8c: f7 01 movw r30, r14
1d8e: 84 91 lpm r24, Z
1d90: 80 17 cp r24, r16
1d92: f1 f4 brne .+60 ; 0x1dd0 <show_parameter+0x8e>
{
array[line] = i;
1d94: e9 2d mov r30, r9
1d96: ff 27 eor r31, r31
1d98: e1 58 subi r30, 0x81 ; 129
1d9a: fa 4f sbci r31, 0xFA ; 250
1d9c: 10 83 st Z, r17
decimal(p_buffer[i],text);
1d9e: be 01 movw r22, r28
1da0: 6f 5f subi r22, 0xFF ; 255
1da2: 7f 4f sbci r23, 0xFF ; 255
1da4: f6 01 movw r30, r12
1da6: 80 81 ld r24, Z
1da8: 0e 94 7c 0e call 0x1cf8 <decimal>
lcd_print_at(0,line,text,0);
1dac: 20 e0 ldi r18, 0x00 ; 0
1dae: ae 01 movw r20, r28
1db0: 4f 5f subi r20, 0xFF ; 255
1db2: 5f 4f sbci r21, 0xFF ; 255
1db4: 69 2d mov r22, r9
1db6: 82 2f mov r24, r18
1db8: 0e 94 1d 09 call 0x123a <lcd_print_at>
lcd_print_atp(5,line,parameter[i],0);
1dbc: 20 e0 ldi r18, 0x00 ; 0
1dbe: a5 01 movw r20, r10
1dc0: 69 2d mov r22, r9
1dc2: 85 e0 ldi r24, 0x05 ; 5
1dc4: 0e 94 e1 08 call 0x11c2 <lcd_print_atp>
if (line <= 7)
1dc8: f7 e0 ldi r31, 0x07 ; 7
1dca: f9 15 cp r31, r9
1dcc: 08 f0 brcs .+2 ; 0x1dd0 <show_parameter+0x8e>
line++;
1dce: 93 94 inc r9
1dd0: 1f 5f subi r17, 0xFF ; 255
1dd2: 83 e0 ldi r24, 0x03 ; 3
1dd4: 90 e0 ldi r25, 0x00 ; 0
1dd6: e8 0e add r14, r24
1dd8: f9 1e adc r15, r25
1dda: 08 94 sec
1ddc: c1 1c adc r12, r1
1dde: d1 1c adc r13, r1
1de0: e0 e1 ldi r30, 0x10 ; 16
1de2: f0 e0 ldi r31, 0x00 ; 0
1de4: ae 0e add r10, r30
1de6: bf 1e adc r11, r31
1de8: 12 34 cpi r17, 0x42 ; 66
1dea: 80 f2 brcs .-96 ; 0x1d8c <show_parameter+0x4a>
1dec: 5f c0 rjmp .+190 ; 0x1eac <show_parameter+0x16a>
}
}
}
else
{ // Sonderfälle: Binäre Eingabe
if (number == 1)
1dee: 81 30 cpi r24, 0x01 ; 1
1df0: 71 f5 brne .+92 ; 0x1e4e <show_parameter+0x10c>
{
binary(p_buffer[52],bin); // Loop-Config
1df2: be 01 movw r22, r28
1df4: 66 5e subi r22, 0xE6 ; 230
1df6: 7f 4f sbci r23, 0xFF ; 255
1df8: 80 91 97 04 lds r24, 0x0497
1dfc: 0e 94 47 0e call 0x1c8e <binary>
text[1] = 0x00;
1e00: 9a 82 std Y+2, r9 ; 0x02
for (i=0;i<4;i++)
1e02: 19 2d mov r17, r9
1e04: 9b eb ldi r25, 0xBB ; 187
1e06: c9 2e mov r12, r25
1e08: 99 e0 ldi r25, 0x09 ; 9
1e0a: d9 2e mov r13, r25
1e0c: ee 24 eor r14, r14
1e0e: ff 24 eor r15, r15
{
text[0] = bin[i] + 0x30;
1e10: ce 01 movw r24, r28
1e12: 01 96 adiw r24, 0x01 ; 1
1e14: f7 01 movw r30, r14
1e16: e8 0f add r30, r24
1e18: f9 1f adc r31, r25
1e1a: 21 8d ldd r18, Z+25 ; 0x19
1e1c: 20 5d subi r18, 0xD0 ; 208
1e1e: 29 83 std Y+1, r18 ; 0x01
lcd_print_at(0,i,text,0);
1e20: 20 e0 ldi r18, 0x00 ; 0
1e22: ac 01 movw r20, r24
1e24: 61 2f mov r22, r17
1e26: 82 2f mov r24, r18
1e28: 0e 94 1d 09 call 0x123a <lcd_print_at>
lcd_print_atp(5,i,bin_parameter[i],0);
1e2c: 20 e0 ldi r18, 0x00 ; 0
1e2e: a6 01 movw r20, r12
1e30: 61 2f mov r22, r17
1e32: 85 e0 ldi r24, 0x05 ; 5
1e34: 0e 94 e1 08 call 0x11c2 <lcd_print_atp>
1e38: 1f 5f subi r17, 0xFF ; 255
1e3a: 08 94 sec
1e3c: e1 1c adc r14, r1
1e3e: f1 1c adc r15, r1
1e40: 80 e1 ldi r24, 0x10 ; 16
1e42: 90 e0 ldi r25, 0x00 ; 0
1e44: c8 0e add r12, r24
1e46: d9 1e adc r13, r25
1e48: 14 30 cpi r17, 0x04 ; 4
1e4a: 10 f3 brcs .-60 ; 0x1e10 <show_parameter+0xce>
1e4c: 2f c0 rjmp .+94 ; 0x1eac <show_parameter+0x16a>
}
}
if (number == 0)
1e4e: 88 23 and r24, r24
1e50: 69 f5 brne .+90 ; 0x1eac <show_parameter+0x16a>
{
binary(p_buffer[8],bin); // Config
1e52: be 01 movw r22, r28
1e54: 66 5e subi r22, 0xE6 ; 230
1e56: 7f 4f sbci r23, 0xFF ; 255
1e58: 80 91 6b 04 lds r24, 0x046B
1e5c: 0e 94 47 0e call 0x1c8e <binary>
text[1] = 0x00;
1e60: 9a 82 std Y+2, r9 ; 0x02
for (i=0;i<8;i++)
1e62: 19 2d mov r17, r9
1e64: 8b ef ldi r24, 0xFB ; 251
1e66: c8 2e mov r12, r24
1e68: 89 e0 ldi r24, 0x09 ; 9
1e6a: d8 2e mov r13, r24
1e6c: ee 24 eor r14, r14
1e6e: ff 24 eor r15, r15
{
text[0] = bin[i] + 0x30;
1e70: ce 01 movw r24, r28
1e72: 01 96 adiw r24, 0x01 ; 1
1e74: f7 01 movw r30, r14
1e76: e8 0f add r30, r24
1e78: f9 1f adc r31, r25
1e7a: 21 8d ldd r18, Z+25 ; 0x19
1e7c: 20 5d subi r18, 0xD0 ; 208
1e7e: 29 83 std Y+1, r18 ; 0x01
lcd_print_at(0,i,text,0);
1e80: 20 e0 ldi r18, 0x00 ; 0
1e82: ac 01 movw r20, r24
1e84: 61 2f mov r22, r17
1e86: 82 2f mov r24, r18
1e88: 0e 94 1d 09 call 0x123a <lcd_print_at>
lcd_print_atp(5,i,bin_parameter[i+4],0);
1e8c: 20 e0 ldi r18, 0x00 ; 0
1e8e: a6 01 movw r20, r12
1e90: 61 2f mov r22, r17
1e92: 85 e0 ldi r24, 0x05 ; 5
1e94: 0e 94 e1 08 call 0x11c2 <lcd_print_atp>
1e98: 1f 5f subi r17, 0xFF ; 255
1e9a: 08 94 sec
1e9c: e1 1c adc r14, r1
1e9e: f1 1c adc r15, r1
1ea0: e0 e1 ldi r30, 0x10 ; 16
1ea2: f0 e0 ldi r31, 0x00 ; 0
1ea4: ce 0e add r12, r30
1ea6: df 1e adc r13, r31
1ea8: 18 30 cpi r17, 0x08 ; 8
1eaa: 10 f3 brcs .-60 ; 0x1e70 <show_parameter+0x12e>
}
}
 
}
return line;
}
1eac: 89 2d mov r24, r9
1eae: 99 27 eor r25, r25
1eb0: a1 96 adiw r28, 0x21 ; 33
1eb2: 0f b6 in r0, 0x3f ; 63
1eb4: f8 94 cli
1eb6: de bf out 0x3e, r29 ; 62
1eb8: 0f be out 0x3f, r0 ; 63
1eba: cd bf out 0x3d, r28 ; 61
1ebc: df 91 pop r29
1ebe: cf 91 pop r28
1ec0: 1f 91 pop r17
1ec2: 0f 91 pop r16
1ec4: ff 90 pop r15
1ec6: ef 90 pop r14
1ec8: df 90 pop r13
1eca: cf 90 pop r12
1ecc: bf 90 pop r11
1ece: af 90 pop r10
1ed0: 9f 90 pop r9
1ed2: 08 95 ret
 
00001ed4 <edit_parameter2>:
 
void edit_parameter2 (uint8_t page, uint8_t lines) // Ändern der Parameter einer Seite
{
1ed4: 8f 92 push r8
1ed6: 9f 92 push r9
1ed8: af 92 push r10
1eda: bf 92 push r11
1edc: df 92 push r13
1ede: ef 92 push r14
1ee0: ff 92 push r15
1ee2: 0f 93 push r16
1ee4: 1f 93 push r17
1ee6: cf 93 push r28
1ee8: df 93 push r29
1eea: cd b7 in r28, 0x3d ; 61
1eec: de b7 in r29, 0x3e ; 62
1eee: 62 97 sbiw r28, 0x12 ; 18
1ef0: 0f b6 in r0, 0x3f ; 63
1ef2: f8 94 cli
1ef4: de bf out 0x3e, r29 ; 62
1ef6: 0f be out 0x3f, r0 ; 63
1ef8: cd bf out 0x3d, r28 ; 61
1efa: d8 2e mov r13, r24
uint8_t line;
uint8_t par;
uint8_t min;
uint8_t max;
uint8_t text[10];
uint8_t bin[8];
if (page > 1) // "normale" Parameter-Seiten
1efc: 81 e0 ldi r24, 0x01 ; 1
1efe: 8d 15 cp r24, r13
1f00: 08 f0 brcs .+2 ; 0x1f04 <edit_parameter2+0x30>
1f02: 55 c0 rjmp .+170 ; 0x1fae <edit_parameter2+0xda>
{
line = menu_choose(0,lines-1,4);
1f04: 61 50 subi r22, 0x01 ; 1
1f06: 44 e0 ldi r20, 0x04 ; 4
1f08: 80 e0 ldi r24, 0x00 ; 0
1f0a: 0e 94 86 11 call 0x230c <menu_choose>
1f0e: 08 2f mov r16, r24
if (line != 255) // Wenn line == 255, wurde Escape gedrückt
1f10: 8f 3f cpi r24, 0xFF ; 255
1f12: 09 f4 brne .+2 ; 0x1f16 <edit_parameter2+0x42>
1f14: 4c c0 rjmp .+152 ; 0x1fae <edit_parameter2+0xda>
{
par = p_buffer[array[line]];
1f16: e8 2e mov r14, r24
1f18: ff 24 eor r15, r15
1f1a: f7 01 movw r30, r14
1f1c: e1 58 subi r30, 0x81 ; 129
1f1e: fa 4f sbci r31, 0xFA ; 250
1f20: 80 81 ld r24, Z
1f22: e8 2f mov r30, r24
1f24: ff 27 eor r31, r31
1f26: ed 59 subi r30, 0x9D ; 157
1f28: fb 4f sbci r31, 0xFB ; 251
1f2a: 10 81 ld r17, Z
min = pgm_read_byte(p_limits + par * 3);
max = pgm_read_byte(p_limits + par * 3 + 1);
lcd_print_atp(4,line,PSTR("-"),0);
1f2c: 20 e0 ldi r18, 0x00 ; 0
1f2e: 49 e0 ldi r20, 0x09 ; 9
1f30: 5c e0 ldi r21, 0x0C ; 12
1f32: 60 2f mov r22, r16
1f34: 84 e0 ldi r24, 0x04 ; 4
1f36: 0e 94 e1 08 call 0x11c2 <lcd_print_atp>
while (key != key_nokey);
1f3a: 80 91 e6 04 lds r24, 0x04E6
1f3e: 88 23 and r24, r24
1f40: e1 f7 brne .-8 ; 0x1f3a <edit_parameter2+0x66>
do
{
if (key == key_minus)
1f42: 80 91 e6 04 lds r24, 0x04E6
1f46: 81 30 cpi r24, 0x01 ; 1
1f48: 09 f4 brne .+2 ; 0x1f4c <edit_parameter2+0x78>
{
//if (par > min) // Überprüfung der Parameter auf Bereichsüberschreitung derzeit deaktiviert
par --;
1f4a: 11 50 subi r17, 0x01 ; 1
}
if (key == key_plus)
1f4c: 80 91 e6 04 lds r24, 0x04E6
1f50: 82 30 cpi r24, 0x02 ; 2
1f52: 09 f4 brne .+2 ; 0x1f56 <edit_parameter2+0x82>
{
//if (par < max)
par ++;
1f54: 1f 5f subi r17, 0xFF ; 255
}
decimal(par,text);
1f56: be 01 movw r22, r28
1f58: 6f 5f subi r22, 0xFF ; 255
1f5a: 7f 4f sbci r23, 0xFF ; 255
1f5c: 81 2f mov r24, r17
1f5e: 0e 94 7c 0e call 0x1cf8 <decimal>
lcd_print_at(0,line,text,0);
1f62: 20 e0 ldi r18, 0x00 ; 0
1f64: ae 01 movw r20, r28
1f66: 4f 5f subi r20, 0xFF ; 255
1f68: 5f 4f sbci r21, 0xFF ; 255
1f6a: 60 2f mov r22, r16
1f6c: 82 2f mov r24, r18
1f6e: 0e 94 1d 09 call 0x123a <lcd_print_at>
timer = 20;
1f72: 84 e1 ldi r24, 0x14 ; 20
1f74: 80 93 61 00 sts 0x0061, r24
while (timer > 0);
1f78: 80 91 61 00 lds r24, 0x0061
1f7c: 88 23 and r24, r24
1f7e: e1 f7 brne .-8 ; 0x1f78 <edit_parameter2+0xa4>
}
1f80: 80 91 e6 04 lds r24, 0x04E6
1f84: 84 30 cpi r24, 0x04 ; 4
1f86: 21 f0 breq .+8 ; 0x1f90 <edit_parameter2+0xbc>
1f88: 80 91 e6 04 lds r24, 0x04E6
1f8c: 88 30 cpi r24, 0x08 ; 8
1f8e: c9 f6 brne .-78 ; 0x1f42 <edit_parameter2+0x6e>
while ((key != 0x04) && (key != 0x08));
if (key == 0x08)
1f90: 80 91 e6 04 lds r24, 0x04E6
1f94: 88 30 cpi r24, 0x08 ; 8
1f96: 59 f4 brne .+22 ; 0x1fae <edit_parameter2+0xda>
p_buffer[array[line]] = par;
1f98: ef e7 ldi r30, 0x7F ; 127
1f9a: f5 e0 ldi r31, 0x05 ; 5
1f9c: ee 0e add r14, r30
1f9e: ff 1e adc r15, r31
1fa0: f7 01 movw r30, r14
1fa2: 80 81 ld r24, Z
1fa4: e8 2f mov r30, r24
1fa6: ff 27 eor r31, r31
1fa8: ed 59 subi r30, 0x9D ; 157
1faa: fb 4f sbci r31, 0xFB ; 251
1fac: 10 83 st Z, r17
}
}
if (page == 1) // Spezialfall: Loop-Config (einzelne Bits setzen / löschen)
1fae: f1 e0 ldi r31, 0x01 ; 1
1fb0: df 16 cp r13, r31
1fb2: 09 f0 breq .+2 ; 0x1fb6 <edit_parameter2+0xe2>
1fb4: 6c c0 rjmp .+216 ; 0x208e <edit_parameter2+0x1ba>
{
binary(p_buffer[52],bin);
1fb6: 6b e0 ldi r22, 0x0B ; 11
1fb8: 86 2e mov r8, r22
1fba: 91 2c mov r9, r1
1fbc: 8c 0e add r8, r28
1fbe: 9d 1e adc r9, r29
1fc0: b4 01 movw r22, r8
1fc2: 80 91 97 04 lds r24, 0x0497
1fc6: 0e 94 47 0e call 0x1c8e <binary>
text[1] = 0x00;
1fca: 1a 82 std Y+2, r1 ; 0x02
 
line = menu_choose(0,3,4);
1fcc: 44 e0 ldi r20, 0x04 ; 4
1fce: 63 e0 ldi r22, 0x03 ; 3
1fd0: 8a 81 ldd r24, Y+2 ; 0x02
1fd2: 0e 94 86 11 call 0x230c <menu_choose>
1fd6: 08 2f mov r16, r24
if (line != 255) // Wenn line == 255, wurde Escape gedrückt
1fd8: 8f 3f cpi r24, 0xFF ; 255
1fda: 09 f4 brne .+2 ; 0x1fde <edit_parameter2+0x10a>
1fdc: c6 c0 rjmp .+396 ; 0x216a <edit_parameter2+0x296>
{
par = bin[line];
1fde: e8 2e mov r14, r24
1fe0: ff 24 eor r15, r15
1fe2: 5e 01 movw r10, r28
1fe4: 08 94 sec
1fe6: a1 1c adc r10, r1
1fe8: b1 1c adc r11, r1
1fea: f7 01 movw r30, r14
1fec: ea 0d add r30, r10
1fee: fb 1d adc r31, r11
1ff0: 12 85 ldd r17, Z+10 ; 0x0a
lcd_print_atp(4,line,PSTR("-"),0);
1ff2: 20 e0 ldi r18, 0x00 ; 0
1ff4: 4b e0 ldi r20, 0x0B ; 11
1ff6: 5c e0 ldi r21, 0x0C ; 12
1ff8: 68 2f mov r22, r24
1ffa: 84 e0 ldi r24, 0x04 ; 4
1ffc: 0e 94 e1 08 call 0x11c2 <lcd_print_atp>
do
{
if (key == key_minus)
2000: 80 91 e6 04 lds r24, 0x04E6
2004: 81 30 cpi r24, 0x01 ; 1
2006: 09 f4 brne .+2 ; 0x200a <edit_parameter2+0x136>
{
par = 0x00;
2008: 10 e0 ldi r17, 0x00 ; 0
}
if (key == key_plus)
200a: 80 91 e6 04 lds r24, 0x04E6
200e: 82 30 cpi r24, 0x02 ; 2
2010: 09 f4 brne .+2 ; 0x2014 <edit_parameter2+0x140>
{
par = 0x01;
2012: 11 e0 ldi r17, 0x01 ; 1
}
text[0] = par+0x30;
2014: 10 5d subi r17, 0xD0 ; 208
2016: 19 83 std Y+1, r17 ; 0x01
2018: 10 53 subi r17, 0x30 ; 48
lcd_print_at(0,line,text,0);
201a: 20 e0 ldi r18, 0x00 ; 0
201c: ae 01 movw r20, r28
201e: 4f 5f subi r20, 0xFF ; 255
2020: 5f 4f sbci r21, 0xFF ; 255
2022: 60 2f mov r22, r16
2024: 82 2f mov r24, r18
2026: 0e 94 1d 09 call 0x123a <lcd_print_at>
timer = 20;
202a: 84 e1 ldi r24, 0x14 ; 20
202c: 80 93 61 00 sts 0x0061, r24
while (timer > 0);
2030: d0 90 61 00 lds r13, 0x0061
2034: dd 20 and r13, r13
2036: e1 f7 brne .-8 ; 0x2030 <edit_parameter2+0x15c>
}
2038: 80 91 e6 04 lds r24, 0x04E6
203c: 88 30 cpi r24, 0x08 ; 8
203e: 21 f0 breq .+8 ; 0x2048 <edit_parameter2+0x174>
2040: 80 91 e6 04 lds r24, 0x04E6
2044: 84 30 cpi r24, 0x04 ; 4
2046: e1 f6 brne .-72 ; 0x2000 <edit_parameter2+0x12c>
while ((key != key_enter) && (key != key_esc));
if (key == key_enter)
2048: 80 91 e6 04 lds r24, 0x04E6
204c: 88 30 cpi r24, 0x08 ; 8
204e: 49 f4 brne .+18 ; 0x2062 <edit_parameter2+0x18e>
{
bin[line] = par;
2050: ea 0c add r14, r10
2052: fb 1c adc r15, r11
2054: f7 01 movw r30, r14
2056: 12 87 std Z+10, r17 ; 0x0a
p_buffer[52] = bindec(bin);
2058: c4 01 movw r24, r8
205a: 0e 94 62 0e call 0x1cc4 <bindec>
205e: 80 93 97 04 sts 0x0497, r24
}
lcd_cls();
2062: 0e 94 36 07 call 0xe6c <lcd_cls>
decimal(p_buffer[52],text);
2066: be 01 movw r22, r28
2068: 6f 5f subi r22, 0xFF ; 255
206a: 7f 4f sbci r23, 0xFF ; 255
206c: 80 91 97 04 lds r24, 0x0497
2070: 0e 94 7c 0e call 0x1cf8 <decimal>
lcd_print(text,0);
2074: 6d 2d mov r22, r13
2076: ce 01 movw r24, r28
2078: 01 96 adiw r24, 0x01 ; 1
207a: 0e 94 ea 08 call 0x11d4 <lcd_print>
timer = 200;
207e: 88 ec ldi r24, 0xC8 ; 200
2080: 80 93 61 00 sts 0x0061, r24
while(timer > 0);
2084: 80 91 61 00 lds r24, 0x0061
2088: 88 23 and r24, r24
208a: e1 f7 brne .-8 ; 0x2084 <edit_parameter2+0x1b0>
208c: 6e c0 rjmp .+220 ; 0x216a <edit_parameter2+0x296>
}
}
if (page == 0) // Spezialfall: Allgemeine Konfiguration (einzelne Bits setzen/löschen)
208e: dd 20 and r13, r13
2090: 09 f0 breq .+2 ; 0x2094 <edit_parameter2+0x1c0>
2092: 6b c0 rjmp .+214 ; 0x216a <edit_parameter2+0x296>
{
binary(p_buffer[8],bin);
2094: 5b e0 ldi r21, 0x0B ; 11
2096: 85 2e mov r8, r21
2098: 91 2c mov r9, r1
209a: 8c 0e add r8, r28
209c: 9d 1e adc r9, r29
209e: b4 01 movw r22, r8
20a0: 80 91 6b 04 lds r24, 0x046B
20a4: 0e 94 47 0e call 0x1c8e <binary>
text[1] = 0x00;
20a8: da 82 std Y+2, r13 ; 0x02
 
line = menu_choose(0,7,4);
20aa: 44 e0 ldi r20, 0x04 ; 4
20ac: 67 e0 ldi r22, 0x07 ; 7
20ae: 8d 2d mov r24, r13
20b0: 0e 94 86 11 call 0x230c <menu_choose>
20b4: 08 2f mov r16, r24
if (line != 255) // Wenn line == 255, wurde Escape gedrückt
20b6: 8f 3f cpi r24, 0xFF ; 255
20b8: 09 f4 brne .+2 ; 0x20bc <edit_parameter2+0x1e8>
20ba: 57 c0 rjmp .+174 ; 0x216a <edit_parameter2+0x296>
{
par = bin[line];
20bc: e8 2e mov r14, r24
20be: ff 24 eor r15, r15
20c0: 5e 01 movw r10, r28
20c2: 08 94 sec
20c4: a1 1c adc r10, r1
20c6: b1 1c adc r11, r1
20c8: f7 01 movw r30, r14
20ca: ea 0d add r30, r10
20cc: fb 1d adc r31, r11
20ce: 12 85 ldd r17, Z+10 ; 0x0a
lcd_print_atp(4,line,PSTR("-"),0);
20d0: 2d 2d mov r18, r13
20d2: 4d e0 ldi r20, 0x0D ; 13
20d4: 5c e0 ldi r21, 0x0C ; 12
20d6: 68 2f mov r22, r24
20d8: 84 e0 ldi r24, 0x04 ; 4
20da: 0e 94 e1 08 call 0x11c2 <lcd_print_atp>
do
{
if (key == key_minus)
20de: 80 91 e6 04 lds r24, 0x04E6
20e2: 81 30 cpi r24, 0x01 ; 1
20e4: 09 f4 brne .+2 ; 0x20e8 <edit_parameter2+0x214>
{
par = 0x00;
20e6: 10 e0 ldi r17, 0x00 ; 0
}
if (key == key_plus)
20e8: 80 91 e6 04 lds r24, 0x04E6
20ec: 82 30 cpi r24, 0x02 ; 2
20ee: 09 f4 brne .+2 ; 0x20f2 <edit_parameter2+0x21e>
{
par = 0x01;
20f0: 11 e0 ldi r17, 0x01 ; 1
}
text[0] = par+0x30;
20f2: 10 5d subi r17, 0xD0 ; 208
20f4: 19 83 std Y+1, r17 ; 0x01
20f6: 10 53 subi r17, 0x30 ; 48
lcd_print_at(0,line,text,0);
20f8: 20 e0 ldi r18, 0x00 ; 0
20fa: ae 01 movw r20, r28
20fc: 4f 5f subi r20, 0xFF ; 255
20fe: 5f 4f sbci r21, 0xFF ; 255
2100: 60 2f mov r22, r16
2102: 82 2f mov r24, r18
2104: 0e 94 1d 09 call 0x123a <lcd_print_at>
timer = 20;
2108: 84 e1 ldi r24, 0x14 ; 20
210a: 80 93 61 00 sts 0x0061, r24
while (timer > 0);
210e: d0 90 61 00 lds r13, 0x0061
2112: dd 20 and r13, r13
2114: e1 f7 brne .-8 ; 0x210e <edit_parameter2+0x23a>
}
2116: 80 91 e6 04 lds r24, 0x04E6
211a: 88 30 cpi r24, 0x08 ; 8
211c: 21 f0 breq .+8 ; 0x2126 <edit_parameter2+0x252>
211e: 80 91 e6 04 lds r24, 0x04E6
2122: 84 30 cpi r24, 0x04 ; 4
2124: e1 f6 brne .-72 ; 0x20de <edit_parameter2+0x20a>
while ((key != key_enter) && (key != key_esc));
if (key == key_enter)
2126: 80 91 e6 04 lds r24, 0x04E6
212a: 88 30 cpi r24, 0x08 ; 8
212c: 49 f4 brne .+18 ; 0x2140 <edit_parameter2+0x26c>
{
bin[line] = par;
212e: ea 0c add r14, r10
2130: fb 1c adc r15, r11
2132: f7 01 movw r30, r14
2134: 12 87 std Z+10, r17 ; 0x0a
p_buffer[8] = bindec(bin);
2136: c4 01 movw r24, r8
2138: 0e 94 62 0e call 0x1cc4 <bindec>
213c: 80 93 6b 04 sts 0x046B, r24
}
lcd_cls();
2140: 0e 94 36 07 call 0xe6c <lcd_cls>
decimal(p_buffer[8],text);
2144: be 01 movw r22, r28
2146: 6f 5f subi r22, 0xFF ; 255
2148: 7f 4f sbci r23, 0xFF ; 255
214a: 80 91 6b 04 lds r24, 0x046B
214e: 0e 94 7c 0e call 0x1cf8 <decimal>
lcd_print(text,0);
2152: 6d 2d mov r22, r13
2154: ce 01 movw r24, r28
2156: 01 96 adiw r24, 0x01 ; 1
2158: 0e 94 ea 08 call 0x11d4 <lcd_print>
timer = 200;
215c: 88 ec ldi r24, 0xC8 ; 200
215e: 80 93 61 00 sts 0x0061, r24
while(timer > 0);
2162: 80 91 61 00 lds r24, 0x0061
2166: 88 23 and r24, r24
2168: e1 f7 brne .-8 ; 0x2162 <edit_parameter2+0x28e>
216a: 62 96 adiw r28, 0x12 ; 18
216c: 0f b6 in r0, 0x3f ; 63
216e: f8 94 cli
2170: de bf out 0x3e, r29 ; 62
2172: 0f be out 0x3f, r0 ; 63
2174: cd bf out 0x3d, r28 ; 61
2176: df 91 pop r29
2178: cf 91 pop r28
217a: 1f 91 pop r17
217c: 0f 91 pop r16
217e: ff 90 pop r15
2180: ef 90 pop r14
2182: df 90 pop r13
2184: bf 90 pop r11
2186: af 90 pop r10
2188: 9f 90 pop r9
218a: 8f 90 pop r8
218c: 08 95 ret
 
0000218e <edit_parameter>:
}
}
}
 
 
void edit_parameter (void) // Blättert die Parameter seitenweise durch, Einsprung vom Hauptmenü
{
218e: 1f 93 push r17
2190: cf 93 push r28
2192: df 93 push r29
2194: cd b7 in r28, 0x3d ; 61
2196: de b7 in r29, 0x3e ; 62
2198: 2f 97 sbiw r28, 0x0f ; 15
219a: 0f b6 in r0, 0x3f ; 63
219c: f8 94 cli
219e: de bf out 0x3e, r29 ; 62
21a0: 0f be out 0x3f, r0 ; 63
21a2: cd bf out 0x3d, r28 ; 61
uint8_t page; // 12 Pages
uint8_t text[15];
uint8_t lines;
uint8_t parameter;
lcd_cls();
21a4: 0e 94 36 07 call 0xe6c <lcd_cls>
lcd_printp(PSTR("Lade Parameter\r\n"),0);
21a8: 60 e0 ldi r22, 0x00 ; 0
21aa: 8f e0 ldi r24, 0x0F ; 15
21ac: 9c e0 ldi r25, 0x0C ; 12
21ae: 0e 94 aa 08 call 0x1154 <lcd_printp>
lcd_printp(PSTR(" 1:\r\n"),0);
21b2: 60 e0 ldi r22, 0x00 ; 0
21b4: 80 e2 ldi r24, 0x20 ; 32
21b6: 9c e0 ldi r25, 0x0C ; 12
21b8: 0e 94 aa 08 call 0x1154 <lcd_printp>
lcd_printp(PSTR(" 2:\r\n"),0);
21bc: 60 e0 ldi r22, 0x00 ; 0
21be: 86 e2 ldi r24, 0x26 ; 38
21c0: 9c e0 ldi r25, 0x0C ; 12
21c2: 0e 94 aa 08 call 0x1154 <lcd_printp>
lcd_printp(PSTR(" 3:\r\n"),0);
21c6: 60 e0 ldi r22, 0x00 ; 0
21c8: 8c e2 ldi r24, 0x2C ; 44
21ca: 9c e0 ldi r25, 0x0C ; 12
21cc: 0e 94 aa 08 call 0x1154 <lcd_printp>
lcd_printp(PSTR(" 4:\r\n"),0);
21d0: 60 e0 ldi r22, 0x00 ; 0
21d2: 82 e3 ldi r24, 0x32 ; 50
21d4: 9c e0 ldi r25, 0x0C ; 12
21d6: 0e 94 aa 08 call 0x1154 <lcd_printp>
lcd_printp(PSTR(" 5:\r\n"),0);
21da: 60 e0 ldi r22, 0x00 ; 0
21dc: 88 e3 ldi r24, 0x38 ; 56
21de: 9c e0 ldi r25, 0x0C ; 12
21e0: 0e 94 aa 08 call 0x1154 <lcd_printp>
parameter = menu_choose(1,5,0);
21e4: 40 e0 ldi r20, 0x00 ; 0
21e6: 65 e0 ldi r22, 0x05 ; 5
21e8: 81 e0 ldi r24, 0x01 ; 1
21ea: 0e 94 86 11 call 0x230c <menu_choose>
 
page = 2;
21ee: 12 e0 ldi r17, 0x02 ; 2
if (read_parameter(parameter) == 1)
21f0: 0e 94 02 0e call 0x1c04 <read_parameter>
21f4: 81 30 cpi r24, 0x01 ; 1
21f6: 41 f4 brne .+16 ; 0x2208 <edit_parameter+0x7a>
{
lcd_print_atp(0,6,PSTR("Timeout"),0);
21f8: 20 e0 ldi r18, 0x00 ; 0
21fa: 4e e3 ldi r20, 0x3E ; 62
21fc: 5c e0 ldi r21, 0x0C ; 12
21fe: 66 e0 ldi r22, 0x06 ; 6
2200: 82 2f mov r24, r18
2202: 0e 94 e1 08 call 0x11c2 <lcd_print_atp>
2206: 5c c0 rjmp .+184 ; 0x22c0 <edit_parameter+0x132>
}
else
{
do
{
lcd_cls();
2208: 0e 94 36 07 call 0xe6c <lcd_cls>
utoa(page,text,10);
220c: 4a e0 ldi r20, 0x0A ; 10
220e: 50 e0 ldi r21, 0x00 ; 0
2210: be 01 movw r22, r28
2212: 6f 5f subi r22, 0xFF ; 255
2214: 7f 4f sbci r23, 0xFF ; 255
2216: 81 2f mov r24, r17
2218: 99 27 eor r25, r25
221a: 0e 94 f0 12 call 0x25e0 <utoa>
lcd_print(text,0);
221e: 60 e0 ldi r22, 0x00 ; 0
2220: ce 01 movw r24, r28
2222: 01 96 adiw r24, 0x01 ; 1
2224: 0e 94 ea 08 call 0x11d4 <lcd_print>
timer = 50;
2228: 82 e3 ldi r24, 0x32 ; 50
222a: 80 93 61 00 sts 0x0061, r24
while (timer > 0);
222e: 80 91 61 00 lds r24, 0x0061
2232: 88 23 and r24, r24
2234: e1 f7 brne .-8 ; 0x222e <edit_parameter+0xa0>
lcd_cls();
2236: 0e 94 36 07 call 0xe6c <lcd_cls>
lines = show_parameter(page);
223a: 81 2f mov r24, r17
223c: 0e 94 a1 0e call 0x1d42 <show_parameter>
2240: 68 2f mov r22, r24
while (key == key_nokey);
2242: 80 91 e6 04 lds r24, 0x04E6
2246: 88 23 and r24, r24
2248: e1 f3 breq .-8 ; 0x2242 <edit_parameter+0xb4>
if (key == key_plus)
224a: 80 91 e6 04 lds r24, 0x04E6
224e: 82 30 cpi r24, 0x02 ; 2
2250: 09 f4 brne .+2 ; 0x2254 <edit_parameter+0xc6>
page++;
2252: 1f 5f subi r17, 0xFF ; 255
if (key == key_minus)
2254: 80 91 e6 04 lds r24, 0x04E6
2258: 81 30 cpi r24, 0x01 ; 1
225a: 09 f4 brne .+2 ; 0x225e <edit_parameter+0xd0>
page--;
225c: 11 50 subi r17, 0x01 ; 1
if (page == 255)
225e: 1f 3f cpi r17, 0xFF ; 255
2260: 11 f4 brne .+4 ; 0x2266 <edit_parameter+0xd8>
page = 12;
2262: 1c e0 ldi r17, 0x0C ; 12
2264: 03 c0 rjmp .+6 ; 0x226c <edit_parameter+0xde>
if (page > 12)
2266: 1d 30 cpi r17, 0x0D ; 13
2268: 08 f0 brcs .+2 ; 0x226c <edit_parameter+0xde>
page = 0;
226a: 10 e0 ldi r17, 0x00 ; 0
if (key == key_enter)
226c: 80 91 e6 04 lds r24, 0x04E6
2270: 88 30 cpi r24, 0x08 ; 8
2272: 19 f4 brne .+6 ; 0x227a <edit_parameter+0xec>
edit_parameter2(page,lines);
2274: 81 2f mov r24, r17
2276: 0e 94 6a 0f call 0x1ed4 <edit_parameter2>
}
227a: 80 91 e6 04 lds r24, 0x04E6
227e: 84 30 cpi r24, 0x04 ; 4
2280: 19 f6 brne .-122 ; 0x2208 <edit_parameter+0x7a>
while (key != key_esc);
lcd_cls();
2282: 0e 94 36 07 call 0xe6c <lcd_cls>
lcd_printp(PSTR("Parameter speichern?\r\n ja\r\n nein"),0);
2286: 60 e0 ldi r22, 0x00 ; 0
2288: 86 e4 ldi r24, 0x46 ; 70
228a: 9c e0 ldi r25, 0x0C ; 12
228c: 0e 94 aa 08 call 0x1154 <lcd_printp>
lines = menu_choose(1,2,0);
2290: 40 e0 ldi r20, 0x00 ; 0
2292: 62 e0 ldi r22, 0x02 ; 2
2294: 81 e0 ldi r24, 0x01 ; 1
2296: 0e 94 86 11 call 0x230c <menu_choose>
if (lines == 1 )
229a: 81 30 cpi r24, 0x01 ; 1
229c: 61 f4 brne .+24 ; 0x22b6 <edit_parameter+0x128>
{
lcd_printp(PSTR("\r\n--->"),0);
229e: 60 e0 ldi r22, 0x00 ; 0
22a0: 89 e6 ldi r24, 0x69 ; 105
22a2: 9c e0 ldi r25, 0x0C ; 12
22a4: 0e 94 aa 08 call 0x1154 <lcd_printp>
write_parameter(5); // Sicherheitshalber wird derzeit ausschließlich auf Parametersatz 5 gesichert.
22a8: 85 e0 ldi r24, 0x05 ; 5
22aa: 0e 94 2c 0e call 0x1c58 <write_parameter>
lcd_printp(PSTR("\r\nParameter gespeichert"),0);
22ae: 60 e0 ldi r22, 0x00 ; 0
22b0: 80 e7 ldi r24, 0x70 ; 112
22b2: 9c e0 ldi r25, 0x0C ; 12
22b4: 03 c0 rjmp .+6 ; 0x22bc <edit_parameter+0x12e>
}
else
{
lcd_printp(PSTR("\r\nNicht gespeichert"),0);
22b6: 60 e0 ldi r22, 0x00 ; 0
22b8: 88 e8 ldi r24, 0x88 ; 136
22ba: 9c e0 ldi r25, 0x0C ; 12
22bc: 0e 94 aa 08 call 0x1154 <lcd_printp>
}
}
timer = 100;
22c0: 84 e6 ldi r24, 0x64 ; 100
22c2: 80 93 61 00 sts 0x0061, r24
while(timer > 0);
22c6: 80 91 61 00 lds r24, 0x0061
22ca: 88 23 and r24, r24
22cc: e1 f7 brne .-8 ; 0x22c6 <edit_parameter+0x138>
22ce: 2f 96 adiw r28, 0x0f ; 15
22d0: 0f b6 in r0, 0x3f ; 63
22d2: f8 94 cli
22d4: de bf out 0x3e, r29 ; 62
22d6: 0f be out 0x3f, r0 ; 63
22d8: cd bf out 0x3d, r28 ; 61
22da: df 91 pop r29
22dc: cf 91 pop r28
22de: 1f 91 pop r17
22e0: 08 95 ret
 
000022e2 <menu_set_cursor>:
 
// Subroutine für den Stern (*) bzw. Cursor
 
void menu_set_cursor (uint8_t before, uint8_t line, uint8_t pos)
{
22e2: 0f 93 push r16
22e4: 1f 93 push r17
22e6: 06 2f mov r16, r22
22e8: 14 2f mov r17, r20
lcd_print_atp(pos,before,PSTR(" "),0); // Die vorhergehende Position löschen
22ea: 20 e0 ldi r18, 0x00 ; 0
22ec: 4c e9 ldi r20, 0x9C ; 156
22ee: 5c e0 ldi r21, 0x0C ; 12
22f0: 68 2f mov r22, r24
22f2: 81 2f mov r24, r17
22f4: 0e 94 e1 08 call 0x11c2 <lcd_print_atp>
lcd_print_atp(pos,line,PSTR("*"),0); // Den Cursor an der aktuellen Position anzeigen
22f8: 20 e0 ldi r18, 0x00 ; 0
22fa: 4e e9 ldi r20, 0x9E ; 158
22fc: 5c e0 ldi r21, 0x0C ; 12
22fe: 60 2f mov r22, r16
2300: 81 2f mov r24, r17
2302: 0e 94 e1 08 call 0x11c2 <lcd_print_atp>
2306: 1f 91 pop r17
2308: 0f 91 pop r16
230a: 08 95 ret
 
0000230c <menu_choose>:
}
 
 
// Zeigt einen Stern (*) an der x-Position <pos> an, y-Position von min bis max.
// Mit der +/- Taste kann ein Menü-Punkt ausgewählt und mit (Enter) bestätigt werden.
// Die Zeilennummer des aktuellen Menüpunkts wird zurückgegeben.
 
uint8_t menu_choose (uint8_t min, uint8_t max, uint8_t pos)
{
230c: ef 92 push r14
230e: ff 92 push r15
2310: 0f 93 push r16
2312: 1f 93 push r17
2314: cf 93 push r28
2316: f8 2e mov r15, r24
2318: e6 2e mov r14, r22
231a: 04 2f mov r16, r20
uint8_t line, before;
line = min;
231c: c8 2f mov r28, r24
before = min;
231e: 18 2f mov r17, r24
menu_set_cursor(line,line,pos);
2320: 68 2f mov r22, r24
2322: 0e 94 71 11 call 0x22e2 <menu_set_cursor>
do
{
while (key != key_nokey);
2326: 80 91 e6 04 lds r24, 0x04E6
232a: 88 23 and r24, r24
232c: e1 f7 brne .-8 ; 0x2326 <menu_choose+0x1a>
while(key == key_nokey);
232e: 80 91 e6 04 lds r24, 0x04E6
2332: 88 23 and r24, r24
2334: e1 f3 breq .-8 ; 0x232e <menu_choose+0x22>
if ((key == key_plus) && (line < max))
2336: 80 91 e6 04 lds r24, 0x04E6
233a: 82 30 cpi r24, 0x02 ; 2
233c: 19 f4 brne .+6 ; 0x2344 <menu_choose+0x38>
233e: ce 15 cp r28, r14
2340: 08 f4 brcc .+2 ; 0x2344 <menu_choose+0x38>
line ++;
2342: cf 5f subi r28, 0xFF ; 255
if ((key == key_minus) && (line > min))
2344: 80 91 e6 04 lds r24, 0x04E6
2348: 81 30 cpi r24, 0x01 ; 1
234a: 19 f4 brne .+6 ; 0x2352 <menu_choose+0x46>
234c: fc 16 cp r15, r28
234e: 08 f4 brcc .+2 ; 0x2352 <menu_choose+0x46>
line --;
2350: c1 50 subi r28, 0x01 ; 1
 
menu_set_cursor(before,line,pos);
2352: 40 2f mov r20, r16
2354: 6c 2f mov r22, r28
2356: 81 2f mov r24, r17
2358: 0e 94 71 11 call 0x22e2 <menu_set_cursor>
before = line;
235c: 1c 2f mov r17, r28
}
235e: 80 91 e6 04 lds r24, 0x04E6
2362: 88 30 cpi r24, 0x08 ; 8
2364: 21 f0 breq .+8 ; 0x236e <menu_choose+0x62>
2366: 80 91 e6 04 lds r24, 0x04E6
236a: 84 30 cpi r24, 0x04 ; 4
236c: e1 f6 brne .-72 ; 0x2326 <menu_choose+0x1a>
while ((key != key_enter) && (key != key_esc)); // Schleife wiederholen, bis (Enter) / Esc gedrückt wurde
if (key == key_esc)
236e: 80 91 e6 04 lds r24, 0x04E6
2372: 84 30 cpi r24, 0x04 ; 4
2374: 09 f4 brne .+2 ; 0x2378 <menu_choose+0x6c>
line = 255;
2376: cf ef ldi r28, 0xFF ; 255
while (key != key_nokey); // Warten, bis Taste wieder losgelassen wurde
2378: 80 91 e6 04 lds r24, 0x04E6
237c: 88 23 and r24, r24
237e: e1 f7 brne .-8 ; 0x2378 <menu_choose+0x6c>
return line;
}
2380: 8c 2f mov r24, r28
2382: 99 27 eor r25, r25
2384: cf 91 pop r28
2386: 1f 91 pop r17
2388: 0f 91 pop r16
238a: ff 90 pop r15
238c: ef 90 pop r14
238e: 08 95 ret
 
00002390 <main_menu>:
 
void main_menu (void)
{
lcd_cls();
2390: 0e 94 36 07 call 0xe6c <lcd_cls>
lcd_printp(PSTR("Hauptmenü(BETA V0.1)\r\n"),0);
2394: 60 e0 ldi r22, 0x00 ; 0
2396: 80 ea ldi r24, 0xA0 ; 160
2398: 9c e0 ldi r25, 0x0C ; 12
239a: 0e 94 aa 08 call 0x1154 <lcd_printp>
lcd_printp(PSTR("\r\nDisplay\r\n"),0);
239e: 60 e0 ldi r22, 0x00 ; 0
23a0: 87 eb ldi r24, 0xB7 ; 183
23a2: 9c e0 ldi r25, 0x0C ; 12
23a4: 0e 94 aa 08 call 0x1154 <lcd_printp>
lcd_printp(PSTR("Parameter\r\n"),0);
23a8: 60 e0 ldi r22, 0x00 ; 0
23aa: 83 ec ldi r24, 0xC3 ; 195
23ac: 9c e0 ldi r25, 0x0C ; 12
23ae: 0e 94 aa 08 call 0x1154 <lcd_printp>
lcd_printp(PSTR("Motortest"),0);
23b2: 60 e0 ldi r22, 0x00 ; 0
23b4: 8f ec ldi r24, 0xCF ; 207
23b6: 9c e0 ldi r25, 0x0C ; 12
23b8: 0e 94 aa 08 call 0x1154 <lcd_printp>
switch(menu_choose(2,4,10))
23bc: 4a e0 ldi r20, 0x0A ; 10
23be: 64 e0 ldi r22, 0x04 ; 4
23c0: 82 e0 ldi r24, 0x02 ; 2
23c2: 0e 94 86 11 call 0x230c <menu_choose>
23c6: 99 27 eor r25, r25
23c8: 83 30 cpi r24, 0x03 ; 3
23ca: 91 05 cpc r25, r1
23cc: 61 f0 breq .+24 ; 0x23e6 <main_menu+0x56>
23ce: 84 30 cpi r24, 0x04 ; 4
23d0: 91 05 cpc r25, r1
23d2: 1c f4 brge .+6 ; 0x23da <main_menu+0x4a>
23d4: 02 97 sbiw r24, 0x02 ; 2
23d6: 21 f0 breq .+8 ; 0x23e0 <main_menu+0x50>
23d8: 08 95 ret
23da: 04 97 sbiw r24, 0x04 ; 4
23dc: 39 f0 breq .+14 ; 0x23ec <main_menu+0x5c>
23de: 08 95 ret
{
case 2:
display_data(); // LCD-Modus
23e0: 0e 94 23 12 call 0x2446 <display_data>
break;
23e4: 08 95 ret
case 3:
edit_parameter(); // Parameter (Settings) laden/editieren
23e6: 0e 94 c7 10 call 0x218e <edit_parameter>
break;
23ea: 08 95 ret
case 4:
motor_test(); // primitiver Motor-Test
23ec: 0e 94 83 12 call 0x2506 <motor_test>
23f0: 08 95 ret
 
000023f2 <read_display>:
#include "parameter.h"
#include "menu.h"
 
uint8_t read_display (uint8_t command) //
{
23f2: cf 93 push r28
uint8_t timeout;
timeout = 0;
23f4: c0 e0 ldi r28, 0x00 ; 0
p_buffer[0] = '#'; // Display-Zeile anfordern
23f6: 93 e2 ldi r25, 0x23 ; 35
23f8: 90 93 63 04 sts 0x0463, r25
p_buffer[1] = 'a';
23fc: 91 e6 ldi r25, 0x61 ; 97
23fe: 90 93 64 04 sts 0x0464, r25
p_buffer[2] = 'h';
2402: 98 e6 ldi r25, 0x68 ; 104
2404: 90 93 65 04 sts 0x0465, r25
p_buffer[3] = command;
2408: 80 93 66 04 sts 0x0466, r24
p_buffer[4] = 0;
240c: c0 93 67 04 sts 0x0467, r28
p_buffer[5] = 0;
2410: c0 93 68 04 sts 0x0468, r28
base64_send(6);
2414: 86 e0 ldi r24, 0x06 ; 6
2416: 0e 94 bc 0c call 0x1978 <base64_send>
do // warten, bis die Parameter gesendet werden
{
if (get_message() == 1)
241a: 0e 94 95 0c call 0x192a <get_message>
241e: 81 30 cpi r24, 0x01 ; 1
2420: 09 f4 brne .+2 ; 0x2424 <read_display+0x32>
timeout = 10;
2422: ca e0 ldi r28, 0x0A ; 10
timeout ++;
2424: cf 5f subi r28, 0xFF ; 255
}
2426: 80 91 ea 04 lds r24, 0x04EA
242a: 80 53 subi r24, 0x30 ; 48
242c: 85 30 cpi r24, 0x05 ; 5
242e: 10 f0 brcs .+4 ; 0x2434 <read_display+0x42>
2430: ca 30 cpi r28, 0x0A ; 10
2432: 98 f3 brcs .-26 ; 0x241a <read_display+0x28>
while (((r_buffer[1] < '0') || (r_buffer[1] > '4')) && (timeout < 10));
if (timeout >= 10)
2434: ca 30 cpi r28, 0x0A ; 10
2436: 18 f0 brcs .+6 ; 0x243e <read_display+0x4c>
return 1;
2438: 81 e0 ldi r24, 0x01 ; 1
243a: 90 e0 ldi r25, 0x00 ; 0
243c: 02 c0 rjmp .+4 ; 0x2442 <read_display+0x50>
else
return 0;
243e: 80 e0 ldi r24, 0x00 ; 0
2440: 90 e0 ldi r25, 0x00 ; 0
2442: cf 91 pop r28
2444: 08 95 ret
 
00002446 <display_data>:
}
 
void display_data (void)
{
2446: 0f 93 push r16
2448: 1f 93 push r17
244a: cf 93 push r28
244c: df 93 push r29
244e: cd b7 in r28, 0x3d ; 61
2450: de b7 in r29, 0x3e ; 62
2452: 2a 97 sbiw r28, 0x0a ; 10
2454: 0f b6 in r0, 0x3f ; 63
2456: f8 94 cli
2458: de bf out 0x3e, r29 ; 62
245a: 0f be out 0x3f, r0 ; 63
245c: cd bf out 0x3d, r28 ; 61
uint8_t line;
uint8_t text[10];
 
lcd_cls();
245e: 0e 94 36 07 call 0xe6c <lcd_cls>
lcd_printp(PSTR("Display"),0);
2462: 60 e0 ldi r22, 0x00 ; 0
2464: 89 ed ldi r24, 0xD9 ; 217
2466: 9c e0 ldi r25, 0x0C ; 12
2468: 0e 94 aa 08 call 0x1154 <lcd_printp>
do
{
while (key != 0x00);
246c: 00 91 e6 04 lds r16, 0x04E6
2470: 00 23 and r16, r16
2472: e1 f7 brne .-8 ; 0x246c <display_data+0x26>
if (read_display(0) == 1)
2474: 80 2f mov r24, r16
2476: 0e 94 f9 11 call 0x23f2 <read_display>
247a: 81 30 cpi r24, 0x01 ; 1
247c: 69 f4 brne .+26 ; 0x2498 <display_data+0x52>
{
lcd_printp(PSTR("\r\nTimeout!"),0);
247e: 60 2f mov r22, r16
2480: 81 ee ldi r24, 0xE1 ; 225
2482: 9c e0 ldi r25, 0x0C ; 12
2484: 0e 94 aa 08 call 0x1154 <lcd_printp>
timer = 200;
2488: 88 ec ldi r24, 0xC8 ; 200
248a: 80 93 61 00 sts 0x0061, r24
while (timer > 0);
248e: 80 91 61 00 lds r24, 0x0061
2492: 88 23 and r24, r24
2494: e1 f7 brne .-8 ; 0x248e <display_data+0x48>
break;
2496: 2c c0 rjmp .+88 ; 0x24f0 <display_data+0xaa>
}
else
{
line = r_buffer[1];
2498: 10 91 ea 04 lds r17, 0x04EA
text[0] = line;
249c: 19 83 std Y+1, r17 ; 0x01
text[1] = 0x00;
249e: 0a 83 std Y+2, r16 ; 0x02
lcd_print_at(10,0,text,0);
24a0: 20 2f mov r18, r16
24a2: ae 01 movw r20, r28
24a4: 4f 5f subi r20, 0xFF ; 255
24a6: 5f 4f sbci r21, 0xFF ; 255
24a8: 60 2f mov r22, r16
24aa: 8a e0 ldi r24, 0x0A ; 10
24ac: 0e 94 1d 09 call 0x123a <lcd_print_at>
lcd_print_at(0,line+1,p_buffer,0);
24b0: 1f 5f subi r17, 0xFF ; 255
24b2: 20 2f mov r18, r16
24b4: 43 e6 ldi r20, 0x63 ; 99
24b6: 54 e0 ldi r21, 0x04 ; 4
24b8: 61 2f mov r22, r17
24ba: 80 2f mov r24, r16
24bc: 0e 94 1d 09 call 0x123a <lcd_print_at>
timer = 10;
24c0: 8a e0 ldi r24, 0x0A ; 10
24c2: 80 93 61 00 sts 0x0061, r24
while(timer > 0);
24c6: 80 91 61 00 lds r24, 0x0061
24ca: 88 23 and r24, r24
24cc: e1 f7 brne .-8 ; 0x24c6 <display_data+0x80>
if (key == 0x01)
24ce: 80 91 e6 04 lds r24, 0x04E6
24d2: 81 30 cpi r24, 0x01 ; 1
24d4: 11 f4 brne .+4 ; 0x24da <display_data+0x94>
read_display(1);
24d6: 0e 94 f9 11 call 0x23f2 <read_display>
if (key == 0x02)
24da: 80 91 e6 04 lds r24, 0x04E6
24de: 82 30 cpi r24, 0x02 ; 2
24e0: 11 f4 brne .+4 ; 0x24e6 <display_data+0xa0>
read_display(2);
24e2: 0e 94 f9 11 call 0x23f2 <read_display>
}
}
24e6: 80 91 e6 04 lds r24, 0x04E6
24ea: 84 30 cpi r24, 0x04 ; 4
24ec: 09 f0 breq .+2 ; 0x24f0 <display_data+0xaa>
24ee: be cf rjmp .-132 ; 0x246c <display_data+0x26>
24f0: 2a 96 adiw r28, 0x0a ; 10
24f2: 0f b6 in r0, 0x3f ; 63
24f4: f8 94 cli
24f6: de bf out 0x3e, r29 ; 62
24f8: 0f be out 0x3f, r0 ; 63
24fa: cd bf out 0x3d, r28 ; 61
24fc: df 91 pop r29
24fe: cf 91 pop r28
2500: 1f 91 pop r17
2502: 0f 91 pop r16
2504: 08 95 ret
 
00002506 <motor_test>:
#include "base64.h"
 
void motor_test(void)
{
lcd_cls();
2506: 0e 94 36 07 call 0xe6c <lcd_cls>
 
while (key != 0x00);
250a: 60 91 e6 04 lds r22, 0x04E6
250e: 66 23 and r22, r22
2510: e1 f7 brne .-8 ; 0x250a <motor_test+0x4>
 
lcd_printp(PSTR("Taste drücken\r\n"),0);
2512: 8c ee ldi r24, 0xEC ; 236
2514: 9c e0 ldi r25, 0x0C ; 12
2516: 0e 94 aa 08 call 0x1154 <lcd_printp>
while (key == 0x00);
251a: 80 91 e6 04 lds r24, 0x04E6
251e: 88 23 and r24, r24
2520: e1 f3 breq .-8 ; 0x251a <motor_test+0x14>
if (key == 0x08) // nur, wenn die Bestätigungstaste gedrückt wird
2522: 80 91 e6 04 lds r24, 0x04E6
2526: 88 30 cpi r24, 0x08 ; 8
2528: c9 f4 brne .+50 ; 0x255c <motor_test+0x56>
{
p_buffer[0] = '#'; // Motoren einschalten
252a: 83 e2 ldi r24, 0x23 ; 35
252c: 80 93 63 04 sts 0x0463, r24
p_buffer[1] = 'a';
2530: 81 e6 ldi r24, 0x61 ; 97
2532: 80 93 64 04 sts 0x0464, r24
p_buffer[2] = 't';
2536: 84 e7 ldi r24, 0x74 ; 116
2538: 80 93 65 04 sts 0x0465, r24
p_buffer[3] = 10;
253c: 8a e0 ldi r24, 0x0A ; 10
253e: 80 93 66 04 sts 0x0466, r24
p_buffer[4] = 10;
2542: 80 93 67 04 sts 0x0467, r24
p_buffer[5] = 10;
2546: 80 93 68 04 sts 0x0468, r24
p_buffer[6] = 10;
254a: 80 93 69 04 sts 0x0469, r24
p_buffer[7] = 0;
254e: 10 92 6a 04 sts 0x046A, r1
p_buffer[8] = 0;
2552: 10 92 6b 04 sts 0x046B, r1
 
base64_send(9);