////////////////////////////////////////////////////////////////////////////// // / // IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION 24/Jul/2008 00:02:21 / // Copyright 1999-2005 IAR Systems. All rights reserved. / // / // Cpu mode = interwork / // Endian = little / // Stack alignment = 4 / // Source file = D:\Pasha\elf\evil_src\miosdel\miosd / // elka\missed_events.c / // Command line = "D:\Pasha\elf\evil_src\miosdel\miosd / // elka\missed_events.c" -D NEWSGOLD -D ELKA -lC / // "D:\Pasha\elf\evil_src\miosdel\miosd / // elka\Release_ELKA\List\" -lA / // "D:\Pasha\elf\evil_src\miosdel\miosd / // elka\Release_ELKA\List\" -o / // "D:\Pasha\elf\evil_src\miosdel\miosd / // elka\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\evil_src\miosdel\miosd / // elka\Release_ELKA\List\missed_events.s79 / // / // / ////////////////////////////////////////////////////////////////////////////// NAME missed_events 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` ??DataTable0 EQU 0 ??DataTable1 EQU 0 MULTWEAK ??check_it_again??rT MULTWEAK ??process_missed??rT MULTWEAK ??redraw_data??rT MULTWEAK ??start_timerize??rT PUBWEAK ?init?tab?DATA_I PUBLIC alt_state PUBLIC check_it_again FUNCTION check_it_again,0601H LOCFRAME CSTACK, 4, STACK PUBLIC freeze_time PUBLIC me PUBLIC missedt PUBLIC mx PUBLIC my PUBLIC process_missed FUNCTION process_missed,0601H LOCFRAME CSTACK, 12, STACK PUBLIC redraw_data FUNCTION redraw_data,0201H LOCFRAME CSTACK, 68, STACK PUBLIC start_timerize FUNCTION start_timerize,0203H 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 check_it_again SYMBOL "check_it_again" ??check_it_again??rT SYMBOL "??rT", check_it_again process_missed SYMBOL "process_missed" ??process_missed??rT SYMBOL "??rT", process_missed redraw_data SYMBOL "redraw_data" ??redraw_data??rT SYMBOL "??rT", redraw_data start_timerize SYMBOL "start_timerize" ??start_timerize??rT SYMBOL "??rT", start_timerize // D:\Pasha\elf\evil_src\miosdel\miosd elka\missed_events.c // 1 #include "..\inc\swilib.h" // 2 RSEG DATA_I:DATA:SORT:NOROOT(2) // 3 int mx=243; mx: DS8 4 REQUIRE `?` // 4 int my=0; my: DS8 4 REQUIRE `?` // 5 int alt_state; alt_state: DS8 4 REQUIRE `?` // 6 int freeze_time; freeze_time: DS8 4 REQUIRE `?` // 7 GBSTMR missedt; // 8 int me; me: DS8 4 REQUIRE `?` missedt: DS8 16 REQUIRE `?` RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock0 Using cfiCommon0 CFI NoFunction THUMB ??redraw_data??rT: BX PC Nop CFI EndBlock cfiBlock0 REQUIRE redraw_data // 9 /* // 10 IMGHDR screen2={0,0,8,""}; // 11 // 12 void DrwImg3(IMGHDR *img, int x, int y, char *pen, char *brush) // 13 { // 14 RECT rc; // 15 DRWOBJ drwobj; // 16 StoreXYWHtoRECT(&rc,x,y,img->w,img->h); // 17 SetPropTo_Obj5(&drwobj,&rc,0,img); // 18 SetColor(&drwobj,pen,brush); // 19 DrawObject(&drwobj); // 20 } // 21 // 22 void DoScreen2() // 23 { // 24 int ScrH=ScreenH(); // 25 int ScrW=ScreenW(); // 26 char *ms=RamScreenBuffer(); // 27 screen2.w=ScrW; // 28 screen2.h=ScrH; // 29 screen2.bitmap=malloc(ScrW*ScrH*2); // 30 memcpy(screen2.bitmap, ms, ScrW*ScrH*2); // 31 } // 32 // 33 */ RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock1 Using cfiCommon1 CFI Function redraw_data ARM // 34 void redraw_data() // 35 { redraw_data: PUSH {R4-R9,LR} CFI ?RET Frame(CFA, -4) CFI R9 Frame(CFA, -8) CFI R8 Frame(CFA, -12) CFI R7 Frame(CFA, -16) CFI R6 Frame(CFA, -20) CFI R5 Frame(CFA, -24) CFI R4 Frame(CFA, -28) CFI CFA R13+28 // 36 // DrwImg3(&screen2, 0, 0, NULL, NULL); // 37 DrawImg(mx, my, (int)"4:\\zbin\\miosd\\img9.png"); LDR R4,??DataTable2 ;; mx LDR R6,??redraw_data_0 ;; `?` LDR R0,[R4, #+0] LDR R1,[R4, #+4] MOV R2,R6 SWI +35 // 38 WSHDR *ws=AllocWS(64); MOV R0,#+64 SWI +293 MOV R5,R0 // 39 me=GetMissedEventCount(1); MOV R0,#+1 SWI +158 STR R0,[R4, #+16] // 40 #ifdef EVILFOX // 41 wsprintf(ws, "Calls: %d", me); // 42 #else // 43 wsprintf(ws, "%t: %d", "вызовы", me); MOV R3,R0 ADD R2,R6,#+32 ADD R1,R6,#+24 MOV R0,R5 SWI +292 // 44 #endif // 45 DrawString(ws,mx+5,my+5,mx+Get_WS_width(ws,9)+5,my+GetFontYSIZE(9)+5,9,0,GetPaletteAdrByColorIndex(2),GetPaletteAdrByColorIndex(23)); MOV R0,#+23 SWI +302 MOV R7,R0 MOV R0,#+2 SWI +302 MOV R8,R0 MOV R0,#+9 SWI +453 MOV R9,R0 MOV R1,#+9 MOV R0,R5 SWI +520 LDR R2,[R4, #+4] LDR R1,[R4, #+0] PUSH {R7} CFI CFA R13+32 PUSH {R8} CFI CFA R13+36 MOV R3,#+0 PUSH {R3} CFI CFA R13+40 ADD R0,R0,R1 ADD R1,R1,#+5 MOV R3,#+9 PUSH {R3} CFI CFA R13+44 ADD R3,R9,R2 ADD R2,R2,#+5 ADD R3,R3,#+5 PUSH {R3} CFI CFA R13+48 ADD R3,R0,#+5 MOV R0,R5 SWI +332 // 46 me=GetMissedEventCount(2); MOV R0,#+2 SWI +158 STR R0,[R4, #+16] // 47 #ifdef EVILFOX // 48 wsprintf(ws, "SMS: %d", me); // 49 #else // 50 wsprintf(ws, "%t: %d", "сообшения", me); MOV R3,R0 ADD R2,R6,#+40 ADD R1,R6,#+24 MOV R0,R5 SWI +292 // 51 #endif // 52 DrawString(ws,mx+5,my+23,mx+Get_WS_width(ws,9)+5,my+GetFontYSIZE(9)+23,9,0,GetPaletteAdrByColorIndex(2),GetPaletteAdrByColorIndex(23)); MOV R0,#+23 SWI +302 MOV R7,R0 MOV R0,#+2 SWI +302 MOV R8,R0 MOV R0,#+9 SWI +453 MOV R9,R0 MOV R1,#+9 MOV R0,R5 SWI +520 LDR R2,[R4, #+4] LDR R1,[R4, #+0] PUSH {R7} CFI CFA R13+52 PUSH {R8} CFI CFA R13+56 MOV R3,#+0 PUSH {R3} CFI CFA R13+60 ADD R0,R0,R1 ADD R1,R1,#+5 MOV R3,#+9 PUSH {R3} CFI CFA R13+64 ADD R3,R9,R2 ADD R2,R2,#+23 ADD R3,R3,#+23 PUSH {R3} CFI CFA R13+68 ADD R3,R0,#+5 MOV R0,R5 SWI +332 ADD SP,SP,#+40 CFI CFA R13+28 // 53 me=GetMissedEventCount(3); MOV R0,#+3 SWI +158 STR R0,[R4, #+16] // 54 #ifdef EVILFOX // 55 wsprintf(ws, "Other: %d", me); // 56 #else // 57 wsprintf(ws, "%t: %d", "разное", me); MOV R3,R0 ADD R2,R6,#+52 ADD R1,R6,#+24 MOV R0,R5 SWI +292 // 58 #endif // 59 DrawString(ws,mx+5,my+41,mx+Get_WS_width(ws,9)+3,my+GetFontYSIZE(9)+41,9,0,GetPaletteAdrByColorIndex(2),GetPaletteAdrByColorIndex(23)); MOV R0,#+23 SWI +302 MOV R7,R0 MOV R0,#+2 SWI +302 MOV R8,R0 MOV R0,#+9 SWI +453 MOV R6,R0 MOV R1,#+9 MOV R0,R5 SWI +520 LDR R1,[R4, #+4] LDR R4,[R4, #+0] PUSH {R7} CFI CFA R13+32 PUSH {R8} CFI CFA R13+36 MOV R2,#+0 PUSH {R2} CFI CFA R13+40 ADD R0,R0,R4 ADD R3,R0,#+3 MOV R0,R5 MOV R2,#+9 PUSH {R2} CFI CFA R13+44 ADD R2,R6,R1 ADD R2,R2,#+41 PUSH {R2} CFI CFA R13+48 ADD R2,R1,#+41 ADD R1,R4,#+5 SWI +332 // 60 FreeWS(ws); MOV R0,R5 SWI +297 // 61 } ADD SP,SP,#+20 CFI CFA R13+28 POP {R4-R9,PC} ;; return DATA ??redraw_data_0: DC32 `?` CFI EndBlock cfiBlock1 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock2 Using cfiCommon0 CFI NoFunction THUMB ??check_it_again??rT: BX PC Nop CFI EndBlock cfiBlock2 REQUIRE check_it_again // 62 // 63 void start_timerize(void); // 64 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock3 Using cfiCommon1 CFI Function check_it_again ARM // 65 void check_it_again() // 66 { check_it_again: PUSH {LR} CFI ?RET Frame(CFA, -4) CFI CFA R13+4 // 67 if(GetMissedEventCount(0)>0) start_timerize(); MOV R0,#+0 SWI +158 CMP R0,#+1 POPLT {PC} LDR R0,??DataTable3 ;; mx + 8 MOV R1,#+1 STR R1,[R0, #+0] BL process_missed // 68 } POP {PC} ;; return CFI EndBlock cfiBlock3 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock4 Using cfiCommon0 CFI NoFunction THUMB ??process_missed??rT: BX PC Nop CFI EndBlock cfiBlock4 REQUIRE process_missed // 69 // 70 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock5 Using cfiCommon1 CFI Function process_missed ARM // 71 void process_missed() // 72 { process_missed: PUSH {R4,R5,LR} CFI ?RET Frame(CFA, -4) CFI R5 Frame(CFA, -8) CFI R4 Frame(CFA, -12) CFI CFA R13+12 // 73 if(freeze_time) LDR R4,??DataTable2 ;; mx LDR R5,??process_missed_0 ;; process_missed LDR R0,[R4, #+12] CMP R0,#+0 // 74 { // 75 freeze_time--; SUBNE R0,R0,#+1 STRNE R0,[R4, #+12] // 76 redraw_data(); BNE ??process_missed_1 // 77 GBS_StartTimerProc(&missedt, 5, process_missed); // 78 } // 79 else // 80 if((mx>100)&&(alt_state)) LDR R0,[R4, #+0] CMP R0,#+101 BLT ??process_missed_2 LDR R1,[R4, #+8] CMP R1,#+0 BEQ ??process_missed_2 // 81 { // 82 mx=mx-2; SUB R0,R0,#+2 STR R0,[R4, #+0] // 83 if(mx<100) CMP R0,#+100 BGE ??process_missed_1 // 84 { // 85 freeze_time=100; MOV R0,#+100 STR R0,[R4, #+12] // 86 alt_state=0; MOV R0,#+0 STR R0,[R4, #+8] // 87 } // 88 redraw_data(); ??process_missed_1: BL redraw_data // 89 GBS_StartTimerProc(&missedt, 5, process_missed); MOV R2,R5 MOV R1,#+5 ADD R0,R4,#+20 SWI +77 POP {R4,R5,PC} // 90 } // 91 else // 92 /* if(mx<245) // 93 { // 94 mx=mx+2; // 95 redraw_data(); // 96 GBS_StartTimerProc(&missedt, 5, process_missed); // 97 } // 98 else*/ // 99 { // 100 mx=243; ??process_missed_2: MOV R0,#+243 STR R0,[R4, #+0] // 101 // mfree(screen2.bitmap); // 102 if(!IsIdleUiOnTop()) SWI +197 CMP R0,#+0 BNE ??process_missed_3 // 103 RefreshGUI(); SWI +406 // 104 GBS_StartTimerProc(&missedt, 60*216, check_it_again); ??process_missed_3: LDR R2,??process_missed_0+0x4 ;; check_it_again MOV R1,#+160 ORR R1,R1,#0x3200 ADD R0,R4,#+20 SWI +77 POP {R4,R5,PC} DATA ??process_missed_0: DC32 process_missed DC32 check_it_again CFI EndBlock cfiBlock5 // 105 } // 106 } RSEG CODE:CODE:NOROOT(2) DATA ??DataTable2: DC32 mx RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock6 Using cfiCommon0 CFI NoFunction THUMB ??start_timerize??rT: BX PC Nop CFI EndBlock cfiBlock6 REQUIRE start_timerize // 107 RSEG CODE:CODE:NOROOT(2) CFI Block cfiBlock7 Using cfiCommon1 CFI Function start_timerize ARM // 108 void start_timerize() // 109 { // 110 // DoScreen2(); // 111 alt_state=1; start_timerize: LDR R0,??DataTable3 ;; mx + 8 MOV R1,#+1 STR R1,[R0, #+0] // 112 process_missed(); B process_missed ;; tailcall CFI EndBlock cfiBlock7 // 113 } RSEG CODE:CODE:NOROOT(2) DATA ??DataTable3: DC32 mx + 8 RSEG DATA_ID:CONST:SORT:NOROOT(2) `?`: DATA DC32 243 `?`: DC32 0 `?`: DC8 0, 0, 0, 0 `?`: DC8 0, 0, 0, 0 `?`: DC8 0, 0, 0, 0 `?`: DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 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 DATA_C:CONST:SORT:NOROOT(2) `?`: DATA DC8 "4:\\zbin\\miosd\\img9.png" DC8 0 DC8 "%t: %d" DC8 0 DC8 "\342\373\347\356\342\373" DC8 0 DC8 "\361\356\356\341\370\345\355\350\377" DC8 0, 0 DC8 "\360\340\347\355\356\345" DC8 0 END // 114 // 115 // // 756 bytes in segment CODE // 60 bytes in segment DATA_C // 36 bytes in segment DATA_I // 36 bytes in segment DATA_ID // 12 bytes in segment INITTAB // // 740 bytes of CODE memory (+ 28 bytes shared) // 96 bytes of CONST memory // 36 bytes of DATA memory // //Errors: none //Warnings: none