############################################################################## # # # IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION 18/Jul/2010 14:39:40 # # Copyright 1999-2005 IAR Systems. All rights reserved. # # # # Cpu mode = interwork # # Endian = little # # Stack alignment = 4 # # Source file = D:\pasha\elf\evil_src\reminder ms\mrs editor\main.c # # Command line = "D:\pasha\elf\evil_src\reminder ms\mrs # # editor\main.c" -D NEWSGOLD -lC # # "D:\pasha\elf\evil_src\reminder ms\mrs # # editor\Release\List\" -o "D:\pasha\elf\evil_src\remi # # nder ms\mrs editor\Release\Obj\" -s9 --no_unroll # # --no_clustering --cpu_mode arm --endian little # # --cpu ARM926EJ-S --stack_align 4 --interwork -e # # --fpu None -I "D:\pasha\Embedded Workbench 4.0 # # Evaluation2\ARM\INC\" --inline_threshold=2 # # List file = D:\pasha\elf\evil_src\reminder ms\mrs # # editor\Release\List\main.lst # # Object file = D:\pasha\elf\evil_src\reminder ms\mrs # # editor\Release\Obj\main.r79 # # # # # ############################################################################## D:\pasha\elf\evil_src\reminder ms\mrs editor\main.c 1 #include "..\inc\swilib.h" 2 #include "strings.h" 3 #include "conf_loader.h" 4 5 #define ECINPUT 3 6 #define ECOUTPUT 5 7 #define ECOUTPUT2 7 8 #define ECOUTPUT3 9 9 #define ECOUTPUT4 11 10 #define ECOUTPUT5 13 11 #define ECOUTPUT6 15 12 #define ECOUTPUT7 17 13 #define ECOUTPUT8 19 14 \ In segment DATA_C, align 4, align-sorted 15 const int minus11=-11; \ minus11: \ 00000000 F5FFFFFF DC32 -11 \ In segment DATA_Z, align 4, align-sorted 16 unsigned short maincsm_name_body[140]; \ maincsm_name_body: \ 00000000 DS8 280 \ In segment DATA_Z, align 4, align-sorted 17 int MAINCSM_ID; \ MAINCSM_ID: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 18 GUI *ggui=0; \ ggui: \ 00000000 DS8 4 19 ////for read file \ In segment DATA_Z, align 4, align-sorted 20 int f; \ f: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 21 int fsize; \ fsize: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 22 unsigned int ul; \ ul: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 23 int i; \ i: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 24 int j; \ j: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 25 int y; \ y: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 26 int u; \ u: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 27 int ex; \ ex: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 28 int ex1; \ ex1: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 29 int len_ex; \ len_ex: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 30 int save_m; \ save_m: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 31 int beg_len; \ beg_len: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 32 int kil; \ kil: \ 00000000 DS8 4 33 extern const char rms_file[64]; \ In segment DATA_Z, align 4, align-sorted 34 char rms_path[64]; \ rms_path: \ 00000000 DS8 64 35 \ In segment DATA_Z, align 4, align-sorted 36 char app1[64]; \ app1: \ 00000000 DS8 64 \ In segment DATA_Z, align 4, align-sorted 37 char app2[64]; \ app2: \ 00000000 DS8 64 \ In segment DATA_Z, align 4, align-sorted 38 char app3[64]; \ app3: \ 00000000 DS8 64 \ In segment DATA_Z, align 4, align-sorted 39 char app4[64]; \ app4: \ 00000000 DS8 64 \ In segment DATA_Z, align 4, align-sorted 40 char app5[64]; \ app5: \ 00000000 DS8 64 \ In segment DATA_Z, align 4, align-sorted 41 char app6[64]; \ app6: \ 00000000 DS8 64 \ In segment DATA_Z, align 4, align-sorted 42 char app7[64]; \ app7: \ 00000000 DS8 64 \ In segment DATA_Z, align 4, align-sorted 43 char app8[64]; \ app8: \ 00000000 DS8 64 44 \ In segment DATA_Z, align 4, align-sorted 45 char day_1[64]; \ day_1: \ 00000000 DS8 64 \ In segment DATA_Z, align 4, align-sorted 46 char day_1_1[256]; \ day_1_1: \ 00000000 DS8 256 47 //char fails[10000]; 48 /////// 49 50 #define wslen(ws) ws->wsbody[0] 51 52 #pragma inline 53 void patch_rect(RECT*rc,int x,int y, int x2, int y2) 54 { 55 rc->x=x; 56 rc->y=y; 57 rc->x2=x2; 58 rc->y2=y2; 59 } 60 61 62 typedef struct 63 { 64 CSM_RAM csm; 65 int gui_id; 66 }MAIN_CSM; 67 68 typedef struct 69 { 70 GUI gui; 71 WSHDR *ws1; 72 WSHDR *ws2; 73 int i1; 74 }MAIN_GUI; 75 \ In segment CODE, align 4, keep-with-next 76 void Check_if_is_file() 77 { 78 volatile int hFile; 79 unsigned int io_error = 0; 80 FSTATS stat; 81 GetFileStats(rms_path,&stat,&ul); \ Check_if_is_file: \ 00000000 ........ LDR R2,??DataTable15 ;; ul \ 00000004 30402DE9 PUSH {R4,R5,LR} \ 00000008 ........ LDR R4,??DataTable29 ;; rms_path \ 0000000C 30D04DE2 SUB SP,SP,#+48 \ 00000010 0010A0E3 MOV R1,#+0 \ 00000014 04108DE5 STR R1,[SP, #+4] \ 00000018 08108DE2 ADD R1,SP,#+8 \ 0000001C 0400A0E1 MOV R0,R4 \ 00000020 840000EF SWI +132 82 if(stat.size<7) \ 00000024 0C009DE5 LDR R0,[SP, #+12] \ 00000028 070050E3 CMP R0,#+7 \ 0000002C 1A00002A BCS ??Check_if_is_file_0 83 { 84 char *text=malloc(256); \ 00000030 400FA0E3 MOV R0,#+256 \ 00000034 140000EF SWI +20 85 sprintf(text, "rms_the_begin_of_the_file"); \ 00000038 64109FE5 LDR R1,??Check_if_is_file_1 ;; `?` \ 0000003C 0050A0E1 MOV R5,R0 \ 00000040 160000EF SWI +22 86 hFile = fopen(rms_path,A_ReadWrite+A_Create+A_Truncate+ A_BIN,P_READ+P_WRITE, &io_error); \ 00000044 04308DE2 ADD R3,SP,#+4 \ 00000048 602FA0E3 MOV R2,#+384 \ 0000004C 0210A0E3 MOV R1,#+2 \ 00000050 831C81E3 ORR R1,R1,#0x8300 \ 00000054 0400A0E1 MOV R0,R4 \ 00000058 0A0000EF SWI +10 \ 0000005C 00008DE5 STR R0,[SP, #+0] 87 if(hFile!=-1) \ 00000060 00009DE5 LDR R0,[SP, #+0] \ 00000064 010070E3 CMN R0,#+1 \ 00000068 0900000A BEQ ??Check_if_is_file_2 88 { 89 fwrite(hFile, text, strlen(text), &io_error); \ 0000006C 0500A0E1 MOV R0,R5 \ 00000070 1B0000EF SWI +27 \ 00000074 0020A0E1 MOV R2,R0 \ 00000078 00009DE5 LDR R0,[SP, #+0] \ 0000007C 04308DE2 ADD R3,SP,#+4 \ 00000080 0510A0E1 MOV R1,R5 \ 00000084 0C0000EF SWI +12 90 fclose(hFile, &io_error); \ 00000088 00009DE5 LDR R0,[SP, #+0] \ 0000008C 04108DE2 ADD R1,SP,#+4 \ 00000090 0D0000EF SWI +13 91 } 92 mfree(text); \ ??Check_if_is_file_2: \ 00000094 0500A0E1 MOV R0,R5 \ 00000098 150000EF SWI +21 93 } 94 } \ ??Check_if_is_file_0: \ 0000009C 30D08DE2 ADD SP,SP,#+48 ;; stack cleaning \ 000000A0 3080BDE8 POP {R4,R5,PC} ;; return \ ??Check_if_is_file_1: \ 000000A4 ........ DC32 `?` 95 \ In segment CODE, align 4, keep-with-next 96 void day_extractor() 97 { \ day_extractor: \ 00000000 F04F2DE9 PUSH {R4-R11,LR} 98 ex=0; \ 00000004 94439FE5 LDR R4,??day_extractor_0 ;; ex 99 ex1=0; \ 00000008 94639FE5 LDR R6,??day_extractor_0+0x4 ;; ex1 100 len_ex=strlen(day_1_1); \ 0000000C 94839FE5 LDR R8,??day_extractor_0+0x8 ;; len_ex \ 00000010 ........ LDR R7,??DataTable12 ;; day_1_1 \ 00000014 0050A0E3 MOV R5,#+0 \ 00000018 005084E5 STR R5,[R4, #+0] \ 0000001C 005086E5 STR R5,[R6, #+0] \ 00000020 0700A0E1 MOV R0,R7 \ 00000024 1B0000EF SWI +27 \ 00000028 000088E5 STR R0,[R8, #+0] \ 0000002C 030000EA B ??day_extractor_1 101 while((day_1_1[ex1]!=';')&&(ex10) \ 00000018 ........ LDR R6,??DataTable26 ;; fsize \ 0000001C ........ LDR R7,??DataTable16 ;; f \ 00000020 0400A0E1 MOV R0,R4 \ 00000024 840000EF SWI +132 \ 00000028 34009DE5 LDR R0,[SP, #+52] \ 0000002C 000050E3 CMP R0,#+0 \ 00000030 0800000A BEQ ??open_file_0 211 { 212 f=fopen(rms_path,A_ReadOnly+A_BIN,P_READ,&ul); \ 00000034 0530A0E1 MOV R3,R5 \ 00000038 8020A0E3 MOV R2,#+128 \ 0000003C 801CA0E3 MOV R1,#+32768 \ 00000040 0400A0E1 MOV R0,R4 \ 00000044 0A0000EF SWI +10 \ 00000048 000087E5 STR R0,[R7, #+0] 213 fsize=stat.size; \ 0000004C 34009DE5 LDR R0,[SP, #+52] \ 00000050 000086E5 STR R0,[R6, #+0] \ 00000054 020000EA B ??open_file_1 214 } 215 else 216 ShowMSG(1,(int)"Failed"); \ ??open_file_0: \ 00000058 ........ LDR R1,??DataTable19 ;; `?` \ 0000005C 0100A0E3 MOV R0,#+1 \ 00000060 480100EF SWI +328 217 char *p=malloc(fsize); \ ??open_file_1: \ 00000064 000096E5 LDR R0,[R6, #+0] \ 00000068 140000EF SWI +20 218 p[fread(f,p,fsize,&ul)]; \ 0000006C 002096E5 LDR R2,[R6, #+0] \ 00000070 0040A0E1 MOV R4,R0 \ 00000074 000097E5 LDR R0,[R7, #+0] \ 00000078 0530A0E1 MOV R3,R5 \ 0000007C 0410A0E1 MOV R1,R4 \ 00000080 0B0000EF SWI +11 219 fclose(f,&ul); \ 00000084 000097E5 LDR R0,[R7, #+0] \ 00000088 0510A0E1 MOV R1,R5 \ 0000008C 0D0000EF SWI +13 \ 00000090 ........ LDR R0,??DataTable32 ;; ggui \ 00000094 04208DE2 ADD R2,SP,#+4 \ 00000098 000090E5 LDR R0,[R0, #+0] \ 0000009C 0310A0E3 MOV R1,#+3 220 EDITCONTROL ec; 221 ExtractEditControl(ggui, ECINPUT, &ec); \ 000000A0 690100EF SWI +361 222 char *p1=ws2ascii(ec.pWS); \ 000000A4 2C009DE5 LDR R0,[SP, #+44] \ 000000A8 ........ _BLF ws2ascii,??ws2ascii??rA 223 char p2[]="day"; \ 000000AC 24129FE5 LDR R1,??open_file_2 ;; `?_1` \ 000000B0 0050A0E1 MOV R5,R0 \ 000000B4 002091E5 LDR R2,[R1, #0] \ 000000B8 0D00A0E1 MOV R0,SP \ 000000BC 002080E5 STR R2,[R0, #+0] 224 char *s,*s1,*s2; 225 int len, len2; 226 if(strlen(p1)>0) \ 000000C0 0500A0E1 MOV R0,R5 \ 000000C4 1B0000EF SWI +27 \ 000000C8 000050E3 CMP R0,#+0 \ 000000CC 7800000A BEQ ??open_file_3 227 { 228 if((s1=strstr(p,p1))>0) \ 000000D0 0510A0E1 MOV R1,R5 \ 000000D4 0400A0E1 MOV R0,R4 \ 000000D8 180100EF SWI +280 \ 000000DC 0070B0E1 MOVS R7,R0 \ 000000E0 5800000A BEQ ??open_file_4 229 { 230 s1+=strlen(p1); \ 000000E4 0500A0E1 MOV R0,R5 \ 000000E8 1B0000EF SWI +27 \ 000000EC 077080E0 ADD R7,R0,R7 231 if((s2=strstr(s1,p2))>0) \ 000000F0 0D10A0E1 MOV R1,SP \ 000000F4 0700A0E1 MOV R0,R7 \ 000000F8 180100EF SWI +280 \ 000000FC 000050E3 CMP R0,#+0 \ 00000100 6500000A BEQ ??open_file_5 232 { 233 len=s2-s1; \ 00000104 078040E0 SUB R8,R0,R7 234 if(len>8) \ 00000108 090058E3 CMP R8,#+9 \ 0000010C 620000BA BLT ??open_file_5 235 { 236 s=malloc(len+1); 237 strncpy(s,s1,len); 238 s[len]='\0'; 239 char *s_r=malloc(256); 240 sprintf(s_r, "%s%s", p1,s); 241 i=0; \ 00000110 C4919FE5 LDR R9,??open_file_2+0x4 ;; i 242 j=0; \ 00000114 C4A19FE5 LDR R10,??open_file_2+0x8 ;; j \ 00000118 010088E2 ADD R0,R8,#+1 \ 0000011C 140000EF SWI +20 \ 00000120 0060A0E1 MOV R6,R0 \ 00000124 0820A0E1 MOV R2,R8 \ 00000128 0710A0E1 MOV R1,R7 \ 0000012C 160100EF SWI +278 \ 00000130 0070A0E3 MOV R7,#+0 \ 00000134 0670C8E7 STRB R7,[R8, +R6] \ 00000138 400FA0E3 MOV R0,#+256 \ 0000013C 140000EF SWI +20 \ 00000140 ........ LDR R1,??DataTable27 ;; `?` \ 00000144 0080A0E1 MOV R8,R0 \ 00000148 0630A0E1 MOV R3,R6 \ 0000014C 0520A0E1 MOV R2,R5 \ 00000150 160000EF SWI +22 \ 00000154 007089E5 STR R7,[R9, #+0] \ 00000158 84019FE5 LDR R0,??open_file_2+0xC ;; day_1 \ 0000015C 00708AE5 STR R7,[R10, #+0] \ 00000160 0010D8E5 LDRB R1,[R8, #+0] \ 00000164 3B0051E3 CMP R1,#+59 \ 00000168 0700001A BNE ??open_file_6 \ 0000016C 0B0000EA B ??open_file_7 243 while(s_r[i]!=';') 244 { 245 day_1[j]=s_r[i]; \ ??open_file_8: \ 00000170 0020D2E5 LDRB R2,[R2, #+0] \ 00000174 00109AE5 LDR R1,[R10, #+0] \ 00000178 0020C1E7 STRB R2,[R1, +R0] 246 j++; \ 0000017C 011081E2 ADD R1,R1,#+1 \ 00000180 00108AE5 STR R1,[R10, #+0] 247 i++; \ 00000184 011083E2 ADD R1,R3,#+1 \ 00000188 001089E5 STR R1,[R9, #+0] 248 } \ ??open_file_6: \ 0000018C 003099E5 LDR R3,[R9, #+0] \ 00000190 082083E0 ADD R2,R3,R8 \ 00000194 0010D2E5 LDRB R1,[R2, #+0] \ 00000198 3B0051E3 CMP R1,#+59 \ 0000019C F3FFFF1A BNE ??open_file_8 249 day_1[j]='\0'; \ ??open_file_7: \ 000001A0 00109AE5 LDR R1,[R10, #+0] \ 000001A4 0070C1E7 STRB R7,[R1, +R0] 250 WSHDR *ws01=ascii2ws(day_1); \ 000001A8 ........ _BLF ascii2ws,??ascii2ws??rA \ 000001AC 00B0A0E1 MOV R11,R0 251 EDIT_SetTextToEditControl(ggui, ECINPUT,ws01); \ 000001B0 ........ LDR R0,??DataTable32 ;; ggui \ 000001B4 0B20A0E1 MOV R2,R11 \ 000001B8 000090E5 LDR R0,[R0, #+0] \ 000001BC 0310A0E3 MOV R1,#+3 \ 000001C0 DE0100EF SWI +478 252 FreeWS(ws01); \ 000001C4 0B00A0E1 MOV R0,R11 \ 000001C8 290100EF SWI +297 253 DirectRedrawGUI(); \ 000001CC 3F0100EF SWI +319 254 i++; \ 000001D0 000099E5 LDR R0,[R9, #+0] 255 j=0; \ 000001D4 00708AE5 STR R7,[R10, #+0] \ 000001D8 010080E2 ADD R0,R0,#+1 \ 000001DC 000089E5 STR R0,[R9, #+0] 256 len2=strlen(s_r)-2; \ 000001E0 0800A0E1 MOV R0,R8 \ 000001E4 1B0000EF SWI +27 \ 000001E8 002099E5 LDR R2,[R9, #+0] \ 000001EC ........ LDR R1,??DataTable12 ;; day_1_1 \ 000001F0 020040E2 SUB R0,R0,#+2 \ 000001F4 000052E1 CMP R2,R0 \ 000001F8 0900000A BEQ ??open_file_9 257 while(i!=len2) 258 { 259 day_1_1[j]=s_r[i]; \ ??open_file_10: \ 000001FC 003099E5 LDR R3,[R9, #+0] \ 00000200 00209AE5 LDR R2,[R10, #+0] \ 00000204 08B0D3E7 LDRB R11,[R3, +R8] \ 00000208 01B0C2E7 STRB R11,[R2, +R1] 260 j++; \ 0000020C 012082E2 ADD R2,R2,#+1 \ 00000210 00208AE5 STR R2,[R10, #+0] 261 i++; \ 00000214 012083E2 ADD R2,R3,#+1 \ 00000218 002089E5 STR R2,[R9, #+0] 262 } \ 0000021C 000052E1 CMP R2,R0 \ 00000220 F5FFFF1A BNE ??open_file_10 263 day_1_1[j]='\0'; \ ??open_file_9: \ 00000224 00009AE5 LDR R0,[R10, #+0] \ 00000228 0170C0E7 STRB R7,[R0, +R1] 264 // WSHDR *ws02=ascii2ws(day_1_1); 265 // EDIT_SetTextToEditControl(ggui, ECOUTPUT,ws02); 266 // FreeWS(ws02); 267 // DirectRedrawGUI(); 268 day_extractor(); \ 0000022C ........ BL day_extractor 269 mfree(s); \ 00000230 0600A0E1 MOV R0,R6 \ 00000234 150000EF SWI +21 270 mfree(s_r); \ 00000238 0800A0E1 MOV R0,R8 \ 0000023C 150000EF SWI +21 271 ShowMSG(1,(int)"Found!!"); \ 00000240 A0109FE5 LDR R1,??open_file_2+0x10 ;; `?` \ 00000244 120000EA B ??open_file_11 272 } 273 } 274 } 275 else 276 { 277 char *nonez=malloc(20); \ ??open_file_4: \ 00000248 1400A0E3 MOV R0,#+20 \ 0000024C 140000EF SWI +20 278 sprintf(nonez, "00:00 to do"); \ 00000250 94109FE5 LDR R1,??open_file_2+0x14 ;; `?` \ 00000254 0060A0E1 MOV R6,R0 \ 00000258 160000EF SWI +22 279 WSHDR *ws02=ascii2ws(nonez); \ 0000025C 0600A0E1 MOV R0,R6 \ 00000260 ........ _BLF ascii2ws,??ascii2ws??rA \ 00000264 0070A0E1 MOV R7,R0 280 EDIT_SetTextToEditControl(ggui, ECOUTPUT,ws02); \ 00000268 ........ LDR R0,??DataTable32 ;; ggui \ 0000026C 0720A0E1 MOV R2,R7 \ 00000270 000090E5 LDR R0,[R0, #+0] \ 00000274 0510A0E3 MOV R1,#+5 \ 00000278 DE0100EF SWI +478 281 FreeWS(ws02); \ 0000027C 0700A0E1 MOV R0,R7 \ 00000280 290100EF SWI +297 282 mfree(nonez); \ 00000284 0600A0E1 MOV R0,R6 \ 00000288 150000EF SWI +21 283 DirectRedrawGUI(); \ 0000028C 3F0100EF SWI +319 284 ShowMSG(1,(int)"Not Found, Creating!"); \ 00000290 58109FE5 LDR R1,??open_file_2+0x18 ;; `?` \ ??open_file_11: \ 00000294 0100A0E3 MOV R0,#+1 \ 00000298 480100EF SWI +328 285 } 286 mfree(p); \ ??open_file_5: \ 0000029C 0400A0E1 MOV R0,R4 \ 000002A0 150000EF SWI +21 287 mfree(p1); \ 000002A4 0500A0E1 MOV R0,R5 \ 000002A8 150000EF SWI +21 \ 000002AC 58D08DE2 ADD SP,SP,#+88 \ 000002B0 F08FBDE8 POP {R4-R11,PC} 288 } 289 else 290 { 291 mfree(p); \ ??open_file_3: \ 000002B4 0400A0E1 MOV R0,R4 \ 000002B8 150000EF SWI +21 292 mfree(p1); \ 000002BC 0500A0E1 MOV R0,R5 \ 000002C0 150000EF SWI +21 293 ShowMSG(1,(int)"Please input date!!"); \ 000002C4 28109FE5 LDR R1,??open_file_2+0x1C ;; `?` \ 000002C8 0100A0E3 MOV R0,#+1 \ 000002CC 480100EF SWI +328 294 } 295 } \ 000002D0 58D08DE2 ADD SP,SP,#+88 \ 000002D4 F08FBDE8 POP {R4-R11,PC} ;; return \ ??open_file_2: \ 000002D8 ........ DC32 `?_1` \ 000002DC ........ DC32 i \ 000002E0 ........ DC32 j \ 000002E4 ........ DC32 day_1 \ 000002E8 ........ DC32 `?` \ 000002EC ........ DC32 `?` \ 000002F0 ........ DC32 `?` \ 000002F4 ........ DC32 `?` 296 \ In segment CODE, align 4, keep-with-next 297 void save_file(void) 298 { \ save_file: \ 00000000 ........ LDR R0,??DataTable29 ;; rms_path \ 00000004 F04F2DE9 PUSH {R4-R11,LR} \ 00000008 ........ LDR R5,??DataTable15 ;; ul \ 0000000C 6CD04DE2 SUB SP,SP,#+108 \ 00000010 0010A0E3 MOV R1,#+0 \ 00000014 04108DE5 STR R1,[SP, #+4] \ 00000018 0520A0E1 MOV R2,R5 \ 0000001C ........ LDR R6,??DataTable16 ;; f \ 00000020 44108DE2 ADD R1,SP,#+68 299 volatile int hFile; 300 unsigned int io_error = 0; 301 //////////////get file properties 302 FSTATS stat; 303 GetFileStats(rms_path,&stat,&ul); \ 00000024 840000EF SWI +132 \ 00000028 48009DE5 LDR R0,[SP, #+72] \ 0000002C 000050E3 CMP R0,#+0 \ 00000030 0900000A BEQ ??save_file_0 304 if(stat.size>0) 305 { 306 f=fopen(rms_path,A_ReadOnly+A_BIN,P_READ,&ul); \ 00000034 ........ LDR R0,??DataTable29 ;; rms_path \ 00000038 0530A0E1 MOV R3,R5 \ 0000003C 8020A0E3 MOV R2,#+128 \ 00000040 801CA0E3 MOV R1,#+32768 \ 00000044 0A0000EF SWI +10 \ 00000048 000086E5 STR R0,[R6, #+0] 307 fsize=stat.size; \ 0000004C ........ LDR R0,??DataTable26 ;; fsize \ 00000050 48109DE5 LDR R1,[SP, #+72] \ 00000054 001080E5 STR R1,[R0, #+0] \ 00000058 020000EA B ??save_file_1 308 } 309 else 310 ShowMSG(1,(int)"Failed"); \ ??save_file_0: \ 0000005C ........ LDR R1,??DataTable19 ;; `?` \ 00000060 0100A0E3 MOV R0,#+1 \ 00000064 480100EF SWI +328 311 char *p=malloc(fsize); \ ??save_file_1: \ 00000068 ........ LDR R0,??DataTable26 ;; fsize \ 0000006C 000090E5 LDR R0,[R0, #+0] \ 00000070 140000EF SWI +20 \ 00000074 0040A0E1 MOV R4,R0 312 p[fread(f,p,fsize,&ul)]; \ 00000078 ........ LDR R0,??DataTable26 ;; fsize \ 0000007C 0530A0E1 MOV R3,R5 \ 00000080 002090E5 LDR R2,[R0, #+0] \ 00000084 000096E5 LDR R0,[R6, #+0] \ 00000088 0410A0E1 MOV R1,R4 \ 0000008C 0B0000EF SWI +11 313 fclose(f,&ul); \ 00000090 000096E5 LDR R0,[R6, #+0] 314 ////////////get file properties1 315 EDITCONTROL ec; 316 ExtractEditControl(ggui, ECINPUT, &ec); \ 00000094 ........ LDR R6,??DataTable32 ;; ggui \ 00000098 0510A0E1 MOV R1,R5 \ 0000009C 0D0000EF SWI +13 \ 000000A0 000096E5 LDR R0,[R6, #+0] \ 000000A4 18208DE2 ADD R2,SP,#+24 \ 000000A8 0310A0E3 MOV R1,#+3 \ 000000AC 690100EF SWI +361 317 char *p1=ws2ascii(ec.pWS); \ 000000B0 40009DE5 LDR R0,[SP, #+64] \ 000000B4 ........ _BLF ws2ascii,??ws2ascii??rA \ 000000B8 0050A0E1 MOV R5,R0 318 ExtractEditControl(ggui, ECOUTPUT, &ec); \ 000000BC 000096E5 LDR R0,[R6, #+0] \ 000000C0 18208DE2 ADD R2,SP,#+24 \ 000000C4 0510A0E3 MOV R1,#+5 \ 000000C8 690100EF SWI +361 319 char *apz1=ws2ascii(ec.pWS); \ 000000CC 40009DE5 LDR R0,[SP, #+64] \ 000000D0 ........ _BLF ws2ascii,??ws2ascii??rA \ 000000D4 08008DE5 STR R0,[SP, #+8] 320 ExtractEditControl(ggui, ECOUTPUT2, &ec); \ 000000D8 000096E5 LDR R0,[R6, #+0] \ 000000DC 18208DE2 ADD R2,SP,#+24 \ 000000E0 0710A0E3 MOV R1,#+7 \ 000000E4 690100EF SWI +361 321 char *apz2=ws2ascii(ec.pWS); \ 000000E8 40009DE5 LDR R0,[SP, #+64] \ 000000EC ........ _BLF ws2ascii,??ws2ascii??rA \ 000000F0 0C008DE5 STR R0,[SP, #+12] 322 ExtractEditControl(ggui, ECOUTPUT3, &ec); \ 000000F4 000096E5 LDR R0,[R6, #+0] \ 000000F8 18208DE2 ADD R2,SP,#+24 \ 000000FC 0910A0E3 MOV R1,#+9 \ 00000100 690100EF SWI +361 323 char *apz3=ws2ascii(ec.pWS); \ 00000104 40009DE5 LDR R0,[SP, #+64] \ 00000108 ........ _BLF ws2ascii,??ws2ascii??rA \ 0000010C 10008DE5 STR R0,[SP, #+16] 324 ExtractEditControl(ggui, ECOUTPUT4, &ec); \ 00000110 000096E5 LDR R0,[R6, #+0] \ 00000114 18208DE2 ADD R2,SP,#+24 \ 00000118 0B10A0E3 MOV R1,#+11 \ 0000011C 690100EF SWI +361 325 char *apz4=ws2ascii(ec.pWS); \ 00000120 40009DE5 LDR R0,[SP, #+64] \ 00000124 ........ _BLF ws2ascii,??ws2ascii??rA \ 00000128 00008DE5 STR R0,[SP, #+0] 326 ExtractEditControl(ggui, ECOUTPUT5, &ec); \ 0000012C 000096E5 LDR R0,[R6, #+0] \ 00000130 18208DE2 ADD R2,SP,#+24 \ 00000134 0D10A0E3 MOV R1,#+13 \ 00000138 690100EF SWI +361 327 char *apz5=ws2ascii(ec.pWS); \ 0000013C 40009DE5 LDR R0,[SP, #+64] \ 00000140 ........ _BLF ws2ascii,??ws2ascii??rA \ 00000144 0070A0E1 MOV R7,R0 328 ExtractEditControl(ggui, ECOUTPUT6, &ec); \ 00000148 000096E5 LDR R0,[R6, #+0] \ 0000014C 18208DE2 ADD R2,SP,#+24 \ 00000150 0F10A0E3 MOV R1,#+15 \ 00000154 690100EF SWI +361 329 char *apz6=ws2ascii(ec.pWS); \ 00000158 40009DE5 LDR R0,[SP, #+64] \ 0000015C ........ _BLF ws2ascii,??ws2ascii??rA \ 00000160 0080A0E1 MOV R8,R0 330 ExtractEditControl(ggui, ECOUTPUT7, &ec); \ 00000164 000096E5 LDR R0,[R6, #+0] \ 00000168 18208DE2 ADD R2,SP,#+24 \ 0000016C 1110A0E3 MOV R1,#+17 \ 00000170 690100EF SWI +361 331 char *apz7=ws2ascii(ec.pWS); \ 00000174 40009DE5 LDR R0,[SP, #+64] \ 00000178 ........ _BLF ws2ascii,??ws2ascii??rA \ 0000017C 0090A0E1 MOV R9,R0 332 ExtractEditControl(ggui, ECOUTPUT8, &ec); \ 00000180 000096E5 LDR R0,[R6, #+0] \ 00000184 18208DE2 ADD R2,SP,#+24 \ 00000188 1310A0E3 MOV R1,#+19 \ 0000018C 690100EF SWI +361 333 char *apz8=ws2ascii(ec.pWS); \ 00000190 40009DE5 LDR R0,[SP, #+64] \ 00000194 ........ _BLF ws2ascii,??ws2ascii??rA \ 00000198 00A0A0E1 MOV R10,R0 334 char *str2=malloc(640); \ 0000019C A00FA0E3 MOV R0,#+640 \ 000001A0 140000EF SWI +20 \ 000001A4 0060A0E1 MOV R6,R0 335 if(strlen(apz1)>=5) sprintf(str2, "%s;", apz1); \ 000001A8 08009DE5 LDR R0,[SP, #+8] \ 000001AC 1B0000EF SWI +27 \ 000001B0 050050E3 CMP R0,#+5 \ 000001B4 0300003A BCC ??save_file_2 \ 000001B8 08209DE5 LDR R2,[SP, #+8] \ 000001BC DF1F8FE2 ADR R1,??save_file_3 ;; "%s;" \ 000001C0 0600A0E1 MOV R0,R6 \ 000001C4 160000EF SWI +22 336 if(strlen(apz2)>=5) sprintf(str2, "%s%s;", str2, apz2); \ ??save_file_2: \ 000001C8 0C009DE5 LDR R0,[SP, #+12] \ 000001CC 44B49FE5 LDR R11,??save_file_4 ;; `?` \ 000001D0 1B0000EF SWI +27 \ 000001D4 050050E3 CMP R0,#+5 \ 000001D8 0400003A BCC ??save_file_5 \ 000001DC 0C309DE5 LDR R3,[SP, #+12] \ 000001E0 0620A0E1 MOV R2,R6 \ 000001E4 0B10A0E1 MOV R1,R11 \ 000001E8 0600A0E1 MOV R0,R6 \ 000001EC 160000EF SWI +22 337 if(strlen(apz3)>=5) sprintf(str2, "%s%s;", str2, apz3); \ ??save_file_5: \ 000001F0 10009DE5 LDR R0,[SP, #+16] \ 000001F4 1B0000EF SWI +27 \ 000001F8 050050E3 CMP R0,#+5 \ 000001FC 0400003A BCC ??save_file_6 \ 00000200 10309DE5 LDR R3,[SP, #+16] \ 00000204 0620A0E1 MOV R2,R6 \ 00000208 0B10A0E1 MOV R1,R11 \ 0000020C 0600A0E1 MOV R0,R6 \ 00000210 160000EF SWI +22 338 if(strlen(apz4)>=5) sprintf(str2, "%s%s;", str2, apz4); \ ??save_file_6: \ 00000214 00009DE5 LDR R0,[SP, #+0] \ 00000218 1B0000EF SWI +27 \ 0000021C 050050E3 CMP R0,#+5 \ 00000220 0400003A BCC ??save_file_7 \ 00000224 00309DE5 LDR R3,[SP, #+0] \ 00000228 0620A0E1 MOV R2,R6 \ 0000022C 0B10A0E1 MOV R1,R11 \ 00000230 0600A0E1 MOV R0,R6 \ 00000234 160000EF SWI +22 339 if(strlen(apz5)>=5) sprintf(str2, "%s%s;", str2, apz5); \ ??save_file_7: \ 00000238 0700A0E1 MOV R0,R7 \ 0000023C 1B0000EF SWI +27 \ 00000240 050050E3 CMP R0,#+5 \ 00000244 0400003A BCC ??save_file_8 \ 00000248 0730A0E1 MOV R3,R7 \ 0000024C 0620A0E1 MOV R2,R6 \ 00000250 0B10A0E1 MOV R1,R11 \ 00000254 0600A0E1 MOV R0,R6 \ 00000258 160000EF SWI +22 340 if(strlen(apz6)>=5) sprintf(str2, "%s%s;", str2, apz6); \ ??save_file_8: \ 0000025C 0800A0E1 MOV R0,R8 \ 00000260 1B0000EF SWI +27 \ 00000264 050050E3 CMP R0,#+5 \ 00000268 0400003A BCC ??save_file_9 \ 0000026C 0830A0E1 MOV R3,R8 \ 00000270 0620A0E1 MOV R2,R6 \ 00000274 0B10A0E1 MOV R1,R11 \ 00000278 0600A0E1 MOV R0,R6 \ 0000027C 160000EF SWI +22 341 if(strlen(apz7)>=5) sprintf(str2, "%s%s;", str2, apz7); \ ??save_file_9: \ 00000280 0900A0E1 MOV R0,R9 \ 00000284 1B0000EF SWI +27 \ 00000288 050050E3 CMP R0,#+5 \ 0000028C 0400003A BCC ??save_file_10 \ 00000290 0930A0E1 MOV R3,R9 \ 00000294 0620A0E1 MOV R2,R6 \ 00000298 0B10A0E1 MOV R1,R11 \ 0000029C 0600A0E1 MOV R0,R6 \ 000002A0 160000EF SWI +22 342 if(strlen(apz8)>=5) sprintf(str2, "%s%s;", str2, apz8); \ ??save_file_10: \ 000002A4 0A00A0E1 MOV R0,R10 \ 000002A8 1B0000EF SWI +27 \ 000002AC 050050E3 CMP R0,#+5 \ 000002B0 0400003A BCC ??save_file_11 \ 000002B4 0A30A0E1 MOV R3,R10 \ 000002B8 0620A0E1 MOV R2,R6 \ 000002BC 0B10A0E1 MOV R1,R11 \ 000002C0 0600A0E1 MOV R0,R6 \ 000002C4 160000EF SWI +22 343 mfree(apz1); \ ??save_file_11: \ 000002C8 08009DE5 LDR R0,[SP, #+8] \ 000002CC 150000EF SWI +21 344 mfree(apz2); \ 000002D0 0C009DE5 LDR R0,[SP, #+12] \ 000002D4 150000EF SWI +21 345 mfree(apz3); \ 000002D8 10009DE5 LDR R0,[SP, #+16] \ 000002DC 150000EF SWI +21 346 mfree(apz4); \ 000002E0 00009DE5 LDR R0,[SP, #+0] \ 000002E4 150000EF SWI +21 347 mfree(apz5); \ 000002E8 0700A0E1 MOV R0,R7 \ 000002EC 150000EF SWI +21 348 mfree(apz6); \ 000002F0 0800A0E1 MOV R0,R8 \ 000002F4 150000EF SWI +21 349 mfree(apz7); \ 000002F8 0900A0E1 MOV R0,R9 \ 000002FC 150000EF SWI +21 350 mfree(apz8); \ 00000300 0A00A0E1 MOV R0,R10 \ 00000304 150000EF SWI +21 351 char p2[]="day"; \ 00000308 0C139FE5 LDR R1,??save_file_4+0x4 ;; `?` \ 0000030C 14008DE2 ADD R0,SP,#+20 \ 00000310 002091E5 LDR R2,[R1, #0] \ 00000314 002080E5 STR R2,[R0, #+0] 352 char *s,*s1,*s2; 353 int len, len_beg, h, len_end, len_end2; 354 if((strlen(p1)>=8)&&(strlen(str2)>5)) \ 00000318 0500A0E1 MOV R0,R5 \ 0000031C 1B0000EF SWI +27 \ 00000320 080050E3 CMP R0,#+8 \ 00000324 B000003A BCC ??save_file_12 \ 00000328 0600A0E1 MOV R0,R6 \ 0000032C 1B0000EF SWI +27 \ 00000330 060050E3 CMP R0,#+6 \ 00000334 AC00003A BCC ??save_file_12 355 { 356 if((s1=strstr(p,p1))>0) \ 00000338 0510A0E1 MOV R1,R5 \ 0000033C 0400A0E1 MOV R0,R4 \ 00000340 180100EF SWI +280 \ 00000344 00B0B0E1 MOVS R11,R0 \ 00000348 0500A0E1 MOV R0,R5 \ 0000034C 7C00000A BEQ ??save_file_13 357 { 358 s1+=strlen(p1); \ 00000350 1B0000EF SWI +27 \ 00000354 0BB080E0 ADD R11,R0,R11 359 if((s2=strstr(s1,p2))>0) \ 00000358 14108DE2 ADD R1,SP,#+20 \ 0000035C 0B00A0E1 MOV R0,R11 \ 00000360 180100EF SWI +280 \ 00000364 00008DE5 STR R0,[SP, #+0] \ 00000368 000050E3 CMP R0,#+0 \ 0000036C A700000A BEQ ??save_file_14 360 { 361 len_beg=p-s1; 362 len_beg=-(len_beg); 363 if(save_m==2) len_beg=len_beg-strlen(p1)-3; \ 00000370 ........ LDR R7,??DataTable36 ;; save_m \ 00000374 0B0044E0 SUB R0,R4,R11 \ 00000378 00A060E2 RSB R10,R0,#+0 \ 0000037C 000097E5 LDR R0,[R7, #+0] \ 00000380 020050E3 CMP R0,#+2 \ 00000384 0300001A BNE ??save_file_15 \ 00000388 0500A0E1 MOV R0,R5 \ 0000038C 1B0000EF SWI +27 \ 00000390 00004AE0 SUB R0,R10,R0 \ 00000394 03A040E2 SUB R10,R0,#+3 364 char *txt_beg=malloc(len_beg+1); \ ??save_file_15: \ 00000398 01008AE2 ADD R0,R10,#+1 \ 0000039C 140000EF SWI +20 \ 000003A0 0080A0E1 MOV R8,R0 365 h=0; \ 000003A4 0000A0E3 MOV R0,#+0 \ 000003A8 01005AE3 CMP R10,#+1 \ 000003AC 030000AA BGE ??save_file_16 \ 000003B0 040000EA B ??save_file_17 366 while(h` \ 00000470 0A00A0E1 MOV R0,R10 \ 00000474 01002DE9 PUSH {R0} \ 00000478 0630A0E1 MOV R3,R6 \ 0000047C 0820A0E1 MOV R2,R8 \ 00000480 0900A0E1 MOV R0,R9 \ 00000484 160000EF SWI +22 \ 00000488 04D08DE2 ADD SP,SP,#+4 388 if (save_m==2) \ ??save_file_22: \ 0000048C 000097E5 LDR R0,[R7, #+0] \ 00000490 020050E3 CMP R0,#+2 \ 00000494 0400001A BNE ??save_file_23 389 sprintf(text, "%s%s", txt_beg, s); \ 00000498 ........ LDR R1,??DataTable27 ;; `?` \ 0000049C 0A30A0E1 MOV R3,R10 \ 000004A0 0820A0E1 MOV R2,R8 \ 000004A4 0900A0E1 MOV R0,R9 \ 000004A8 160000EF SWI +22 390 hFile = fopen(rms_path,A_ReadWrite+A_Create+A_Truncate+ A_BIN,P_READ+P_WRITE, &io_error); \ ??save_file_23: \ 000004AC ........ LDR R0,??DataTable29 ;; rms_path \ 000004B0 04308DE2 ADD R3,SP,#+4 \ 000004B4 602FA0E3 MOV R2,#+384 \ 000004B8 0210A0E3 MOV R1,#+2 \ 000004BC 831C81E3 ORR R1,R1,#0x8300 \ 000004C0 0A0000EF SWI +10 \ 000004C4 00008DE5 STR R0,[SP, #+0] 391 if(hFile!=-1) \ 000004C8 00009DE5 LDR R0,[SP, #+0] \ 000004CC 010070E3 CMN R0,#+1 \ 000004D0 0900000A BEQ ??save_file_24 392 { 393 fwrite(hFile, text, strlen(text), &io_error); \ 000004D4 0900A0E1 MOV R0,R9 \ 000004D8 1B0000EF SWI +27 \ 000004DC 0020A0E1 MOV R2,R0 \ 000004E0 00009DE5 LDR R0,[SP, #+0] \ 000004E4 04308DE2 ADD R3,SP,#+4 \ 000004E8 0910A0E1 MOV R1,R9 \ 000004EC 0C0000EF SWI +12 394 fclose(hFile, &io_error); \ 000004F0 00009DE5 LDR R0,[SP, #+0] \ 000004F4 04108DE2 ADD R1,SP,#+4 \ 000004F8 0D0000EF SWI +13 395 } 396 mfree(s); \ ??save_file_24: \ 000004FC 0A00A0E1 MOV R0,R10 \ 00000500 150000EF SWI +21 397 mfree(str2); \ 00000504 0600A0E1 MOV R0,R6 \ 00000508 150000EF SWI +21 398 mfree(txt_beg); \ 0000050C 0800A0E1 MOV R0,R8 \ 00000510 150000EF SWI +21 399 mfree(p); \ 00000514 0400A0E1 MOV R0,R4 \ 00000518 150000EF SWI +21 400 mfree(p1); \ 0000051C 0500A0E1 MOV R0,R5 \ 00000520 150000EF SWI +21 401 mfree(text); \ 00000524 0900A0E1 MOV R0,R9 \ 00000528 150000EF SWI +21 402 if(save_m==2) \ 0000052C 000097E5 LDR R0,[R7, #+0] \ 00000530 020050E3 CMP R0,#+2 \ 00000534 E8109F15 LDRNE R1,??save_file_4+0xC ;; `?` 403 ShowMSG(1,(int)"Deleted data!"); \ 00000538 E8109F05 LDREQ R1,??save_file_4+0x10 ;; `?` \ 0000053C 310000EA B ??save_file_25 \ ??save_file_3: \ 00000540 25733B00 DC8 "%s;" 404 else 405 ShowMSG(1,(int)"Saved new data!"); 406 } 407 } 408 else 409 { 410 char *text2=malloc(strlen(p1)+strlen(str2)+10); \ ??save_file_13: \ 00000544 1B0000EF SWI +27 \ 00000548 0070A0E1 MOV R7,R0 \ 0000054C 0600A0E1 MOV R0,R6 \ 00000550 1B0000EF SWI +27 \ 00000554 070080E0 ADD R0,R0,R7 \ 00000558 0A0080E2 ADD R0,R0,#+10 \ 0000055C 140000EF SWI +20 411 sprintf(text2, "%s;%s day", p1,str2); \ 00000560 C4109FE5 LDR R1,??save_file_4+0x14 ;; `?` \ 00000564 0070A0E1 MOV R7,R0 \ 00000568 0630A0E1 MOV R3,R6 \ 0000056C 0520A0E1 MOV R2,R5 \ 00000570 160000EF SWI +22 412 hFile = fopen(rms_path,A_ReadWrite + A_Create + A_Append + A_BIN,P_READ+P_WRITE, &io_error); \ 00000574 ........ LDR R0,??DataTable29 ;; rms_path \ 00000578 04308DE2 ADD R3,SP,#+4 \ 0000057C 602FA0E3 MOV R2,#+384 \ 00000580 0A10A0E3 MOV R1,#+10 \ 00000584 811C81E3 ORR R1,R1,#0x8100 \ 00000588 0A0000EF SWI +10 \ 0000058C 00008DE5 STR R0,[SP, #+0] 413 if(hFile!=-1) \ 00000590 00009DE5 LDR R0,[SP, #+0] \ 00000594 010070E3 CMN R0,#+1 \ 00000598 0900000A BEQ ??save_file_26 414 { 415 fwrite(hFile, text2, strlen(text2), &io_error); \ 0000059C 0700A0E1 MOV R0,R7 \ 000005A0 1B0000EF SWI +27 \ 000005A4 04308DE2 ADD R3,SP,#+4 \ 000005A8 0020A0E1 MOV R2,R0 \ 000005AC 00009DE5 LDR R0,[SP, #+0] \ 000005B0 0710A0E1 MOV R1,R7 \ 000005B4 0C0000EF SWI +12 416 fclose(hFile, &io_error); \ 000005B8 00009DE5 LDR R0,[SP, #+0] \ 000005BC 04108DE2 ADD R1,SP,#+4 \ 000005C0 0D0000EF SWI +13 417 } 418 mfree(text2); \ ??save_file_26: \ 000005C4 0700A0E1 MOV R0,R7 \ 000005C8 150000EF SWI +21 419 mfree(p1); \ 000005CC 0500A0E1 MOV R0,R5 \ 000005D0 150000EF SWI +21 420 mfree(str2); \ 000005D4 0600A0E1 MOV R0,R6 \ 000005D8 150000EF SWI +21 421 mfree(p); \ 000005DC 0400A0E1 MOV R0,R4 \ 000005E0 150000EF SWI +21 422 ShowMSG(1,(int)"Added new day!"); \ 000005E4 44109FE5 LDR R1,??save_file_4+0x18 ;; `?` \ 000005E8 060000EA B ??save_file_25 423 } 424 } 425 else 426 { 427 mfree(p); \ ??save_file_12: \ 000005EC 0400A0E1 MOV R0,R4 \ 000005F0 150000EF SWI +21 428 mfree(p1); \ 000005F4 0500A0E1 MOV R0,R5 \ 000005F8 150000EF SWI +21 429 mfree(str2); \ 000005FC 0600A0E1 MOV R0,R6 \ 00000600 150000EF SWI +21 430 ShowMSG(1,(int)"Intput date and app.!!"); \ 00000604 28109FE5 LDR R1,??save_file_4+0x1C ;; `?` \ ??save_file_25: \ 00000608 0100A0E3 MOV R0,#+1 \ 0000060C 480100EF SWI +328 431 } 432 } \ ??save_file_14: \ 00000610 6CD08DE2 ADD SP,SP,#+108 ;; stack cleaning \ 00000614 F08FBDE8 POP {R4-R11,PC} ;; return \ ??save_file_4: \ 00000618 ........ DC32 `?` \ 0000061C ........ DC32 `?` \ 00000620 ........ DC32 `?` \ 00000624 ........ DC32 `?` \ 00000628 ........ DC32 `?` \ 0000062C ........ DC32 `?` \ 00000630 ........ DC32 `?` \ 00000634 ........ DC32 `?` 433 \ In segment CODE, align 4, keep-with-next 434 void OnRedraw(MAIN_GUI *data) 435 { 436 437 } \ OnRedraw: \ 00000000 1EFF2FE1 BX LR ;; return 438 \ In segment CODE, align 4, keep-with-next 439 void onCreate(MAIN_GUI *data, void *(*malloc_adr)(int)) 440 { 441 data->gui.state=1; \ onCreate: \ 00000000 0110A0E3 MOV R1,#+1 \ 00000004 0C10C0E5 STRB R1,[R0, #+12] 442 } \ 00000008 1EFF2FE1 BX LR ;; return 443 \ In segment CODE, align 4, keep-with-next 444 void onClose(MAIN_GUI *data, void (*mfree_adr)(void *)) 445 { 446 data->gui.state=0; \ onClose: \ 00000000 0010A0E3 MOV R1,#+0 \ 00000004 0C10C0E5 STRB R1,[R0, #+12] 447 } \ 00000008 1EFF2FE1 BX LR ;; return 448 \ In segment CODE, align 4, keep-with-next 449 void onFocus(MAIN_GUI *data, void *(*malloc_adr)(int), void (*mfree_adr)(void *)) 450 { \ onFocus: \ 00000000 00402DE9 PUSH {LR} 451 data->gui.state=2; \ 00000004 0210A0E3 MOV R1,#+2 \ 00000008 0C10C0E5 STRB R1,[R0, #+12] 452 DisableIDLETMR(); \ 0000000C 7F0100EF SWI +383 453 } \ 00000010 0080BDE8 POP {PC} ;; return 454 \ In segment CODE, align 4, keep-with-next 455 void onUnfocus(MAIN_GUI *data, void (*mfree_adr)(void *)) 456 { 457 if (data->gui.state!=2) return; \ onUnfocus: \ 00000000 0C10D0E5 LDRB R1,[R0, #+12] \ 00000004 020051E3 CMP R1,#+2 458 data->gui.state=1; \ 00000008 0110A003 MOVEQ R1,#+1 \ 0000000C 0C10C005 STRBEQ R1,[R0, #+12] 459 } \ 00000010 1EFF2FE1 BX LR ;; return 460 \ In segment CODE, align 4, keep-with-next 461 int OnKey(MAIN_GUI *data, GUI_MSG *msg) 462 { \ OnKey: \ 00000000 00402DE9 PUSH {LR} 463 DirectRedrawGUI(); \ 00000004 3F0100EF SWI +319 464 if (msg->gbsmsg->msg==KEY_DOWN) 465 { 466 switch(msg->gbsmsg->submess) 467 { 468 #ifndef NEWSGOLD 469 case RED_BUTTON: 470 471 return(1); 472 #endif 473 } 474 } 475 return(0); \ 00000008 0000A0E3 MOV R0,#+0 \ 0000000C 0080BDE8 POP {PC} ;; return 476 } 477 478 extern void kill_data(void *p, void (*func_p)(void *)); \ In segment CODE, align 4, keep-with-next 479 void method7(MAIN_GUI *data, void (*mfree_adr)(void *)) 480 { 481 kill_data(data, mfree_adr); \ method7: \ 00000000 ........ _BF kill_data,??kill_data??rA ;; tailcall 482 } 483 \ In segment CODE, align 4, keep-with-next 484 int method8(void){return(0);} \ method8: \ 00000000 0000A0E3 MOV R0,#+0 \ 00000004 1EFF2FE1 BX LR ;; return \ In segment CODE, align 4, keep-with-next 485 int method9(void){return(0);} \ method9: \ 00000000 0000A0E3 MOV R0,#+0 \ 00000004 1EFF2FE1 BX LR ;; return 486 \ In segment DATA_C, align 4, align-sorted 487 const void * const gui_methods[11]={ \ gui_methods: \ 00000000 ............ DC32 OnRedraw, onCreate, onClose, onFocus, onUnfocus, OnKey, 0H \ ............ \ ............ \ ............ \ 00000000 \ 0000001C ............ DC32 method7, method8, method9, 0H \ ............ \ 00000000 488 (void *)OnRedraw, 489 (void *)onCreate, 490 (void *)onClose, 491 (void *)onFocus, 492 (void *)onUnfocus, 493 (void *)OnKey, 494 0, 495 (void *)method7, 496 (void *)method8, 497 (void *)method9, 498 0 499 }; 500 \ In segment DATA_C, align 4, align-sorted 501 const RECT Canvas={0,0,0,0}; \ Canvas: \ 00000000 000000000000 DC16 0, 0, 0, 0 \ 0000 \ In segment CODE, align 4, keep-with-next 502 void maincsm_oncreate(CSM_RAM *data) 503 { \ maincsm_oncreate: \ 00000000 70402DE9 PUSH {R4-R6,LR} \ 00000004 0040A0E1 MOV R4,R0 504 MAIN_GUI *main_gui=malloc(sizeof(MAIN_GUI)); \ 00000008 4000A0E3 MOV R0,#+64 \ 0000000C 140000EF SWI +20 \ 00000010 0050A0E1 MOV R5,R0 505 MAIN_CSM*csm=(MAIN_CSM*)data; 506 zeromem(main_gui,sizeof(MAIN_GUI)); \ 00000014 4010A0E3 MOV R1,#+64 \ 00000018 1D0100EF SWI +285 507 patch_rect((RECT*)&Canvas,0,0,ScreenW()-1,ScreenH()-1); \ 0000001C 898100EF SWI +33161 \ 00000020 0060A0E1 MOV R6,R0 \ 00000024 888100EF SWI +33160 \ 00000028 48209FE5 LDR R2,??maincsm_oncreate_0 ;; Canvas \ 0000002C 010040E2 SUB R0,R0,#+1 \ 00000030 B400C2E1 STRH R0,[R2, #+4] 508 main_gui->gui.canvas=(void *)(&Canvas); 509 main_gui->gui.methods=(void *)gui_methods; \ 00000034 40009FE5 LDR R0,??maincsm_oncreate_0+0x4 ;; gui_methods \ 00000038 011046E2 SUB R1,R6,#+1 \ 0000003C 0060A0E3 MOV R6,#+0 \ 00000040 006082E5 STR R6,[R2, #+0] \ 00000044 B610C2E1 STRH R1,[R2, #+6] \ 00000048 002085E5 STR R2,[R5, #+0] \ 0000004C 040085E5 STR R0,[R5, #+4] 510 main_gui->gui.item_ll.data_mfree=(void (*)(void *))mfree_adr(); \ 00000050 158000EF SWI +32789 \ 00000054 200085E5 STR R0,[R5, #+32] 511 csm->csm.state=0; \ 00000058 106084E5 STR R6,[R4, #+16] 512 csm->csm.unk1=0; \ 0000005C 146084E5 STR R6,[R4, #+20] 513 csm->gui_id=CreateGUI(main_gui); \ 00000060 0500A0E1 MOV R0,R5 \ 00000064 370100EF SWI +311 \ 00000068 280084E5 STR R0,[R4, #+40] 514 void create_ed(); 515 SUBPROC((void *)create_ed); \ 0000006C 0C009FE5 LDR R0,??maincsm_oncreate_0+0x8 ;; create_ed \ 00000070 710100EF SWI +369 516 } \ 00000074 7080BDE8 POP {R4-R6,PC} ;; return \ ??maincsm_oncreate_0: \ 00000078 ........ DC32 Canvas \ 0000007C ........ DC32 gui_methods \ 00000080 ........ DC32 create_ed 517 \ In segment CODE, align 4, keep-with-next 518 void ElfKiller(void) 519 { \ ElfKiller: \ 00000000 00402DE9 PUSH {LR} 520 extern void *ELF_BEGIN; 521 kill_data(&ELF_BEGIN,(void (*)(void *))mfree_adr()); \ 00000004 158000EF SWI +32789 \ 00000008 0010A0E1 MOV R1,R0 \ 0000000C 04009FE5 LDR R0,??ElfKiller_0 ;; ELF_BEGIN \ 00000010 0040BDE8 POP {LR} ;; Pop \ 00000014 ........ _BF kill_data,??kill_data??rA ;; tailcall \ ??ElfKiller_0: \ 00000018 ........ DC32 ELF_BEGIN 522 } 523 \ In segment CODE, align 4, keep-with-next 524 void maincsm_onclose(CSM_RAM *csm) 525 { 526 SUBPROC((void *)ElfKiller); \ maincsm_onclose: \ 00000000 08009FE5 LDR R0,??maincsm_onclose_0 ;; ElfKiller \ 00000004 00402DE9 PUSH {LR} \ 00000008 710100EF SWI +369 527 } \ 0000000C 0080BDE8 POP {PC} ;; return \ ??maincsm_onclose_0: \ 00000010 ........ DC32 ElfKiller 528 \ In segment CODE, align 4, keep-with-next 529 int maincsm_onmessage(CSM_RAM *data, GBS_MSG *msg) 530 { 531 MAIN_CSM *csm=(MAIN_CSM*)data; 532 if ((msg->msg==MSG_GUI_DESTROYED)&&((int)msg->data0==csm->gui_id)) \ 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 \ 00000014 0C1091E5 LDR R1,[R1, #+12] \ 00000018 282090E5 LDR R2,[R0, #+40] \ 0000001C 020051E1 CMP R1,R2 533 { 534 csm->csm.state=-3; \ 00000020 0210E003 MVNEQ R1,#+2 \ 00000024 10108005 STREQ R1,[R0, #+16] 535 } 536 return(1); \ ??maincsm_onmessage_0: \ 00000028 0100A0E3 MOV R0,#+1 \ 0000002C 1EFF2FE1 BX LR ;; return 537 } 538 539 const struct 540 { 541 CSM_DESC maincsm; 542 WSHDR maincsm_name; \ In segment DATA_C, align 4, align-sorted 543 }MAINCSM = \ MAINCSM: \ 00000000 ............ DC32 maincsm_onmessage, maincsm_oncreate, 0, 0, 0, 0, maincsm_onclose \ ....00000000 \ 000000000000 \ 000000000000 \ ........ \ 0000001C 2C0000000100 DC32 44, 1, minus11, maincsm_name_body, 55AACCCCH, 3333AA55H, 0 \ 0000........ \ ........CCCC \ AA5555AA3333 \ 00000000 \ 00000038 8B00 DC16 139 \ 0000003A 0000 DC8 0, 0 544 { 545 { 546 maincsm_onmessage, 547 maincsm_oncreate, 548 #ifdef NEWSGOLD 549 0, 550 0, 551 0, 552 0, 553 #endif 554 maincsm_onclose, 555 sizeof(MAIN_CSM), 556 1, 557 &minus11 558 }, 559 { 560 maincsm_name_body, 561 NAMECSM_MAGIC1, 562 NAMECSM_MAGIC2, 563 0x0, 564 139 565 } 566 }; 567 \ In segment CODE, align 4, keep-with-next 568 void UpdateCSMname(void) 569 { 570 wsprintf((WSHDR *)(&MAINCSM.maincsm_name),"MRS Editor 0.5 - (c)Evilfox"); \ UpdateCSMname: \ 00000000 0C109FE5 LDR R1,??UpdateCSMname_0 ;; `?` \ 00000004 0C009FE5 LDR R0,??UpdateCSMname_0+0x4 ;; MAINCSM + 40 \ 00000008 00402DE9 PUSH {LR} \ 0000000C 240100EF SWI +292 571 } \ 00000010 0080BDE8 POP {PC} ;; return \ ??UpdateCSMname_0: \ 00000014 ........ DC32 `?` \ 00000018 ........ DC32 MAINCSM + 40 572 \ In segment CODE, align 4, keep-with-next 573 int main() 574 { \ main: \ 00000000 00402DE9 PUSH {LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 575 InitConfig(); \ 00000008 ........ _BLF InitConfig,??InitConfig??rA 576 char dummy[sizeof(MAIN_CSM)]; 577 UpdateCSMname(); \ 0000000C ........ BL UpdateCSMname 578 LockSched(); \ 00000010 460100EF SWI +326 579 MAINCSM_ID=CreateCSM(&MAINCSM.maincsm,dummy,0); \ 00000014 34009FE5 LDR R0,??main_0 ;; MAINCSM \ 00000018 0020A0E3 MOV R2,#+0 \ 0000001C 0D10A0E1 MOV R1,SP \ 00000020 070100EF SWI +263 \ 00000024 ........ LDR R1,??DataTable38 ;; MAINCSM_ID \ 00000028 000081E5 STR R0,[R1, #+0] 580 UnlockSched(); \ 0000002C 470100EF SWI +327 581 sprintf(rms_path, "%sfile.mrs", rms_file); \ 00000030 1C209FE5 LDR R2,??main_0+0x4 ;; rms_file \ 00000034 1C109FE5 LDR R1,??main_0+0x8 ;; `?` \ 00000038 ........ LDR R0,??DataTable31 ;; rms_path \ 0000003C 160000EF SWI +22 582 Check_if_is_file(); \ 00000040 ........ BL Check_if_is_file 583 return 0; \ 00000044 0000A0E3 MOV R0,#+0 \ 00000048 2CD08DE2 ADD SP,SP,#+44 \ 0000004C 0080BDE8 POP {PC} ;; return \ ??main_0: \ 00000050 ........ DC32 MAINCSM \ 00000054 ........ DC32 rms_file \ 00000058 ........ DC32 `?` 584 } 585 586 #pragma inline 587 void patch_header(const HEADER_DESC* head) 588 { 589 ((HEADER_DESC*)head)->rc.x=0; 590 ((HEADER_DESC*)head)->rc.y=YDISP; 591 ((HEADER_DESC*)head)->rc.x2=ScreenW()-1; 592 ((HEADER_DESC*)head)->rc.y2=HeaderH()+YDISP-1; 593 } 594 #pragma inline 595 void patch_input(const INPUTDIA_DESC* inp) 596 { 597 ((INPUTDIA_DESC*)inp)->rc.x=0; 598 ((INPUTDIA_DESC*)inp)->rc.y=HeaderH()+1+YDISP; 599 ((INPUTDIA_DESC*)inp)->rc.x2=ScreenW()-1; 600 ((INPUTDIA_DESC*)inp)->rc.y2=ScreenH()-SoftkeyH()-1; 601 } 602 \ In segment CODE, align 4, keep-with-next 603 void edchat_ghook(GUI *data, int cmd) 604 { \ edchat_ghook: \ 00000000 00402DE9 PUSH {LR} 605 static SOFTKEY_DESC skk={0x0018, 0x0000,(int)"Menu"}; 606 if (cmd==7) \ 00000004 070051E3 CMP R1,#+7 \ 00000008 0080BD18 POPNE {PC} 607 SetSoftKey(data,&skk,SET_SOFT_KEY_N); \ 0000000C 08109FE5 LDR R1,??edchat_ghook_0 ;; ??skk \ 00000010 0020A0E3 MOV R2,#+0 \ 00000014 680100EF SWI +360 608 } \ 00000018 0080BDE8 POP {PC} ;; return \ ??edchat_ghook_0: \ 0000001C ........ DC32 ??skk \ In segment DATA_I, align 4, align-sorted \ ??skk: \ 00000000 DS8 8 \ 00000008 REQUIRE `?` 609 \ In segment DATA_Z, align 4, align-sorted 610 int itemnum, wd_id; \ itemnum: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted \ wd_id: \ 00000000 DS8 4 611 \ In segment CODE, align 4, keep-with-next 612 int edchat_onkey(GUI *data, GUI_MSG *msg) 613 { \ edchat_onkey: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 0140A0E1 MOV R4,R1 614 ggui=data; \ 00000008 ........ LDR R1,??DataTable32 ;; ggui \ 0000000C 000081E5 STR R0,[R1, #+0] 615 616 void create_ed(void); 617 618 switch (msg->gbsmsg->submess) 619 { 620 621 #ifndef NEWSGOLD 622 case RED_BUTTON: 623 624 CloseCSM(MAINCSM_ID); 625 break; 626 #endif 627 628 case GREEN_BUTTON: 629 // SUBPROC((void *)open_file); 630 break; 631 } 632 if (msg->keys==0x18) \ 00000010 F200D4E1 LDRSH R0,[R4, #+2] \ 00000014 180050E3 CMP R0,#+24 \ 00000018 0000001A BNE ??edchat_onkey_0 633 { 634 void MMenu(); 635 MMenu(); \ 0000001C ........ BL MMenu 636 } 637 if (msg->keys==0x1) \ ??edchat_onkey_0: \ 00000020 F200D4E1 LDRSH R0,[R4, #+2] \ 00000024 010050E3 CMP R0,#+1 \ 00000028 0200001A BNE ??edchat_onkey_1 638 { 639 CloseCSM(MAINCSM_ID); \ 0000002C ........ LDR R0,??DataTable38 ;; MAINCSM_ID \ 00000030 000090E5 LDR R0,[R0, #+0] \ 00000034 FC0100EF SWI +508 640 } 641 return(0); \ ??edchat_onkey_1: \ 00000038 0000A0E3 MOV R0,#+0 \ 0000003C 1080BDE8 POP {R4,PC} ;; return 642 } 643 \ In segment CODE, align 4, keep-with-next 644 void edchat_locret(void){}; \ edchat_locret: \ 00000000 1EFF2FE1 BX LR ;; return 645 \ In segment DATA_I, align 4, align-sorted 646 HEADER_DESC edchat_hdr={0,0,0,0,NULL,(int)"MRS Editor 0.6",LGP_NULL}; \ edchat_hdr: \ 00000000 DS8 20 \ 00000014 REQUIRE `?` 647 \ In segment DATA_C, align 4, align-sorted 648 static const SOFTKEY_DESC menu_sk[] = \ menu_sk: \ 00000000 18000000 DC16 24, 0 \ 00000004 ........ DC32 `?` \ 00000008 01000000 DC16 1, 0 \ 0000000C ........ DC32 `?` \ 00000010 3D000000 DC16 61, 0 \ 00000014 FBC0FF7F DC32 2147467515 649 { 650 {0x0018, 0x0000, (int)"Options"}, 651 {0x0001, 0x0000, (int)"Close"}, 652 {0x003D, 0x0000, (int)LGP_DOIT_PIC} 653 }; 654 \ In segment DATA_C, align 4, align-sorted 655 const SOFTKEYSTAB menu_skt = \ menu_skt: \ 00000000 ........0000 DC32 menu_sk, 0 \ 0000 656 { 657 menu_sk, 0 658 }; 659 \ In segment DATA_C, align 4, align-sorted 660 static const INPUTDIA_DESC edchat_desc = \ edchat_desc: \ 00000000 01000000.... DC32 1, edchat_onkey, edchat_ghook, edchat_locret, 0, menu_skt \ ............ \ ........0000 \ 0000........ \ 00000018 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000020 0B0000006400 DC32 11, 100, 101, 0, 0, 1073741824 \ 000065000000 \ 000000000000 \ 000000000040 661 { 662 1, 663 edchat_onkey, 664 edchat_ghook, 665 (void *)edchat_locret, 666 0, 667 &menu_skt, 668 {0,NULL,NULL,NULL}, 669 FONT_SMALL, 670 100, 671 101, 672 0, 673 // 0x00000001 - Выровнять по правому краю 674 // 0x00000002 - Выровнять по центру 675 // 0x00000004 - Инверсия знакомест 676 // 0x00000008 - UnderLine 677 // 0x00000020 - Не переносить слова 678 // 0x00000200 - bold 679 0, 680 // 0x00000002 - ReadOnly 681 // 0x00000004 - Не двигается курсор 682 // 0x40000000 - Поменять местами софт-кнопки 683 0x40000000 684 }; 685 686 \ In segment CODE, align 4, keep-with-next 687 void create_ed(void) 688 { \ create_ed: \ 00000000 F0402DE9 PUSH {R4-R7,LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 689 690 EDITCONTROL ec; 691 void *ma=malloc_adr(); \ 00000008 148000EF SWI +32788 \ 0000000C 0050A0E1 MOV R5,R0 692 void *eq; 693 WSHDR *ws; 694 PrepareEditControl(&ec); \ 00000010 0D00A0E1 MOV R0,SP \ 00000014 640100EF SWI +356 695 eq=AllocEQueue(ma,mfree_adr()); \ 00000018 158000EF SWI +32789 \ 0000001C 0010A0E1 MOV R1,R0 \ 00000020 0500A0E1 MOV R0,R5 \ 00000024 630100EF SWI +355 \ 00000028 0040A0E1 MOV R4,R0 696 ws=AllocWS(50); \ 0000002C 3200A0E3 MOV R0,#+50 \ 00000030 250100EF SWI +293 \ 00000034 0060A0E1 MOV R6,R0 697 ConstructEditControl(&ec,1,0,0,12); \ 00000038 0C00A0E3 MOV R0,#+12 \ 0000003C 01002DE9 PUSH {R0} \ 00000040 0030A0E3 MOV R3,#+0 \ 00000044 0020A0E3 MOV R2,#+0 \ 00000048 0110A0E3 MOV R1,#+1 \ 0000004C 04008DE2 ADD R0,SP,#+4 \ 00000050 650100EF SWI +357 698 AddEditControlToEditQend(eq,&ec,ma); \ 00000054 0520A0E1 MOV R2,R5 \ 00000058 04108DE2 ADD R1,SP,#+4 \ 0000005C 0400A0E1 MOV R0,R4 \ 00000060 660100EF SWI +358 699 700 utf8_2ws(ws, "Day.month.year:",20); \ 00000064 5C149FE5 LDR R1,??create_ed_0 ;; `?` \ 00000068 1420A0E3 MOV R2,#+20 \ 0000006C 0600A0E1 MOV R0,R6 \ 00000070 E30100EF SWI +483 701 ConstructEditControl(&ec,1,0x40,ws,wslen(ws)); \ 00000074 000096E5 LDR R0,[R6, #+0] \ 00000078 0630A0E1 MOV R3,R6 \ 0000007C B000D0E1 LDRH R0,[R0, #+0] \ 00000080 4020A0E3 MOV R2,#+64 \ 00000084 0110A0E3 MOV R1,#+1 \ 00000088 01002DE9 PUSH {R0} \ 0000008C 08008DE2 ADD R0,SP,#+8 \ 00000090 650100EF SWI +357 702 AddEditControlToEditQend(eq,&ec,ma); \ 00000094 0520A0E1 MOV R2,R5 \ 00000098 08108DE2 ADD R1,SP,#+8 \ 0000009C 0400A0E1 MOV R0,R4 \ 000000A0 660100EF SWI +358 703 704 ConstructEditControl(&ec,3,0x40,0,10); \ 000000A4 0A00A0E3 MOV R0,#+10 \ 000000A8 01002DE9 PUSH {R0} \ 000000AC 0030A0E3 MOV R3,#+0 \ 000000B0 4020A0E3 MOV R2,#+64 \ 000000B4 0310A0E3 MOV R1,#+3 \ 000000B8 0C008DE2 ADD R0,SP,#+12 \ 000000BC 650100EF SWI +357 705 AddEditControlToEditQend(eq,&ec,ma); \ 000000C0 0520A0E1 MOV R2,R5 \ 000000C4 0C108DE2 ADD R1,SP,#+12 \ 000000C8 0400A0E1 MOV R0,R4 \ 000000CC 660100EF SWI +358 706 707 utf8_2ws(ws, "Appointments1:",20); \ 000000D0 F4139FE5 LDR R1,??create_ed_0+0x4 ;; `?` \ 000000D4 1420A0E3 MOV R2,#+20 \ 000000D8 0600A0E1 MOV R0,R6 \ 000000DC E30100EF SWI +483 708 ConstructEditControl(&ec,1,0x40,ws,wslen(ws)); \ 000000E0 000096E5 LDR R0,[R6, #+0] \ 000000E4 0630A0E1 MOV R3,R6 \ 000000E8 B000D0E1 LDRH R0,[R0, #+0] \ 000000EC 4020A0E3 MOV R2,#+64 \ 000000F0 0110A0E3 MOV R1,#+1 \ 000000F4 01002DE9 PUSH {R0} \ 000000F8 10008DE2 ADD R0,SP,#+16 \ 000000FC 650100EF SWI +357 709 AddEditControlToEditQend(eq,&ec,ma); \ 00000100 0520A0E1 MOV R2,R5 \ 00000104 10108DE2 ADD R1,SP,#+16 \ 00000108 0400A0E1 MOV R0,R4 \ 0000010C 660100EF SWI +358 710 711 ConstructEditControl(&ec,3,0x40,0,255); \ 00000110 FF00A0E3 MOV R0,#+255 \ 00000114 01002DE9 PUSH {R0} \ 00000118 0030A0E3 MOV R3,#+0 \ 0000011C 4020A0E3 MOV R2,#+64 \ 00000120 0310A0E3 MOV R1,#+3 \ 00000124 14008DE2 ADD R0,SP,#+20 \ 00000128 650100EF SWI +357 712 AddEditControlToEditQend(eq,&ec,ma); \ 0000012C 0520A0E1 MOV R2,R5 \ 00000130 14108DE2 ADD R1,SP,#+20 \ 00000134 0400A0E1 MOV R0,R4 \ 00000138 660100EF SWI +358 713 714 utf8_2ws(ws, "Appointments2:",20); \ 0000013C 8C139FE5 LDR R1,??create_ed_0+0x8 ;; `?` \ 00000140 1420A0E3 MOV R2,#+20 \ 00000144 0600A0E1 MOV R0,R6 \ 00000148 E30100EF SWI +483 715 ConstructEditControl(&ec,1,0x40,ws,wslen(ws)); \ 0000014C 000096E5 LDR R0,[R6, #+0] \ 00000150 0630A0E1 MOV R3,R6 \ 00000154 B000D0E1 LDRH R0,[R0, #+0] \ 00000158 4020A0E3 MOV R2,#+64 \ 0000015C 0110A0E3 MOV R1,#+1 \ 00000160 01002DE9 PUSH {R0} \ 00000164 18008DE2 ADD R0,SP,#+24 \ 00000168 650100EF SWI +357 716 AddEditControlToEditQend(eq,&ec,ma); \ 0000016C 0520A0E1 MOV R2,R5 \ 00000170 18108DE2 ADD R1,SP,#+24 \ 00000174 0400A0E1 MOV R0,R4 \ 00000178 660100EF SWI +358 717 718 ConstructEditControl(&ec,3,0x40,0,255); \ 0000017C FF00A0E3 MOV R0,#+255 \ 00000180 01002DE9 PUSH {R0} \ 00000184 0030A0E3 MOV R3,#+0 \ 00000188 4020A0E3 MOV R2,#+64 \ 0000018C 0310A0E3 MOV R1,#+3 \ 00000190 1C008DE2 ADD R0,SP,#+28 \ 00000194 650100EF SWI +357 719 AddEditControlToEditQend(eq,&ec,ma); \ 00000198 0520A0E1 MOV R2,R5 \ 0000019C 1C108DE2 ADD R1,SP,#+28 \ 000001A0 0400A0E1 MOV R0,R4 \ 000001A4 660100EF SWI +358 720 721 utf8_2ws(ws, "Appointments3:",20); \ 000001A8 24139FE5 LDR R1,??create_ed_0+0xC ;; `?` \ 000001AC 1420A0E3 MOV R2,#+20 \ 000001B0 0600A0E1 MOV R0,R6 \ 000001B4 E30100EF SWI +483 722 ConstructEditControl(&ec,1,0x40,ws,wslen(ws)); \ 000001B8 000096E5 LDR R0,[R6, #+0] \ 000001BC 0630A0E1 MOV R3,R6 \ 000001C0 B000D0E1 LDRH R0,[R0, #+0] \ 000001C4 4020A0E3 MOV R2,#+64 \ 000001C8 0110A0E3 MOV R1,#+1 \ 000001CC 01002DE9 PUSH {R0} \ 000001D0 20008DE2 ADD R0,SP,#+32 \ 000001D4 650100EF SWI +357 723 AddEditControlToEditQend(eq,&ec,ma); \ 000001D8 0520A0E1 MOV R2,R5 \ 000001DC 20108DE2 ADD R1,SP,#+32 \ 000001E0 0400A0E1 MOV R0,R4 \ 000001E4 660100EF SWI +358 724 725 ConstructEditControl(&ec,3,0x40,0,255); \ 000001E8 FF00A0E3 MOV R0,#+255 \ 000001EC 01002DE9 PUSH {R0} \ 000001F0 0030A0E3 MOV R3,#+0 \ 000001F4 4020A0E3 MOV R2,#+64 \ 000001F8 0310A0E3 MOV R1,#+3 \ 000001FC 24008DE2 ADD R0,SP,#+36 \ 00000200 650100EF SWI +357 \ 00000204 24D08DE2 ADD SP,SP,#+36 726 AddEditControlToEditQend(eq,&ec,ma); \ 00000208 0520A0E1 MOV R2,R5 \ 0000020C 0D10A0E1 MOV R1,SP \ 00000210 0400A0E1 MOV R0,R4 \ 00000214 660100EF SWI +358 727 728 utf8_2ws(ws, "Appointments4:",20); \ 00000218 B8129FE5 LDR R1,??create_ed_0+0x10 ;; `?` \ 0000021C 1420A0E3 MOV R2,#+20 \ 00000220 0600A0E1 MOV R0,R6 \ 00000224 E30100EF SWI +483 729 ConstructEditControl(&ec,1,0x40,ws,wslen(ws)); \ 00000228 000096E5 LDR R0,[R6, #+0] \ 0000022C 0630A0E1 MOV R3,R6 \ 00000230 B000D0E1 LDRH R0,[R0, #+0] \ 00000234 4020A0E3 MOV R2,#+64 \ 00000238 0110A0E3 MOV R1,#+1 \ 0000023C 01002DE9 PUSH {R0} \ 00000240 04008DE2 ADD R0,SP,#+4 \ 00000244 650100EF SWI +357 730 AddEditControlToEditQend(eq,&ec,ma); \ 00000248 0520A0E1 MOV R2,R5 \ 0000024C 04108DE2 ADD R1,SP,#+4 \ 00000250 0400A0E1 MOV R0,R4 \ 00000254 660100EF SWI +358 731 732 ConstructEditControl(&ec,3,0x40,0,255); \ 00000258 FF00A0E3 MOV R0,#+255 \ 0000025C 01002DE9 PUSH {R0} \ 00000260 0030A0E3 MOV R3,#+0 \ 00000264 4020A0E3 MOV R2,#+64 \ 00000268 0310A0E3 MOV R1,#+3 \ 0000026C 08008DE2 ADD R0,SP,#+8 \ 00000270 650100EF SWI +357 733 AddEditControlToEditQend(eq,&ec,ma); \ 00000274 0520A0E1 MOV R2,R5 \ 00000278 08108DE2 ADD R1,SP,#+8 \ 0000027C 0400A0E1 MOV R0,R4 \ 00000280 660100EF SWI +358 734 735 utf8_2ws(ws, "Appointments5:",20); \ 00000284 50129FE5 LDR R1,??create_ed_0+0x14 ;; `?` \ 00000288 1420A0E3 MOV R2,#+20 \ 0000028C 0600A0E1 MOV R0,R6 \ 00000290 E30100EF SWI +483 736 ConstructEditControl(&ec,1,0x40,ws,wslen(ws)); \ 00000294 000096E5 LDR R0,[R6, #+0] \ 00000298 0630A0E1 MOV R3,R6 \ 0000029C B000D0E1 LDRH R0,[R0, #+0] \ 000002A0 4020A0E3 MOV R2,#+64 \ 000002A4 0110A0E3 MOV R1,#+1 \ 000002A8 01002DE9 PUSH {R0} \ 000002AC 0C008DE2 ADD R0,SP,#+12 \ 000002B0 650100EF SWI +357 737 AddEditControlToEditQend(eq,&ec,ma); \ 000002B4 0520A0E1 MOV R2,R5 \ 000002B8 0C108DE2 ADD R1,SP,#+12 \ 000002BC 0400A0E1 MOV R0,R4 \ 000002C0 660100EF SWI +358 738 739 ConstructEditControl(&ec,3,0x40,0,255); \ 000002C4 FF00A0E3 MOV R0,#+255 \ 000002C8 01002DE9 PUSH {R0} \ 000002CC 0030A0E3 MOV R3,#+0 \ 000002D0 4020A0E3 MOV R2,#+64 \ 000002D4 0310A0E3 MOV R1,#+3 \ 000002D8 10008DE2 ADD R0,SP,#+16 \ 000002DC 650100EF SWI +357 740 AddEditControlToEditQend(eq,&ec,ma); \ 000002E0 0520A0E1 MOV R2,R5 \ 000002E4 10108DE2 ADD R1,SP,#+16 \ 000002E8 0400A0E1 MOV R0,R4 \ 000002EC 660100EF SWI +358 741 742 utf8_2ws(ws, "Appointments6:",20); \ 000002F0 E8119FE5 LDR R1,??create_ed_0+0x18 ;; `?` \ 000002F4 1420A0E3 MOV R2,#+20 \ 000002F8 0600A0E1 MOV R0,R6 \ 000002FC E30100EF SWI +483 743 ConstructEditControl(&ec,1,0x40,ws,wslen(ws)); \ 00000300 000096E5 LDR R0,[R6, #+0] \ 00000304 0630A0E1 MOV R3,R6 \ 00000308 B000D0E1 LDRH R0,[R0, #+0] \ 0000030C 4020A0E3 MOV R2,#+64 \ 00000310 0110A0E3 MOV R1,#+1 \ 00000314 01002DE9 PUSH {R0} \ 00000318 14008DE2 ADD R0,SP,#+20 \ 0000031C 650100EF SWI +357 744 AddEditControlToEditQend(eq,&ec,ma); \ 00000320 0520A0E1 MOV R2,R5 \ 00000324 14108DE2 ADD R1,SP,#+20 \ 00000328 0400A0E1 MOV R0,R4 \ 0000032C 660100EF SWI +358 745 746 ConstructEditControl(&ec,3,0x40,0,255); \ 00000330 FF00A0E3 MOV R0,#+255 \ 00000334 01002DE9 PUSH {R0} \ 00000338 0030A0E3 MOV R3,#+0 \ 0000033C 4020A0E3 MOV R2,#+64 \ 00000340 0310A0E3 MOV R1,#+3 \ 00000344 18008DE2 ADD R0,SP,#+24 \ 00000348 650100EF SWI +357 747 AddEditControlToEditQend(eq,&ec,ma); \ 0000034C 0520A0E1 MOV R2,R5 \ 00000350 18108DE2 ADD R1,SP,#+24 \ 00000354 0400A0E1 MOV R0,R4 \ 00000358 660100EF SWI +358 748 749 utf8_2ws(ws, "Appointments7:",20); \ 0000035C 80119FE5 LDR R1,??create_ed_0+0x1C ;; `?` \ 00000360 1420A0E3 MOV R2,#+20 \ 00000364 0600A0E1 MOV R0,R6 \ 00000368 E30100EF SWI +483 750 ConstructEditControl(&ec,1,0x40,ws,wslen(ws)); \ 0000036C 000096E5 LDR R0,[R6, #+0] \ 00000370 0630A0E1 MOV R3,R6 \ 00000374 B000D0E1 LDRH R0,[R0, #+0] \ 00000378 4020A0E3 MOV R2,#+64 \ 0000037C 0110A0E3 MOV R1,#+1 \ 00000380 01002DE9 PUSH {R0} \ 00000384 1C008DE2 ADD R0,SP,#+28 \ 00000388 650100EF SWI +357 751 AddEditControlToEditQend(eq,&ec,ma); \ 0000038C 0520A0E1 MOV R2,R5 \ 00000390 1C108DE2 ADD R1,SP,#+28 \ 00000394 0400A0E1 MOV R0,R4 \ 00000398 660100EF SWI +358 752 753 ConstructEditControl(&ec,3,0x40,0,255); \ 0000039C FF00A0E3 MOV R0,#+255 \ 000003A0 01002DE9 PUSH {R0} \ 000003A4 0030A0E3 MOV R3,#+0 \ 000003A8 4020A0E3 MOV R2,#+64 \ 000003AC 0310A0E3 MOV R1,#+3 \ 000003B0 20008DE2 ADD R0,SP,#+32 \ 000003B4 650100EF SWI +357 754 AddEditControlToEditQend(eq,&ec,ma); \ 000003B8 0520A0E1 MOV R2,R5 \ 000003BC 20108DE2 ADD R1,SP,#+32 \ 000003C0 0400A0E1 MOV R0,R4 \ 000003C4 660100EF SWI +358 755 756 utf8_2ws(ws, "Appointments8:",20); \ 000003C8 18119FE5 LDR R1,??create_ed_0+0x20 ;; `?` \ 000003CC 1420A0E3 MOV R2,#+20 \ 000003D0 0600A0E1 MOV R0,R6 \ 000003D4 E30100EF SWI +483 757 ConstructEditControl(&ec,1,0x40,ws,wslen(ws)); \ 000003D8 000096E5 LDR R0,[R6, #+0] \ 000003DC 0630A0E1 MOV R3,R6 \ 000003E0 B000D0E1 LDRH R0,[R0, #+0] \ 000003E4 4020A0E3 MOV R2,#+64 \ 000003E8 0110A0E3 MOV R1,#+1 \ 000003EC 01002DE9 PUSH {R0} \ 000003F0 24008DE2 ADD R0,SP,#+36 \ 000003F4 650100EF SWI +357 \ 000003F8 24D08DE2 ADD SP,SP,#+36 758 AddEditControlToEditQend(eq,&ec,ma); \ 000003FC 0520A0E1 MOV R2,R5 \ 00000400 0D10A0E1 MOV R1,SP \ 00000404 0400A0E1 MOV R0,R4 \ 00000408 660100EF SWI +358 759 760 ConstructEditControl(&ec,3,0x40,0,255); \ 0000040C FF00A0E3 MOV R0,#+255 \ 00000410 01002DE9 PUSH {R0} \ 00000414 0030A0E3 MOV R3,#+0 \ 00000418 4020A0E3 MOV R2,#+64 \ 0000041C 0310A0E3 MOV R1,#+3 \ 00000420 04008DE2 ADD R0,SP,#+4 \ 00000424 650100EF SWI +357 761 AddEditControlToEditQend(eq,&ec,ma); \ 00000428 0520A0E1 MOV R2,R5 762 FreeWS(ws); 763 patch_header(&edchat_hdr); \ 0000042C B8509FE5 LDR R5,??create_ed_0+0x24 ;; edchat_hdr \ 00000430 04108DE2 ADD R1,SP,#+4 \ 00000434 0400A0E1 MOV R0,R4 \ 00000438 660100EF SWI +358 \ 0000043C 0600A0E1 MOV R0,R6 764 patch_input(&edchat_desc); \ 00000440 A8609FE5 LDR R6,??create_ed_0+0x28 ;; edchat_desc \ 00000444 290100EF SWI +297 \ 00000448 0070A0E3 MOV R7,#+0 \ 0000044C 007085E5 STR R7,[R5, #+0] \ 00000450 888100EF SWI +33160 \ 00000454 010040E2 SUB R0,R0,#+1 \ 00000458 B400C5E1 STRH R0,[R5, #+4] \ 0000045C 8A8100EF SWI +33162 \ 00000460 010040E2 SUB R0,R0,#+1 \ 00000464 B600C5E1 STRH R0,[R5, #+6] \ 00000468 B871C6E1 STRH R7,[R6, #+24] \ 0000046C 8A8100EF SWI +33162 \ 00000470 010080E2 ADD R0,R0,#+1 \ 00000474 BA01C6E1 STRH R0,[R6, #+26] \ 00000478 888100EF SWI +33160 \ 0000047C 010040E2 SUB R0,R0,#+1 \ 00000480 BC01C6E1 STRH R0,[R6, #+28] \ 00000484 898100EF SWI +33161 \ 00000488 0070A0E1 MOV R7,R0 \ 0000048C 8B8100EF SWI +33163 \ 00000490 000047E0 SUB R0,R7,R0 \ 00000494 010040E2 SUB R0,R0,#+1 \ 00000498 BE01C6E1 STRH R0,[R6, #+30] 765 wd_id=CreateInputTextDialog(&edchat_desc,&edchat_hdr,eq,1,0); \ 0000049C 0000A0E3 MOV R0,#+0 \ 000004A0 01002DE9 PUSH {R0} \ 000004A4 0130A0E3 MOV R3,#+1 \ 000004A8 0420A0E1 MOV R2,R4 \ 000004AC 0510A0E1 MOV R1,R5 \ 000004B0 0600A0E1 MOV R0,R6 \ 000004B4 670100EF SWI +359 \ 000004B8 34109FE5 LDR R1,??create_ed_0+0x2C ;; wd_id \ 000004BC 000081E5 STR R0,[R1, #+0] 766 } \ 000004C0 34D08DE2 ADD SP,SP,#+52 \ 000004C4 F080BDE8 POP {R4-R7,PC} ;; return \ ??create_ed_0: \ 000004C8 ........ DC32 `?` \ 000004CC ........ DC32 `?` \ 000004D0 ........ DC32 `?` \ 000004D4 ........ DC32 `?` \ 000004D8 ........ DC32 `?` \ 000004DC ........ DC32 `?` \ 000004E0 ........ DC32 `?` \ 000004E4 ........ DC32 `?` \ 000004E8 ........ DC32 `?` \ 000004EC ........ DC32 edchat_hdr \ 000004F0 ........ DC32 edchat_desc \ 000004F4 ........ DC32 wd_id 767 768 // menu 769 \ In segment CODE, align 4, keep-with-next 770 void search(GUI *data) 771 { 772 SUBPROC((void *)open_file); \ search: \ 00000000 20009FE5 LDR R0,??search_0 ;; open_file \ 00000004 00402DE9 PUSH {LR} \ 00000008 710100EF SWI +369 773 GBS_SendMessage(MMI_CEPID,KEY_DOWN,RIGHT_SOFT); //костыль!! \ 0000000C 0420A0E3 MOV R2,#+4 \ 00000010 9310A0E3 MOV R1,#+147 \ 00000014 401F81E3 ORR R1,R1,#0x100 \ 00000018 0900A0E3 MOV R0,#+9 \ 0000001C 420C80E3 ORR R0,R0,#0x4200 \ 00000020 000100EF SWI +256 774 } \ 00000024 0080BDE8 POP {PC} ;; return \ ??search_0: \ 00000028 ........ DC32 open_file 775 \ In segment CODE, align 4, keep-with-next 776 void save(GUI *data) 777 { 778 save_m=1; \ save: \ 00000000 ........ LDR R0,??DataTable36 ;; save_m \ 00000004 00402DE9 PUSH {LR} \ 00000008 0110A0E3 MOV R1,#+1 \ 0000000C 001080E5 STR R1,[R0, #+0] 779 SUBPROC((void *)save_file); \ 00000010 ........ LDR R0,??DataTable37 ;; save_file \ 00000014 710100EF SWI +369 780 GBS_SendMessage(MMI_CEPID,KEY_DOWN,RIGHT_SOFT); //костыль!! \ 00000018 0420A0E3 MOV R2,#+4 \ 0000001C 9310A0E3 MOV R1,#+147 \ 00000020 401F81E3 ORR R1,R1,#0x100 \ 00000024 0900A0E3 MOV R0,#+9 \ 00000028 420C80E3 ORR R0,R0,#0x4200 \ 0000002C 000100EF SWI +256 781 } \ 00000030 0080BDE8 POP {PC} ;; return 782 \ In segment CODE, align 4, keep-with-next 783 void delet(GUI *data) 784 { 785 save_m=2; \ delet: \ 00000000 ........ LDR R0,??DataTable36 ;; save_m \ 00000004 00402DE9 PUSH {LR} \ 00000008 0210A0E3 MOV R1,#+2 \ 0000000C 001080E5 STR R1,[R0, #+0] 786 SUBPROC((void *)save_file); \ 00000010 ........ LDR R0,??DataTable37 ;; save_file \ 00000014 710100EF SWI +369 787 GBS_SendMessage(MMI_CEPID,KEY_DOWN,RIGHT_SOFT); //костыль!! \ 00000018 0420A0E3 MOV R2,#+4 \ 0000001C 9310A0E3 MOV R1,#+147 \ 00000020 401F81E3 ORR R1,R1,#0x100 \ 00000024 0900A0E3 MOV R0,#+9 \ 00000028 420C80E3 ORR R0,R0,#0x4200 \ 0000002C 000100EF SWI +256 788 } \ 00000030 0080BDE8 POP {PC} ;; return 789 790 \ In segment CODE, align 4, keep-with-next 791 void about(GUI *data) 792 { 793 ShowMSG(1,(int)"MRS Editor 0.6 (c)Evilfox"); \ about: \ 00000000 0C109FE5 LDR R1,??about_0 ;; `?` \ 00000004 00402DE9 PUSH {LR} \ 00000008 0100A0E3 MOV R0,#+1 \ 0000000C 480100EF SWI +328 794 } \ 00000010 0080BDE8 POP {PC} ;; return \ ??about_0: \ 00000014 ........ DC32 `?` 795 \ In segment CODE, align 4, keep-with-next 796 void exit(GUI *data) 797 { 798 CloseCSM(MAINCSM_ID); \ exit: \ 00000000 ........ LDR R0,??DataTable38 ;; MAINCSM_ID \ 00000004 00402DE9 PUSH {LR} \ 00000008 000090E5 LDR R0,[R0, #+0] \ 0000000C FC0100EF SWI +508 799 } \ 00000010 0080BDE8 POP {PC} ;; return 800 \ In segment DATA_I, align 4, align-sorted 801 int icon[]={0x58,0}; \ icon: \ 00000000 DS8 8 \ 00000008 REQUIRE `?` 802 \ In segment DATA_C, align 4, align-sorted 803 const HEADER_DESC menuhdr={0,0,0,0,icon,(int)"Menu",LGP_NULL}; \ menuhdr: \ 00000000 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000008 ............ DC32 icon, `?`, 2147483647 \ ....FFFFFF7F \ In segment DATA_C, align 4, align-sorted 804 const int menusoftkeys[]={0,1,2}; \ menusoftkeys: \ 00000000 000000000100 DC32 0, 1, 2 \ 000002000000 \ In segment DATA_C, align 4, align-sorted 805 const MENUITEM_DESC menuitems[5]= \ menuitems: \ 00000000 00000000.... DC32 0H, `?`, 2147483647, 0, 0H, 3, 1437, 0H \ ....FFFFFF7F \ 000000000000 \ 000003000000 \ 9D0500000000 \ 0000 \ 00000020 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1437, 0H \ FF7F00000000 \ 000000000300 \ 00009D050000 \ 00000000 \ 0000003C ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1437, 0H \ FF7F00000000 \ 000000000300 \ 00009D050000 \ 00000000 \ 00000058 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1437, 0H \ FF7F00000000 \ 000000000300 \ 00009D050000 \ 00000000 \ 00000074 ........FFFF DC32 `?`, 2147483647, 0, 0H, 3, 1437 \ FF7F00000000 \ 000000000300 \ 00009D050000 806 { 807 {NULL,(int)"Search", LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 808 {NULL,(int)"Save", LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 809 {NULL,(int)"Delete", LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 810 {NULL,(int)"About", LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 811 {NULL,(int)"Exit", LGP_NULL,0,NULL,MENU_FLAG3,MENU_FLAG2}, 812 }; 813 \ In segment DATA_C, align 4, align-sorted 814 const MENUPROCS_DESC menuprocs[5]={ \ menuprocs: \ 00000000 ............ DC32 search, save, delet, about, exit \ ............ \ ............ \ .... 815 search, 816 save, 817 delet, 818 about, 819 exit 820 }; 821 \ In segment DATA_C, align 4, align-sorted 822 const SOFTKEY_DESC menu_sk1[]= \ menu_sk1: \ 00000000 18000000 DC16 24, 0 \ 00000004 ........ DC32 `?` \ 00000008 01000000 DC16 1, 0 \ 0000000C ........ DC32 `?` \ 00000010 3D000000 DC16 61, 0 \ 00000014 FBC0FF7F DC32 2147467515 823 { 824 {0x0018,0x0000,(int)"OK"}, 825 {0x0001,0x0000,(int)"Close"}, 826 {0x003D,0x0000,(int)LGP_DOIT_PIC} 827 }; 828 \ In segment DATA_C, align 4, align-sorted 829 const SOFTKEYSTAB menu_skt1= \ menu_skt1: \ 00000000 ........0000 DC32 menu_sk1, 0 \ 0000 830 { 831 (SOFTKEY_DESC *)menu_sk1,0 832 }; 833 \ In segment DATA_C, align 4, align-sorted 834 const MENU_DESC tmenu= \ tmenu: \ 00000000 080000000000 DC32 8, 0H, 0H, 0H, menusoftkeys, menu_skt1, 0, 0H, menuitems \ 000000000000 \ 00000000.... \ ............ \ 000000000000 \ 0000........ \ 00000024 ........0500 DC32 menuprocs, 5 \ 0000 835 { 836 8,NULL,NULL,NULL, 837 menusoftkeys, 838 &menu_skt1, 839 0, 840 NULL, 841 menuitems, 842 menuprocs, 843 5 844 }; 845 \ In segment CODE, align 4, keep-with-next 846 void MMenu(void) 847 { \ MMenu: \ 00000000 10402DE9 PUSH {R4,LR} 848 patch_header(&menuhdr); \ 00000004 4C409FE5 LDR R4,??MMenu_0 ;; menuhdr \ 00000008 0000A0E3 MOV R0,#+0 \ 0000000C 000084E5 STR R0,[R4, #+0] \ 00000010 888100EF SWI +33160 \ 00000014 010040E2 SUB R0,R0,#+1 \ 00000018 B400C4E1 STRH R0,[R4, #+4] \ 0000001C 8A8100EF SWI +33162 849 CreateMenu(0,0,&tmenu,&menuhdr,0,5,0,0); \ 00000020 34209FE5 LDR R2,??MMenu_0+0x4 ;; tmenu \ 00000024 010040E2 SUB R0,R0,#+1 \ 00000028 B600C4E1 STRH R0,[R4, #+6] \ 0000002C 0000A0E3 MOV R0,#+0 \ 00000030 01002DE9 PUSH {R0} \ 00000034 01002DE9 PUSH {R0} \ 00000038 0430A0E1 MOV R3,R4 \ 0000003C 0010A0E3 MOV R1,#+0 \ 00000040 0500A0E3 MOV R0,#+5 \ 00000044 01002DE9 PUSH {R0} \ 00000048 0000A0E3 MOV R0,#+0 \ 0000004C 01002DE9 PUSH {R0} \ 00000050 520100EF SWI +338 850 } \ 00000054 1F80BDE8 POP {R0-R4,PC} ;; return \ ??MMenu_0: \ 00000058 ........ DC32 menuhdr \ 0000005C ........ DC32 tmenu \ In segment CODE, align 4, keep-with-next \ ??DataTable12: \ 00000000 ........ DC32 day_1_1 \ In segment CODE, align 4, keep-with-next \ ??DataTable15: \ 00000000 ........ DC32 ul \ In segment CODE, align 4, keep-with-next \ ??DataTable16: \ 00000000 ........ DC32 f \ In segment CODE, align 4, keep-with-next \ ??DataTable19: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable26: \ 00000000 ........ DC32 fsize \ In segment CODE, align 4, keep-with-next \ ??DataTable27: \ 00000000 ........ DC32 `?` \ In segment CODE, align 4, keep-with-next \ ??DataTable29: \ 00000000 ........ DC32 rms_path \ In segment CODE, align 4, keep-with-next \ ??DataTable31: \ 00000000 ........ DC32 rms_path \ In segment CODE, align 4, keep-with-next \ ??DataTable32: \ 00000000 ........ DC32 ggui \ In segment CODE, align 4, keep-with-next \ ??DataTable36: \ 00000000 ........ DC32 save_m \ In segment CODE, align 4, keep-with-next \ ??DataTable37: \ 00000000 ........ DC32 save_file \ In segment CODE, align 4, keep-with-next \ ??DataTable38: \ 00000000 ........ DC32 MAINCSM_ID \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 18000000 DC16 24, 0 \ 00000004 ........ DC32 `?` \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000008 00000000.... DC32 0H, `?`, 2147483647 \ ....FFFFFF7F \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 580000000000 DC32 88, 0 \ 0000 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4461792E6D6F DC8 "Day.month.year:" \ 6E74682E7965 \ 61723A00 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 436C6F736500 DC8 "Close" \ 00000006 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4F7074696F6E DC8 "Options" \ 7300 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4D5253204564 DC8 "MRS Editor 0.6" \ 69746F722030 \ 2E3600 \ 0000000F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4170706F696E DC8 "Appointments3:" \ 746D656E7473 \ 333A00 \ 0000000F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4170706F696E DC8 "Appointments4:" \ 746D656E7473 \ 343A00 \ 0000000F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 506C65617365 DC8 "Please input date!!" \ 20696E707574 \ 206461746521 \ 2100 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4170706F696E DC8 "Appointments5:" \ 746D656E7473 \ 353A00 \ 0000000F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4170706F696E DC8 "Appointments6:" \ 746D656E7473 \ 363A00 \ 0000000F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4170706F696E DC8 "Appointments7:" \ 746D656E7473 \ 373A00 \ 0000000F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4D5253204564 DC8 "MRS Editor 0.6 (c)Evilfox" \ 69746F722030 \ 2E3620286329 \ 4576696C666F \ 7800 \ 0000001A 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4170706F696E DC8 "Appointments1:" \ 746D656E7473 \ 313A00 \ 0000000F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4170706F696E DC8 "Appointments8:" \ 746D656E7473 \ 383A00 \ 0000000F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 257366696C65 DC8 "%sfile.mrs" \ 2E6D727300 \ 0000000B 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4D5253204564 DC8 "MRS Editor 0.5 - (c)Evilfox" \ 69746F722030 \ 2E35202D2028 \ 63294576696C \ 666F7800 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 496E74707574 DC8 "Intput date and app.!!" \ 206461746520 \ 616E64206170 \ 702E212100 \ 00000017 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 416464656420 DC8 "Added new day!" \ 6E6577206461 \ 792100 \ 0000000F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 25733B257320 DC8 "%s;%s day" \ 2064617900 \ 0000000B 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 536176656420 DC8 "Saved new data!" \ 6E6577206461 \ 74612100 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 44656C657465 DC8 "Deleted data!" \ 642064617461 \ 2100 \ 0000000E 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 25733B257320 DC8 "%s;%s %s" \ 20257300 \ 0000000A 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 64617900 DC8 "day" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 257325733B00 DC8 "%s%s;" \ 00000006 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ 00000000 25733B00 DC8 "%s;" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4170706F696E DC8 "Appointments2:" \ 746D656E7473 \ 323A00 \ 0000000F 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4E6F7420466F DC8 "Not Found, Creating!" \ 756E642C2043 \ 72656174696E \ 672100 \ 00000015 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 30303A303020 DC8 "00:00 to do" \ 746F20646F00 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 466F756E6421 DC8 "Found!!" \ 2100 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 2573257300 DC8 "%s%s" \ 00000005 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?_1`: \ 00000000 64617900 DC8 "day" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4661696C6564 DC8 "Failed" \ 00 \ 00000007 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 726D735F7468 DC8 "rms_the_begin_of_the_file" \ 655F62656769 \ 6E5F6F665F74 \ 68655F66696C \ 6500 \ 0000001A 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 41626F757400 DC8 "About" \ 00000006 0000 DC8 0, 0 \ In segment DATA_C, align 1, align-sorted \ `?`: \ 00000000 4F4B00 DC8 "OK" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4578697400 DC8 "Exit" \ 00000005 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 44656C657465 DC8 "Delete" \ 00 \ 00000007 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 5361766500 DC8 "Save" \ 00000005 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 536561726368 DC8 "Search" \ 00 \ 00000007 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4D656E7500 DC8 "Menu" \ 00000005 000000 DC8 0, 0, 0 Maximum stack usage in bytes: Function CSTACK -------- ------ Check_if_is_file 60 ElfKiller 4 MMenu 24 OnKey 4 OnRedraw 0 UpdateCSMname 4 about 4 create_ed 100 day_extractor 36 delet 4 edchat_ghook 4 edchat_locret 0 edchat_onkey 8 exit 4 main 48 maincsm_onclose 4 maincsm_oncreate 16 maincsm_onmessage 0 method7 4 method8 0 method9 0 onClose 0 onCreate 0 onFocus 4 onUnfocus 0 open_file 124 save 4 save_file 148 search 4 Segment part sizes: Function/Label Bytes -------------- ----- minus11 4 maincsm_name_body 280 MAINCSM_ID 4 ggui 4 f 4 fsize 4 ul 4 i 4 j 4 y 4 u 4 ex 4 ex1 4 len_ex 4 save_m 4 beg_len 4 kil 4 rms_path 64 app1 64 app2 64 app3 64 app4 64 app5 64 app6 64 app7 64 app8 64 day_1 64 day_1_1 256 Check_if_is_file 168 day_extractor 972 open_file 760 save_file 1592 OnRedraw 4 onCreate 12 onClose 12 onFocus 20 onUnfocus 20 OnKey 16 method7 4 method8 8 method9 8 gui_methods 44 Canvas 8 maincsm_oncreate 132 ElfKiller 28 maincsm_onclose 20 maincsm_onmessage 48 MAINCSM 60 UpdateCSMname 28 main 92 edchat_ghook 32 skk 8 itemnum 4 wd_id 4 edchat_onkey 64 edchat_locret 4 edchat_hdr 20 menu_sk 24 menu_skt 8 edchat_desc 56 create_ed 1272 search 44 save 52 delet 52 about 24 exit 20 icon 8 menuhdr 20 menusoftkeys 12 menuitems 140 menuprocs 20 menu_sk1 24 menu_skt1 8 tmenu 44 MMenu 96 ??DataTable12 4 ??DataTable15 4 ??DataTable16 4 ??DataTable19 4 ??DataTable26 4 ??DataTable27 4 ??DataTable29 4 ??DataTable31 4 ??DataTable32 4 ??DataTable36 4 ??DataTable37 4 ??DataTable38 4 ? 8 ? 20 ? 8 ? 16 ? 8 ? 8 ? 16 ? 16 ? 16 ? 20 ? 16 ? 16 ? 16 ? 28 ? 16 ? 16 ? 12 ? 28 ? 24 ? 16 ? 12 ? 16 ? 16 ? 12 ? 4 ? 8 ? 4 ? 16 ? 24 ? 12 ? 8 ? 8 ?_1 4 ? 8 ? 28 ? 8 ? 3 ? 8 ? 8 ? 8 ? 8 ? 8 Others 188 5 816 bytes in segment CODE 991 bytes in segment DATA_C 36 bytes in segment DATA_I 36 bytes in segment DATA_ID 1 244 bytes in segment DATA_Z 24 bytes in segment INITTAB 5 652 bytes of CODE memory (+ 188 bytes shared) 1 027 bytes of CONST memory 1 280 bytes of DATA memory Errors: none Warnings: none