############################################################################## # # # IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION 29/Oct/2008 03:34:22 # # Copyright 1999-2005 IAR Systems. All rights reserved. # # # # Cpu mode = interwork # # Endian = little # # Stack alignment = 4 # # Source file = D:\Pasha\elf\_MY_PROJECT_\NRSS\view_item.c # # Command line = D:\Pasha\elf\_MY_PROJECT_\NRSS\view_item.c -D # # NEWSGOLD -D ELKA -lCN D:\Pasha\elf\_MY_PROJECT_\NRSS # # \Release_ELKA\List\ -la D:\Pasha\elf\_MY_PROJECT_\NR # # SS\Release_ELKA\List\ -o D:\Pasha\elf\_MY_PROJECT_\N # # RSS\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\Embedded Workbench 4.0 # # Evaluation2\ARM\LIB\dl5tpainl8n.h" -I # # "D:\Pasha\Embedded Workbench 4.0 # # Evaluation2\ARM\INC\" --inline_threshold=2 # # List file = D:\Pasha\elf\_MY_PROJECT_\NRSS\Release_ELKA\List\vie # # w_item.lst # # Object file = D:\Pasha\elf\_MY_PROJECT_\NRSS\Release_ELKA\Obj\view # # _item.r79 # # # # # ############################################################################## D:\Pasha\elf\_MY_PROJECT_\NRSS\view_item.c 1 #include "../inc/swilib.h" 2 #include "view_item.h" 3 #include "rect_patcher.h" 4 #include "strings.h" 5 6 static const HEADER_DESC view_item_hdr={0,0,NULL,NULL,NULL,(int)"View Item",LGP_NULL}; 7 \ In segment CODE, align 4, keep-with-next 8 static void view_item_locret(void){} \ view_item_locret: \ 00000000 1EFF2FE1 BX LR ;; return 9 10 static const SOFTKEY_DESC view_item_sk[] = 11 { 12 {0x0018, 0x0000, (int)""}, 13 {0x0001, 0x0000, (int)"Close"}, 14 {0x003D, 0x0000, (int)LGP_DOIT_PIC} 15 }; 16 17 static const SOFTKEYSTAB view_item_skt = 18 { 19 view_item_sk, 0 20 }; 21 \ In segment CODE, align 4, keep-with-next 22 static int view_item_onkey(GUI *data, GUI_MSG *msg) 23 { 24 return (0); \ view_item_onkey: \ 00000000 0000A0E3 MOV R0,#+0 \ 00000004 1EFF2FE1 BX LR ;; return 25 } 26 \ In segment CODE, align 4, keep-with-next 27 static void view_item_ghook(GUI *gui, int cmd) 28 { \ view_item_ghook: \ 00000000 30402DE9 PUSH {R4,R5,LR} 29 if (cmd==0xA/*TI_CMD_FOCUS*/) \ 00000004 0A0051E3 CMP R1,#+10 \ 00000008 0040A0E1 MOV R4,R0 \ 0000000C 0100001A BNE ??view_item_ghook_0 30 { 31 DisableIDLETMR(); \ 00000010 7F0100EF SWI +383 \ 00000014 3080BDE8 POP {R4,R5,PC} 32 } 33 if (cmd==0xC/*TI_CMD_SUBFOCUS_CHANGE*/) \ ??view_item_ghook_0: \ 00000018 0C0051E3 CMP R1,#+12 \ 0000001C 3080BD18 POPNE {R4,R5,PC} 34 { 35 if (EDIT_GetFocus(gui)>EDIT_GetUnFocus(gui)) // Если листаем сверху вниз... \ 00000020 830100EF SWI +387 \ 00000024 0050A0E1 MOV R5,R0 \ 00000028 0400A0E1 MOV R0,R4 \ 0000002C 820100EF SWI +386 \ 00000030 000055E1 CMP R5,R0 \ 00000034 3080BDA8 POPGE {R4,R5,PC} 36 EDIT_SetCursorPos(gui, 1); // ...То ставим курсор в начало \ 00000038 0110A0E3 MOV R1,#+1 \ 0000003C 0400A0E1 MOV R0,R4 \ 00000040 D40100EF SWI +468 37 } 38 } \ 00000044 3080BDE8 POP {R4,R5,PC} ;; return \ In segment DATA_C, align 4, align-sorted 39 40 static const INPUTDIA_DESC view_item_desc = \ view_item_desc: \ 00000000 01000000.... DC32 1, view_item_onkey, view_item_ghook, view_item_locret, 0 \ ............ \ ........0000 \ 0000 \ 00000014 ........ DC32 view_item_skt \ 00000018 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000020 080000006400 DC32 8, 100, 101, 0, 0, 1073741824 \ 000065000000 \ 000000000000 \ 000000000040 \ 00000038 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000040 00000000.... DC32 0H, `?`, 2147483647 \ ....FFFFFF7F \ 0000004C 5469746C653A DC8 "Title:" \ 00 \ 00000053 00 DC8 0 \ 00000054 446573637269 DC8 "Description:" \ 7074696F6E3A \ 00 \ 00000061 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ view_item_sk: \ 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_C, align 4, align-sorted \ view_item_skt: \ 00000000 ........0000 DC32 view_item_sk, 0 \ 0000 41 { 42 1, 43 view_item_onkey, 44 view_item_ghook, 45 (void *)view_item_locret, 46 0, 47 &view_item_skt, 48 {0,NULL,NULL,NULL}, 49 FONT_SMALL, 50 100, 51 101, 52 0, 53 // 0x00000001 - Выровнять по правому краю 54 // 0x00000002 - Выровнять по центру 55 // 0x00000004 - Инверсия знакомест 56 // 0x00000008 - UnderLine 57 // 0x00000020 - Не переносить слова 58 // 0x00000200 - bold 59 0, 60 // 0x00000002 - ReadOnly 61 // 0x00000004 - Не двигается курсор 62 // 0x40000000 - Поменять местами софт-кнопки 63 0x40000000 64 }; 65 \ In segment CODE, align 4, keep-with-next 66 int create_view_item(RSS_ITEM *p) 67 { \ create_view_item: \ 00000000 F0432DE9 PUSH {R4-R9,LR} \ 00000004 3CD04DE2 SUB SP,SP,#+60 \ 00000008 0040A0E1 MOV R4,R0 68 void *ma=malloc_adr(); 69 void *eq; 70 EDITCONTROL ec; 71 EDITC_OPTIONS ec_options; 72 int t_len=0, d_len=0, h_len=64, max; \ 0000000C 0080A0E3 MOV R8,#+0 \ 00000010 148000EF SWI +32788 \ 00000014 0050A0E1 MOV R5,R0 73 WSHDR *ws; 74 75 eq=AllocEQueue(ma,mfree_adr()); \ 00000018 158000EF SWI +32789 \ 0000001C 0010A0E1 MOV R1,R0 \ 00000020 0500A0E1 MOV R0,R5 \ 00000024 630100EF SWI +355 \ 00000028 0060A0E1 MOV R6,R0 76 if (p->title) t_len=strlen(p->title); \ 0000002C 040094E5 LDR R0,[R4, #+4] \ 00000030 0090A0E3 MOV R9,#+0 \ 00000034 000050E3 CMP R0,#+0 \ 00000038 0100000A BEQ ??create_view_item_0 \ 0000003C 1B0000EF SWI +27 \ 00000040 0080A0E1 MOV R8,R0 77 if (p->description) d_len=strlen(p->description); \ ??create_view_item_0: \ 00000044 080094E5 LDR R0,[R4, #+8] \ 00000048 000050E3 CMP R0,#+0 \ 0000004C 0100000A BEQ ??create_view_item_1 \ 00000050 1B0000EF SWI +27 \ 00000054 0090A0E1 MOV R9,R0 78 if (t_len>h_len) max=t_len; \ ??create_view_item_1: \ 00000058 410058E3 CMP R8,#+65 \ 0000005C 0870A0A1 MOVGE R7,R8 79 if (d_len>max) max=d_len; \ 00000060 090057E1 CMP R7,R9 \ 00000064 0970A0B1 MOVLT R7,R9 80 81 ws=AllocWS(max); \ 00000068 0700A0E1 MOV R0,R7 82 83 PrepareEditControl(&ec); 84 ascii2ws(ws,"Title:"); \ 0000006C DC719FE5 LDR R7,??create_view_item_2 ;; view_item_desc \ 00000070 250100EF SWI +293 \ 00000074 0080A0E1 MOV R8,R0 \ 00000078 10008DE2 ADD R0,SP,#+16 \ 0000007C 640100EF SWI +356 \ 00000080 4C1087E2 ADD R1,R7,#+76 \ 00000084 0800A0E1 MOV R0,R8 \ 00000088 ........ _BLF ascii2ws,??ascii2ws??rA 85 ConstructEditControl(&ec,ECT_HEADER,ECF_APPEND_EOL,ws,ws->wsbody[0]); \ 0000008C 000098E5 LDR R0,[R8, #+0] \ 00000090 0830A0E1 MOV R3,R8 \ 00000094 B000D0E1 LDRH R0,[R0, #+0] \ 00000098 4020A0E3 MOV R2,#+64 \ 0000009C 0110A0E3 MOV R1,#+1 \ 000000A0 01002DE9 PUSH {R0} \ 000000A4 14008DE2 ADD R0,SP,#+20 \ 000000A8 650100EF SWI +357 86 AddEditControlToEditQend(eq,&ec,ma); \ 000000AC 0520A0E1 MOV R2,R5 \ 000000B0 14108DE2 ADD R1,SP,#+20 \ 000000B4 0600A0E1 MOV R0,R6 \ 000000B8 660100EF SWI +358 87 88 PrepareEditControl(&ec); \ 000000BC 14008DE2 ADD R0,SP,#+20 \ 000000C0 640100EF SWI +356 89 ascii2ws(ws,p->title); \ 000000C4 041094E5 LDR R1,[R4, #+4] \ 000000C8 0800A0E1 MOV R0,R8 \ 000000CC ........ _BLF ascii2ws,??ascii2ws??rA 90 ConstructEditControl(&ec,ECT_NORMAL_TEXT,ECF_APPEND_EOL,ws,ws->wsbody[0]); \ 000000D0 000098E5 LDR R0,[R8, #+0] \ 000000D4 0830A0E1 MOV R3,R8 \ 000000D8 B000D0E1 LDRH R0,[R0, #+0] \ 000000DC 4020A0E3 MOV R2,#+64 \ 000000E0 0310A0E3 MOV R1,#+3 \ 000000E4 01002DE9 PUSH {R0} \ 000000E8 18008DE2 ADD R0,SP,#+24 \ 000000EC 650100EF SWI +357 91 PrepareEditCOptions(&ec_options); \ 000000F0 08008DE2 ADD R0,SP,#+8 \ 000000F4 C80100EF SWI +456 92 SetFontToEditCOptions(&ec_options,2); \ 000000F8 0210A0E3 MOV R1,#+2 \ 000000FC 08008DE2 ADD R0,SP,#+8 \ 00000100 CA0100EF SWI +458 93 CopyOptionsToEditControl(&ec,&ec_options); \ 00000104 08108DE2 ADD R1,SP,#+8 \ 00000108 18008DE2 ADD R0,SP,#+24 \ 0000010C CE0100EF SWI +462 94 AddEditControlToEditQend(eq,&ec,ma); \ 00000110 0520A0E1 MOV R2,R5 \ 00000114 18108DE2 ADD R1,SP,#+24 \ 00000118 0600A0E1 MOV R0,R6 \ 0000011C 660100EF SWI +358 95 96 PrepareEditControl(&ec); \ 00000120 18008DE2 ADD R0,SP,#+24 \ 00000124 640100EF SWI +356 97 ascii2ws(ws,"Description:"); \ 00000128 541087E2 ADD R1,R7,#+84 \ 0000012C 0800A0E1 MOV R0,R8 \ 00000130 ........ _BLF ascii2ws,??ascii2ws??rA 98 ConstructEditControl(&ec,ECT_HEADER,ECF_APPEND_EOL,ws,ws->wsbody[0]); \ 00000134 000098E5 LDR R0,[R8, #+0] \ 00000138 0830A0E1 MOV R3,R8 \ 0000013C B000D0E1 LDRH R0,[R0, #+0] \ 00000140 4020A0E3 MOV R2,#+64 \ 00000144 0110A0E3 MOV R1,#+1 \ 00000148 01002DE9 PUSH {R0} \ 0000014C 1C008DE2 ADD R0,SP,#+28 \ 00000150 650100EF SWI +357 99 AddEditControlToEditQend(eq,&ec,ma); \ 00000154 0520A0E1 MOV R2,R5 \ 00000158 1C108DE2 ADD R1,SP,#+28 \ 0000015C 0600A0E1 MOV R0,R6 \ 00000160 660100EF SWI +358 100 101 PrepareEditControl(&ec); \ 00000164 1C008DE2 ADD R0,SP,#+28 \ 00000168 640100EF SWI +356 102 ascii2ws(ws,p->description); \ 0000016C 081094E5 LDR R1,[R4, #+8] \ 00000170 0800A0E1 MOV R0,R8 \ 00000174 ........ _BLF ascii2ws,??ascii2ws??rA 103 ConstructEditControl(&ec,ECT_NORMAL_TEXT,ECF_APPEND_EOL,ws,ws->wsbody[0]); \ 00000178 000098E5 LDR R0,[R8, #+0] \ 0000017C 0830A0E1 MOV R3,R8 \ 00000180 B000D0E1 LDRH R0,[R0, #+0] \ 00000184 4020A0E3 MOV R2,#+64 \ 00000188 0310A0E3 MOV R1,#+3 \ 0000018C 01002DE9 PUSH {R0} 104 PrepareEditCOptions(&ec_options); 105 SetFontToEditCOptions(&ec_options,2); 106 CopyOptionsToEditControl(&ec,&ec_options); 107 AddEditControlToEditQend(eq,&ec,ma); 108 109 FreeWS(ws); 110 patch_header(&view_item_hdr); \ 00000190 0040A0E3 MOV R4,#+0 \ 00000194 20008DE2 ADD R0,SP,#+32 \ 00000198 650100EF SWI +357 \ 0000019C 10008DE2 ADD R0,SP,#+16 \ 000001A0 C80100EF SWI +456 \ 000001A4 0210A0E3 MOV R1,#+2 \ 000001A8 10008DE2 ADD R0,SP,#+16 \ 000001AC CA0100EF SWI +458 \ 000001B0 10108DE2 ADD R1,SP,#+16 \ 000001B4 20008DE2 ADD R0,SP,#+32 \ 000001B8 CE0100EF SWI +462 \ 000001BC 0520A0E1 MOV R2,R5 \ 000001C0 20108DE2 ADD R1,SP,#+32 \ 000001C4 0600A0E1 MOV R0,R6 \ 000001C8 660100EF SWI +358 \ 000001CC 0800A0E1 MOV R0,R8 \ 000001D0 290100EF SWI +297 \ 000001D4 B843C7E1 STRH R4,[R7, #+56] \ 000001D8 1800A0E3 MOV R0,#+24 \ 000001DC BA03C7E1 STRH R0,[R7, #+58] \ 000001E0 888100EF SWI +33160 \ 000001E4 010040E2 SUB R0,R0,#+1 \ 000001E8 BC03C7E1 STRH R0,[R7, #+60] \ 000001EC 8A8100EF SWI +33162 \ 000001F0 170080E2 ADD R0,R0,#+23 \ 000001F4 BE03C7E1 STRH R0,[R7, #+62] 111 patch_input(&view_item_desc); \ 000001F8 B841C7E1 STRH R4,[R7, #+24] \ 000001FC 8A8100EF SWI +33162 \ 00000200 190080E2 ADD R0,R0,#+25 \ 00000204 BA01C7E1 STRH R0,[R7, #+26] \ 00000208 888100EF SWI +33160 \ 0000020C 010040E2 SUB R0,R0,#+1 \ 00000210 BC01C7E1 STRH R0,[R7, #+28] \ 00000214 898100EF SWI +33161 \ 00000218 0040A0E1 MOV R4,R0 \ 0000021C 8B8100EF SWI +33163 \ 00000220 000044E0 SUB R0,R4,R0 \ 00000224 010040E2 SUB R0,R0,#+1 \ 00000228 BE01C7E1 STRH R0,[R7, #+30] 112 return CreateInputTextDialog(&view_item_desc,&view_item_hdr,eq,1,NULL); \ 0000022C 0000A0E3 MOV R0,#+0 \ 00000230 01002DE9 PUSH {R0} \ 00000234 0130A0E3 MOV R3,#+1 \ 00000238 0620A0E1 MOV R2,R6 \ 0000023C 381087E2 ADD R1,R7,#+56 \ 00000240 0700A0E1 MOV R0,R7 \ 00000244 670100EF SWI +359 \ 00000248 50D08DE2 ADD SP,SP,#+80 \ 0000024C F083BDE8 POP {R4-R9,PC} ;; return \ ??create_view_item_2: \ 00000250 ........ DC32 view_item_desc 113 } \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 566965772049 DC8 "View Item" \ 74656D00 \ 0000000A 0000 DC8 0, 0 \ In segment DATA_C, align 1, align-sorted \ `?`: \ 00000000 00 DC8 "" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 436C6F736500 DC8 "Close" \ 00000006 0000 DC8 0, 0 Maximum stack usage in bytes: Function CSTACK -------- ------ create_view_item 108 view_item_ghook 12 view_item_locret 0 view_item_onkey 0 Segment part sizes: Function/Label Bytes -------------- ----- view_item_locret 4 view_item_onkey 8 view_item_ghook 72 view_item_desc 100 view_item_sk 24 view_item_skt 8 create_view_item 596 ? 12 ? 1 ? 8 Others 28 708 bytes in segment CODE 153 bytes in segment DATA_C 680 bytes of CODE memory (+ 28 bytes shared) 153 bytes of CONST memory Errors: none Warnings: none