############################################################################## # # # IAR ARM ANSI C/C++ Compiler V4.41A/W32 EVALUATION 17/Feb/2008 13:27:05 # # Copyright 1999-2005 IAR Systems. All rights reserved. # # # # Cpu mode = interwork # # Endian = little # # Stack alignment = 4 # # Source file = D:\Pasha\elf\_MY_PROJECT\converter\main.c # # Command line = D:\Pasha\elf\_MY_PROJECT\converter\main.c -D # # NEWSGOLD -D ELKA -lC D:\Pasha\elf\_MY_PROJECT\conver # # ter\Release_ELKA\List\ -o # # D:\Pasha\elf\_MY_PROJECT\converter\Release_ELKA\Obj\ # # -s9 --no_unroll --cpu_mode arm --endian little # # --cpu ARM926EJ-S --stack_align 4 --interwork -e # # --fpu None --dlib_config "D:\Pasha\ARM_Embedded_Work # # bench\Embedded Workbench 4.0 # # Evaluation\ARM\LIB\dl5tpainl8n.h" -I # # "D:\Pasha\ARM_Embedded_Workbench\Embedded Workbench # # 4.0 Evaluation\ARM\INC\" --inline_threshold=2 # # List file = D:\Pasha\elf\_MY_PROJECT\converter\Release_ELKA\List # # \main.lst # # Object file = D:\Pasha\elf\_MY_PROJECT\converter\Release_ELKA\Obj\ # # main.r79 # # # # # ############################################################################## D:\Pasha\elf\_MY_PROJECT\converter\main.c 1 #include "..\inc\swilib.h" 2 #include "math.h" 3 //#include "../inc/cfg_items.h" 4 \ In segment DATA_Z, align 4, align-sorted 5 CSM_DESC icsmd; \ icsmd: \ 00000000 DS8 40 6 7 //extern void InitConfig(); 8 int id_ed; 9 \ In segment DATA_Z, align 4, align-sorted 10 int (*old_icsm_onMessage)(CSM_RAM*,GBS_MSG*); \ old_icsm_onMessage: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 11 unsigned int MAINCSM_ID = 0; \ MAINCSM_ID: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 12 unsigned int MAINGUI_ID = 0; \ MAINGUI_ID: \ 00000000 DS8 4 \ In segment DATA_C, align 4, align-sorted 13 const int minus11=-11; \ minus11: \ 00000000 F5FFFFFF DC32 -11 14 15 //----------------------------------------- 16 \ In segment DATA_C, align 4, align-sorted 17 const char per_t[]="%t"; \ per_t: \ 00000000 257400 DC8 "%t" 18 const char per_s[]="%s"; \ per_s: \ 00000003 257300 DC8 "%s" \ 00000006 0000 DC8 0, 0 \ 00000008 4F43543A0A00 DC8 "OCT:\012" \ 0000000E 0000 DC8 0, 0 \ 00000010 436F6E766572 DC8 "ConvertorSS" \ 746F72535300 \ 0000001C 4845583A0A00 DC8 "HEX:\012" \ 00000022 0000 DC8 0, 0 \ 00000024 42494E3A00 DC8 "BIN:" \ 00000029 000000 DC8 0, 0, 0 \ 0000002C 4445433A0A00 DC8 "DEC:\012" \ 00000032 0000 DC8 0, 0 \ In segment DATA_C, align 1, align-sorted 19 const char empty_str[]=""; \ empty_str: \ 00000000 00 DC8 "" 20 21 //----------------------------------------- 22 23 24 unsigned short maincsm_name_body[140]; 25 26 typedef struct 27 { 28 CSM_RAM csm; 29 int gui_id; 30 }MAIN_CSM; 31 32 typedef struct 33 { 34 GUI gui; 35 WSHDR *ws1; 36 WSHDR *ws2; 37 int i1; 38 }MAIN_GUI; 39 40 \ In segment DATA_Z, align 4, align-sorted 41 int my_csm_id=0; \ my_csm_id: \ 00000000 DS8 4 42 \ In segment DATA_Z, align 4, align-sorted 43 unsigned int err; \ err: \ 00000000 DS8 4 44 45 #pragma inline 46 void patch_header(HEADER_DESC* head) 47 { 48 head->rc.x=0; 49 head->rc.y=YDISP; 50 head->rc.x2=ScreenW()-1; 51 head->rc.y2=HeaderH()+YDISP; 52 } 53 #pragma inline 54 void patch_input(INPUTDIA_DESC* inp) 55 { 56 inp->rc.x=0; 57 inp->rc.y=HeaderH()+1+YDISP; 58 inp->rc.x2=ScreenW()-1; 59 inp->rc.y2=ScreenH()-SoftkeyH()-1; 60 } 61 62 //---------------------------------------------------------------------// 63 \ In segment CODE, align 4, keep-with-next 64 int get_file_size(char* fname) 65 { \ get_file_size: \ 00000000 00402DE9 PUSH {LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 66 unsigned int err; 67 FSTATS fs; 68 if ((GetFileStats(fname,&fs,&err))==-1) return 0; \ 00000008 0D20A0E1 MOV R2,SP \ 0000000C 04108DE2 ADD R1,SP,#+4 \ 00000010 840000EF SWI +132 \ 00000014 010070E3 CMN R0,#+1 69 return (fs.size); \ 00000018 08009D15 LDRNE R0,[SP, #+8] \ 0000001C 2CD08DE2 ADD SP,SP,#+44 \ 00000020 0000A003 MOVEQ R0,#+0 \ 00000024 0080BDE8 POP {PC} ;; return 70 } 71 72 \ In segment CODE, align 4, keep-with-next 73 void mess(char *s) 74 { \ mess: \ 00000000 00402DE9 PUSH {LR} 75 ShowMSG(1,(int)s); \ 00000004 0010A0E1 MOV R1,R0 \ 00000008 0100A0E3 MOV R0,#+1 \ 0000000C 480100EF SWI +328 76 } \ 00000010 0080BDE8 POP {PC} ;; return 77 \ In segment CODE, align 4, keep-with-next 78 void mess2(char *s) 79 { \ mess2: \ 00000000 00402DE9 PUSH {LR} 80 ShowMSG(2,(int)s); \ 00000004 0010A0E1 MOV R1,R0 \ 00000008 0200A0E3 MOV R0,#+2 \ 0000000C 480100EF SWI +328 81 } \ 00000010 0080BDE8 POP {PC} ;; return 82 \ In segment CODE, align 4, keep-with-next 83 void messd(int i) 84 { \ messd: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 0040A0E1 MOV R4,R0 85 char *s=malloc(10); \ 00000008 0A00A0E3 MOV R0,#+10 \ 0000000C 140000EF SWI +20 \ 00000010 0050A0E1 MOV R5,R0 86 sprintf(s,"%d",i); \ 00000014 0420A0E1 MOV R2,R4 \ 00000018 041F8FE2 ADR R1,??messd_0 ;; "%d" \ 0000001C 160000EF SWI +22 87 ShowMSG(1,(int)s); \ 00000020 0510A0E1 MOV R1,R5 \ 00000024 0100A0E3 MOV R0,#+1 \ 00000028 480100EF SWI +328 88 } \ 0000002C 3080BDE8 POP {R4,R5,PC} ;; return \ ??messd_0: \ 00000030 25640000 DC8 "%d",+0 89 90 //---------------------------------------------------------------------// 91 \ In segment CODE, align 4, keep-with-next 92 void about() 93 { 94 char s[128]; 95 snprintf(s,128,"ConvertorSS v0.1\n(c)kluchnik\n%s %s",__DATE__,__TIME__); \ about: \ 00000000 34009FE5 LDR R0,??about_0 ;; `?` \ 00000004 00402DE9 PUSH {LR} \ 00000008 80D04DE2 SUB SP,SP,#+128 \ 0000000C 0010A0E1 MOV R1,R0 \ 00000010 02002DE9 PUSH {R1} \ 00000014 0C3080E2 ADD R3,R0,#+12 \ 00000018 182080E2 ADD R2,R0,#+24 \ 0000001C 04008DE2 ADD R0,SP,#+4 \ 00000020 8010A0E3 MOV R1,#+128 \ 00000024 1B0100EF SWI +283 96 ShowMSG(2, (int)s); \ 00000028 04108DE2 ADD R1,SP,#+4 \ 0000002C 0200A0E3 MOV R0,#+2 \ 00000030 480100EF SWI +328 97 } \ 00000034 84D08DE2 ADD SP,SP,#+132 \ 00000038 0080BDE8 POP {PC} ;; return \ ??about_0: \ 0000003C ........ DC32 `?` 98 99 //---------------------------------------------------------------------// 100 char per_d[]="%d"; 101 int len=0; 102 103 extern unsigned long strtoul (const char *nptr,char **endptr,int base); 104 \ In segment CODE, align 4, keep-with-next 105 char *dec2boh(int dec,int sys)//dec->bin,oct,hex:) ; sys-2,8 106 { \ dec2boh: \ 00000000 F0472DE9 PUSH {R4-R10,LR} 107 int i=0; 108 int j=0; 109 char *tmp=malloc(32); 110 char *s=malloc(32); \ 00000004 D8609FE5 LDR R6,??dec2boh_0 ;; edit_desc \ 00000008 04D04DE2 SUB SP,SP,#+4 \ 0000000C 0080A0E1 MOV R8,R0 \ 00000010 0190A0E1 MOV R9,R1 \ 00000014 0070A0E3 MOV R7,#+0 \ 00000018 2000A0E3 MOV R0,#+32 \ 0000001C 140000EF SWI +20 \ 00000020 0040A0E1 MOV R4,R0 \ 00000024 2000A0E3 MOV R0,#+32 \ 00000028 140000EF SWI +20 \ 0000002C 0050A0E1 MOV R5,R0 \ 00000030 04A0A0E1 MOV R10,R4 111 while(dec>0) \ ??dec2boh_1: \ 00000034 010058E3 CMP R8,#+1 \ 00000038 150000BA BLT ??dec2boh_2 112 { 113 i=0; 114 i=dec%sys; \ 0000003C 0800A0E1 MOV R0,R8 \ 00000040 0910A0E1 MOV R1,R9 \ 00000044 ........ _BLF ??div32_a,??rA??div32_a \ 00000048 0020A0E1 MOV R2,R0 115 dec=dec/sys; \ 0000004C 0800A0E1 MOV R0,R8 \ 00000050 0910A0E1 MOV R1,R9 \ 00000054 ........ _BLF ??div32_a,??rA??div32_a \ 00000058 0180A0E1 MOV R8,R1 116 sprintf(s,per_d,i); \ 0000005C 541086E2 ADD R1,R6,#+84 \ 00000060 0500A0E1 MOV R0,R5 \ 00000064 160000EF SWI +22 117 *(tmp+j)=*s; \ 00000068 0000D5E5 LDRB R0,[R5, #+0] 118 j++; \ 0000006C 017087E2 ADD R7,R7,#+1 119 if(dec==1) \ 00000070 010058E3 CMP R8,#+1 \ 00000074 ........ STRB R0,[R10], #+1 \ 00000078 EDFFFF1A BNE ??dec2boh_1 120 { 121 sprintf(s,per_d,1); \ 0000007C 0120A0E3 MOV R2,#+1 \ 00000080 541086E2 ADD R1,R6,#+84 \ 00000084 0500A0E1 MOV R0,R5 \ 00000088 160000EF SWI +22 122 *(tmp+j)=*s; \ 0000008C 0000D5E5 LDRB R0,[R5, #+0] \ 00000090 0400C7E7 STRB R0,[R7, +R4] 123 break; 124 } 125 } 126 j++; 127 *(tmp+j)=0; \ ??dec2boh_2: \ 00000094 040087E0 ADD R0,R7,R4 \ 00000098 0010A0E3 MOV R1,#+0 \ 0000009C 0110C0E5 STRB R1,[R0, #+1] 128 for(i=strlen(tmp)-1;i>=0;i--) \ 000000A0 0400A0E1 MOV R0,R4 \ 000000A4 1B0000EF SWI +27 \ 000000A8 017050E2 SUBS R7,R0,#+1 \ 000000AC 0700004A BMI ??dec2boh_3 \ 000000B0 048087E0 ADD R8,R7,R4 129 { 130 s[strlen(tmp)-i]=tmp[i]; \ ??dec2boh_4: \ 000000B4 0400A0E1 MOV R0,R4 \ 000000B8 1B0000EF SWI +27 \ 000000BC ........ LDRB R1,[R8], #-1 \ 000000C0 070040E0 SUB R0,R0,R7 131 } \ 000000C4 017057E2 SUBS R7,R7,#+1 \ 000000C8 0510C0E7 STRB R1,[R0, +R5] \ 000000CC F8FFFF5A BPL ??dec2boh_4 132 len=strlen(tmp); \ ??dec2boh_3: \ 000000D0 0400A0E1 MOV R0,R4 \ 000000D4 1B0000EF SWI +27 \ 000000D8 4C0086E5 STR R0,[R6, #+76] 133 return s; \ 000000DC 0500A0E1 MOV R0,R5 \ 000000E0 F287BDE8 POP {R1,R4-R10,PC} ;; return \ ??dec2boh_0: \ 000000E4 ........ DC32 edit_desc 134 } 135 \ In segment CODE, align 4, keep-with-next 136 int boh2dec(char *boh,int sys)//bin,oct,hex->dec ; sys-2,8,16 //Преобразуем в десятичное число 137 { \ boh2dec: \ 00000000 F04F2DE9 PUSH {R4-R11,LR} \ 00000004 0080A0E1 MOV R8,R0 138 int i=0; 139 int rez=0; \ 00000008 0060A0E3 MOV R6,#+0 \ 0000000C 01B0A0E1 MOV R11,R1 140 int j=0; 141 for(i=strlen(boh),j=0;i>=0;j++,i--) \ 00000010 1B0000EF SWI +27 \ 00000014 0010B0E1 MOVS R1,R0 \ 00000018 00A0A0E3 MOV R10,#+0 \ 0000001C 2000004A BMI ??boh2dec_0 \ 00000020 089080E0 ADD R9,R0,R8 \ 00000024 018080E2 ADD R8,R0,#+1 \ ??boh2dec_1: \ 00000028 01004AE2 SUB R0,R10,#+1 \ 0000002C ........ _BLF __longToDouble,??__longToDouble??rA \ 00000030 0040A0E1 MOV R4,R0 \ 00000034 0150A0E1 MOV R5,R1 \ 00000038 0600A0E1 MOV R0,R6 \ 0000003C ........ _BLF __longToDouble,??__longToDouble??rA \ 00000040 0060A0E1 MOV R6,R0 \ 00000044 0000D9E5 LDRB R0,[R9, #+0] \ 00000048 0170A0E1 MOV R7,R1 \ 0000004C 310050E3 CMP R0,#+49 \ 00000050 02005B03 CMPEQ R11,#+2 \ 00000054 0400001A BNE ??boh2dec_2 142 { 143 if(boh[i]=='1' && sys==2)//на 0 нет смысла умножать(для двоичной системы):) 144 rez+=pow(sys,j-1); \ 00000058 0420A0E1 MOV R2,R4 \ 0000005C 0530A0E1 MOV R3,R5 \ 00000060 0000A0E3 MOV R0,#+0 \ 00000064 4014A0E3 MOV R1,#+1073741824 \ 00000068 030000EA B ??boh2dec_3 145 else 146 rez+=pow(sys,j-1); \ ??boh2dec_2: \ 0000006C 0B00A0E1 MOV R0,R11 \ 00000070 ........ _BLF __longToDouble,??__longToDouble??rA \ 00000074 0420A0E1 MOV R2,R4 \ 00000078 0530A0E1 MOV R3,R5 \ ??boh2dec_3: \ 0000007C ........ _BLF pow,??pow??rA \ 00000080 0620A0E1 MOV R2,R6 \ 00000084 0730A0E1 MOV R3,R7 \ 00000088 ........ _BLF __dAdd,??__dAdd??rA \ 0000008C ........ _BLF __doubleToLong,??__doubleToLong??rA \ 00000090 0060A0E1 MOV R6,R0 147 } \ 00000094 01A08AE2 ADD R10,R10,#+1 \ 00000098 019049E2 SUB R9,R9,#+1 \ 0000009C 018058E2 SUBS R8,R8,#+1 \ 000000A0 E0FFFF1A BNE ??boh2dec_1 148 return rez; \ ??boh2dec_0: \ 000000A4 0600A0E1 MOV R0,R6 \ 000000A8 F08FBDE8 POP {R4-R11,PC} ;; return 149 } 150 151 152 /* 153 char *dec2bin(int dec) 154 { 155 int i=0; 156 int j=0; 157 char *tmp=malloc(32); 158 char *s=malloc(32); 159 while(dec>0) 160 { 161 i=0; 162 i=dec%2; 163 dec=dec/2; 164 sprintf(s,per_d,i); 165 *(tmp+j)=*s; 166 j++; 167 if(dec==1) 168 { 169 sprintf(s,per_d,1); 170 *(tmp+j)=*s; 171 break; 172 } 173 } 174 j++; 175 *(tmp+j)=0; 176 for(i=strlen(tmp)-1;i>=0;i--) 177 { 178 s[strlen(tmp)-i]=tmp[i]; 179 } 180 len=strlen(tmp); 181 return s; 182 } 183 184 int bin2dec(char *bin) 185 { 186 int i=0; 187 int rez=0; 188 int j=0; 189 for(i=strlen(bin),j=0;i>=0;j++,i--) 190 { 191 if(bin[i]=='1')//на 0 нет смысла умножать:) 192 rez+=pow(2,j-1); 193 } 194 return rez; 195 } 196 197 //-------------------------------// 198 199 char *dec2oct(int dec) 200 { 201 int i=0; 202 int j=0; 203 char *s=malloc(32); 204 char *tmp=malloc(32); 205 while(dec>0) 206 { 207 i=0; 208 i=dec%8; 209 dec=dec/8; 210 sprintf(s,per_d,i); 211 *(tmp+j)=*s; 212 j++; 213 if(dec==1) 214 { 215 sprintf(s,per_d,1); 216 *(tmp+j)=*s; 217 break; 218 } 219 } 220 j++; 221 *(tmp+j)=0; 222 for(i=strlen(tmp)-1;i>=0;i--) 223 { 224 s[strlen(tmp)-i]=tmp[i]; 225 } 226 len=strlen(tmp); 227 return s; 228 } 229 230 const char per_c[]="%c"; 231 int oct2dec(char *bin) 232 { 233 long rez=0; 234 long c=0; 235 char d[1]; 236 int i; 237 int j=0; 238 for(i=strlen(bin),j=0;i>=0;j++,i--) 239 { 240 sprintf(d,per_c,bin[i]); 241 c=strtoul(d,0,10); 242 rez+=pow(8,j-1)*c; 243 } 244 return rez; 245 } 246 247 int hex2dec(char *bin) 248 { 249 long rez=0; 250 long c=0; 251 char d[1]; 252 int i; 253 int j=0; 254 for(i=strlen(bin),j=0;i>=0;j++,i--) 255 { 256 sprintf(d,per_c,bin[i]); 257 c=strtoul(d,0,16); 258 rez+=pow(16,j-1)*c; 259 } 260 return rez; 261 }*/ 262 //--------------------------------Редактор--------------------------------// 263 264 HEADER_DESC disk_prop_hdr={0,0,131,21,NULL,0,LGP_NULL}; 265 int id_create; 266 enum editcontrols 267 { 268 ec_dec=2, 269 ec_bin=4, 270 ec_oct=6, 271 ec_hex=8, 272 }; 273 274 enum sys 275 { 276 dec=10, 277 bin=2, 278 oct=8, 279 hex=16, 280 }; 281 282 int id_ed2; 283 extern int menu_id; \ In segment CODE, align 4, keep-with-next 284 int empty_onkey(GUI *data, GUI_MSG *msg) 285 { \ empty_onkey: \ 00000000 10402DE9 PUSH {R4,LR} 286 // void *edgui=FindGUIbyId(id_create,NULL); 287 288 if(msg->keys==LEFT_SOFT || msg->keys==RED_BUTTON) \ 00000004 F200D1E1 LDRSH R0,[R1, #+2] \ 00000008 010050E3 CMP R0,#+1 \ 0000000C 0C005013 CMPNE R0,#+12 \ 00000010 0A00001A BNE ??empty_onkey_0 289 { 290 GeneralFunc_flag1(menu_id,1); \ 00000014 2C009FE5 LDR R0,??empty_onkey_1 ;; menu_id 291 GeneralFunc_flag1(id_ed,1); \ 00000018 2C409FE5 LDR R4,??empty_onkey_1+0x4 ;; pos_desc \ 0000001C 000090E5 LDR R0,[R0, #+0] \ 00000020 0110A0E3 MOV R1,#+1 \ 00000024 3D0100EF SWI +317 \ 00000028 4C0094E5 LDR R0,[R4, #+76] \ 0000002C 0110A0E3 MOV R1,#+1 \ 00000030 3D0100EF SWI +317 292 GeneralFunc_flag1(id_ed2,1); \ 00000034 500094E5 LDR R0,[R4, #+80] \ 00000038 0110A0E3 MOV R1,#+1 \ 0000003C 3D0100EF SWI +317 293 } 294 return(0); \ ??empty_onkey_0: \ 00000040 0000A0E3 MOV R0,#+0 \ 00000044 1080BDE8 POP {R4,PC} ;; return \ ??empty_onkey_1: \ 00000048 ........ DC32 menu_id \ 0000004C ........ DC32 pos_desc 295 } 296 \ In segment DATA_Z, align 4, align-sorted 297 SOFTKEY_DESC sk[]; \ sk: \ 00000000 DS8 8 298 SOFTKEYSTAB skt={ sk,0 }; 299 \ In segment CODE, align 4, keep-with-next 300 void empty_locret(void){} \ empty_locret: \ 00000000 1EFF2FE1 BX LR ;; return 301 \ In segment CODE, align 4, keep-with-next 302 void empty_ghook(GUI *gui, int cmd) 303 { \ empty_ghook: \ 00000000 00402DE9 PUSH {LR} 304 static SOFTKEY_DESC sk={0x0FFF,0x0000,(int)"Convert"}; 305 306 if(cmd==0xA) \ 00000004 0A0051E3 CMP R1,#+10 \ 00000008 0100001A BNE ??empty_ghook_0 307 { 308 DisableIDLETMR(); // Отключаем таймер выхода по таймауту \ 0000000C 7F0100EF SWI +383 \ 00000010 0080BDE8 POP {PC} 309 } 310 311 if(cmd==0x03) // onDestroy 312 { 313 } 314 315 if (cmd==7) \ ??empty_ghook_0: \ 00000014 070051E3 CMP R1,#+7 \ 00000018 0080BD18 POPNE {PC} 316 { 317 SetSoftKey(gui,&sk,SET_SOFT_KEY_N); \ 0000001C 08109FE5 LDR R1,??empty_ghook_1 ;; ??sk \ 00000020 0020A0E3 MOV R2,#+0 \ 00000024 680100EF SWI +360 318 } 319 } \ 00000028 0080BDE8 POP {PC} ;; return \ ??empty_ghook_1: \ 0000002C ........ DC32 ??sk 320 321 INPUTDIA_DESC edit_desc=//Редактирование 322 { 323 1, 324 empty_onkey, 325 empty_ghook, 326 (void *)empty_locret, 327 0, 328 &skt, 329 {0,0,0,0}, 330 FONT_SMALL, 331 100, 332 101, 333 0, 334 0, 335 0x40000000 336 }; 337 338 //--------------------------------------------------------// 339 \ In segment CODE, align 4, keep-with-next 340 int ed_create(int i,char *s) 341 { \ ed_create: \ 00000000 F04F2DE9 PUSH {R4-R11,LR} \ 00000004 3CD04DE2 SUB SP,SP,#+60 \ 00000008 00A0A0E1 MOV R10,R0 \ 0000000C 0180A0E1 MOV R8,R1 342 EDITCONTROL ec; 343 PrepareEditControl(&ec); 344 345 char *ss=malloc(32); 346 void *ma=malloc_adr(); 347 void *eq=AllocEQueue(ma, mfree_adr()); 348 WSHDR *ws=AllocWS(256); 349 WSHDR *ws_dec=AllocWS(256); 350 WSHDR *ws_bin=AllocWS(256); 351 WSHDR *ws_oct=AllocWS(256); 352 WSHDR *ws_hex=AllocWS(256); 353 /* 354 switch(i) 355 { 356 case 0: //DEC 357 wsprintf(ws_dec,per_s,s); 358 ss=dec2bin(strtoul(s,0,10)); 359 360 CutWSTR(ws_bin,0); 361 for(i=0;i<=len;i++) 362 wsInsertChar(ws_bin,ss[i],i); 363 364 ss=dec2oct(strtoul(s,0,10)); 365 CutWSTR(ws_oct,0); 366 for(i=0;i<=len;i++) 367 wsInsertChar(ws_oct,ss[i],i); 368 369 CutWSTR(ws_hex,0); 370 wsprintf(ws_hex,"%X",strtoul(s,0,10)); 371 break; 372 373 case 1: //BIN 374 wsprintf(ws_bin,per_s,s); 375 wsprintf(ws_dec,per_d,bin2dec(s));//bin->dec 376 377 ws_2str(ws_dec,s,wstrlen(ws_dec)); 378 ss=dec2oct(strtoul(s,0,10));//dec->oct 379 CutWSTR(ws_oct,0); 380 for(i=0;i<=len;i++) 381 wsInsertChar(ws_oct,ss[i],i); 382 383 CutWSTR(ws_hex,0); 384 wsprintf(ws_hex,"%X",strtoul(s,0,10));//dec->hex 385 break; 386 387 case 2: //OCT 388 wsprintf(ws_oct,per_s,s);//oct 389 wsprintf(ws_dec,per_d,oct2dec(s));//oct->dec 390 391 ws_2str(ws_dec,s,wstrlen(ws_dec)); 392 ss=dec2bin(strtoul(s,0,10));//dec->bin 393 CutWSTR(ws_bin,0); 394 for(i=0;i<=len;i++) 395 wsInsertChar(ws_bin,ss[i],i); 396 397 CutWSTR(ws_hex,0); 398 wsprintf(ws_hex,"%X",strtoul(s,0,10));//dec->hex 399 break; 400 401 case 3: //HEX 402 wsprintf(ws_hex,per_s,s);//hex 403 wsprintf(ws_dec,per_d,hex2dec(s));//hex->dec 404 405 ws_2str(ws_dec,s,wstrlen(ws_dec)); 406 ss=dec2bin(strtoul(s,0,10));//dec->bin 407 CutWSTR(ws_bin,0); 408 for(i=0;i<=len;i++) 409 wsInsertChar(ws_bin,ss[i],i); 410 411 ss=dec2oct(strtoul(s,0,10));//dec->oct 412 CutWSTR(ws_oct,0); 413 for(i=0;i<=len;i++) 414 wsInsertChar(ws_oct,ss[i],i); 415 break; 416 }*/ 417 418 int j=0; \ 00000010 34769FE5 LDR R7,??ed_create_0 ;; edit_desc \ 00000014 10008DE2 ADD R0,SP,#+16 \ 00000018 640100EF SWI +356 \ 0000001C 2000A0E3 MOV R0,#+32 \ 00000020 140000EF SWI +20 \ 00000024 148000EF SWI +32788 \ 00000028 00008DE5 STR R0,[SP, #+0] \ 0000002C 158000EF SWI +32789 \ 00000030 0010A0E1 MOV R1,R0 \ 00000034 00009DE5 LDR R0,[SP, #+0] \ 00000038 0090A0E3 MOV R9,#+0 \ 0000003C 630100EF SWI +355 \ 00000040 08008DE5 STR R0,[SP, #+8] \ 00000044 400FA0E3 MOV R0,#+256 \ 00000048 250100EF SWI +293 \ 0000004C 04008DE5 STR R0,[SP, #+4] \ 00000050 400FA0E3 MOV R0,#+256 \ 00000054 250100EF SWI +293 \ 00000058 0040A0E1 MOV R4,R0 \ 0000005C 400FA0E3 MOV R0,#+256 \ 00000060 250100EF SWI +293 \ 00000064 0050A0E1 MOV R5,R0 \ 00000068 400FA0E3 MOV R0,#+256 \ 0000006C 250100EF SWI +293 \ 00000070 0060A0E1 MOV R6,R0 \ 00000074 400FA0E3 MOV R0,#+256 \ 00000078 250100EF SWI +293 \ 0000007C 0C008DE5 STR R0,[SP, #+12] \ 00000080 00005AE3 CMP R10,#+0 \ 00000084 0600000A BEQ ??ed_create_1 \ 00000088 01A05AE2 SUBS R10,R10,#+1 \ 0000008C 4E00000A BEQ ??ed_create_2 \ 00000090 01A05AE2 SUBS R10,R10,#+1 \ 00000094 7700000A BEQ ??ed_create_3 \ 00000098 01A05AE2 SUBS R10,R10,#+1 \ 0000009C A100000A BEQ ??ed_create_4 \ 000000A0 D90000EA B ??ed_create_5 419 switch(i) 420 { 421 case 0: //DEC 422 wsprintf(ws_dec,per_s,s); \ ??ed_create_1: \ 000000A4 A4159FE5 LDR R1,??ed_create_0+0x4 ;; per_t + 3 \ 000000A8 0820A0E1 MOV R2,R8 \ 000000AC 0400A0E1 MOV R0,R4 \ 000000B0 240100EF SWI +292 423 ss=dec2boh(strtoul(s,0,10),bin);//dec->bin \ 000000B4 0A20A0E3 MOV R2,#+10 \ 000000B8 0010A0E3 MOV R1,#+0 \ 000000BC 0800A0E1 MOV R0,R8 \ 000000C0 ........ _BLF strtoul,??strtoul??rA \ 000000C4 0210A0E3 MOV R1,#+2 \ 000000C8 ........ BL dec2boh \ 000000CC 00B0A0E1 MOV R11,R0 424 425 CutWSTR(ws_bin,0); \ 000000D0 0910A0E1 MOV R1,R9 \ 000000D4 0500A0E1 MOV R0,R5 \ 000000D8 260100EF SWI +294 426 for(i=0;i<=len;i++) \ 000000DC 050000EA B ??ed_create_6 427 { 428 if(j<4) 429 { 430 wsInsertChar(ws_bin,ss[i],i); 431 j++; 432 } 433 else 434 { 435 wsInsertChar(ws_bin,' ',i);//Вставляем пробел чтобы разбить по 4 цифры... \ ??ed_create_7: \ 000000E0 2010A0E3 MOV R1,#+32 \ 000000E4 0500A0E1 MOV R0,R5 \ 000000E8 1D0000EF SWI +29 436 j=0; \ 000000EC 0090A0E3 MOV R9,#+0 437 } \ ??ed_create_8: \ 000000F0 01A08AE2 ADD R10,R10,#+1 \ 000000F4 01B08BE2 ADD R11,R11,#+1 \ ??ed_create_6: \ 000000F8 4C0097E5 LDR R0,[R7, #+76] \ 000000FC 0A0050E1 CMP R0,R10 \ 00000100 070000BA BLT ??ed_create_9 \ 00000104 040059E3 CMP R9,#+4 \ 00000108 0A20A0E1 MOV R2,R10 \ 0000010C F3FFFFAA BGE ??ed_create_7 \ 00000110 0010DBE5 LDRB R1,[R11, #+0] \ 00000114 0500A0E1 MOV R0,R5 \ 00000118 019089E2 ADD R9,R9,#+1 \ 0000011C 1D0000EF SWI +29 \ 00000120 F2FFFFEA B ??ed_create_8 438 } 439 ss=dec2boh(strtoul(s,0,10),oct);//dec->oct \ ??ed_create_9: \ 00000124 0A20A0E3 MOV R2,#+10 \ 00000128 0010A0E3 MOV R1,#+0 \ 0000012C 0800A0E1 MOV R0,R8 \ 00000130 ........ _BLF strtoul,??strtoul??rA \ 00000134 0810A0E3 MOV R1,#+8 \ 00000138 ........ BL dec2boh \ 0000013C 00B0A0E1 MOV R11,R0 440 CutWSTR(ws_oct,0); \ 00000140 0010A0E3 MOV R1,#+0 \ 00000144 0600A0E1 MOV R0,R6 \ 00000148 260100EF SWI +294 441 j=0; \ 0000014C 0090A0E3 MOV R9,#+0 442 for(i=0;i<=len;i++) \ 00000150 00A0A0E3 MOV R10,#+0 \ 00000154 050000EA B ??ed_create_10 443 { 444 if(j<4) 445 { 446 wsInsertChar(ws_oct,ss[i],i); 447 j++; 448 } 449 else 450 { 451 wsInsertChar(ws_oct,' ',i);//Вставляем пробел чтобы разбить по 4 цифры... \ ??ed_create_11: \ 00000158 2010A0E3 MOV R1,#+32 \ 0000015C 0600A0E1 MOV R0,R6 \ 00000160 1D0000EF SWI +29 452 j=0; \ 00000164 0090A0E3 MOV R9,#+0 453 } \ ??ed_create_12: \ 00000168 01A08AE2 ADD R10,R10,#+1 \ 0000016C 01B08BE2 ADD R11,R11,#+1 \ ??ed_create_10: \ 00000170 4C0097E5 LDR R0,[R7, #+76] \ 00000174 0A0050E1 CMP R0,R10 \ 00000178 070000BA BLT ??ed_create_13 \ 0000017C 040059E3 CMP R9,#+4 \ 00000180 0A20A0E1 MOV R2,R10 \ 00000184 F3FFFFAA BGE ??ed_create_11 \ 00000188 0010DBE5 LDRB R1,[R11, #+0] \ 0000018C 0600A0E1 MOV R0,R6 \ 00000190 019089E2 ADD R9,R9,#+1 \ 00000194 1D0000EF SWI +29 \ 00000198 F2FFFFEA B ??ed_create_12 454 } 455 CutWSTR(ws_hex,0); \ ??ed_create_13: \ 0000019C 0C009DE5 LDR R0,[SP, #+12] \ 000001A0 0010A0E3 MOV R1,#+0 \ 000001A4 260100EF SWI +294 456 wsprintf(ws_hex,"%X",strtoul(s,0,10));//dec->hex \ 000001A8 0A20A0E3 MOV R2,#+10 \ 000001AC 0010A0E3 MOV R1,#+0 \ ??ed_create_14: \ 000001B0 0800A0E1 MOV R0,R8 \ 000001B4 ........ _BLF strtoul,??strtoul??rA \ 000001B8 0020A0E1 MOV R2,R0 \ 000001BC 0C009DE5 LDR R0,[SP, #+12] \ 000001C0 881F8FE2 ADR R1,??ed_create_15 ;; "%X" \ 000001C4 240100EF SWI +292 \ 000001C8 8F0000EA B ??ed_create_5 457 break; 458 459 case 1: //BIN 460 wsprintf(ws_bin,per_s,s); \ ??ed_create_2: \ 000001CC 7C149FE5 LDR R1,??ed_create_0+0x4 ;; per_t + 3 \ 000001D0 0820A0E1 MOV R2,R8 \ 000001D4 0500A0E1 MOV R0,R5 \ 000001D8 240100EF SWI +292 461 wsprintf(ws_dec,per_d,boh2dec(s,dec));//bin->dec \ 000001DC 0A10A0E3 MOV R1,#+10 \ 000001E0 0800A0E1 MOV R0,R8 \ 000001E4 ........ BL boh2dec \ 000001E8 0020A0E1 MOV R2,R0 \ 000001EC 541087E2 ADD R1,R7,#+84 \ 000001F0 0400A0E1 MOV R0,R4 \ 000001F4 240100EF SWI +292 462 463 ws_2str(ws_dec,s,wstrlen(ws_dec)); \ 000001F8 0400A0E1 MOV R0,R4 \ 000001FC 230100EF SWI +291 \ 00000200 0020A0E1 MOV R2,R0 \ 00000204 0810A0E1 MOV R1,R8 \ 00000208 0400A0E1 MOV R0,R4 \ 0000020C A30000EF SWI +163 464 ss=dec2boh(strtoul(s,0,10),oct);//dec->oct \ 00000210 0A20A0E3 MOV R2,#+10 \ 00000214 0010A0E3 MOV R1,#+0 \ 00000218 0800A0E1 MOV R0,R8 \ 0000021C ........ _BLF strtoul,??strtoul??rA \ 00000220 0810A0E3 MOV R1,#+8 \ 00000224 ........ BL dec2boh \ 00000228 00B0A0E1 MOV R11,R0 465 CutWSTR(ws_oct,0); \ 0000022C 0910A0E1 MOV R1,R9 \ 00000230 0600A0E1 MOV R0,R6 \ 00000234 260100EF SWI +294 466 for(i=0;i<=len;i++) \ 00000238 09A0A0E1 MOV R10,R9 \ 0000023C 040000EA B ??ed_create_16 467 wsInsertChar(ws_oct,ss[i],i); \ ??ed_create_17: \ 00000240 ........ LDRB R1,[R11], #+1 \ 00000244 0A20A0E1 MOV R2,R10 \ 00000248 0600A0E1 MOV R0,R6 \ 0000024C 1D0000EF SWI +29 \ 00000250 01A08AE2 ADD R10,R10,#+1 \ ??ed_create_16: \ 00000254 4C0097E5 LDR R0,[R7, #+76] \ 00000258 0A0050E1 CMP R0,R10 \ 0000025C F7FFFFAA BGE ??ed_create_17 468 469 CutWSTR(ws_hex,0); \ 00000260 0C009DE5 LDR R0,[SP, #+12] \ 00000264 0010A0E3 MOV R1,#+0 \ 00000268 260100EF SWI +294 470 wsprintf(ws_hex,"%X",strtoul(s,0,10));//dec->hex \ 0000026C 0A20A0E3 MOV R2,#+10 \ 00000270 0910A0E1 MOV R1,R9 \ 00000274 CDFFFFEA B ??ed_create_14 471 break; 472 473 case 2: //OCT 474 wsprintf(ws_oct,per_s,s);//oct \ ??ed_create_3: \ 00000278 D0139FE5 LDR R1,??ed_create_0+0x4 ;; per_t + 3 \ 0000027C 0820A0E1 MOV R2,R8 \ 00000280 0600A0E1 MOV R0,R6 \ 00000284 240100EF SWI +292 475 wsprintf(ws_dec,per_d,boh2dec(s,dec),dec);//oct->dec \ 00000288 0A10A0E3 MOV R1,#+10 \ 0000028C 0800A0E1 MOV R0,R8 \ 00000290 ........ BL boh2dec \ 00000294 0A30A0E3 MOV R3,#+10 \ 00000298 0020A0E1 MOV R2,R0 \ 0000029C 541087E2 ADD R1,R7,#+84 \ 000002A0 0400A0E1 MOV R0,R4 \ 000002A4 240100EF SWI +292 476 477 ws_2str(ws_dec,s,wstrlen(ws_dec)); \ 000002A8 0400A0E1 MOV R0,R4 \ 000002AC 230100EF SWI +291 \ 000002B0 0020A0E1 MOV R2,R0 \ 000002B4 0810A0E1 MOV R1,R8 \ 000002B8 0400A0E1 MOV R0,R4 \ 000002BC A30000EF SWI +163 478 ss=dec2boh(strtoul(s,0,10),bin);//dec->bin \ 000002C0 0A20A0E3 MOV R2,#+10 \ 000002C4 0010A0E3 MOV R1,#+0 \ 000002C8 0800A0E1 MOV R0,R8 \ 000002CC ........ _BLF strtoul,??strtoul??rA \ 000002D0 0210A0E3 MOV R1,#+2 \ 000002D4 ........ BL dec2boh \ 000002D8 00B0A0E1 MOV R11,R0 479 CutWSTR(ws_bin,0); \ 000002DC 0910A0E1 MOV R1,R9 \ 000002E0 0500A0E1 MOV R0,R5 \ 000002E4 260100EF SWI +294 480 for(i=0;i<=len;i++) \ 000002E8 09A0A0E1 MOV R10,R9 \ 000002EC 040000EA B ??ed_create_18 481 wsInsertChar(ws_bin,ss[i],i); \ ??ed_create_19: \ 000002F0 ........ LDRB R1,[R11], #+1 \ 000002F4 0A20A0E1 MOV R2,R10 \ 000002F8 0500A0E1 MOV R0,R5 \ 000002FC 1D0000EF SWI +29 \ 00000300 01A08AE2 ADD R10,R10,#+1 \ ??ed_create_18: \ 00000304 4C0097E5 LDR R0,[R7, #+76] \ 00000308 0A0050E1 CMP R0,R10 \ 0000030C F7FFFFAA BGE ??ed_create_19 482 483 CutWSTR(ws_hex,0); \ 00000310 0C009DE5 LDR R0,[SP, #+12] \ 00000314 0010A0E3 MOV R1,#+0 \ 00000318 260100EF SWI +294 484 wsprintf(ws_hex,"%X",strtoul(s,0,10));//dec->hex \ 0000031C 0A20A0E3 MOV R2,#+10 \ 00000320 0910A0E1 MOV R1,R9 \ 00000324 A1FFFFEA B ??ed_create_14 485 break; 486 487 case 3: //HEX 488 wsprintf(ws_hex,per_s,s);//hex \ ??ed_create_4: \ 00000328 20139FE5 LDR R1,??ed_create_0+0x4 ;; per_t + 3 \ 0000032C 0820A0E1 MOV R2,R8 \ 00000330 240100EF SWI +292 489 wsprintf(ws_dec,per_d,boh2dec(s,hex));//hex->dec \ 00000334 1010A0E3 MOV R1,#+16 \ 00000338 0800A0E1 MOV R0,R8 \ 0000033C ........ BL boh2dec \ 00000340 0020A0E1 MOV R2,R0 \ 00000344 541087E2 ADD R1,R7,#+84 \ 00000348 0400A0E1 MOV R0,R4 \ 0000034C 240100EF SWI +292 490 491 ws_2str(ws_dec,s,wstrlen(ws_dec)); \ 00000350 0400A0E1 MOV R0,R4 \ 00000354 230100EF SWI +291 \ 00000358 0020A0E1 MOV R2,R0 \ 0000035C 0810A0E1 MOV R1,R8 \ 00000360 0400A0E1 MOV R0,R4 \ 00000364 A30000EF SWI +163 492 ss=dec2boh(strtoul(s,0,10),bin);//dec->bin \ 00000368 0A20A0E3 MOV R2,#+10 \ 0000036C 0010A0E3 MOV R1,#+0 \ 00000370 0800A0E1 MOV R0,R8 \ 00000374 ........ _BLF strtoul,??strtoul??rA \ 00000378 0210A0E3 MOV R1,#+2 \ 0000037C ........ BL dec2boh \ 00000380 0090A0E1 MOV R9,R0 493 CutWSTR(ws_bin,0); \ 00000384 0010A0E3 MOV R1,#+0 \ 00000388 0500A0E1 MOV R0,R5 \ 0000038C 260100EF SWI +294 494 for(i=0;i<=len;i++) \ 00000390 00A0A0E3 MOV R10,#+0 \ 00000394 040000EA B ??ed_create_20 495 wsInsertChar(ws_bin,ss[i],i); \ ??ed_create_21: \ 00000398 ........ LDRB R1,[R9], #+1 \ 0000039C 0A20A0E1 MOV R2,R10 \ 000003A0 0500A0E1 MOV R0,R5 \ 000003A4 1D0000EF SWI +29 \ 000003A8 01A08AE2 ADD R10,R10,#+1 \ ??ed_create_20: \ 000003AC 4C0097E5 LDR R0,[R7, #+76] \ 000003B0 0A0050E1 CMP R0,R10 \ 000003B4 F7FFFFAA BGE ??ed_create_21 496 497 ss=dec2boh(strtoul(s,0,10),oct);//dec->oct \ 000003B8 0A20A0E3 MOV R2,#+10 \ 000003BC 0010A0E3 MOV R1,#+0 \ 000003C0 0800A0E1 MOV R0,R8 \ 000003C4 ........ _BLF strtoul,??strtoul??rA \ 000003C8 0810A0E3 MOV R1,#+8 \ 000003CC ........ BL dec2boh \ 000003D0 00B0A0E1 MOV R11,R0 498 CutWSTR(ws_oct,0); \ 000003D4 0010A0E3 MOV R1,#+0 \ 000003D8 0600A0E1 MOV R0,R6 \ 000003DC 260100EF SWI +294 499 for(i=0;i<=len;i++) \ 000003E0 00A0A0E3 MOV R10,#+0 \ 000003E4 050000EA B ??ed_create_22 \ ??ed_create_15: \ 000003E8 25580000 DC8 "%X",+0 500 wsInsertChar(ws_oct,ss[i],i); \ ??ed_create_23: \ 000003EC ........ LDRB R1,[R11], #+1 \ 000003F0 0A20A0E1 MOV R2,R10 \ 000003F4 0600A0E1 MOV R0,R6 \ 000003F8 1D0000EF SWI +29 \ 000003FC 01A08AE2 ADD R10,R10,#+1 \ ??ed_create_22: \ 00000400 4C0097E5 LDR R0,[R7, #+76] \ 00000404 0A0050E1 CMP R0,R10 \ 00000408 F7FFFFAA BGE ??ed_create_23 501 break; 502 } 503 504 wsprintf(ws,per_t,"DEC:\n"); \ ??ed_create_5: \ 0000040C 40229FE5 LDR R2,??ed_create_0+0x8 ;; per_t + 44 \ 00000410 40129FE5 LDR R1,??ed_create_0+0xC ;; per_t \ 00000414 04009DE5 LDR R0,[SP, #+4] 505 ConstructEditControl(&ec,ECT_HEADER,ECF_NORMAL_STR,ws,10); 506 AddEditControlToEditQend(eq,&ec,ma); 507 508 ConstructEditControl(&ec,ECT_NORMAL_NUM,ECF_APPEND_EOL|ECF_DISABLE_MINUS|ECF_DISABLE_POINT,ws_dec,32); \ 00000418 4080A0E3 MOV R8,#+64 \ 0000041C 240100EF SWI +292 \ 00000420 0A00A0E3 MOV R0,#+10 \ 00000424 01002DE9 PUSH {R0} \ 00000428 08309DE5 LDR R3,[SP, #+8] \ 0000042C 0020A0E3 MOV R2,#+0 \ 00000430 0110A0E3 MOV R1,#+1 \ 00000434 14008DE2 ADD R0,SP,#+20 \ 00000438 650100EF SWI +357 \ 0000043C 04209DE5 LDR R2,[SP, #+4] \ 00000440 0C009DE5 LDR R0,[SP, #+12] \ 00000444 14108DE2 ADD R1,SP,#+20 \ 00000448 660100EF SWI +358 \ 0000044C 2000A0E3 MOV R0,#+32 \ 00000450 01002DE9 PUSH {R0} \ 00000454 608A88E3 ORR R8,R8,#0x60000 \ 00000458 0430A0E1 MOV R3,R4 \ 0000045C 0820A0E1 MOV R2,R8 \ 00000460 0610A0E3 MOV R1,#+6 \ 00000464 18008DE2 ADD R0,SP,#+24 \ 00000468 650100EF SWI +357 509 AddEditControlToEditQend(eq,&ec,ma); \ 0000046C 08209DE5 LDR R2,[SP, #+8] \ 00000470 10009DE5 LDR R0,[SP, #+16] \ 00000474 18108DE2 ADD R1,SP,#+24 \ 00000478 660100EF SWI +358 510 511 wsprintf(ws,per_t,"BIN:"); \ 0000047C D8219FE5 LDR R2,??ed_create_0+0x10 ;; per_t + 36 \ 00000480 D0119FE5 LDR R1,??ed_create_0+0xC ;; per_t \ 00000484 0C009DE5 LDR R0,[SP, #+12] 512 ConstructEditControl(&ec,ECT_HEADER,ECF_SET_CURSOR_END,ws,10); 513 AddEditControlToEditQend(eq,&ec,ma); 514 515 ConstructEditControl(&ec,ECT_NORMAL_NUM,ECF_APPEND_EOL|ECF_DISABLE_MINUS|ECF_DISABLE_POINT,ws_bin,32); 516 AddEditControlToEditQend(eq,&ec,ma); 517 518 wsprintf(ws,per_t,"OCT:\n"); 519 ConstructEditControl(&ec,ECT_HEADER,ECF_NORMAL_STR,ws,11); 520 AddEditControlToEditQend(eq,&ec,ma); 521 522 ConstructEditControl(&ec,ECT_NORMAL_NUM,ECF_APPEND_EOL|ECF_DISABLE_MINUS|ECF_DISABLE_POINT,ws_oct,32); 523 AddEditControlToEditQend(eq,&ec,ma); 524 525 wsprintf(ws,per_t,"HEX:\n"); 526 ConstructEditControl(&ec,ECT_HEADER,ECF_NORMAL_STR,ws,11); 527 AddEditControlToEditQend(eq,&ec,ma); 528 529 ConstructEditControl(&ec,ECT_NORMAL_TEXT,ECF_APPEND_EOL,ws_hex,32); 530 AddEditControlToEditQend(eq,&ec,ma); 531 532 disk_prop_hdr.lgp_id = (int)"ConvertorSS"; 533 patch_header(&disk_prop_hdr); \ 00000488 0040A0E3 MOV R4,#+0 \ 0000048C 240100EF SWI +292 \ 00000490 0A00A0E3 MOV R0,#+10 \ 00000494 01002DE9 PUSH {R0} \ 00000498 10309DE5 LDR R3,[SP, #+16] \ 0000049C 8020A0E3 MOV R2,#+128 \ 000004A0 0110A0E3 MOV R1,#+1 \ 000004A4 1C008DE2 ADD R0,SP,#+28 \ 000004A8 650100EF SWI +357 \ 000004AC 0C209DE5 LDR R2,[SP, #+12] \ 000004B0 14009DE5 LDR R0,[SP, #+20] \ 000004B4 1C108DE2 ADD R1,SP,#+28 \ 000004B8 660100EF SWI +358 \ 000004BC 2000A0E3 MOV R0,#+32 \ 000004C0 01002DE9 PUSH {R0} \ 000004C4 0530A0E1 MOV R3,R5 \ 000004C8 0820A0E1 MOV R2,R8 \ 000004CC 0610A0E3 MOV R1,#+6 \ 000004D0 20008DE2 ADD R0,SP,#+32 \ 000004D4 650100EF SWI +357 \ 000004D8 10209DE5 LDR R2,[SP, #+16] \ 000004DC 18009DE5 LDR R0,[SP, #+24] \ 000004E0 20108DE2 ADD R1,SP,#+32 \ 000004E4 660100EF SWI +358 \ 000004E8 70219FE5 LDR R2,??ed_create_0+0x14 ;; per_t + 8 \ 000004EC 64119FE5 LDR R1,??ed_create_0+0xC ;; per_t \ 000004F0 14009DE5 LDR R0,[SP, #+20] \ 000004F4 240100EF SWI +292 \ 000004F8 0B00A0E3 MOV R0,#+11 \ 000004FC 01002DE9 PUSH {R0} \ 00000500 18309DE5 LDR R3,[SP, #+24] \ 00000504 0020A0E3 MOV R2,#+0 \ 00000508 0110A0E3 MOV R1,#+1 \ 0000050C 24008DE2 ADD R0,SP,#+36 \ 00000510 650100EF SWI +357 \ 00000514 14209DE5 LDR R2,[SP, #+20] \ 00000518 1C009DE5 LDR R0,[SP, #+28] \ 0000051C 24108DE2 ADD R1,SP,#+36 \ 00000520 660100EF SWI +358 \ 00000524 2000A0E3 MOV R0,#+32 \ 00000528 01002DE9 PUSH {R0} \ 0000052C 0630A0E1 MOV R3,R6 \ 00000530 0820A0E1 MOV R2,R8 \ 00000534 0610A0E3 MOV R1,#+6 \ 00000538 28008DE2 ADD R0,SP,#+40 \ 0000053C 650100EF SWI +357 \ 00000540 18209DE5 LDR R2,[SP, #+24] \ 00000544 20009DE5 LDR R0,[SP, #+32] \ 00000548 28108DE2 ADD R1,SP,#+40 \ 0000054C 660100EF SWI +358 \ 00000550 0C219FE5 LDR R2,??ed_create_0+0x18 ;; per_t + 28 \ 00000554 FC109FE5 LDR R1,??ed_create_0+0xC ;; per_t \ 00000558 1C009DE5 LDR R0,[SP, #+28] \ 0000055C 240100EF SWI +292 \ 00000560 0B00A0E3 MOV R0,#+11 \ 00000564 01002DE9 PUSH {R0} \ 00000568 20309DE5 LDR R3,[SP, #+32] \ 0000056C 0020A0E3 MOV R2,#+0 \ 00000570 0110A0E3 MOV R1,#+1 \ 00000574 2C008DE2 ADD R0,SP,#+44 \ 00000578 650100EF SWI +357 \ 0000057C 1C209DE5 LDR R2,[SP, #+28] \ 00000580 24009DE5 LDR R0,[SP, #+36] \ 00000584 2C108DE2 ADD R1,SP,#+44 \ 00000588 660100EF SWI +358 \ 0000058C 2000A0E3 MOV R0,#+32 \ 00000590 01002DE9 PUSH {R0} \ 00000594 2C309DE5 LDR R3,[SP, #+44] \ 00000598 4020A0E3 MOV R2,#+64 \ 0000059C 0310A0E3 MOV R1,#+3 \ 000005A0 30008DE2 ADD R0,SP,#+48 \ 000005A4 650100EF SWI +357 \ 000005A8 20209DE5 LDR R2,[SP, #+32] \ 000005AC 28009DE5 LDR R0,[SP, #+40] \ 000005B0 30108DE2 ADD R1,SP,#+48 \ 000005B4 660100EF SWI +358 \ 000005B8 A8009FE5 LDR R0,??ed_create_0+0x1C ;; per_t + 16 \ 000005BC B843C7E1 STRH R4,[R7, #+56] \ 000005C0 440087E5 STR R0,[R7, #+68] \ 000005C4 1800A0E3 MOV R0,#+24 \ 000005C8 BA03C7E1 STRH R0,[R7, #+58] \ 000005CC 888100EF SWI +33160 \ 000005D0 010040E2 SUB R0,R0,#+1 \ 000005D4 BC03C7E1 STRH R0,[R7, #+60] \ 000005D8 8A8100EF SWI +33162 \ 000005DC 180080E2 ADD R0,R0,#+24 \ 000005E0 BE03C7E1 STRH R0,[R7, #+62] 534 patch_input(&edit_desc); \ 000005E4 B841C7E1 STRH R4,[R7, #+24] \ 000005E8 8A8100EF SWI +33162 \ 000005EC 190080E2 ADD R0,R0,#+25 \ 000005F0 BA01C7E1 STRH R0,[R7, #+26] \ 000005F4 888100EF SWI +33160 \ 000005F8 010040E2 SUB R0,R0,#+1 \ 000005FC BC01C7E1 STRH R0,[R7, #+28] \ 00000600 898100EF SWI +33161 \ 00000604 0040A0E1 MOV R4,R0 \ 00000608 8B8100EF SWI +33163 \ 0000060C 000044E0 SUB R0,R4,R0 \ 00000610 010040E2 SUB R0,R0,#+1 \ 00000614 BE01C7E1 STRH R0,[R7, #+30] 535 536 FreeWS(ws); \ 00000618 24009DE5 LDR R0,[SP, #+36] \ 0000061C 290100EF SWI +297 537 return id_create=CreateInputTextDialog(&edit_desc,&disk_prop_hdr,eq,1,0); \ 00000620 0000A0E3 MOV R0,#+0 \ 00000624 01002DE9 PUSH {R0} \ 00000628 2C209DE5 LDR R2,[SP, #+44] \ 0000062C 0130A0E3 MOV R3,#+1 \ 00000630 381087E2 ADD R1,R7,#+56 \ 00000634 0700A0E1 MOV R0,R7 \ 00000638 670100EF SWI +359 \ 0000063C 24D08DE2 ADD SP,SP,#+36 \ 00000640 500087E5 STR R0,[R7, #+80] \ 00000644 3CD08DE2 ADD SP,SP,#+60 \ 00000648 F08FBDE8 POP {R4-R11,PC} ;; return \ ??ed_create_0: \ 0000064C ........ DC32 edit_desc \ 00000650 ........ DC32 per_t + 3 \ 00000654 ........ DC32 per_t + 44 \ 00000658 ........ DC32 per_t \ 0000065C ........ DC32 per_t + 36 \ 00000660 ........ DC32 per_t + 8 \ 00000664 ........ DC32 per_t + 28 \ 00000668 ........ DC32 per_t + 16 538 } 539 540 //--------------------------------INPUT----------------------------------// 541 char hdr[64]; 542 HEADER_DESC pos_hdr={0,0,131,21,NULL,(int)hdr,LGP_NULL}; 543 int conv=0; \ In segment CODE, align 4, keep-with-next 544 int pos_onkey(GUI *data, GUI_MSG *msg) 545 { \ pos_onkey: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 4CD04DE2 SUB SP,SP,#+76 \ 00000008 0040A0E1 MOV R4,R0 \ 0000000C 0150A0E1 MOV R5,R1 546 WSHDR *ws=AllocWS(64); \ 00000010 4000A0E3 MOV R0,#+64 \ 00000014 250100EF SWI +293 547 char num[32]; 548 if (msg->keys==0x0018)//0xFFF \ 00000018 F200D5E1 LDRSH R0,[R5, #+2] \ 0000001C 180050E3 CMP R0,#+24 \ 00000020 0B00001A BNE ??pos_onkey_0 549 { 550 EDITCONTROL ec; 551 ExtractEditControl(data,1,&ec); \ 00000024 0D20A0E1 MOV R2,SP \ 00000028 0110A0E3 MOV R1,#+1 \ 0000002C 0400A0E1 MOV R0,R4 \ 00000030 690100EF SWI +361 552 ws=ec.pWS; 553 ws_2str(ws,num,ec.maxlen); \ 00000034 F821DDE1 LDRSH R2,[SP, #+24] \ 00000038 28009DE5 LDR R0,[SP, #+40] \ 0000003C 2C108DE2 ADD R1,SP,#+44 \ 00000040 A30000EF SWI +163 554 ed_create(conv,num); \ 00000044 14009FE5 LDR R0,??pos_onkey_1 ;; pos_desc + 84 \ 00000048 2C108DE2 ADD R1,SP,#+44 \ 0000004C 000090E5 LDR R0,[R0, #+0] \ 00000050 ........ BL ed_create 555 } 556 return(0); \ ??pos_onkey_0: \ 00000054 0000A0E3 MOV R0,#+0 \ 00000058 4CD08DE2 ADD SP,SP,#+76 \ 0000005C 3080BDE8 POP {R4,R5,PC} ;; return \ ??pos_onkey_1: \ 00000060 ........ DC32 pos_desc + 84 557 } 558 \ In segment CODE, align 4, keep-with-next 559 void pos_ghook(GUI *gui, int cmd) 560 { \ pos_ghook: \ 00000000 00402DE9 PUSH {LR} 561 static SOFTKEY_DESC sk={0x0018,0x0000,(int)"Convert"}; 562 if (cmd==7) \ 00000004 070051E3 CMP R1,#+7 \ 00000008 0300001A BNE ??pos_ghook_0 563 { 564 SetSoftKey(gui,&sk,SET_SOFT_KEY_N); \ 0000000C 18109FE5 LDR R1,??pos_ghook_1 ;; ??sk_1 \ 00000010 0020A0E3 MOV R2,#+0 \ 00000014 680100EF SWI +360 \ 00000018 0080BDE8 POP {PC} 565 } 566 if(cmd==0xA) \ ??pos_ghook_0: \ 0000001C 0A0051E3 CMP R1,#+10 \ 00000020 0080BD18 POPNE {PC} 567 { 568 DisableIDLETMR(); // Отключаем таймер выхода по таймауту \ 00000024 7F0100EF SWI +383 569 } 570 if (cmd==0x0C) 571 { 572 } 573 if(cmd==0x03){} 574 } \ 00000028 0080BDE8 POP {PC} ;; return \ ??pos_ghook_1: \ 0000002C ........ DC32 ??sk_1 575 \ In segment CODE, align 4, keep-with-next 576 void pos_locret(void){} \ pos_locret: \ 00000000 1EFF2FE1 BX LR ;; return \ In segment DATA_I, align 4, align-sorted 577 578 SOFTKEY_DESC menu_sk[]= 579 { 580 {0x0018,0x0000,(int)"Лев"}, 581 {0x0001,0x0000,(int)"Прав"}, 582 {0x003D,0x0000,(int)LGP_DOIT_PIC} 583 }; 584 585 SOFTKEYSTAB menu_skt= 586 { 587 menu_sk,0 588 }; 589 590 INPUTDIA_DESC pos_desc= \ pos_desc: \ 00000000 DS8 56 \ 00000038 REQUIRE `?` \ pos_hdr: \ 00000038 DS8 20 \ 0000004C REQUIRE `?` \ id_ed: \ 0000004C DS8 4 \ 00000050 REQUIRE `?` \ id_ed2: \ 00000050 DS8 4 \ 00000054 REQUIRE `?` \ conv: \ 00000054 DS8 4 \ 00000058 REQUIRE `?` 591 { 592 1, 593 pos_onkey, 594 pos_ghook, 595 (void *)pos_locret, 596 0, 597 &menu_skt, 598 {0,NULL,NULL,NULL}, 599 FONT_SMALL, 600 100, 601 101, 602 0, 603 0x00000000, 604 0x40000000 605 }; 606 607 char *cc[]={"DEC","BIN","OCT","HEX"}; \ cc: \ 00000058 DS8 16 \ 00000068 REQUIRE `?` \ hdr: \ 00000068 DS8 64 \ 000000A8 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ edit_desc: \ 00000000 DS8 56 \ 00000038 REQUIRE `?` \ disk_prop_hdr: \ 00000038 DS8 20 \ 0000004C REQUIRE `?` \ len: \ 0000004C DS8 4 \ 00000050 REQUIRE `?` \ id_create: \ 00000050 DS8 4 \ 00000054 REQUIRE `?` \ per_d: \ 00000054 DS8 3 \ 00000057 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ skt: \ 00000000 DS8 8 \ 00000008 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ ??sk: \ 00000000 DS8 8 \ 00000008 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ ??sk_1: \ 00000000 DS8 8 \ 00000008 REQUIRE `?_1` \ In segment DATA_I, align 4, align-sorted \ menu_sk: \ 00000000 DS8 24 \ 00000018 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ menu_skt: \ 00000000 DS8 8 \ 00000008 REQUIRE `?` \ In segment CODE, align 4, keep-with-next 608 void input(int i) 609 { \ input: \ 00000000 F0402DE9 PUSH {R4-R7,LR} 610 conv=i; \ 00000004 08419FE5 LDR R4,??input_0 ;; pos_desc \ 00000008 0060A0E1 MOV R6,R0 611 EDITCONTROL ec; 612 sprintf(hdr,"%s %s","Input",cc[i]); \ 0000000C 04019FE5 LDR R0,??input_0+0x4 ;; `?` \ 00000010 2CD04DE2 SUB SP,SP,#+44 \ 00000014 546084E5 STR R6,[R4, #+84] \ 00000018 061184E0 ADD R1,R4,R6, LSL #+2 \ 0000001C 583091E5 LDR R3,[R1, #+88] \ 00000020 0020A0E1 MOV R2,R0 \ 00000024 081080E2 ADD R1,R0,#+8 \ 00000028 680084E2 ADD R0,R4,#+104 \ 0000002C 160000EF SWI +22 613 void *ma=malloc_adr(); \ 00000030 148000EF SWI +32788 \ 00000034 0070A0E1 MOV R7,R0 614 void *eq=AllocEQueue(ma, mfree_adr()); \ 00000038 158000EF SWI +32789 \ 0000003C 0010A0E1 MOV R1,R0 \ 00000040 0700A0E1 MOV R0,R7 \ 00000044 630100EF SWI +355 \ 00000048 0050A0E1 MOV R5,R0 615 616 PrepareEditControl(&ec); \ 0000004C 0D00A0E1 MOV R0,SP \ 00000050 640100EF SWI +356 617 if(i!=3) \ 00000054 2000A0E3 MOV R0,#+32 \ 00000058 01002DE9 PUSH {R0} \ 0000005C 2C309DE5 LDR R3,[SP, #+44] \ 00000060 030056E3 CMP R6,#+3 \ 00000064 4020A0E3 MOV R2,#+64 618 ConstructEditControl(&ec,ECT_NORMAL_NUM,ECF_APPEND_EOL|ECF_DISABLE_MINUS|ECF_DISABLE_POINT,ec.pWS,32); \ 00000068 602A8213 ORRNE R2,R2,#0x60000 \ 0000006C 0610A013 MOVNE R1,#+6 619 else 620 ConstructEditControl(&ec,ECT_NORMAL_TEXT,ECF_APPEND_EOL,ec.pWS,32); \ 00000070 0310A003 MOVEQ R1,#+3 \ 00000074 04008DE2 ADD R0,SP,#+4 \ 00000078 650100EF SWI +357 \ 0000007C 04D08DE2 ADD SP,SP,#+4 621 AddEditControlToEditQend(eq,&ec,ma); \ 00000080 0720A0E1 MOV R2,R7 \ 00000084 0D10A0E1 MOV R1,SP \ 00000088 0500A0E1 MOV R0,R5 \ 0000008C 660100EF SWI +358 622 623 patch_header(&pos_hdr); \ 00000090 0060A0E3 MOV R6,#+0 \ 00000094 B863C4E1 STRH R6,[R4, #+56] \ 00000098 1800A0E3 MOV R0,#+24 \ 0000009C BA03C4E1 STRH R0,[R4, #+58] \ 000000A0 888100EF SWI +33160 \ 000000A4 010040E2 SUB R0,R0,#+1 \ 000000A8 BC03C4E1 STRH R0,[R4, #+60] \ 000000AC 8A8100EF SWI +33162 \ 000000B0 180080E2 ADD R0,R0,#+24 \ 000000B4 BE03C4E1 STRH R0,[R4, #+62] 624 patch_input(&pos_desc); \ 000000B8 B861C4E1 STRH R6,[R4, #+24] \ 000000BC 8A8100EF SWI +33162 \ 000000C0 190080E2 ADD R0,R0,#+25 \ 000000C4 BA01C4E1 STRH R0,[R4, #+26] \ 000000C8 888100EF SWI +33160 \ 000000CC 010040E2 SUB R0,R0,#+1 \ 000000D0 BC01C4E1 STRH R0,[R4, #+28] \ 000000D4 898100EF SWI +33161 \ 000000D8 0060A0E1 MOV R6,R0 \ 000000DC 8B8100EF SWI +33163 \ 000000E0 000046E0 SUB R0,R6,R0 \ 000000E4 010040E2 SUB R0,R0,#+1 \ 000000E8 BE01C4E1 STRH R0,[R4, #+30] 625 626 id_ed2=CreateInputTextDialog(&pos_desc,&pos_hdr,eq,1,0);//создаем диалоговое окно \ 000000EC 0000A0E3 MOV R0,#+0 \ 000000F0 01002DE9 PUSH {R0} \ 000000F4 0130A0E3 MOV R3,#+1 \ 000000F8 0520A0E1 MOV R2,R5 \ 000000FC 381084E2 ADD R1,R4,#+56 \ 00000100 0400A0E1 MOV R0,R4 \ 00000104 670100EF SWI +359 \ 00000108 500084E5 STR R0,[R4, #+80] 627 } \ 0000010C 30D08DE2 ADD SP,SP,#+48 \ 00000110 F080BDE8 POP {R4-R7,PC} ;; return \ ??input_0: \ 00000114 ........ DC32 pos_desc \ 00000118 ........ DC32 `?` 628 //----------------------------------------------------------------// 629 extern int ShowMainMenu(); \ In segment CODE, align 4, keep-with-next 630 void maincsm_oncreate(CSM_RAM *data) 631 { \ maincsm_oncreate: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 0040A0E1 MOV R4,R0 632 MAIN_CSM *csm=(MAIN_CSM*)data; 633 csm->gui_id=ShowMainMenu();//ed_create(); \ 00000008 ........ _BLF ShowMainMenu,??ShowMainMenu??rA \ 0000000C 280084E5 STR R0,[R4, #+40] 634 } \ 00000010 1080BDE8 POP {R4,PC} ;; return 635 \ In segment CODE, align 4, keep-with-next 636 void Killer(void) 637 { 638 extern void seqkill(void *data, void(*next_in_seq)(CSM_RAM *), void *data_to_kill, void *seqkiller); 639 extern void *ELF_BEGIN; 640 } \ Killer: \ 00000000 1EFF2FE1 BX LR ;; return 641 \ In segment CODE, align 4, keep-with-next 642 void maincsm_onclose(CSM_RAM *csm) 643 { 644 SUBPROC((void *)Killer); \ maincsm_onclose: \ 00000000 08009FE5 LDR R0,??maincsm_onclose_0 ;; Killer \ 00000004 00402DE9 PUSH {LR} \ 00000008 710100EF SWI +369 645 } \ 0000000C 0080BDE8 POP {PC} ;; return \ ??maincsm_onclose_0: \ 00000010 ........ DC32 Killer 646 \ In segment CODE, align 4, keep-with-next 647 int maincsm_onmessage(CSM_RAM *data, GBS_MSG *msg) 648 { 649 MAIN_CSM *csm=(MAIN_CSM*)data; 650 if (msg->msg==MSG_GUI_DESTROYED) \ maincsm_onmessage: \ 00000000 042091E5 LDR R2,[R1, #+4] \ 00000004 0E30A0E3 MOV R3,#+14 \ 00000008 643C83E3 ORR R3,R3,#0x6400 \ 0000000C 030052E1 CMP R2,R3 \ 00000010 0400001A BNE ??maincsm_onmessage_0 651 { 652 if ((int)msg->data0==csm->gui_id) \ 00000014 0C1091E5 LDR R1,[R1, #+12] \ 00000018 282090E5 LDR R2,[R0, #+40] \ 0000001C 020051E1 CMP R1,R2 653 { 654 { 655 csm->csm.state=-3; \ 00000020 0210E003 MVNEQ R1,#+2 \ 00000024 10108005 STREQ R1,[R0, #+16] 656 } 657 } 658 } 659 return(1); \ ??maincsm_onmessage_0: \ 00000028 0100A0E3 MOV R0,#+1 \ 0000002C 1EFF2FE1 BX LR ;; return 660 } 661 \ In segment DATA_Z, align 4, align-sorted 662 unsigned short maincsm_name_body[140]; \ maincsm_name_body: \ 00000000 DS8 280 663 664 const struct 665 { 666 CSM_DESC maincsm; 667 WSHDR maincsm_name; \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 436F6E766572 DC8 "Converter" \ 74657200 \ 0000000A 0000 DC8 0, 0 668 }MAINCSM = \ MAINCSM: \ 0000000C ............ DC32 maincsm_onmessage, maincsm_oncreate, 0, 0, 0, 0, maincsm_onclose \ ....00000000 \ 000000000000 \ 000000000000 \ ........ \ 00000028 2C0000000100 DC32 44, 1, minus11, maincsm_name_body, 55AACCCCH, 3333AA55H, 0 \ 0000........ \ ........CCCC \ AA5555AA3333 \ 00000000 \ 00000044 8B00 DC16 139 \ 00000046 0000 DC8 0, 0 669 { 670 { 671 maincsm_onmessage, 672 maincsm_oncreate, 673 #ifdef NEWSGOLD 674 0, 675 0, 676 0, 677 0, 678 #endif 679 maincsm_onclose, 680 sizeof(MAIN_CSM), 681 1, 682 &minus11 683 }, 684 { 685 maincsm_name_body, 686 NAMECSM_MAGIC1, 687 NAMECSM_MAGIC2, 688 0x0, 689 139 690 } 691 }; 692 \ In segment CODE, align 4, keep-with-next 693 void UpdateCSMname(void) 694 { 695 wsprintf((WSHDR *)(&MAINCSM.maincsm_name),"Converter"); \ UpdateCSMname: \ 00000000 10009FE5 LDR R0,??UpdateCSMname_0 ;; `?` \ 00000004 00402DE9 PUSH {LR} \ 00000008 0010A0E1 MOV R1,R0 \ 0000000C 340080E2 ADD R0,R0,#+52 \ 00000010 240100EF SWI +292 696 } \ 00000014 0080BDE8 POP {PC} ;; return \ ??UpdateCSMname_0: \ 00000018 ........ DC32 `?` 697 \ In segment DATA_Z, align 4, align-sorted 698 int maincsm_id; \ maincsm_id: \ 00000000 DS8 4 \ In segment CODE, align 4, keep-with-next 699 int main(char *exename, char *fname) 700 { \ main: \ 00000000 00402DE9 PUSH {LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 701 // InitConfig(); 702 703 char dummy[sizeof(MAIN_CSM)]; 704 UpdateCSMname(); \ 00000008 ........ BL UpdateCSMname 705 LockSched(); \ 0000000C 460100EF SWI +326 706 maincsm_id=CreateCSM(&MAINCSM.maincsm,dummy,0); \ 00000010 20009FE5 LDR R0,??main_0 ;; `?` + 12 \ 00000014 0020A0E3 MOV R2,#+0 \ 00000018 0D10A0E1 MOV R1,SP \ 0000001C 070100EF SWI +263 \ 00000020 14109FE5 LDR R1,??main_0+0x4 ;; maincsm_id \ 00000024 000081E5 STR R0,[R1, #+0] 707 UnlockSched(); \ 00000028 470100EF SWI +327 708 return 0; \ 0000002C 0000A0E3 MOV R0,#+0 \ 00000030 2CD08DE2 ADD SP,SP,#+44 \ 00000034 0080BDE8 POP {PC} ;; return \ ??main_0: \ 00000038 ........ DC32 `?` + 12 \ 0000003C ........ DC32 maincsm_id 709 } \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000.... DC32 1, pos_onkey, pos_ghook, pos_locret, 0, menu_skt \ ............ \ ........0000 \ 0000........ \ 00000018 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000020 080000006400 DC32 8, 100, 101, 0, 0, 1073741824 \ 000065000000 \ 000000000000 \ 000000000040 \ `?`: \ 00000038 000000008300 DC16 0, 0, 131, 21 \ 1500 \ 00000040 00000000.... DC32 0H, hdr, 2147483647 \ ....FFFFFF7F \ `?`: \ 0000004C 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000050 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000054 00000000 DC32 0 \ `?`: \ 00000058 ............ DC32 `?`, `?`, `?` \ ............ \ 00000064 ........ DC32 `?` \ `?`: \ 00000068 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000078 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000088 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000098 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000.... DC32 1, empty_onkey, empty_ghook, empty_locret, 0, skt \ ............ \ ........0000 \ 0000........ \ 00000018 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000020 080000006400 DC32 8, 100, 101, 0, 0, 1073741824 \ 000065000000 \ 000000000000 \ 000000000040 \ `?`: \ 00000038 000000008300 DC16 0, 0, 131, 21 \ 1500 \ 00000040 000000000000 DC32 0H, 0, 2147483647 \ 0000FFFFFF7F \ `?`: \ 0000004C 00000000 DC32 0 \ `?`: \ 00000050 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000054 256400 DC8 "%d" \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 ........0000 DC32 sk, 0 \ 0000 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 FF0F0000 DC16 4095, 0 \ 00000004 ........ DC32 `?` \ In segment DATA_ID, align 4, align-sorted \ `?_1`: \ 00000000 18000000 DC16 24, 0 \ 00000004 ........ DC32 `?` \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 18000000 DC16 24, 0 \ 00000004 ........ DC32 `?` \ 00000008 01000000 DC16 1, 0 \ 0000000C ........ DC32 `?` \ 00000010 3D000000 DC16 61, 0 \ 00000014 FBC0FF7F DC32 2147467515 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 ........0000 DC32 menu_sk, 0 \ 0000 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 496E70757400 DC8 "Input" \ 00000006 0000 DC8 0, 0 \ 00000008 257320257300 DC8 "%s %s" \ 0000000E 0000 DC8 0, 0 \ In segment DATA_C, align 1, align-sorted \ 00000000 255800 DC8 "%X" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 436F6E766572 DC8 "Convert" \ 7400 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 31333A32373A DC8 "13:27:03" \ 303300 \ 00000009 000000 DC8 0, 0, 0 \ 0000000C 466562203137 DC8 "Feb 17 2008" \ 203230303800 \ 00000018 436F6E766572 DC8 "ConvertorSS v0.1\012(c)kluchnik\012%s %s" \ 746F72535320 \ 76302E310A28 \ 63296B6C7563 \ 686E696B0A25 \ 7320257300 \ 0000003B 00 DC8 0 \ In segment DATA_C, align 1, align-sorted \ 00000000 256400 DC8 "%d" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 44454300 DC8 "DEC" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 48455800 DC8 "HEX" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4F435400 DC8 "OCT" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 42494E00 DC8 "BIN" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 CFF0E0E200 DC8 "\317\360\340\342" \ 00000005 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 CBE5E200 DC8 "\313\345\342" Maximum stack usage in bytes: Function CSTACK -------- ------ Killer 0 UpdateCSMname 4 about 136 boh2dec 36 dec2boh 36 ed_create 132 empty_ghook 4 empty_locret 0 empty_onkey 8 get_file_size 48 input 68 main 48 maincsm_onclose 4 maincsm_oncreate 8 maincsm_onmessage 0 mess 4 mess2 4 messd 12 pos_ghook 4 pos_locret 0 pos_onkey 88 Segment part sizes: Function/Label Bytes -------------- ----- icsmd 40 old_icsm_onMessage 4 MAINCSM_ID 4 MAINGUI_ID 4 minus11 4 per_t 52 empty_str 1 my_csm_id 4 err 4 get_file_size 40 mess 20 mess2 20 messd 52 about 64 dec2boh 232 boh2dec 172 empty_onkey 80 sk 8 empty_locret 4 empty_ghook 48 ed_create 1644 pos_onkey 100 pos_ghook 48 pos_locret 4 pos_desc 168 edit_desc 87 skt 8 sk 8 sk 8 menu_sk 24 menu_skt 8 input 284 maincsm_oncreate 20 Killer 4 maincsm_onclose 20 maincsm_onmessage 48 maincsm_name_body 280 ? 72 UpdateCSMname 28 maincsm_id 4 main 64 ? 168 ? 87 ? 8 ? 8 ?_1 8 ? 24 ? 8 ? 16 ? 3 ? 8 ? 60 ? 3 ? 4 ? 4 ? 4 ? 4 ? 8 ? 4 Others 192 3 164 bytes in segment CODE 247 bytes in segment DATA_C 311 bytes in segment DATA_I 311 bytes in segment DATA_ID 352 bytes in segment DATA_Z 24 bytes in segment INITTAB 2 996 bytes of CODE memory (+ 192 bytes shared) 558 bytes of CONST memory 663 bytes of DATA memory Errors: none Warnings: none