############################################################################## # # # IAR ARM ANSI C/C++ Compiler V4.41A/W32 EVALUATION 05/Nov/2007 22:35:30 # # Copyright 1999-2005 IAR Systems. All rights reserved. # # # # Cpu mode = interwork # # Endian = little # # Stack alignment = 4 # # Source file = D:\Pasha\elf\XShed_src\XShed\main.c # # Command line = D:\Pasha\elf\XShed_src\XShed\main.c -lC # # D:\Pasha\elf\XShed_src\XShed\Release\List\ -lA # # D:\Pasha\elf\XShed_src\XShed\Release\List\ -o # # D:\Pasha\elf\XShed_src\XShed\Release\Obj\ -s9 # # --no_unroll --cpu_mode arm --endian little --cpu # # ARM926EJ-S --stack_align 4 --interwork -e --fpu # # None -I "D:\Pasha\ARM_Embedded_Workbench\Embedded # # Workbench 4.0 Evaluation\ARM\INC\" # # --inline_threshold=2 # # List file = D:\Pasha\elf\XShed_src\XShed\Release\List\main.lst # # Object file = D:\Pasha\elf\XShed_src\XShed\Release\Obj\main.r79 # # # # # ############################################################################## D:\Pasha\elf\XShed_src\XShed\main.c 1 #include "..\inc\swilib.h" 2 #include "..\inc\cfg_items.h" 3 4 5 //// extern ////// 6 extern const char fontcolor[4], outline[4]; 7 extern const char Pon11[128], Pon12[128], Pon13[128], Pon14[128], Pon21[128], Pon22[128], Pon23[128], Pon24[128]; 8 extern const char Pon15[128], Pon16[128], Pon17[128], Pon25[128], Pon26[128], Pon27[128]; 9 extern const char Vt11[128], Vt12[128], Vt13[128], Vt14[128], Vt21[128], Vt22[128], Vt23[128], Vt24[128]; 10 extern const char Vt15[128], Vt16[128], Vt17[128], Vt25[128], Vt26[128], Vt27[128]; 11 extern const char Sr11[128], Sr12[128], Sr13[128], Sr14[128], Sr21[128], Sr22[128], Sr23[128], Sr24[128]; 12 extern const char Sr15[128], Sr16[128], Sr17[128], Sr25[128], Sr26[128], Sr27[128]; 13 extern const char Ch11[128], Ch12[128], Ch13[128], Ch14[128], Ch21[128], Ch22[128], Ch23[128], Ch24[128]; 14 extern const char Ch15[128], Ch16[128], Ch17[128], Ch25[128], Ch26[128], Ch27[128]; 15 extern const char Pt11[128], Pt12[128], Pt13[128], Pt14[128], Pt21[128], Pt22[128], Pt23[128], Pt24[128]; 16 extern const char Pt15[128], Pt16[128], Pt17[128], Pt25[128], Pt26[128], Pt27[128]; 17 extern const char Su11[128], Su12[128], Su13[128], Su14[128], Su21[128], Su22[128], Su23[128], Su24[128]; 18 extern const char Su15[128], Su16[128], Su17[128], Su25[128], Su26[128], Su27[128]; 19 extern const int font; 20 extern const char backcolor[4], description[128], linecolor[4]; 21 extern void InitConfig(); 22 extern const int Button; 23 extern const int x, y, CurWeek; 24 25 int week=0; // неделя 26 int tempday; // текуций день для гуя 27 28 CSM_DESC icsmd; 29 30 int (*old_icsm_onMessage)(CSM_RAM*,GBS_MSG*); 31 void (*old_icsm_onClose)(CSM_RAM*); 32 33 unsigned short maincsm_name_body[140]; \ In segment DATA_C, align 4, align-sorted 34 const int minus11 = -11; \ minus11: \ 00000000 F5FFFFFF DC32 -11 \ In segment DATA_Z, align 4, align-sorted 35 36 typedef struct 37 { 38 char *name; 39 int day; 40 int week; 41 }TPara; 42 43 TPara para[84]; \ para: \ 00000000 DS8 1008 \ icsmd: \ 000003F0 DS8 24 \ week: \ 00000408 DS8 4 \ tempday: \ 0000040C DS8 4 \ old_icsm_onMessage: \ 00000410 DS8 4 \ old_icsm_onClose: \ 00000414 DS8 4 \ In segment DATA_Z, align 4, align-sorted \ maincsm_name_body: \ 00000000 DS8 280 44 45 typedef struct 46 { 47 CSM_RAM csm; 48 int gui_id; 49 }MAIN_CSM; 50 51 typedef struct 52 { 53 GUI gui; 54 WSHDR *ws1; 55 WSHDR *ws2; 56 int i1; 57 }MAIN_GUI; 58 59 static void EditConfig(void) // открытие конфига из эльфа done 60 { 61 extern const char *successed_config_filename; 62 WSHDR *ws; 63 ws=AllocWS(150); 64 str_2ws(ws,successed_config_filename,128); 65 ExecuteFile(ws,0,0); 66 FreeWS(ws); 67 GeneralFuncF1(1); 68 } 69 \ In segment CODE, align 4, keep-with-next 70 void FillData(void) 71 { \ FillData: \ 00000000 00402DE9 PUSH {LR} 72 InitConfig(); \ 00000004 ........ _BLF InitConfig,??InitConfig??rA 73 para[0].name=(char *)Pon11; para[0].day=1; para[0].week=1; \ 00000008 ........ LDR R0,??DataTable13 ;; para 74 para[1].name=(char *)Pon12; para[1].day=1; para[1].week=1; 75 para[2].name=(char *)Pon13; para[2].day=1; para[2].week=1; 76 para[3].name=(char *)Pon14; para[3].day=1; para[3].week=1; 77 para[4].name=(char *)Pon15; para[4].day=1; para[4].week=1; 78 para[5].name=(char *)Pon16; para[5].day=1; para[5].week=1; 79 para[6].name=(char *)Pon17; para[6].day=1; para[6].week=1; 80 para[7].name=(char *)Pon21; para[7].day=1; para[7].week=2; 81 para[8].name=(char *)Pon22; para[8].day=1; para[8].week=2; \ 0000000C 64359FE5 LDR R3,??FillData_0 ;; Pon22 \ 00000010 64259FE5 LDR R2,??FillData_0+0x4 ;; Pon12 \ 00000014 64159FE5 LDR R1,??FillData_0+0x8 ;; Pon11 82 para[9].name=(char *)Pon23; para[9].day=1; para[9].week=2; 83 para[10].name=(char *)Pon24; para[10].day=1; para[10].week=2; 84 para[11].name=(char *)Pon25; para[11].day=1; para[11].week=2; 85 para[12].name=(char *)Pon26; para[12].day=1; para[12].week=2; 86 para[13].name=(char *)Pon27; para[13].day=1; para[13].week=2; 87 para[14].name=(char *)Vt11; para[14].day=2; para[14].week=1; 88 para[15].name=(char *)Vt12; para[15].day=2; para[15].week=1; 89 para[16].name=(char *)Vt13; para[16].day=2; para[16].week=1; 90 para[17].name=(char *)Vt14; para[17].day=2; para[17].week=1; 91 para[18].name=(char *)Vt15; para[18].day=2; para[18].week=1; 92 para[19].name=(char *)Vt16; para[19].day=2; para[19].week=1; 93 para[20].name=(char *)Vt17; para[20].day=2; para[20].week=1; 94 para[21].name=(char *)Vt21; para[21].day=2; para[21].week=2; 95 para[22].name=(char *)Vt22; para[22].day=2; para[22].week=2; 96 para[23].name=(char *)Vt23; para[23].day=2; para[23].week=2; 97 para[24].name=(char *)Vt24; para[24].day=2; para[24].week=2; 98 para[25].name=(char *)Vt25; para[25].day=2; para[25].week=2; 99 para[26].name=(char *)Vt26; para[26].day=2; para[26].week=2; 100 para[27].name=(char *)Vt27; para[27].day=2; para[27].week=2; 101 para[28].name=(char *)Sr11; para[28].day=3; para[28].week=1; 102 para[29].name=(char *)Sr12; para[29].day=3; para[29].week=1; \ 00000018 64C59FE5 LDR R12,??FillData_0+0xC ;; Sr12 \ 0000001C 603080E5 STR R3,[R0, #+96] \ 00000020 60359FE5 LDR R3,??FillData_0+0x10 ;; Pon23 \ 00000024 0C2080E5 STR R2,[R0, #+12] \ 00000028 5C259FE5 LDR R2,??FillData_0+0x14 ;; Pon13 \ 0000002C 6C3080E5 STR R3,[R0, #+108] \ 00000030 58359FE5 LDR R3,??FillData_0+0x18 ;; Pon24 \ 00000034 182080E5 STR R2,[R0, #+24] \ 00000038 54259FE5 LDR R2,??FillData_0+0x1C ;; Pon14 \ 0000003C 783080E5 STR R3,[R0, #+120] \ 00000040 50359FE5 LDR R3,??FillData_0+0x20 ;; Pon25 \ 00000044 242080E5 STR R2,[R0, #+36] \ 00000048 4C259FE5 LDR R2,??FillData_0+0x24 ;; Pon15 \ 0000004C 843080E5 STR R3,[R0, #+132] \ 00000050 48359FE5 LDR R3,??FillData_0+0x28 ;; Pon26 \ 00000054 302080E5 STR R2,[R0, #+48] \ 00000058 44259FE5 LDR R2,??FillData_0+0x2C ;; Pon16 \ 0000005C 903080E5 STR R3,[R0, #+144] \ 00000060 40359FE5 LDR R3,??FillData_0+0x30 ;; Pon27 \ 00000064 3C2080E5 STR R2,[R0, #+60] \ 00000068 3C259FE5 LDR R2,??FillData_0+0x34 ;; Pon17 \ 0000006C 9C3080E5 STR R3,[R0, #+156] \ 00000070 38359FE5 LDR R3,??FillData_0+0x38 ;; Vt11 \ 00000074 482080E5 STR R2,[R0, #+72] \ 00000078 34259FE5 LDR R2,??FillData_0+0x3C ;; Pon21 \ 0000007C A83080E5 STR R3,[R0, #+168] \ 00000080 30359FE5 LDR R3,??FillData_0+0x40 ;; Vt12 \ 00000084 5CC180E5 STR R12,[R0, #+348] 103 para[30].name=(char *)Sr13; para[30].day=3; para[30].week=1; \ 00000088 2CC59FE5 LDR R12,??FillData_0+0x44 ;; Sr13 \ 0000008C B43080E5 STR R3,[R0, #+180] \ 00000090 28359FE5 LDR R3,??FillData_0+0x48 ;; Vt13 \ 00000094 001080E5 STR R1,[R0, #+0] \ 00000098 C03080E5 STR R3,[R0, #+192] \ 0000009C 20359FE5 LDR R3,??FillData_0+0x4C ;; Vt14 \ 000000A0 0110A0E3 MOV R1,#+1 \ 000000A4 CC3080E5 STR R3,[R0, #+204] \ 000000A8 18359FE5 LDR R3,??FillData_0+0x50 ;; Vt15 \ 000000AC 041080E5 STR R1,[R0, #+4] \ 000000B0 D83080E5 STR R3,[R0, #+216] \ 000000B4 10359FE5 LDR R3,??FillData_0+0x54 ;; Vt16 \ 000000B8 081080E5 STR R1,[R0, #+8] \ 000000BC E43080E5 STR R3,[R0, #+228] \ 000000C0 08359FE5 LDR R3,??FillData_0+0x58 ;; Vt17 \ 000000C4 101080E5 STR R1,[R0, #+16] \ 000000C8 F03080E5 STR R3,[R0, #+240] \ 000000CC 00359FE5 LDR R3,??FillData_0+0x5C ;; Vt21 \ 000000D0 141080E5 STR R1,[R0, #+20] \ 000000D4 FC3080E5 STR R3,[R0, #+252] \ 000000D8 F8349FE5 LDR R3,??FillData_0+0x60 ;; Vt22 \ 000000DC 1C1080E5 STR R1,[R0, #+28] \ 000000E0 083180E5 STR R3,[R0, #+264] \ 000000E4 F0349FE5 LDR R3,??FillData_0+0x64 ;; Vt23 \ 000000E8 201080E5 STR R1,[R0, #+32] \ 000000EC 143180E5 STR R3,[R0, #+276] \ 000000F0 E8349FE5 LDR R3,??FillData_0+0x68 ;; Vt24 \ 000000F4 281080E5 STR R1,[R0, #+40] \ 000000F8 203180E5 STR R3,[R0, #+288] \ 000000FC E0349FE5 LDR R3,??FillData_0+0x6C ;; Vt25 \ 00000100 2C1080E5 STR R1,[R0, #+44] \ 00000104 2C3180E5 STR R3,[R0, #+300] \ 00000108 D8349FE5 LDR R3,??FillData_0+0x70 ;; Vt26 \ 0000010C 341080E5 STR R1,[R0, #+52] \ 00000110 383180E5 STR R3,[R0, #+312] \ 00000114 D0349FE5 LDR R3,??FillData_0+0x74 ;; Vt27 \ 00000118 381080E5 STR R1,[R0, #+56] \ 0000011C 443180E5 STR R3,[R0, #+324] \ 00000120 C8349FE5 LDR R3,??FillData_0+0x78 ;; Sr11 \ 00000124 401080E5 STR R1,[R0, #+64] \ 00000128 441080E5 STR R1,[R0, #+68] \ 0000012C 4C1080E5 STR R1,[R0, #+76] \ 00000130 501080E5 STR R1,[R0, #+80] \ 00000134 542080E5 STR R2,[R0, #+84] \ 00000138 581080E5 STR R1,[R0, #+88] \ 0000013C 0220A0E3 MOV R2,#+2 \ 00000140 5C2080E5 STR R2,[R0, #+92] \ 00000144 641080E5 STR R1,[R0, #+100] \ 00000148 682080E5 STR R2,[R0, #+104] \ 0000014C 701080E5 STR R1,[R0, #+112] \ 00000150 742080E5 STR R2,[R0, #+116] \ 00000154 7C1080E5 STR R1,[R0, #+124] \ 00000158 802080E5 STR R2,[R0, #+128] \ 0000015C 881080E5 STR R1,[R0, #+136] \ 00000160 8C2080E5 STR R2,[R0, #+140] \ 00000164 941080E5 STR R1,[R0, #+148] \ 00000168 982080E5 STR R2,[R0, #+152] \ 0000016C A01080E5 STR R1,[R0, #+160] \ 00000170 A42080E5 STR R2,[R0, #+164] \ 00000174 AC2080E5 STR R2,[R0, #+172] \ 00000178 B01080E5 STR R1,[R0, #+176] \ 0000017C B82080E5 STR R2,[R0, #+184] \ 00000180 BC1080E5 STR R1,[R0, #+188] \ 00000184 C42080E5 STR R2,[R0, #+196] \ 00000188 C81080E5 STR R1,[R0, #+200] \ 0000018C D02080E5 STR R2,[R0, #+208] \ 00000190 D41080E5 STR R1,[R0, #+212] \ 00000194 DC2080E5 STR R2,[R0, #+220] \ 00000198 E01080E5 STR R1,[R0, #+224] \ 0000019C E82080E5 STR R2,[R0, #+232] \ 000001A0 EC1080E5 STR R1,[R0, #+236] \ 000001A4 F42080E5 STR R2,[R0, #+244] \ 000001A8 F81080E5 STR R1,[R0, #+248] \ 000001AC 002180E5 STR R2,[R0, #+256] \ 000001B0 042180E5 STR R2,[R0, #+260] \ 000001B4 0C2180E5 STR R2,[R0, #+268] \ 000001B8 102180E5 STR R2,[R0, #+272] \ 000001BC 182180E5 STR R2,[R0, #+280] \ 000001C0 1C2180E5 STR R2,[R0, #+284] \ 000001C4 242180E5 STR R2,[R0, #+292] \ 000001C8 282180E5 STR R2,[R0, #+296] \ 000001CC 302180E5 STR R2,[R0, #+304] \ 000001D0 342180E5 STR R2,[R0, #+308] \ 000001D4 3C2180E5 STR R2,[R0, #+316] \ 000001D8 402180E5 STR R2,[R0, #+320] \ 000001DC 482180E5 STR R2,[R0, #+328] \ 000001E0 4C2180E5 STR R2,[R0, #+332] \ 000001E4 503180E5 STR R3,[R0, #+336] \ 000001E8 0330A0E3 MOV R3,#+3 \ 000001EC 543180E5 STR R3,[R0, #+340] \ 000001F0 581180E5 STR R1,[R0, #+344] \ 000001F4 603180E5 STR R3,[R0, #+352] \ 000001F8 641180E5 STR R1,[R0, #+356] \ 000001FC 68C180E5 STR R12,[R0, #+360] 104 para[31].name=(char *)Sr14; para[31].day=3; para[31].week=1; \ 00000200 ECC39FE5 LDR R12,??FillData_0+0x7C ;; Sr14 \ 00000204 6C3180E5 STR R3,[R0, #+364] \ 00000208 74C180E5 STR R12,[R0, #+372] 105 para[32].name=(char *)Sr15; para[32].day=3; para[32].week=1; \ 0000020C E4C39FE5 LDR R12,??FillData_0+0x80 ;; Sr15 \ 00000210 783180E5 STR R3,[R0, #+376] \ 00000214 80C180E5 STR R12,[R0, #+384] 106 para[33].name=(char *)Sr16; para[33].day=3; para[33].week=1; \ 00000218 DCC39FE5 LDR R12,??FillData_0+0x84 ;; Sr16 \ 0000021C 843180E5 STR R3,[R0, #+388] \ 00000220 8CC180E5 STR R12,[R0, #+396] 107 para[34].name=(char *)Sr17; para[34].day=3; para[34].week=1; \ 00000224 D4C39FE5 LDR R12,??FillData_0+0x88 ;; Sr17 \ 00000228 903180E5 STR R3,[R0, #+400] \ 0000022C 98C180E5 STR R12,[R0, #+408] 108 para[35].name=(char *)Sr21; para[35].day=3; para[35].week=2; \ 00000230 CCC39FE5 LDR R12,??FillData_0+0x8C ;; Sr21 \ 00000234 9C3180E5 STR R3,[R0, #+412] \ 00000238 A4C180E5 STR R12,[R0, #+420] 109 para[36].name=(char *)Sr22; para[36].day=3; para[36].week=2; \ 0000023C C4C39FE5 LDR R12,??FillData_0+0x90 ;; Sr22 \ 00000240 A83180E5 STR R3,[R0, #+424] \ 00000244 B0C180E5 STR R12,[R0, #+432] 110 para[37].name=(char *)Sr23; para[37].day=3; para[37].week=2; \ 00000248 BCC39FE5 LDR R12,??FillData_0+0x94 ;; Sr23 \ 0000024C B43180E5 STR R3,[R0, #+436] \ 00000250 BCC180E5 STR R12,[R0, #+444] 111 para[38].name=(char *)Sr24; para[38].day=3; para[38].week=2; \ 00000254 B4C39FE5 LDR R12,??FillData_0+0x98 ;; Sr24 \ 00000258 C03180E5 STR R3,[R0, #+448] \ 0000025C C8C180E5 STR R12,[R0, #+456] 112 para[39].name=(char *)Sr25; para[39].day=3; para[39].week=2; \ 00000260 ACC39FE5 LDR R12,??FillData_0+0x9C ;; Sr25 \ 00000264 CC3180E5 STR R3,[R0, #+460] \ 00000268 D4C180E5 STR R12,[R0, #+468] 113 para[40].name=(char *)Sr26; para[40].day=3; para[40].week=2; \ 0000026C A4C39FE5 LDR R12,??FillData_0+0xA0 ;; Sr26 \ 00000270 D83180E5 STR R3,[R0, #+472] \ 00000274 E0C180E5 STR R12,[R0, #+480] 114 para[41].name=(char *)Sr27; para[41].day=3; para[41].week=2; \ 00000278 9CC39FE5 LDR R12,??FillData_0+0xA4 ;; Sr27 \ 0000027C E43180E5 STR R3,[R0, #+484] \ 00000280 ECC180E5 STR R12,[R0, #+492] 115 para[42].name=(char *)Ch11; para[42].day=4; para[42].week=1; 116 para[43].name=(char *)Ch12; para[43].day=4; para[43].week=1; \ 00000284 94C39FE5 LDR R12,??FillData_0+0xA8 ;; Ch12 \ 00000288 F03180E5 STR R3,[R0, #+496] \ 0000028C 90339FE5 LDR R3,??FillData_0+0xAC ;; Ch11 \ 00000290 04C280E5 STR R12,[R0, #+516] 117 para[44].name=(char *)Ch13; para[44].day=4; para[44].week=1; \ 00000294 8CC39FE5 LDR R12,??FillData_0+0xB0 ;; Ch13 \ 00000298 F83180E5 STR R3,[R0, #+504] \ 0000029C 10C280E5 STR R12,[R0, #+528] 118 para[45].name=(char *)Ch14; para[45].day=4; para[45].week=1; \ 000002A0 84C39FE5 LDR R12,??FillData_0+0xB4 ;; Ch14 \ 000002A4 0430A0E3 MOV R3,#+4 \ 000002A8 1CC280E5 STR R12,[R0, #+540] 119 para[46].name=(char *)Ch15; para[46].day=4; para[46].week=1; \ 000002AC 7CC39FE5 LDR R12,??FillData_0+0xB8 ;; Ch15 \ 000002B0 FC3180E5 STR R3,[R0, #+508] \ 000002B4 28C280E5 STR R12,[R0, #+552] 120 para[47].name=(char *)Ch16; para[47].day=4; para[47].week=1; \ 000002B8 74C39FE5 LDR R12,??FillData_0+0xBC ;; Ch16 \ 000002BC 083280E5 STR R3,[R0, #+520] \ 000002C0 34C280E5 STR R12,[R0, #+564] 121 para[48].name=(char *)Ch17; para[48].day=4; para[48].week=1; \ 000002C4 6CC39FE5 LDR R12,??FillData_0+0xC0 ;; Ch17 \ 000002C8 143280E5 STR R3,[R0, #+532] \ 000002CC 40C280E5 STR R12,[R0, #+576] 122 para[49].name=(char *)Ch21; para[49].day=4; para[49].week=2; \ 000002D0 64C39FE5 LDR R12,??FillData_0+0xC4 ;; Ch21 \ 000002D4 203280E5 STR R3,[R0, #+544] \ 000002D8 4CC280E5 STR R12,[R0, #+588] 123 para[50].name=(char *)Ch22; para[50].day=4; para[50].week=2; \ 000002DC 5CC39FE5 LDR R12,??FillData_0+0xC8 ;; Ch22 \ 000002E0 2C3280E5 STR R3,[R0, #+556] \ 000002E4 58C280E5 STR R12,[R0, #+600] 124 para[51].name=(char *)Ch23; para[51].day=4; para[51].week=2; \ 000002E8 54C39FE5 LDR R12,??FillData_0+0xCC ;; Ch23 \ 000002EC 383280E5 STR R3,[R0, #+568] \ 000002F0 64C280E5 STR R12,[R0, #+612] 125 para[52].name=(char *)Ch24; para[52].day=4; para[52].week=2; \ 000002F4 4CC39FE5 LDR R12,??FillData_0+0xD0 ;; Ch24 \ 000002F8 443280E5 STR R3,[R0, #+580] \ 000002FC 70C280E5 STR R12,[R0, #+624] 126 para[53].name=(char *)Ch25; para[53].day=4; para[53].week=2; \ 00000300 44C39FE5 LDR R12,??FillData_0+0xD4 ;; Ch25 \ 00000304 503280E5 STR R3,[R0, #+592] \ 00000308 7CC280E5 STR R12,[R0, #+636] 127 para[54].name=(char *)Ch26; para[54].day=4; para[54].week=2; \ 0000030C 3CC39FE5 LDR R12,??FillData_0+0xD8 ;; Ch26 \ 00000310 5C3280E5 STR R3,[R0, #+604] \ 00000314 88C280E5 STR R12,[R0, #+648] 128 para[55].name=(char *)Ch27; para[55].day=4; para[55].week=2; \ 00000318 34C39FE5 LDR R12,??FillData_0+0xDC ;; Ch27 \ 0000031C 683280E5 STR R3,[R0, #+616] \ 00000320 94C280E5 STR R12,[R0, #+660] 129 para[56].name=(char *)Pt11; para[56].day=5; para[56].week=1; 130 para[57].name=(char *)Pt12; para[57].day=5; para[57].week=1; \ 00000324 2CC39FE5 LDR R12,??FillData_0+0xE0 ;; Pt12 \ 00000328 743280E5 STR R3,[R0, #+628] \ 0000032C ACC280E5 STR R12,[R0, #+684] 131 para[58].name=(char *)Pt13; para[58].day=5; para[58].week=1; \ 00000330 24C39FE5 LDR R12,??FillData_0+0xE4 ;; Pt13 \ 00000334 803280E5 STR R3,[R0, #+640] \ 00000338 B8C280E5 STR R12,[R0, #+696] 132 para[59].name=(char *)Pt14; para[59].day=5; para[59].week=1; \ 0000033C 1CC39FE5 LDR R12,??FillData_0+0xE8 ;; Pt14 \ 00000340 8C3280E5 STR R3,[R0, #+652] \ 00000344 C4C280E5 STR R12,[R0, #+708] 133 para[60].name=(char *)Pt15; para[60].day=5; para[60].week=1; \ 00000348 14C39FE5 LDR R12,??FillData_0+0xEC ;; Pt15 \ 0000034C 983280E5 STR R3,[R0, #+664] \ 00000350 10339FE5 LDR R3,??FillData_0+0xF0 ;; Pt11 \ 00000354 D0C280E5 STR R12,[R0, #+720] 134 para[61].name=(char *)Pt16; para[61].day=5; para[61].week=1; \ 00000358 0CC39FE5 LDR R12,??FillData_0+0xF4 ;; Pt16 \ 0000035C 701180E5 STR R1,[R0, #+368] \ 00000360 7C1180E5 STR R1,[R0, #+380] \ 00000364 881180E5 STR R1,[R0, #+392] \ 00000368 941180E5 STR R1,[R0, #+404] \ 0000036C A01180E5 STR R1,[R0, #+416] \ 00000370 AC2180E5 STR R2,[R0, #+428] \ 00000374 B82180E5 STR R2,[R0, #+440] \ 00000378 C42180E5 STR R2,[R0, #+452] \ 0000037C D02180E5 STR R2,[R0, #+464] \ 00000380 DC2180E5 STR R2,[R0, #+476] \ 00000384 E82180E5 STR R2,[R0, #+488] \ 00000388 F42180E5 STR R2,[R0, #+500] \ 0000038C 001280E5 STR R1,[R0, #+512] \ 00000390 0C1280E5 STR R1,[R0, #+524] \ 00000394 181280E5 STR R1,[R0, #+536] \ 00000398 241280E5 STR R1,[R0, #+548] \ 0000039C 301280E5 STR R1,[R0, #+560] \ 000003A0 3C1280E5 STR R1,[R0, #+572] \ 000003A4 481280E5 STR R1,[R0, #+584] \ 000003A8 542280E5 STR R2,[R0, #+596] \ 000003AC 602280E5 STR R2,[R0, #+608] \ 000003B0 6C2280E5 STR R2,[R0, #+620] \ 000003B4 782280E5 STR R2,[R0, #+632] \ 000003B8 842280E5 STR R2,[R0, #+644] \ 000003BC 902280E5 STR R2,[R0, #+656] \ 000003C0 9C2280E5 STR R2,[R0, #+668] \ 000003C4 A03280E5 STR R3,[R0, #+672] \ 000003C8 0530A0E3 MOV R3,#+5 \ 000003CC A43280E5 STR R3,[R0, #+676] \ 000003D0 A81280E5 STR R1,[R0, #+680] \ 000003D4 B03280E5 STR R3,[R0, #+688] \ 000003D8 B41280E5 STR R1,[R0, #+692] \ 000003DC BC3280E5 STR R3,[R0, #+700] \ 000003E0 C01280E5 STR R1,[R0, #+704] \ 000003E4 C83280E5 STR R3,[R0, #+712] \ 000003E8 CC1280E5 STR R1,[R0, #+716] \ 000003EC D43280E5 STR R3,[R0, #+724] \ 000003F0 D81280E5 STR R1,[R0, #+728] \ 000003F4 DCC280E5 STR R12,[R0, #+732] \ 000003F8 E03280E5 STR R3,[R0, #+736] \ 000003FC E41280E5 STR R1,[R0, #+740] 135 para[62].name=(char *)Pt17; para[62].day=5; para[62].week=1; \ 00000400 68C29FE5 LDR R12,??FillData_0+0xF8 ;; Pt17 \ 00000404 F01280E5 STR R1,[R0, #+752] \ 00000408 E8C280E5 STR R12,[R0, #+744] 136 para[63].name=(char *)Pt21; para[63].day=5; para[63].week=2; \ 0000040C 60C29FE5 LDR R12,??FillData_0+0xFC ;; Pt21 137 para[64].name=(char *)Pt22; para[64].day=5; para[64].week=2; 138 para[65].name=(char *)Pt23; para[65].day=5; para[65].week=2; 139 para[66].name=(char *)Pt24; para[66].day=5; para[66].week=2; 140 para[67].name=(char *)Pt25; para[67].day=5; para[67].week=2; 141 para[68].name=(char *)Pt26; para[68].day=5; para[68].week=2; 142 para[69].name=(char *)Pt27; para[69].day=5; para[69].week=2; 143 para[70].name=(char *)Su11; para[70].day=6; para[70].week=1; \ 00000410 501380E5 STR R1,[R0, #+848] \ 00000414 F4C280E5 STR R12,[R0, #+756] \ 00000418 58C29FE5 LDR R12,??FillData_0+0x100 ;; Pt22 144 para[71].name=(char *)Su12; para[71].day=6; para[71].week=1; \ 0000041C 5C1380E5 STR R1,[R0, #+860] \ 00000420 00C380E5 STR R12,[R0, #+768] \ 00000424 50C29FE5 LDR R12,??FillData_0+0x104 ;; Pt23 145 para[72].name=(char *)Su13; para[72].day=6; para[72].week=1; \ 00000428 681380E5 STR R1,[R0, #+872] \ 0000042C 0CC380E5 STR R12,[R0, #+780] \ 00000430 48C29FE5 LDR R12,??FillData_0+0x108 ;; Pt24 146 para[73].name=(char *)Su14; para[73].day=6; para[73].week=1; \ 00000434 741380E5 STR R1,[R0, #+884] \ 00000438 18C380E5 STR R12,[R0, #+792] \ 0000043C 40C29FE5 LDR R12,??FillData_0+0x10C ;; Pt25 147 para[74].name=(char *)Su15; para[74].day=6; para[74].week=1; \ 00000440 801380E5 STR R1,[R0, #+896] 148 para[75].name=(char *)Su16; para[75].day=6; para[75].week=1; \ 00000444 8C1380E5 STR R1,[R0, #+908] 149 para[76].name=(char *)Su17; para[76].day=6; para[76].week=1; \ 00000448 981380E5 STR R1,[R0, #+920] 150 para[77].name=(char *)Su21; para[77].day=6; para[77].week=2; \ 0000044C 34129FE5 LDR R1,??FillData_0+0x110 ;; Su21 \ 00000450 24C380E5 STR R12,[R0, #+804] \ 00000454 30C29FE5 LDR R12,??FillData_0+0x114 ;; Pt26 \ 00000458 9C1380E5 STR R1,[R0, #+924] 151 para[78].name=(char *)Su22; para[78].day=6; para[78].week=2; \ 0000045C 2C129FE5 LDR R1,??FillData_0+0x118 ;; Su22 \ 00000460 30C380E5 STR R12,[R0, #+816] \ 00000464 28C29FE5 LDR R12,??FillData_0+0x11C ;; Pt27 \ 00000468 A81380E5 STR R1,[R0, #+936] 152 para[79].name=(char *)Su23; para[79].day=6; para[79].week=2; \ 0000046C 24129FE5 LDR R1,??FillData_0+0x120 ;; Su23 \ 00000470 3CC380E5 STR R12,[R0, #+828] \ 00000474 20C29FE5 LDR R12,??FillData_0+0x124 ;; Su12 \ 00000478 B41380E5 STR R1,[R0, #+948] 153 para[80].name=(char *)Su24; para[80].day=6; para[80].week=2; \ 0000047C 1C129FE5 LDR R1,??FillData_0+0x128 ;; Su24 \ 00000480 54C380E5 STR R12,[R0, #+852] \ 00000484 18C29FE5 LDR R12,??FillData_0+0x12C ;; Su13 \ 00000488 C01380E5 STR R1,[R0, #+960] 154 para[81].name=(char *)Su25; para[81].day=6; para[81].week=2; \ 0000048C 14129FE5 LDR R1,??FillData_0+0x130 ;; Su25 \ 00000490 60C380E5 STR R12,[R0, #+864] \ 00000494 10C29FE5 LDR R12,??FillData_0+0x134 ;; Su14 \ 00000498 CC1380E5 STR R1,[R0, #+972] 155 para[82].name=(char *)Su26; para[82].day=6; para[82].week=2; \ 0000049C 0C129FE5 LDR R1,??FillData_0+0x138 ;; Su26 \ 000004A0 6CC380E5 STR R12,[R0, #+876] \ 000004A4 08C29FE5 LDR R12,??FillData_0+0x13C ;; Su15 \ 000004A8 D81380E5 STR R1,[R0, #+984] 156 para[83].name=(char *)Su27; para[83].day=6; para[83].week=2; \ 000004AC 04129FE5 LDR R1,??FillData_0+0x140 ;; Su27 \ 000004B0 78C380E5 STR R12,[R0, #+888] \ 000004B4 00C29FE5 LDR R12,??FillData_0+0x144 ;; Su16 \ 000004B8 E41380E5 STR R1,[R0, #+996] 157 158 week = CurWeek + 1; \ 000004BC FC119FE5 LDR R1,??FillData_0+0x148 ;; CurWeek \ 000004C0 EC3280E5 STR R3,[R0, #+748] \ 000004C4 001091E5 LDR R1,[R1, #+0] \ 000004C8 F83280E5 STR R3,[R0, #+760] \ 000004CC 043380E5 STR R3,[R0, #+772] \ 000004D0 103380E5 STR R3,[R0, #+784] \ 000004D4 1C3380E5 STR R3,[R0, #+796] \ 000004D8 283380E5 STR R3,[R0, #+808] \ 000004DC 343380E5 STR R3,[R0, #+820] \ 000004E0 403380E5 STR R3,[R0, #+832] \ 000004E4 D8319FE5 LDR R3,??FillData_0+0x14C ;; Su11 \ 000004E8 84C380E5 STR R12,[R0, #+900] \ 000004EC D4C19FE5 LDR R12,??FillData_0+0x150 ;; Su17 \ 000004F0 FC2280E5 STR R2,[R0, #+764] \ 000004F4 082380E5 STR R2,[R0, #+776] \ 000004F8 142380E5 STR R2,[R0, #+788] \ 000004FC 202380E5 STR R2,[R0, #+800] \ 00000500 2C2380E5 STR R2,[R0, #+812] \ 00000504 382380E5 STR R2,[R0, #+824] \ 00000508 442380E5 STR R2,[R0, #+836] \ 0000050C 483380E5 STR R3,[R0, #+840] \ 00000510 0630A0E3 MOV R3,#+6 \ 00000514 4C3380E5 STR R3,[R0, #+844] \ 00000518 583380E5 STR R3,[R0, #+856] \ 0000051C 643380E5 STR R3,[R0, #+868] \ 00000520 703380E5 STR R3,[R0, #+880] \ 00000524 7C3380E5 STR R3,[R0, #+892] \ 00000528 883380E5 STR R3,[R0, #+904] \ 0000052C 90C380E5 STR R12,[R0, #+912] \ 00000530 943380E5 STR R3,[R0, #+916] \ 00000534 A03380E5 STR R3,[R0, #+928] \ 00000538 A42380E5 STR R2,[R0, #+932] \ 0000053C AC3380E5 STR R3,[R0, #+940] \ 00000540 B02380E5 STR R2,[R0, #+944] \ 00000544 B83380E5 STR R3,[R0, #+952] \ 00000548 BC2380E5 STR R2,[R0, #+956] \ 0000054C C43380E5 STR R3,[R0, #+964] \ 00000550 C82380E5 STR R2,[R0, #+968] \ 00000554 D03380E5 STR R3,[R0, #+976] \ 00000558 D42380E5 STR R2,[R0, #+980] \ 0000055C DC3380E5 STR R3,[R0, #+988] \ 00000560 E02380E5 STR R2,[R0, #+992] \ 00000564 E83380E5 STR R3,[R0, #+1000] \ 00000568 EC2380E5 STR R2,[R0, #+1004] \ 0000056C 011081E2 ADD R1,R1,#+1 \ 00000570 081480E5 STR R1,[R0, #+1032] 159 } \ 00000574 0080BDE8 POP {PC} ;; return \ ??FillData_0: \ 00000578 ........ DC32 Pon22 \ 0000057C ........ DC32 Pon12 \ 00000580 ........ DC32 Pon11 \ 00000584 ........ DC32 Sr12 \ 00000588 ........ DC32 Pon23 \ 0000058C ........ DC32 Pon13 \ 00000590 ........ DC32 Pon24 \ 00000594 ........ DC32 Pon14 \ 00000598 ........ DC32 Pon25 \ 0000059C ........ DC32 Pon15 \ 000005A0 ........ DC32 Pon26 \ 000005A4 ........ DC32 Pon16 \ 000005A8 ........ DC32 Pon27 \ 000005AC ........ DC32 Pon17 \ 000005B0 ........ DC32 Vt11 \ 000005B4 ........ DC32 Pon21 \ 000005B8 ........ DC32 Vt12 \ 000005BC ........ DC32 Sr13 \ 000005C0 ........ DC32 Vt13 \ 000005C4 ........ DC32 Vt14 \ 000005C8 ........ DC32 Vt15 \ 000005CC ........ DC32 Vt16 \ 000005D0 ........ DC32 Vt17 \ 000005D4 ........ DC32 Vt21 \ 000005D8 ........ DC32 Vt22 \ 000005DC ........ DC32 Vt23 \ 000005E0 ........ DC32 Vt24 \ 000005E4 ........ DC32 Vt25 \ 000005E8 ........ DC32 Vt26 \ 000005EC ........ DC32 Vt27 \ 000005F0 ........ DC32 Sr11 \ 000005F4 ........ DC32 Sr14 \ 000005F8 ........ DC32 Sr15 \ 000005FC ........ DC32 Sr16 \ 00000600 ........ DC32 Sr17 \ 00000604 ........ DC32 Sr21 \ 00000608 ........ DC32 Sr22 \ 0000060C ........ DC32 Sr23 \ 00000610 ........ DC32 Sr24 \ 00000614 ........ DC32 Sr25 \ 00000618 ........ DC32 Sr26 \ 0000061C ........ DC32 Sr27 \ 00000620 ........ DC32 Ch12 \ 00000624 ........ DC32 Ch11 \ 00000628 ........ DC32 Ch13 \ 0000062C ........ DC32 Ch14 \ 00000630 ........ DC32 Ch15 \ 00000634 ........ DC32 Ch16 \ 00000638 ........ DC32 Ch17 \ 0000063C ........ DC32 Ch21 \ 00000640 ........ DC32 Ch22 \ 00000644 ........ DC32 Ch23 \ 00000648 ........ DC32 Ch24 \ 0000064C ........ DC32 Ch25 \ 00000650 ........ DC32 Ch26 \ 00000654 ........ DC32 Ch27 \ 00000658 ........ DC32 Pt12 \ 0000065C ........ DC32 Pt13 \ 00000660 ........ DC32 Pt14 \ 00000664 ........ DC32 Pt15 \ 00000668 ........ DC32 Pt11 \ 0000066C ........ DC32 Pt16 \ 00000670 ........ DC32 Pt17 \ 00000674 ........ DC32 Pt21 \ 00000678 ........ DC32 Pt22 \ 0000067C ........ DC32 Pt23 \ 00000680 ........ DC32 Pt24 \ 00000684 ........ DC32 Pt25 \ 00000688 ........ DC32 Su21 \ 0000068C ........ DC32 Pt26 \ 00000690 ........ DC32 Su22 \ 00000694 ........ DC32 Pt27 \ 00000698 ........ DC32 Su23 \ 0000069C ........ DC32 Su12 \ 000006A0 ........ DC32 Su24 \ 000006A4 ........ DC32 Su13 \ 000006A8 ........ DC32 Su25 \ 000006AC ........ DC32 Su14 \ 000006B0 ........ DC32 Su26 \ 000006B4 ........ DC32 Su15 \ 000006B8 ........ DC32 Su27 \ 000006BC ........ DC32 Su16 \ 000006C0 ........ DC32 CurWeek \ 000006C4 ........ DC32 Su11 \ 000006C8 ........ DC32 Su17 160 \ In segment CODE, align 4, keep-with-next 161 void onRedraw(MAIN_GUI *data) 162 { \ onRedraw: \ 00000000 F04F2DE9 PUSH {R4-R11,LR} \ 00000004 30D04DE2 SUB SP,SP,#+48 163 164 TDate date; 165 TTime time; 166 GetDateTime(&date,&time); \ 00000008 0C108DE2 ADD R1,SP,#+12 \ 0000000C 04008DE2 ADD R0,SP,#+4 \ 00000010 B40000EF SWI +180 167 168 void *canvasdata=BuildCanvas(); \ 00000014 F18000EF SWI +33009 169 170 DrawCanvas(canvasdata,0,0,131,176,1); \ 00000018 0110A0E3 MOV R1,#+1 \ 0000001C 02002DE9 PUSH {R1} \ 00000020 8330A0E3 MOV R3,#+131 \ 00000024 0020A0E3 MOV R2,#+0 171 DrawRoundedFrame(0,0,131,176,0,0,0,backcolor,backcolor); 172 173 WSHDR *ws=AllocWS(127); 174 int dy=0; \ 00000028 00B0A0E3 MOV R11,#+0 \ 0000002C B010A0E3 MOV R1,#+176 \ 00000030 02002DE9 PUSH {R1} \ 00000034 0010A0E3 MOV R1,#+0 \ 00000038 250000EF SWI +37 \ 0000003C 20029FE5 LDR R0,??onRedraw_0+0x4 ;; backcolor \ 00000040 B030A0E3 MOV R3,#+176 \ 00000044 0010A0E1 MOV R1,R0 \ 00000048 02002DE9 PUSH {R1} \ 0000004C 01002DE9 PUSH {R0} \ 00000050 8320A0E3 MOV R2,#+131 \ 00000054 0000A0E3 MOV R0,#+0 \ 00000058 01002DE9 PUSH {R0} \ 0000005C 01002DE9 PUSH {R0} \ 00000060 01002DE9 PUSH {R0} \ 00000064 0010A0E1 MOV R1,R0 \ 00000068 500100EF SWI +336 \ 0000006C 7F00A0E3 MOV R0,#+127 \ 00000070 250100EF SWI +293 175 int i=0; 176 int height; 177 178 char *cday[7]={"Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота" ,"Выходной!!!"}; \ 00000074 EC119FE5 LDR R1,??onRedraw_0+0x8 ;; `?gui.state=1; \ onCreate: \ 00000000 0110A0E3 MOV R1,#+1 \ 00000004 0C10C0E5 STRB R1,[R0, #+12] 214 } \ 00000008 1EFF2FE1 BX LR ;; return 215 \ In segment CODE, align 4, keep-with-next 216 void onClose(MAIN_GUI *data, void (*mfree_adr)(void *)) 217 { 218 data->gui.state=0; \ onClose: \ 00000000 0010A0E3 MOV R1,#+0 \ 00000004 0C10C0E5 STRB R1,[R0, #+12] 219 } \ 00000008 1EFF2FE1 BX LR ;; return 220 \ In segment CODE, align 4, keep-with-next 221 void onFocus(MAIN_GUI *data, void *(*malloc_adr)(int), void (*mfree_adr)(void *)) 222 { 223 data->gui.state=2; \ onFocus: \ 00000000 0210A0E3 MOV R1,#+2 \ 00000004 0C10C0E5 STRB R1,[R0, #+12] 224 } \ 00000008 1EFF2FE1 BX LR ;; return 225 \ In segment CODE, align 4, keep-with-next 226 void onUnfocus(MAIN_GUI *data, void (*mfree_adr)(void *)) 227 { 228 if (data->gui.state!=2) return; \ onUnfocus: \ 00000000 0C10D0E5 LDRB R1,[R0, #+12] \ 00000004 020051E3 CMP R1,#+2 229 data->gui.state=1; \ 00000008 0110A003 MOVEQ R1,#+1 \ 0000000C 0C10C005 STRBEQ R1,[R0, #+12] 230 } \ 00000010 1EFF2FE1 BX LR ;; return 231 \ In segment CODE, align 4, keep-with-next 232 int onKey(MAIN_GUI *data, GUI_MSG *msg) 233 { \ onKey: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 0140A0E1 MOV R4,R1 234 REDRAW(); \ 00000008 720100EF SWI +370 235 if (msg->gbsmsg->msg==KEY_DOWN) \ 0000000C 040094E5 LDR R0,[R4, #+4] \ 00000010 9320A0E3 MOV R2,#+147 \ 00000014 F210D0E1 LDRSH R1,[R0, #+2] \ 00000018 402F82E3 ORR R2,R2,#0x100 \ 0000001C 020051E1 CMP R1,R2 \ 00000020 2F00001A BNE ??onKey_0 236 { 237 switch(msg->gbsmsg->submess) \ 00000024 ........ LDR R1,??DataTable18 ;; para \ 00000028 040090E5 LDR R0,[R0, #+4] \ 0000002C 0C2491E5 LDR R2,[R1, #+1036] \ 00000030 0B0050E2 SUBS R0,R0,#+11 \ 00000034 0A00000A BEQ ??onKey_1 \ 00000038 010050E2 SUBS R0,R0,#+1 \ 0000003C 0600000A BEQ ??onKey_2 \ 00000040 1E0050E2 SUBS R0,R0,#+30 \ 00000044 1600000A BEQ ??onKey_3 \ 00000048 130050E2 SUBS R0,R0,#+19 \ 0000004C 0800000A BEQ ??onKey_4 \ 00000050 010050E2 SUBS R0,R0,#+1 \ 00000054 0A00000A BEQ ??onKey_5 \ 00000058 0F0000EA B ??onKey_6 238 { 239 #ifdef NEWSGOLD 240 case RIGHT_SOFT: 241 return(1); 242 #else 243 case RED_BUTTON: 244 return(1); \ ??onKey_2: \ 0000005C 0100A0E3 MOV R0,#+1 \ 00000060 1080BDE8 POP {R4,PC} 245 #endif 246 case GREEN_BUTTON: 247 ShowMSG(1,(int)"XShed\n©Nicckk"); // не трогать ))) \ ??onKey_1: \ 00000064 80109FE5 LDR R1,??onKey_7 ;; `?` \ 00000068 0100A0E3 MOV R0,#+1 \ 0000006C 480100EF SWI +328 \ 00000070 090000EA B ??onKey_6 248 break; 249 case LEFT_BUTTON: 250 if (tempday == 1 ) tempday = 6; \ ??onKey_4: \ 00000074 010052E3 CMP R2,#+1 \ 00000078 01004212 SUBNE R0,R2,#+1 \ 0000007C 0600A003 MOVEQ R0,#+6 \ 00000080 040000EA B ??onKey_8 251 else tempday -=1; 252 break; 253 case RIGHT_BUTTON: 254 if (tempday == 6) tempday = 1; \ ??onKey_5: \ 00000084 060052E3 CMP R2,#+6 \ 00000088 0100A003 MOVEQ R0,#+1 \ 0000008C 0C048105 STREQ R0,[R1, #+1036] \ 00000090 1300000A BEQ ??onKey_0 255 else tempday +=1; \ 00000094 010082E2 ADD R0,R2,#+1 \ ??onKey_8: \ 00000098 0C0481E5 STR R0,[R1, #+1036] \ ??onKey_6: \ 0000009C 0000A0E3 MOV R0,#+0 \ 000000A0 1080BDE8 POP {R4,PC} 256 break; 257 case '*': 258 EditConfig(); \ ??onKey_3: \ 000000A4 9600A0E3 MOV R0,#+150 \ 000000A8 250100EF SWI +293 \ 000000AC 0040A0E1 MOV R4,R0 \ 000000B0 ........ LDR R0,??DataTable14 ;; successed_config_filename \ 000000B4 8020A0E3 MOV R2,#+128 \ 000000B8 001090E5 LDR R1,[R0, #+0] \ 000000BC 0400A0E1 MOV R0,R4 \ 000000C0 6C0100EF SWI +364 \ 000000C4 0020A0E3 MOV R2,#+0 \ 000000C8 0010A0E3 MOV R1,#+0 \ 000000CC 0400A0E1 MOV R0,R4 \ 000000D0 940000EF SWI +148 \ 000000D4 0400A0E1 MOV R0,R4 \ 000000D8 290100EF SWI +297 \ 000000DC 0100A0E3 MOV R0,#+1 \ 000000E0 3B0100EF SWI +315 259 break; 260 }; 261 } 262 return(0); \ ??onKey_0: \ 000000E4 0000A0E3 MOV R0,#+0 \ 000000E8 1080BDE8 POP {R4,PC} ;; return \ ??onKey_7: \ 000000EC ........ DC32 `?` 263 } 264 \ In segment CODE, align 4, keep-with-next 265 int method8(void) 266 { 267 return(0); \ method8: \ 00000000 0000A0E3 MOV R0,#+0 \ 00000004 1EFF2FE1 BX LR ;; return 268 } 269 \ In segment CODE, align 4, keep-with-next 270 int method9(void) 271 { 272 return(0); \ method9: \ 00000000 0000A0E3 MOV R0,#+0 \ 00000004 1EFF2FE1 BX LR ;; return 273 } 274 275 extern void kill_data(void *p,void(*func_p)(void *)); \ In segment CODE, align 4, keep-with-next 276 void ElfKiller(void) 277 { \ ElfKiller: \ 00000000 00402DE9 PUSH {LR} 278 extern void *ELF_BEGIN; 279 kill_data(&ELF_BEGIN,(void (*)(void *))mfree_adr()); \ 00000004 158000EF SWI +32789 \ 00000008 0010A0E1 MOV R1,R0 \ 0000000C ........ LDR R0,??DataTable12 ;; ELF_BEGIN \ 00000010 0040BDE8 POP {LR} ;; Pop \ 00000014 ........ _BF kill_data,??kill_data??rA ;; tailcall 280 } 281 \ In segment DATA_C, align 4, align-sorted 282 const void * const gui_methods[11]= \ gui_methods: \ 00000000 ............ DC32 onRedraw, onCreate, onClose, onFocus, onUnfocus, onKey, 0H \ ............ \ ............ \ ............ \ 00000000 \ 0000001C ............ DC32 kill_data, method8, method9, 0H \ ............ \ 00000000 283 { 284 (void *)onRedraw, 285 (void *)onCreate, 286 (void *)onClose, 287 (void *)onFocus, 288 (void *)onUnfocus, 289 (void *)onKey, 290 0, 291 (void *)kill_data, 292 (void *)method8, 293 (void *)method9, 294 0 295 }; 296 297 const RECT Canvas={0,0,0,0}; \ Canvas: \ 0000002C 000000000000 DC16 0, 0, 0, 0 \ 0000 298 \ In segment CODE, align 4, keep-with-next 299 void maincsm_oncreate(CSM_RAM *data) 300 { \ maincsm_oncreate: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 0040A0E1 MOV R4,R0 301 MAIN_GUI *main_gui = malloc(sizeof(MAIN_GUI)); \ 00000008 3C00A0E3 MOV R0,#+60 \ 0000000C 140000EF SWI +20 \ 00000010 0050A0E1 MOV R5,R0 302 MAIN_CSM *csm = (MAIN_CSM*)data; 303 zeromem(main_gui, sizeof(MAIN_GUI)); \ 00000014 3C10A0E3 MOV R1,#+60 \ 00000018 1D0100EF SWI +285 304 main_gui->gui.canvas=(void *)(&Canvas); \ 0000001C 2C009FE5 LDR R0,??maincsm_oncreate_0 ;; gui_methods \ 00000020 2C1080E2 ADD R1,R0,#+44 \ 00000024 001085E5 STR R1,[R5, #+0] 305 main_gui->gui.methods=(void *)gui_methods; \ 00000028 040085E5 STR R0,[R5, #+4] 306 main_gui->gui.item_ll.data_mfree=(void (*)(void *))mfree_adr(); \ 0000002C 158000EF SWI +32789 \ 00000030 1C0085E5 STR R0,[R5, #+28] 307 csm->csm.state=0; \ 00000034 0000A0E3 MOV R0,#+0 \ 00000038 100084E5 STR R0,[R4, #+16] 308 csm->csm.unk1=0; \ 0000003C 140084E5 STR R0,[R4, #+20] 309 csm->gui_id = CreateGUI(main_gui); \ 00000040 0500A0E1 MOV R0,R5 \ 00000044 370100EF SWI +311 \ 00000048 280084E5 STR R0,[R4, #+40] 310 } \ 0000004C 3080BDE8 POP {R4,R5,PC} ;; return \ ??maincsm_oncreate_0: \ 00000050 ........ DC32 gui_methods 311 \ In segment CODE, align 4, keep-with-next 312 void maincsm_onclose(CSM_RAM *csm) 313 { 314 //SUBPROC((void *)ElfKiller); 315 } \ maincsm_onclose: \ 00000000 1EFF2FE1 BX LR ;; return 316 ///// добавить сообщение для вызова GUI из другого эльфа!!!!!! \ In segment CODE, align 4, keep-with-next 317 int maincsm_onmessage(CSM_RAM *data, GBS_MSG *msg) 318 { 319 MAIN_CSM *csm = (MAIN_CSM*)data; 320 if ((msg->msg==MSG_GUI_DESTROYED) && ((int)msg->data0==csm->gui_id)) \ maincsm_onmessage: \ 00000000 F220D1E1 LDRSH R2,[R1, #+2] \ 00000004 980052E3 CMP R2,#+152 \ 00000008 0400001A BNE ??maincsm_onmessage_0 \ 0000000C 081091E5 LDR R1,[R1, #+8] \ 00000010 282090E5 LDR R2,[R0, #+40] \ 00000014 020051E1 CMP R1,R2 321 { 322 csm->csm.state=-3; \ 00000018 0210E003 MVNEQ R1,#+2 \ 0000001C 10108005 STREQ R1,[R0, #+16] 323 } 324 return(1); \ ??maincsm_onmessage_0: \ 00000020 0100A0E3 MOV R0,#+1 \ 00000024 1EFF2FE1 BX LR ;; return 325 } 326 327 const struct 328 { 329 CSM_DESC maincsm; 330 WSHDR maincsm_name; \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 585368656400 DC8 "XShed" \ 00000006 0000 DC8 0, 0 331 }MAINCSM = \ MAINCSM: \ 00000008 ............ DC32 maincsm_onmessage, maincsm_oncreate, maincsm_onclose, 44, 1 \ ............ \ 2C0000000100 \ 0000 \ 0000001C ............ DC32 minus11, maincsm_name_body, 55AACCCCH, 3333AA55H, 0, 139 \ ....CCCCAA55 \ 55AA33330000 \ 00008B000000 332 { 333 { 334 maincsm_onmessage, 335 maincsm_oncreate, 336 #ifdef NEWSGOLD 337 0, 338 0, 339 0, 340 0, 341 #endif 342 maincsm_onclose, 343 sizeof(MAIN_CSM), 344 1, 345 &minus11 346 }, 347 { 348 maincsm_name_body, 349 NAMECSM_MAGIC1, 350 NAMECSM_MAGIC2, 351 0x0, 352 139 353 } 354 }; 355 \ In segment CODE, align 4, keep-with-next 356 void UpdateCSMname(void) 357 { 358 wsprintf((WSHDR *)(&MAINCSM.maincsm_name),"XShed"); \ UpdateCSMname: \ 00000000 10009FE5 LDR R0,??UpdateCSMname_0 ;; `?` \ 00000004 00402DE9 PUSH {LR} \ 00000008 0010A0E1 MOV R1,R0 \ 0000000C 200080E2 ADD R0,R0,#+32 \ 00000010 240100EF SWI +292 359 } \ 00000014 0080BDE8 POP {PC} ;; return \ ??UpdateCSMname_0: \ 00000018 ........ DC32 `?` 360 \ In segment CODE, align 4, keep-with-next 361 void MyIDLECSM_onClose(CSM_RAM *data) 362 { \ MyIDLECSM_onClose: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 0040A0E1 MOV R4,R0 363 extern void seqkill(void *data, void(*next_in_seq)(CSM_RAM *), void *data_to_kill, void *seqkiller); 364 extern void *ELF_BEGIN; 365 seqkill(data,old_icsm_onClose,&ELF_BEGIN,SEQKILLER_ADR()); \ 00000008 9C8100EF SWI +33180 \ 0000000C ........ LDR R2,??DataTable12 ;; ELF_BEGIN \ 00000010 0030A0E1 MOV R3,R0 \ 00000014 0C009FE5 LDR R0,??MyIDLECSM_onClose_0 ;; para + 1044 \ 00000018 001090E5 LDR R1,[R0, #+0] \ 0000001C 0400A0E1 MOV R0,R4 \ 00000020 1040BDE8 POP {R4,LR} ;; Pop \ 00000024 ........ _BF seqkill,??seqkill??rA ;; tailcall \ ??MyIDLECSM_onClose_0: \ 00000028 ........ DC32 para + 1044 366 } 367 368 369 #pragma inline=forced 370 int toupper(int c) 371 { 372 if ((c>='a')&&(c<='z')) c+='A'-'a'; 373 return(c); 374 } 375 #pragma inline 376 int strcmp_nocase(const char *s1,const char *s2) 377 { 378 int i; 379 int c; 380 while(!(i=(c=toupper(*s1++))-toupper(*s2++))) if (!c) break; 381 return(i); 382 } 383 \ In segment CODE, align 4, keep-with-next 384 int MyIDLECSM_onMessage(CSM_RAM*data, GBS_MSG *msg) 385 { \ MyIDLECSM_onMessage: \ 00000000 F04F2DE9 PUSH {R4-R11,LR} 386 int csm_result; 387 csm_result=old_icsm_onMessage(data,msg); \ 00000004 ........ LDR R7,??DataTable13 ;; para \ 00000008 10D04DE2 SUB SP,SP,#+16 \ 0000000C 102497E5 LDR R2,[R7, #+1040] \ 00000010 0150A0E1 MOV R5,R1 \ 00000014 32FF2FE1 BLX R2 \ 00000018 0040A0E1 MOV R4,R0 \ 0000001C F200D5E1 LDRSH R0,[R5, #+2] \ 00000020 F110A0E3 MOV R1,#+241 \ 00000024 C01F81E3 ORR R1,R1,#0x300 \ 00000028 010050E1 CMP R0,R1 \ 0000002C 1600001A BNE ??MyIDLECSM_onMessage_0 388 389 if (msg->msg == MSG_RECONFIGURE_REQ) 390 { 391 extern const char *successed_config_filename; 392 if (strcmp_nocase(successed_config_filename,(char *)msg->data0)==0) \ 00000030 ........ LDR R1,??DataTable14 ;; successed_config_filename \ 00000034 080095E5 LDR R0,[R5, #+8] \ 00000038 001091E5 LDR R1,[R1, #+0] \ ??MyIDLECSM_onMessage_1: \ 0000003C 0020D1E5 LDRB R2,[R1, #+0] \ 00000040 610052E3 CMP R2,#+97 \ 00000044 010000BA BLT ??MyIDLECSM_onMessage_2 \ 00000048 7B0052E3 CMP R2,#+123 \ 0000004C 202042B2 SUBLT R2,R2,#+32 \ ??MyIDLECSM_onMessage_2: \ 00000050 0030D0E5 LDRB R3,[R0, #+0] \ 00000054 011081E2 ADD R1,R1,#+1 \ 00000058 610053E3 CMP R3,#+97 \ 0000005C 010000BA BLT ??MyIDLECSM_onMessage_3 \ 00000060 7B0053E3 CMP R3,#+123 \ 00000064 203043B2 SUBLT R3,R3,#+32 \ ??MyIDLECSM_onMessage_3: \ 00000068 010080E2 ADD R0,R0,#+1 \ 0000006C 033052E0 SUBS R3,R2,R3 \ 00000070 0500001A BNE ??MyIDLECSM_onMessage_0 \ 00000074 000052E3 CMP R2,#+0 \ 00000078 EFFFFF1A BNE ??MyIDLECSM_onMessage_1 393 { 394 FillData(); \ 0000007C ........ BL FillData 395 ShowMSG(1,(int)"XShed\n config updated!"); \ 00000080 A0119FE5 LDR R1,??MyIDLECSM_onMessage_4 ;; `?` \ 00000084 0100A0E3 MOV R0,#+1 \ 00000088 480100EF SWI +328 396 } 397 } 398 399 void *icsm = FindCSMbyID(CSM_root()->idle_id); \ ??MyIDLECSM_onMessage_0: \ 0000008C 068100EF SWI +33030 \ 00000090 040090E5 LDR R0,[R0, #+4] \ 00000094 080100EF SWI +264 400 if ((IsGuiOnTop(((int*)icsm)[DISPLACE_OF_IDLEGUI_ID/4])) && (!IsScreenSaver())) \ 00000098 280090E5 LDR R0,[R0, #+40] \ 0000009C 350100EF SWI +309 \ 000000A0 000050E3 CMP R0,#+0 \ 000000A4 5C00000A BEQ ??MyIDLECSM_onMessage_5 \ 000000A8 420000EF SWI +66 \ 000000AC 000050E3 CMP R0,#+0 \ 000000B0 5900001A BNE ??MyIDLECSM_onMessage_5 401 { 402 void *canvasdata = BuildCanvas(); \ 000000B4 F18000EF SWI +33009 \ 000000B8 00A0A0E1 MOV R10,R0 403 404 TDate date; 405 TTime time; 406 int day, i=0, dy=0, height; 407 408 height = GetFontYSIZE(font) + 1; \ 000000BC ........ LDR R0,??DataTable15 ;; font \ 000000C0 0090A0E3 MOV R9,#+0 \ 000000C4 005090E5 LDR R5,[R0, #+0] \ 000000C8 0500A0E1 MOV R0,R5 \ 000000CC C50100EF SWI +453 \ 000000D0 018080E2 ADD R8,R0,#+1 409 GetDateTime(&date, &time); \ 000000D4 0D10A0E1 MOV R1,SP \ 000000D8 08008DE2 ADD R0,SP,#+8 \ 000000DC B40000EF SWI +180 410 day = GetWeek(&date) + 1; \ 000000E0 08008DE2 ADD R0,SP,#+8 \ 000000E4 B50000EF SWI +181 \ 000000E8 01B080E2 ADD R11,R0,#+1 411 412 WSHDR *ws=AllocWS(128); \ 000000EC 8000A0E3 MOV R0,#+128 \ 000000F0 250100EF SWI +293 \ 000000F4 0060A0E1 MOV R6,R0 413 // добавить подсветку текущей пары!!!!! 414 // do 415 //{ 416 if ((para[i].day == day) && (para[i].week == week) && (day != 7)) \ 000000F8 040097E5 LDR R0,[R7, #+4] \ 000000FC 0B0050E1 CMP R0,R11 \ 00000100 4300001A BNE ??MyIDLECSM_onMessage_6 \ 00000104 080097E5 LDR R0,[R7, #+8] \ 00000108 081497E5 LDR R1,[R7, #+1032] \ 0000010C 010050E1 CMP R0,R1 \ 00000110 3F00001A BNE ??MyIDLECSM_onMessage_6 \ 00000114 07005BE3 CMP R11,#+7 \ 00000118 3D00000A BEQ ??MyIDLECSM_onMessage_6 417 { 418 //DrawRoundedFrame(x,y,x+10,y+10,1,1,0,GetPaletteAdrByColorIndex(1), GetPaletteAdrByColorIndex(0)); 419 if(time.hour>=8 && time.hour <=9 && time.min <= 30) i=0; \ 0000011C 0000DDE5 LDRB R0,[SP, #+0] \ 00000120 080050E3 CMP R0,#+8 \ 00000124 0100003A BCC ??MyIDLECSM_onMessage_7 \ 00000128 0A0050E3 CMP R0,#+10 \ 0000012C 0F00003A BCC ??MyIDLECSM_onMessage_8 420 else if(time.hour>=9 && time.min>=45 && time.hour <=11 && time.min <= 15) i=1; 421 else if(time.hour>=11 && time.min>=15 && time.hour <=13 && time.min <= 0) i=2; 422 else if(time.hour>=13 && time.min>=15 && time.hour <=14 && time.min <= 45) i=3; \ ??MyIDLECSM_onMessage_7: \ 00000130 0100DDE5 LDRB R0,[SP, #+1] \ 00000134 0010DDE5 LDRB R1,[SP, #+0] \ 00000138 0D0051E3 CMP R1,#+13 \ 0000013C 0F005023 CMPCS R0,#+15 \ 00000140 0500003A BCC ??MyIDLECSM_onMessage_9 \ 00000144 0F0051E3 CMP R1,#+15 \ 00000148 0300002A BCS ??MyIDLECSM_onMessage_9 \ 0000014C 2E0050E3 CMP R0,#+46 \ 00000150 0600002A BCS ??MyIDLECSM_onMessage_8 \ 00000154 0390A0E3 MOV R9,#+3 \ 00000158 040000EA B ??MyIDLECSM_onMessage_8 423 else if(time.hour>=15 && time.min>= 0 && time.hour <=16 && time.min <= 30) i=4; ^ Warning[Pe186]: pointless comparison of unsigned integer with zero \ ??MyIDLECSM_onMessage_9: \ 0000015C 0F0051E3 CMP R1,#+15 \ 00000160 0200003A BCC ??MyIDLECSM_onMessage_8 \ 00000164 110051E3 CMP R1,#+17 \ 00000168 1F005033 CMPCC R0,#+31 \ 0000016C 0490A033 MOVCC R9,#+4 424 else if(time.hour>=16 && time.min>=45 && time.hour <=18 && time.min <= 15) i=5; 425 else if(time.hour>=18 && time.min>=30 && time.hour <=20 && time.min <= 0) i=6; 426 427 wsprintf(ws,"%t\n%t",para[i].name,para[i+1].name); \ ??MyIDLECSM_onMessage_8: \ 00000170 0C10A0E3 MOV R1,#+12 \ 00000174 917920E0 MLA R0,R1,R9,R7 \ 00000178 AC109FE5 LDR R1,??MyIDLECSM_onMessage_4+0x4 ;; `?` + 24 \ 0000017C 0C3090E5 LDR R3,[R0, #+12] \ 00000180 002090E5 LDR R2,[R0, #+0] \ 00000184 0600A0E1 MOV R0,R6 \ 00000188 240100EF SWI +292 428 DrawCanvas(canvasdata,x, y /*+ dy*/, x + Get_WS_width(ws, font), y + dy + height, 1); \ 0000018C 0510A0E1 MOV R1,R5 \ 00000190 0600A0E1 MOV R0,R6 \ 00000194 080200EF SWI +520 \ 00000198 90109FE5 LDR R1,??MyIDLECSM_onMessage_4+0x8 ;; y \ 0000019C 007091E5 LDR R7,[R1, #+0] \ 000001A0 8C109FE5 LDR R1,??MyIDLECSM_onMessage_4+0xC ;; x \ 000001A4 078088E0 ADD R8,R8,R7 \ 000001A8 009091E5 LDR R9,[R1, #+0] \ 000001AC 0110A0E3 MOV R1,#+1 \ 000001B0 02002DE9 PUSH {R1} \ 000001B4 093080E0 ADD R3,R0,R9 \ 000001B8 0720A0E1 MOV R2,R7 \ 000001BC 0A00A0E1 MOV R0,R10 \ 000001C0 0810A0E1 MOV R1,R8 \ 000001C4 02002DE9 PUSH {R1} \ 000001C8 0910A0E1 MOV R1,R9 \ 000001CC 250000EF SWI +37 429 DrawString(ws, x, y/* + dy*/, x + Get_WS_width(ws, font), y + dy + height, font, 32, fontcolor, outline); \ 000001D0 0510A0E1 MOV R1,R5 \ 000001D4 0600A0E1 MOV R0,R6 \ 000001D8 080200EF SWI +520 \ 000001DC ........ LDR R1,??DataTable16 ;; outline \ 000001E0 093080E0 ADD R3,R0,R9 \ 000001E4 02002DE9 PUSH {R1} \ 000001E8 ........ LDR R1,??DataTable17 ;; fontcolor \ 000001EC 0720A0E1 MOV R2,R7 \ 000001F0 02002DE9 PUSH {R1} \ 000001F4 0600A0E1 MOV R0,R6 \ 000001F8 2010A0E3 MOV R1,#+32 \ 000001FC 02002DE9 PUSH {R1} \ 00000200 20002DE9 PUSH {R5} \ 00000204 00012DE9 PUSH {R8} \ 00000208 0910A0E1 MOV R1,R9 \ 0000020C 4C0100EF SWI +332 \ 00000210 1CD08DE2 ADD SP,SP,#+28 430 // dy += height; 431 } 432 // i++; 433 // }while (i<84); 434 435 FreeWS(ws); \ ??MyIDLECSM_onMessage_6: \ 00000214 0600A0E1 MOV R0,R6 \ 00000218 290100EF SWI +297 436 } 437 return(csm_result); \ ??MyIDLECSM_onMessage_5: \ 0000021C 0400A0E1 MOV R0,R4 \ 00000220 10D08DE2 ADD SP,SP,#+16 \ 00000224 F08FBDE8 POP {R4-R11,PC} ;; return \ ??MyIDLECSM_onMessage_4: \ 00000228 ........ DC32 `?` \ 0000022C ........ DC32 `?` + 24 \ 00000230 ........ DC32 y \ 00000234 ........ DC32 x 438 } 439 \ In segment CODE, align 4, keep-with-next 440 int my_keyhook(int key, int m) 441 { \ my_keyhook: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 10D04DE2 SUB SP,SP,#+16 \ 00000008 0040A0E1 MOV R4,R0 \ 0000000C 0150A0E1 MOV R5,R1 442 void *icsm=FindCSMbyID(CSM_root()->idle_id); \ 00000010 068100EF SWI +33030 \ 00000014 040090E5 LDR R0,[R0, #+4] \ 00000018 080100EF SWI +264 443 if ((IsGuiOnTop(((int*)icsm)[DISPLACE_OF_IDLEGUI_ID/4])) && IsUnlocked() && (m==KEY_DOWN) && (!IsScreenSaver())) \ 0000001C 280090E5 LDR R0,[R0, #+40] \ 00000020 350100EF SWI +309 \ 00000024 000050E3 CMP R0,#+0 \ 00000028 1600000A BEQ ??my_keyhook_0 \ 0000002C 430000EF SWI +67 \ 00000030 000050E3 CMP R0,#+0 \ 00000034 1300000A BEQ ??my_keyhook_0 \ 00000038 9300A0E3 MOV R0,#+147 \ 0000003C 400F80E3 ORR R0,R0,#0x100 \ 00000040 000055E1 CMP R5,R0 \ 00000044 0E00001A BNE ??my_keyhook_1 \ 00000048 420000EF SWI +66 \ 0000004C 000050E3 CMP R0,#+0 \ 00000050 0B00001A BNE ??my_keyhook_1 444 { 445 if (key == Button) \ 00000054 34009FE5 LDR R0,??my_keyhook_2 ;; Button \ 00000058 000090E5 LDR R0,[R0, #+0] \ 0000005C 000054E1 CMP R4,R0 \ 00000060 0700001A BNE ??my_keyhook_1 446 { 447 TDate date; 448 TTime time; 449 450 GetDateTime(&date, &time); \ 00000064 08108DE2 ADD R1,SP,#+8 \ 00000068 0D00A0E1 MOV R0,SP \ 0000006C B40000EF SWI +180 451 452 tempday = GetWeek(&date) + 1; \ 00000070 0D00A0E1 MOV R0,SP \ 00000074 B50000EF SWI +181 \ 00000078 14109FE5 LDR R1,??my_keyhook_2+0x4 ;; para + 1036 \ 0000007C 010080E2 ADD R0,R0,#+1 \ 00000080 000081E5 STR R0,[R1, #+0] 453 /* 454 LockSched(); 455 char dummy[sizeof(MAIN_CSM)]; 456 UpdateCSMname(); 457 CreateCSM(&MAINCSM.maincsm, dummy, 2); 458 UnlockSched();*/ 459 } 460 } 461 return(0); \ ??my_keyhook_1: \ 00000084 0000A0E3 MOV R0,#+0 \ ??my_keyhook_0: \ 00000088 10D08DE2 ADD SP,SP,#+16 ;; stack cleaning \ 0000008C 3080BDE8 POP {R4,R5,PC} ;; return \ ??my_keyhook_2: \ 00000090 ........ DC32 Button \ 00000094 ........ DC32 para + 1036 462 } 463 /*static void UpdateCSMname(void) 464 { 465 wsprintf((WSHDR *)(&MAINCSM.maincsm_name),"XShed"); 466 }*/ 467 \ In segment CODE, align 4, keep-with-next 468 int main(void) 469 { \ main: \ 00000000 70402DE9 PUSH {R4-R6,LR} 470 LockSched(); 471 CSM_RAM *icsm=FindCSMbyID(CSM_root()->idle_id); 472 memcpy(&icsmd, icsm->constr, sizeof(icsmd)); \ 00000004 ........ LDR R6,??DataTable18 ;; para \ 00000008 2CD04DE2 SUB SP,SP,#+44 \ 0000000C FC5FA0E3 MOV R5,#+1008 \ 00000010 460100EF SWI +326 \ 00000014 068100EF SWI +33030 \ 00000018 040090E5 LDR R0,[R0, #+4] \ 0000001C 080100EF SWI +264 \ 00000020 0040A0E1 MOV R4,R0 \ 00000024 081094E5 LDR R1,[R4, #+8] \ 00000028 1820A0E3 MOV R2,#+24 \ 0000002C 060085E0 ADD R0,R5,R6 \ 00000030 1E0100EF SWI +286 473 old_icsm_onMessage=icsmd.onMessage; \ 00000034 060095E7 LDR R0,[R5, +R6] \ 00000038 100486E5 STR R0,[R6, #+1040] 474 icsmd.onMessage=MyIDLECSM_onMessage; \ 0000003C 80009FE5 LDR R0,??main_0 ;; MyIDLECSM_onMessage \ 00000040 060085E7 STR R0,[R5, +R6] 475 old_icsm_onClose=icsmd.onClose; \ 00000044 FE0FA0E3 MOV R0,#+1016 \ 00000048 061090E7 LDR R1,[R0, +R6] \ 0000004C 141486E5 STR R1,[R6, #+1044] 476 icsmd.onClose=MyIDLECSM_onClose; \ 00000050 70109FE5 LDR R1,??main_0+0x4 ;; MyIDLECSM_onClose \ 00000054 061080E7 STR R1,[R0, +R6] 477 icsm->constr=&icsmd; \ 00000058 060085E0 ADD R0,R5,R6 \ 0000005C 080084E5 STR R0,[R4, #+8] 478 479 AddKeybMsgHook((void *)my_keyhook); \ 00000060 64009FE5 LDR R0,??main_0+0x8 ;; my_keyhook \ 00000064 2B0100EF SWI +299 480 /// UnlockSched(); 481 482 CSM_RAM *save_cmpc; 483 char dummy[sizeof(MAIN_CSM)]; 484 UpdateCSMname(); \ 00000068 ........ BL UpdateCSMname 485 //LockSched(); 486 save_cmpc=CSM_root()->csm_q->current_msg_processing_csm; \ 0000006C 068100EF SWI +33030 \ 00000070 080090E5 LDR R0,[R0, #+8] \ 00000074 044090E5 LDR R4,[R0, #+4] 487 CSM_root()->csm_q->current_msg_processing_csm=CSM_root()->csm_q->csm.first; \ 00000078 068100EF SWI +33030 \ 0000007C 0050A0E1 MOV R5,R0 \ 00000080 068100EF SWI +33030 \ 00000084 080090E5 LDR R0,[R0, #+8] \ 00000088 081095E5 LDR R1,[R5, #+8] \ 0000008C 080090E5 LDR R0,[R0, #+8] 488 CreateCSM(&MAINCSM.maincsm,dummy,0); \ 00000090 0020A0E3 MOV R2,#+0 \ 00000094 040081E5 STR R0,[R1, #+4] \ 00000098 30009FE5 LDR R0,??main_0+0xC ;; `?` + 8 \ 0000009C 0D10A0E1 MOV R1,SP \ 000000A0 070100EF SWI +263 489 CSM_root()->csm_q->current_msg_processing_csm=save_cmpc; \ 000000A4 068100EF SWI +33030 \ 000000A8 080090E5 LDR R0,[R0, #+8] \ 000000AC 044080E5 STR R4,[R0, #+4] 490 UnlockSched(); \ 000000B0 470100EF SWI +327 491 FillData(); \ 000000B4 ........ BL FillData 492 493 return(0); \ 000000B8 0000A0E3 MOV R0,#+0 \ 000000BC 2CD08DE2 ADD SP,SP,#+44 \ 000000C0 7080BDE8 POP {R4-R6,PC} ;; return \ ??main_0: \ 000000C4 ........ DC32 MyIDLECSM_onMessage \ 000000C8 ........ DC32 MyIDLECSM_onClose \ 000000CC ........ DC32 my_keyhook \ 000000D0 ........ DC32 `?` + 8 494 } \ In segment CODE, align 4, keep-with-next \ ??DataTable12: \ 00000000 ........ DC32 ELF_BEGIN \ In segment CODE, align 4, keep-with-next \ ??DataTable13: \ 00000000 ........ DC32 para \ In segment CODE, align 4, keep-with-next \ ??DataTable14: \ 00000000 ........ DC32 successed_config_filename \ In segment CODE, align 4, keep-with-next \ ??DataTable15: \ 00000000 ........ DC32 font \ In segment CODE, align 4, keep-with-next \ ??DataTable16: \ 00000000 ........ DC32 outline \ In segment CODE, align 4, keep-with-next \ ??DataTable17: \ 00000000 ........ DC32 fontcolor \ In segment CODE, align 4, keep-with-next \ ??DataTable18: \ 00000000 ........ DC32 para \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 C2F2EEF0EDE8 DC8 "\302\362\356\360\355\350\352" \ EA00 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 D1F0E5E4E000 DC8 "\321\360\345\344\340" \ 00000006 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 D7E5F2E2E5F0 DC8 "\327\345\362\342\345\360\343" \ E300 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 CFFFF2EDE8F6 DC8 "\317\377\362\355\350\366\340" \ E000 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 D1F3E1E1EEF2 DC8 "\321\363\341\341\356\362\340" \ E000 \ In segment DATA_C, align 4, align-sorted \ `?` \ 00000008 ........ DC32 `?` \ 0000000C ........ DC32 `?` \ 00000010 ........ DC32 `?` \ 00000014 ........ DC32 `?` \ 00000018 ........ DC32 `?`: \ 00000000 58536865640A DC8 "XShed\012\251Nicckk" \ A94E6963636B \ 6B00 \ 0000000E 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 58536865640A DC8 "XShed\012 config updated!" \ 20636F6E6669 \ 672075706461 \ 7465642100 \ 00000017 00 DC8 0 \ 00000018 25740A257400 DC8 "%t\012%t" \ 0000001E 0000 DC8 0, 0 Maximum stack usage in bytes: Function CSTACK -------- ------ ElfKiller 4 FillData 4 MyIDLECSM_onClose 8 MyIDLECSM_onMessage 80 UpdateCSMname 4 main 60 maincsm_onclose 0 maincsm_oncreate 12 maincsm_onmessage 0 method8 0 method9 0 my_keyhook 28 onClose 0 onCreate 0 onFocus 0 onKey 8 onRedraw 132 onUnfocus 0 Segment part sizes: Function/Label Bytes -------------- ----- minus11 4 para 1048 maincsm_name_body 280 FillData 1740 onRedraw 628 onCreate 12 onClose 12 onFocus 12 onUnfocus 20 onKey 240 method8 8 method9 8 ElfKiller 24 gui_methods 52 maincsm_oncreate 84 maincsm_onclose 4 maincsm_onmessage 40 ? 52 UpdateCSMname 28 MyIDLECSM_onClose 44 MyIDLECSM_onMessage 568 my_keyhook 152 main 212 ??DataTable12 4 ??DataTable13 4 ??DataTable14 4 ??DataTable15 4 ??DataTable16 4 ??DataTable17 4 ??DataTable18 4 ? 8 ? 8 ? 8 ? 8 ? 8 ? 2 ? 16 ? 32 Others 120 3 972 bytes in segment CODE 250 bytes in segment DATA_C 1 328 bytes in segment DATA_Z 12 bytes in segment INITTAB 3 864 bytes of CODE memory (+ 120 bytes shared) 250 bytes of CONST memory 1 328 bytes of DATA memory Errors: none Warnings: 1