////////////////////////////////////////////////////////////////////////////// // / // IAR ARM ANSI C/C++ Compiler V4.40A/W32 EVALUATION 28/Mar/2008 19:07:08 / // Copyright 1999-2005 IAR Systems. All rights reserved. / // / // Cpu mode = interwork / // Endian = little / // Stack alignment = 4 / // Source file = E:\Ivo\arm\IVOPLAY\SPYSOK.C / // Command line = E:\Ivo\arm\IVOPLAY\SPYSOK.C -D X65 -lC / // E:\Ivo\arm\IVOPLAY\Release\List\ -lA / // E:\Ivo\arm\IVOPLAY\Release\List\ -o / // E:\Ivo\arm\IVOPLAY\Release\Obj\ -s9 --no_cse / // --no_unroll --no_inline --no_code_motion --no_tbaa / // --no_clustering --no_scheduling --cpu_mode arm / // --endian little --cpu ARM926EJ-S --stack_align 4 / // --interwork -e --fpu None --dlib_config / // D:\arm\ARM\LIB\dl5tpainl8n.h -I D:\arm\ARM\INC\ / // List file = E:\Ivo\arm\IVOPLAY\Release\List\SPYSOK.s79 / // / // / ////////////////////////////////////////////////////////////////////////////// NAME SPYSOK RTMODEL "StackAlign4", "USED" RTMODEL "__cpu_mode", "__pcs__interwork" RTMODEL "__data_model", "absolute" RTMODEL "__endian", "little" RTMODEL "__rt_version", "6" RSEG CSTACK:DATA:NOROOT(2) PUBWEAK `?*?DATA_ID` MULTWEAK ??BEER??rA MULTWEAK ??CreateMEDIALibrary??rT MULTWEAK ??CreateMediaLibrary??rA MULTWEAK ??CreateMenuLibrary??rT ??DataTable0 EQU 0 MULTWEAK ??PerevirkaVidpovidnosti??rT MULTWEAK ??tmenu_ghook_library??rT PUBWEAK ?init?tab?DATA_I PUBWEAK ?init?tab?DATA_Z PUBLIC CreateMEDIALibrary FUNCTION CreateMEDIALibrary,0601H LOCFRAME CSTACK, 132, STACK PUBLIC CreateMenuLibrary FUNCTION CreateMenuLibrary,0201H LOCFRAME CSTACK, 20, STACK PUBLIC LibraryMenu_ID PUBLIC PerevirkaVidpovidnosti FUNCTION PerevirkaVidpovidnosti,0601H LOCFRAME CSTACK, 132, STACK PUBLIC data_library PUBLIC icon_create PUBLIC icon_gy FUNCTION menuitemhandler,0603H LOCFRAME CSTACK, 20, STACK PUBLIC my_ipc_name FUNCTION patch_header,0203H LOCFRAME CSTACK, 8, STACK PUBLIC tmenu_ghook_library FUNCTION tmenu_ghook_library,0603H LOCFRAME CSTACK, 4, STACK FUNCTION tmenu_keyhook,0603H LOCFRAME CSTACK, 4, STACK CFI Names cfiNames0 CFI StackFrame CFA R13 HUGEDATA CFI Resource R0:32, R1:32, R2:32, R3:32, R4:32, R5:32, R6:32, R7:32 CFI Resource R8:32, R9:32, R10:32, R11:32, R12:32, CPSR:32, R13:32 CFI Resource R14:32, SPSR:32 CFI VirtualResource ?RET:32 CFI EndNames cfiNames0 CFI Common cfiCommon0 Using cfiNames0 CFI CodeAlign 2 CFI DataAlign 4 CFI ReturnAddress ?RET CODE CFI CFA R13+0 CFI R0 Undefined CFI R1 Undefined CFI R2 Undefined CFI R3 Undefined CFI R4 SameValue CFI R5 SameValue CFI R6 SameValue CFI R7 SameValue CFI R8 SameValue CFI R9 SameValue CFI R10 SameValue CFI R11 SameValue CFI R12 Undefined CFI CPSR SameValue CFI R14 Undefined CFI SPSR SameValue CFI ?RET R14 CFI EndCommon cfiCommon0 CFI Common cfiCommon1 Using cfiNames0 CFI CodeAlign 4 CFI DataAlign 4 CFI ReturnAddress ?RET CODE CFI CFA R13+0 CFI R0 Undefined CFI R1 Undefined CFI R2 Undefined CFI R3 Undefined CFI R4 SameValue CFI R5 SameValue CFI R6 SameValue CFI R7 SameValue CFI R8 SameValue CFI R9 SameValue CFI R10 SameValue CFI R11 SameValue CFI R12 Undefined CFI CPSR SameValue CFI R14 Undefined CFI SPSR SameValue CFI ?RET R14 CFI EndCommon cfiCommon1 BEER SYMBOL "BEER" CreateMediaLibrary SYMBOL "CreateMediaLibrary" ??BEER??rA SYMBOL "??rA", BEER CreateMEDIALibrary SYMBOL "CreateMEDIALibrary" ??CreateMEDIALibrary??rT SYMBOL "??rT", CreateMEDIALibrary ??CreateMediaLibrary??rA SYMBOL "??rA", CreateMediaLibrary CreateMenuLibrary SYMBOL "CreateMenuLibrary" ??CreateMenuLibrary??rT SYMBOL "??rT", CreateMenuLibrary PerevirkaVidpovidnosti SYMBOL "PerevirkaVidpovidnosti" ??PerevirkaVidpovidnosti??rT SYMBOL "??rT", PerevirkaVidpovidnosti tmenu_ghook_library SYMBOL "tmenu_ghook_library" ??tmenu_ghook_library??rT SYMBOL "??rT", tmenu_ghook_library EXTERN BEER FUNCTION BEER,0202H EXTERN CreateMediaLibrary FUNCTION CreateMediaLibrary,0202H EXTERN folder RSEG DATA_C:CONST:SORT:NOROOT(2) `?`: DATA DC8 "0:\\1.png" DC8 0, 0, 0 RSEG DATA_C:CONST:SORT:NOROOT(2) `?`: DATA DC8 "0:\\2.png" DC8 0, 0, 0 RSEG DATA_C:CONST:SORT:NOROOT(2) `?`: DATA DC8 "\321\362\342\356\360\350\362\350" DC8 0, 0, 0 RSEG DATA_C:CONST:SORT:NOROOT(2) `?`: DATA DC8 "\302\350\341i\360" DC8 0, 0 RSEG DATA_C:CONST:SORT:NOROOT(2) `?`: DATA DC8 "\315\340\347\340\344" DC8 0, 0 // E:\Ivo\arm\IVOPLAY\SPYSOK.C // 1 #include "../inc/swilib.h" // 2 #include "medialibrary.h" // 3 #include "language.h" // 4 #include "main.h" RSEG DATA_C:CONST:SORT:NOROOT(0) // static char const __data pt[3] pt: DATA DC8 "%t" // 5 #include "conf_loader.h" // 6 // 7 extern const char folder[128]; RSEG DATA_C:CONST:SORT:NOROOT(2) // 8 const char my_ipc_name[32]="Ivoplay"; my_ipc_name: DATA DC8 "Ivoplay" DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DC8 0, 0, 0, 0, 0, 0, 0, 0 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock0 Using cfiCommon0 CFI NoFunction THUMB ??CreateMEDIALibrary??rT: BX PC Nop CFI EndBlock cfiBlock0 REQUIRE CreateMEDIALibrary RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock1 Using cfiCommon1 CFI Function CreateMEDIALibrary ARM // 9 void CreateMEDIALibrary() // 10 { CreateMEDIALibrary: PUSH {LR} CFI ?RET Frame(CFA, -4) CFI CFA R13+4 SUB SP,SP,#+128 CFI CFA R13+132 // 11 char t[128]; // 12 sprintf(t,folder); LDR R1,??DataTable1 ;; folder MOV R0,SP SWI +22 // 13 CreateMediaLibrary(t); MOV R0,SP _BLF CreateMediaLibrary,??CreateMediaLibrary??rA // 14 } ADD SP,SP,#+128 ;; stack cleaning CFI CFA R13+4 POP {PC} ;; return CFI EndBlock cfiBlock1 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock2 Using cfiCommon0 CFI NoFunction THUMB ??PerevirkaVidpovidnosti??rT: BX PC Nop CFI EndBlock cfiBlock2 REQUIRE PerevirkaVidpovidnosti // 15 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock3 Using cfiCommon1 CFI Function PerevirkaVidpovidnosti ARM // 16 void PerevirkaVidpovidnosti() // 17 { PerevirkaVidpovidnosti: PUSH {LR} CFI ?RET Frame(CFA, -4) CFI CFA R13+4 SUB SP,SP,#+128 CFI CFA R13+132 // 18 char t[128]; // 19 sprintf(t,folder); LDR R1,??DataTable1 ;; folder MOV R0,SP SWI +22 // 20 BEER(t); MOV R0,SP _BLF BEER,??BEER??rA // 21 } ADD SP,SP,#+128 ;; stack cleaning CFI CFA R13+4 POP {PC} ;; return CFI EndBlock cfiBlock3 RSEG CODE:CODE:NOROOT(2) DATA ??DataTable1: DC32 folder RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock4 Using cfiCommon0 CFI NoFunction THUMB ??patch_header??rT: BX PC Nop CFI EndBlock cfiBlock4 REQUIRE patch_header // 22 // 23 // 24 RSEG DATA_Z:DATA:SORT:NOROOT(2) // 25 CSM_RAM *data_library; data_library: DS8 4 RSEG DATA_Z:DATA:SORT:NOROOT(2) // 26 int LibraryMenu_ID; LibraryMenu_ID: DS8 4 // 27 RSEG DATA_I:DATA:SORT:NOROOT(2) // 28 int icon_create[] = {(int)"0:\\1.png",0}; icon_create: DS8 8 REQUIRE `?` RSEG DATA_I:DATA:SORT:NOROOT(2) // 29 int icon_gy[] = {(int)"0:\\2.png",0}; icon_gy: DS8 8 REQUIRE `?` // 30 //int icon3[] = {(int)"0:\\3.png",0}; // 31 // 32 // 33 #define NUMITEMS 2 // 34 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock5 Using cfiCommon1 CFI Function patch_header ARM // 35 static void patch_header(const HEADER_DESC* head) // 36 { patch_header: PUSH {R4,LR} CFI ?RET Frame(CFA, -4) CFI R4 Frame(CFA, -8) CFI CFA R13+8 MOV R4,R0 // 37 ((HEADER_DESC*)head)->rc.x=0; MOV R0,#+0 STRH R0,[R4, #+0] // 38 ((HEADER_DESC*)head)->rc.y=YDISP; STRH R0,[R4, #+2] // 39 ((HEADER_DESC*)head)->rc.x2=ScreenW()-1; SWI +33160 SUB R0,R0,#+1 STRH R0,[R4, #+4] // 40 ((HEADER_DESC*)head)->rc.y2=HeaderH()-1+YDISP; SWI +33162 SUB R0,R0,#+1 STRH R0,[R4, #+6] // 41 } POP {R4,PC} ;; return CFI EndBlock cfiBlock5 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock6 Using cfiCommon0 CFI NoFunction THUMB ??tmenu_ghook_library??rT: BX PC Nop CFI EndBlock cfiBlock6 REQUIRE tmenu_ghook_library // 42 // 43 // 44 RSEG DATA_C:CONST:SORT:NOROOT(2) // 45 static const HEADER_DESC menuhdr={0,0,0,0,NULL,(int)LG_MEDIALIBRARY,LGP_NULL}; menuhdr: DATA DC16 0, 0, 0, 0 DC32 0H, `?` DC32 `?` // 57 { // 58 (void *)CreateMEDIALibrary, // 59 (void *)PerevirkaVidpovidnosti, // 60 //(void *)CreateRemotePlayerControler, // 61 }; // 62 RSEG DATA_C:CONST:SORT:NOROOT(2) // 63 static const SOFTKEY_DESC mmenu_sk[]= mmenu_sk: DATA DC16 24, 0 DC32 `?` DC16 1, 0 DC32 `?` DC16 61, 0 DC32 2147467515 // 64 { // 65 {0x0018,0x0000,(int)LG_SELECT}, // 66 {0x0001,0x0000,(int)LG_CLOSE}, // 67 {0x003D,0x0000,(int)LGP_DOIT_PIC} // 68 }; // 69 RSEG DATA_C:CONST:SORT:NOROOT(2) // 70 static const SOFTKEYSTAB mmenu_skt= mmenu_skt: DATA DC32 mmenu_sk, 0 // 71 { // 72 mmenu_sk,0 // 73 }; // 74 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock7 Using cfiCommon1 CFI Function tmenu_ghook_library ARM // 75 void tmenu_ghook_library(void *data_library, int cmd) // 76 { tmenu_ghook_library: PUSH {LR} CFI ?RET Frame(CFA, -4) CFI CFA R13+4 // 77 //PNGTOP_DESC *pltop=PNG_TOP(); // 78 if (cmd==9) // 79 { // 80 //pltop->dyn_pltop=NULL; // 81 } // 82 if (cmd==0x0A) CMP R1,#+10 POPNE {PC} // 83 { // 84 //pltop->dyn_pltop=XStatusesImgList; // 85 DisableIDLETMR(); SWI +383 // 86 } // 87 } POP {PC} ;; return CFI EndBlock cfiBlock7 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock8 Using cfiCommon0 CFI NoFunction THUMB ??menuitemhandler??rT: BX PC Nop CFI EndBlock cfiBlock8 REQUIRE menuitemhandler // 88 //static int icon_array[2]; // 89 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock9 Using cfiCommon1 CFI Function menuitemhandler ARM // 90 static void menuitemhandler(void *data_library, int curitem, void *unk) // 91 { menuitemhandler: PUSH {R4-R7,LR} CFI ?RET Frame(CFA, -4) CFI R7 Frame(CFA, -8) CFI R6 Frame(CFA, -12) CFI R5 Frame(CFA, -16) CFI R4 Frame(CFA, -20) CFI CFA R13+20 MOV R4,R0 MOV R5,R1 // 92 WSHDR *ws; // 93 void *item=AllocMenuItem(data_library); SWI +407 MOV R6,R0 // 94 ws=AllocMenuWS(data_library,strlen(menutexts[curitem])); LDR R0,??menuitemhandler_0 ;; menutexts LDR R0,[R0, +R5, LSL #+2] SWI +27 MOV R1,R0 MOV R0,R4 SWI +408 MOV R7,R0 // 95 wsprintf(ws,pt,menutexts[curitem]); LDR R0,??menuitemhandler_0 ;; menutexts LDR R2,[R0, +R5, LSL #+2] LDR R1,??menuitemhandler_0+0x4 ;; pt MOV R0,R7 SWI +292 // 96 switch(curitem) MOVS R0,R5 BEQ ??menuitemhandler_1 SUBS R0,R5,#+1 BEQ ??menuitemhandler_2 B ??menuitemhandler_3 // 97 { // 98 case 0: // 99 SetMenuItemIconArray(data_library,item,icon_create); ??menuitemhandler_1: LDR R2,??menuitemhandler_0+0x8 ;; icon_create B ??menuitemhandler_4 // 100 break; // 101 case 1: // 102 SetMenuItemIconArray(data_library,item,icon_gy); ??menuitemhandler_2: LDR R2,??menuitemhandler_0+0xC ;; icon_gy ??menuitemhandler_4: MOV R1,R6 MOV R0,R4 SWI +409 // 103 break; // 104 /*case 2: // 105 SetMenuItemIconArray(data_library,item,icon3); // 106 break;*/ // 107 } // 108 SetMenuItemText(data_library, item, ws, curitem); ??menuitemhandler_3: MOV R3,R5 MOV R2,R7 MOV R1,R6 MOV R0,R4 SWI +410 // 109 } POP {R4-R7,PC} ;; return DATA ??menuitemhandler_0: DC32 menutexts DC32 pt DC32 icon_create DC32 icon_gy CFI EndBlock cfiBlock9 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock10 Using cfiCommon0 CFI NoFunction THUMB ??tmenu_keyhook??rT: BX PC Nop CFI EndBlock cfiBlock10 REQUIRE tmenu_keyhook // 110 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock11 Using cfiCommon1 CFI Function tmenu_keyhook ARM // 111 static int tmenu_keyhook(void *data_library, GUI_MSG *msg) // 112 { tmenu_keyhook: PUSH {LR} CFI ?RET Frame(CFA, -4) CFI CFA R13+4 // 113 if ((msg->keys==0x18)||(msg->keys==0x3D)) LDRSH R2,[R1, #+2] CMP R2,#+24 CMPNE R2,#+61 BNE ??tmenu_keyhook_0 // 114 { // 115 ((void (*)(void))(menuprocs[GetCurMenuItem(data_library)]))(); SWI +399 LDR R1,??tmenu_keyhook_1 ;; menuprocs LDR R0,[R1, +R0, LSL #+2] BLX R0 // 116 } // 117 return(0); ??tmenu_keyhook_0: MOV R0,#+0 POP {PC} ;; return DATA ??tmenu_keyhook_1: DC32 menuprocs CFI EndBlock cfiBlock11 // 118 } RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock12 Using cfiCommon0 CFI NoFunction THUMB ??CreateMenuLibrary??rT: BX PC Nop CFI EndBlock cfiBlock12 REQUIRE CreateMenuLibrary // 119 // 120 RSEG DATA_C:CONST:SORT:NOROOT(2) // 121 static const MENU_DESC tmenu= tmenu: DATA DC32 8, tmenu_keyhook, tmenu_ghook_library, 0H, mmenusoftkeys DC32 mmenu_skt, 17, menuitemhandler, 0H, 0H, 2 // 122 { // 123 8,tmenu_keyhook,tmenu_ghook_library,NULL, // 124 mmenusoftkeys, // 125 &mmenu_skt, // 126 0x11,//MENU_FLAG, // 127 menuitemhandler, // 128 NULL,//menuitems, // 129 NULL,//menuprocs, // 130 NUMITEMS // 131 }; // 132 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock13 Using cfiCommon1 CFI Function CreateMenuLibrary ARM // 133 void CreateMenuLibrary() // 134 { CreateMenuLibrary: PUSH {LR} CFI ?RET Frame(CFA, -4) CFI CFA R13+4 // 135 patch_header(&menuhdr); LDR R0,??CreateMenuLibrary_0 ;; menuhdr BL patch_header // 136 LibraryMenu_ID=CreateMenu(0,0,&tmenu,&menuhdr,0,NUMITEMS,0,0); MOV R0,#+0 PUSH {R0} CFI CFA R13+8 PUSH {R0} CFI CFA R13+12 MOV R0,#+2 PUSH {R0} CFI CFA R13+16 MOV R0,#+0 PUSH {R0} CFI CFA R13+20 LDR R3,??CreateMenuLibrary_0 ;; menuhdr LDR R2,??CreateMenuLibrary_0+0x4 ;; tmenu MOV R1,#+0 SWI +338 LDR R1,??CreateMenuLibrary_0+0x8 ;; LibraryMenu_ID STR R0,[R1, #+0] // 137 } ADD SP,SP,#+16 ;; stack cleaning CFI CFA R13+4 POP {PC} ;; return DATA ??CreateMenuLibrary_0: DC32 menuhdr DC32 tmenu DC32 LibraryMenu_ID CFI EndBlock cfiBlock13 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock14 Using cfiCommon1 CFI NoFunction ARM ??CreateMediaLibrary??rA: LDR R12,??Subroutine7_0 ;; CreateMediaLibrary BX R12 DATA ??Subroutine7_0: DC32 CreateMediaLibrary CFI EndBlock cfiBlock14 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock15 Using cfiCommon1 CFI NoFunction ARM ??BEER??rA: LDR R12,??Subroutine8_0 ;; BEER BX R12 DATA ??Subroutine8_0: DC32 BEER CFI EndBlock cfiBlock15 RSEG DATA_ID:CONST:SORT:NOROOT(2) `?`: DATA DC32 `?`, 0 RSEG DATA_ID:CONST:SORT:NOROOT(2) `?`: DATA DC32 `?`, 0 RSEG DATA_ID:CONST:SORT:NOROOT(2) `?`: DATA DC32 CreateMEDIALibrary, PerevirkaVidpovidnosti RSEG DATA_ID:CONST:SORT:NOROOT(2) `?*?DATA_ID`: RSEG INITTAB:CODE:ROOT(2) DATA ?init?tab?DATA_I: DCD sfe(DATA_I) - sfb(DATA_I), sfb(DATA_I), sfb(DATA_ID) RSEG INITTAB:CODE:ROOT(2) DATA ?init?tab?DATA_Z: DCD sfe(DATA_Z) - sfb(DATA_Z), sfb(DATA_Z), sfb(DATA_Z) END // // 480 bytes in segment CODE // 227 bytes in segment DATA_C // 24 bytes in segment DATA_I // 24 bytes in segment DATA_ID // 8 bytes in segment DATA_Z // 24 bytes in segment INITTAB // // 428 bytes of CODE memory (+ 76 bytes shared) // 251 bytes of CONST memory // 32 bytes of DATA memory // //Errors: none //Warnings: none