############################################################################## # # # IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION 19/Dec/2010 16:45:20 # # Copyright 1999-2005 IAR Systems. All rights reserved. # # # # Cpu mode = interwork # # Endian = little # # Stack alignment = 4 # # Source file = D:\pasha\elf\_MY_PROJECT_\naticq_mod\screen_save.c # # Command line = D:\pasha\elf\_MY_PROJECT_\naticq_mod\screen_save.c # # -D NEWSGOLD --preprocess D:\pasha\elf\_MY_PROJECT_\n # # aticq_mod\Release\List\ -lC # # D:\pasha\elf\_MY_PROJECT_\naticq_mod\Release\List\ # # -o D:\pasha\elf\_MY_PROJECT_\naticq_mod\Release\Obj\ # # -s9 --no_unroll --cpu_mode arm --endian little # # --cpu ARM926EJ-S --stack_align 4 --interwork # # --separate_cluster_for_initialized_variables -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_\naticq_mod\Release\List\sc # # reen_save.lst # # Object file = D:\pasha\elf\_MY_PROJECT_\naticq_mod\Release\Obj\scr # # een_save.r79 # # # # # ############################################################################## D:\pasha\elf\_MY_PROJECT_\naticq_mod\screen_save.c 1 #ifdef NEWSGOLD 2 #include "../inc/swilib.h" 3 #include "../inc/pnglist.h" 4 #include "NatICQ.h" 5 #include "main.h" 6 #include "rect_patcher.h" 7 #include "screen_save.h" 8 #include "strings.h" 9 10 typedef struct 11 { 12 GUI gui; 13 WSHDR *ws; 14 }SCREEN_GUI; 15 \ In segment DATA_Z, align 4, align-sorted 16 int battery; \ battery: \ 00000000 DS8 4 17 int iks,igrek; \ iks: \ 00000004 DS8 4 \ igrek: \ 00000008 DS8 4 18 char laiks[32]; 19 TTime time; \ time: \ 0000000C DS8 8 \ In segment DATA_Z, align 4, align-sorted \ laiks: \ 00000000 DS8 32 \ In segment DATA_Z, align 4, align-sorted 20 int color_SS; \ color_SS: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 21 int menu; \ menu: \ 00000000 DS8 4 22 //extern WSHDR *wsLogBuffer; 23 24 \ In segment CODE, align 4, keep-with-next 25 void Draw() 26 { \ Draw: \ 00000000 F0412DE9 PUSH {R4-R8,LR} 27 WSHDR *ws=AllocWS(32); 28 GetDateTime(NULL, &time); \ 00000004 ........ LDR R6,??DataTable2 ;; battery \ 00000008 2000A0E3 MOV R0,#+32 \ 0000000C 250100EF SWI +293 \ 00000010 0040A0E1 MOV R4,R0 \ 00000014 0C1086E2 ADD R1,R6,#+12 \ 00000018 0000A0E3 MOV R0,#+0 \ 0000001C B40000EF SWI +180 29 wsprintf(ws, "%02d:%02d", time.hour, time.min); \ 00000020 0D30D6E5 LDRB R3,[R6, #+13] \ 00000024 0C20D6E5 LDRB R2,[R6, #+12] \ 00000028 88109FE5 LDR R1,??Draw_0 ;; `?` \ 0000002C 0400A0E1 MOV R0,R4 \ 00000030 240100EF SWI +292 30 DrawString(ws,iks-10,igrek-40,iks-10+Get_WS_width(ws,FONT_MEDIUM_BOLD)+2,igrek-40+GetFontYSIZE(FONT_MEDIUM_BOLD),FONT_SMALL,0,GetPaletteAdrByColorIndex(5),GetPaletteAdrByColorIndex(23)); \ 00000034 1700A0E3 MOV R0,#+23 \ 00000038 2E0100EF SWI +302 \ 0000003C 0070A0E1 MOV R7,R0 \ 00000040 0500A0E3 MOV R0,#+5 \ 00000044 2E0100EF SWI +302 \ 00000048 0080A0E1 MOV R8,R0 \ 0000004C 0500A0E3 MOV R0,#+5 \ 00000050 C50100EF SWI +453 \ 00000054 0050A0E1 MOV R5,R0 \ 00000058 0510A0E3 MOV R1,#+5 \ 0000005C 0400A0E1 MOV R0,R4 \ 00000060 080200EF SWI +520 \ 00000064 041096E5 LDR R1,[R6, #+4] \ 00000068 082096E5 LDR R2,[R6, #+8] \ 0000006C 80002DE9 PUSH {R7} \ 00000070 00012DE9 PUSH {R8} \ 00000074 0030A0E3 MOV R3,#+0 \ 00000078 08002DE9 PUSH {R3} \ 0000007C 010080E0 ADD R0,R0,R1 \ 00000080 0A1041E2 SUB R1,R1,#+10 \ 00000084 0B30A0E3 MOV R3,#+11 \ 00000088 08002DE9 PUSH {R3} \ 0000008C 023085E0 ADD R3,R5,R2 \ 00000090 282042E2 SUB R2,R2,#+40 \ 00000094 283043E2 SUB R3,R3,#+40 \ 00000098 08002DE9 PUSH {R3} \ 0000009C 083040E2 SUB R3,R0,#+8 \ 000000A0 0400A0E1 MOV R0,R4 \ 000000A4 4C0100EF SWI +332 31 FreeWS(ws); \ 000000A8 0400A0E1 MOV R0,R4 \ 000000AC 290100EF SWI +297 32 } \ 000000B0 14D08DE2 ADD SP,SP,#+20 \ 000000B4 F081BDE8 POP {R4-R8,PC} ;; return \ ??Draw_0: \ 000000B8 ........ DC32 `?` 33 \ In segment CODE, align 4, keep-with-next 34 void Draw2() 35 { \ Draw2: \ 00000000 F0472DE9 PUSH {R4-R10,LR} 36 battery = *RamCap(); \ 00000004 CC409FE5 LDR R4,??Draw2_0 ;; battery \ 00000008 C88000EF SWI +32968 \ 0000000C B000D0E1 LDRH R0,[R0, #+0] \ 00000010 000084E5 STR R0,[R4, #+0] 37 iks=iks-10; \ 00000014 040094E5 LDR R0,[R4, #+4] \ 00000018 0A0040E2 SUB R0,R0,#+10 \ 0000001C 040084E5 STR R0,[R4, #+4] 38 igrek = igrek-7+GetFontYSIZE(11); \ 00000020 0B00A0E3 MOV R0,#+11 \ 00000024 C50100EF SWI +453 \ 00000028 081094E5 LDR R1,[R4, #+8] \ 0000002C 070040E2 SUB R0,R0,#+7 \ 00000030 010080E0 ADD R0,R0,R1 \ 00000034 080084E5 STR R0,[R4, #+8] 39 WSHDR *ws=AllocWS(32); \ 00000038 2000A0E3 MOV R0,#+32 \ 0000003C 250100EF SWI +293 40 wsprintf(ws,"Bat:%d%", battery); \ 00000040 002094E5 LDR R2,[R4, #+0] \ 00000044 90109FE5 LDR R1,??Draw2_0+0x4 ;; `?` \ 00000048 0050A0E1 MOV R5,R0 \ 0000004C 240100EF SWI +292 41 DrawString(ws,ScreenW()-Get_WS_width(ws,FONT_SMALL_ITALIC_BOLD)-2,igrek,ScreenW()-1,igrek+GetFontYSIZE(FONT_SMALL_ITALIC_BOLD), 42 FONT_SMALL_ITALIC_BOLD,TEXT_ALIGNRIGHT,GetPaletteAdrByColorIndex(2),GetPaletteAdrByColorIndex(23)); \ 00000050 1700A0E3 MOV R0,#+23 \ 00000054 2E0100EF SWI +302 \ 00000058 0090A0E1 MOV R9,R0 \ 0000005C 0200A0E3 MOV R0,#+2 \ 00000060 2E0100EF SWI +302 \ 00000064 00A0A0E1 MOV R10,R0 \ 00000068 0E00A0E3 MOV R0,#+14 \ 0000006C C50100EF SWI +453 \ 00000070 0060A0E1 MOV R6,R0 \ 00000074 888100EF SWI +33160 \ 00000078 0070A0E1 MOV R7,R0 \ 0000007C 888100EF SWI +33160 \ 00000080 0080A0E1 MOV R8,R0 \ 00000084 0E10A0E3 MOV R1,#+14 \ 00000088 0500A0E1 MOV R0,R5 \ 0000008C 080200EF SWI +520 \ 00000090 082094E5 LDR R2,[R4, #+8] \ 00000094 00022DE9 PUSH {R9} \ 00000098 00042DE9 PUSH {R10} \ 0000009C 0410A0E3 MOV R1,#+4 \ 000000A0 02002DE9 PUSH {R1} \ 000000A4 013047E2 SUB R3,R7,#+1 \ 000000A8 000048E0 SUB R0,R8,R0 \ 000000AC 0E10A0E3 MOV R1,#+14 \ 000000B0 02002DE9 PUSH {R1} \ 000000B4 021086E0 ADD R1,R6,R2 \ 000000B8 02002DE9 PUSH {R1} \ 000000BC 021040E2 SUB R1,R0,#+2 \ 000000C0 0500A0E1 MOV R0,R5 \ 000000C4 4C0100EF SWI +332 43 FreeWS(ws); \ 000000C8 0500A0E1 MOV R0,R5 \ 000000CC 290100EF SWI +297 44 } \ 000000D0 14D08DE2 ADD SP,SP,#+20 \ 000000D4 F087BDE8 POP {R4-R10,PC} ;; return \ ??Draw2_0: \ 000000D8 ........ DC32 battery \ 000000DC ........ DC32 `?` 45 46 extern int total_unread; 47 extern int total_unread2; 48 \ In segment CODE, align 4, keep-with-next 49 void Draw3() 50 { \ Draw3: \ 00000000 F0472DE9 PUSH {R4-R10,LR} 51 iks=iks-15; \ 00000004 ........ LDR R4,??DataTable2 ;; battery \ 00000008 040094E5 LDR R0,[R4, #+4] \ 0000000C 0F0040E2 SUB R0,R0,#+15 \ 00000010 040084E5 STR R0,[R4, #+4] 52 igrek = igrek-2+GetFontYSIZE(11); \ 00000014 0B00A0E3 MOV R0,#+11 \ 00000018 C50100EF SWI +453 \ 0000001C 081094E5 LDR R1,[R4, #+8] \ 00000020 020040E2 SUB R0,R0,#+2 \ 00000024 010080E0 ADD R0,R0,R1 \ 00000028 080084E5 STR R0,[R4, #+8] 53 WSHDR *ws=AllocWS(32); \ 0000002C 2000A0E3 MOV R0,#+32 \ 00000030 250100EF SWI +293 54 wsprintf(ws, "Unread: %d/%d", total_unread, total_unread2); \ 00000034 A0109FE5 LDR R1,??Draw3_0 ;; `?` \ 00000038 0050A0E1 MOV R5,R0 \ 0000003C 9C009FE5 LDR R0,??Draw3_0+0x4 ;; total_unread2 \ 00000040 003090E5 LDR R3,[R0, #+0] \ 00000044 98009FE5 LDR R0,??Draw3_0+0x8 ;; total_unread \ 00000048 002090E5 LDR R2,[R0, #+0] \ 0000004C 0500A0E1 MOV R0,R5 \ 00000050 240100EF SWI +292 55 DrawString(ws,ScreenW()-Get_WS_width(ws,FONT_SMALL_ITALIC_BOLD)-2,igrek,ScreenW()-1,igrek+GetFontYSIZE(FONT_SMALL_ITALIC_BOLD), 56 FONT_SMALL_ITALIC_BOLD,0,GetPaletteAdrByColorIndex(2),GetPaletteAdrByColorIndex(23)); \ 00000054 1700A0E3 MOV R0,#+23 \ 00000058 2E0100EF SWI +302 \ 0000005C 0090A0E1 MOV R9,R0 \ 00000060 0200A0E3 MOV R0,#+2 \ 00000064 2E0100EF SWI +302 \ 00000068 00A0A0E1 MOV R10,R0 \ 0000006C 0E00A0E3 MOV R0,#+14 \ 00000070 C50100EF SWI +453 \ 00000074 0060A0E1 MOV R6,R0 \ 00000078 888100EF SWI +33160 \ 0000007C 0070A0E1 MOV R7,R0 \ 00000080 888100EF SWI +33160 \ 00000084 0080A0E1 MOV R8,R0 \ 00000088 0E10A0E3 MOV R1,#+14 \ 0000008C 0500A0E1 MOV R0,R5 \ 00000090 080200EF SWI +520 \ 00000094 082094E5 LDR R2,[R4, #+8] \ 00000098 00022DE9 PUSH {R9} \ 0000009C 00042DE9 PUSH {R10} \ 000000A0 0010A0E3 MOV R1,#+0 \ 000000A4 02002DE9 PUSH {R1} \ 000000A8 013047E2 SUB R3,R7,#+1 \ 000000AC 000048E0 SUB R0,R8,R0 \ 000000B0 0E10A0E3 MOV R1,#+14 \ 000000B4 02002DE9 PUSH {R1} \ 000000B8 021086E0 ADD R1,R6,R2 \ 000000BC 02002DE9 PUSH {R1} \ 000000C0 021040E2 SUB R1,R0,#+2 \ 000000C4 0500A0E1 MOV R0,R5 \ 000000C8 4C0100EF SWI +332 57 FreeWS(ws); \ 000000CC 0500A0E1 MOV R0,R5 \ 000000D0 290100EF SWI +297 58 } \ 000000D4 14D08DE2 ADD SP,SP,#+20 \ 000000D8 F087BDE8 POP {R4-R10,PC} ;; return \ ??Draw3_0: \ 000000DC ........ DC32 `?` \ 000000E0 ........ DC32 total_unread2 \ 000000E4 ........ DC32 total_unread 59 60 extern unsigned int UIN; 61 \ In segment CODE, align 4, keep-with-next 62 void Draw5() 63 { \ Draw5: \ 00000000 F0402DE9 PUSH {R4-R7,LR} 64 WSHDR *ws=AllocWS(32); \ 00000004 2000A0E3 MOV R0,#+32 \ 00000008 250100EF SWI +293 65 wsprintf(ws, "NatICQ: %d", UIN); \ 0000000C 7C109FE5 LDR R1,??Draw5_0 ;; `?` \ 00000010 0040A0E1 MOV R4,R0 \ 00000014 78009FE5 LDR R0,??Draw5_0+0x4 ;; UIN \ 00000018 002090E5 LDR R2,[R0, #+0] \ 0000001C 0400A0E1 MOV R0,R4 \ 00000020 240100EF SWI +292 66 DrawString(ws,0,YDISP+15,ScreenW()-1,40+GetFontYSIZE(FONT_SMALL_ITALIC_BOLD),FONT_SMALL_ITALIC_BOLD,TEXT_ALIGNMIDDLE,GetPaletteAdrByColorIndex(4),GetPaletteAdrByColorIndex(23)); \ 00000024 1700A0E3 MOV R0,#+23 \ 00000028 2E0100EF SWI +302 \ 0000002C 0050A0E1 MOV R5,R0 \ 00000030 0400A0E3 MOV R0,#+4 \ 00000034 2E0100EF SWI +302 \ 00000038 0060A0E1 MOV R6,R0 \ 0000003C 0E00A0E3 MOV R0,#+14 \ 00000040 C50100EF SWI +453 \ 00000044 0070A0E1 MOV R7,R0 \ 00000048 888100EF SWI +33160 \ 0000004C 20002DE9 PUSH {R5} \ 00000050 40002DE9 PUSH {R6} \ 00000054 0210A0E3 MOV R1,#+2 \ 00000058 02002DE9 PUSH {R1} \ 0000005C 013040E2 SUB R3,R0,#+1 \ 00000060 0F20A0E3 MOV R2,#+15 \ 00000064 0400A0E1 MOV R0,R4 \ 00000068 0E10A0E3 MOV R1,#+14 \ 0000006C 02002DE9 PUSH {R1} \ 00000070 281087E2 ADD R1,R7,#+40 \ 00000074 02002DE9 PUSH {R1} \ 00000078 0010A0E3 MOV R1,#+0 \ 0000007C 4C0100EF SWI +332 67 FreeWS(ws); \ 00000080 0400A0E1 MOV R0,R4 \ 00000084 290100EF SWI +297 68 } \ 00000088 14D08DE2 ADD SP,SP,#+20 \ 0000008C F080BDE8 POP {R4-R7,PC} ;; return \ ??Draw5_0: \ 00000090 ........ DC32 `?` \ 00000094 ........ DC32 UIN 69 70 extern int uptimeHour; 71 extern int uptimeMin; 72 extern int uptimeSec; 73 extern char hostbuf2[128]; 74 extern char PINGO[256]; 75 extern int main2_count; 76 extern int main_count; 77 extern int msg_away_timer; 78 extern int connect_state; 79 extern volatile unsigned long ALLTOTALRECEIVED; //by BoBa 10.07 80 extern volatile unsigned long ALLTOTALSENDED; 81 extern volatile int sendq_l; //Длинна очереди для send 82 extern int kopa_online; 83 extern int kopa_kontaktu; 84 extern int away_m; 85 extern int CurrentPrivateStatus; 86 extern int Is_Vibra_Enabled; 87 extern unsigned int Is_Sounds_Enabled; 88 extern int Is_Double_Vibra_On; 89 extern char away_msg_time_dace[]; 90 extern int saver_on; 91 extern int dace_unread; 92 \ In segment DATA_I, align 4, align-sorted 93 char black[]={0x00,0x00,0x00,0x20}; \ black: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment CODE, align 4, keep-with-next 94 void reftes() 95 { 96 iks=95; \ reftes: \ 00000000 ........ LDR R0,??DataTable2 ;; battery \ 00000004 F04F2DE9 PUSH {R4-R11,LR} \ 00000008 40D04DE2 SUB SP,SP,#+64 \ 0000000C 5F10A0E3 MOV R1,#+95 \ 00000010 041080E5 STR R1,[R0, #+4] 97 igrek=130; \ 00000014 8210A0E3 MOV R1,#+130 \ 00000018 081080E5 STR R1,[R0, #+8] 98 int scr_w=ScreenW()-1; \ 0000001C 888100EF SWI +33160 \ 00000020 015040E2 SUB R5,R0,#+1 99 int scr_h=ScreenH()-1; \ 00000024 898100EF SWI +33161 \ 00000028 016040E2 SUB R6,R0,#+1 100 WSHDR *ws=AllocWS(128); \ 0000002C 8000A0E3 MOV R0,#+128 \ 00000030 250100EF SWI +293 \ 00000034 0040A0E1 MOV R4,R0 101 102 DrawRectangle(0,YDISP,scr_w,scr_h,0,black,black); \ 00000038 ........ LDR R0,??DataTable4 ;; black \ 0000003C 0630A0E1 MOV R3,R6 103 char *sws=malloc(64); 104 *(sws)=0; 105 106 int y=YDISP+60; 107 char ss[64]; 108 if(away_m){ sprintf(ss,"[A:%s]",away_msg_time_dace); strcat(sws,ss); } \ 00000040 08649FE5 LDR R6,??reftes_0+0x10 ;; `?` \ 00000044 0010A0E1 MOV R1,R0 \ 00000048 02002DE9 PUSH {R1} \ 0000004C 01002DE9 PUSH {R0} \ 00000050 0520A0E1 MOV R2,R5 \ 00000054 0010A0E3 MOV R1,#+0 \ 00000058 0000A0E3 MOV R0,#+0 \ 0000005C 01002DE9 PUSH {R0} \ 00000060 B40100EF SWI +436 \ 00000064 4000A0E3 MOV R0,#+64 \ 00000068 140000EF SWI +20 \ 0000006C 0050A0E1 MOV R5,R0 \ 00000070 0000A0E3 MOV R0,#+0 \ 00000074 0000C5E5 STRB R0,[R5, #+0] \ 00000078 D4039FE5 LDR R0,??reftes_0+0x14 ;; away_m \ 0000007C 000090E5 LDR R0,[R0, #+0] \ 00000080 0CD08DE2 ADD SP,SP,#+12 \ 00000084 000050E3 CMP R0,#+0 \ 00000088 0600000A BEQ ??reftes_1 \ 0000008C C4239FE5 LDR R2,??reftes_0+0x18 ;; away_msg_time_dace \ 00000090 0610A0E1 MOV R1,R6 \ 00000094 0D00A0E1 MOV R0,SP \ 00000098 160000EF SWI +22 \ 0000009C 0D10A0E1 MOV R1,SP \ 000000A0 0500A0E1 MOV R0,R5 \ 000000A4 170000EF SWI +23 109 if(CurrentPrivateStatus==1) { strcat(sws,"[I]"); } \ ??reftes_1: \ 000000A8 AC039FE5 LDR R0,??reftes_0+0x1C ;; CurrentPrivateStatus \ 000000AC 000090E5 LDR R0,[R0, #+0] \ 000000B0 010050E3 CMP R0,#+1 \ 000000B4 0200001A BNE ??reftes_2 \ 000000B8 E01F8FE2 ADR R1,??reftes_0 ;; "[I]" \ 000000BC 0500A0E1 MOV R0,R5 \ 000000C0 170000EF SWI +23 110 if(Is_Vibra_Enabled) { strcat(sws,"[V]"); } \ ??reftes_2: \ 000000C4 94039FE5 LDR R0,??reftes_0+0x20 ;; Is_Vibra_Enabled \ 000000C8 000090E5 LDR R0,[R0, #+0] \ 000000CC 000050E3 CMP R0,#+0 \ 000000D0 0200000A BEQ ??reftes_3 \ 000000D4 DA1F8FE2 ADR R1,??reftes_0+0x4 ;; "[V]" \ 000000D8 0500A0E1 MOV R0,R5 \ 000000DC 170000EF SWI +23 111 if(Is_Sounds_Enabled) { strcat(sws,"[S]"); } \ ??reftes_3: \ 000000E0 7C039FE5 LDR R0,??reftes_0+0x24 ;; Is_Sounds_Enabled \ 000000E4 000090E5 LDR R0,[R0, #+0] \ 000000E8 000050E3 CMP R0,#+0 \ 000000EC 0200000A BEQ ??reftes_4 \ 000000F0 D41F8FE2 ADR R1,??reftes_0+0x8 ;; "[S]" \ 000000F4 0500A0E1 MOV R0,R5 \ 000000F8 170000EF SWI +23 112 if(Is_Double_Vibra_On) { strcat(sws,"[Vr]"); } \ ??reftes_4: \ 000000FC 64039FE5 LDR R0,??reftes_0+0x28 ;; Is_Double_Vibra_On \ 00000100 000090E5 LDR R0,[R0, #+0] \ 00000104 000050E3 CMP R0,#+0 \ 00000108 0200000A BEQ ??reftes_5 \ 0000010C 081086E2 ADD R1,R6,#+8 \ 00000110 0500A0E1 MOV R0,R5 \ 00000114 170000EF SWI +23 113 114 wsprintf(ws,"%s",sws); \ ??reftes_5: \ 00000118 0520A0E1 MOV R2,R5 \ 0000011C CA1F8FE2 ADR R1,??reftes_0+0xC ;; "%s" \ 00000120 0400A0E1 MOV R0,R4 \ 00000124 240100EF SWI +292 115 DrawString(ws,2,ScreenH()-GetFontYSIZE(FONT_SMALL_ITALIC_BOLD)-4,ScreenW(),ScreenH(),FONT_SMALL_ITALIC_BOLD,TEXT_ALIGNMIDDLE,GetPaletteAdrByColorIndex(2),GetPaletteAdrByColorIndex(23)); \ 00000128 1700A0E3 MOV R0,#+23 \ 0000012C 2E0100EF SWI +302 \ 00000130 00A0A0E1 MOV R10,R0 \ 00000134 0200A0E3 MOV R0,#+2 \ 00000138 2E0100EF SWI +302 \ 0000013C 00B0A0E1 MOV R11,R0 \ 00000140 898100EF SWI +33161 \ 00000144 0070A0E1 MOV R7,R0 \ 00000148 888100EF SWI +33160 \ 0000014C 0080A0E1 MOV R8,R0 \ 00000150 898100EF SWI +33161 \ 00000154 0090A0E1 MOV R9,R0 \ 00000158 0E00A0E3 MOV R0,#+14 \ 0000015C C50100EF SWI +453 \ 00000160 00042DE9 PUSH {R10} \ 00000164 00082DE9 PUSH {R11} \ 00000168 0210A0E3 MOV R1,#+2 \ 0000016C 02002DE9 PUSH {R1} \ 00000170 0830A0E1 MOV R3,R8 \ 00000174 000049E0 SUB R0,R9,R0 \ 00000178 042040E2 SUB R2,R0,#+4 \ 0000017C 0E10A0E3 MOV R1,#+14 \ 00000180 02002DE9 PUSH {R1} \ 00000184 80002DE9 PUSH {R7} 116 117 if(connect_state==3) \ 00000188 DC729FE5 LDR R7,??reftes_0+0x2C ;; connect_state \ 0000018C 0210A0E3 MOV R1,#+2 \ 00000190 0400A0E1 MOV R0,R4 \ 00000194 4C0100EF SWI +332 \ 00000198 000097E5 LDR R0,[R7, #+0] \ 0000019C 14D08DE2 ADD SP,SP,#+20 \ 000001A0 030050E3 CMP R0,#+3 \ 000001A4 0F00001A BNE ??reftes_6 118 wsprintf(ws,"Online: %02d:%02d:%02d\nServer: %s \n%s\n", uptimeHour, uptimeMin, uptimeSec, hostbuf2,PINGO); \ 000001A8 C0029FE5 LDR R0,??reftes_0+0x30 ;; PINGO \ 000001AC 101086E2 ADD R1,R6,#+16 \ 000001B0 01002DE9 PUSH {R0} \ 000001B4 B8029FE5 LDR R0,??reftes_0+0x34 ;; hostbuf2 \ 000001B8 01002DE9 PUSH {R0} \ 000001BC B4029FE5 LDR R0,??reftes_0+0x38 ;; uptimeSec \ 000001C0 000090E5 LDR R0,[R0, #+0] \ 000001C4 01002DE9 PUSH {R0} \ 000001C8 AC029FE5 LDR R0,??reftes_0+0x3C ;; uptimeMin \ 000001CC 003090E5 LDR R3,[R0, #+0] \ 000001D0 A8029FE5 LDR R0,??reftes_0+0x40 ;; uptimeHour \ 000001D4 002090E5 LDR R2,[R0, #+0] \ 000001D8 0400A0E1 MOV R0,R4 \ 000001DC 240100EF SWI +292 \ 000001E0 0CD08DE2 ADD SP,SP,#+12 \ 000001E4 020000EA B ??reftes_7 119 else 120 wsprintf(ws,"Offline\n"); \ ??reftes_6: \ 000001E8 381086E2 ADD R1,R6,#+56 \ 000001EC 0400A0E1 MOV R0,R4 \ 000001F0 240100EF SWI +292 121 122 DrawString(ws,2,y,ScreenW()-1,y+(GetFontYSIZE(FONT_SMALL_ITALIC_BOLD)*3),FONT_SMALL_ITALIC_BOLD,0,GetPaletteAdrByColorIndex(2),GetPaletteAdrByColorIndex(23)); \ ??reftes_7: \ 000001F4 1700A0E3 MOV R0,#+23 \ 000001F8 2E0100EF SWI +302 \ 000001FC 0090A0E1 MOV R9,R0 \ 00000200 0200A0E3 MOV R0,#+2 \ 00000204 2E0100EF SWI +302 \ 00000208 00A0A0E1 MOV R10,R0 \ 0000020C 0E00A0E3 MOV R0,#+14 \ 00000210 C50100EF SWI +453 \ 00000214 0080A0E1 MOV R8,R0 \ 00000218 888100EF SWI +33160 \ 0000021C 00022DE9 PUSH {R9} \ 00000220 00042DE9 PUSH {R10} \ 00000224 0010A0E3 MOV R1,#+0 \ 00000228 02002DE9 PUSH {R1} \ 0000022C 013040E2 SUB R3,R0,#+1 \ 00000230 3C20A0E3 MOV R2,#+60 \ 00000234 0400A0E1 MOV R0,R4 \ 00000238 0E10A0E3 MOV R1,#+14 \ 0000023C 02002DE9 PUSH {R1} \ 00000240 881088E0 ADD R1,R8,R8, LSL #+1 \ 00000244 3C1081E2 ADD R1,R1,#+60 \ 00000248 02002DE9 PUSH {R1} \ 0000024C 0210A0E3 MOV R1,#+2 \ 00000250 4C0100EF SWI +332 123 if(connect_state==3) \ 00000254 000097E5 LDR R0,[R7, #+0] \ 00000258 14D08DE2 ADD SP,SP,#+20 \ 0000025C 030050E3 CMP R0,#+3 \ 00000260 0E00A0E3 MOV R0,#+14 \ 00000264 0200001A BNE ??reftes_8 124 y+=(GetFontYSIZE(FONT_SMALL_ITALIC_BOLD)*3); \ 00000268 C50100EF SWI +453 \ 0000026C 800080E0 ADD R0,R0,R0, LSL #+1 \ 00000270 000000EA B ??reftes_9 125 else 126 y+=(GetFontYSIZE(FONT_SMALL_ITALIC_BOLD)*1); \ ??reftes_8: \ 00000274 C50100EF SWI +453 \ ??reftes_9: \ 00000278 3C7080E2 ADD R7,R0,#+60 127 128 wsprintf(ws, "Send mess: %d \nRecv mess: %d \n", main2_count, main_count); \ 0000027C 00029FE5 LDR R0,??reftes_0+0x44 ;; main_count \ 00000280 441086E2 ADD R1,R6,#+68 \ 00000284 003090E5 LDR R3,[R0, #+0] \ 00000288 F8019FE5 LDR R0,??reftes_0+0x48 ;; main2_count \ 0000028C 002090E5 LDR R2,[R0, #+0] \ 00000290 0400A0E1 MOV R0,R4 \ 00000294 240100EF SWI +292 129 DrawString(ws,2,y,ScreenW()-1,y+(GetFontYSIZE(FONT_SMALL_ITALIC_BOLD)*2),FONT_SMALL_ITALIC_BOLD,0,GetPaletteAdrByColorIndex(2),GetPaletteAdrByColorIndex(23)); \ 00000298 1700A0E3 MOV R0,#+23 \ 0000029C 2E0100EF SWI +302 \ 000002A0 0090A0E1 MOV R9,R0 \ 000002A4 0200A0E3 MOV R0,#+2 \ 000002A8 2E0100EF SWI +302 \ 000002AC 00A0A0E1 MOV R10,R0 \ 000002B0 0E00A0E3 MOV R0,#+14 \ 000002B4 C50100EF SWI +453 \ 000002B8 0080A0E1 MOV R8,R0 \ 000002BC 888100EF SWI +33160 \ 000002C0 00022DE9 PUSH {R9} \ 000002C4 00042DE9 PUSH {R10} \ 000002C8 0010A0E3 MOV R1,#+0 \ 000002CC 02002DE9 PUSH {R1} \ 000002D0 013040E2 SUB R3,R0,#+1 \ 000002D4 0720A0E1 MOV R2,R7 \ 000002D8 0400A0E1 MOV R0,R4 \ 000002DC 0E10A0E3 MOV R1,#+14 \ 000002E0 02002DE9 PUSH {R1} \ 000002E4 881087E0 ADD R1,R7,R8, LSL #+1 \ 000002E8 02002DE9 PUSH {R1} \ 000002EC 0210A0E3 MOV R1,#+2 \ 000002F0 4C0100EF SWI +332 130 y+=(GetFontYSIZE(FONT_SMALL_ITALIC_BOLD)*2); \ 000002F4 0E00A0E3 MOV R0,#+14 \ 000002F8 C50100EF SWI +453 \ 000002FC 807087E0 ADD R7,R7,R0, LSL #+1 131 132 wsprintf(ws,"Not action %d sec",msg_away_timer*5); \ 00000300 84019FE5 LDR R0,??reftes_0+0x4C ;; msg_away_timer \ 00000304 641086E2 ADD R1,R6,#+100 \ 00000308 000090E5 LDR R0,[R0, #+0] \ 0000030C 002180E0 ADD R2,R0,R0, LSL #+2 \ 00000310 0400A0E1 MOV R0,R4 \ 00000314 240100EF SWI +292 133 DrawString(ws,2,y,ScreenW()-1,y+GetFontYSIZE(FONT_SMALL_ITALIC_BOLD),FONT_SMALL_ITALIC_BOLD,0,GetPaletteAdrByColorIndex(2),GetPaletteAdrByColorIndex(23)); \ 00000318 1700A0E3 MOV R0,#+23 \ 0000031C 2E0100EF SWI +302 \ 00000320 0090A0E1 MOV R9,R0 \ 00000324 0200A0E3 MOV R0,#+2 \ 00000328 2E0100EF SWI +302 \ 0000032C 00A0A0E1 MOV R10,R0 \ 00000330 0E00A0E3 MOV R0,#+14 \ 00000334 C50100EF SWI +453 \ 00000338 0080A0E1 MOV R8,R0 \ 0000033C 888100EF SWI +33160 \ 00000340 00022DE9 PUSH {R9} \ 00000344 00042DE9 PUSH {R10} \ 00000348 0010A0E3 MOV R1,#+0 \ 0000034C 02002DE9 PUSH {R1} \ 00000350 013040E2 SUB R3,R0,#+1 \ 00000354 0720A0E1 MOV R2,R7 \ 00000358 0400A0E1 MOV R0,R4 \ 0000035C 0E10A0E3 MOV R1,#+14 \ 00000360 02002DE9 PUSH {R1} \ 00000364 071088E0 ADD R1,R8,R7 \ 00000368 02002DE9 PUSH {R1} \ 0000036C 0210A0E3 MOV R1,#+2 \ 00000370 4C0100EF SWI +332 \ 00000374 28D08DE2 ADD SP,SP,#+40 134 y+=(GetFontYSIZE(FONT_SMALL_ITALIC_BOLD)*1); \ 00000378 0E00A0E3 MOV R0,#+14 \ 0000037C C50100EF SWI +453 \ 00000380 077080E0 ADD R7,R0,R7 135 136 unsigned long RX=ALLTOTALRECEIVED; \ 00000384 04019FE5 LDR R0,??reftes_0+0x50 ;; ALLTOTALRECEIVED 137 unsigned long TX=ALLTOTALSENDED;//sendq_l 138 139 wsprintf(ws, "Traffic:\n->Rx: %db\n->Tx: %db \n->Queue: %db \n" 140 "Online contact: %d [total: %d] \n",RX,TX,sendq_l,kopa_kontaktu, kopa_online); \ 00000388 781086E2 ADD R1,R6,#+120 \ 0000038C 002090E5 LDR R2,[R0, #+0] \ 00000390 FC009FE5 LDR R0,??reftes_0+0x54 ;; ALLTOTALSENDED \ 00000394 003090E5 LDR R3,[R0, #+0] \ 00000398 F8009FE5 LDR R0,??reftes_0+0x58 ;; kopa_online \ 0000039C 000090E5 LDR R0,[R0, #+0] \ 000003A0 01002DE9 PUSH {R0} \ 000003A4 F0009FE5 LDR R0,??reftes_0+0x5C ;; kopa_kontaktu \ 000003A8 000090E5 LDR R0,[R0, #+0] \ 000003AC 01002DE9 PUSH {R0} \ 000003B0 E8009FE5 LDR R0,??reftes_0+0x60 ;; sendq_l \ 000003B4 000090E5 LDR R0,[R0, #+0] \ 000003B8 01002DE9 PUSH {R0} \ 000003BC 0400A0E1 MOV R0,R4 \ 000003C0 240100EF SWI +292 141 DrawString(ws,2,y,ScreenW()-1,y+(GetFontYSIZE(FONT_SMALL_ITALIC_BOLD)*5),FONT_SMALL_ITALIC_BOLD,0,GetPaletteAdrByColorIndex(2),GetPaletteAdrByColorIndex(23)); \ 000003C4 1700A0E3 MOV R0,#+23 \ 000003C8 2E0100EF SWI +302 \ 000003CC 0080A0E1 MOV R8,R0 \ 000003D0 0200A0E3 MOV R0,#+2 \ 000003D4 2E0100EF SWI +302 \ 000003D8 0090A0E1 MOV R9,R0 \ 000003DC 0E00A0E3 MOV R0,#+14 \ 000003E0 C50100EF SWI +453 \ 000003E4 0060A0E1 MOV R6,R0 \ 000003E8 888100EF SWI +33160 \ 000003EC 00012DE9 PUSH {R8} \ 000003F0 00022DE9 PUSH {R9} \ 000003F4 0010A0E3 MOV R1,#+0 \ 000003F8 02002DE9 PUSH {R1} \ 000003FC 013040E2 SUB R3,R0,#+1 \ 00000400 0720A0E1 MOV R2,R7 \ 00000404 0400A0E1 MOV R0,R4 \ 00000408 0E10A0E3 MOV R1,#+14 \ 0000040C 02002DE9 PUSH {R1} \ 00000410 061186E0 ADD R1,R6,R6, LSL #+2 \ 00000414 071081E0 ADD R1,R1,R7 \ 00000418 02002DE9 PUSH {R1} \ 0000041C 0210A0E3 MOV R1,#+2 \ 00000420 4C0100EF SWI +332 142 143 Draw5(); \ 00000424 ........ BL Draw5 144 145 FreeWS(ws); \ 00000428 0400A0E1 MOV R0,R4 \ 0000042C 290100EF SWI +297 146 mfree(sws); \ 00000430 0500A0E1 MOV R0,R5 \ 00000434 150000EF SWI +21 147 } \ 00000438 60D08DE2 ADD SP,SP,#+96 \ 0000043C F08FBDE8 POP {R4-R11,PC} ;; return \ ??reftes_0: \ 00000440 5B495D00 DC8 "[I]" \ 00000444 5B565D00 DC8 "[V]" \ 00000448 5B535D00 DC8 "[S]" \ 0000044C 25730000 DC8 "%s",+0 \ 00000450 ........ DC32 `?` \ 00000454 ........ DC32 away_m \ 00000458 ........ DC32 away_msg_time_dace \ 0000045C ........ DC32 CurrentPrivateStatus \ 00000460 ........ DC32 Is_Vibra_Enabled \ 00000464 ........ DC32 Is_Sounds_Enabled \ 00000468 ........ DC32 Is_Double_Vibra_On \ 0000046C ........ DC32 connect_state \ 00000470 ........ DC32 PINGO \ 00000474 ........ DC32 hostbuf2 \ 00000478 ........ DC32 uptimeSec \ 0000047C ........ DC32 uptimeMin \ 00000480 ........ DC32 uptimeHour \ 00000484 ........ DC32 main_count \ 00000488 ........ DC32 main2_count \ 0000048C ........ DC32 msg_away_timer \ 00000490 ........ DC32 ALLTOTALRECEIVED \ 00000494 ........ DC32 ALLTOTALSENDED \ 00000498 ........ DC32 kopa_online \ 0000049C ........ DC32 kopa_kontaktu \ 000004A0 ........ DC32 sendq_l 148 /* 149 int y_log=0; 150 char black1[]={0x00,0x00,0x00,100}; 151 extern int line_log; 152 static void ShowLog() 153 { 154 DisableIconBar(1); 155 DrawRectangle(0,0,ScreenW()-1,ScreenH()-1,0,black1,black1); 156 DrawString(wsLogBuffer,2,2+y_log,ScreenW()-1,y_log+ScreenH()-1,FONT_SMALL_ITALIC_BOLD,0,GetPaletteAdrByColorIndex(2),GetPaletteAdrByColorIndex(23)); 157 } 158 */ \ In segment CODE, align 4, keep-with-next 159 static void method0(SCREEN_GUI *data) 160 { 161 //if(!menu) 162 reftes(); \ method0: \ 00000000 ........ B reftes ;; tailcall 163 // else ShowLog(); 164 } 165 \ In segment CODE, align 4, keep-with-next 166 static void method1(SCREEN_GUI *data,void *(*malloc_adr)(int)) 167 { \ method1: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 0040A0E1 MOV R4,R0 168 data->ws=AllocWS(50); \ 00000008 3200A0E3 MOV R0,#+50 \ 0000000C 250100EF SWI +293 \ 00000010 340084E5 STR R0,[R4, #+52] 169 data->gui.state=1; \ 00000014 0100A0E3 MOV R0,#+1 \ 00000018 0C00C4E5 STRB R0,[R4, #+12] 170 DrawRectangle(0,YDISP,ScreenW()-1,ScreenH()-1,0,black,black); \ 0000001C 898100EF SWI +33161 \ 00000020 0040A0E1 MOV R4,R0 \ 00000024 888100EF SWI +33160 \ 00000028 ........ LDR R1,??DataTable4 ;; black \ 0000002C 013044E2 SUB R3,R4,#+1 \ 00000030 0120A0E1 MOV R2,R1 \ 00000034 04002DE9 PUSH {R2} \ 00000038 02002DE9 PUSH {R1} \ 0000003C 0010A0E3 MOV R1,#+0 \ 00000040 02002DE9 PUSH {R1} \ 00000044 012040E2 SUB R2,R0,#+1 \ 00000048 0000A0E3 MOV R0,#+0 \ 0000004C B40100EF SWI +436 171 color_SS=0; \ 00000050 0C009FE5 LDR R0,??method1_0 ;; color_SS \ 00000054 0010A0E3 MOV R1,#+0 \ 00000058 001080E5 STR R1,[R0, #+0] 172 reftes(); \ 0000005C ........ BL reftes 173 } \ 00000060 1780BDE8 POP {R0-R2,R4,PC} ;; return \ ??method1_0: \ 00000064 ........ DC32 color_SS 174 \ In segment CODE, align 4, keep-with-next 175 static void method2(SCREEN_GUI *data,void (*mfree_adr)(void *)) 176 { \ method2: \ 00000000 00402DE9 PUSH {LR} 177 data->gui.state=0; \ 00000004 0010A0E3 MOV R1,#+0 \ 00000008 0C10C0E5 STRB R1,[R0, #+12] 178 FreeWS(data->ws); \ 0000000C 340090E5 LDR R0,[R0, #+52] \ 00000010 290100EF SWI +297 179 } \ 00000014 0080BDE8 POP {PC} ;; return 180 \ In segment CODE, align 4, keep-with-next 181 static void method3(SCREEN_GUI *data,void *(*malloc_adr)(int),void (*mfree_adr)(void *))//fokus 182 { \ method3: \ 00000000 10402DE9 PUSH {R4,LR} 183 saver_on=1; \ 00000004 0110A0E3 MOV R1,#+1 \ 00000008 0040A0E1 MOV R4,R0 \ 0000000C ........ LDR R0,??DataTable7 ;; saver_on \ 00000010 001080E5 STR R1,[R0, #+0] 184 DisableIDLETMR(); \ 00000014 7F0100EF SWI +383 185 data->gui.state=2; \ 00000018 0200A0E3 MOV R0,#+2 \ 0000001C 0C00C4E5 STRB R0,[R4, #+12] 186 reftes(); \ 00000020 1040BDE8 POP {R4,LR} ;; Pop \ 00000024 ........ B reftes ;; tailcall 187 } 188 \ In segment CODE, align 4, keep-with-next 189 static void method4(SCREEN_GUI *data,void (*mfree_adr)(void *))//unfokus 190 { 191 saver_on=0; \ method4: \ 00000000 ........ LDR R1,??DataTable7 ;; saver_on \ 00000004 0020A0E3 MOV R2,#+0 \ 00000008 002081E5 STR R2,[R1, #+0] 192 if (data->gui.state!=2) \ 0000000C 0C10D0E5 LDRB R1,[R0, #+12] \ 00000010 020051E3 CMP R1,#+2 193 return; 194 data->gui.state=1; \ 00000014 0110A003 MOVEQ R1,#+1 \ 00000018 0C10C005 STRBEQ R1,[R0, #+12] 195 } \ 0000001C 1EFF2FE1 BX LR ;; return 196 \ In segment CODE, align 4, keep-with-next 197 static int method5(SCREEN_GUI *data,GUI_MSG *msg) 198 { \ method5: \ 00000000 30402DE9 PUSH {R4,R5,LR} 199 int m=msg->gbsmsg->msg; \ 00000004 040091E5 LDR R0,[R1, #+4] \ 00000008 044090E5 LDR R4,[R0, #+4] 200 int key=msg->gbsmsg->submess; \ 0000000C 085090E5 LDR R5,[R0, #+8] 201 DirectRedrawGUI(); \ 00000010 3F0100EF SWI +319 202 if(m==KEY_DOWN) \ 00000014 9300A0E3 MOV R0,#+147 \ 00000018 400F80E3 ORR R0,R0,#0x100 \ 0000001C 000054E1 CMP R4,R0 \ 00000020 0500001A BNE ??method5_0 203 { 204 if(key==UP_BUTTON && !menu) \ 00000024 3B0055E3 CMP R5,#+59 \ 00000028 0500001A BNE ??method5_1 \ 0000002C 18009FE5 LDR R0,??method5_2 ;; menu \ 00000030 000090E5 LDR R0,[R0, #+0] \ 00000034 000050E3 CMP R0,#+0 \ 00000038 0100001A BNE ??method5_1 205 return 0; \ ??method5_0: \ 0000003C 0000A0E3 MOV R0,#+0 \ 00000040 3080BDE8 POP {R4,R5,PC} 206 /* else 207 if(key==LEFT_BUTTON || key==RIGHT_BUTTON) menu=!menu; 208 else 209 if(key==UP_BUTTON && menu) y_log++; 210 else 211 if(key==DOWN_BUTTON && menu) y_log--; 212 else 213 if(key=='9') y_log=-(GetFontYSIZE(FONT_SMALL_ITALIC_BOLD)*(line_log-1)); 214 else 215 if(key=='3') y_log=2;*/ 216 else 217 return 1; \ ??method5_1: \ 00000044 0100A0E3 MOV R0,#+1 \ 00000048 3080BDE8 POP {R4,R5,PC} ;; return \ ??method5_2: \ 0000004C ........ DC32 menu 218 } 219 /* 220 if(m==LONG_PRESS && menu) 221 { 222 if(key==UP_BUTTON) y_log+=10; 223 if(key==DOWN_BUTTON) y_log-=10; 224 }*/ 225 226 return(0); 227 } 228 \ In segment CODE, align 4, keep-with-next 229 static int method8(void){return(0);} \ method8: \ 00000000 0000A0E3 MOV R0,#+0 \ 00000004 1EFF2FE1 BX LR ;; return 230 \ In segment CODE, align 4, keep-with-next 231 static int method9(void){return(0);} \ method9: \ 00000000 0000A0E3 MOV R0,#+0 \ 00000004 1EFF2FE1 BX LR ;; return 232 233 extern void kill_data(void *p, void (*func_p)(void *)); 234 static const void * const gui_methods[11]={ 235 (void *)method0, //Redraw 236 (void *)method1, //Create 237 (void *)method2, //Close 238 (void *)method3, //Focus 239 (void *)method4, //Unfocus 240 (void *)method5, //OnKey 241 0, 242 (void *)kill_data, //method7, //Destroy 243 (void *)method8, 244 (void *)method9, 245 0 246 }; 247 \ In segment CODE, align 4, keep-with-next 248 int CreateScreenSelectGUI() 249 { 250 saver_on=1; \ CreateScreenSelectGUI: \ 00000000 ........ LDR R0,??DataTable7 ;; saver_on \ 00000004 30402DE9 PUSH {R4,R5,LR} \ 00000008 0110A0E3 MOV R1,#+1 \ 0000000C 001080E5 STR R1,[R0, #+0] 251 // char* iconbars = RamIconBar(); 252 // *iconbars = 0; 253 static const RECT Canvas={0,0,0,0}; 254 SCREEN_GUI *screen_gui=malloc(sizeof(SCREEN_GUI)); \ 00000010 3800A0E3 MOV R0,#+56 \ 00000014 140000EF SWI +20 \ 00000018 0040A0E1 MOV R4,R0 255 zeromem(screen_gui,sizeof(SCREEN_GUI)); \ 0000001C 3810A0E3 MOV R1,#+56 \ 00000020 1D0100EF SWI +285 256 patch_rect((RECT*)&Canvas,0,0,ScreenW()-1,ScreenH()-1); \ 00000024 898100EF SWI +33161 \ 00000028 0050A0E1 MOV R5,R0 \ 0000002C 888100EF SWI +33160 \ 00000030 34209FE5 LDR R2,??CreateScreenSelectGUI_0 ;; ??Canvas \ 00000034 011045E2 SUB R1,R5,#+1 \ 00000038 010040E2 SUB R0,R0,#+1 \ 0000003C 0030A0E3 MOV R3,#+0 \ 00000040 003082E5 STR R3,[R2, #+0] \ 00000044 B400C2E1 STRH R0,[R2, #+4] \ 00000048 B610C2E1 STRH R1,[R2, #+6] 257 screen_gui->gui.canvas=(void *)(&Canvas); \ 0000004C 002084E5 STR R2,[R4, #+0] 258 screen_gui->gui.methods=(void *)gui_methods; \ 00000050 080082E2 ADD R0,R2,#+8 \ 00000054 040084E5 STR R0,[R4, #+4] 259 screen_gui->gui.item_ll.data_mfree=(void (*)(void *))mfree_adr(); \ 00000058 158000EF SWI +32789 \ 0000005C 200084E5 STR R0,[R4, #+32] 260 return CreateGUI(screen_gui); \ 00000060 0400A0E1 MOV R0,R4 \ 00000064 370100EF SWI +311 \ 00000068 3080BDE8 POP {R4,R5,PC} ;; return \ ??CreateScreenSelectGUI_0: \ 0000006C ........ DC32 ??Canvas 261 } \ In segment DATA_C, align 4, align-sorted \ ??Canvas: \ 00000000 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000008 ............ DC32 method0, method1, method2, method3, method4, method5, 0H \ ............ \ ............ \ ............ \ 00000000 \ 00000024 ............ DC32 kill_data, method8, method9, 0H \ ............ \ 00000000 \ In segment CODE, align 4, keep-with-next \ ??DataTable2: \ 00000000 ........ DC32 battery \ In segment CODE, align 4, keep-with-next \ ??DataTable4: \ 00000000 ........ DC32 black \ In segment CODE, align 4, keep-with-next \ ??DataTable7: \ 00000000 ........ DC32 saver_on \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 00000020 DC8 0, 0, 0, 32 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 253032643A25 DC8 "%02d:%02d" \ 30326400 \ 0000000A 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4261743A2564 DC8 "Bat:%d%" \ 2500 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 556E72656164 DC8 "Unread: %d/%d" \ 3A2025642F25 \ 6400 \ 0000000E 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4E6174494351 DC8 "NatICQ: %d" \ 3A20256400 \ 0000000B 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 5B413A25735D DC8 "[A:%s]" \ 00 \ 00000007 00 DC8 0 \ 00000008 5B56725D00 DC8 "[Vr]" \ 0000000D 000000 DC8 0, 0, 0 \ 00000010 4F6E6C696E65 DC8 "Online: %02d:%02d:%02d\012Server: %s \012%s\012" \ 3A2025303264 \ 3A253032643A \ 253032640A53 \ 65727665723A \ 202573200A25 \ 730A00 \ 00000037 00 DC8 0 \ 00000038 4F66666C696E DC8 "Offline\012" \ 650A00 \ 00000041 000000 DC8 0, 0, 0 \ 00000044 53656E64206D DC8 "Send mess: %d \012Recv mess: %d \012" \ 6573733A2025 \ 64200A526563 \ 76206D657373 \ 3A202564200A \ 00 \ 00000063 00 DC8 0 \ 00000064 4E6F74206163 DC8 "Not action %d sec" \ 74696F6E2025 \ 642073656300 \ 00000076 0000 DC8 0, 0 \ 00000078 547261666669 DC8 54H, 72H, 61H, 66H, 66H, 69H, 63H, 3AH \ 633A \ 00000080 0A2D3E52783A DC8 0AH, 2DH, 3EH, 52H, 78H, 3AH, 20H, 25H \ 2025 \ 00000088 64620A2D3E54 DC8 64H, 62H, 0AH, 2DH, 3EH, 54H, 78H, 3AH \ 783A \ 00000090 20256462200A DC8 20H, 25H, 64H, 62H, 20H, 0AH, 2DH, 3EH \ 2D3E \ 00000098 51756575653A DC8 51H, 75H, 65H, 75H, 65H, 3AH, 20H, 25H \ 2025 \ 000000A0 6462200A4F6E DC8 64H, 62H, 20H, 0AH, 4FH, 6EH, 6CH, 69H \ 6C69 \ 000000A8 6E6520636F6E DC8 6EH, 65H, 20H, 63H, 6FH, 6EH, 74H, 61H \ 7461 \ 000000B0 63743A202564 DC8 63H, 74H, 3AH, 20H, 25H, 64H, 20H, 5BH \ 205B \ 000000B8 746F74616C3A DC8 74H, 6FH, 74H, 61H, 6CH, 3AH, 20H, 25H \ 2025 \ 000000C0 645D200A00 DC8 64H, 5DH, 20H, 0AH, 0 \ 000000C5 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ 00000000 5B495D00 DC8 "[I]" \ In segment DATA_C, align 4, align-sorted \ 00000000 5B565D00 DC8 "[V]" \ In segment DATA_C, align 4, align-sorted \ 00000000 5B535D00 DC8 "[S]" \ In segment DATA_C, align 1, align-sorted \ 00000000 257300 DC8 "%s" 262 #endif Maximum stack usage in bytes: Function CSTACK -------- ------ CreateScreenSelectGUI 12 Draw 44 Draw2 52 Draw3 52 Draw5 40 method0 4 method1 20 method2 4 method3 8 method4 0 method5 12 method8 0 method9 0 reftes 140 Segment part sizes: Function/Label Bytes -------------- ----- battery 20 laiks 32 color_SS 4 menu 4 Draw 188 Draw2 224 Draw3 232 Draw5 152 black 4 reftes 1188 method0 4 method1 104 method2 24 method3 40 method4 32 method5 80 method8 8 method9 8 CreateScreenSelectGUI 112 Canvas 52 ??DataTable2 4 ??DataTable4 4 ??DataTable7 4 ? 4 ? 12 ? 8 ? 16 ? 12 ? 200 ? 4 ? 4 ? 4 ? 3 Others 80 2 464 bytes in segment CODE 315 bytes in segment DATA_C 4 bytes in segment DATA_I 4 bytes in segment DATA_ID 60 bytes in segment DATA_Z 24 bytes in segment INITTAB 2 408 bytes of CODE memory (+ 80 bytes shared) 319 bytes of CONST memory 64 bytes of DATA memory Errors: none Warnings: none