../Src/main.c
- 57
- 566
- 592
+ 11
+ 327
+ 352
1
0
diff --git a/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.axf b/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.axf
index b81d6d74..eb1754cf 100644
Binary files a/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.axf and b/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.axf differ
diff --git a/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.build_log.htm b/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.build_log.htm
index 94bd9c0f..ec57681a 100644
--- a/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.build_log.htm
+++ b/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.build_log.htm
@@ -27,11 +27,20 @@ Project:
Output:
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'ibmpc'
-compiling ps2kb.c...
+compiling main.c...
+../Src/main.c(482): warning: #188-D: enumerated type mixed with another type
+ HAL_GPIO_WritePin(GAMEPAD_B1_GPIO_Port, GAMEPAD_B1_Pin, !(this_gamepad_event->button_1));
+../Src/main.c(483): warning: #188-D: enumerated type mixed with another type
+ HAL_GPIO_WritePin(GAMEPAD_B2_GPIO_Port, GAMEPAD_B2_Pin, !(this_gamepad_event->button_2));
+../Src/main.c(484): warning: #188-D: enumerated type mixed with another type
+ HAL_GPIO_WritePin(GAMEPAD_B3_GPIO_Port, GAMEPAD_B3_Pin, !(this_gamepad_event->button_3));
+../Src/main.c(485): warning: #188-D: enumerated type mixed with another type
+ HAL_GPIO_WritePin(GAMEPAD_B4_GPIO_Port, GAMEPAD_B4_Pin, !(this_gamepad_event->button_4));
+../Src/main.c: 4 warnings, 0 errors
linking...
-Program Size: Code=16660 RO-data=428 RW-data=128 ZI-data=2176
+Program Size: Code=16656 RO-data=428 RW-data=128 ZI-data=2176
FromELF: creating hex file...
-"ibmpc\ibmpc.axf" - 0 Error(s), 0 Warning(s).
+"ibmpc\ibmpc.axf" - 0 Error(s), 4 Warning(s).
Software Packages used:
diff --git a/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.hex b/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.hex
index 57bc6649..6ea6847a 100644
--- a/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.hex
+++ b/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.hex
@@ -23,7 +23,7 @@
:10015000F6E710B513460A4604461946FFF7F0FFC6
:10016000204610BD064C0125064E05E0E36807CC8D
:100170002B430C3C98471034B442F7D3FFF7A4FF4D
-:10018000A0420008C042000810B5022000F042F86A
+:100180009C420008BC42000810B5022000F042F872
:1001900010BD70B50024014620314A78022A03D0F0
:1001A00004218163012416E0026813680E25AB4325
:1001B0001360026813685B085B0013600122056C22
@@ -179,10 +179,10 @@
:100B10006068072109028843E9680843606000F0C3
:100B20002DF86168084A0906090F515CC840074959
:100B300008600020FFF790FE0020F8BD0020024072
-:100B40000010024088130000884200087000002056
+:100B4000001002408813000084420008700000205A
:100B50000148006870470000700000200448054903
:100B600000684968044A4905490F515CC84070470C
-:100B700070000020001002409842000830B516A313
+:100B700070000020001002409442000830B516A317
:100B80000FCB89B06C460FC417A30FCB0FC41A4903
:100B90004A680C20144604401848042C05D0184B11
:100BA000082C04D00C2C00D1184609B030BD94029A
@@ -306,13 +306,13 @@
:1013000001F06CFB40425080207A3E49404210710F
:10131000607A5071607B9071A07B1072E07BD0711D
:10132000207C5072607C907237482C31143001F070
-:1013300067FF57E033482179383001706179417097
+:1013300065FF57E033482179383001706179417099
:10134000A1798170E179C170057145718571C571AF
:10135000217A0172617A4172A17A8172E17AC17255
:10136000014629481C3001F05BFB3BE001210022D3
:1013700049032648FFF70FF834E02248202140387F
:10138000FEF7E5FE1F48CD214038017061784170BD
-:1013900080238370C6703978017145710221817193
+:1013900080238370C6703978017145710321817192
:1013A000C5710822002105468D356C5C002C0CD0DF
:1013B000022C02D0012C03D005E0815403E008E0A8
:1013C0000C461C438454521CD2B2491C1029ECDB3D
@@ -669,14 +669,14 @@
:1029B00000900029F5DC08E00B980B990078491C81
:1029C0000B91109A0F999047761C0199481E01901F
:1029D0000029F1DC6D1C28E70928010009020143E8
-:1029E00008B2704700B5014600F0A0FB411800F0A6
-:1029F0009DFB8842FBD300BD10B502490860FEF77D
+:1029E00008B2704700B5014600F09EFB411800F0A8
+:1029F0009BFB8842FBD300BD10B502490860FEF77F
:102A000083FD10BD0000002013B564230122694638
:102A10000248FEF718FF00981CBD0000800100204E
:102A200070B50D46044600F020F8002801D00120C2
:102A300070BD20780C226168504308182946FDF7C4
:102A40006DFB2078A178401CFDF752FB217000201F
-:102A500070BD10B5044681700C20484300F0EEFABA
+:102A500070BD10B5044681700C20484300F0ECFABC
:102A60006060204600F026F810BD10B5044681785D
:102A70000078401CFDF73CFB6078814201D10120C9
:102A800010BD002010BD41780278914201D1002094
@@ -689,31 +689,31 @@
:102AF00000221E4D0121C9032846FDF74CFCA07899
:102B000000282AD0002201213046FDF744FCE0785D
:102B1000002824D00022012189032846FDF73BFC30
-:102B2000207AFF25291A032000F0E4FA607A291A96
-:102B3000002000F0DFFAA07A291A022000F0DAFA69
-:102B4000E07A291A012000F0D5FA0648FFF7A6FF1F
+:102B2000207AFF25291A032000F0E2FA607A291A98
+:102B3000002000F0DDFAA07A291A022000F0D8FA6D
+:102B4000E07A291A012000F0D3FA0648FFF7A6FF21
:102B500070BD0122C4E70122CBE70122D3E70122A5
:102B6000D9E7000064000020001400480008004875
:102B700070B50C4C012202212046FDF70CFC0A4DD9
:102B80000122D1032846FDF706FC0122114620460A
:102B9000FDF701FC012291032846FDF7FCFB00F044
-:102BA00093FA70BD001400480008004870B5440650
+:102BA00091FA70BD001400480008004870B5440652
:102BB000C109640EC901102C25D2224D285D0028C0
:102BC00021D0002920D002281DD11F482300FFF763
:102BD00003FE0918060D1810181816101800FF2308
-:102BE00001330246590000F095FB0AE001F004FAB7
-:102BF00007E010230246202100F090FF01E0FFF7DC
+:102BE00001330246590000F093FB0AE001F002FABB
+:102BF00007E010230246202100F08EFF01E0FFF7DE
:102C0000B7FF0120285570BD0128FCD102202855AE
:102C10002300FFF7E1FD0906070C060F0606140F57
-:102C20000600F0E700F0F6FC00F004FD70BD01F0D6
-:102C300033FA70BD01F00CF800F0FAFF70BDFFF739
+:102C20000600F0E700F0F4FC00F002FD70BD01F0DA
+:102C300031FA70BD01F00AF800F0F8FF70BDFFF73F
:102C400097FF70BDED02002000040048102803D259
:102C50000249085C012800D000207047ED020020E6
:102C600070B515460E46044600F022F8002801D043
:102C7000012070BD2178606846542178A0684554D1
:102C80002078A178401CFDF733FA2170002070BD38
-:102C900070B50D4604468170284600F0CFF960609B
-:102CA000284600F0CBF9A060204600F02BF870BD5C
+:102C900070B50D4604468170284600F0CDF960609D
+:102CA000284600F0C9F9A060204600F02BF870BD5E
:102CB00010B5044681780078401CFDF719FA607859
:102CC000814201D1012010BD002010BD10B5437814
:102CD0000478A34201D1012010BD4468E35C0B706D
@@ -724,356 +724,356 @@
:102D200038B50D46FF216A46ED3811703E4C030060
:102D3000FFF752FD136B65304730393129201D16DE
:102D4000161616303030760B300014220121FA208E
-:102D500000F0D2FC00F06EFCFA220021AA2051E023
+:102D500000F0D0FC00F06CFCFA220021AA2051E027
:102D6000207803285CD014220121FE204AE000F0E4
-:102D700061FC55E000F05EFC14220121FA2000F015
-:102D8000BBFC002005E014220121FA2000F0B4FC75
-:102D90000120607038BD14220121FA2000F0ACFC43
-:102DA0001E21684638E014220121FA2000F0A4FC1C
-:102DB00014220021AB2000F09FFC1422002183206C
-:102DC00020E014220121FA2000F096FC1E21684622
-:102DD00000F0A2FB0028DDD114220121FA2000F02E
-:102DE0008BFC68460078002803D00328D2D82070D6
-:102DF00038BD207801F082F81422002102E014226C
-:102E00000121EE2000F078FC38BD14220121FA20C7
-:102E100000F072FC1E21284600F07EFB0028F3D152
-:102E200014220121FA20EDE7040000201CB56A48B5
-:102E30006A4C8089A081FDF7FFFCFFF7BBF9FEF724
+:102D70005FFC55E000F05CFC14220121FA2000F019
+:102D8000B9FC002005E014220121FA2000F0B2FC79
+:102D90000120607038BD14220121FA2000F0AAFC45
+:102DA0001E21684638E014220121FA2000F0A2FC1E
+:102DB00014220021AB2000F09DFC1422002183206E
+:102DC00020E014220121FA2000F094FC1E21684624
+:102DD00000F0A0FB0028DDD114220121FA2000F030
+:102DE00089FC68460078002803D00328D2D82070D8
+:102DF00038BD207801F080F81422002102E014226E
+:102E00000121EE2000F076FC38BD14220121FA20C9
+:102E100000F070FC1E21284600F07CFB0028F3D156
+:102E200014220121FA20EDE7040000201CB56948B6
+:102E3000694C8089A081FDF7FFFCFFF7BBF9FEF725
:102E4000A1FEFEF74BFFFEF773FFFEF78FFFFEF7C5
-:102E5000B7FFFEF7DBFF6348614901600321416072
-:102E60006149C1608160FDF7A5FC002800D0FEE744
-:102E70005C48FDF7D1FC00210220019100900B4637
-:102E800022785A495AA0FFF797FC56487430FFF74A
-:102E9000B3FD00F00BFAFF2501355A4E6F003246A4
-:102EA0002B463946104600F035FA32462B46394655
-:102EB000104601F0ABF8324610232021104600F0F6
-:102EC0002DFE0220FFF7C2FE002801D001F094F889
-:102ED00010214D48FFF7DCFE40481021143000F06F
-:102EE000A8F93E4810211C30FFF7B3FD00F0ECF8C4
-:102EF000454820216038FDF72AF9434A3948203AED
-:102F00001146202340391030FEF75CF9A1893FA01B
-:102F1000FFF752FC00F0C8F8002812D13FA0FFF7DD
-:102F20004BFC002708213046FDF731FA3220FDF72F
-:102F300054F97F1C0A2FF5DB012208213046FDF7EA
-:102F40002AFA192000F09EFE0927FF062548FDF702
-:102F500063FC0420FFF77AFE002804D10820FFF765
-:102F600075FE002809D00121C9033046FDF70AFA91
-:102F7000002802D000F0A6FE06E00520FFF766FE5E
-:102F8000002801D000F0DAF80120FFF75FFE0028EA
-:102F900008D029463846FDF7F5F9002802D000F0A0
-:102FA00051FB0CE00220FFF751FE002807D0294614
-:102FB0003846FDF7E7F9002801D001F08DF8072029
-:102FC000FFF744FE002801D0FFF780FD607A00285B
-:102FD000BCD000F09DFF0000C0F7FF1F480000209C
-:102FE00000300040CC000020FF0F000051420008DC
-:102FF00025730A7265762564207625642E25642E55
-:1030000025640A0000040048C0020020666C617359
-:10301000685F73697A653A2025640A0044696769C4
-:1030200074616C20706F74206E6F742072657370A1
-:103030006F6E64696E67210A00000000F0B50B3006
-:10304000C108C900144F0026144A0FE003688B42E0
-:103050000BD38B4205D95C1A4318456830C3083B33
-:1030600000E04368136002C004E0021D10680028FD
-:10307000ECD13046002803D13868002801D0002068
-:10308000F0BD064A06481060064A121AD208D2005D
-:1030900044C001203860D7E77C0000207800002081
-:1030A000040300200005002010B5642301225821EC
-:1030B0000448FDF721FA002801D0002010BD0120AE
-:1030C00010BD00008000002010B5094C0022042132
-:1030D0002046FDF760F90120FDF77FF80122042169
-:1030E0002046FDF758F90120FDF777F810BD0000E4
-:1030F0000004004803B583B0042802D3FF2005B0C4
-:1031000000BD08496423085C01210007020E04A8E1
-:103110000293019100900B4658210348FDF77AFA7B
-:10312000EDE700004D4200088000002002480068E2
-:103130000068406A704700000000002070B52E4C07
-:10314000207A0025002807D04D20E0710122E11DE2
-:103150002A48FEF7DCFB25722748143000F083F87C
-:10316000002806D0A17A002904D02348143000F0AA
-:1031700085F870BD2049C0220E310D808D700A7017
-:103180008279002A01D0E0220A70027A002A03D054
-:103190000A7810231A430A700022825E4088404257
-:1031A00000B2030603D50B7808252B430B704306AA
-:1031B00003D50B7804252B430B70130603D50B782E
-:1031C00002252B430B7053060125002B02DA0B78E6
-:1031D0002B430B709206920E80064A70800E887008
-:1031E0000548143000F04AF8034903220E31034821
-:1031F000FEF78DFBA57270BD48000020F001002095
-:1032000070B50D46044600F020F8002801D00120DA
-:1032100070BD20780C226168504308182946FCF7DD
-:103220007DFF2078A178401CFCF762FF2170002010
-:1032300070BD10B5044681700C204843FFF7FEFEB8
-:103240006060204600F026F810BD10B50446817875
-:103250000078401CFCF74CFF6078814201D10120CE
-:1032600010BD002010BD41780278914201D10020AC
-:10327000704740680C2251434018704710B504460F
-:1032800040782178884204D0A178401CFCF730FFB8
-:10329000617010BD10B500210170417081780C2261
-:1032A00051434068FCF753FF10BD000010B51021DA
-:1032B0000648FCF74CFF012104480222417082704D
-:1032C000017102724271C17110BD0000ED02002057
-:1032D00070B50F4D6988A868FDF754F80446A988B1
-:1032E000E868FDF74FF8012802D0002809D00AE06D
-:1032F000012C02D0002C02D005E0032070BD02207A
-:1033000070BD012C01D0002070BD012070BD0000F7
-:103310000400002010B5054CA0606180E260A3802D
-:1033200000F078F900F086F910BD000004000020DC
-:1033300010B5094A5378002B06D01278012A05D01F
-:10334000022A06D0092010BD012010BD00F006F8A9
-:1033500010BD00F019F810BD0400002010B553286E
-:1033600005D9572803D0582801D0032010BD0029C3
-:1033700007D01422002100F0BFF90028F6D0452024
-:1033800010BD80210843F4E710B5592810D2614AD6
-:10339000145CFF2C7ED0002902D014220021ABE067
-:1033A00014220021F02000F0A7F9002873D1F4E7DF
-:1033B000632816D077285AD00246603A1F2A6BD865
-:1033C000544A5932101860380478FF2C62D0002912
-:1033D0007ED014220021E02000F08EF900285AD17E
-:1033E00088E000291CD014220021E02000F084F99C
-:1033F000002850D114220021122000F07DF900286D
-:1034000049D114220021E02000F076F900287DD176
-:10341000142200217C2000F06FF9002876D110BD25
-:1034200014220021E02000F067F900286ED1142258
-:103430000021F02000F060F9002867D1142200215B
-:103440007C2000F059F9002860D114220021E020EE
-:1034500000F052F9002859D114220021F02000F088
-:103460004BF9002852D1142200211220D3E7002961
-:10347000A6D014220021E12000F03EF9002845D119
-:1034800014220021104600F037F900283ED1142202
-:10349000002102E02CE039E03AE0772000F02CF93E
-:1034A000002833D114220021E12000F025F9002862
-:1034B0002CD114220021F02000F01EF9002825D183
-:1034C00014220021104600F017F900281ED100E058
-:1034D00014E014220021F02000F00EF9002815D18C
-:1034E00014220021772000F007F900280ED110BD2A
-:1034F000022010BD1422012120468CE71422002155
-:10350000E02000F0F9F8002800D149E7452010BD7F
-:10351000032010BDD4410008F3B581B00F4600254B
-:103520000126FCF73FFF3A4C206107E0FCF73AFF29
-:103530002169401AB84201D30420FEBDFFF7C8FE3E
-:103540000128F3D11220FFF74DFA00226188A0680C
-:10355000FCF721FF2420FFF745FA01226188A068CB
-:10356000FCF719FF1220FFF73DFAA188E068FCF78D
-:1035700009FF012800D135437004060C1220FFF723
-:1035800031FA00226188A068FCF705FF2420FFF7CC
-:1035900029FA01226188A068FCF7FDFE1220FFF7DE
-:1035A00021FAFF2EE1D91220FFF71CFA00226188D0
-:1035B000A068FCF7F0FE2420FFF714FA01226188CE
-:1035C000A068FCF7E8FE1220FFF70CFA1220FFF7C4
-:1035D00009FA0022A188E068FCF7DDFE002261887C
-:1035E000A068FCF7D8FE2420FFF7FCF901226188CF
-:1035F000A068FCF7D0FE1220FFF7F4F90122A188A1
-:10360000E068FCF7C8FE019805700020FEBD0000D0
-:103610000400002010B5064C01226188A068FCF768
-:10362000BAFE0122A188E068FCF7B5FE10BD0000DB
-:1036300004000020024802210170012141707047FE
-:103640000400002038B5FFF743FE284C0228A07183
-:1036500014D0012815D003280FD1221D511E244853
-:10366000FFF734FB002808D12179E078FFF760FEEE
-:10367000452836D01E48FFF739FB38BDFFF7CAFF93
-:1036800038BDFF216846017018480A21401CFFF729
-:1036900043FF69466078FFF743FB68460478FF2CD8
-:1036A000EED0134820216038FCF751FD1048CD21A1
-:1036B0006038017001462031497841708121817064
-:1036C000E2070121002A00D0C170A20700D50171D4
-:1036D000620700D54171012251030648FCF75BFEE9
-:1036E00038BD0120FCF779FD38BD000048000020FE
-:1036F000C002002000080048F8B515460E460746EF
-:10370000FCF750FE0C4C206107E0FCF74BFE2169F2
-:10371000401AA84201D30120F8BDFFF7D9FD0328C4
-:10372000F3D1002E03D0AF208000FFF75BF93846BD
-:1037300000F004F8F8BD000004000020F8B5474C84
-:10374000054601260022A188E068FCF724FE12202D
-:10375000FFF748F900226188A068FCF71CFE2420CE
-:10376000FFF740F901226188A068FCF714FE1220DF
-:10377000FFF738F96188A068FCF704FE002868D0DC
-:103780000027E80701D0012200E00022A188E068BC
-:10379000FCF701FE1220FFF725F900226188A068DE
-:1037A000FCF7F9FD2420FFF71DF901226188A068CC
-:1037B000FCF7F1FD1220FFF715F96188A068FCF70E
-:1037C000E1FD002845D0E807C00F46406D087F1C8A
-:1037D000082FD6DB002E01D0012200E00022A188B4
-:1037E000E068FCF7D8FD1220FFF7FCF800226188A2
-:1037F000A068FCF7D0FD2420FFF7F4F801226188CF
-:10380000A068FCF7C8FD1220FFF7ECF86188A068FB
-:10381000FCF7B8FD00281CD00122A188E068FCF765
-:10382000BAFD1220FFF7DEF800226188A068FCF7DD
-:10383000B2FD2420FFF7D6F801226188A068FCF7CA
-:10384000AAFD1220FFF7CEF8C820FFF7CBF8002022
-:10385000F8BDFFF7DFFE4520F8BD000004000020A2
-:1038600010B5164C61892069FCF78CFD012805D143
-:103870002189E068FCF786FD012806D0618920696E
-:10388000FCF780FD012802D007E0032010BD21894C
-:10389000E068FCF777FD002806D061892069FCF715
-:1038A00071FD002802D007E0022010BD2189E068E8
-:1038B000FCF768FD0128F8D0002010BD180000209A
-:1038C000F8B5374E054630780C46002804D0B0795C
-:1038D000002803D00320F8BD0120F8BD0821601C9A
-:1038E000FCF735FC0320207008206070A8790028C0
-:1038F00001D009206070287A0221002802D0607867
-:1039000008436070E8790422002802D060781043F0
-:1039100060700020285E1023002802DA60781843C7
-:1039200060700220285E2027002802DA6078384381
-:1039300060702878A070A878E0707079032806D0AD
-:10394000042806D0002800D022700020F8BD287975
-:103950001EE0687A002802D0207918432071A87AE6
-:10396000002802D0207938432071052028560028ED
-:1039700001DD207903E0002803DA20790E210843D5
-:10398000207104202856002804DD2079012105E05B
-:103990002071D9E70028D7DA20790F210843F7E70B
-:1039A00018000020F8B500250E46FF2810D0E63894
-:1039B00000210127584C0300FEF70EFF11A0A6902E
-:1039C00063619B9B9B5A9B549B331E1C1A179B0045
-:1039D00000F03EF91421FA2000F0ECF9FA21AA20B7
-:1039E00000F0DBF91421002075E000F03DF980E0E3
-:1039F00021707EE027707CE01421FA2000F0DAF9D3
-:103A000045489621401C00F097F800282FD14249E4
-:103A10002079143162780A5407286AD2401C207138
-:103A200067E01421FA2000F0C5F92179022916D99E
-:103A30003948143040182038C17F50290FD1817F78
-:103A4000642902D0C82905D009E0407FC82806D1E2
-:103A5000032003E0407FC82801D1042060711421B5
-:103A6000607938E01421FA2000F0A4F9A771F8BDBC
-:103A70001421FA2000F09EF90220A071F8BDA17176
-:103A800037E01421FA2000F095F9A079012800D13F
-:103A900040252078002801D020200543E078022826
-:103AA00001D110200543B079002801D0042005433E
-:103AB000F079002801D002200543307A002800D098
-:103AC0003D431421284600F068F91421A07800F045
-:103AD00064F91421607800F060F9F8BD1421FA202F
-:103AE00000F068F90C489621801C00F025F80028A9
-:103AF000F3D11421FA2000F05DF9F8BD1421FA2069
-:103B000000F058F9E770F8BD1421FA2000F052F9DE
-:103B10000220E070F8BD00001800002010B5054C30
-:103B2000E06021812261638100F092F800F080F86A
-:103B300010BD000018000020F3B581B00F4600252D
-:103B40000126FCF72FFC044606E0FCF72BFC001BCB
-:103B5000B84201D30420FEBDFFF782FE0128F4D154
-:103B60001220FEF73FFF314C00222189E068FCF76C
-:103B700012FC2420FEF736FF01222189E068FCF7C1
-:103B80000AFC1220FEF72EFF61892069FCF7FAFB80
-:103B9000012800D135437004060C1220FEF722FFE5
-:103BA00000222189E068FCF7F6FB2420FEF71AFFCB
-:103BB00001222189E068FCF7EEFB1220FEF712FFDC
-:103BC000FF2EE1D91220FEF70DFF00222189E068C7
-:103BD000FCF7E1FB2420FEF705FF01222189E068C4
-:103BE000FCF7D9FB1220FEF7FDFE1220FEF7FAFECD
-:103BF000002261892069FCF7CEFB00222189E06860
-:103C0000FCF7C9FB2420FEF7EDFE01222189E068C4
-:103C1000FCF7C1FB1220FEF7E5FE01226189206955
-:103C2000FCF7B9FB019805700020FEBD18000020CC
-:103C300010B5064C01222189E068FCF7ACFB01229B
-:103C400061892069FCF7A7FB10BD00001800002067
-:103C500000B500F009F80349002008714861886147
-:103C6000487100BD18000020054864214170022100
-:103C700081700121C17000210170817170470000C5
-:103C80001800002010B500F075F8002807D1642155
-:103C9000AA2000F082F86421002000F07EF810BD18
-:103CA00070B50E460546002407E0281940783146D5
-:103CB00000F073F8002804D1641C2878A042F4DCDA
-:103CC000002070BD70B5FFF7CBFD274C0228607156
-:103CD00011D0012812D020461430FFF7C4FA002872
-:103CE00008D02249FFF7ECFD002812D020461430FE
-:103CF000FFF7C4FA70BDFFF79BFF70BD1A480A2199
-:103D0000801CFFF719FF1949A0781839FFF74AFE00
-:103D100070BDC8220820FEF799FF002800D00222BB
-:103D200011461248FFF7BCFF002817D0104D0122A2
-:103D300008212846FCF72FFBFCF734FB044604E07F
-:103D4000FCF730FB001B192803D8FFF789FD032877
-:103D5000F6D1002208212846FCF71DFB024814304A
-:103D6000FFF798FA70BD000048000020E402002030
-:103D70000004004870B50546FCF714FB044606E055
-:103D8000FCF710FB001BA84201D3042070BDFFF715
-:103D900067FD0328F4D1002070BD10B50446084625
-:103DA000FFF7E8FF002801D0042010BD204600F0F6
-:103DB00013F810BD10B504460846FFF7DBFF0028D6
-:103DC00001D0042010BDAF208000FEF70BFE20467E
-:103DD00000F002F810BD0000F8B5474C054601267A
-:103DE000002261892069FCF7D6FA1220FEF7FAFD5D
-:103DF00000222189E068FCF7CEFA2420FEF7F2FDCC
-:103E000001222189E068FCF7C6FA1220FEF7EAFDDC
-:103E10002189E068FCF7B6FA002868D00027E80797
-:103E200001D0012200E0002261892069FCF7B3FA89
-:103E30001220FEF7D7FD00222189E068FCF7ABFADB
-:103E40002420FEF7CFFD01222189E068FCF7A3FAC8
-:103E50001220FEF7C7FD2189E068FCF793FA0028DD
-:103E600045D0E807C00F46406D087F1C082FD6DB01
-:103E7000002E01D0012200E0002261892069FCF7B8
-:103E80008AFA1220FEF7AEFD00222189E068FCF7D5
-:103E900082FA2420FEF7A6FD01222189E068FCF7C2
-:103EA0007AFA1220FEF79EFD2189E068FCF76AFA93
-:103EB00000281CD0012261892069FCF76CFA1220CD
-:103EC000FEF790FD00222189E068FCF764FA2420C7
-:103ED000FEF788FD01222189E068FCF75CFA1220D8
-:103EE000FEF780FDFA20FEF77DFD0020F8BDFFF70C
-:103EF0009FFE4520F8BD000018000020012803D0D7
-:103F0000032803D041207047432070473F2070476B
-:103F100011A0FEF751FC134D0024295D12A0FEF7FD
-:103F20004BFC641C202CF8DB10A0FEF745FC134D65
-:103F3000002408212846FCF72AFA6420FCF74DF9F2
-:103F4000641C642CF5DBBFF34F8F0E490C48C8602E
-:103F5000BFF34F8F00BFFDE7535049204552524FEA
-:103F6000520A000080020020256420000A72656267
-:103F70006F6F74696E672E2E2E0A000000040048D1
-:103F80000400FA0500ED00E070B50646FCF70AFAF9
-:103F90000446084D06E0FCF705FA001BB04201D9C3
-:103FA000042070BD29886868FCF7ECF90028F2D07D
-:103FB000002070BD3400002010B50E4C21886068D0
-:103FC000FCF7E0F9012802D1FCF7ECF9E060FCF71E
-:103FD000E9F9E168401A14280BD9C820FFF7D4FF8B
-:103FE0001420FCF7FAF8AA2000F094F80A20FCF755
-:103FF000F4F810BD3400002010B500F05DF8FCF7B7
-:10400000D1F90149C86010BD3400002010B5034C3F
-:1040100060602180A260638010BD00003400002039
-:1040200070B5044666380300FEF7D6FB0A1406088E
-:104030000A0C0E101216181A482413E04A2411E034
-:104040004B240FE04E240DE04F240BE0502409E0F8
-:10405000512407E0472405E0522403E0532401E003
-:10406000532C0BD8022902D000290DD00EE0FCF70A
-:1040700099F9084D2969401A502801D8002070BDCF
-:10408000FCF790F9286101E080200443204600F00D
-:1040900041F870BD3400002010B5064C0122218883
-:1040A0006068FCF778F901226188A068FCF773F971
-:1040B00010BD00003400002010B5064C01222188FC
-:1040C0006068FCF768F900226188A068FCF763F972
-:1040D00010BD00003400002010B5FFF76DFF0B4A43
-:1040E0000B48511EFEF7F2FD00280AD10748001FB9
-:1040F0000179C078FFF794FF452803D00448FEF704
-:10410000F5FD10BD0120FCF768F810BD4C00002043
-:10411000C002002070B52E4C054621886068FCF76F
-:1041200031F900282AD0002221886068FCF733F991
-:104130000520FEF757FC01226188A068FCF72BF9E7
-:104140006E20FEF74FFC6188A068FCF71BF9002881
-:1041500014D0012221886068FCF71DF94120FEF788
-:1041600041FC002221886068FCF715F91E20FEF74B
-:1041700039FC0026E80705D0012204E0FFF79CFF88
-:10418000452070BD00226188A068FCF704F9012277
-:1041900021886068FCF7FFF84120FEF723FC00222D
-:1041A00021886068FCF7F7F81E20FEF71BFC6D08FD
-:1041B000761C082EDEDB012221886068FCF7EBF814
-:1041C00000226188A068FCF7E6F8002070BD0000BE
-:1041D00034000020FF76161E26252E363D3E46452D
-:1041E0004E55660D151D242D2C353C43444D545B16
-:1041F0005A141C1B232B34333B424B4C520E125D82
-:104200001A22212A32313A41494A597C112958054A
-:1042100006040C030B830A0109777E6C757D7B6BAA
-:1042200073747969727A7071FFFF6178075A144A62
-:10423000FF11FF6C757D6B7469727A7071FFFFFFFF
-:10424000FFFFFFFFFFFFFFFFFFFF1F272F000106FC
-:10425000075553423456432050726F746F636F6C2E
-:1042600020426F6172640A49424D20504320436FDF
-:104270006D70617469626C650A64656B754E756B0F
-:10428000656D203230323200000000000000000076
-:1042900001020304060708090000000001020304EC
-:1042A000C04200080000002080000000F227000843
-:1042B0004043000880000020800800000228000819
-:1042C00000000000020100000000000000000000EB
+:102E5000B7FFFEF7DBFF61496148032522C06149E6
+:102E6000416001600838FDF7A5FC002800D0FEE7AE
+:102E70005B48FDF7D1FC00200190034600952278C5
+:102E800059495AA0FFF798FC55487430FFF7B4FD34
+:102E900000F00AFAFF250135594E6F0032462B46E5
+:102EA0003946104600F034FA32462B463946104671
+:102EB00001F0AAF8324610232021104600F02CFE23
+:102EC0000220FFF7C3FE002801D001F093F8102183
+:102ED0004C48FFF7DDFE40481021143000F0A7F900
+:102EE0003D4810211C30FFF7B4FD00F0EBF84548D9
+:102EF00020216038FDF72BF9424A3948203A114623
+:102F0000202340391030FEF75DF9A1893EA0FFF77C
+:102F100053FC00F0C7F8002812D13FA0FFF74CFC8B
+:102F2000002708213046FDF732FA3220FDF755F927
+:102F30007F1C0A2FF5DB012208213046FDF72BFA12
+:102F4000192000F09DFE0927FF062548FDF764FCC7
+:102F50000420FFF77BFE002804D10820FFF776FE4F
+:102F6000002809D00121C9033046FDF70BFA0028DB
+:102F700002D000F0A5FE06E00520FFF767FE00285E
+:102F800001D000F0D9F80120FFF760FE002808D03A
+:102F900029463846FDF7F6F9002802D000F050FB2C
+:102FA0000CE00220FFF752FE002807D029463846E1
+:102FB000FDF7E8F9002801D001F08CF80720FFF7B1
+:102FC00045FE002801D0FFF781FD607A0028BCD0C3
+:102FD00000F09CFFC0F7FF1F4800002000300040B9
+:102FE000CC000020FF0F00004D42000825730A723C
+:102FF00065762564207625642E25642E25640A00D6
+:1030000000040048C0020020666C6173685F736949
+:103010007A653A2025640A004469676974616C2006
+:10302000706F74206E6F7420726573706F6E646958
+:103030006E67210A00000000F0B50B30C108C9001E
+:10304000144F0026144A0FE003688B420BD38B42C7
+:1030500005D95C1A4318456830C3083B00E0436853
+:10306000136002C004E0021D10680028ECD1304655
+:10307000002803D13868002801D00020F0BD064A9E
+:1030800006481060064A121AD208D20044C0012035
+:103090003860D7E77C00002078000020040300207F
+:1030A0000005002010B56423012258210448FDF7D3
+:1030B00023FA002801D0002010BD012010BD00001F
+:1030C0008000002010B5094C002204212046FDF7A5
+:1030D00062F90120FDF781F8012204212046FDF765
+:1030E0005AF90120FDF779F810BD000000040048EE
+:1030F00003B583B0042802D3FF2005B000BD084902
+:103100006423085C01210007020E04A802930191C8
+:1031100000900B4658210348FDF77CFAEDE70000CC
+:103120004942000880000020024800680068406AA8
+:10313000704700000000002070B52E4C207A00255A
+:10314000002807D04D20E0710122E11D2A48FEF73A
+:10315000DEFB25722748143000F083F8002806D0E3
+:10316000A17A002904D02348143000F085F870BDFE
+:103170002049C0220E310D808D700A708279002A9C
+:1031800001D0E0220A70027A002A03D00A781023C4
+:103190001A430A700022825E4088404200B2030651
+:1031A00003D50B7808252B430B70430603D50B780A
+:1031B00004252B430B70130603D50B7802252B43F4
+:1031C0000B7053060125002B02DA0B782B430B7092
+:1031D0009206920E80064A70800E88700548143060
+:1031E00000F04AF8034903220E310348FEF78FFB33
+:1031F000A57270BD48000020F001002070B50D469A
+:10320000044600F020F8002801D0012070BD20788D
+:103210000C226168504308182946FCF77FFF20788C
+:10322000A178401CFCF764FF2170002070BD10B530
+:10323000044681700C204843FFF7FEFE6060204684
+:1032400000F026F810BD10B5044681780078401CC7
+:10325000FCF74EFF6078814201D1012010BD0020B3
+:1032600010BD41780278914201D10020704740683A
+:103270000C2251434018704710B50446407821781D
+:10328000884204D0A178401CFCF732FF617010BD69
+:1032900010B500210170417081780C2251434068C3
+:1032A000FCF755FF10BD000010B510210648FCF7D3
+:1032B0004EFF0121044802224170827001710272A6
+:1032C0004271C17110BD0000ED02002070B50F4DBC
+:1032D0006988A868FDF756F80446A988E868FDF7EC
+:1032E00051F8012802D0002809D00AE0012C02D0B0
+:1032F000002C02D005E0032070BD022070BD012C1F
+:1033000001D0002070BD012070BD0000040000202D
+:1033100010B5054CA0606180E260A38000F078F9F0
+:1033200000F086F910BD00000400002010B5094A25
+:103330005378002B06D01278012A05D0022A06D035
+:10334000092010BD012010BD00F006F810BD00F0EE
+:1033500019F810BD0400002010B5532805D95728CE
+:1033600003D0582801D0032010BD002907D0142213
+:10337000002100F0BFF90028F6D0452010BD8021C3
+:103380000843F4E710B5592810D2614A145CFF2CA9
+:103390007ED0002902D014220021ABE014220021AB
+:1033A000F02000F0A7F9002873D1F4E7632816D0C5
+:1033B00077285AD00246603A1F2A6BD8544A5932AD
+:1033C000101860380478FF2C62D000297ED01422B7
+:1033D0000021E02000F08EF900285AD188E0002971
+:1033E0001CD014220021E02000F084F9002850D1E4
+:1033F00014220021122000F07DF9002849D1142266
+:103400000021E02000F076F900287DD1142200216F
+:103410007C2000F06FF9002876D110BD1422002125
+:10342000E02000F067F900286ED114220021F0207E
+:1034300000F060F9002867D1142200217C2000F000
+:1034400059F9002860D114220021E02000F052F93F
+:10345000002859D114220021F02000F04BF9002857
+:1034600052D1142200211220D3E70029A6D0142221
+:103470000021E12000F03EF9002845D1142200216E
+:10348000104600F037F900283ED11422002102E056
+:103490002CE039E03AE0772000F02CF9002833D115
+:1034A00014220021E12000F025F900282CD114225B
+:1034B0000021F02000F01EF9002825D1142200215F
+:1034C000104600F017F900281ED100E014E0142285
+:1034D0000021F02000F00EF9002815D1142200215F
+:1034E000772000F007F900280ED110BD022010BD92
+:1034F0001422012120468CE714220021E02000F054
+:10350000F9F8002800D149E7452010BD032010BD7F
+:10351000D0410008F3B581B00F4600250126FCF725
+:1035200041FF3A4C206107E0FCF73CFF2169401A5B
+:10353000B84201D30420FEBDFFF7C8FE0128F3D135
+:103540001220FFF74FFA00226188A068FCF723FFE2
+:103550002420FFF747FA01226188A068FCF71BFFCF
+:103560001220FFF73FFAA188E068FCF70BFF012863
+:1035700000D135437004060C1220FFF733FA002205
+:103580006188A068FCF707FF2420FFF72BFA0122CF
+:103590006188A068FCF7FFFE1220FFF723FAFF2ED8
+:1035A000E1D91220FFF71EFA00226188A068FCF71B
+:1035B000F2FE2420FFF716FA01226188A068FCF7CA
+:1035C000EAFE1220FFF70EFA1220FFF70BFA002294
+:1035D000A188E068FCF7DFFE00226188A068FCF7A4
+:1035E000DAFE2420FFF7FEF901226188A068FCF7CB
+:1035F000D2FE1220FFF7F6F90122A188E068FCF75D
+:10360000CAFE019805700020FEBD000004000020E5
+:1036100010B5064C01226188A068FCF7BCFE0122AF
+:10362000A188E068FCF7B7FE10BD00000400002090
+:1036300002480221017001214170704704000020FE
+:1036400038B5FFF743FE284C0228A07114D001289A
+:1036500015D003280FD1221D511E2448FFF736FB39
+:10366000002808D12179E078FFF760FE452836D0A0
+:103670001E48FFF73BFB38BDFFF7CAFF38BDFF21EF
+:103680006846017018480A21401CFFF743FF69464D
+:103690006078FFF745FB68460478FF2CEED01348AE
+:1036A00020216038FCF753FD1048CD2160380170AF
+:1036B000014620314978417081218170E207012162
+:1036C000002A00D0C170A20700D50171620700D5A1
+:1036D0004171012251030648FCF75DFE38BD01200F
+:1036E000FCF77BFD38BD000048000020C002002030
+:1036F00000080048F8B515460E460746FCF752FE8E
+:103700000C4C206107E0FCF74DFE2169401AA842ED
+:1037100001D30120F8BDFFF7D9FD0328F3D1002E16
+:1037200003D0AF208000FFF75DF9384600F004F8C1
+:10373000F8BD000004000020F8B5474C05460126FE
+:103740000022A188E068FCF726FE1220FFF74AF964
+:1037500000226188A068FCF71EFE2420FFF742F9D2
+:1037600001226188A068FCF716FE1220FFF73AF9E3
+:103770006188A068FCF706FE002868D00027E807EB
+:1037800001D0012200E00022A188E068FCF703FEDE
+:103790001220FFF727F900226188A068FCF7FBFDE3
+:1037A0002420FFF71FF901226188A068FCF7F3FDD0
+:1037B0001220FFF717F96188A068FCF7E3FD0028E5
+:1037C00045D0E807C00F46406D087F1C082FD6DBA8
+:1037D000002E01D0012200E00022A188E068FCF761
+:1037E000DAFD1220FFF7FEF800226188A068FCF7DE
+:1037F000D2FD2420FFF7F6F801226188A068FCF7CB
+:10380000CAFD1220FFF7EEF86188A068FCF7BAFD48
+:1038100000281CD00122A188E068FCF7BCFD122022
+:10382000FFF7E0F800226188A068FCF7B4FD2420CF
+:10383000FFF7D8F801226188A068FCF7ACFD1220E0
+:10384000FFF7D0F8C820FFF7CDF80020F8BDFFF74C
+:10385000DFFE4520F8BD00000400002010B5164C26
+:1038600061892069FCF78EFD012805D12189E06876
+:10387000FCF788FD012806D061892069FCF782FDEC
+:10388000012802D007E0032010BD2189E068FCF781
+:1038900079FD002806D061892069FCF773FD0028B6
+:1038A00002D007E0022010BD2189E068FCF76AFD24
+:1038B0000128F8D0002010BD18000020F8B5374EC0
+:1038C000054630780C46002804D0B079002803D093
+:1038D0000320F8BD0120F8BD0821601CFCF737FC6F
+:1038E0000320207008206070A879002801D00920EA
+:1038F0006070287A0221002802D060780843607046
+:10390000E8790422002802D060781043607000201B
+:10391000285E1023002802DA6078184360700220C5
+:10392000285E2027002802DA607838436070287803
+:10393000A070A878E0707079032806D0042806D01B
+:10394000002800D022700020F8BD28791EE0687A97
+:10395000002802D0207918432071A87A002802D0CC
+:1039600020793843207105202856002801DD207970
+:1039700003E0002803DA20790E2108432071042097
+:103980002856002804DD2079012105E02071D9E7BF
+:103990000028D7DA20790F210843F7E71800002024
+:1039A000F8B500250E46FF2810D0E6380021012783
+:1039B000584C0300FEF710FF11A0A69063619B9B7B
+:1039C0009B5A9B549B331E1C1A179B0000F03EF918
+:1039D0001421FA2000F0ECF9FA21AA2000F0DBF91A
+:1039E0001421002075E000F03DF980E021707EE0B8
+:1039F00027707CE01421FA2000F0DAF9454896217E
+:103A0000401C00F097F800282FD14249207914314A
+:103A100062780A5407286AD2401C207167E014219A
+:103A2000FA2000F0C5F92179022916D93948143055
+:103A300040182038C17F50290FD1817F642902D0DE
+:103A4000C82905D009E0407FC82806D1032003E03B
+:103A5000407FC82801D1042060711421607938E0CA
+:103A60001421FA2000F0A4F9A771F8BD1421FA205E
+:103A700000F09EF90220A071F8BDA17137E0142179
+:103A8000FA2000F095F9A079012800D1402520788E
+:103A9000002801D020200543E078022801D1102021
+:103AA0000543B079002801D004200543F0790028AF
+:103AB00001D002200543307A002800D03D43142174
+:103AC000284600F068F91421A07800F064F9142168
+:103AD000607800F060F9F8BD1421FA2000F068F970
+:103AE0000C489621801C00F025F80028F3D1142101
+:103AF000FA2000F05DF9F8BD1421FA2000F058F921
+:103B0000E770F8BD1421FA2000F052F90220E070AD
+:103B1000F8BD00001800002010B5054CE0602181C0
+:103B20002261638100F092F800F080F810BD00007F
+:103B300018000020F3B581B00F4600250126FCF7E0
+:103B400031FC044606E0FCF72DFC001BB84201D313
+:103B50000420FEBDFFF782FE0128F4D11220FEF7FB
+:103B600041FF314C00222189E068FCF714FC24203D
+:103B7000FEF738FF01222189E068FCF70CFC1220D7
+:103B8000FEF730FF61892069FCF7FCFB012800D1BA
+:103B900035437004060C1220FEF724FF0022218911
+:103BA000E068FCF7F8FB2420FEF71CFF01222189C6
+:103BB000E068FCF7F0FB1220FEF714FFFF2EE1D9BE
+:103BC0001220FEF70FFF00222189E068FCF7E3FBDB
+:103BD0002420FEF707FF01222189E068FCF7DBFBC8
+:103BE0001220FEF7FFFE1220FEF7FCFE0022618984
+:103BF0002069FCF7D0FB00222189E068FCF7CBFBB1
+:103C00002420FEF7EFFE01222189E068FCF7C3FBC8
+:103C10001220FEF7E7FE012261892069FCF7BBFB59
+:103C2000019805700020FEBD1800002010B5064C5C
+:103C300001222189E068FCF7AEFB0122618920693D
+:103C4000FCF7A9FB10BD00001800002000B500F033
+:103C500009F803490020087148618861487100BD76
+:103C60001800002005486421417002218170012163
+:103C7000C1700021017081717047000018000020A0
+:103C800010B500F075F8002807D16421AA2000F0D3
+:103C900082F86421002000F07EF810BD70B50E4659
+:103CA0000546002407E028194078314600F073F8F3
+:103CB000002804D1641C2878A042F4DC002070BDE8
+:103CC00070B5FFF7CBFD274C0228607111D0012899
+:103CD00012D020461430FFF7C4FA002808D0224939
+:103CE000FFF7ECFD002812D020461430FFF7C4FA8D
+:103CF00070BDFFF79BFF70BD1A480A21801CFFF7BB
+:103D000019FF1949A0781839FFF74AFE70BDC8227B
+:103D10000820FEF79BFF002800D001221146124820
+:103D2000FFF7BCFF002817D0104D012208212846BC
+:103D3000FCF731FBFCF736FB044604E0FCF732FBF2
+:103D4000001B192803D8FFF789FD0328F6D10022AC
+:103D500008212846FCF71FFB02481430FFF798FAA9
+:103D600070BD000048000020E4020020000400486C
+:103D700070B50546FCF716FB044606E0FCF712FB9F
+:103D8000001BA84201D3042070BDFFF767FD032884
+:103D9000F4D1002070BD10B504460846FFF7E8FFD7
+:103DA000002801D0042010BD204600F013F810BDFB
+:103DB00010B504460846FFF7DBFF002801D00420B9
+:103DC00010BDAF208000FEF70DFE204600F002F887
+:103DD00010BD0000F8B5474C054601260022618958
+:103DE0002069FCF7D8FA1220FEF7FCFD0022218999
+:103DF000E068FCF7D0FA2420FEF7F4FD01222189C7
+:103E0000E068FCF7C8FA1220FEF7ECFD2189E068B3
+:103E1000FCF7B8FA002868D00027E80701D0012293
+:103E200000E0002261892069FCF7B5FA1220FEF754
+:103E3000D9FD00222189E068FCF7ADFA2420FEF7C5
+:103E4000D1FD01222189E068FCF7A5FA1220FEF7D6
+:103E5000C9FD2189E068FCF795FA002845D0E807FC
+:103E6000C00F46406D087F1C082FD6DB002E01D006
+:103E7000012200E0002261892069FCF78CFA1220FF
+:103E8000FEF7B0FD00222189E068FCF784FA2420C7
+:103E9000FEF7A8FD01222189E068FCF77CFA1220D8
+:103EA000FEF7A0FD2189E068FCF76CFA00281CD021
+:103EB000012261892069FCF76EFA1220FEF792FD5B
+:103EC00000222189E068FCF766FA2420FEF78AFDCB
+:103ED00001222189E068FCF75EFA1220FEF782FDDC
+:103EE000FA20FEF77FFD0020F8BDFFF79FFE45207A
+:103EF000F8BD000018000020012803D0032803D0DB
+:103F000041207047432070473F20704711A0FEF7C3
+:103F100053FC134D0024295D12A0FEF74DFC641CD8
+:103F2000202CF8DB10A0FEF747FC134D00240821DD
+:103F30002846FCF72CFA6420FCF74FF9641C642C2B
+:103F4000F5DBBFF34F8F0E490C48C860BFF34F8FAE
+:103F500000BFFDE7535049204552524F520A00001E
+:103F600080020020256420000A7265626F6F746908
+:103F70006E672E2E2E0A0000000400480400FA0589
+:103F800000ED00E070B50646FCF70CFA0446084D5B
+:103F900006E0FCF707FA001BB04201D9042070BD0F
+:103FA00029886868FCF7EEF90028F2D0002070BD7F
+:103FB0003400002010B50E4C21886068FCF7E2F94F
+:103FC000012802D1FCF7EEF9E060FCF7EBF9E168BB
+:103FD000401A14280BD9C820FFF7D4FF1420FCF78F
+:103FE000FCF8AA2000F094F80A20FCF7F6F810BDBF
+:103FF0003400002010B500F05DF8FCF7D3F901495A
+:10400000C86010BD3400002010B5034C60602180F2
+:10401000A260638010BD00003400002070B504462B
+:1040200066380300FEF7D8FB0A1406080A0C0E10C7
+:104030001216181A482413E04A2411E04B240FE00A
+:104040004E240DE04F240BE0502409E0512407E0FA
+:10405000472405E0522403E0532401E0532C0BD8FD
+:10406000022902D000290DD00EE0FCF79BF9084D83
+:104070002969401A502801D8002070BDFCF792F938
+:10408000286101E080200443204600F041F870BD23
+:104090003400002010B5064C012221886068FCF72E
+:1040A0007AF901226188A068FCF775F910BD00005B
+:1040B0003400002010B5064C012221886068FCF70E
+:1040C0006AF900226188A068FCF765F910BD00005C
+:1040D0003400002010B5FFF76DFF0B4A0B48511E4E
+:1040E000FEF7F4FD00280AD10748001F0179C078C7
+:1040F000FFF794FF452803D00448FEF7F7FD10BDF5
+:104100000120FCF76AF810BD4C000020C00200201E
+:1041100070B52E4C054621886068FCF733F90028FD
+:104120002AD0002221886068FCF735F90520FEF7C7
+:1041300059FC01226188A068FCF72DF96E20FEF77A
+:1041400051FC6188A068FCF71DF9002814D00122F9
+:1041500021886068FCF71FF94120FEF743FC00222C
+:1041600021886068FCF717F91E20FEF73BFC00264B
+:10417000E80705D0012204E0FFF79CFF452070BD51
+:1041800000226188A068FCF706F901222188606896
+:10419000FCF701F94120FEF725FC00222188606828
+:1041A000FCF7F9F81E20FEF71DFC6D08761C082EA2
+:1041B000DEDB012221886068FCF7EDF800226188CF
+:1041C000A068FCF7E8F8002070BD00003400002073
+:1041D000FF76161E26252E363D3E46454E55660D6B
+:1041E000151D242D2C353C43444D545B5A141C1B87
+:1041F000232B34333B424B4C520E125D1A22212AA0
+:1042000032313A41494A597C1129580506040C03B8
+:104210000B830A0109777E6C757D7B6B73747969FA
+:10422000727A7071FFFF6178075A144AFF11FF6CB0
+:10423000757D6B7469727A7071FFFFFFFFFFFFFF7E
+:10424000FFFFFFFFFFFF1F272F0001060755534207
+:104250003456432050726F746F636F6C20426F61ED
+:1042600072640A49424D20504320436F6D7061745F
+:1042700069626C650A64656B754E756B656D20329D
+:104280003032320000000000000000000102030490
+:10429000060708090000000001020304BC420008F0
+:1042A0000000002080000000F22700083C430008C6
+:1042B00080000020800800000228000800000000A4
+:1042C00002010000000000000000000000000000EB
:1042D00000000000000000000000000000000000DE
:1042E00000000000000000000000000000000000CE
:1042F00000000000000000000000000000000000BE
:1043000000000000000000000000000000000000AD
:10431000000000000000000000000000000000009D
-:10432000000000000000000000000000000000008D
-:1043300000127A00000000000000000000000000F1
+:1043200000000000000000000000000000127A0001
+:0C43300000000000000000000000000081
:04000005080000C12E
:00000001FF
diff --git a/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.htm b/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.htm
index 68a3fabe..a7326bbc 100644
--- a/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.htm
+++ b/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.htm
@@ -3,7 +3,7 @@
Static Call Graph - [ibmpc\ibmpc.axf]
Static Call Graph for image ibmpc\ibmpc.axf
-
#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Wed May 04 22:21:35 2022
+
#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Thu May 05 21:55:50 2022
Maximum Stack Usage = 212 bytes + Unknown(Cycles, Untraceable Function Pointers)
Call chain for Maximum Stack Depth:
@@ -1060,7 +1060,7 @@
[Called By]
-
main (Thumb, 426 bytes, Stack size 16 bytes, main.o(i.main))
+
main (Thumb, 424 bytes, Stack size 16 bytes, main.o(i.main))
[Stack]
- Max Depth = 212
- Call Chain = main ⇒ SystemClock_Config ⇒ HAL_RCC_ClockConfig ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uidivmod
[Calls]- >> MX_USART3_UART_Init
diff --git a/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.map b/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.map
index 4b31a839..270dab94 100644
--- a/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.map
+++ b/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc.map
@@ -2018,61 +2018,61 @@ Image Symbol Table
i.kb_buf_reset 0x08002d04 Section 0 helpers.o(i.kb_buf_reset)
i.keyboard_reply 0x08002d20 Section 0 ps2kb.o(i.keyboard_reply)
i.main 0x08002e2c Section 0 main.o(i.main)
- i.malloc 0x0800303c Section 0 malloc.o(i.malloc)
- i.mcp4451_is_available 0x080030a8 Section 0 mcp4451.o(i.mcp4451_is_available)
- i.mcp4451_reset 0x080030c8 Section 0 mcp4451.o(i.mcp4451_reset)
- i.mcp4451_write_wiper 0x080030f4 Section 0 mcp4451.o(i.mcp4451_write_wiper)
- i.micros 0x0800312c Section 0 delay_us.o(i.micros)
- i.microsoft_serial_mouse_update 0x0800313c Section 0 main.o(i.microsoft_serial_mouse_update)
- i.mouse_buf_add 0x08003200 Section 0 helpers.o(i.mouse_buf_add)
- i.mouse_buf_init 0x08003232 Section 0 helpers.o(i.mouse_buf_init)
- i.mouse_buf_is_full 0x0800324a Section 0 helpers.o(i.mouse_buf_is_full)
- i.mouse_buf_peek 0x08003266 Section 0 helpers.o(i.mouse_buf_peek)
- i.mouse_buf_pop 0x0800327c Section 0 helpers.o(i.mouse_buf_pop)
- i.mouse_buf_reset 0x08003294 Section 0 helpers.o(i.mouse_buf_reset)
- i.protocol_status_lookup_init 0x080032ac Section 0 main.o(i.protocol_status_lookup_init)
- i.ps2kb_get_bus_status 0x080032d0 Section 0 ps2kb.o(i.ps2kb_get_bus_status)
- i.ps2kb_init 0x08003314 Section 0 ps2kb.o(i.ps2kb_init)
- i.ps2kb_press_key 0x08003330 Section 0 ps2kb.o(i.ps2kb_press_key)
- i.ps2kb_press_key_scancode_1 0x0800335c Section 0 ps2kb.o(i.ps2kb_press_key_scancode_1)
- i.ps2kb_press_key_scancode_2 0x08003388 Section 0 ps2kb.o(i.ps2kb_press_key_scancode_2)
- i.ps2kb_read 0x08003518 Section 0 ps2kb.o(i.ps2kb_read)
- i.ps2kb_release_lines 0x08003614 Section 0 ps2kb.o(i.ps2kb_release_lines)
- i.ps2kb_reset 0x08003634 Section 0 ps2kb.o(i.ps2kb_reset)
- i.ps2kb_update 0x08003644 Section 0 main.o(i.ps2kb_update)
- i.ps2kb_write 0x080036f8 Section 0 ps2kb.o(i.ps2kb_write)
- i.ps2kb_write_nowait 0x0800373c Section 0 ps2kb.o(i.ps2kb_write_nowait)
- i.ps2mouse_get_bus_status 0x08003860 Section 0 ps2mouse.o(i.ps2mouse_get_bus_status)
- i.ps2mouse_get_outgoing_data 0x080038c0 Section 0 ps2mouse.o(i.ps2mouse_get_outgoing_data)
- i.ps2mouse_host_req_reply 0x080039a4 Section 0 ps2mouse.o(i.ps2mouse_host_req_reply)
- i.ps2mouse_init 0x08003b1c Section 0 ps2mouse.o(i.ps2mouse_init)
- i.ps2mouse_read 0x08003b38 Section 0 ps2mouse.o(i.ps2mouse_read)
- i.ps2mouse_release_lines 0x08003c30 Section 0 ps2mouse.o(i.ps2mouse_release_lines)
- i.ps2mouse_reset 0x08003c50 Section 0 ps2mouse.o(i.ps2mouse_reset)
- i.ps2mouse_restore_defaults 0x08003c68 Section 0 ps2mouse.o(i.ps2mouse_restore_defaults)
- i.ps2mouse_send_bat 0x08003c84 Section 0 ps2mouse.o(i.ps2mouse_send_bat)
- i.ps2mouse_send_update 0x08003ca0 Section 0 ps2mouse.o(i.ps2mouse_send_update)
- i.ps2mouse_update 0x08003cc4 Section 0 main.o(i.ps2mouse_update)
- i.ps2mouse_wait_for_idle 0x08003d74 Section 0 ps2mouse.o(i.ps2mouse_wait_for_idle)
- i.ps2mouse_write 0x08003d9a Section 0 ps2mouse.o(i.ps2mouse_write)
- i.ps2mouse_write_delay_start 0x08003db4 Section 0 ps2mouse.o(i.ps2mouse_write_delay_start)
- i.ps2mouse_write_nowait 0x08003dd8 Section 0 ps2mouse.o(i.ps2mouse_write_nowait)
- i.scancode_set_reply_lookup 0x08003efc Section 0 ps2kb.o(i.scancode_set_reply_lookup)
- i.spi_error_dump_reboot 0x08003f10 Section 0 main.o(i.spi_error_dump_reboot)
- i.wait_for_clk_high 0x08003f88 Section 0 xt_kb.o(i.wait_for_clk_high)
- i.xtkb_check_for_softreset 0x08003fb8 Section 0 xt_kb.o(i.xtkb_check_for_softreset)
- i.xtkb_enable 0x08003ff8 Section 0 xt_kb.o(i.xtkb_enable)
- i.xtkb_init 0x0800400c Section 0 xt_kb.o(i.xtkb_init)
- i.xtkb_press_key 0x08004020 Section 0 xt_kb.o(i.xtkb_press_key)
- i.xtkb_release_lines 0x08004098 Section 0 xt_kb.o(i.xtkb_release_lines)
- i.xtkb_reset_bus 0x080040b8 Section 0 xt_kb.o(i.xtkb_reset_bus)
- i.xtkb_update 0x080040d8 Section 0 main.o(i.xtkb_update)
- i.xtkb_write 0x08004114 Section 0 xt_kb.o(i.xtkb_write)
- .constdata 0x080041d4 Section 121 ps2kb.o(.constdata)
- .constdata 0x0800424d Section 4 mcp4451.o(.constdata)
- .constdata 0x08004251 Section 55 main.o(.constdata)
- .constdata 0x08004288 Section 16 system_stm32f0xx.o(.constdata)
- .constdata 0x08004298 Section 8 system_stm32f0xx.o(.constdata)
+ i.malloc 0x08003038 Section 0 malloc.o(i.malloc)
+ i.mcp4451_is_available 0x080030a4 Section 0 mcp4451.o(i.mcp4451_is_available)
+ i.mcp4451_reset 0x080030c4 Section 0 mcp4451.o(i.mcp4451_reset)
+ i.mcp4451_write_wiper 0x080030f0 Section 0 mcp4451.o(i.mcp4451_write_wiper)
+ i.micros 0x08003128 Section 0 delay_us.o(i.micros)
+ i.microsoft_serial_mouse_update 0x08003138 Section 0 main.o(i.microsoft_serial_mouse_update)
+ i.mouse_buf_add 0x080031fc Section 0 helpers.o(i.mouse_buf_add)
+ i.mouse_buf_init 0x0800322e Section 0 helpers.o(i.mouse_buf_init)
+ i.mouse_buf_is_full 0x08003246 Section 0 helpers.o(i.mouse_buf_is_full)
+ i.mouse_buf_peek 0x08003262 Section 0 helpers.o(i.mouse_buf_peek)
+ i.mouse_buf_pop 0x08003278 Section 0 helpers.o(i.mouse_buf_pop)
+ i.mouse_buf_reset 0x08003290 Section 0 helpers.o(i.mouse_buf_reset)
+ i.protocol_status_lookup_init 0x080032a8 Section 0 main.o(i.protocol_status_lookup_init)
+ i.ps2kb_get_bus_status 0x080032cc Section 0 ps2kb.o(i.ps2kb_get_bus_status)
+ i.ps2kb_init 0x08003310 Section 0 ps2kb.o(i.ps2kb_init)
+ i.ps2kb_press_key 0x0800332c Section 0 ps2kb.o(i.ps2kb_press_key)
+ i.ps2kb_press_key_scancode_1 0x08003358 Section 0 ps2kb.o(i.ps2kb_press_key_scancode_1)
+ i.ps2kb_press_key_scancode_2 0x08003384 Section 0 ps2kb.o(i.ps2kb_press_key_scancode_2)
+ i.ps2kb_read 0x08003514 Section 0 ps2kb.o(i.ps2kb_read)
+ i.ps2kb_release_lines 0x08003610 Section 0 ps2kb.o(i.ps2kb_release_lines)
+ i.ps2kb_reset 0x08003630 Section 0 ps2kb.o(i.ps2kb_reset)
+ i.ps2kb_update 0x08003640 Section 0 main.o(i.ps2kb_update)
+ i.ps2kb_write 0x080036f4 Section 0 ps2kb.o(i.ps2kb_write)
+ i.ps2kb_write_nowait 0x08003738 Section 0 ps2kb.o(i.ps2kb_write_nowait)
+ i.ps2mouse_get_bus_status 0x0800385c Section 0 ps2mouse.o(i.ps2mouse_get_bus_status)
+ i.ps2mouse_get_outgoing_data 0x080038bc Section 0 ps2mouse.o(i.ps2mouse_get_outgoing_data)
+ i.ps2mouse_host_req_reply 0x080039a0 Section 0 ps2mouse.o(i.ps2mouse_host_req_reply)
+ i.ps2mouse_init 0x08003b18 Section 0 ps2mouse.o(i.ps2mouse_init)
+ i.ps2mouse_read 0x08003b34 Section 0 ps2mouse.o(i.ps2mouse_read)
+ i.ps2mouse_release_lines 0x08003c2c Section 0 ps2mouse.o(i.ps2mouse_release_lines)
+ i.ps2mouse_reset 0x08003c4c Section 0 ps2mouse.o(i.ps2mouse_reset)
+ i.ps2mouse_restore_defaults 0x08003c64 Section 0 ps2mouse.o(i.ps2mouse_restore_defaults)
+ i.ps2mouse_send_bat 0x08003c80 Section 0 ps2mouse.o(i.ps2mouse_send_bat)
+ i.ps2mouse_send_update 0x08003c9c Section 0 ps2mouse.o(i.ps2mouse_send_update)
+ i.ps2mouse_update 0x08003cc0 Section 0 main.o(i.ps2mouse_update)
+ i.ps2mouse_wait_for_idle 0x08003d70 Section 0 ps2mouse.o(i.ps2mouse_wait_for_idle)
+ i.ps2mouse_write 0x08003d96 Section 0 ps2mouse.o(i.ps2mouse_write)
+ i.ps2mouse_write_delay_start 0x08003db0 Section 0 ps2mouse.o(i.ps2mouse_write_delay_start)
+ i.ps2mouse_write_nowait 0x08003dd4 Section 0 ps2mouse.o(i.ps2mouse_write_nowait)
+ i.scancode_set_reply_lookup 0x08003ef8 Section 0 ps2kb.o(i.scancode_set_reply_lookup)
+ i.spi_error_dump_reboot 0x08003f0c Section 0 main.o(i.spi_error_dump_reboot)
+ i.wait_for_clk_high 0x08003f84 Section 0 xt_kb.o(i.wait_for_clk_high)
+ i.xtkb_check_for_softreset 0x08003fb4 Section 0 xt_kb.o(i.xtkb_check_for_softreset)
+ i.xtkb_enable 0x08003ff4 Section 0 xt_kb.o(i.xtkb_enable)
+ i.xtkb_init 0x08004008 Section 0 xt_kb.o(i.xtkb_init)
+ i.xtkb_press_key 0x0800401c Section 0 xt_kb.o(i.xtkb_press_key)
+ i.xtkb_release_lines 0x08004094 Section 0 xt_kb.o(i.xtkb_release_lines)
+ i.xtkb_reset_bus 0x080040b4 Section 0 xt_kb.o(i.xtkb_reset_bus)
+ i.xtkb_update 0x080040d4 Section 0 main.o(i.xtkb_update)
+ i.xtkb_write 0x08004110 Section 0 xt_kb.o(i.xtkb_write)
+ .constdata 0x080041d0 Section 121 ps2kb.o(.constdata)
+ .constdata 0x08004249 Section 4 mcp4451.o(.constdata)
+ .constdata 0x0800424d Section 55 main.o(.constdata)
+ .constdata 0x08004284 Section 16 system_stm32f0xx.o(.constdata)
+ .constdata 0x08004294 Section 8 system_stm32f0xx.o(.constdata)
.data 0x20000000 Section 4 delay_us.o(.data)
.data 0x20000004 Section 20 ps2kb.o(.data)
.data 0x20000018 Section 28 ps2mouse.o(.data)
@@ -2296,65 +2296,65 @@ Image Symbol Table
kb_buf_pop 0x08002ced Thumb Code 24 helpers.o(i.kb_buf_pop)
kb_buf_reset 0x08002d05 Thumb Code 28 helpers.o(i.kb_buf_reset)
keyboard_reply 0x08002d21 Thumb Code 264 ps2kb.o(i.keyboard_reply)
- main 0x08002e2d Thumb Code 426 main.o(i.main)
- malloc 0x0800303d Thumb Code 92 malloc.o(i.malloc)
- mcp4451_is_available 0x080030a9 Thumb Code 26 mcp4451.o(i.mcp4451_is_available)
- mcp4451_reset 0x080030c9 Thumb Code 38 mcp4451.o(i.mcp4451_reset)
- mcp4451_write_wiper 0x080030f5 Thumb Code 46 mcp4451.o(i.mcp4451_write_wiper)
- micros 0x0800312d Thumb Code 10 delay_us.o(i.micros)
- microsoft_serial_mouse_update 0x0800313d Thumb Code 188 main.o(i.microsoft_serial_mouse_update)
- mouse_buf_add 0x08003201 Thumb Code 50 helpers.o(i.mouse_buf_add)
- mouse_buf_init 0x08003233 Thumb Code 24 helpers.o(i.mouse_buf_init)
- mouse_buf_is_full 0x0800324b Thumb Code 28 helpers.o(i.mouse_buf_is_full)
- mouse_buf_peek 0x08003267 Thumb Code 22 helpers.o(i.mouse_buf_peek)
- mouse_buf_pop 0x0800327d Thumb Code 24 helpers.o(i.mouse_buf_pop)
- mouse_buf_reset 0x08003295 Thumb Code 22 helpers.o(i.mouse_buf_reset)
- protocol_status_lookup_init 0x080032ad Thumb Code 30 main.o(i.protocol_status_lookup_init)
- ps2kb_get_bus_status 0x080032d1 Thumb Code 62 ps2kb.o(i.ps2kb_get_bus_status)
- ps2kb_init 0x08003315 Thumb Code 22 ps2kb.o(i.ps2kb_init)
- ps2kb_press_key 0x08003331 Thumb Code 40 ps2kb.o(i.ps2kb_press_key)
- ps2kb_press_key_scancode_1 0x0800335d Thumb Code 44 ps2kb.o(i.ps2kb_press_key_scancode_1)
- ps2kb_press_key_scancode_2 0x08003389 Thumb Code 396 ps2kb.o(i.ps2kb_press_key_scancode_2)
- ps2kb_read 0x08003519 Thumb Code 246 ps2kb.o(i.ps2kb_read)
- ps2kb_release_lines 0x08003615 Thumb Code 26 ps2kb.o(i.ps2kb_release_lines)
- ps2kb_reset 0x08003635 Thumb Code 12 ps2kb.o(i.ps2kb_reset)
- ps2kb_update 0x08003645 Thumb Code 166 main.o(i.ps2kb_update)
- ps2kb_write 0x080036f9 Thumb Code 62 ps2kb.o(i.ps2kb_write)
- ps2kb_write_nowait 0x0800373d Thumb Code 286 ps2kb.o(i.ps2kb_write_nowait)
- ps2mouse_get_bus_status 0x08003861 Thumb Code 92 ps2mouse.o(i.ps2mouse_get_bus_status)
- ps2mouse_get_outgoing_data 0x080038c1 Thumb Code 224 ps2mouse.o(i.ps2mouse_get_outgoing_data)
- ps2mouse_host_req_reply 0x080039a5 Thumb Code 370 ps2mouse.o(i.ps2mouse_host_req_reply)
- ps2mouse_init 0x08003b1d Thumb Code 22 ps2mouse.o(i.ps2mouse_init)
- ps2mouse_read 0x08003b39 Thumb Code 244 ps2mouse.o(i.ps2mouse_read)
- ps2mouse_release_lines 0x08003c31 Thumb Code 26 ps2mouse.o(i.ps2mouse_release_lines)
- ps2mouse_reset 0x08003c51 Thumb Code 20 ps2mouse.o(i.ps2mouse_reset)
- ps2mouse_restore_defaults 0x08003c69 Thumb Code 22 ps2mouse.o(i.ps2mouse_restore_defaults)
- ps2mouse_send_bat 0x08003c85 Thumb Code 28 ps2mouse.o(i.ps2mouse_send_bat)
- ps2mouse_send_update 0x08003ca1 Thumb Code 36 ps2mouse.o(i.ps2mouse_send_update)
- ps2mouse_update 0x08003cc5 Thumb Code 162 main.o(i.ps2mouse_update)
- ps2mouse_wait_for_idle 0x08003d75 Thumb Code 38 ps2mouse.o(i.ps2mouse_wait_for_idle)
- ps2mouse_write 0x08003d9b Thumb Code 26 ps2mouse.o(i.ps2mouse_write)
- ps2mouse_write_delay_start 0x08003db5 Thumb Code 34 ps2mouse.o(i.ps2mouse_write_delay_start)
- ps2mouse_write_nowait 0x08003dd9 Thumb Code 286 ps2mouse.o(i.ps2mouse_write_nowait)
- scancode_set_reply_lookup 0x08003efd Thumb Code 20 ps2kb.o(i.scancode_set_reply_lookup)
- spi_error_dump_reboot 0x08003f11 Thumb Code 72 main.o(i.spi_error_dump_reboot)
- wait_for_clk_high 0x08003f89 Thumb Code 44 xt_kb.o(i.wait_for_clk_high)
- xtkb_check_for_softreset 0x08003fb9 Thumb Code 60 xt_kb.o(i.xtkb_check_for_softreset)
- xtkb_enable 0x08003ff9 Thumb Code 16 xt_kb.o(i.xtkb_enable)
- xtkb_init 0x0800400d Thumb Code 14 xt_kb.o(i.xtkb_init)
- xtkb_press_key 0x08004021 Thumb Code 116 xt_kb.o(i.xtkb_press_key)
- xtkb_release_lines 0x08004099 Thumb Code 26 xt_kb.o(i.xtkb_release_lines)
- xtkb_reset_bus 0x080040b9 Thumb Code 26 xt_kb.o(i.xtkb_reset_bus)
- xtkb_update 0x080040d9 Thumb Code 52 main.o(i.xtkb_update)
- xtkb_write 0x08004115 Thumb Code 186 xt_kb.o(i.xtkb_write)
- linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2 0x080041d4 Data 89 ps2kb.o(.constdata)
- linux_keycode_to_ps2_scancode_lookup_special_codeset2 0x0800422d Data 32 ps2kb.o(.constdata)
- mcp4451_wiper_id_to_reg_addr_lookup 0x0800424d Data 4 mcp4451.o(.constdata)
- boot_message 0x08004251 Data 55 main.o(.constdata)
- AHBPrescTable 0x08004288 Data 16 system_stm32f0xx.o(.constdata)
- APBPrescTable 0x08004298 Data 8 system_stm32f0xx.o(.constdata)
- Region$$Table$$Base 0x080042a0 Number 0 anon$$obj.o(Region$$Table)
- Region$$Table$$Limit 0x080042c0 Number 0 anon$$obj.o(Region$$Table)
+ main 0x08002e2d Thumb Code 424 main.o(i.main)
+ malloc 0x08003039 Thumb Code 92 malloc.o(i.malloc)
+ mcp4451_is_available 0x080030a5 Thumb Code 26 mcp4451.o(i.mcp4451_is_available)
+ mcp4451_reset 0x080030c5 Thumb Code 38 mcp4451.o(i.mcp4451_reset)
+ mcp4451_write_wiper 0x080030f1 Thumb Code 46 mcp4451.o(i.mcp4451_write_wiper)
+ micros 0x08003129 Thumb Code 10 delay_us.o(i.micros)
+ microsoft_serial_mouse_update 0x08003139 Thumb Code 188 main.o(i.microsoft_serial_mouse_update)
+ mouse_buf_add 0x080031fd Thumb Code 50 helpers.o(i.mouse_buf_add)
+ mouse_buf_init 0x0800322f Thumb Code 24 helpers.o(i.mouse_buf_init)
+ mouse_buf_is_full 0x08003247 Thumb Code 28 helpers.o(i.mouse_buf_is_full)
+ mouse_buf_peek 0x08003263 Thumb Code 22 helpers.o(i.mouse_buf_peek)
+ mouse_buf_pop 0x08003279 Thumb Code 24 helpers.o(i.mouse_buf_pop)
+ mouse_buf_reset 0x08003291 Thumb Code 22 helpers.o(i.mouse_buf_reset)
+ protocol_status_lookup_init 0x080032a9 Thumb Code 30 main.o(i.protocol_status_lookup_init)
+ ps2kb_get_bus_status 0x080032cd Thumb Code 62 ps2kb.o(i.ps2kb_get_bus_status)
+ ps2kb_init 0x08003311 Thumb Code 22 ps2kb.o(i.ps2kb_init)
+ ps2kb_press_key 0x0800332d Thumb Code 40 ps2kb.o(i.ps2kb_press_key)
+ ps2kb_press_key_scancode_1 0x08003359 Thumb Code 44 ps2kb.o(i.ps2kb_press_key_scancode_1)
+ ps2kb_press_key_scancode_2 0x08003385 Thumb Code 396 ps2kb.o(i.ps2kb_press_key_scancode_2)
+ ps2kb_read 0x08003515 Thumb Code 246 ps2kb.o(i.ps2kb_read)
+ ps2kb_release_lines 0x08003611 Thumb Code 26 ps2kb.o(i.ps2kb_release_lines)
+ ps2kb_reset 0x08003631 Thumb Code 12 ps2kb.o(i.ps2kb_reset)
+ ps2kb_update 0x08003641 Thumb Code 166 main.o(i.ps2kb_update)
+ ps2kb_write 0x080036f5 Thumb Code 62 ps2kb.o(i.ps2kb_write)
+ ps2kb_write_nowait 0x08003739 Thumb Code 286 ps2kb.o(i.ps2kb_write_nowait)
+ ps2mouse_get_bus_status 0x0800385d Thumb Code 92 ps2mouse.o(i.ps2mouse_get_bus_status)
+ ps2mouse_get_outgoing_data 0x080038bd Thumb Code 224 ps2mouse.o(i.ps2mouse_get_outgoing_data)
+ ps2mouse_host_req_reply 0x080039a1 Thumb Code 370 ps2mouse.o(i.ps2mouse_host_req_reply)
+ ps2mouse_init 0x08003b19 Thumb Code 22 ps2mouse.o(i.ps2mouse_init)
+ ps2mouse_read 0x08003b35 Thumb Code 244 ps2mouse.o(i.ps2mouse_read)
+ ps2mouse_release_lines 0x08003c2d Thumb Code 26 ps2mouse.o(i.ps2mouse_release_lines)
+ ps2mouse_reset 0x08003c4d Thumb Code 20 ps2mouse.o(i.ps2mouse_reset)
+ ps2mouse_restore_defaults 0x08003c65 Thumb Code 22 ps2mouse.o(i.ps2mouse_restore_defaults)
+ ps2mouse_send_bat 0x08003c81 Thumb Code 28 ps2mouse.o(i.ps2mouse_send_bat)
+ ps2mouse_send_update 0x08003c9d Thumb Code 36 ps2mouse.o(i.ps2mouse_send_update)
+ ps2mouse_update 0x08003cc1 Thumb Code 162 main.o(i.ps2mouse_update)
+ ps2mouse_wait_for_idle 0x08003d71 Thumb Code 38 ps2mouse.o(i.ps2mouse_wait_for_idle)
+ ps2mouse_write 0x08003d97 Thumb Code 26 ps2mouse.o(i.ps2mouse_write)
+ ps2mouse_write_delay_start 0x08003db1 Thumb Code 34 ps2mouse.o(i.ps2mouse_write_delay_start)
+ ps2mouse_write_nowait 0x08003dd5 Thumb Code 286 ps2mouse.o(i.ps2mouse_write_nowait)
+ scancode_set_reply_lookup 0x08003ef9 Thumb Code 20 ps2kb.o(i.scancode_set_reply_lookup)
+ spi_error_dump_reboot 0x08003f0d Thumb Code 72 main.o(i.spi_error_dump_reboot)
+ wait_for_clk_high 0x08003f85 Thumb Code 44 xt_kb.o(i.wait_for_clk_high)
+ xtkb_check_for_softreset 0x08003fb5 Thumb Code 60 xt_kb.o(i.xtkb_check_for_softreset)
+ xtkb_enable 0x08003ff5 Thumb Code 16 xt_kb.o(i.xtkb_enable)
+ xtkb_init 0x08004009 Thumb Code 14 xt_kb.o(i.xtkb_init)
+ xtkb_press_key 0x0800401d Thumb Code 116 xt_kb.o(i.xtkb_press_key)
+ xtkb_release_lines 0x08004095 Thumb Code 26 xt_kb.o(i.xtkb_release_lines)
+ xtkb_reset_bus 0x080040b5 Thumb Code 26 xt_kb.o(i.xtkb_reset_bus)
+ xtkb_update 0x080040d5 Thumb Code 52 main.o(i.xtkb_update)
+ xtkb_write 0x08004111 Thumb Code 186 xt_kb.o(i.xtkb_write)
+ linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2 0x080041d0 Data 89 ps2kb.o(.constdata)
+ linux_keycode_to_ps2_scancode_lookup_special_codeset2 0x08004229 Data 32 ps2kb.o(.constdata)
+ mcp4451_wiper_id_to_reg_addr_lookup 0x08004249 Data 4 mcp4451.o(.constdata)
+ boot_message 0x0800424d Data 55 main.o(.constdata)
+ AHBPrescTable 0x08004284 Data 16 system_stm32f0xx.o(.constdata)
+ APBPrescTable 0x08004294 Data 8 system_stm32f0xx.o(.constdata)
+ Region$$Table$$Base 0x0800429c Number 0 anon$$obj.o(Region$$Table)
+ Region$$Table$$Limit 0x080042bc Number 0 anon$$obj.o(Region$$Table)
us_timer 0x20000000 Data 4 delay_us.o(.data)
ps2kb_current_scancode_set 0x20000004 Data 1 ps2kb.o(.data)
ps2kb_data_reporting_enabled 0x20000005 Data 1 ps2kb.o(.data)
@@ -2427,9 +2427,9 @@ Memory Map of the image
Image Entry point : 0x080000c1
- Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00004340, Max: 0x00010000, ABSOLUTE)
+ Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0000433c, Max: 0x00010000, ABSOLUTE)
- Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000042c0, Max: 0x00010000, ABSOLUTE)
+ Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000042bc, Max: 0x00010000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
@@ -2590,83 +2590,83 @@ Memory Map of the image
0x08002cec 0x08002cec 0x00000018 Code RO 164 i.kb_buf_pop helpers.o
0x08002d04 0x08002d04 0x0000001c Code RO 165 i.kb_buf_reset helpers.o
0x08002d20 0x08002d20 0x0000010c Code RO 300 i.keyboard_reply ps2kb.o
- 0x08002e2c 0x08002e2c 0x00000210 Code RO 617 i.main main.o
- 0x0800303c 0x0800303c 0x0000006c Code RO 4234 i.malloc mc_p.l(malloc.o)
- 0x080030a8 0x080030a8 0x00000020 Code RO 495 i.mcp4451_is_available mcp4451.o
- 0x080030c8 0x080030c8 0x0000002c Code RO 496 i.mcp4451_reset mcp4451.o
- 0x080030f4 0x080030f4 0x00000038 Code RO 497 i.mcp4451_write_wiper mcp4451.o
- 0x0800312c 0x0800312c 0x00000010 Code RO 14 i.micros delay_us.o
- 0x0800313c 0x0800313c 0x000000c4 Code RO 618 i.microsoft_serial_mouse_update main.o
- 0x08003200 0x08003200 0x00000032 Code RO 166 i.mouse_buf_add helpers.o
- 0x08003232 0x08003232 0x00000018 Code RO 167 i.mouse_buf_init helpers.o
- 0x0800324a 0x0800324a 0x0000001c Code RO 169 i.mouse_buf_is_full helpers.o
- 0x08003266 0x08003266 0x00000016 Code RO 170 i.mouse_buf_peek helpers.o
- 0x0800327c 0x0800327c 0x00000018 Code RO 171 i.mouse_buf_pop helpers.o
- 0x08003294 0x08003294 0x00000016 Code RO 172 i.mouse_buf_reset helpers.o
- 0x080032aa 0x080032aa 0x00000002 PAD
- 0x080032ac 0x080032ac 0x00000024 Code RO 619 i.protocol_status_lookup_init main.o
- 0x080032d0 0x080032d0 0x00000044 Code RO 301 i.ps2kb_get_bus_status ps2kb.o
- 0x08003314 0x08003314 0x0000001c Code RO 302 i.ps2kb_init ps2kb.o
- 0x08003330 0x08003330 0x0000002c Code RO 303 i.ps2kb_press_key ps2kb.o
- 0x0800335c 0x0800335c 0x0000002c Code RO 304 i.ps2kb_press_key_scancode_1 ps2kb.o
- 0x08003388 0x08003388 0x00000190 Code RO 305 i.ps2kb_press_key_scancode_2 ps2kb.o
- 0x08003518 0x08003518 0x000000fc Code RO 306 i.ps2kb_read ps2kb.o
- 0x08003614 0x08003614 0x00000020 Code RO 307 i.ps2kb_release_lines ps2kb.o
- 0x08003634 0x08003634 0x00000010 Code RO 308 i.ps2kb_reset ps2kb.o
- 0x08003644 0x08003644 0x000000b4 Code RO 620 i.ps2kb_update main.o
- 0x080036f8 0x080036f8 0x00000044 Code RO 309 i.ps2kb_write ps2kb.o
- 0x0800373c 0x0800373c 0x00000124 Code RO 310 i.ps2kb_write_nowait ps2kb.o
- 0x08003860 0x08003860 0x00000060 Code RO 393 i.ps2mouse_get_bus_status ps2mouse.o
- 0x080038c0 0x080038c0 0x000000e4 Code RO 394 i.ps2mouse_get_outgoing_data ps2mouse.o
- 0x080039a4 0x080039a4 0x00000178 Code RO 395 i.ps2mouse_host_req_reply ps2mouse.o
- 0x08003b1c 0x08003b1c 0x0000001c Code RO 396 i.ps2mouse_init ps2mouse.o
- 0x08003b38 0x08003b38 0x000000f8 Code RO 397 i.ps2mouse_read ps2mouse.o
- 0x08003c30 0x08003c30 0x00000020 Code RO 398 i.ps2mouse_release_lines ps2mouse.o
- 0x08003c50 0x08003c50 0x00000018 Code RO 399 i.ps2mouse_reset ps2mouse.o
- 0x08003c68 0x08003c68 0x0000001c Code RO 400 i.ps2mouse_restore_defaults ps2mouse.o
- 0x08003c84 0x08003c84 0x0000001c Code RO 401 i.ps2mouse_send_bat ps2mouse.o
- 0x08003ca0 0x08003ca0 0x00000024 Code RO 402 i.ps2mouse_send_update ps2mouse.o
- 0x08003cc4 0x08003cc4 0x000000b0 Code RO 621 i.ps2mouse_update main.o
- 0x08003d74 0x08003d74 0x00000026 Code RO 403 i.ps2mouse_wait_for_idle ps2mouse.o
- 0x08003d9a 0x08003d9a 0x0000001a Code RO 404 i.ps2mouse_write ps2mouse.o
- 0x08003db4 0x08003db4 0x00000022 Code RO 405 i.ps2mouse_write_delay_start ps2mouse.o
- 0x08003dd6 0x08003dd6 0x00000002 PAD
- 0x08003dd8 0x08003dd8 0x00000124 Code RO 406 i.ps2mouse_write_nowait ps2mouse.o
- 0x08003efc 0x08003efc 0x00000014 Code RO 311 i.scancode_set_reply_lookup ps2kb.o
- 0x08003f10 0x08003f10 0x00000078 Code RO 622 i.spi_error_dump_reboot main.o
- 0x08003f88 0x08003f88 0x00000030 Code RO 533 i.wait_for_clk_high xt_kb.o
- 0x08003fb8 0x08003fb8 0x00000040 Code RO 534 i.xtkb_check_for_softreset xt_kb.o
- 0x08003ff8 0x08003ff8 0x00000014 Code RO 535 i.xtkb_enable xt_kb.o
- 0x0800400c 0x0800400c 0x00000014 Code RO 536 i.xtkb_init xt_kb.o
- 0x08004020 0x08004020 0x00000078 Code RO 537 i.xtkb_press_key xt_kb.o
- 0x08004098 0x08004098 0x00000020 Code RO 538 i.xtkb_release_lines xt_kb.o
- 0x080040b8 0x080040b8 0x00000020 Code RO 539 i.xtkb_reset_bus xt_kb.o
- 0x080040d8 0x080040d8 0x0000003c Code RO 623 i.xtkb_update main.o
- 0x08004114 0x08004114 0x000000c0 Code RO 540 i.xtkb_write xt_kb.o
- 0x080041d4 0x080041d4 0x00000079 Data RO 312 .constdata ps2kb.o
- 0x0800424d 0x0800424d 0x00000004 Data RO 498 .constdata mcp4451.o
- 0x08004251 0x08004251 0x00000037 Data RO 629 .constdata main.o
- 0x08004288 0x08004288 0x00000010 Data RO 3929 .constdata system_stm32f0xx.o
- 0x08004298 0x08004298 0x00000008 Data RO 3930 .constdata system_stm32f0xx.o
- 0x080042a0 0x080042a0 0x00000020 Data RO 4301 Region$$Table anon$$obj.o
+ 0x08002e2c 0x08002e2c 0x0000020c Code RO 617 i.main main.o
+ 0x08003038 0x08003038 0x0000006c Code RO 4234 i.malloc mc_p.l(malloc.o)
+ 0x080030a4 0x080030a4 0x00000020 Code RO 495 i.mcp4451_is_available mcp4451.o
+ 0x080030c4 0x080030c4 0x0000002c Code RO 496 i.mcp4451_reset mcp4451.o
+ 0x080030f0 0x080030f0 0x00000038 Code RO 497 i.mcp4451_write_wiper mcp4451.o
+ 0x08003128 0x08003128 0x00000010 Code RO 14 i.micros delay_us.o
+ 0x08003138 0x08003138 0x000000c4 Code RO 618 i.microsoft_serial_mouse_update main.o
+ 0x080031fc 0x080031fc 0x00000032 Code RO 166 i.mouse_buf_add helpers.o
+ 0x0800322e 0x0800322e 0x00000018 Code RO 167 i.mouse_buf_init helpers.o
+ 0x08003246 0x08003246 0x0000001c Code RO 169 i.mouse_buf_is_full helpers.o
+ 0x08003262 0x08003262 0x00000016 Code RO 170 i.mouse_buf_peek helpers.o
+ 0x08003278 0x08003278 0x00000018 Code RO 171 i.mouse_buf_pop helpers.o
+ 0x08003290 0x08003290 0x00000016 Code RO 172 i.mouse_buf_reset helpers.o
+ 0x080032a6 0x080032a6 0x00000002 PAD
+ 0x080032a8 0x080032a8 0x00000024 Code RO 619 i.protocol_status_lookup_init main.o
+ 0x080032cc 0x080032cc 0x00000044 Code RO 301 i.ps2kb_get_bus_status ps2kb.o
+ 0x08003310 0x08003310 0x0000001c Code RO 302 i.ps2kb_init ps2kb.o
+ 0x0800332c 0x0800332c 0x0000002c Code RO 303 i.ps2kb_press_key ps2kb.o
+ 0x08003358 0x08003358 0x0000002c Code RO 304 i.ps2kb_press_key_scancode_1 ps2kb.o
+ 0x08003384 0x08003384 0x00000190 Code RO 305 i.ps2kb_press_key_scancode_2 ps2kb.o
+ 0x08003514 0x08003514 0x000000fc Code RO 306 i.ps2kb_read ps2kb.o
+ 0x08003610 0x08003610 0x00000020 Code RO 307 i.ps2kb_release_lines ps2kb.o
+ 0x08003630 0x08003630 0x00000010 Code RO 308 i.ps2kb_reset ps2kb.o
+ 0x08003640 0x08003640 0x000000b4 Code RO 620 i.ps2kb_update main.o
+ 0x080036f4 0x080036f4 0x00000044 Code RO 309 i.ps2kb_write ps2kb.o
+ 0x08003738 0x08003738 0x00000124 Code RO 310 i.ps2kb_write_nowait ps2kb.o
+ 0x0800385c 0x0800385c 0x00000060 Code RO 393 i.ps2mouse_get_bus_status ps2mouse.o
+ 0x080038bc 0x080038bc 0x000000e4 Code RO 394 i.ps2mouse_get_outgoing_data ps2mouse.o
+ 0x080039a0 0x080039a0 0x00000178 Code RO 395 i.ps2mouse_host_req_reply ps2mouse.o
+ 0x08003b18 0x08003b18 0x0000001c Code RO 396 i.ps2mouse_init ps2mouse.o
+ 0x08003b34 0x08003b34 0x000000f8 Code RO 397 i.ps2mouse_read ps2mouse.o
+ 0x08003c2c 0x08003c2c 0x00000020 Code RO 398 i.ps2mouse_release_lines ps2mouse.o
+ 0x08003c4c 0x08003c4c 0x00000018 Code RO 399 i.ps2mouse_reset ps2mouse.o
+ 0x08003c64 0x08003c64 0x0000001c Code RO 400 i.ps2mouse_restore_defaults ps2mouse.o
+ 0x08003c80 0x08003c80 0x0000001c Code RO 401 i.ps2mouse_send_bat ps2mouse.o
+ 0x08003c9c 0x08003c9c 0x00000024 Code RO 402 i.ps2mouse_send_update ps2mouse.o
+ 0x08003cc0 0x08003cc0 0x000000b0 Code RO 621 i.ps2mouse_update main.o
+ 0x08003d70 0x08003d70 0x00000026 Code RO 403 i.ps2mouse_wait_for_idle ps2mouse.o
+ 0x08003d96 0x08003d96 0x0000001a Code RO 404 i.ps2mouse_write ps2mouse.o
+ 0x08003db0 0x08003db0 0x00000022 Code RO 405 i.ps2mouse_write_delay_start ps2mouse.o
+ 0x08003dd2 0x08003dd2 0x00000002 PAD
+ 0x08003dd4 0x08003dd4 0x00000124 Code RO 406 i.ps2mouse_write_nowait ps2mouse.o
+ 0x08003ef8 0x08003ef8 0x00000014 Code RO 311 i.scancode_set_reply_lookup ps2kb.o
+ 0x08003f0c 0x08003f0c 0x00000078 Code RO 622 i.spi_error_dump_reboot main.o
+ 0x08003f84 0x08003f84 0x00000030 Code RO 533 i.wait_for_clk_high xt_kb.o
+ 0x08003fb4 0x08003fb4 0x00000040 Code RO 534 i.xtkb_check_for_softreset xt_kb.o
+ 0x08003ff4 0x08003ff4 0x00000014 Code RO 535 i.xtkb_enable xt_kb.o
+ 0x08004008 0x08004008 0x00000014 Code RO 536 i.xtkb_init xt_kb.o
+ 0x0800401c 0x0800401c 0x00000078 Code RO 537 i.xtkb_press_key xt_kb.o
+ 0x08004094 0x08004094 0x00000020 Code RO 538 i.xtkb_release_lines xt_kb.o
+ 0x080040b4 0x080040b4 0x00000020 Code RO 539 i.xtkb_reset_bus xt_kb.o
+ 0x080040d4 0x080040d4 0x0000003c Code RO 623 i.xtkb_update main.o
+ 0x08004110 0x08004110 0x000000c0 Code RO 540 i.xtkb_write xt_kb.o
+ 0x080041d0 0x080041d0 0x00000079 Data RO 312 .constdata ps2kb.o
+ 0x08004249 0x08004249 0x00000004 Data RO 498 .constdata mcp4451.o
+ 0x0800424d 0x0800424d 0x00000037 Data RO 629 .constdata main.o
+ 0x08004284 0x08004284 0x00000010 Data RO 3929 .constdata system_stm32f0xx.o
+ 0x08004294 0x08004294 0x00000008 Data RO 3930 .constdata system_stm32f0xx.o
+ 0x0800429c 0x0800429c 0x00000020 Data RO 4301 Region$$Table anon$$obj.o
- Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080042c0, Size: 0x00000900, Max: 0x00004000, ABSOLUTE)
+ Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080042bc, Size: 0x00000900, Max: 0x00004000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
- 0x20000000 0x080042c0 0x00000004 Data RW 15 .data delay_us.o
- 0x20000004 0x080042c4 0x00000014 Data RW 313 .data ps2kb.o
- 0x20000018 0x080042d8 0x0000001c Data RW 407 .data ps2mouse.o
- 0x20000034 0x080042f4 0x00000014 Data RW 541 .data xt_kb.o
- 0x20000048 0x08004308 0x00000024 Data RW 630 .data main.o
- 0x2000006c 0x0800432c 0x00000004 Data RW 3224 .data stm32f0xx_hal.o
- 0x20000070 0x08004330 0x00000004 Data RW 3931 .data system_stm32f0xx.o
- 0x20000074 0x08004334 0x00000004 Data RW 4275 .data mc_p.l(stdout.o)
- 0x20000078 0x08004338 0x00000004 Data RW 4278 .data mc_p.l(mvars.o)
- 0x2000007c 0x0800433c 0x00000004 Data RW 4279 .data mc_p.l(mvars.o)
+ 0x20000000 0x080042bc 0x00000004 Data RW 15 .data delay_us.o
+ 0x20000004 0x080042c0 0x00000014 Data RW 313 .data ps2kb.o
+ 0x20000018 0x080042d4 0x0000001c Data RW 407 .data ps2mouse.o
+ 0x20000034 0x080042f0 0x00000014 Data RW 541 .data xt_kb.o
+ 0x20000048 0x08004304 0x00000024 Data RW 630 .data main.o
+ 0x2000006c 0x08004328 0x00000004 Data RW 3224 .data stm32f0xx_hal.o
+ 0x20000070 0x0800432c 0x00000004 Data RW 3931 .data system_stm32f0xx.o
+ 0x20000074 0x08004330 0x00000004 Data RW 4275 .data mc_p.l(stdout.o)
+ 0x20000078 0x08004334 0x00000004 Data RW 4278 .data mc_p.l(mvars.o)
+ 0x2000007c 0x08004338 0x00000004 Data RW 4279 .data mc_p.l(mvars.o)
0x20000080 - 0x0000027d Zero RW 624 .bss main.o
- 0x200002fd 0x08004340 0x00000003 PAD
+ 0x200002fd 0x0800433c 0x00000003 PAD
0x20000300 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o
0x20000500 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o
@@ -2680,7 +2680,7 @@ Image component sizes
52 10 0 4 0 506987 delay_us.o
532 0 0 0 0 11880 helpers.o
- 3000 366 55 36 637 22620 main.o
+ 2996 364 55 36 637 22620 main.o
132 22 4 0 0 2287 mcp4451.o
1558 74 121 20 0 10004 ps2kb.o
1514 66 0 28 0 11530 ps2mouse.o
@@ -2705,7 +2705,7 @@ Image component sizes
528 52 0 20 0 5894 xt_kb.o
----------------------------------------------------------------------
- 15858 1012 428 116 2176 651045 Object Totals
+ 15854 1010 428 116 2176 651045 Object Totals
0 0 32 0 0 0 (incl. Generated)
32 0 0 0 3 0 (incl. Padding)
@@ -2751,15 +2751,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
- 16660 1056 428 128 2176 644173 Grand Totals
- 16660 1056 428 128 2176 644173 ELF Image Totals
- 16660 1056 428 128 0 0 ROM Totals
+ 16656 1054 428 128 2176 644173 Grand Totals
+ 16656 1054 428 128 2176 644173 ELF Image Totals
+ 16656 1054 428 128 0 0 ROM Totals
==============================================================================
- Total RO Size (Code + RO Data) 17088 ( 16.69kB)
+ Total RO Size (Code + RO Data) 17084 ( 16.68kB)
Total RW Size (RW Data + ZI Data) 2304 ( 2.25kB)
- Total ROM Size (Code + RO Data + RW Data) 17216 ( 16.81kB)
+ Total ROM Size (Code + RO Data + RW Data) 17212 ( 16.81kB)
==============================================================================
diff --git a/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc_ibmpc.dep b/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc_ibmpc.dep
index 70b4d9a9..9434b042 100644
--- a/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc_ibmpc.dep
+++ b/firmware/ibmpc/MDK-ARM/ibmpc/ibmpc_ibmpc.dep
@@ -74,7 +74,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart_ex.h)(0x5DFA0893)
I (../Inc/shared.h)(0x61B61A00)
-F (..\Src\ps2kb.c)(0x6272E2D6)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I ../Drivers/CMSIS/Include
-I.\RTE\_ibmpc
-IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include
-IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include
-D__UVISION_VERSION="529" -D_RTE_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB
-o ibmpc\ps2kb.o --omf_browse ibmpc\ps2kb.crf --depend ibmpc\ps2kb.d)
+F (..\Src\ps2kb.c)(0x6274386F)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I ../Drivers/CMSIS/Include
-I.\RTE\_ibmpc
-IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include
-IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include
-D__UVISION_VERSION="529" -D_RTE_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB
-o ibmpc\ps2kb.o --omf_browse ibmpc\ps2kb.crf --depend ibmpc\ps2kb.d)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5D9B429A)
I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x5D9B4298)
I (C:\Keil_v5\ARM\ARMCC\include\stdlib.h)(0x5D9B429A)
@@ -114,7 +114,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart_ex.h)(0x5DFA0893)
I (../Inc/shared.h)(0x61B61A00)
I (../Inc/ps2kb.h)(0x626EE78C)
I (../Inc/delay_us.h)(0x617487C7)
-F (..\Src\ps2mouse.c)(0x62705063)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I ../Drivers/CMSIS/Include
-I.\RTE\_ibmpc
-IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include
-IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include
-D__UVISION_VERSION="529" -D_RTE_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB
-o ibmpc\ps2mouse.o --omf_browse ibmpc\ps2mouse.crf --depend ibmpc\ps2mouse.d)
+F (..\Src\ps2mouse.c)(0x62743872)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I ../Drivers/CMSIS/Include
-I.\RTE\_ibmpc
-IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include
-IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include
-D__UVISION_VERSION="529" -D_RTE_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB
-o ibmpc\ps2mouse.o --omf_browse ibmpc\ps2mouse.crf --depend ibmpc\ps2mouse.d)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5D9B429A)
I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x5D9B4298)
I (C:\Keil_v5\ARM\ARMCC\include\stdlib.h)(0x5D9B429A)
@@ -239,7 +239,7 @@ I (../Inc/shared.h)(0x61B61A00)
I (../Inc/xt_kb.h)(0x626EFE9E)
I (../Inc/delay_us.h)(0x617487C7)
F (..\Inc\xt_kb.h)(0x626EFE9E)()
-F (../Src/main.c)(0x6270507E)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I ../Drivers/CMSIS/Include
-I.\RTE\_ibmpc
-IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include
-IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include
-D__UVISION_VERSION="529" -D_RTE_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB
-o ibmpc\main.o --omf_browse ibmpc\main.crf --depend ibmpc\main.d)
+F (../Src/main.c)(0x627439CD)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I ../Drivers/CMSIS/Include
-I.\RTE\_ibmpc
-IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include
-IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include
-D__UVISION_VERSION="529" -D_RTE_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB
-o ibmpc\main.o --omf_browse ibmpc\main.crf --depend ibmpc\main.d)
I (../Inc/main.h)(0x62423606)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h)(0x5DFA0893)
I (../Inc/stm32f0xx_hal_conf.h)(0x62423606)
diff --git a/firmware/ibmpc/MDK-ARM/ibmpc/main.crf b/firmware/ibmpc/MDK-ARM/ibmpc/main.crf
index e04f0b9f..4cd33a0f 100644
Binary files a/firmware/ibmpc/MDK-ARM/ibmpc/main.crf and b/firmware/ibmpc/MDK-ARM/ibmpc/main.crf differ
diff --git a/firmware/ibmpc/MDK-ARM/ibmpc/main.o b/firmware/ibmpc/MDK-ARM/ibmpc/main.o
index 7d5efa47..5514e213 100644
Binary files a/firmware/ibmpc/MDK-ARM/ibmpc/main.o and b/firmware/ibmpc/MDK-ARM/ibmpc/main.o differ
diff --git a/firmware/ibmpc/MDK-ARM/ibmpc/ps2kb.crf b/firmware/ibmpc/MDK-ARM/ibmpc/ps2kb.crf
index 9390676d..35203ea2 100644
Binary files a/firmware/ibmpc/MDK-ARM/ibmpc/ps2kb.crf and b/firmware/ibmpc/MDK-ARM/ibmpc/ps2kb.crf differ
diff --git a/firmware/ibmpc/MDK-ARM/ibmpc/ps2kb.o b/firmware/ibmpc/MDK-ARM/ibmpc/ps2kb.o
index aa1c42ad..d21b6e87 100644
Binary files a/firmware/ibmpc/MDK-ARM/ibmpc/ps2kb.o and b/firmware/ibmpc/MDK-ARM/ibmpc/ps2kb.o differ
diff --git a/firmware/ibmpc/MDK-ARM/ibmpc/ps2mouse.crf b/firmware/ibmpc/MDK-ARM/ibmpc/ps2mouse.crf
index 414b2b79..99165687 100644
Binary files a/firmware/ibmpc/MDK-ARM/ibmpc/ps2mouse.crf and b/firmware/ibmpc/MDK-ARM/ibmpc/ps2mouse.crf differ
diff --git a/firmware/ibmpc/MDK-ARM/ibmpc/ps2mouse.o b/firmware/ibmpc/MDK-ARM/ibmpc/ps2mouse.o
index 7ec94a9a..725e287a 100644
Binary files a/firmware/ibmpc/MDK-ARM/ibmpc/ps2mouse.o and b/firmware/ibmpc/MDK-ARM/ibmpc/ps2mouse.o differ
diff --git a/firmware/ibmpc/Src/main.c b/firmware/ibmpc/Src/main.c
index 08179f28..a4172b34 100644
--- a/firmware/ibmpc/Src/main.c
+++ b/firmware/ibmpc/Src/main.c
@@ -68,7 +68,7 @@ UART_HandleTypeDef huart3;
/* Private variables ---------------------------------------------------------*/
const uint8_t board_id = 1;
const uint8_t version_major = 0;
-const uint8_t version_minor = 2;
+const uint8_t version_minor = 3;
const uint8_t version_patch = 0;
uint8_t hw_revision;
@@ -328,7 +328,7 @@ void ps2mouse_update(void)
uint8_t inhibit_timeout_ms = 200;
if(is_protocol_enabled(PROTOCOL_PS2_MOUSE_KVM))
- inhibit_timeout_ms = 2;
+ inhibit_timeout_ms = 1;
if(ps2mouse_send_update(&my_ps2_outbuf, inhibit_timeout_ms) != PS2_OK)
{
HAL_GPIO_WritePin(ERR_LED_GPIO_Port, ERR_LED_Pin, GPIO_PIN_SET);
diff --git a/user_program/usb4vc_shared.py b/user_program/usb4vc_shared.py
index e70dc5c4..4c0ba766 100644
--- a/user_program/usb4vc_shared.py
+++ b/user_program/usb4vc_shared.py
@@ -13,7 +13,7 @@ def ensure_dir(dir_path):
if not os.path.exists(dir_path):
os.makedirs(dir_path)
-RPI_APP_VERSION_TUPLE = (0, 1, 1)
+RPI_APP_VERSION_TUPLE = (0, 1, 2)
code_name_to_value_lookup = {
'KEY_RESERVED':(0, 'kb_key'),