############################################################################## # # # IAR ARM ANSI C/C++ Compiler V4.41A/W32 EVALUATION 26/Dec/2007 17:36:00 # # Copyright 1999-2005 IAR Systems. All rights reserved. # # # # Cpu mode = interwork # # Endian = little # # Stack alignment = 4 # # Source file = D:\Pasha\elf\matrix_scr\Новая папка\main.c # # Command line = "D:\Pasha\elf\matrix_scr\Новая папка\main.c" -D # # NEWSGOLD -D ELKA -lC "D:\Pasha\elf\matrix_scr\Новая # # папка\Release_ELKA\List\" -o # # "D:\Pasha\elf\matrix_scr\Новая # # папка\Release_ELKA\Obj\" -s9 --cpu_mode arm # # --endian little --cpu ARM926EJ-S --stack_align 4 # # --interwork -e --fpu None --dlib_config # # "D:\Pasha\ARM_Embedded_Workbench\Embedded Workbench # # 4.0 Evaluation\ARM\LIB\dl5tpainl8n.h" -I # # "D:\Pasha\ARM_Embedded_Workbench\Embedded Workbench # # 4.0 Evaluation\ARM\INC\" --inline_threshold=2 # # List file = D:\Pasha\elf\matrix_scr\Новая # # папка\Release_ELKA\List\main.lst # # Object file = D:\Pasha\elf\matrix_scr\Новая # # папка\Release_ELKA\Obj\main.r79 # # # # # ############################################################################## D:\Pasha\elf\matrix_scr\Новая папка\main.c 1 #include "..\inc\swilib.h" 2 #include "..\inc\cfg_items.h" 3 #include "conf_loader.h" 4 #include "random.h" \ In segment DATA_C, align 4, align-sorted \ int const __data rndmax \ rndmax: \ 00000000 00010000 DC32 256 \ In segment CODE, align 4, keep-with-next \ __??Code32?? __code __interwork __atpcs void Randomize() \ Randomize: \ 00000000 00402DE9 PUSH {LR} \ 00000004 10D04DE2 SUB SP,SP,#+16 \ 00000008 08108DE2 ADD R1,SP,#+8 \ 0000000C 0D00A0E1 MOV R0,SP \ 00000010 B40000EF SWI +180 \ 00000014 0F80BDE8 POP {R0-R3,PC} ;; return 5 #include "local_ipc.h" 6 7 const char ipc_my_name[]=IPC_TEXTINFO_NAME; 8 const IPC_REQ my_ipc={ 9 ipc_my_name, 10 ipc_my_name, 11 NULL 12 }; 13 14 #define TMR_SECOND 216 \ In segment DATA_Z, align 4, align-sorted 15 GBSTMR mytmr; \ mytmr: \ 00000000 DS8 16 16 17 int scr_w; 18 int scr_h; \ In segment CODE, align 4, keep-with-next 19 void TimerProc(void) 20 { 21 GBS_SendMessage(MMI_CEPID,MSG_IPC,IPC_UPDATE_STAT,&my_ipc); \ TimerProc: \ 00000000 ........ LDR R3,??DataTable3 ;; my_ipc \ 00000004 00402DE9 PUSH {LR} \ 00000008 0120A0E3 MOV R2,#+1 \ 0000000C B010A0E3 MOV R1,#+176 \ 00000010 DE1C81E3 ORR R1,R1,#0xDE00 \ 00000014 0900A0E3 MOV R0,#+9 \ 00000018 420C80E3 ORR R0,R0,#0x4200 \ 0000001C 000100EF SWI +256 22 } \ 00000020 0080BDE8 POP {PC} ;; return 23 24 typedef struct 25 { 26 CSM_RAM csm; 27 int gui_id; 28 }MAIN_CSM; 29 30 typedef struct 31 { 32 GUI gui; 33 WSHDR *ws1; 34 WSHDR *ws2; 35 int i1; 36 }MAIN_GUI; 37 38 39 void timer(void); 40 void Check(void); 41 42 extern const int cfg_time; 43 extern const int cfg_sec; 44 extern const int cfg_runtime; 45 extern const int cfg_chksec; 46 extern const unsigned int cfg_tx; 47 extern const unsigned int cfg_ty; 48 extern const unsigned int cfg_tfont; 49 extern const int unsigned speed;//50 50 extern const int ENA_HELLO; \ In segment DATA_Z, align 4, align-sorted 51 GBSTMR matrix,check; \ check: \ 00000000 DS8 16 52 \ In segment DATA_Z, align 4, align-sorted 53 int speed_sl=262*2,count_on=0; \ count_on: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 54 int rnd=5,y=-10,rx,i,n=1; \ rx: \ 00000000 DS8 4 \ In segment DATA_I, align 4, align-sorted \ unsigned int __data rndidx \ rndidx: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ scr_w: \ 00000004 DS8 4 \ 00000008 REQUIRE `?` \ scr_h: \ 00000008 DS8 4 \ 0000000C REQUIRE `?` \ i: \ 0000000C DS8 4 \ 00000010 REQUIRE `?` 55 int yy[177]; \ yy: \ 00000010 DS8 708 \ 000002D4 REQUIRE `?` 56 int xx[177],spd[177]; \ xx: \ 000002D4 DS8 708 \ 00000598 REQUIRE `?` \ spd: \ 00000598 DS8 708 \ 0000085C REQUIRE `?` \ matrix: \ 0000085C DS8 16 \ 0000086C REQUIRE `?` 57 char OBLACK[]={0,0,0,8}; \ OBLACK: \ 0000086C DS8 4 \ 00000870 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ speed_sl: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ rnd: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ y: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ n: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 58 char OOBLACK[]={0,0,0,100}; \ OOBLACK: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` 59 char WHITE[]={255,255,255,100}; \ WHITE: \ 00000004 DS8 4 \ 00000008 REQUIRE `?` 60 char GREEN[]={30,240,30,100}; \ GREEN: \ 00000008 DS8 4 \ 0000000C REQUIRE `?` \ In segment DATA_I, align 4, align-sorted 61 char RED[]={255,0,0,100}; \ RED: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment DATA_Z, align 4, align-sorted 62 char *buf; \ buf: \ 00000000 DS8 4 \ In segment DATA_I, align 4, align-sorted 63 int bufsize=256; \ bufsize: \ 00000000 DS8 4 \ 00000004 REQUIRE `?` \ In segment CODE, align 4, keep-with-next 64 void window(void) 65 { 66 DrawRoundedFrame(0,0,scr_w,scr_h,0,0,0,OBLACK,OBLACK); \ window: \ 00000000 48009FE5 LDR R0,??window_0 ;; rndidx \ 00000004 00402DE9 PUSH {LR} \ 00000008 6C10A0E3 MOV R1,#+108 \ 0000000C 801E81E3 ORR R1,R1,#0x800 \ 00000010 001081E0 ADD R1,R1,R0 \ 00000014 02002DE9 PUSH {R1} \ 00000018 6C10A0E3 MOV R1,#+108 \ 0000001C 801E81E3 ORR R1,R1,#0x800 \ 00000020 001081E0 ADD R1,R1,R0 \ 00000024 02002DE9 PUSH {R1} \ 00000028 0010A0E3 MOV R1,#+0 \ 0000002C 02002DE9 PUSH {R1} \ 00000030 02002DE9 PUSH {R1} \ 00000034 02002DE9 PUSH {R1} \ 00000038 083090E5 LDR R3,[R0, #+8] \ 0000003C 042090E5 LDR R2,[R0, #+4] \ 00000040 0000A0E3 MOV R0,#+0 \ 00000044 500100EF SWI +336 67 } \ 00000048 14D08DE2 ADD SP,SP,#+20 \ 0000004C 0080BDE8 POP {PC} ;; return \ ??window_0: \ 00000050 ........ DC32 rndidx 68 \ In segment CODE, align 4, keep-with-next 69 void line(int xpos,int y) 70 { \ line: \ 00000000 F0402DE9 PUSH {R4-R7,LR} 71 DrawRoundedFrame(xpos,y,xpos,y+5,0,0,0,GREEN,GREEN); \ 00000004 6C709FE5 LDR R7,??line_0 ;; OOBLACK \ 00000008 0040A0E1 MOV R4,R0 \ 0000000C 080087E2 ADD R0,R7,#+8 \ 00000010 01002DE9 PUSH {R0} \ 00000014 01002DE9 PUSH {R0} \ 00000018 0150A0E1 MOV R5,R1 \ 0000001C 056085E2 ADD R6,R5,#+5 \ 00000020 0630A0E1 MOV R3,R6 \ 00000024 0000A0E3 MOV R0,#+0 \ 00000028 01002DE9 PUSH {R0} \ 0000002C 01002DE9 PUSH {R0} \ 00000030 01002DE9 PUSH {R0} \ 00000034 0420A0E1 MOV R2,R4 \ 00000038 0400A0E1 MOV R0,R4 \ 0000003C 500100EF SWI +336 72 DrawRoundedFrame(xpos,y+5,xpos,y+7,0,0,0,WHITE,WHITE); \ 00000040 040087E2 ADD R0,R7,#+4 \ 00000044 01002DE9 PUSH {R0} \ 00000048 01002DE9 PUSH {R0} \ 0000004C 073085E2 ADD R3,R5,#+7 \ 00000050 0420A0E1 MOV R2,R4 \ 00000054 0610A0E1 MOV R1,R6 \ 00000058 0000A0E3 MOV R0,#+0 \ 0000005C 01002DE9 PUSH {R0} \ 00000060 01002DE9 PUSH {R0} \ 00000064 01002DE9 PUSH {R0} \ 00000068 0400A0E1 MOV R0,R4 \ 0000006C 500100EF SWI +336 \ 00000070 28D08DE2 ADD SP,SP,#+40 73 } \ 00000074 F080BDE8 POP {R4-R7,PC} ;; return \ ??line_0: \ 00000078 ........ DC32 OOBLACK 74 \ In segment CODE, align 4, keep-with-next 75 void time(void) 76 { \ time: \ 00000000 F0402DE9 PUSH {R4-R7,LR} \ 00000004 10D04DE2 SUB SP,SP,#+16 77 WSHDR *ws=AllocWS(256); 78 TDate date; TTime time; 79 GetDateTime(&date,&time); 80 if(cfg_sec!=1) \ 00000008 34519FE5 LDR R5,??time_0 ;; OOBLACK \ 0000000C 400FA0E3 MOV R0,#+256 \ 00000010 250100EF SWI +293 \ 00000014 0040A0E1 MOV R4,R0 \ 00000018 0D10A0E1 MOV R1,SP \ 0000001C 08008DE2 ADD R0,SP,#+8 \ 00000020 B40000EF SWI +180 \ 00000024 1C019FE5 LDR R0,??time_0+0x4 ;; cfg_sec \ 00000028 1C119FE5 LDR R1,??time_0+0x8 ;; `?` \ 0000002C 000090E5 LDR R0,[R0, #+0] \ 00000030 010050E3 CMP R0,#+1 \ 00000034 1F00000A BEQ ??time_1 81 { 82 wsprintf(ws,"%02d:%02d",time.hour,time.min); \ 00000038 0130DDE5 LDRB R3,[SP, #+1] \ 0000003C 0020DDE5 LDRB R2,[SP, #+0] \ 00000040 0400A0E1 MOV R0,R4 \ 00000044 240100EF SWI +292 83 DrawString(ws,cfg_tx,cfg_ty,cfg_tx+Get_WS_width(ws,cfg_tfont),cfg_ty+GetFontYSIZE(cfg_tfont),cfg_tfont,2,WHITE,OOBLACK); \ 00000048 00019FE5 LDR R0,??time_0+0xC ;; cfg_tfont \ 0000004C 006090E5 LDR R6,[R0, #+0] \ 00000050 0600A0E1 MOV R0,R6 \ 00000054 C50100EF SWI +453 \ 00000058 0070A0E1 MOV R7,R0 \ 0000005C 0610A0E1 MOV R1,R6 \ 00000060 0400A0E1 MOV R0,R4 \ 00000064 080200EF SWI +520 \ 00000068 E4109FE5 LDR R1,??time_0+0x10 ;; cfg_tx \ 0000006C E4209FE5 LDR R2,??time_0+0x14 ;; cfg_ty \ 00000070 001091E5 LDR R1,[R1, #+0] \ 00000074 002092E5 LDR R2,[R2, #+0] \ 00000078 0530A0E1 MOV R3,R5 \ 0000007C 08002DE9 PUSH {R3} \ 00000080 043085E2 ADD R3,R5,#+4 \ 00000084 08002DE9 PUSH {R3} \ 00000088 0230A0E3 MOV R3,#+2 \ 0000008C 08002DE9 PUSH {R3} \ 00000090 40002DE9 PUSH {R6} \ 00000094 023087E0 ADD R3,R7,R2 \ 00000098 08002DE9 PUSH {R3} \ 0000009C 013080E0 ADD R3,R0,R1 \ 000000A0 0400A0E1 MOV R0,R4 \ 000000A4 4C0100EF SWI +332 \ 000000A8 14D08DE2 ADD SP,SP,#+20 \ 000000AC 0400A0E1 MOV R0,R4 \ 000000B0 290100EF SWI +297 \ 000000B4 FF80BDE8 POP {R0-R7,PC} 84 } 85 else 86 { 87 wsprintf(ws,"%02d:%02d:%02d",time.hour,time.min,time.sec); \ ??time_1: \ 000000B8 0200DDE5 LDRB R0,[SP, #+2] \ 000000BC 0C1081E2 ADD R1,R1,#+12 \ 000000C0 01002DE9 PUSH {R0} \ 000000C4 0530DDE5 LDRB R3,[SP, #+5] \ 000000C8 0420DDE5 LDRB R2,[SP, #+4] \ 000000CC 0400A0E1 MOV R0,R4 \ 000000D0 240100EF SWI +292 88 DrawString(ws,cfg_tx,cfg_ty,cfg_tx+Get_WS_width(ws,cfg_tfont),cfg_ty+GetFontYSIZE(cfg_tfont),cfg_tfont,2,WHITE,OOBLACK); \ 000000D4 74009FE5 LDR R0,??time_0+0xC ;; cfg_tfont \ 000000D8 006090E5 LDR R6,[R0, #+0] \ 000000DC 0600A0E1 MOV R0,R6 \ 000000E0 C50100EF SWI +453 \ 000000E4 0070A0E1 MOV R7,R0 \ 000000E8 0610A0E1 MOV R1,R6 \ 000000EC 0400A0E1 MOV R0,R4 \ 000000F0 080200EF SWI +520 \ 000000F4 58109FE5 LDR R1,??time_0+0x10 ;; cfg_tx \ 000000F8 58209FE5 LDR R2,??time_0+0x14 ;; cfg_ty \ 000000FC 001091E5 LDR R1,[R1, #+0] \ 00000100 002092E5 LDR R2,[R2, #+0] \ 00000104 0530A0E1 MOV R3,R5 \ 00000108 08002DE9 PUSH {R3} \ 0000010C 043085E2 ADD R3,R5,#+4 \ 00000110 08002DE9 PUSH {R3} \ 00000114 0230A0E3 MOV R3,#+2 \ 00000118 08002DE9 PUSH {R3} \ 0000011C 40002DE9 PUSH {R6} \ 00000120 023087E0 ADD R3,R7,R2 \ 00000124 08002DE9 PUSH {R3} \ 00000128 013080E0 ADD R3,R0,R1 \ 0000012C 0400A0E1 MOV R0,R4 \ 00000130 4C0100EF SWI +332 \ 00000134 18D08DE2 ADD SP,SP,#+24 89 } 90 FreeWS(ws); \ 00000138 0400A0E1 MOV R0,R4 \ 0000013C 290100EF SWI +297 91 } \ 00000140 FF80BDE8 POP {R0-R7,PC} ;; return \ ??time_0: \ 00000144 ........ DC32 OOBLACK \ 00000148 ........ DC32 cfg_sec \ 0000014C ........ DC32 `?` \ 00000150 ........ DC32 cfg_tfont \ 00000154 ........ DC32 cfg_tx \ 00000158 ........ DC32 cfg_ty \ In segment DATA_Z, align 4, align-sorted 92 int on=0; \ on: \ 00000000 DS8 4 93 \ In segment CODE, align 4, keep-with-next 94 void timer(void) 95 { \ timer: \ 00000000 F0412DE9 PUSH {R4-R8,LR} 96 void *canvasdata; ^ Warning[Pe550]: variable "canvasdata" was set but never used 97 canvasdata=BuildCanvas(); 98 if (!IsUnlocked()) \ 00000004 60519FE5 LDR R5,??timer_0 ;; timer \ 00000008 ........ LDR R6,??DataTable4 ;; rndidx \ 0000000C 5C40A0E3 MOV R4,#+92 \ 00000010 F18000EF SWI +33009 \ 00000014 804E84E3 ORR R4,R4,#0x800 \ 00000018 430000EF SWI +67 \ 0000001C 000050E3 CMP R0,#+0 \ 00000020 4800001A BNE ??timer_1 99 { 100 DisableIconBar(1); \ 00000024 0100A0E3 MOV R0,#+1 \ 00000028 3B0200EF SWI +571 101 //DrawCanvas( canvasdata,0,0,scr_w,scr_h,1); 102 DrawRoundedFrame(0,0,scr_w,scr_h,0,0,0,OBLACK,OBLACK); \ 0000002C 100084E2 ADD R0,R4,#+16 \ 00000030 060080E0 ADD R0,R0,R6 \ 00000034 01002DE9 PUSH {R0} \ 00000038 0010A0E3 MOV R1,#+0 \ 0000003C 100084E2 ADD R0,R4,#+16 \ 00000040 060080E0 ADD R0,R0,R6 \ 00000044 01002DE9 PUSH {R0} \ 00000048 0000A0E3 MOV R0,#+0 \ 0000004C 01002DE9 PUSH {R0} \ 00000050 01002DE9 PUSH {R0} \ 00000054 01002DE9 PUSH {R0} \ 00000058 083096E5 LDR R3,[R6, #+8] \ 0000005C 042096E5 LDR R2,[R6, #+4] \ 00000060 500100EF SWI +336 103 // window(); 104 if(cfg_time==1) time(); \ 00000064 04019FE5 LDR R0,??timer_0+0x4 ;; cfg_time \ 00000068 000090E5 LDR R0,[R0, #+0] \ 0000006C 14D08DE2 ADD SP,SP,#+20 \ 00000070 010050E3 CMP R0,#+1 \ 00000074 0000001A BNE ??timer_2 \ 00000078 ........ BL time 105 for(i=0;i<=65;i++) \ ??timer_2: \ 0000007C 0070A0E3 MOV R7,#+0 \ 00000080 0C7086E5 STR R7,[R6, #+12] \ ??timer_3: \ 00000084 0C0096E5 LDR R0,[R6, #+12] \ 00000088 000186E0 ADD R0,R6,R0, LSL #+2 \ 0000008C 101090E5 LDR R1,[R0, #+16] \ 00000090 982590E5 LDR R2,[R0, #+1432] \ 00000094 011082E0 ADD R1,R2,R1 \ 00000098 101080E5 STR R1,[R0, #+16] \ 0000009C D40290E5 LDR R0,[R0, #+724] 106 { 107 line(xx[i],yy[i]+=spd[i]); \ 000000A0 ........ BL line 108 if(yy[i]>scr_h) \ 000000A4 0C0096E5 LDR R0,[R6, #+12] \ 000000A8 08C096E5 LDR R12,[R6, #+8] \ 000000AC 002096E5 LDR R2,[R6, #+0] \ 000000B0 001186E0 ADD R1,R6,R0, LSL #+2 \ 000000B4 103091E5 LDR R3,[R1, #+16] \ 000000B8 03005CE1 CMP R12,R3 \ 000000BC 140000AA BGE ??timer_4 109 { 110 yy[i]-=320; \ 000000C0 3FC0E0E3 MVN R12,#+63 \ 000000C4 40CFCCE3 BIC R12,R12,#0x100 \ 000000C8 03308CE0 ADD R3,R12,R3 111 spd[i]=random()/50; \ 000000CC A0C09FE5 LDR R12,??timer_0+0x8 ;; 0x51eb851f \ 000000D0 103081E5 STR R3,[R1, #+16] \ 000000D4 ........ LDR R3,??DataTable5 ;; rndtab \ 000000D8 012082E2 ADD R2,R2,#+1 \ 000000DC 400F52E3 CMP R2,#+256 \ 000000E0 0020A023 MOVCS R2,#+0 \ 000000E4 0330D2E7 LDRB R3,[R2, +R3] \ 000000E8 9CE3C8E0 SMULL LR,R8,R12,R3 \ 000000EC 4882A0E1 ASR R8,R8,#+4 \ 000000F0 A33F88E0 ADD R3,R8,R3, LSR #+31 \ 000000F4 983581E5 STR R3,[R1, #+1432] 112 if (spd[i]>10) spd[i]=10; \ 000000F8 0B0053E3 CMP R3,#+11 \ 000000FC 0A30A0A3 MOVGE R3,#+10 \ 00000100 020000AA BGE ??timer_5 113 if (spd[i]<=0) spd[i]=1; \ 00000104 010053E3 CMP R3,#+1 \ 00000108 010000AA BGE ??timer_4 \ 0000010C 0130A0E3 MOV R3,#+1 \ ??timer_5: \ 00000110 983581E5 STR R3,[R1, #+1432] \ ??timer_4: \ 00000114 002086E5 STR R2,[R6, #+0] 114 } 115 } \ 00000118 010080E2 ADD R0,R0,#+1 \ 0000011C 0C0086E5 STR R0,[R6, #+12] \ 00000120 420050E3 CMP R0,#+66 \ 00000124 D6FFFFBA BLT ??timer_3 116 GBS_StartTimerProc(&matrix,262/speed,timer); \ 00000128 48109FE5 LDR R1,??timer_0+0xC ;; speed \ 0000012C 0520A0E1 MOV R2,R5 \ 00000130 001091E5 LDR R1,[R1, #+0] \ 00000134 0600A0E3 MOV R0,#+6 \ 00000138 400F80E3 ORR R0,R0,#0x100 \ 0000013C ........ _BLF ??divu32_a,??rA??divu32_a \ 00000140 060084E0 ADD R0,R4,R6 \ 00000144 4D0000EF SWI +77 117 } 118 GBS_StartTimerProc(&matrix,262/speed,timer); \ ??timer_1: \ 00000148 28109FE5 LDR R1,??timer_0+0xC ;; speed \ 0000014C 0520A0E1 MOV R2,R5 \ 00000150 001091E5 LDR R1,[R1, #+0] \ 00000154 0600A0E3 MOV R0,#+6 \ 00000158 400F80E3 ORR R0,R0,#0x100 \ 0000015C ........ _BLF ??divu32_a,??rA??divu32_a \ 00000160 060084E0 ADD R0,R4,R6 \ 00000164 4D0000EF SWI +77 119 } \ 00000168 F081BDE8 POP {R4-R8,PC} ;; return \ ??timer_0: \ 0000016C ........ DC32 timer \ 00000170 ........ DC32 cfg_time \ 00000174 1F85EB51 DC32 0x51eb851f \ 00000178 ........ DC32 speed 120 \ In segment CODE, align 4, keep-with-next 121 void maincsm_oncreate(CSM_RAM *data) 122 { 123 GBS_SendMessage(MMI_CEPID,MSG_IPC,IPC_UPDATE_STAT,&my_ipc); \ maincsm_oncreate: \ 00000000 ........ LDR R3,??DataTable3 ;; my_ipc \ 00000004 00402DE9 PUSH {LR} \ 00000008 0120A0E3 MOV R2,#+1 \ 0000000C B010A0E3 MOV R1,#+176 \ 00000010 DE1C81E3 ORR R1,R1,#0xDE00 \ 00000014 0900A0E3 MOV R0,#+9 \ 00000018 420C80E3 ORR R0,R0,#0x4200 \ 0000001C 000100EF SWI +256 124 } \ 00000020 0080BDE8 POP {PC} ;; return \ In segment CODE, align 4, keep-with-next 125 void ElfKiller(void) 126 { \ ElfKiller: \ 00000000 00402DE9 PUSH {LR} 127 extern void *ELF_BEGIN; 128 extern void kill_data(void *p, void (*func_p)(void *)); 129 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 130 } 131 132 // Вызывается при закрытии главного CSM. Тут и вызывается киллер \ In segment CODE, align 4, keep-with-next 133 void maincsm_onclose(CSM_RAM *csm) 134 { 135 GBS_DelTimer(&matrix); \ maincsm_onclose: \ 00000000 10009FE5 LDR R0,??maincsm_onclose_0 ;; rndidx + 2140 \ 00000004 00402DE9 PUSH {LR} \ 00000008 8C0100EF SWI +396 136 SUBPROC((void *)ElfKiller); \ 0000000C 08009FE5 LDR R0,??maincsm_onclose_0+0x4 ;; ElfKiller \ 00000010 710100EF SWI +369 137 } \ 00000014 0080BDE8 POP {PC} ;; return \ ??maincsm_onclose_0: \ 00000018 ........ DC32 rndidx + 2140 \ 0000001C ........ DC32 ElfKiller 138 #define idlegui_id(icsm) (((int *)icsm)[DISPLACE_OF_IDLEGUI_ID/4]) 139 140 #pragma inline=forced 141 int toupper(int c) 142 { 143 if ((c>='a')&&(c<='z')) c+='A'-'a'; 144 return(c); 145 } 146 #pragma inline 147 int strcmp_nocase(const char *s1,const char *s2) 148 { 149 int i; 150 int c; 151 while(!(i=(c=toupper(*s1++))-toupper(*s2++))) if (!c) break; 152 return(i); 153 } 154 // Обработчик событий главного CSM \ In segment CODE, align 4, keep-with-next 155 int maincsm_onmessage(CSM_RAM *data, GBS_MSG *msg) 156 { \ maincsm_onmessage: \ 00000000 00402DE9 PUSH {LR} 157 MAIN_CSM *csm=(MAIN_CSM*)data; 158 if ((msg->msg==MSG_GUI_DESTROYED)&&((int)msg->data0==csm->gui_id)) \ 00000004 042091E5 LDR R2,[R1, #+4] \ 00000008 0E30A0E3 MOV R3,#+14 \ 0000000C 643C83E3 ORR R3,R3,#0x6400 \ 00000010 030052E1 CMP R2,R3 \ 00000014 0500001A BNE ??maincsm_onmessage_0 \ 00000018 0C2091E5 LDR R2,[R1, #+12] \ 0000001C 283090E5 LDR R3,[R0, #+40] \ 00000020 030052E1 CMP R2,R3 \ 00000024 1D00001A BNE ??maincsm_onmessage_1 159 { 160 csm->csm.state=-3; \ 00000028 0220E0E3 MVN R2,#+2 \ 0000002C 102080E5 STR R2,[R0, #+16] 161 } 162 if (msg->msg==MSG_RECONFIGURE_REQ) \ ??maincsm_onmessage_0: \ 00000030 040091E5 LDR R0,[R1, #+4] \ 00000034 AF20A0E3 MOV R2,#+175 \ 00000038 DE2C82E3 ORR R2,R2,#0xDE00 \ 0000003C 020050E1 CMP R0,R2 \ 00000040 1600001A BNE ??maincsm_onmessage_1 163 { 164 extern const char *successed_config_filename; 165 if (strcmp_nocase(successed_config_filename,(char *)msg->data0)==0) \ 00000044 0C0091E5 LDR R0,[R1, #+12] \ 00000048 58109FE5 LDR R1,??maincsm_onmessage_2 ;; successed_config_filename \ 0000004C 001091E5 LDR R1,[R1, #+0] \ ??maincsm_onmessage_3: \ 00000050 0020D1E5 LDRB R2,[R1, #+0] \ 00000054 610052E3 CMP R2,#+97 \ 00000058 010000BA BLT ??maincsm_onmessage_4 \ 0000005C 7B0052E3 CMP R2,#+123 \ 00000060 202042B2 SUBLT R2,R2,#+32 \ ??maincsm_onmessage_4: \ 00000064 0030D0E5 LDRB R3,[R0, #+0] \ 00000068 011081E2 ADD R1,R1,#+1 \ 0000006C 610053E3 CMP R3,#+97 \ 00000070 010000BA BLT ??maincsm_onmessage_5 \ 00000074 7B0053E3 CMP R3,#+123 \ 00000078 203043B2 SUBLT R3,R3,#+32 \ ??maincsm_onmessage_5: \ 0000007C 010080E2 ADD R0,R0,#+1 \ 00000080 033052E0 SUBS R3,R2,R3 \ 00000084 0500001A BNE ??maincsm_onmessage_1 \ 00000088 000052E3 CMP R2,#+0 \ 0000008C EFFFFF1A BNE ??maincsm_onmessage_3 166 { 167 InitConfig(); \ 00000090 ........ _BLF InitConfig,??InitConfig??rA 168 ShowMSG(1,(int)"Matrix config updated!"); \ 00000094 10109FE5 LDR R1,??maincsm_onmessage_2+0x4 ;; `?` \ 00000098 0100A0E3 MOV R0,#+1 \ 0000009C 480100EF SWI +328 169 } 170 } 171 return(1); \ ??maincsm_onmessage_1: \ 000000A0 0100A0E3 MOV R0,#+1 \ 000000A4 0080BDE8 POP {PC} ;; return \ ??maincsm_onmessage_2: \ 000000A8 ........ DC32 successed_config_filename \ 000000AC ........ DC32 `?` 172 } 173 174 const int minus11=-11; \ In segment DATA_Z, align 4, align-sorted 175 unsigned short maincsm_name_body[140]; \ maincsm_name_body: \ 00000000 DS8 280 \ In segment DATA_C, align 4, align-sorted \ unsigned char const __data rndtab[256] \ rndtab: \ 00000000 01086DDCDEF1 DC8 1, 8, 109, 220, 222, 241, 149, 107, 75, 248, 254, 140, 16, 66, 74 \ 956B4BF8FE8C \ 10424A \ 0000000F 15D32F50F29A DC8 21, 211, 47, 80, 242, 154, 27, 205, 128, 161, 89, 77, 36, 95, 110 \ 1BCD80A1594D \ 245F6E \ 0000001E 5530D48CD3F9 DC8 85, 48, 212, 140, 211, 249, 22, 79, 200, 50, 28, 188, 52, 140, 202 \ 164FC8321CBC \ 348CCA \ 0000002D 7844913E46B8 DC8 120, 68, 145, 62, 70, 184, 190, 91, 197, 152, 224, 149, 104, 25 \ BE5BC598E095 \ 6819 \ 0000003B B2FCB6CAB68D DC8 178, 252, 182, 202, 182, 141, 197, 4, 81, 181, 242, 145, 42, 39 \ C50451B5F291 \ 2A27 \ 00000049 E39CC6E1C1DB DC8 227, 156, 198, 225, 193, 219, 93, 122, 175, 249, 1, 175, 143, 70 \ 5D7AAFF901AF \ 8F46 \ 00000057 EF2EF6A335A3 DC8 239, 46, 246, 163, 53, 163, 109, 168, 135, 2, 235, 25, 92, 20, 145 \ 6DA88702EB19 \ 5C1491 \ 00000066 8A4D45A64EB0 DC8 138, 77, 69, 166, 78, 176, 173, 212, 166, 113, 94, 161, 41, 50, 239 \ ADD4A6715EA1 \ 2932EF \ 00000075 316FA4463C02 DC8 49, 111, 164, 70, 60, 2, 37, 171, 75, 136, 156, 11, 56, 42, 146 \ 25AB4B889C0B \ 382A92 \ 00000084 8AE549924D3D DC8 138, 229, 73, 146, 77, 61, 98, 196, 135, 106, 63, 197, 195, 86, 96 \ 62C4876A3FC5 \ C35660 \ 00000093 CB7165AAF7B5 DC8 203, 113, 101, 170, 247, 181, 113, 80, 250, 108, 7, 255, 237, 129 \ 7150FA6C07FF \ ED81 \ 000000A1 E24F6B70A667 DC8 226, 79, 107, 112, 166, 103, 241, 24, 223, 239, 120, 198, 58, 60 \ F118DFEF78C6 \ 3A3C \ 000000AF 528003B8428F DC8 82, 128, 3, 184, 66, 143, 224, 145, 224, 81, 206, 163, 45, 63, 90 \ E091E051CEA3 \ 2D3F5A \ 000000BE A8723B219F5F DC8 168, 114, 59, 33, 159, 95, 28, 139, 123, 98, 125, 196, 15, 70, 194 \ 1C8B7B627DC4 \ 0F46C2 \ 000000CD FD360E6DE247 DC8 253, 54, 14, 109, 226, 71, 17, 161, 93, 186, 87, 244, 138, 20, 52 \ 11A15DBA57F4 \ 8A1434 \ 000000DC 7BFB1A24112E DC8 123, 251, 26, 36, 17, 46, 52, 231, 232, 76, 31, 221, 84, 37, 216 \ 34E7E84C1FDD \ 5425D8 \ 000000EB A5D46AC5F262 DC8 165, 212, 106, 197, 242, 98, 43, 39, 175, 254, 145, 190, 84, 118 \ 2B27AFFE91BE \ 5476 \ 000000F9 DEBB8878A3EC DC8 222, 187, 136, 120, 163, 236, 249 \ F9 \ 00000100 546865204D61 DC8 "The Matrix has You..." \ 747269782068 \ 617320596F75 \ 2E2E2E00 \ 00000116 0000 DC8 0, 0 \ 00000118 746865206D61 DC8 "the matrix" \ 7472697800 \ 00000123 00 DC8 0 176 // Инициализация структуры MAINCSM 177 const struct 178 { 179 CSM_DESC maincsm; 180 WSHDR maincsm_name; 181 }MAINCSM = \ MAINCSM: \ 00000124 ............ DC32 maincsm_onmessage, maincsm_oncreate, 0, 0, 0, 0, maincsm_onclose \ ....00000000 \ 000000000000 \ 000000000000 \ ........ \ 00000140 2C0000000100 DC32 44, 1, minus11, maincsm_name_body, 55AACCCCH, 3333AA55H, 0 \ 0000........ \ ........CCCC \ AA5555AA3333 \ 00000000 \ 0000015C 8B00 DC16 139 \ 0000015E 0000 DC8 0, 0 \ In segment DATA_C, align 4, align-sorted \ ipc_my_name: \ 00000000 456C66537461 DC8 "ElfStart" \ 727400 \ 00000009 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ my_ipc: \ 00000000 ............ DC32 ipc_my_name, ipc_my_name, 0H \ ....00000000 \ In segment DATA_C, align 4, align-sorted \ minus11: \ 00000000 F5FFFFFF DC32 -11 182 { 183 { 184 maincsm_onmessage, 185 maincsm_oncreate, 186 #ifdef NEWSGOLD 187 0, 188 0, 189 0, 190 0, 191 #endif 192 maincsm_onclose, 193 sizeof(MAIN_CSM), 194 1, 195 &minus11 196 }, 197 { 198 maincsm_name_body, 199 NAMECSM_MAGIC1, 200 NAMECSM_MAGIC2, 201 0x0, 202 139 203 } 204 }; 205 static void UpdateCSMname(void) 206 { 207 wsprintf((WSHDR *)(&MAINCSM.maincsm_name),"the matrix"); 208 } \ In segment CODE, align 4, keep-with-next 209 void main(void) 210 { \ main: \ 00000000 F0402DE9 PUSH {R4-R7,LR} 211 scr_w=ScreenW(); \ 00000004 ........ LDR R4,??DataTable4 ;; rndidx 212 scr_h=ScreenH(); 213 LockSched(); 214 CSMROOT *csmr; 215 CSM_RAM *save_cmpc; 216 CSM_RAM main_csm; 217 InitConfig(); 218 UpdateCSMname(); \ 00000008 ........ LDR R5,??DataTable5 ;; rndtab \ 0000000C 28D04DE2 SUB SP,SP,#+40 \ 00000010 888100EF SWI +33160 \ 00000014 040084E5 STR R0,[R4, #+4] \ 00000018 898100EF SWI +33161 \ 0000001C 080084E5 STR R0,[R4, #+8] \ 00000020 460100EF SWI +326 \ 00000024 ........ _BLF InitConfig,??InitConfig??rA \ 00000028 461F85E2 ADD R1,R5,#+280 \ 0000002C 530F85E2 ADD R0,R5,#+332 \ 00000030 240100EF SWI +292 219 LockSched(); \ 00000034 460100EF SWI +326 220 csmr=CSM_root(); \ 00000038 068100EF SWI +33030 \ 0000003C 0060A0E1 MOV R6,R0 221 save_cmpc=csmr->csm_q->current_msg_processing_csm; \ 00000040 080096E5 LDR R0,[R6, #+8] 222 csmr->csm_q->current_msg_processing_csm=csmr->csm_q->csm.first; 223 CreateCSM(&MAINCSM.maincsm,&main_csm,0); \ 00000044 0020A0E3 MOV R2,#+0 \ 00000048 081090E5 LDR R1,[R0, #+8] \ 0000004C 047090E5 LDR R7,[R0, #+4] \ 00000050 041080E5 STR R1,[R0, #+4] \ 00000054 0D10A0E1 MOV R1,SP \ 00000058 490F85E2 ADD R0,R5,#+292 \ 0000005C 070100EF SWI +263 224 csmr->csm_q->current_msg_processing_csm=save_cmpc; \ 00000060 080096E5 LDR R0,[R6, #+8] 225 226 for(i=0;i<=65;i++) \ 00000064 0110A0E3 MOV R1,#+1 \ 00000068 047080E5 STR R7,[R0, #+4] \ 0000006C 0000A0E3 MOV R0,#+0 \ 00000070 0C0084E5 STR R0,[R4, #+12] \ 00000074 9820A0E3 MOV R2,#+152 \ 00000078 502E82E3 ORR R2,R2,#0x500 \ 0000007C 042082E0 ADD R2,R2,R4 \ 00000080 B53F84E2 ADD R3,R4,#+724 \ 00000084 10C084E2 ADD R12,R4,#+16 \ 00000088 03E0A0E3 MOV LR,#+3 227 { 228 spd[i]=3; \ ??main_0: \ 0000008C 00E082E5 STR LR,[R2, #+0] 229 xx[i]=i*4+1; \ 00000090 001083E5 STR R1,[R3, #+0] 230 yy[i]=random()+100; \ 00000094 006094E5 LDR R6,[R4, #+0] 231 } \ 00000098 043083E2 ADD R3,R3,#+4 \ 0000009C 016086E2 ADD R6,R6,#+1 \ 000000A0 006084E5 STR R6,[R4, #+0] \ 000000A4 400F56E3 CMP R6,#+256 \ 000000A8 00008425 STRCS R0,[R4, #+0] \ 000000AC 006094E5 LDR R6,[R4, #+0] \ 000000B0 042082E2 ADD R2,R2,#+4 \ 000000B4 0560D6E7 LDRB R6,[R6, +R5] \ 000000B8 041081E2 ADD R1,R1,#+4 \ 000000BC 646086E2 ADD R6,R6,#+100 \ 000000C0 ........ STR R6,[R12], #+4 \ 000000C4 0C6094E5 LDR R6,[R4, #+12] \ 000000C8 016086E2 ADD R6,R6,#+1 \ 000000CC 0C6084E5 STR R6,[R4, #+12] \ 000000D0 420056E3 CMP R6,#+66 \ 000000D4 ECFFFFBA BLT ??main_0 232 InitConfig(); \ 000000D8 ........ _BLF InitConfig,??InitConfig??rA 233 if(ENA_HELLO)ShowMSG(1,(int)"The Matrix has You..."); \ 000000DC 24009FE5 LDR R0,??main_1 ;; ENA_HELLO \ 000000E0 000090E5 LDR R0,[R0, #+0] \ 000000E4 000050E3 CMP R0,#+0 \ 000000E8 0200000A BEQ ??main_2 \ 000000EC 401F85E2 ADD R1,R5,#+256 \ 000000F0 0100A0E3 MOV R0,#+1 \ 000000F4 480100EF SWI +328 234 timer(); \ ??main_2: \ 000000F8 ........ BL timer 235 UnlockSched(); \ 000000FC 470100EF SWI +327 236 } \ 00000100 28D08DE2 ADD SP,SP,#+40 \ 00000104 F080BDE8 POP {R4-R7,PC} ;; return \ ??main_1: \ 00000108 ........ DC32 ENA_HELLO \ In segment CODE, align 4, keep-with-next \ ??DataTable3: \ 00000000 ........ DC32 my_ipc \ In segment CODE, align 4, keep-with-next \ ??DataTable4: \ 00000000 ........ DC32 rndidx \ In segment CODE, align 4, keep-with-next \ ??DataTable5: \ 00000000 ........ DC32 rndtab \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 00000000 DC32 0 \ `?`: \ 00000004 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000008 00000000 DC8 0, 0, 0, 0 \ `?`: \ 0000000C 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000010 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000020 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000030 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000040 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000050 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000060 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000070 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000080 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000090 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000000F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000100 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000110 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000120 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000130 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000140 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000150 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000160 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000170 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000180 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000190 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000001A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000001B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000001C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000001D0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000001E0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000001F0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000200 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000210 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000220 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000230 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000240 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000250 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000260 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000270 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000280 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000290 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000002A0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000002B0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000002C0 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 000000000000 \ 0000 \ `?`: \ 000002D4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000002E4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000002F4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000304 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000314 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000324 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000334 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000344 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000354 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000364 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000374 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000384 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000394 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000003A4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000003B4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000003C4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000003D4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000003E4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000003F4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000404 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000414 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000424 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000434 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000444 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000454 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000464 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000474 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000484 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000494 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000004A4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000004B4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000004C4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000004D4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000004E4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000004F4 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000504 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000514 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000524 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000534 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000544 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000554 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000564 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000574 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000584 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 000000000000 \ 0000 \ `?`: \ 00000598 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000005A8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000005B8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000005C8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000005D8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000005E8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000005F8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000608 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000618 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000628 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000638 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000648 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000658 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000668 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000678 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000688 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000698 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000006A8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000006B8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000006C8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000006D8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000006E8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000006F8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000708 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000718 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000728 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000738 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000748 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000758 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000768 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000778 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000788 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000798 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000007A8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000007B8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000007C8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000007D8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000007E8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 000007F8 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000808 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000818 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000828 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000838 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000848 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 000000000000 \ 0000 \ `?`: \ 0000085C 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ `?`: \ 0000086C 00000008 DC8 0, 0, 0, 8 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 0C020000 DC32 524 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 05000000 DC32 5 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 F6FFFFFF DC32 -10 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000 DC32 1 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 00000064 DC8 0, 0, 0, 100 \ `?`: \ 00000004 FFFFFF64 DC8 255, 255, 255, 100 \ `?`: \ 00000008 1EF01E64 DC8 30, 240, 30, 100 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 FF000064 DC8 255, 0, 0, 100 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 00010000 DC32 256 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 253032643A25 DC8 "%02d:%02d" \ 30326400 \ 0000000A 0000 DC8 0, 0 \ 0000000C 253032643A25 DC8 "%02d:%02d:%02d" \ 3032643A2530 \ 326400 \ 0000001B 00 DC8 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4D6174726978 DC8 "Matrix config updated!" \ 20636F6E6669 \ 672075706461 \ 7465642100 \ 00000017 00 DC8 0 237 Maximum stack usage in bytes: Function CSTACK -------- ------ ElfKiller 4 Randomize 20 TimerProc 4 line 60 main 60 maincsm_onclose 4 maincsm_oncreate 4 maincsm_onmessage 4 time 60 timer 44 window 24 Segment part sizes: Function/Label Bytes -------------- ----- rndmax 4 Randomize 24 mytmr 16 TimerProc 36 check 16 count_on 4 rx 4 rndidx 2160 speed_sl 4 rnd 4 y 4 n 4 OOBLACK 12 RED 4 buf 4 bufsize 4 window 84 line 124 time 348 on 4 timer 380 maincsm_oncreate 36 ElfKiller 28 maincsm_onclose 32 maincsm_onmessage 176 maincsm_name_body 280 rndtab 352 ipc_my_name 12 my_ipc 12 minus11 4 main 268 ??DataTable3 4 ??DataTable4 4 ??DataTable5 4 ? 2160 ? 4 ? 4 ? 4 ? 4 ? 12 ? 4 ? 4 ? 28 ? 24 Others 104 1 628 bytes in segment CODE 436 bytes in segment DATA_C 2 196 bytes in segment DATA_I 2 196 bytes in segment DATA_ID 328 bytes in segment DATA_Z 24 bytes in segment INITTAB 1 548 bytes of CODE memory (+ 104 bytes shared) 2 632 bytes of CONST memory 2 524 bytes of DATA memory Errors: none Warnings: 1