############################################################################## # # # IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION 30/Sep/2008 22:36:00 # # Copyright 1999-2005 IAR Systems. All rights reserved. # # # # Cpu mode = interwork # # Endian = little # # Stack alignment = 4 # # Source file = D:\Pasha\elf\_MY_PROJECT_\naticq_mod2\smiles_loader. # # c # # Command line = D:\Pasha\elf\_MY_PROJECT_\naticq_mod2\smiles_loader. # # c -D NEWSGOLD --preprocess # # D:\Pasha\elf\_MY_PROJECT_\naticq_mod2\ESKA\List\ # # -lC D:\Pasha\elf\_MY_PROJECT_\naticq_mod2\ESKA\List\ # # -o D:\Pasha\elf\_MY_PROJECT_\naticq_mod2\ESKA\Obj\ # # -s9 --no_unroll --cpu_mode arm --endian little # # --cpu ARM926EJ-S --stack_align 4 --interwork -e # # --fpu None --dlib_config "D:\Pasha\Embedded # # Workbench 4.0 Evaluation2\ARM\LIB\dl5tpainl8n.h" -I # # "D:\Pasha\Embedded Workbench 4.0 # # Evaluation2\ARM\INC\" --inline_threshold=2 # # List file = D:\Pasha\elf\_MY_PROJECT_\naticq_mod2\ESKA\List\smil # # es_loader.lst # # Object file = D:\Pasha\elf\_MY_PROJECT_\naticq_mod2\ESKA\Obj\smile # # s_loader.r79 # # # # # ############################################################################## D:\Pasha\elf\_MY_PROJECT_\naticq_mod2\smiles_loader.c 1 #include "../inc/swilib.h" 2 #include "../inc/pnglist.h" 3 #include "naticq_ipc.h" 4 #include "smiles.h" 5 #include "naticq.h" 6 \ In segment DATA_Z, align 4, align-sorted 7 S_SMILES *s_top=0; 8 9 DYNPNGICONLIST *SmilesImgList; 10 DYNPNGICONLIST *XStatusesImgList; 11 12 extern IMGHDR *XStatusImg[35]; 13 14 //int *XStatusesIconArray; 15 16 volatile int total_smiles; 17 volatile int total_xstatuses; 18 volatile int xstatuses_load; 19 volatile int pictures_max; //2026 20 volatile int pictures_loaded; //2026 21 22 extern char SMILE_FILE[]; 23 extern char SMILE_PATH[]; 24 extern char XSTATUSES_PATH[]; 25 extern const char ipc_my_name[]; 26 extern int S_ICONS[]; 27 28 static IPC_REQ gipc; \ gipc: \ 00000000 DS8 12 \ s_top: \ 0000000C DS8 4 \ SmilesImgList: \ 00000010 DS8 4 \ XStatusesImgList: \ 00000014 DS8 4 \ total_smiles: \ 00000018 DS8 4 \ total_xstatuses: \ 0000001C DS8 4 \ xstatuses_load: \ 00000020 DS8 4 \ pictures_max: \ 00000024 DS8 4 \ pictures_loaded: \ 00000028 DS8 4 \ 0000002C DS8 4 \ 00000030 DS8 4 \ 00000034 DS8 4 \ 00000038 DS8 4 29 static char *p_buf; 30 static char *s_buf; 31 static S_SMILES *s_bot; 32 static int n_pic; 33 \ In segment CODE, align 4, keep-with-next 34 S_SMILES *FindSmileById(int n) 35 { 36 int i=0; 37 S_SMILES *sl=(S_SMILES *)s_top; \ FindSmileById: \ 00000000 ........ LDR R1,??DataTable1 ;; gipc + 12 \ 00000004 0020A0E3 MOV R2,#+0 \ 00000008 001091E5 LDR R1,[R1, #+0] \ 0000000C 010000EA B ??FindSmileById_0 38 while(sl && i!=n) 39 { 40 sl=sl->next; \ ??FindSmileById_1: \ 00000010 001091E5 LDR R1,[R1, #+0] 41 i++; \ 00000014 012082E2 ADD R2,R2,#+1 42 } \ ??FindSmileById_0: \ 00000018 000051E3 CMP R1,#+0 \ 0000001C 00005211 CMPNE R2,R0 \ 00000020 FAFFFF1A BNE ??FindSmileById_1 43 return sl; \ 00000024 0100A0E1 MOV R0,R1 \ 00000028 1EFF2FE1 BX LR ;; return 44 } 45 \ In segment CODE, align 4, keep-with-next 46 S_SMILES *FindSmileByUni(int wchar) 47 { 48 S_SMILES *sl=(S_SMILES *)s_top; \ FindSmileByUni: \ 00000000 ........ LDR R1,??DataTable1 ;; gipc + 12 49 while(sl) 50 { 51 if (sl->uni_smile == wchar) return (sl); 52 sl=sl->next; \ ??FindSmileByUni_0: \ 00000004 001091E5 LDR R1,[R1, #+0] \ 00000008 000051E3 CMP R1,#+0 \ 0000000C 0400000A BEQ ??FindSmileByUni_1 \ 00000010 042091E5 LDR R2,[R1, #+4] \ 00000014 000052E1 CMP R2,R0 \ 00000018 F9FFFF1A BNE ??FindSmileByUni_0 \ 0000001C 0100A0E1 MOV R0,R1 \ 00000020 1EFF2FE1 BX LR 53 } 54 return (0); \ ??FindSmileByUni_1: \ 00000024 0000A0E3 MOV R0,#+0 \ 00000028 1EFF2FE1 BX LR ;; return 55 } 56 \ In segment CODE, align 4, keep-with-next 57 void FreeSmiles(void) 58 { \ FreeSmiles: \ 00000000 F0412DE9 PUSH {R4-R8,LR} 59 S_SMILES *s_smile; 60 STXT_SMILES *n; 61 STXT_SMILES *st; 62 DYNPNGICONLIST *d; 63 DYNPNGICONLIST *nd; 64 LockSched(); 65 total_smiles=0; \ 00000004 ........ LDR R4,??DataTable10 ;; gipc \ 00000008 04D04DE2 SUB SP,SP,#+4 \ 0000000C 0050A0E3 MOV R5,#+0 \ 00000010 460100EF SWI +326 \ 00000014 185084E5 STR R5,[R4, #+24] 66 s_smile=(S_SMILES *)s_top; \ 00000018 0C6094E5 LDR R6,[R4, #+12] 67 s_top=0; \ 0000001C 0C5084E5 STR R5,[R4, #+12] 68 s_bot=0; \ 00000020 345084E5 STR R5,[R4, #+52] 69 UnlockSched(); \ 00000024 470100EF SWI +327 \ 00000028 000056E3 CMP R6,#+0 \ 0000002C 1300000A BEQ ??FreeSmiles_0 70 while(s_smile) 71 { 72 S_SMILES *s; 73 s=s_smile; \ ??FreeSmiles_1: \ 00000030 0670A0E1 MOV R7,R6 74 st=s->lines; \ 00000034 080097E5 LDR R0,[R7, #+8] \ 00000038 000050E3 CMP R0,#+0 \ 0000003C 0A00000A BEQ ??FreeSmiles_2 75 while(st) 76 { 77 n=st->next; \ ??FreeSmiles_3: \ 00000040 0010A0E3 MOV R1,#+0 \ 00000044 0D20A0E1 MOV R2,SP \ ??FreeSmiles_4: \ 00000048 0030D1E7 LDRB R3,[R1, +R0] \ 0000004C 0230C1E7 STRB R3,[R1, +R2] \ 00000050 011081E2 ADD R1,R1,#+1 \ 00000054 040051E3 CMP R1,#+4 \ 00000058 FAFFFFBA BLT ??FreeSmiles_4 \ 0000005C 00809DE5 LDR R8,[SP, #+0] 78 mfree(st); \ 00000060 150000EF SWI +21 79 st=n; \ 00000064 0800B0E1 MOVS R0,R8 80 } \ 00000068 F4FFFF1A BNE ??FreeSmiles_3 81 s_smile=(S_SMILES *)(s_smile->next); \ ??FreeSmiles_2: \ 0000006C 006096E5 LDR R6,[R6, #+0] 82 mfree(s); \ 00000070 0700A0E1 MOV R0,R7 \ 00000074 150000EF SWI +21 83 } \ 00000078 000056E3 CMP R6,#+0 \ 0000007C EBFFFF1A BNE ??FreeSmiles_1 84 LockSched(); \ ??FreeSmiles_0: \ 00000080 460100EF SWI +326 85 d=SmilesImgList; \ 00000084 106094E5 LDR R6,[R4, #+16] 86 SmilesImgList=0; \ 00000088 105084E5 STR R5,[R4, #+16] 87 UnlockSched(); \ 0000008C 470100EF SWI +327 \ 00000090 000056E3 CMP R6,#+0 \ 00000094 0B00000A BEQ ??FreeSmiles_5 88 while(d) 89 { 90 if (d->img) \ ??FreeSmiles_6: \ 00000098 080096E5 LDR R0,[R6, #+8] \ 0000009C 000050E3 CMP R0,#+0 \ 000000A0 0300000A BEQ ??FreeSmiles_7 91 { 92 mfree(d->img->bitmap); \ 000000A4 040090E5 LDR R0,[R0, #+4] \ 000000A8 150000EF SWI +21 93 mfree(d->img); \ 000000AC 080096E5 LDR R0,[R6, #+8] \ 000000B0 150000EF SWI +21 94 } 95 nd=d->next; \ ??FreeSmiles_7: \ 000000B4 005096E5 LDR R5,[R6, #+0] 96 mfree(d); \ 000000B8 0600A0E1 MOV R0,R6 \ 000000BC 150000EF SWI +21 97 d=nd; \ 000000C0 0560B0E1 MOVS R6,R5 98 } \ 000000C4 F3FFFF1A BNE ??FreeSmiles_6 99 mfree(s_buf); \ ??FreeSmiles_5: \ 000000C8 300094E5 LDR R0,[R4, #+48] \ 000000CC 150000EF SWI +21 100 } \ 000000D0 F181BDE8 POP {R0,R4-R8,PC} ;; return 101 \ In segment CODE, align 4, keep-with-next 102 void InitSmiles(void) 103 { \ InitSmiles: \ 00000000 F0412DE9 PUSH {R4-R8,LR} 104 int f; 105 unsigned int err; 106 int fsize; 107 char *buf; 108 FSTATS stat; 109 110 FreeSmiles(); 111 112 n_pic=FIRST_UCS2_BITMAP; \ 00000004 ........ LDR R4,??DataTable16 ;; gipc 113 if (GetFileStats(SMILE_FILE,&stat,&err)==-1) \ 00000008 ........ LDR R6,??DataTable6 ;; SMILE_FILE \ 0000000C 2CD04DE2 SUB SP,SP,#+44 \ 00000010 ........ BL FreeSmiles \ 00000014 2A00A0E3 MOV R0,#+42 \ 00000018 E10C80E3 ORR R0,R0,#0xE100 \ 0000001C 380084E5 STR R0,[R4, #+56] \ 00000020 0050E0E3 MVN R5,#+0 \ 00000024 0D20A0E1 MOV R2,SP \ 00000028 04108DE2 ADD R1,SP,#+4 \ 0000002C 0600A0E1 MOV R0,R6 \ 00000030 840000EF SWI +132 \ 00000034 050050E1 CMP R0,R5 \ 00000038 2400000A BEQ ??InitSmiles_0 114 return; 115 116 if ((fsize=stat.size)<=0) \ 0000003C 08709DE5 LDR R7,[SP, #+8] \ 00000040 010057E3 CMP R7,#+1 \ 00000044 210000BA BLT ??InitSmiles_0 117 return; 118 119 if ((f=fopen(SMILE_FILE,A_ReadOnly+A_BIN,P_READ,&err))==-1) \ 00000048 0D30A0E1 MOV R3,SP \ 0000004C 8020A0E3 MOV R2,#+128 \ 00000050 801CA0E3 MOV R1,#+32768 \ 00000054 0600A0E1 MOV R0,R6 \ 00000058 0A0000EF SWI +10 \ 0000005C 0060A0E1 MOV R6,R0 \ 00000060 050056E1 CMP R6,R5 \ 00000064 1900000A BEQ ??InitSmiles_0 120 return; 121 122 buf=s_buf=p_buf=malloc(fsize+1); \ 00000068 010087E2 ADD R0,R7,#+1 \ 0000006C 140000EF SWI +20 \ 00000070 0050A0E1 MOV R5,R0 \ 00000074 2C5084E5 STR R5,[R4, #+44] \ 00000078 305084E5 STR R5,[R4, #+48] 123 buf[fread(f,buf,fsize,&err)]=0; \ 0000007C 0080A0E3 MOV R8,#+0 \ 00000080 0D30A0E1 MOV R3,SP \ 00000084 0720A0E1 MOV R2,R7 \ 00000088 0510A0E1 MOV R1,R5 \ 0000008C 0600A0E1 MOV R0,R6 \ 00000090 0B0000EF SWI +11 \ 00000094 0580C0E7 STRB R8,[R0, +R5] 124 fclose(f,&err); \ 00000098 0D10A0E1 MOV R1,SP \ 0000009C 0600A0E1 MOV R0,R6 \ 000000A0 0D0000EF SWI +13 125 //f=fopen("4:\\smiles.cfg",A_ReadWrite+A_BIN+A_Create+A_Append,P_READ+P_WRITE,&err); 126 gipc.name_to=ipc_my_name; \ 000000A4 ........ LDR R0,??DataTable18 ;; ipc_my_name 127 gipc.name_from=ipc_my_name; 128 gipc.data=0; \ 000000A8 088084E5 STR R8,[R4, #+8] \ 000000AC 000084E5 STR R0,[R4, #+0] \ 000000B0 040084E5 STR R0,[R4, #+4] 129 130 GBS_SendMessage(MMI_CEPID,MSG_IPC,IPC_SMILE_PROCESSED,&gipc); \ 000000B4 0430A0E1 MOV R3,R4 \ 000000B8 0220A0E3 MOV R2,#+2 \ 000000BC B010A0E3 MOV R1,#+176 \ 000000C0 DE1C81E3 ORR R1,R1,#0xDE00 \ 000000C4 0900A0E3 MOV R0,#+9 \ 000000C8 420C80E3 ORR R0,R0,#0x4200 \ 000000CC 000100EF SWI +256 131 } \ ??InitSmiles_0: \ 000000D0 2CD08DE2 ADD SP,SP,#+44 ;; stack cleaning \ 000000D4 F081BDE8 POP {R4-R8,PC} ;; return 132 \ In segment CODE, align 4, keep-with-next 133 void CheckSmiles(void) //2026rev 134 { \ CheckSmiles: \ 00000000 F0402DE9 PUSH {R4-R7,LR} 135 int f; 136 unsigned int err; 137 int fsize; 138 char *buf, *p_buf; 139 FSTATS stat; 140 141 if (GetFileStats(SMILE_FILE,&stat,&err)==-1) \ 00000004 ........ LDR R5,??DataTable6 ;; SMILE_FILE \ 00000008 2CD04DE2 SUB SP,SP,#+44 \ 0000000C 0040E0E3 MVN R4,#+0 \ 00000010 0D20A0E1 MOV R2,SP \ 00000014 04108DE2 ADD R1,SP,#+4 \ 00000018 0500A0E1 MOV R0,R5 \ 0000001C 840000EF SWI +132 \ 00000020 040050E1 CMP R0,R4 \ 00000024 2C00000A BEQ ??CheckSmiles_0 142 return; 143 144 if ((fsize=stat.size)<=0) \ 00000028 08609DE5 LDR R6,[SP, #+8] \ 0000002C 010056E3 CMP R6,#+1 \ 00000030 290000BA BLT ??CheckSmiles_0 145 return; 146 147 if ((f=fopen(SMILE_FILE,A_ReadOnly+A_BIN,P_READ,&err))==-1) \ 00000034 0D30A0E1 MOV R3,SP \ 00000038 8020A0E3 MOV R2,#+128 \ 0000003C 801CA0E3 MOV R1,#+32768 \ 00000040 0500A0E1 MOV R0,R5 \ 00000044 0A0000EF SWI +10 \ 00000048 0070A0E1 MOV R7,R0 \ 0000004C 040057E1 CMP R7,R4 \ 00000050 2100000A BEQ ??CheckSmiles_0 148 return; 149 150 buf=p_buf=malloc(fsize+1); \ 00000054 010086E2 ADD R0,R6,#+1 \ 00000058 140000EF SWI +20 \ 0000005C 0040A0E1 MOV R4,R0 151 buf[fread(f,buf,fsize,&err)]=0; \ 00000060 0D30A0E1 MOV R3,SP \ 00000064 0620A0E1 MOV R2,R6 \ 00000068 0410A0E1 MOV R1,R4 \ 0000006C 0700A0E1 MOV R0,R7 \ 00000070 0B0000EF SWI +11 \ 00000074 0010A0E3 MOV R1,#+0 \ 00000078 0410C0E7 STRB R1,[R0, +R4] 152 fclose(f,&err); \ 0000007C 0D10A0E1 MOV R1,SP \ 00000080 0700A0E1 MOV R0,R7 \ 00000084 0D0000EF SWI +13 153 154 f = pictures_max; \ 00000088 ........ LDR R0,??DataTable10 ;; gipc \ 0000008C 0450A0E1 MOV R5,R4 \ 00000090 241090E5 LDR R1,[R0, #+36] 155 for(buf=p_buf;*buf; buf++) \ 00000094 0010D5E5 LDRB R1,[R5, #+0] \ 00000098 000051E3 CMP R1,#+0 \ 0000009C 0C00000A BEQ ??CheckSmiles_1 156 if(*buf == ':') \ ??CheckSmiles_2: \ 000000A0 0010D5E5 LDRB R1,[R5, #+0] \ 000000A4 3A0051E3 CMP R1,#+58 \ 000000A8 0600001A BNE ??CheckSmiles_3 157 { 158 buf++; 159 while(*buf && *buf != 0x0D) buf++; \ ??CheckSmiles_4: \ 000000AC 0110F5E5 LDRB R1,[R5, #+1]! \ 000000B0 000051E3 CMP R1,#+0 \ 000000B4 0D005113 CMPNE R1,#+13 \ 000000B8 FBFFFF1A BNE ??CheckSmiles_4 160 pictures_max++; \ 000000BC 241090E5 LDR R1,[R0, #+36] \ 000000C0 011081E2 ADD R1,R1,#+1 \ 000000C4 241080E5 STR R1,[R0, #+36] 161 } \ ??CheckSmiles_3: \ 000000C8 0110F5E5 LDRB R1,[R5, #+1]! \ 000000CC 000051E3 CMP R1,#+0 \ 000000D0 F2FFFF1A BNE ??CheckSmiles_2 162 /* if(f == pictures_max) //a vdrug krivye perevody strok? 163 { 164 for(buf=p_buf;*buf; buf++) 165 if(*buf == 0x0A) 166 { 167 buf++; 168 while(*buf && *buf != 0x0A && *buf!=':') buf++; 169 if(*buf!=':') pictures_max++; 170 } 171 }*/ 172 mfree(p_buf); \ ??CheckSmiles_1: \ 000000D4 0400A0E1 MOV R0,R4 \ 000000D8 150000EF SWI +21 173 } \ ??CheckSmiles_0: \ 000000DC 2CD08DE2 ADD SP,SP,#+44 ;; stack cleaning \ 000000E0 F080BDE8 POP {R4-R7,PC} ;; return 174 175 extern char logmsg2[256]; 176 extern int ShowLoadScreen; 177 extern void SMART_REDRAW(void); \ In segment CODE, align 4, keep-with-next 178 void ProcessNextSmile(void) 179 { \ ProcessNextSmile: \ 00000000 F0432DE9 PUSH {R4-R9,LR} 180 int c; 181 char fn[128]; 182 DYNPNGICONLIST *dp; 183 S_SMILES *si; 184 STXT_SMILES *st; 185 char *buf=p_buf; \ 00000004 ........ LDR R4,??DataTable16 ;; gipc \ 00000008 84D04DE2 SUB SP,SP,#+132 \ 0000000C 2C6094E5 LDR R6,[R4, #+44] 186 // char s[256]; 187 if (!buf) return; \ 00000010 0050A0E3 MOV R5,#+0 \ 00000014 000056E3 CMP R6,#+0 \ 00000018 0600001A BNE ??ProcessNextSmile_0 \ 0000001C 190000EA B ??ProcessNextSmile_1 188 while ((c=*buf)) 189 { 190 char *p; 191 if ((c==10)||(c==13)) 192 { 193 buf++; 194 gipc.name_to=ipc_my_name; 195 gipc.name_from=ipc_my_name; 196 gipc.data=0; 197 GBS_SendMessage(MMI_CEPID,MSG_IPC,IPC_SMILE_PROCESSED,&gipc); 198 p_buf=buf; 199 return; 200 } 201 p=strchr(buf,':'); 202 if (!p) break; 203 zeromem(fn,128); 204 strcpy(fn,SMILE_PATH); 205 if (fn[strlen(fn)-1]!='\\') strcat(fn,"\\"); 206 c=p-buf; 207 if (c>(127-strlen(fn))) break; 208 strncpy(fn+strlen(fn),buf,c); 209 snprintf(logmsg2,255,"\n%s...",fn); 210 if(ShowLoadScreen) SMART_REDRAW(); 211 buf=p; 212 dp=malloc(sizeof(DYNPNGICONLIST)); 213 zeromem(dp,sizeof(DYNPNGICONLIST)); 214 dp->icon=GetPicNByUnicodeSymbol(n_pic); 215 dp->img=CreateIMGHDRFromPngFile(fn,0); 216 LockSched(); 217 if (SmilesImgList) 218 { 219 dp->next=SmilesImgList; 220 } 221 SmilesImgList=dp; 222 UnlockSched(); 223 si=malloc(sizeof(S_SMILES)); 224 si->next=NULL; 225 si->lines=NULL; 226 si->botlines=NULL; 227 si->uni_smile=n_pic; 228 if (s_bot) 229 { 230 //Не первый 231 s_bot->next=si; 232 s_bot=si; 233 } 234 else 235 { 236 //Первый 237 s_top=si; 238 s_bot=si; 239 } 240 n_pic++; 241 while (*buf!=10 && *buf!=13 && *buf!=0) 242 { 243 buf++; 244 int i=0; 245 while (buf[i]!=0&&buf [i]!=','&&buf [i]!=10&&buf[i]!=13) i++; 246 st=malloc(sizeof(STXT_SMILES)+i); 247 strncpy(st->text,buf,i); 248 st->text[i]=0; 249 250 st->next=NULL; 251 st->key=*((unsigned long *)st->text); 252 st->mask=~(0xFFFFFFFFUL<<(8*i)); 253 st->key&=st->mask; 254 if (si->botlines) 255 { 256 si->botlines->next=st; 257 si->botlines=st; 258 } 259 else 260 { 261 si->lines=st; 262 si->botlines=st; 263 } 264 buf+=i; 265 } 266 total_smiles++; \ ??ProcessNextSmile_2: \ 00000020 180094E5 LDR R0,[R4, #+24] \ 00000024 010080E2 ADD R0,R0,#+1 \ 00000028 180084E5 STR R0,[R4, #+24] 267 pictures_loaded++; //2026rev \ 0000002C 280094E5 LDR R0,[R4, #+40] \ 00000030 010080E2 ADD R0,R0,#+1 \ 00000034 280084E5 STR R0,[R4, #+40] \ ??ProcessNextSmile_0: \ 00000038 0090D6E5 LDRB R9,[R6, #+0] \ 0000003C 1C739FE5 LDR R7,??ProcessNextSmile_3+0x4 ;; logmsg2 \ 00000040 000059E3 CMP R9,#+0 \ 00000044 BA00000A BEQ ??ProcessNextSmile_4 \ 00000048 0A0059E3 CMP R9,#+10 \ 0000004C 0D005913 CMPNE R9,#+13 \ 00000050 0E00001A BNE ??ProcessNextSmile_5 \ 00000054 ........ LDR R0,??DataTable18 ;; ipc_my_name \ 00000058 085084E5 STR R5,[R4, #+8] \ 0000005C 000084E5 STR R0,[R4, #+0] \ 00000060 040084E5 STR R0,[R4, #+4] \ 00000064 0430A0E1 MOV R3,R4 \ 00000068 0220A0E3 MOV R2,#+2 \ 0000006C B010A0E3 MOV R1,#+176 \ 00000070 DE1C81E3 ORR R1,R1,#0xDE00 \ 00000074 0900A0E3 MOV R0,#+9 \ 00000078 420C80E3 ORR R0,R0,#0x4200 \ 0000007C 000100EF SWI +256 \ 00000080 016086E2 ADD R6,R6,#+1 \ 00000084 2C6084E5 STR R6,[R4, #+44] \ ??ProcessNextSmile_1: \ 00000088 84D08DE2 ADD SP,SP,#+132 \ 0000008C F083BDE8 POP {R4-R9,PC} \ ??ProcessNextSmile_5: \ 00000090 3A10A0E3 MOV R1,#+58 \ 00000094 0600A0E1 MOV R0,R6 \ 00000098 180000EF SWI +24 \ 0000009C 0080B0E1 MOVS R8,R0 \ 000000A0 A300000A BEQ ??ProcessNextSmile_4 \ 000000A4 8010A0E3 MOV R1,#+128 \ 000000A8 04008DE2 ADD R0,SP,#+4 \ 000000AC 1D0100EF SWI +285 \ 000000B0 AC129FE5 LDR R1,??ProcessNextSmile_3+0x8 ;; SMILE_PATH \ 000000B4 04008DE2 ADD R0,SP,#+4 \ 000000B8 1A0000EF SWI +26 \ 000000BC 04008DE2 ADD R0,SP,#+4 \ 000000C0 1B0000EF SWI +27 \ 000000C4 04108DE2 ADD R1,SP,#+4 \ 000000C8 010080E0 ADD R0,R0,R1 \ 000000CC 010050E5 LDRB R0,[R0, #-1] \ 000000D0 5C0050E3 CMP R0,#+92 \ 000000D4 0200000A BEQ ??ProcessNextSmile_6 \ 000000D8 9F1F8FE2 ADR R1,??ProcessNextSmile_3 ;; "\\" \ 000000DC 04008DE2 ADD R0,SP,#+4 \ 000000E0 170000EF SWI +23 \ ??ProcessNextSmile_6: \ 000000E4 069048E0 SUB R9,R8,R6 \ 000000E8 04008DE2 ADD R0,SP,#+4 \ 000000EC 1B0000EF SWI +27 \ 000000F0 7F0060E2 RSB R0,R0,#+127 \ 000000F4 090050E1 CMP R0,R9 \ 000000F8 8D00003A BCC ??ProcessNextSmile_4 \ 000000FC 04008DE2 ADD R0,SP,#+4 \ 00000100 1B0000EF SWI +27 \ 00000104 0920A0E1 MOV R2,R9 \ 00000108 0610A0E1 MOV R1,R6 \ 0000010C 04308DE2 ADD R3,SP,#+4 \ 00000110 030080E0 ADD R0,R0,R3 \ 00000114 160100EF SWI +278 \ 00000118 48229FE5 LDR R2,??ProcessNextSmile_3+0xC ;; `?` \ 0000011C 04308DE2 ADD R3,SP,#+4 \ 00000120 FF10A0E3 MOV R1,#+255 \ 00000124 0700A0E1 MOV R0,R7 \ 00000128 1B0100EF SWI +283 \ 0000012C 38029FE5 LDR R0,??ProcessNextSmile_3+0x10 ;; ShowLoadScreen \ 00000130 000090E5 LDR R0,[R0, #+0] \ 00000134 000050E3 CMP R0,#+0 \ 00000138 0000000A BEQ ??ProcessNextSmile_7 \ 0000013C ........ _BLF SMART_REDRAW,??SMART_REDRAW??rA \ ??ProcessNextSmile_7: \ 00000140 0C00A0E3 MOV R0,#+12 \ 00000144 140000EF SWI +20 \ 00000148 0070A0E1 MOV R7,R0 \ 0000014C 0C10A0E3 MOV R1,#+12 \ 00000150 1D0100EF SWI +285 \ 00000154 380094E5 LDR R0,[R4, #+56] \ 00000158 0860A0E1 MOV R6,R8 \ 0000015C E40100EF SWI +484 \ 00000160 040087E5 STR R0,[R7, #+4] \ 00000164 0010A0E3 MOV R1,#+0 \ 00000168 04008DE2 ADD R0,SP,#+4 \ 0000016C E90100EF SWI +489 \ 00000170 080087E5 STR R0,[R7, #+8] \ 00000174 460100EF SWI +326 \ 00000178 100094E5 LDR R0,[R4, #+16] \ 0000017C 000050E3 CMP R0,#+0 \ 00000180 00008715 STRNE R0,[R7, #+0] \ 00000184 107084E5 STR R7,[R4, #+16] \ 00000188 470100EF SWI +327 \ 0000018C 1000A0E3 MOV R0,#+16 \ 00000190 140000EF SWI +20 \ 00000194 0070A0E1 MOV R7,R0 \ 00000198 005087E5 STR R5,[R7, #+0] \ 0000019C 085087E5 STR R5,[R7, #+8] \ 000001A0 0C5087E5 STR R5,[R7, #+12] \ 000001A4 380094E5 LDR R0,[R4, #+56] \ 000001A8 040087E5 STR R0,[R7, #+4] \ 000001AC 341094E5 LDR R1,[R4, #+52] \ 000001B0 010080E2 ADD R0,R0,#+1 \ 000001B4 000051E3 CMP R1,#+0 \ 000001B8 00708115 STRNE R7,[R1, #+0] \ 000001BC 0C708405 STREQ R7,[R4, #+12] \ 000001C0 0710A0E1 MOV R1,R7 \ 000001C4 341084E5 STR R1,[R4, #+52] \ 000001C8 380084E5 STR R0,[R4, #+56] \ 000001CC 020000EA B ??ProcessNextSmile_8 \ ??ProcessNextSmile_9: \ 000001D0 089087E5 STR R9,[R7, #+8] \ ??ProcessNextSmile_10: \ 000001D4 0C9087E5 STR R9,[R7, #+12] \ 000001D8 066088E0 ADD R6,R8,R6 \ ??ProcessNextSmile_8: \ 000001DC 0000D6E5 LDRB R0,[R6, #+0] \ 000001E0 0A0050E3 CMP R0,#+10 \ 000001E4 0D005013 CMPNE R0,#+13 \ 000001E8 00005013 CMPNE R0,#+0 \ 000001EC 8BFFFF0A BEQ ??ProcessNextSmile_2 \ 000001F0 016086E2 ADD R6,R6,#+1 \ 000001F4 0080A0E3 MOV R8,#+0 \ 000001F8 000000EA B ??ProcessNextSmile_11 \ ??ProcessNextSmile_12: \ 000001FC 018088E2 ADD R8,R8,#+1 \ ??ProcessNextSmile_11: \ 00000200 0600D8E7 LDRB R0,[R8, +R6] \ 00000204 000050E3 CMP R0,#+0 \ 00000208 2C005013 CMPNE R0,#+44 \ 0000020C 0A005013 CMPNE R0,#+10 \ 00000210 0D005013 CMPNE R0,#+13 \ 00000214 F8FFFF1A BNE ??ProcessNextSmile_12 \ 00000218 0D0088E2 ADD R0,R8,#+13 \ 0000021C 140000EF SWI +20 \ 00000220 0090A0E1 MOV R9,R0 \ 00000224 0820A0E1 MOV R2,R8 \ 00000228 0610A0E1 MOV R1,R6 \ 0000022C 0C0089E2 ADD R0,R9,#+12 \ 00000230 160100EF SWI +278 \ 00000234 090088E0 ADD R0,R8,R9 \ 00000238 0C50C0E5 STRB R5,[R0, #+12] \ 0000023C 00508DE5 STR R5,[SP, #+0] \ 00000240 0000A0E3 MOV R0,#+0 \ ??ProcessNextSmile_13: \ 00000244 0D10A0E1 MOV R1,SP \ 00000248 0110D0E7 LDRB R1,[R0, +R1] \ 0000024C 0910C0E7 STRB R1,[R0, +R9] \ 00000250 010080E2 ADD R0,R0,#+1 \ 00000254 040050E3 CMP R0,#+4 \ 00000258 F9FFFFBA BLT ??ProcessNextSmile_13 \ 0000025C 0C0099E5 LDR R0,[R9, #+12] \ 00000260 0810A0E1 MOV R1,R8 \ 00000264 0400C9E5 STRB R0,[R9, #+4] \ 00000268 2004A0E1 LSR R0,R0,#+8 \ 0000026C 0500C9E5 STRB R0,[R9, #+5] \ 00000270 2004A0E1 LSR R0,R0,#+8 \ 00000274 0600C9E5 STRB R0,[R9, #+6] \ 00000278 2004A0E1 LSR R0,R0,#+8 \ 0000027C 0700C9E5 STRB R0,[R9, #+7] \ 00000280 0500E0E1 MVN R0,R5 \ 00000284 8111A0E1 LSL R1,R1,#+3 \ 00000288 1001E0E1 MVN R0,R0, LSL R1 \ 0000028C 0800C9E5 STRB R0,[R9, #+8] \ 00000290 2004A0E1 LSR R0,R0,#+8 \ 00000294 0900C9E5 STRB R0,[R9, #+9] \ 00000298 2004A0E1 LSR R0,R0,#+8 \ 0000029C 0A00C9E5 STRB R0,[R9, #+10] \ 000002A0 2004A0E1 LSR R0,R0,#+8 \ 000002A4 0B00C9E5 STRB R0,[R9, #+11] \ 000002A8 0700D9E5 LDRB R0,[R9, #+7] \ 000002AC 0610D9E5 LDRB R1,[R9, #+6] \ 000002B0 0A20D9E5 LDRB R2,[R9, #+10] \ 000002B4 000481E1 ORR R0,R1,R0, LSL #+8 \ 000002B8 0510D9E5 LDRB R1,[R9, #+5] \ 000002BC 000481E1 ORR R0,R1,R0, LSL #+8 \ 000002C0 0410D9E5 LDRB R1,[R9, #+4] \ 000002C4 000481E1 ORR R0,R1,R0, LSL #+8 \ 000002C8 0B10D9E5 LDRB R1,[R9, #+11] \ 000002CC 011482E1 ORR R1,R2,R1, LSL #+8 \ 000002D0 0920D9E5 LDRB R2,[R9, #+9] \ 000002D4 011482E1 ORR R1,R2,R1, LSL #+8 \ 000002D8 0820D9E5 LDRB R2,[R9, #+8] \ 000002DC 011482E1 ORR R1,R2,R1, LSL #+8 \ 000002E0 000001E0 AND R0,R1,R0 \ 000002E4 0400C9E5 STRB R0,[R9, #+4] \ 000002E8 2004A0E1 LSR R0,R0,#+8 \ 000002EC 0500C9E5 STRB R0,[R9, #+5] \ 000002F0 2004A0E1 LSR R0,R0,#+8 \ 000002F4 0600C9E5 STRB R0,[R9, #+6] \ 000002F8 2004A0E1 LSR R0,R0,#+8 \ 000002FC 0700C9E5 STRB R0,[R9, #+7] \ 00000300 0C0097E5 LDR R0,[R7, #+12] \ 00000304 000050E3 CMP R0,#+0 \ 00000308 B0FFFF0A BEQ ??ProcessNextSmile_9 \ 0000030C 00908DE5 STR R9,[SP, #+0] \ 00000310 0000A0E3 MOV R0,#+0 \ ??ProcessNextSmile_14: \ 00000314 0C1097E5 LDR R1,[R7, #+12] \ 00000318 0D20A0E1 MOV R2,SP \ 0000031C 0220D0E7 LDRB R2,[R0, +R2] \ 00000320 0120C0E7 STRB R2,[R0, +R1] \ 00000324 010080E2 ADD R0,R0,#+1 \ 00000328 040050E3 CMP R0,#+4 \ 0000032C F8FFFFBA BLT ??ProcessNextSmile_14 \ 00000330 A7FFFFEA B ??ProcessNextSmile_10 268 } 269 zeromem(logmsg2,256); \ ??ProcessNextSmile_4: \ 00000334 401FA0E3 MOV R1,#+256 \ 00000338 0700A0E1 MOV R0,R7 \ 0000033C 1D0100EF SWI +285 270 //fclose(f,&err); 271 //total_smiles=0; //2058 rev 272 p_buf=NULL; 273 mfree(s_buf); \ 00000340 300094E5 LDR R0,[R4, #+48] \ 00000344 2C5084E5 STR R5,[R4, #+44] \ 00000348 150000EF SWI +21 274 s_buf=NULL; \ 0000034C 305084E5 STR R5,[R4, #+48] 275 REDRAW(); \ 00000350 720100EF SWI +370 276 } \ 00000354 84D08DE2 ADD SP,SP,#+132 \ 00000358 F083BDE8 POP {R4-R9,PC} ;; return \ ??ProcessNextSmile_3: \ 0000035C 5C000000 DC8 "\\",+0,+0 \ 00000360 ........ DC32 logmsg2 \ 00000364 ........ DC32 SMILE_PATH \ 00000368 ........ DC32 `?` \ 0000036C ........ DC32 ShowLoadScreen 277 \ In segment CODE, align 4, keep-with-next 278 void FreeXStatusesImg(void) 279 { \ FreeXStatusesImg: \ 00000000 10402DE9 PUSH {R4,LR} 280 DYNPNGICONLIST *d; 281 // DYNPNGICONLIST *nd; 282 LockSched(); \ 00000004 460100EF SWI +326 283 total_xstatuses=0; \ 00000008 ........ LDR R0,??DataTable10 ;; gipc \ 0000000C 0010A0E3 MOV R1,#+0 \ 00000010 1C1080E5 STR R1,[R0, #+28] 284 d=XStatusesImgList; \ 00000014 144090E5 LDR R4,[R0, #+20] 285 XStatusesImgList=0; \ 00000018 141080E5 STR R1,[R0, #+20] 286 UnlockSched(); \ 0000001C 470100EF SWI +327 \ 00000020 000054E3 CMP R4,#+0 \ 00000024 1080BD08 POPEQ {R4,PC} 287 // mfree(XStatusesIconArray); 288 // XStatusesIconArray=NULL; 289 while(d) 290 { 291 DYNPNGICONLIST *nd=d; \ ??FreeXStatusesImg_0: \ 00000028 0400A0E1 MOV R0,R4 292 d=d->next; 293 if (nd->img) \ 0000002C 080090E5 LDR R0,[R0, #+8] \ 00000030 004094E5 LDR R4,[R4, #+0] \ 00000034 000050E3 CMP R0,#+0 \ 00000038 0000000A BEQ ??FreeXStatusesImg_1 294 { 295 // mfree(d->img->bitmap); 296 mfree(nd->img); \ 0000003C 150000EF SWI +21 297 } 298 // mfree(d); 299 // d=nd; 300 } \ ??FreeXStatusesImg_1: \ 00000040 000054E3 CMP R4,#+0 \ 00000044 F7FFFF1A BNE ??FreeXStatusesImg_0 301 /* 302 int i=0; 303 while(i<35 && XStatusImg[i]) 304 { 305 if(XStatusImg[i]->bitmap) mfree(XStatusImg[i]); 306 i++; 307 }*/ 308 } \ 00000048 1080BDE8 POP {R4,PC} ;; return 309 \ In segment CODE, align 4, keep-with-next 310 void InitXStatusesImg(void) 311 { \ InitXStatusesImg: \ 00000000 F0412DE9 PUSH {R4-R8,LR} 312 char fn[128];//2026rev 313 FSTATS stat;//2026rev 314 unsigned err;//2026rev 315 316 FreeXStatusesImg(); 317 total_xstatuses=0; \ 00000004 ........ LDR R4,??DataTable16 ;; gipc 318 // *(XStatusesIconArray=malloc(sizeof(int)))=S_ICONS[IS_NULLICON]; 319 xstatuses_load=1; 320 n_pic=FIRST_UCS2_BITMAP; 321 gipc.name_to=ipc_my_name; 322 gipc.name_from=ipc_my_name; 323 gipc.data=0; 324 //===========2026rev-beg 325 pictures_max = 0; \ 00000008 ........ LDR R6,??DataTable17 ;; `?` \ 0000000C ........ LDR R7,??DataTable15 ;; XSTATUSES_PATH \ 00000010 ACD04DE2 SUB SP,SP,#+172 \ 00000014 ........ BL FreeXStatusesImg \ 00000018 0000A0E3 MOV R0,#+0 \ 0000001C 1C0084E5 STR R0,[R4, #+28] \ 00000020 0110A0E3 MOV R1,#+1 \ 00000024 201084E5 STR R1,[R4, #+32] \ 00000028 2A10A0E3 MOV R1,#+42 \ 0000002C E11C81E3 ORR R1,R1,#0xE100 \ 00000030 381084E5 STR R1,[R4, #+56] \ 00000034 ........ LDR R1,??DataTable18 ;; ipc_my_name \ 00000038 080084E5 STR R0,[R4, #+8] \ 0000003C 001084E5 STR R1,[R4, #+0] \ 00000040 041084E5 STR R1,[R4, #+4] \ 00000044 240084E5 STR R0,[R4, #+36] \ 00000048 0050E0E1 MVN R5,R0 326 do 327 { 328 strcpy(fn,XSTATUSES_PATH); \ ??InitXStatusesImg_0: \ 0000004C 04008DE2 ADD R0,SP,#+4 \ 00000050 0710A0E1 MOV R1,R7 \ 00000054 1A0000EF SWI +26 329 sprintf(fn+strlen(fn),"\\%d.png",pictures_max++); \ 00000058 248094E5 LDR R8,[R4, #+36] \ 0000005C 010088E2 ADD R0,R8,#+1 \ 00000060 240084E5 STR R0,[R4, #+36] \ 00000064 04008DE2 ADD R0,SP,#+4 \ 00000068 1B0000EF SWI +27 \ 0000006C 0820A0E1 MOV R2,R8 \ 00000070 0610A0E1 MOV R1,R6 \ 00000074 04308DE2 ADD R3,SP,#+4 \ 00000078 030080E0 ADD R0,R0,R3 \ 0000007C 160000EF SWI +22 330 if (GetFileStats(fn,&stat,&err)==-1) break; \ 00000080 0D20A0E1 MOV R2,SP \ 00000084 84108DE2 ADD R1,SP,#+132 \ 00000088 04008DE2 ADD R0,SP,#+4 \ 0000008C 840000EF SWI +132 \ 00000090 050050E1 CMP R0,R5 331 } 332 while (stat.size>0); \ 00000094 88009D15 LDRNE R0,[SP, #+136] \ 00000098 00005013 CMPNE R0,#+0 \ 0000009C EAFFFF1A BNE ??InitXStatusesImg_0 333 pictures_max--; \ 000000A0 240094E5 LDR R0,[R4, #+36] \ 000000A4 010040E2 SUB R0,R0,#+1 \ 000000A8 240084E5 STR R0,[R4, #+36] 334 CheckSmiles(); \ 000000AC ........ BL CheckSmiles 335 //===========2026rev-end 336 GBS_SendMessage(MMI_CEPID,MSG_IPC,IPC_XSTATUSIMG_PROCESSED,&gipc); \ 000000B0 0430A0E1 MOV R3,R4 \ 000000B4 0320A0E3 MOV R2,#+3 \ 000000B8 B010A0E3 MOV R1,#+176 \ 000000BC DE1C81E3 ORR R1,R1,#0xDE00 \ 000000C0 0900A0E3 MOV R0,#+9 \ 000000C4 420C80E3 ORR R0,R0,#0x4200 \ 000000C8 000100EF SWI +256 337 } \ 000000CC ACD08DE2 ADD SP,SP,#+172 \ 000000D0 F081BDE8 POP {R4-R8,PC} ;; return 338 \ In segment CODE, align 4, keep-with-next 339 void ProcessNextXStatImg(void) 340 { 341 char fn[128]; 342 DYNPNGICONLIST *dp; ^ Warning[Pe177]: variable "dp" was declared but never referenced 343 unsigned int err; 344 FSTATS stat; 345 // int i; 346 int j=0; 347 348 strcpy(fn,XSTATUSES_PATH); \ ProcessNextXStatImg: \ 00000000 ........ LDR R1,??DataTable15 ;; XSTATUSES_PATH \ 00000004 30402DE9 PUSH {R4,R5,LR} 349 sprintf(fn+strlen(fn),"\\%d.png",total_xstatuses); \ 00000008 ........ LDR R4,??DataTable16 ;; gipc \ 0000000C ACD04DE2 SUB SP,SP,#+172 \ 00000010 04008DE2 ADD R0,SP,#+4 \ 00000014 1A0000EF SWI +26 \ 00000018 1C5094E5 LDR R5,[R4, #+28] \ 0000001C 04008DE2 ADD R0,SP,#+4 \ 00000020 1B0000EF SWI +27 \ 00000024 ........ LDR R1,??DataTable17 ;; `?` \ 00000028 0520A0E1 MOV R2,R5 \ 0000002C 04308DE2 ADD R3,SP,#+4 \ 00000030 030080E0 ADD R0,R0,R3 \ 00000034 160000EF SWI +22 350 if (GetFileStats(fn,&stat,&err)!=-1) \ 00000038 0D20A0E1 MOV R2,SP \ 0000003C 84108DE2 ADD R1,SP,#+132 \ 00000040 04008DE2 ADD R0,SP,#+4 \ 00000044 840000EF SWI +132 \ 00000048 010070E3 CMN R0,#+1 351 { 352 if (stat.size>0) \ 0000004C 88009D15 LDRNE R0,[SP, #+136] \ 00000050 0050A0E3 MOV R5,#+0 \ 00000054 00005013 CMPNE R0,#+0 \ 00000058 1500000A BEQ ??ProcessNextXStatImg_0 353 { 354 /* dp=malloc(sizeof(DYNPNGICONLIST)); 355 zeromem(dp,sizeof(DYNPNGICONLIST)); 356 dp->icon=GetPicNByUnicodeSymbol(n_pic); 357 dp->img=CreateIMGHDRFromPngFile(fn,0); //XStatusImg[j]= 358 j++; 359 360 LockSched(); 361 if (XStatusesImgList) 362 { 363 dp->next=XStatusesImgList; 364 } 365 XStatusesImgList=dp; 366 UnlockSched();*/ 367 j++; 368 total_xstatuses++; \ 0000005C 1C0094E5 LDR R0,[R4, #+28] 369 pictures_loaded++;//2026rev 370 // XStatusesIconArray=realloc(XStatusesIconArray,(total_xstatuses*sizeof(int))); 371 // *(XStatusesIconArray+(total_xstatuses-1))=i; 372 n_pic++; 373 gipc.name_to=ipc_my_name; 374 gipc.name_from=ipc_my_name; 375 gipc.data=0; 376 GBS_SendMessage(MMI_CEPID,MSG_IPC,IPC_XSTATUSIMG_PROCESSED,&gipc); \ 00000060 0430A0E1 MOV R3,R4 \ 00000064 010080E2 ADD R0,R0,#+1 \ 00000068 1C0084E5 STR R0,[R4, #+28] \ 0000006C 280094E5 LDR R0,[R4, #+40] \ 00000070 0320A0E3 MOV R2,#+3 \ 00000074 010080E2 ADD R0,R0,#+1 \ 00000078 280084E5 STR R0,[R4, #+40] \ 0000007C 380094E5 LDR R0,[R4, #+56] \ 00000080 085084E5 STR R5,[R4, #+8] \ 00000084 010080E2 ADD R0,R0,#+1 \ 00000088 380084E5 STR R0,[R4, #+56] \ 0000008C ........ LDR R0,??DataTable18 ;; ipc_my_name \ 00000090 B010A0E3 MOV R1,#+176 \ 00000094 000084E5 STR R0,[R4, #+0] \ 00000098 040084E5 STR R0,[R4, #+4] \ 0000009C DE1C81E3 ORR R1,R1,#0xDE00 \ 000000A0 0900A0E3 MOV R0,#+9 \ 000000A4 420C80E3 ORR R0,R0,#0x4200 \ 000000A8 000100EF SWI +256 377 return; \ 000000AC ACD08DE2 ADD SP,SP,#+172 \ 000000B0 3080BDE8 POP {R4,R5,PC} 378 } 379 } 380 xstatuses_load=0; 381 SUBPROC((void *)InitSmiles); \ ??ProcessNextXStatImg_0: \ 000000B4 0C009FE5 LDR R0,??ProcessNextXStatImg_1 ;; InitSmiles \ 000000B8 205084E5 STR R5,[R4, #+32] \ 000000BC 710100EF SWI +369 382 } \ 000000C0 ACD08DE2 ADD SP,SP,#+172 \ 000000C4 3080BDE8 POP {R4,R5,PC} ;; return \ ??ProcessNextXStatImg_1: \ 000000C8 ........ DC32 InitSmiles \ In segment CODE, align 4, keep-with-next \ ??DataTable1: \ 00000000 ........ DC32 gipc + 12 \ In segment CODE, align 4, keep-with-next \ ??DataTable6: \ 00000000 ........ DC32 SMILE_FILE \ In segment CODE, align 4, keep-with-next \ ??DataTable10: \ 00000000 ........ DC32 gipc \ In segment CODE, align 4, keep-with-next \ ??DataTable15: \ 00000000 ........ DC32 XSTATUSES_PATH \ In segment CODE, align 4, keep-with-next \ ??DataTable16: \ 00000000 ........ DC32 gipc \ In segment CODE, align 4, keep-with-next \ ??DataTable17: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable18: \ 00000000 ........ DC32 ipc_my_name \ In segment DATA_C, align 1, align-sorted \ 00000000 5C00 DC8 "\\" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 0A25732E2E2E DC8 "\012%s..." \ 00 \ 00000007 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 5C25642E706E DC8 "\\%d.png" \ 6700 Maximum stack usage in bytes: Function CSTACK -------- ------ CheckSmiles 64 FindSmileById 0 FindSmileByUni 0 FreeSmiles 28 FreeXStatusesImg 8 InitSmiles 68 InitXStatusesImg 196 ProcessNextSmile 160 ProcessNextXStatImg 184 Segment part sizes: Function/Label Bytes -------------- ----- gipc 60 FindSmileById 44 FindSmileByUni 44 FreeSmiles 212 InitSmiles 216 CheckSmiles 228 ProcessNextSmile 880 FreeXStatusesImg 76 InitXStatusesImg 212 ProcessNextXStatImg 204 ??DataTable1 4 ??DataTable6 4 ??DataTable10 4 ??DataTable15 4 ??DataTable16 4 ??DataTable17 4 ??DataTable18 4 ? 2 ? 8 ? 8 Others 60 2 192 bytes in segment CODE 18 bytes in segment DATA_C 60 bytes in segment DATA_Z 12 bytes in segment INITTAB 2 144 bytes of CODE memory (+ 60 bytes shared) 18 bytes of CONST memory 60 bytes of DATA memory Errors: none Warnings: 1