############################################################################## # # # IAR ARM ANSI C/C++ Compiler V4.41A/W32 EVALUATION 15/Feb/2008 13:50:39 # # Copyright 1999-2005 IAR Systems. All rights reserved. # # # # Cpu mode = interwork # # Endian = little # # Stack alignment = 4 # # Source file = D:\Pasha\elf\_MY_PROJECT\converter\main.c # # Command line = D:\Pasha\elf\_MY_PROJECT\converter\main.c -lC # # D:\Pasha\elf\_MY_PROJECT\converter\Release\List\ -o # # D:\Pasha\elf\_MY_PROJECT\converter\Release\Obj\ -s9 # # --no_unroll --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\dl5tpainl8 # # n.h" -I "D:\Pasha\ARM_Embedded_Workbench\Embedded # # Workbench 4.0 Evaluation\ARM\INC\" # # --inline_threshold=2 # # List file = D:\Pasha\elf\_MY_PROJECT\converter\Release\List\main # # .lst # # Object file = D:\Pasha\elf\_MY_PROJECT\converter\Release\Obj\main. # # r79 # # # # # ############################################################################## D:\Pasha\elf\_MY_PROJECT\converter\main.c 1 #include "..\inc\swilib.h" 2 #include "math.h" 3 //#include "../inc/cfg_items.h" 4 \ In segment DATA_Z, align 4, align-sorted 5 CSM_DESC icsmd; \ icsmd: \ 00000000 DS8 24 6 7 //extern void InitConfig(); 8 int id_ed; 9 \ In segment DATA_Z, align 4, align-sorted 10 int (*old_icsm_onMessage)(CSM_RAM*,GBS_MSG*); \ old_icsm_onMessage: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 11 unsigned int MAINCSM_ID = 0; \ MAINCSM_ID: \ 00000000 DS8 4 \ In segment DATA_Z, align 4, align-sorted 12 unsigned int MAINGUI_ID = 0; \ MAINGUI_ID: \ 00000000 DS8 4 \ In segment DATA_C, align 4, align-sorted 13 const int minus11=-11; \ minus11: \ 00000000 F5FFFFFF DC32 -11 14 15 //----------------------------------------- 16 \ In segment DATA_C, align 4, align-sorted 17 const char per_t[]="%t"; \ per_t: \ 00000000 257400 DC8 "%t" 18 const char per_s[]="%s"; \ per_s: \ 00000003 257300 DC8 "%s" \ 00000006 0000 DC8 0, 0 \ 00000008 4F43543A0A00 DC8 "OCT:\012" \ 0000000E 0000 DC8 0, 0 \ 00000010 436F6E766572 DC8 "ConvertorSS" \ 746F72535300 \ 0000001C 4845583A0A00 DC8 "HEX:\012" \ 00000022 0000 DC8 0, 0 \ 00000024 42494E3A00 DC8 "BIN:" \ 00000029 000000 DC8 0, 0, 0 \ 0000002C 4445433A0A00 DC8 "DEC:\012" \ 00000032 0000 DC8 0, 0 \ In segment DATA_C, align 1, align-sorted 19 const char empty_str[]=""; \ empty_str: \ 00000000 00 DC8 "" 20 21 //----------------------------------------- 22 23 24 unsigned short maincsm_name_body[140]; 25 26 typedef struct 27 { 28 CSM_RAM csm; 29 int gui_id; 30 }MAIN_CSM; 31 32 typedef struct 33 { 34 GUI gui; 35 WSHDR *ws1; 36 WSHDR *ws2; 37 int i1; 38 }MAIN_GUI; 39 40 \ In segment DATA_Z, align 4, align-sorted 41 int my_csm_id=0; \ my_csm_id: \ 00000000 DS8 4 42 \ In segment DATA_Z, align 4, align-sorted 43 unsigned int err; \ err: \ 00000000 DS8 4 44 45 #pragma inline 46 void patch_header(HEADER_DESC* head) 47 { 48 head->rc.x=0; 49 head->rc.y=YDISP; 50 head->rc.x2=ScreenW()-1; 51 head->rc.y2=HeaderH()+YDISP; 52 } 53 #pragma inline 54 void patch_input(INPUTDIA_DESC* inp) 55 { 56 inp->rc.x=0; 57 inp->rc.y=HeaderH()+1+YDISP; 58 inp->rc.x2=ScreenW()-1; 59 inp->rc.y2=ScreenH()-SoftkeyH()-1; 60 } 61 62 //---------------------------------------------------------------------// 63 \ In segment CODE, align 4, keep-with-next 64 int get_file_size(char* fname) 65 { \ get_file_size: \ 00000000 00402DE9 PUSH {LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 66 unsigned int err; 67 FSTATS fs; 68 if ((GetFileStats(fname,&fs,&err))==-1) return 0; \ 00000008 0D20A0E1 MOV R2,SP \ 0000000C 04108DE2 ADD R1,SP,#+4 \ 00000010 840000EF SWI +132 \ 00000014 010070E3 CMN R0,#+1 69 return (fs.size); \ 00000018 08009D15 LDRNE R0,[SP, #+8] \ 0000001C 2CD08DE2 ADD SP,SP,#+44 \ 00000020 0000A003 MOVEQ R0,#+0 \ 00000024 0080BDE8 POP {PC} ;; return 70 } 71 72 \ In segment CODE, align 4, keep-with-next 73 void mess(char *s) 74 { \ mess: \ 00000000 00402DE9 PUSH {LR} 75 ShowMSG(1,(int)s); \ 00000004 0010A0E1 MOV R1,R0 \ 00000008 0100A0E3 MOV R0,#+1 \ 0000000C 480100EF SWI +328 76 } \ 00000010 0080BDE8 POP {PC} ;; return 77 \ In segment CODE, align 4, keep-with-next 78 void mess2(char *s) 79 { \ mess2: \ 00000000 00402DE9 PUSH {LR} 80 ShowMSG(2,(int)s); \ 00000004 0010A0E1 MOV R1,R0 \ 00000008 0200A0E3 MOV R0,#+2 \ 0000000C 480100EF SWI +328 81 } \ 00000010 0080BDE8 POP {PC} ;; return 82 \ In segment CODE, align 4, keep-with-next 83 void messd(int i) 84 { \ messd: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 0040A0E1 MOV R4,R0 85 char *s=malloc(10); \ 00000008 0A00A0E3 MOV R0,#+10 \ 0000000C 140000EF SWI +20 \ 00000010 0050A0E1 MOV R5,R0 86 sprintf(s,"%d",i); \ 00000014 0420A0E1 MOV R2,R4 \ 00000018 041F8FE2 ADR R1,??messd_0 ;; "%d" \ 0000001C 160000EF SWI +22 87 ShowMSG(1,(int)s); \ 00000020 0510A0E1 MOV R1,R5 \ 00000024 0100A0E3 MOV R0,#+1 \ 00000028 480100EF SWI +328 88 } \ 0000002C 3080BDE8 POP {R4,R5,PC} ;; return \ ??messd_0: \ 00000030 25640000 DC8 "%d",+0 89 90 //---------------------------------------------------------------------// 91 \ In segment CODE, align 4, keep-with-next 92 void about() 93 { 94 char s[128]; 95 snprintf(s,128,"ConvertorSS v0.1\n(c)kluchnik\n%s %s",__DATE__,__TIME__); \ about: \ 00000000 34009FE5 LDR R0,??about_0 ;; `?` \ 00000004 00402DE9 PUSH {LR} \ 00000008 80D04DE2 SUB SP,SP,#+128 \ 0000000C 0010A0E1 MOV R1,R0 \ 00000010 02002DE9 PUSH {R1} \ 00000014 0C3080E2 ADD R3,R0,#+12 \ 00000018 182080E2 ADD R2,R0,#+24 \ 0000001C 04008DE2 ADD R0,SP,#+4 \ 00000020 8010A0E3 MOV R1,#+128 \ 00000024 1B0100EF SWI +283 96 ShowMSG(2, (int)s); \ 00000028 04108DE2 ADD R1,SP,#+4 \ 0000002C 0200A0E3 MOV R0,#+2 \ 00000030 480100EF SWI +328 97 } \ 00000034 84D08DE2 ADD SP,SP,#+132 \ 00000038 0080BDE8 POP {PC} ;; return \ ??about_0: \ 0000003C ........ DC32 `?` 98 99 //---------------------------------------------------------------------// 100 char per_d[]="%d"; 101 int len=0; \ In segment CODE, align 4, keep-with-next 102 char *dec2bin(int dec) 103 { \ dec2bin: \ 00000000 F0432DE9 PUSH {R4-R9,LR} 104 int i=0; 105 int j=0; 106 char *tmp=malloc(32); 107 char *s=malloc(32); \ 00000004 ........ LDR R6,??DataTable1 ;; edit_desc \ 00000008 04D04DE2 SUB SP,SP,#+4 \ 0000000C 0090A0E1 MOV R9,R0 \ 00000010 0070A0E3 MOV R7,#+0 \ 00000014 2000A0E3 MOV R0,#+32 \ 00000018 140000EF SWI +20 \ 0000001C 0040A0E1 MOV R4,R0 \ 00000020 2000A0E3 MOV R0,#+32 \ 00000024 140000EF SWI +20 \ 00000028 0050A0E1 MOV R5,R0 \ 0000002C 0480A0E1 MOV R8,R4 108 while(dec>0) \ ??dec2bin_0: \ 00000030 010059E3 CMP R9,#+1 \ 00000034 110000BA BLT ??dec2bin_1 109 { 110 i=0; 111 i=dec%2; \ 00000038 A90F89E0 ADD R0,R9,R9, LSR #+31 \ 0000003C C000A0E1 ASR R0,R0,#+1 \ 00000040 802049E0 SUB R2,R9,R0, LSL #+1 112 dec=dec/2; \ 00000044 0090A0E1 MOV R9,R0 113 sprintf(s,per_d,i); \ 00000048 541086E2 ADD R1,R6,#+84 \ 0000004C 0500A0E1 MOV R0,R5 \ 00000050 160000EF SWI +22 114 *(tmp+j)=*s; \ 00000054 0000D5E5 LDRB R0,[R5, #+0] 115 j++; \ 00000058 017087E2 ADD R7,R7,#+1 116 if(dec==1) \ 0000005C 010059E3 CMP R9,#+1 \ 00000060 ........ STRB R0,[R8], #+1 \ 00000064 F1FFFF1A BNE ??dec2bin_0 117 { 118 sprintf(s,per_d,1); \ 00000068 0120A0E3 MOV R2,#+1 \ 0000006C 541086E2 ADD R1,R6,#+84 \ 00000070 0500A0E1 MOV R0,R5 \ 00000074 160000EF SWI +22 119 *(tmp+j)=*s; \ 00000078 0000D5E5 LDRB R0,[R5, #+0] \ 0000007C 0400C7E7 STRB R0,[R7, +R4] 120 break; 121 } 122 } 123 j++; 124 *(tmp+j)=0; \ ??dec2bin_1: \ 00000080 040087E0 ADD R0,R7,R4 \ 00000084 0010A0E3 MOV R1,#+0 \ 00000088 0110C0E5 STRB R1,[R0, #+1] 125 for(i=strlen(tmp)-1;i>=0;i--) \ 0000008C 0400A0E1 MOV R0,R4 \ 00000090 1B0000EF SWI +27 \ 00000094 017050E2 SUBS R7,R0,#+1 \ 00000098 0700004A BMI ??dec2bin_2 \ 0000009C 048087E0 ADD R8,R7,R4 126 { 127 s[strlen(tmp)-i]=tmp[i]; \ ??dec2bin_3: \ 000000A0 0400A0E1 MOV R0,R4 \ 000000A4 1B0000EF SWI +27 \ 000000A8 ........ LDRB R1,[R8], #-1 \ 000000AC 070040E0 SUB R0,R0,R7 128 } \ 000000B0 017057E2 SUBS R7,R7,#+1 \ 000000B4 0510C0E7 STRB R1,[R0, +R5] \ 000000B8 F8FFFF5A BPL ??dec2bin_3 129 len=strlen(tmp); \ ??dec2bin_2: \ 000000BC 0400A0E1 MOV R0,R4 \ 000000C0 1B0000EF SWI +27 \ 000000C4 4C0086E5 STR R0,[R6, #+76] 130 return s; \ 000000C8 0500A0E1 MOV R0,R5 \ 000000CC F283BDE8 POP {R1,R4-R9,PC} ;; return 131 } 132 \ In segment CODE, align 4, keep-with-next 133 int bin2dec(char *bin) 134 { \ bin2dec: \ 00000000 F0432DE9 PUSH {R4-R9,LR} \ 00000004 0060A0E1 MOV R6,R0 135 int i=0; 136 int rez=0; \ 00000008 0040A0E3 MOV R4,#+0 137 int j=0; 138 for(i=strlen(bin),j=0;i>=0;j++,i--) \ 0000000C 0050A0E3 MOV R5,#+0 \ 00000010 1B0000EF SWI +27 \ 00000014 0010B0E1 MOVS R1,R0 \ 00000018 1800004A BMI ??bin2dec_0 \ 0000001C 066080E0 ADD R6,R0,R6 \ 00000020 017080E2 ADD R7,R0,#+1 139 { 140 if(bin[i]=='1')//на 0 нет смысла умножать:) \ ??bin2dec_1: \ 00000024 0000D6E5 LDRB R0,[R6, #+0] \ 00000028 310050E3 CMP R0,#+49 \ 0000002C 0F00001A BNE ??bin2dec_2 141 rez+=pow(2,j-1); \ 00000030 010045E2 SUB R0,R5,#+1 \ 00000034 ........ _BLF __longToDouble,??__longToDouble??rA \ 00000038 0020A0E1 MOV R2,R0 \ 0000003C 0130A0E1 MOV R3,R1 \ 00000040 0000A0E3 MOV R0,#+0 \ 00000044 4014A0E3 MOV R1,#+1073741824 \ 00000048 ........ _BLF pow,??pow??rA \ 0000004C 0080A0E1 MOV R8,R0 \ 00000050 0190A0E1 MOV R9,R1 \ 00000054 0400A0E1 MOV R0,R4 \ 00000058 ........ _BLF __longToDouble,??__longToDouble??rA \ 0000005C 0820A0E1 MOV R2,R8 \ 00000060 0930A0E1 MOV R3,R9 \ 00000064 ........ _BLF __dAdd,??__dAdd??rA \ 00000068 ........ _BLF __doubleToLong,??__doubleToLong??rA \ 0000006C 0040A0E1 MOV R4,R0 142 } \ ??bin2dec_2: \ 00000070 015085E2 ADD R5,R5,#+1 \ 00000074 016046E2 SUB R6,R6,#+1 \ 00000078 017057E2 SUBS R7,R7,#+1 \ 0000007C E8FFFF1A BNE ??bin2dec_1 143 return rez; \ ??bin2dec_0: \ 00000080 0400A0E1 MOV R0,R4 \ 00000084 F083BDE8 POP {R4-R9,PC} ;; return 144 } 145 146 //-------------------------------// 147 \ In segment CODE, align 4, keep-with-next 148 char *dec2oct(int dec) 149 { \ dec2oct: \ 00000000 F0432DE9 PUSH {R4-R9,LR} 150 int i=0; 151 int j=0; 152 char *s=malloc(32); 153 char *tmp=malloc(32); \ 00000004 ........ LDR R6,??DataTable1 ;; edit_desc \ 00000008 04D04DE2 SUB SP,SP,#+4 \ 0000000C 0070A0E1 MOV R7,R0 \ 00000010 0080A0E3 MOV R8,#+0 \ 00000014 2000A0E3 MOV R0,#+32 \ 00000018 140000EF SWI +20 \ 0000001C 0040A0E1 MOV R4,R0 \ 00000020 2000A0E3 MOV R0,#+32 \ 00000024 140000EF SWI +20 \ 00000028 0050A0E1 MOV R5,R0 \ 0000002C 0590A0E1 MOV R9,R5 154 while(dec>0) \ ??dec2oct_0: \ 00000030 010057E3 CMP R7,#+1 \ 00000034 120000BA BLT ??dec2oct_1 155 { 156 i=0; 157 i=dec%8; \ 00000038 4701A0E1 ASR R0,R7,#+2 \ 0000003C A00E87E0 ADD R0,R7,R0, LSR #+29 \ 00000040 C001A0E1 ASR R0,R0,#+3 \ 00000044 802147E0 SUB R2,R7,R0, LSL #+3 158 dec=dec/8; \ 00000048 0070A0E1 MOV R7,R0 159 sprintf(s,per_d,i); \ 0000004C 541086E2 ADD R1,R6,#+84 \ 00000050 0400A0E1 MOV R0,R4 \ 00000054 160000EF SWI +22 160 *(tmp+j)=*s; \ 00000058 0000D4E5 LDRB R0,[R4, #+0] 161 j++; \ 0000005C 018088E2 ADD R8,R8,#+1 162 if(dec==1) \ 00000060 010057E3 CMP R7,#+1 \ 00000064 ........ STRB R0,[R9], #+1 \ 00000068 F0FFFF1A BNE ??dec2oct_0 163 { 164 sprintf(s,per_d,1); \ 0000006C 0120A0E3 MOV R2,#+1 \ 00000070 541086E2 ADD R1,R6,#+84 \ 00000074 0400A0E1 MOV R0,R4 \ 00000078 160000EF SWI +22 165 *(tmp+j)=*s; \ 0000007C 0000D4E5 LDRB R0,[R4, #+0] \ 00000080 0500C8E7 STRB R0,[R8, +R5] 166 break; 167 } 168 } 169 j++; 170 *(tmp+j)=0; \ ??dec2oct_1: \ 00000084 050088E0 ADD R0,R8,R5 \ 00000088 0010A0E3 MOV R1,#+0 \ 0000008C 0110C0E5 STRB R1,[R0, #+1] 171 for(i=strlen(tmp)-1;i>=0;i--) \ 00000090 0500A0E1 MOV R0,R5 \ 00000094 1B0000EF SWI +27 \ 00000098 017050E2 SUBS R7,R0,#+1 \ 0000009C 0700004A BMI ??dec2oct_2 \ 000000A0 058087E0 ADD R8,R7,R5 172 { 173 s[strlen(tmp)-i]=tmp[i]; \ ??dec2oct_3: \ 000000A4 0500A0E1 MOV R0,R5 \ 000000A8 1B0000EF SWI +27 \ 000000AC ........ LDRB R1,[R8], #-1 \ 000000B0 070040E0 SUB R0,R0,R7 174 } \ 000000B4 017057E2 SUBS R7,R7,#+1 \ 000000B8 0410C0E7 STRB R1,[R0, +R4] \ 000000BC F8FFFF5A BPL ??dec2oct_3 175 len=strlen(tmp); \ ??dec2oct_2: \ 000000C0 0500A0E1 MOV R0,R5 \ 000000C4 1B0000EF SWI +27 \ 000000C8 4C0086E5 STR R0,[R6, #+76] 176 return s; \ 000000CC 0400A0E1 MOV R0,R4 \ 000000D0 F283BDE8 POP {R1,R4-R9,PC} ;; return 177 } 178 179 extern unsigned long strtoul (const char *nptr,char **endptr,int base); \ In segment DATA_C, align 1, align-sorted 180 const char per_c[]="%c"; \ per_c: \ 00000000 256300 DC8 "%c" \ In segment CODE, align 4, keep-with-next 181 int oct2dec(char *bin) 182 { \ oct2dec: \ 00000000 F04F2DE9 PUSH {R4-R11,LR} \ 00000004 04D04DE2 SUB SP,SP,#+4 \ 00000008 0060A0E1 MOV R6,R0 183 long rez=0; \ 0000000C 0040A0E3 MOV R4,#+0 184 long c=0; 185 char d[1]; 186 int i; 187 int j=0; 188 for(i=strlen(bin),j=0;i>=0;j++,i--) \ 00000010 1B0000EF SWI +27 \ 00000014 0050A0E3 MOV R5,#+0 \ 00000018 000050E3 CMP R0,#+0 \ 0000001C 2600004A BMI ??oct2dec_0 \ 00000020 ........ LDR R9,??DataTable3 ;; per_c \ 00000024 068080E0 ADD R8,R0,R6 \ 00000028 016080E2 ADD R6,R0,#+1 189 { 190 sprintf(d,per_c,bin[i]); \ ??oct2dec_1: \ 0000002C ........ LDRB R2,[R8], #-1 \ 00000030 0910A0E1 MOV R1,R9 \ 00000034 0D00A0E1 MOV R0,SP \ 00000038 160000EF SWI +22 191 c=strtoul(d,0,10); \ 0000003C 0A20A0E3 MOV R2,#+10 \ 00000040 0010A0E3 MOV R1,#+0 \ 00000044 0D00A0E1 MOV R0,SP \ 00000048 ........ _BLF strtoul,??strtoul??rA \ 0000004C 0070A0E1 MOV R7,R0 192 rez+=pow(8,j-1)*c; \ 00000050 010045E2 SUB R0,R5,#+1 \ 00000054 ........ _BLF __longToDouble,??__longToDouble??rA \ 00000058 0020A0E1 MOV R2,R0 \ 0000005C 0130A0E1 MOV R3,R1 \ 00000060 0000A0E3 MOV R0,#+0 \ 00000064 4014A0E3 MOV R1,#+1073741824 \ 00000068 801981E3 ORR R1,R1,#0x200000 \ 0000006C ........ _BLF pow,??pow??rA \ 00000070 00A0A0E1 MOV R10,R0 \ 00000074 01B0A0E1 MOV R11,R1 \ 00000078 0700A0E1 MOV R0,R7 \ 0000007C ........ _BLF __longToDouble,??__longToDouble??rA \ 00000080 0A20A0E1 MOV R2,R10 \ 00000084 0B30A0E1 MOV R3,R11 \ 00000088 ........ _BLF __dMul,??__dMul??rA \ 0000008C 00A0A0E1 MOV R10,R0 \ 00000090 01B0A0E1 MOV R11,R1 \ 00000094 0400A0E1 MOV R0,R4 \ 00000098 ........ _BLF __longToDouble,??__longToDouble??rA \ 0000009C 0A20A0E1 MOV R2,R10 \ 000000A0 0B30A0E1 MOV R3,R11 \ 000000A4 ........ _BLF __dAdd,??__dAdd??rA \ 000000A8 ........ _BLF __doubleToLong,??__doubleToLong??rA \ 000000AC 0040A0E1 MOV R4,R0 193 } \ 000000B0 015085E2 ADD R5,R5,#+1 \ 000000B4 016056E2 SUBS R6,R6,#+1 \ 000000B8 DBFFFF1A BNE ??oct2dec_1 194 return rez; \ ??oct2dec_0: \ 000000BC 0400A0E1 MOV R0,R4 \ 000000C0 F28FBDE8 POP {R1,R4-R11,PC} ;; return 195 } 196 \ In segment CODE, align 4, keep-with-next 197 int hex2dec(char *bin) 198 { \ hex2dec: \ 00000000 F04F2DE9 PUSH {R4-R11,LR} \ 00000004 04D04DE2 SUB SP,SP,#+4 \ 00000008 0060A0E1 MOV R6,R0 199 long rez=0; \ 0000000C 0040A0E3 MOV R4,#+0 200 long c=0; 201 char d[1]; 202 int i; 203 int j=0; 204 for(i=strlen(bin),j=0;i>=0;j++,i--) \ 00000010 1B0000EF SWI +27 \ 00000014 0050A0E3 MOV R5,#+0 \ 00000018 000050E3 CMP R0,#+0 \ 0000001C 2600004A BMI ??hex2dec_0 \ 00000020 ........ LDR R9,??DataTable3 ;; per_c \ 00000024 068080E0 ADD R8,R0,R6 \ 00000028 016080E2 ADD R6,R0,#+1 205 { 206 sprintf(d,per_c,bin[i]); \ ??hex2dec_1: \ 0000002C ........ LDRB R2,[R8], #-1 \ 00000030 0910A0E1 MOV R1,R9 \ 00000034 0D00A0E1 MOV R0,SP \ 00000038 160000EF SWI +22 207 c=strtoul(d,0,16); \ 0000003C 1020A0E3 MOV R2,#+16 \ 00000040 0010A0E3 MOV R1,#+0 \ 00000044 0D00A0E1 MOV R0,SP \ 00000048 ........ _BLF strtoul,??strtoul??rA \ 0000004C 0070A0E1 MOV R7,R0 208 rez+=pow(16,j-1)*c; \ 00000050 010045E2 SUB R0,R5,#+1 \ 00000054 ........ _BLF __longToDouble,??__longToDouble??rA \ 00000058 0020A0E1 MOV R2,R0 \ 0000005C 0130A0E1 MOV R3,R1 \ 00000060 0000A0E3 MOV R0,#+0 \ 00000064 4014A0E3 MOV R1,#+1073741824 \ 00000068 C01981E3 ORR R1,R1,#0x300000 \ 0000006C ........ _BLF pow,??pow??rA \ 00000070 00A0A0E1 MOV R10,R0 \ 00000074 01B0A0E1 MOV R11,R1 \ 00000078 0700A0E1 MOV R0,R7 \ 0000007C ........ _BLF __longToDouble,??__longToDouble??rA \ 00000080 0A20A0E1 MOV R2,R10 \ 00000084 0B30A0E1 MOV R3,R11 \ 00000088 ........ _BLF __dMul,??__dMul??rA \ 0000008C 00A0A0E1 MOV R10,R0 \ 00000090 01B0A0E1 MOV R11,R1 \ 00000094 0400A0E1 MOV R0,R4 \ 00000098 ........ _BLF __longToDouble,??__longToDouble??rA \ 0000009C 0A20A0E1 MOV R2,R10 \ 000000A0 0B30A0E1 MOV R3,R11 \ 000000A4 ........ _BLF __dAdd,??__dAdd??rA \ 000000A8 ........ _BLF __doubleToLong,??__doubleToLong??rA \ 000000AC 0040A0E1 MOV R4,R0 209 } \ 000000B0 015085E2 ADD R5,R5,#+1 \ 000000B4 016056E2 SUBS R6,R6,#+1 \ 000000B8 DBFFFF1A BNE ??hex2dec_1 210 return rez; \ ??hex2dec_0: \ 000000BC 0400A0E1 MOV R0,R4 \ 000000C0 F28FBDE8 POP {R1,R4-R11,PC} ;; return 211 } 212 //--------------------------------Редактор--------------------------------// 213 214 HEADER_DESC disk_prop_hdr={0,0,131,21,NULL,0,LGP_NULL}; 215 int id_create; 216 enum editcontrols 217 { 218 ec_dec=2, 219 ec_bin=4, 220 ec_oct=6, 221 ec_hex=8, 222 }; 223 int id_ed2; 224 extern int menu_id; \ In segment CODE, align 4, keep-with-next 225 int empty_onkey(GUI *data, GUI_MSG *msg) 226 { \ empty_onkey: \ 00000000 10402DE9 PUSH {R4,LR} 227 // void *edgui=FindGUIbyId(id_create,NULL); 228 229 if(msg->keys==LEFT_SOFT || msg->keys==RED_BUTTON) \ 00000004 F200D1E1 LDRSH R0,[R1, #+2] \ 00000008 010050E3 CMP R0,#+1 \ 0000000C 0C005013 CMPNE R0,#+12 \ 00000010 0A00001A BNE ??empty_onkey_0 230 { 231 GeneralFunc_flag1(menu_id,1); \ 00000014 2C009FE5 LDR R0,??empty_onkey_1 ;; menu_id 232 GeneralFunc_flag1(id_ed,1); \ 00000018 2C409FE5 LDR R4,??empty_onkey_1+0x4 ;; pos_desc \ 0000001C 000090E5 LDR R0,[R0, #+0] \ 00000020 0110A0E3 MOV R1,#+1 \ 00000024 3D0100EF SWI +317 \ 00000028 4C0094E5 LDR R0,[R4, #+76] \ 0000002C 0110A0E3 MOV R1,#+1 \ 00000030 3D0100EF SWI +317 233 GeneralFunc_flag1(id_ed2,1); \ 00000034 500094E5 LDR R0,[R4, #+80] \ 00000038 0110A0E3 MOV R1,#+1 \ 0000003C 3D0100EF SWI +317 234 } 235 return(0); \ ??empty_onkey_0: \ 00000040 0000A0E3 MOV R0,#+0 \ 00000044 1080BDE8 POP {R4,PC} ;; return \ ??empty_onkey_1: \ 00000048 ........ DC32 menu_id \ 0000004C ........ DC32 pos_desc 236 } 237 \ In segment DATA_Z, align 4, align-sorted 238 SOFTKEY_DESC sk[]; \ sk: \ 00000000 DS8 8 239 SOFTKEYSTAB skt={ sk,0 }; 240 \ In segment CODE, align 4, keep-with-next 241 void empty_locret(void){} \ empty_locret: \ 00000000 1EFF2FE1 BX LR ;; return 242 \ In segment CODE, align 4, keep-with-next 243 void empty_ghook(GUI *gui, int cmd) 244 { \ empty_ghook: \ 00000000 00402DE9 PUSH {LR} 245 static SOFTKEY_DESC sk={0x0FFF,0x0000,(int)"Convert"}; 246 247 if(cmd==0xA) \ 00000004 0A0051E3 CMP R1,#+10 \ 00000008 0100001A BNE ??empty_ghook_0 248 { 249 DisableIDLETMR(); // Отключаем таймер выхода по таймауту \ 0000000C 7F0100EF SWI +383 \ 00000010 0080BDE8 POP {PC} 250 } 251 252 if(cmd==0x03) // onDestroy 253 { 254 } 255 256 if (cmd==7) \ ??empty_ghook_0: \ 00000014 070051E3 CMP R1,#+7 \ 00000018 0080BD18 POPNE {PC} 257 { 258 SetSoftKey(gui,&sk,SET_SOFT_KEY_N); \ 0000001C 08109FE5 LDR R1,??empty_ghook_1 ;; ??sk \ 00000020 0120A0E3 MOV R2,#+1 \ 00000024 680100EF SWI +360 259 } 260 } \ 00000028 0080BDE8 POP {PC} ;; return \ ??empty_ghook_1: \ 0000002C ........ DC32 ??sk 261 262 INPUTDIA_DESC edit_desc=//Редактирование 263 { 264 1, 265 empty_onkey, 266 empty_ghook, 267 (void *)empty_locret, 268 0, 269 &skt, 270 {0,0,0,0}, 271 FONT_SMALL, 272 100, 273 101, 274 0, 275 0, 276 0x40000000 277 }; 278 279 //--------------------------------------------------------// 280 \ In segment CODE, align 4, keep-with-next 281 int ed_create(int i,char *s) 282 { \ ed_create: \ 00000000 F04F2DE9 PUSH {R4-R11,LR} \ 00000004 3CD04DE2 SUB SP,SP,#+60 \ 00000008 00A0A0E1 MOV R10,R0 \ 0000000C 0190A0E1 MOV R9,R1 283 EDITCONTROL ec; 284 PrepareEditControl(&ec); 285 286 char *ss=malloc(32); 287 void *ma=malloc_adr(); 288 void *eq=AllocEQueue(ma, mfree_adr()); 289 WSHDR *ws=AllocWS(256); 290 WSHDR *ws_dec=AllocWS(256); 291 WSHDR *ws_bin=AllocWS(256); 292 WSHDR *ws_oct=AllocWS(256); 293 WSHDR *ws_hex=AllocWS(256); \ 00000010 40759FE5 LDR R7,??ed_create_0 ;; edit_desc \ 00000014 40859FE5 LDR R8,??ed_create_0+0x4 ;; per_t \ 00000018 10008DE2 ADD R0,SP,#+16 \ 0000001C 640100EF SWI +356 \ 00000020 2000A0E3 MOV R0,#+32 \ 00000024 140000EF SWI +20 \ 00000028 148000EF SWI +32788 \ 0000002C 00008DE5 STR R0,[SP, #+0] \ 00000030 158000EF SWI +32789 \ 00000034 0010A0E1 MOV R1,R0 \ 00000038 00009DE5 LDR R0,[SP, #+0] \ 0000003C 630100EF SWI +355 \ 00000040 08008DE5 STR R0,[SP, #+8] \ 00000044 400FA0E3 MOV R0,#+256 \ 00000048 250100EF SWI +293 \ 0000004C 04008DE5 STR R0,[SP, #+4] \ 00000050 400FA0E3 MOV R0,#+256 \ 00000054 250100EF SWI +293 \ 00000058 0040A0E1 MOV R4,R0 \ 0000005C 400FA0E3 MOV R0,#+256 \ 00000060 250100EF SWI +293 \ 00000064 0050A0E1 MOV R5,R0 \ 00000068 400FA0E3 MOV R0,#+256 \ 0000006C 250100EF SWI +293 \ 00000070 0060A0E1 MOV R6,R0 \ 00000074 400FA0E3 MOV R0,#+256 \ 00000078 250100EF SWI +293 \ 0000007C 0C008DE5 STR R0,[SP, #+12] \ 00000080 00005AE3 CMP R10,#+0 \ 00000084 0600000A BEQ ??ed_create_1 \ 00000088 01A05AE2 SUBS R10,R10,#+1 \ 0000008C 3900000A BEQ ??ed_create_2 \ 00000090 01A05AE2 SUBS R10,R10,#+1 \ 00000094 4800000A BEQ ??ed_create_3 \ 00000098 01A05AE2 SUBS R10,R10,#+1 \ 0000009C 6A00000A BEQ ??ed_create_4 \ 000000A0 9F0000EA B ??ed_create_5 294 295 switch(i) 296 { 297 case 0: //DEC 298 wsprintf(ws_dec,per_s,s); \ ??ed_create_1: \ 000000A4 0920A0E1 MOV R2,R9 \ 000000A8 031088E2 ADD R1,R8,#+3 \ 000000AC 0400A0E1 MOV R0,R4 \ 000000B0 240100EF SWI +292 299 ss=dec2bin(strtoul(s,0,10)); \ 000000B4 0A20A0E3 MOV R2,#+10 \ 000000B8 0010A0E3 MOV R1,#+0 \ 000000BC 0900A0E1 MOV R0,R9 \ 000000C0 ........ _BLF strtoul,??strtoul??rA \ 000000C4 ........ BL dec2bin \ 000000C8 00B0A0E1 MOV R11,R0 300 301 CutWSTR(ws_bin,0); \ 000000CC 0010A0E3 MOV R1,#+0 \ 000000D0 0500A0E1 MOV R0,R5 \ 000000D4 260100EF SWI +294 302 for(i=0;i<=len;i++) \ 000000D8 040000EA B ??ed_create_6 303 wsInsertChar(ws_bin,ss[i],i); \ ??ed_create_7: \ 000000DC ........ LDRB R1,[R11], #+1 \ 000000E0 0A20A0E1 MOV R2,R10 \ 000000E4 0500A0E1 MOV R0,R5 \ 000000E8 1D0000EF SWI +29 \ 000000EC 01A08AE2 ADD R10,R10,#+1 \ ??ed_create_6: \ 000000F0 4C0097E5 LDR R0,[R7, #+76] \ 000000F4 0A0050E1 CMP R0,R10 \ 000000F8 F7FFFFAA BGE ??ed_create_7 304 305 ss=dec2oct(strtoul(s,0,10)); \ ??ed_create_8: \ 000000FC 0A20A0E3 MOV R2,#+10 \ 00000100 0010A0E3 MOV R1,#+0 \ 00000104 0900A0E1 MOV R0,R9 \ 00000108 ........ _BLF strtoul,??strtoul??rA \ 0000010C ........ BL dec2oct \ 00000110 00B0A0E1 MOV R11,R0 306 CutWSTR(ws_oct,0); \ 00000114 0010A0E3 MOV R1,#+0 \ 00000118 0600A0E1 MOV R0,R6 \ 0000011C 260100EF SWI +294 307 for(i=0;i<=len;i++) \ 00000120 00A0A0E3 MOV R10,#+0 \ 00000124 040000EA B ??ed_create_9 308 wsInsertChar(ws_oct,ss[i],i); \ ??ed_create_10: \ 00000128 ........ LDRB R1,[R11], #+1 \ 0000012C 0A20A0E1 MOV R2,R10 \ 00000130 0600A0E1 MOV R0,R6 \ 00000134 1D0000EF SWI +29 \ 00000138 01A08AE2 ADD R10,R10,#+1 \ ??ed_create_9: \ 0000013C 4C0097E5 LDR R0,[R7, #+76] \ 00000140 0A0050E1 CMP R0,R10 \ 00000144 F7FFFFAA BGE ??ed_create_10 309 310 CutWSTR(ws_hex,0); \ ??ed_create_11: \ 00000148 0C009DE5 LDR R0,[SP, #+12] \ 0000014C 0010A0E3 MOV R1,#+0 \ 00000150 260100EF SWI +294 311 wsprintf(ws_hex,"%X",strtoul(s,0,10)); \ 00000154 0A20A0E3 MOV R2,#+10 \ 00000158 0010A0E3 MOV R1,#+0 \ 0000015C 0900A0E1 MOV R0,R9 \ 00000160 ........ _BLF strtoul,??strtoul??rA \ 00000164 0020A0E1 MOV R2,R0 \ 00000168 0C009DE5 LDR R0,[SP, #+12] \ 0000016C 631F8FE2 ADR R1,??ed_create_12 ;; "%X" \ 00000170 240100EF SWI +292 \ 00000174 6A0000EA B ??ed_create_5 312 break; 313 314 case 1: //BIN 315 wsprintf(ws_bin,per_s,s); \ ??ed_create_2: \ 00000178 0920A0E1 MOV R2,R9 \ 0000017C 031088E2 ADD R1,R8,#+3 \ 00000180 0500A0E1 MOV R0,R5 \ 00000184 240100EF SWI +292 316 wsprintf(ws_dec,per_d,bin2dec(s));//bin->dec \ 00000188 0900A0E1 MOV R0,R9 \ 0000018C ........ BL bin2dec \ 00000190 0020A0E1 MOV R2,R0 \ 00000194 541087E2 ADD R1,R7,#+84 \ 00000198 0400A0E1 MOV R0,R4 \ 0000019C 240100EF SWI +292 317 318 ws_2str(ws_dec,s,wstrlen(ws_dec)); \ 000001A0 0400A0E1 MOV R0,R4 \ 000001A4 230100EF SWI +291 \ 000001A8 0020A0E1 MOV R2,R0 \ 000001AC 0910A0E1 MOV R1,R9 \ 000001B0 0400A0E1 MOV R0,R4 \ 000001B4 A30000EF SWI +163 319 ss=dec2oct(strtoul(s,0,10));//dec->oct \ 000001B8 CFFFFFEA B ??ed_create_8 320 CutWSTR(ws_oct,0); 321 for(i=0;i<=len;i++) 322 wsInsertChar(ws_oct,ss[i],i); 323 324 CutWSTR(ws_hex,0); 325 wsprintf(ws_hex,"%X",strtoul(s,0,10));//dec->hex 326 break; 327 328 case 2: //OCT 329 wsprintf(ws_oct,per_s,s);//oct \ ??ed_create_3: \ 000001BC 0920A0E1 MOV R2,R9 \ 000001C0 031088E2 ADD R1,R8,#+3 \ 000001C4 0600A0E1 MOV R0,R6 \ 000001C8 240100EF SWI +292 330 wsprintf(ws_dec,per_d,oct2dec(s));//oct->dec \ 000001CC 0900A0E1 MOV R0,R9 \ 000001D0 ........ BL oct2dec \ 000001D4 0020A0E1 MOV R2,R0 \ 000001D8 541087E2 ADD R1,R7,#+84 \ 000001DC 0400A0E1 MOV R0,R4 \ 000001E0 240100EF SWI +292 331 332 ws_2str(ws_dec,s,wstrlen(ws_dec)); \ 000001E4 0400A0E1 MOV R0,R4 \ 000001E8 230100EF SWI +291 \ 000001EC 0020A0E1 MOV R2,R0 \ 000001F0 0910A0E1 MOV R1,R9 \ 000001F4 0400A0E1 MOV R0,R4 \ 000001F8 A30000EF SWI +163 333 ss=dec2bin(strtoul(s,0,10));//dec->bin \ 000001FC 0A20A0E3 MOV R2,#+10 \ 00000200 0010A0E3 MOV R1,#+0 \ 00000204 0900A0E1 MOV R0,R9 \ 00000208 ........ _BLF strtoul,??strtoul??rA \ 0000020C ........ BL dec2bin \ 00000210 00B0A0E1 MOV R11,R0 334 CutWSTR(ws_bin,0); \ 00000214 0010A0E3 MOV R1,#+0 \ 00000218 0500A0E1 MOV R0,R5 \ 0000021C 260100EF SWI +294 335 for(i=0;i<=len;i++) \ 00000220 00A0A0E3 MOV R10,#+0 \ 00000224 040000EA B ??ed_create_13 336 wsInsertChar(ws_bin,ss[i],i); \ ??ed_create_14: \ 00000228 ........ LDRB R1,[R11], #+1 \ 0000022C 0A20A0E1 MOV R2,R10 \ 00000230 0500A0E1 MOV R0,R5 \ 00000234 1D0000EF SWI +29 \ 00000238 01A08AE2 ADD R10,R10,#+1 \ ??ed_create_13: \ 0000023C 4C0097E5 LDR R0,[R7, #+76] \ 00000240 0A0050E1 CMP R0,R10 \ 00000244 F7FFFFAA BGE ??ed_create_14 337 338 CutWSTR(ws_hex,0); \ 00000248 BEFFFFEA B ??ed_create_11 339 wsprintf(ws_hex,"%X",strtoul(s,0,10));//dec->hex 340 break; 341 342 case 3: //HEX 343 wsprintf(ws_hex,per_s,s);//hex \ ??ed_create_4: \ 0000024C 0920A0E1 MOV R2,R9 \ 00000250 031088E2 ADD R1,R8,#+3 \ 00000254 240100EF SWI +292 344 wsprintf(ws_dec,per_d,hex2dec(s));//hex->dec \ 00000258 0900A0E1 MOV R0,R9 \ 0000025C ........ BL hex2dec \ 00000260 0020A0E1 MOV R2,R0 \ 00000264 541087E2 ADD R1,R7,#+84 \ 00000268 0400A0E1 MOV R0,R4 \ 0000026C 240100EF SWI +292 345 346 ws_2str(ws_dec,s,wstrlen(ws_dec)); \ 00000270 0400A0E1 MOV R0,R4 \ 00000274 230100EF SWI +291 \ 00000278 0020A0E1 MOV R2,R0 \ 0000027C 0910A0E1 MOV R1,R9 \ 00000280 0400A0E1 MOV R0,R4 \ 00000284 A30000EF SWI +163 347 ss=dec2bin(strtoul(s,0,10));//dec->bin \ 00000288 0A20A0E3 MOV R2,#+10 \ 0000028C 0010A0E3 MOV R1,#+0 \ 00000290 0900A0E1 MOV R0,R9 \ 00000294 ........ _BLF strtoul,??strtoul??rA \ 00000298 ........ BL dec2bin \ 0000029C 00B0A0E1 MOV R11,R0 348 CutWSTR(ws_bin,0); \ 000002A0 0010A0E3 MOV R1,#+0 \ 000002A4 0500A0E1 MOV R0,R5 \ 000002A8 260100EF SWI +294 349 for(i=0;i<=len;i++) \ 000002AC 00A0A0E3 MOV R10,#+0 \ 000002B0 040000EA B ??ed_create_15 350 wsInsertChar(ws_bin,ss[i],i); \ ??ed_create_16: \ 000002B4 ........ LDRB R1,[R11], #+1 \ 000002B8 0A20A0E1 MOV R2,R10 \ 000002BC 0500A0E1 MOV R0,R5 \ 000002C0 1D0000EF SWI +29 \ 000002C4 01A08AE2 ADD R10,R10,#+1 \ ??ed_create_15: \ 000002C8 4C0097E5 LDR R0,[R7, #+76] \ 000002CC 0A0050E1 CMP R0,R10 \ 000002D0 F7FFFFAA BGE ??ed_create_16 351 352 ss=dec2oct(strtoul(s,0,10));//dec->oct \ 000002D4 0A20A0E3 MOV R2,#+10 \ 000002D8 0010A0E3 MOV R1,#+0 \ 000002DC 0900A0E1 MOV R0,R9 \ 000002E0 ........ _BLF strtoul,??strtoul??rA \ 000002E4 ........ BL dec2oct \ 000002E8 00B0A0E1 MOV R11,R0 353 CutWSTR(ws_oct,0); \ 000002EC 0010A0E3 MOV R1,#+0 \ 000002F0 0600A0E1 MOV R0,R6 \ 000002F4 260100EF SWI +294 354 for(i=0;i<=len;i++) \ 000002F8 00A0A0E3 MOV R10,#+0 \ 000002FC 050000EA B ??ed_create_17 \ ??ed_create_12: \ 00000300 25580000 DC8 "%X",+0 355 wsInsertChar(ws_oct,ss[i],i); \ ??ed_create_18: \ 00000304 ........ LDRB R1,[R11], #+1 \ 00000308 0A20A0E1 MOV R2,R10 \ 0000030C 0600A0E1 MOV R0,R6 \ 00000310 1D0000EF SWI +29 \ 00000314 01A08AE2 ADD R10,R10,#+1 \ ??ed_create_17: \ 00000318 4C0097E5 LDR R0,[R7, #+76] \ 0000031C 0A0050E1 CMP R0,R10 \ 00000320 F7FFFFAA BGE ??ed_create_18 356 break; 357 } 358 359 wsprintf(ws,per_t,"DEC:\n"); \ ??ed_create_5: \ 00000324 04009DE5 LDR R0,[SP, #+4] \ 00000328 2C2088E2 ADD R2,R8,#+44 \ 0000032C 0810A0E1 MOV R1,R8 \ 00000330 240100EF SWI +292 360 ConstructEditControl(&ec,ECT_HEADER,ECF_NORMAL_STR,ws,10); \ 00000334 0A00A0E3 MOV R0,#+10 \ 00000338 01002DE9 PUSH {R0} \ 0000033C 08309DE5 LDR R3,[SP, #+8] \ 00000340 0020A0E3 MOV R2,#+0 \ 00000344 0110A0E3 MOV R1,#+1 \ 00000348 14008DE2 ADD R0,SP,#+20 \ 0000034C 650100EF SWI +357 361 AddEditControlToEditQend(eq,&ec,ma); \ 00000350 04209DE5 LDR R2,[SP, #+4] \ 00000354 0C009DE5 LDR R0,[SP, #+12] \ 00000358 14108DE2 ADD R1,SP,#+20 \ 0000035C 660100EF SWI +358 362 363 ConstructEditControl(&ec,ECT_NORMAL_NUM,ECF_APPEND_EOL|ECF_DISABLE_MINUS|ECF_DISABLE_POINT,ws_dec,32); \ 00000360 2000A0E3 MOV R0,#+32 \ 00000364 01002DE9 PUSH {R0} \ 00000368 4090A0E3 MOV R9,#+64 \ 0000036C 609A89E3 ORR R9,R9,#0x60000 \ 00000370 0430A0E1 MOV R3,R4 \ 00000374 0920A0E1 MOV R2,R9 \ 00000378 0610A0E3 MOV R1,#+6 \ 0000037C 18008DE2 ADD R0,SP,#+24 \ 00000380 650100EF SWI +357 364 AddEditControlToEditQend(eq,&ec,ma); \ 00000384 08209DE5 LDR R2,[SP, #+8] \ 00000388 10009DE5 LDR R0,[SP, #+16] \ 0000038C 18108DE2 ADD R1,SP,#+24 \ 00000390 660100EF SWI +358 365 366 wsprintf(ws,per_t,"BIN:"); \ 00000394 0C009DE5 LDR R0,[SP, #+12] \ 00000398 242088E2 ADD R2,R8,#+36 \ 0000039C 0810A0E1 MOV R1,R8 \ 000003A0 240100EF SWI +292 367 ConstructEditControl(&ec,ECT_HEADER,ECF_SET_CURSOR_END,ws,10); \ 000003A4 0A00A0E3 MOV R0,#+10 \ 000003A8 01002DE9 PUSH {R0} \ 000003AC 10309DE5 LDR R3,[SP, #+16] \ 000003B0 8020A0E3 MOV R2,#+128 \ 000003B4 0110A0E3 MOV R1,#+1 \ 000003B8 1C008DE2 ADD R0,SP,#+28 \ 000003BC 650100EF SWI +357 368 AddEditControlToEditQend(eq,&ec,ma); \ 000003C0 0C209DE5 LDR R2,[SP, #+12] \ 000003C4 14009DE5 LDR R0,[SP, #+20] \ 000003C8 1C108DE2 ADD R1,SP,#+28 \ 000003CC 660100EF SWI +358 369 370 ConstructEditControl(&ec,ECT_NORMAL_NUM,ECF_APPEND_EOL|ECF_DISABLE_MINUS|ECF_DISABLE_POINT,ws_bin,32); \ 000003D0 2000A0E3 MOV R0,#+32 \ 000003D4 01002DE9 PUSH {R0} \ 000003D8 0530A0E1 MOV R3,R5 \ 000003DC 0920A0E1 MOV R2,R9 \ 000003E0 0610A0E3 MOV R1,#+6 \ 000003E4 20008DE2 ADD R0,SP,#+32 \ 000003E8 650100EF SWI +357 371 AddEditControlToEditQend(eq,&ec,ma); \ 000003EC 10209DE5 LDR R2,[SP, #+16] \ 000003F0 18009DE5 LDR R0,[SP, #+24] \ 000003F4 20108DE2 ADD R1,SP,#+32 \ 000003F8 660100EF SWI +358 372 373 wsprintf(ws,per_t,"OCT:\n"); \ 000003FC 14009DE5 LDR R0,[SP, #+20] \ 00000400 082088E2 ADD R2,R8,#+8 \ 00000404 0810A0E1 MOV R1,R8 \ 00000408 240100EF SWI +292 374 ConstructEditControl(&ec,ECT_HEADER,ECF_NORMAL_STR,ws,11); \ 0000040C 0B00A0E3 MOV R0,#+11 \ 00000410 01002DE9 PUSH {R0} \ 00000414 18309DE5 LDR R3,[SP, #+24] \ 00000418 0020A0E3 MOV R2,#+0 \ 0000041C 0110A0E3 MOV R1,#+1 \ 00000420 24008DE2 ADD R0,SP,#+36 \ 00000424 650100EF SWI +357 375 AddEditControlToEditQend(eq,&ec,ma); \ 00000428 14209DE5 LDR R2,[SP, #+20] \ 0000042C 1C009DE5 LDR R0,[SP, #+28] \ 00000430 24108DE2 ADD R1,SP,#+36 \ 00000434 660100EF SWI +358 376 377 ConstructEditControl(&ec,ECT_NORMAL_NUM,ECF_APPEND_EOL|ECF_DISABLE_MINUS|ECF_DISABLE_POINT,ws_oct,32); \ 00000438 2000A0E3 MOV R0,#+32 \ 0000043C 01002DE9 PUSH {R0} \ 00000440 0630A0E1 MOV R3,R6 \ 00000444 0920A0E1 MOV R2,R9 \ 00000448 0610A0E3 MOV R1,#+6 \ 0000044C 28008DE2 ADD R0,SP,#+40 \ 00000450 650100EF SWI +357 378 AddEditControlToEditQend(eq,&ec,ma); \ 00000454 18209DE5 LDR R2,[SP, #+24] \ 00000458 20009DE5 LDR R0,[SP, #+32] \ 0000045C 28108DE2 ADD R1,SP,#+40 \ 00000460 660100EF SWI +358 379 380 wsprintf(ws,per_t,"HEX:\n"); \ 00000464 1C009DE5 LDR R0,[SP, #+28] \ 00000468 1C2088E2 ADD R2,R8,#+28 \ 0000046C 0810A0E1 MOV R1,R8 \ 00000470 240100EF SWI +292 381 ConstructEditControl(&ec,ECT_HEADER,ECF_NORMAL_STR,ws,11); \ 00000474 0B00A0E3 MOV R0,#+11 \ 00000478 01002DE9 PUSH {R0} \ 0000047C 20309DE5 LDR R3,[SP, #+32] \ 00000480 0020A0E3 MOV R2,#+0 \ 00000484 0110A0E3 MOV R1,#+1 \ 00000488 2C008DE2 ADD R0,SP,#+44 \ 0000048C 650100EF SWI +357 382 AddEditControlToEditQend(eq,&ec,ma); \ 00000490 1C209DE5 LDR R2,[SP, #+28] \ 00000494 24009DE5 LDR R0,[SP, #+36] \ 00000498 2C108DE2 ADD R1,SP,#+44 \ 0000049C 660100EF SWI +358 383 384 ConstructEditControl(&ec,ECT_NORMAL_TEXT,ECF_APPEND_EOL,ws_hex,32); \ 000004A0 2000A0E3 MOV R0,#+32 \ 000004A4 01002DE9 PUSH {R0} \ 000004A8 2C309DE5 LDR R3,[SP, #+44] \ 000004AC 4020A0E3 MOV R2,#+64 \ 000004B0 0310A0E3 MOV R1,#+3 \ 000004B4 30008DE2 ADD R0,SP,#+48 \ 000004B8 650100EF SWI +357 385 AddEditControlToEditQend(eq,&ec,ma); \ 000004BC 28009DE5 LDR R0,[SP, #+40] \ 000004C0 20209DE5 LDR R2,[SP, #+32] \ 000004C4 30108DE2 ADD R1,SP,#+48 \ 000004C8 660100EF SWI +358 386 387 disk_prop_hdr.lgp_id = (int)"ConvertorSS"; \ 000004CC 100088E2 ADD R0,R8,#+16 \ 000004D0 440087E5 STR R0,[R7, #+68] 388 patch_header(&disk_prop_hdr); \ 000004D4 0040A0E3 MOV R4,#+0 \ 000004D8 384087E5 STR R4,[R7, #+56] \ 000004DC 888100EF SWI +33160 \ 000004E0 010040E2 SUB R0,R0,#+1 \ 000004E4 BC03C7E1 STRH R0,[R7, #+60] \ 000004E8 8A8100EF SWI +33162 \ 000004EC BE03C7E1 STRH R0,[R7, #+62] 389 patch_input(&edit_desc); \ 000004F0 B841C7E1 STRH R4,[R7, #+24] \ 000004F4 8A8100EF SWI +33162 \ 000004F8 010080E2 ADD R0,R0,#+1 \ 000004FC BA01C7E1 STRH R0,[R7, #+26] \ 00000500 888100EF SWI +33160 \ 00000504 010040E2 SUB R0,R0,#+1 \ 00000508 BC01C7E1 STRH R0,[R7, #+28] \ 0000050C 898100EF SWI +33161 \ 00000510 0040A0E1 MOV R4,R0 \ 00000514 8B8100EF SWI +33163 \ 00000518 000044E0 SUB R0,R4,R0 \ 0000051C 010040E2 SUB R0,R0,#+1 \ 00000520 BE01C7E1 STRH R0,[R7, #+30] 390 391 FreeWS(ws); \ 00000524 24009DE5 LDR R0,[SP, #+36] \ 00000528 290100EF SWI +297 392 return id_create=CreateInputTextDialog(&edit_desc,&disk_prop_hdr,eq,1,0); \ 0000052C 0000A0E3 MOV R0,#+0 \ 00000530 01002DE9 PUSH {R0} \ 00000534 2C209DE5 LDR R2,[SP, #+44] \ 00000538 0130A0E3 MOV R3,#+1 \ 0000053C 381087E2 ADD R1,R7,#+56 \ 00000540 0700A0E1 MOV R0,R7 \ 00000544 670100EF SWI +359 \ 00000548 24D08DE2 ADD SP,SP,#+36 \ 0000054C 500087E5 STR R0,[R7, #+80] \ 00000550 3CD08DE2 ADD SP,SP,#+60 \ 00000554 F08FBDE8 POP {R4-R11,PC} ;; return \ ??ed_create_0: \ 00000558 ........ DC32 edit_desc \ 0000055C ........ DC32 per_t 393 } 394 395 //--------------------------------INPUT----------------------------------// 396 char hdr[64]; 397 HEADER_DESC pos_hdr={0,0,131,21,NULL,(int)hdr,LGP_NULL}; 398 int conv=0; \ In segment CODE, align 4, keep-with-next 399 int pos_onkey(GUI *data, GUI_MSG *msg) 400 { \ pos_onkey: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 4CD04DE2 SUB SP,SP,#+76 \ 00000008 0040A0E1 MOV R4,R0 \ 0000000C 0150A0E1 MOV R5,R1 401 WSHDR *ws=AllocWS(64); \ 00000010 4000A0E3 MOV R0,#+64 \ 00000014 250100EF SWI +293 402 char num[32]; 403 if (msg->keys==0x0018)//0xFFF \ 00000018 F200D5E1 LDRSH R0,[R5, #+2] \ 0000001C 180050E3 CMP R0,#+24 \ 00000020 0B00001A BNE ??pos_onkey_0 404 { 405 EDITCONTROL ec; 406 ExtractEditControl(data,1,&ec); \ 00000024 0D20A0E1 MOV R2,SP \ 00000028 0110A0E3 MOV R1,#+1 \ 0000002C 0400A0E1 MOV R0,R4 \ 00000030 690100EF SWI +361 407 ws=ec.pWS; 408 ws_2str(ws,num,ec.maxlen); \ 00000034 F821DDE1 LDRSH R2,[SP, #+24] \ 00000038 28009DE5 LDR R0,[SP, #+40] \ 0000003C 2C108DE2 ADD R1,SP,#+44 \ 00000040 A30000EF SWI +163 409 ed_create(conv,num); \ 00000044 14009FE5 LDR R0,??pos_onkey_1 ;; pos_desc + 84 \ 00000048 2C108DE2 ADD R1,SP,#+44 \ 0000004C 000090E5 LDR R0,[R0, #+0] \ 00000050 ........ BL ed_create 410 } 411 return(0); \ ??pos_onkey_0: \ 00000054 0000A0E3 MOV R0,#+0 \ 00000058 4CD08DE2 ADD SP,SP,#+76 \ 0000005C 3080BDE8 POP {R4,R5,PC} ;; return \ ??pos_onkey_1: \ 00000060 ........ DC32 pos_desc + 84 412 } 413 \ In segment CODE, align 4, keep-with-next 414 void pos_ghook(GUI *gui, int cmd) 415 { \ pos_ghook: \ 00000000 00402DE9 PUSH {LR} 416 static SOFTKEY_DESC sk={0x0018,0x0000,(int)"Convert"}; 417 if (cmd==7) \ 00000004 070051E3 CMP R1,#+7 \ 00000008 0300001A BNE ??pos_ghook_0 418 { 419 SetSoftKey(gui,&sk,SET_SOFT_KEY_N); \ 0000000C 18109FE5 LDR R1,??pos_ghook_1 ;; ??sk_1 \ 00000010 0120A0E3 MOV R2,#+1 \ 00000014 680100EF SWI +360 \ 00000018 0080BDE8 POP {PC} 420 } 421 if(cmd==0xA) \ ??pos_ghook_0: \ 0000001C 0A0051E3 CMP R1,#+10 \ 00000020 0080BD18 POPNE {PC} 422 { 423 DisableIDLETMR(); // Отключаем таймер выхода по таймауту \ 00000024 7F0100EF SWI +383 424 } 425 if (cmd==0x0C) 426 { 427 } 428 if(cmd==0x03){} 429 } \ 00000028 0080BDE8 POP {PC} ;; return \ ??pos_ghook_1: \ 0000002C ........ DC32 ??sk_1 430 \ In segment CODE, align 4, keep-with-next 431 void pos_locret(void){} \ pos_locret: \ 00000000 1EFF2FE1 BX LR ;; return \ In segment DATA_I, align 4, align-sorted 432 433 SOFTKEY_DESC menu_sk[]= 434 { 435 {0x0018,0x0000,(int)"Лев"}, 436 {0x0001,0x0000,(int)"Прав"}, 437 {0x003D,0x0000,(int)LGP_DOIT_PIC} 438 }; 439 440 SOFTKEYSTAB menu_skt= 441 { 442 menu_sk,0 443 }; 444 445 INPUTDIA_DESC pos_desc= \ pos_desc: \ 00000000 DS8 56 \ 00000038 REQUIRE `?` \ pos_hdr: \ 00000038 DS8 20 \ 0000004C REQUIRE `?` \ id_ed: \ 0000004C DS8 4 \ 00000050 REQUIRE `?` \ id_ed2: \ 00000050 DS8 4 \ 00000054 REQUIRE `?` \ conv: \ 00000054 DS8 4 \ 00000058 REQUIRE `?` 446 { 447 1, 448 pos_onkey, 449 pos_ghook, 450 (void *)pos_locret, 451 0, 452 &menu_skt, 453 {0,NULL,NULL,NULL}, 454 FONT_SMALL, 455 100, 456 101, 457 0, 458 0x00000000, 459 0x40000000 460 }; 461 462 char *cc[]={"DEC","BIN","OCT","HEX"}; \ cc: \ 00000058 DS8 16 \ 00000068 REQUIRE `?` \ hdr: \ 00000068 DS8 64 \ 000000A8 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ edit_desc: \ 00000000 DS8 56 \ 00000038 REQUIRE `?` \ disk_prop_hdr: \ 00000038 DS8 20 \ 0000004C REQUIRE `?` \ len: \ 0000004C DS8 4 \ 00000050 REQUIRE `?` \ id_create: \ 00000050 DS8 4 \ 00000054 REQUIRE `?` \ per_d: \ 00000054 DS8 3 \ 00000057 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ skt: \ 00000000 DS8 8 \ 00000008 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ ??sk: \ 00000000 DS8 8 \ 00000008 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ ??sk_1: \ 00000000 DS8 8 \ 00000008 REQUIRE `?_1` \ In segment DATA_I, align 4, align-sorted \ menu_sk: \ 00000000 DS8 24 \ 00000018 REQUIRE `?` \ In segment DATA_I, align 4, align-sorted \ menu_skt: \ 00000000 DS8 8 \ 00000008 REQUIRE `?` \ In segment CODE, align 4, keep-with-next 463 void input(int i) 464 { \ input: \ 00000000 F0402DE9 PUSH {R4-R7,LR} 465 conv=i; \ 00000004 FC409FE5 LDR R4,??input_0 ;; pos_desc \ 00000008 0060A0E1 MOV R6,R0 466 EDITCONTROL ec; 467 sprintf(hdr,"%s %s","Input",cc[i]); \ 0000000C F8009FE5 LDR R0,??input_0+0x4 ;; `?` \ 00000010 2CD04DE2 SUB SP,SP,#+44 \ 00000014 546084E5 STR R6,[R4, #+84] \ 00000018 061184E0 ADD R1,R4,R6, LSL #+2 \ 0000001C 583091E5 LDR R3,[R1, #+88] \ 00000020 0020A0E1 MOV R2,R0 \ 00000024 081080E2 ADD R1,R0,#+8 \ 00000028 680084E2 ADD R0,R4,#+104 \ 0000002C 160000EF SWI +22 468 void *ma=malloc_adr(); \ 00000030 148000EF SWI +32788 \ 00000034 0070A0E1 MOV R7,R0 469 void *eq=AllocEQueue(ma, mfree_adr()); \ 00000038 158000EF SWI +32789 \ 0000003C 0010A0E1 MOV R1,R0 \ 00000040 0700A0E1 MOV R0,R7 \ 00000044 630100EF SWI +355 \ 00000048 0050A0E1 MOV R5,R0 470 471 PrepareEditControl(&ec); \ 0000004C 0D00A0E1 MOV R0,SP \ 00000050 640100EF SWI +356 472 if(i!=3) \ 00000054 2000A0E3 MOV R0,#+32 \ 00000058 01002DE9 PUSH {R0} \ 0000005C 2C309DE5 LDR R3,[SP, #+44] \ 00000060 030056E3 CMP R6,#+3 \ 00000064 4020A0E3 MOV R2,#+64 473 ConstructEditControl(&ec,ECT_NORMAL_NUM,ECF_APPEND_EOL|ECF_DISABLE_MINUS|ECF_DISABLE_POINT,ec.pWS,32); \ 00000068 602A8213 ORRNE R2,R2,#0x60000 \ 0000006C 0610A013 MOVNE R1,#+6 474 else 475 ConstructEditControl(&ec,ECT_NORMAL_TEXT,ECF_APPEND_EOL,ec.pWS,32); \ 00000070 0310A003 MOVEQ R1,#+3 \ 00000074 04008DE2 ADD R0,SP,#+4 \ 00000078 650100EF SWI +357 \ 0000007C 04D08DE2 ADD SP,SP,#+4 476 AddEditControlToEditQend(eq,&ec,ma); \ 00000080 0720A0E1 MOV R2,R7 \ 00000084 0D10A0E1 MOV R1,SP \ 00000088 0500A0E1 MOV R0,R5 \ 0000008C 660100EF SWI +358 477 478 patch_header(&pos_hdr); \ 00000090 0060A0E3 MOV R6,#+0 \ 00000094 386084E5 STR R6,[R4, #+56] \ 00000098 888100EF SWI +33160 \ 0000009C 010040E2 SUB R0,R0,#+1 \ 000000A0 BC03C4E1 STRH R0,[R4, #+60] \ 000000A4 8A8100EF SWI +33162 \ 000000A8 BE03C4E1 STRH R0,[R4, #+62] 479 patch_input(&pos_desc); \ 000000AC B861C4E1 STRH R6,[R4, #+24] \ 000000B0 8A8100EF SWI +33162 \ 000000B4 010080E2 ADD R0,R0,#+1 \ 000000B8 BA01C4E1 STRH R0,[R4, #+26] \ 000000BC 888100EF SWI +33160 \ 000000C0 010040E2 SUB R0,R0,#+1 \ 000000C4 BC01C4E1 STRH R0,[R4, #+28] \ 000000C8 898100EF SWI +33161 \ 000000CC 0060A0E1 MOV R6,R0 \ 000000D0 8B8100EF SWI +33163 \ 000000D4 000046E0 SUB R0,R6,R0 \ 000000D8 010040E2 SUB R0,R0,#+1 \ 000000DC BE01C4E1 STRH R0,[R4, #+30] 480 481 id_ed2=CreateInputTextDialog(&pos_desc,&pos_hdr,eq,1,0);//создаем диалоговое окно \ 000000E0 0000A0E3 MOV R0,#+0 \ 000000E4 01002DE9 PUSH {R0} \ 000000E8 0130A0E3 MOV R3,#+1 \ 000000EC 0520A0E1 MOV R2,R5 \ 000000F0 381084E2 ADD R1,R4,#+56 \ 000000F4 0400A0E1 MOV R0,R4 \ 000000F8 670100EF SWI +359 \ 000000FC 500084E5 STR R0,[R4, #+80] 482 } \ 00000100 30D08DE2 ADD SP,SP,#+48 \ 00000104 F080BDE8 POP {R4-R7,PC} ;; return \ ??input_0: \ 00000108 ........ DC32 pos_desc \ 0000010C ........ DC32 `?` 483 //----------------------------------------------------------------// 484 extern int ShowMainMenu(); \ In segment CODE, align 4, keep-with-next 485 void maincsm_oncreate(CSM_RAM *data) 486 { \ maincsm_oncreate: \ 00000000 10402DE9 PUSH {R4,LR} \ 00000004 0040A0E1 MOV R4,R0 487 MAIN_CSM *csm=(MAIN_CSM*)data; 488 csm->gui_id=ShowMainMenu();//ed_create(); \ 00000008 ........ _BLF ShowMainMenu,??ShowMainMenu??rA \ 0000000C 280084E5 STR R0,[R4, #+40] 489 } \ 00000010 1080BDE8 POP {R4,PC} ;; return 490 \ In segment CODE, align 4, keep-with-next 491 void Killer(void) 492 { 493 extern void seqkill(void *data, void(*next_in_seq)(CSM_RAM *), void *data_to_kill, void *seqkiller); 494 extern void *ELF_BEGIN; 495 } \ Killer: \ 00000000 1EFF2FE1 BX LR ;; return 496 \ In segment CODE, align 4, keep-with-next 497 void maincsm_onclose(CSM_RAM *csm) 498 { 499 SUBPROC((void *)Killer); \ maincsm_onclose: \ 00000000 08009FE5 LDR R0,??maincsm_onclose_0 ;; Killer \ 00000004 00402DE9 PUSH {LR} \ 00000008 710100EF SWI +369 500 } \ 0000000C 0080BDE8 POP {PC} ;; return \ ??maincsm_onclose_0: \ 00000010 ........ DC32 Killer 501 \ In segment CODE, align 4, keep-with-next 502 int maincsm_onmessage(CSM_RAM *data, GBS_MSG *msg) 503 { 504 MAIN_CSM *csm=(MAIN_CSM*)data; 505 if (msg->msg==MSG_GUI_DESTROYED) \ maincsm_onmessage: \ 00000000 F220D1E1 LDRSH R2,[R1, #+2] \ 00000004 980052E3 CMP R2,#+152 \ 00000008 0400001A BNE ??maincsm_onmessage_0 506 { 507 if ((int)msg->data0==csm->gui_id) \ 0000000C 081091E5 LDR R1,[R1, #+8] \ 00000010 282090E5 LDR R2,[R0, #+40] \ 00000014 020051E1 CMP R1,R2 508 { 509 { 510 csm->csm.state=-3; \ 00000018 0210E003 MVNEQ R1,#+2 \ 0000001C 10108005 STREQ R1,[R0, #+16] 511 } 512 } 513 } 514 return(1); \ ??maincsm_onmessage_0: \ 00000020 0100A0E3 MOV R0,#+1 \ 00000024 1EFF2FE1 BX LR ;; return 515 } 516 \ In segment DATA_Z, align 4, align-sorted 517 unsigned short maincsm_name_body[140]; \ maincsm_name_body: \ 00000000 DS8 280 518 519 const struct 520 { 521 CSM_DESC maincsm; 522 WSHDR maincsm_name; \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 436F6E766572 DC8 "Converter" \ 74657200 \ 0000000A 0000 DC8 0, 0 523 }MAINCSM = \ MAINCSM: \ 0000000C ............ DC32 maincsm_onmessage, maincsm_oncreate, maincsm_onclose, 44, 1 \ ............ \ 2C0000000100 \ 0000 \ 00000020 ............ DC32 minus11, maincsm_name_body, 55AACCCCH, 3333AA55H, 0 \ ....CCCCAA55 \ 55AA33330000 \ 0000 \ 00000034 8B00 DC16 139 \ 00000036 0000 DC8 0, 0 524 { 525 { 526 maincsm_onmessage, 527 maincsm_oncreate, 528 #ifdef NEWSGOLD 529 0, 530 0, 531 0, 532 0, 533 #endif 534 maincsm_onclose, 535 sizeof(MAIN_CSM), 536 1, 537 &minus11 538 }, 539 { 540 maincsm_name_body, 541 NAMECSM_MAGIC1, 542 NAMECSM_MAGIC2, 543 0x0, 544 139 545 } 546 }; 547 \ In segment CODE, align 4, keep-with-next 548 void UpdateCSMname(void) 549 { 550 wsprintf((WSHDR *)(&MAINCSM.maincsm_name),"Converter"); \ UpdateCSMname: \ 00000000 10009FE5 LDR R0,??UpdateCSMname_0 ;; `?` \ 00000004 00402DE9 PUSH {LR} \ 00000008 0010A0E1 MOV R1,R0 \ 0000000C 240080E2 ADD R0,R0,#+36 \ 00000010 240100EF SWI +292 551 } \ 00000014 0080BDE8 POP {PC} ;; return \ ??UpdateCSMname_0: \ 00000018 ........ DC32 `?` 552 \ In segment DATA_Z, align 4, align-sorted 553 int maincsm_id; \ maincsm_id: \ 00000000 DS8 4 \ In segment CODE, align 4, keep-with-next 554 int main(char *exename, char *fname) 555 { \ main: \ 00000000 00402DE9 PUSH {LR} \ 00000004 2CD04DE2 SUB SP,SP,#+44 556 // InitConfig(); 557 558 char dummy[sizeof(MAIN_CSM)]; 559 UpdateCSMname(); \ 00000008 ........ BL UpdateCSMname 560 LockSched(); \ 0000000C 460100EF SWI +326 561 maincsm_id=CreateCSM(&MAINCSM.maincsm,dummy,0); \ 00000010 20009FE5 LDR R0,??main_0 ;; `?` + 12 \ 00000014 0020A0E3 MOV R2,#+0 \ 00000018 0D10A0E1 MOV R1,SP \ 0000001C 070100EF SWI +263 \ 00000020 14109FE5 LDR R1,??main_0+0x4 ;; maincsm_id \ 00000024 000081E5 STR R0,[R1, #+0] 562 UnlockSched(); \ 00000028 470100EF SWI +327 563 return 0; \ 0000002C 0000A0E3 MOV R0,#+0 \ 00000030 2CD08DE2 ADD SP,SP,#+44 \ 00000034 0080BDE8 POP {PC} ;; return \ ??main_0: \ 00000038 ........ DC32 `?` + 12 \ 0000003C ........ DC32 maincsm_id 564 } \ In segment CODE, align 4, keep-with-next \ ??DataTable1: \ 00000000 ........ DC32 edit_desc \ In segment CODE, align 4, keep-with-next \ ??DataTable3: \ 00000000 ........ DC32 per_c \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000.... DC32 1, pos_onkey, pos_ghook, pos_locret, 0, menu_skt \ ............ \ ........0000 \ 0000........ \ 00000018 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000020 070000006400 DC32 7, 100, 101, 0, 0, 1073741824 \ 000065000000 \ 000000000000 \ 000000000040 \ `?`: \ 00000038 000000008300 DC16 0, 0, 131, 21 \ 1500 \ 00000040 00000000.... DC32 0H, hdr, 32767 \ ....FF7F0000 \ `?`: \ 0000004C 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000050 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000054 00000000 DC32 0 \ `?`: \ 00000058 ............ DC32 `?`, `?`, `?` \ ............ \ 00000064 ........ DC32 `?` \ `?`: \ 00000068 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000078 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000088 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ 00000098 000000000000 DC8 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 \ 000000000000 \ 00000000 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 01000000.... DC32 1, empty_onkey, empty_ghook, empty_locret, 0, skt \ ............ \ ........0000 \ 0000........ \ 00000018 000000000000 DC16 0, 0, 0, 0 \ 0000 \ 00000020 070000006400 DC32 7, 100, 101, 0, 0, 1073741824 \ 000065000000 \ 000000000000 \ 000000000040 \ `?`: \ 00000038 000000008300 DC16 0, 0, 131, 21 \ 1500 \ 00000040 000000000000 DC32 0H, 0, 32767 \ 0000FF7F0000 \ `?`: \ 0000004C 00000000 DC32 0 \ `?`: \ 00000050 00000000 DC8 0, 0, 0, 0 \ `?`: \ 00000054 256400 DC8 "%d" \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 ........0000 DC32 sk, 0 \ 0000 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 FF0F0000 DC16 4095, 0 \ 00000004 ........ DC32 `?` \ In segment DATA_ID, align 4, align-sorted \ `?_1`: \ 00000000 18000000 DC16 24, 0 \ 00000004 ........ DC32 `?` \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 18000000 DC16 24, 0 \ 00000004 ........ DC32 `?` \ 00000008 01000000 DC16 1, 0 \ 0000000C ........ DC32 `?` \ 00000010 3D000000 DC16 61, 0 \ 00000014 FBC0FF7F DC32 2147467515 \ In segment DATA_ID, align 4, align-sorted \ `?`: \ 00000000 ........0000 DC32 menu_sk, 0 \ 0000 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 496E70757400 DC8 "Input" \ 00000006 0000 DC8 0, 0 \ 00000008 257320257300 DC8 "%s %s" \ 0000000E 0000 DC8 0, 0 \ In segment DATA_C, align 1, align-sorted \ 00000000 255800 DC8 "%X" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 436F6E766572 DC8 "Convert" \ 7400 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 31333A35303A DC8 "13:50:36" \ 333600 \ 00000009 000000 DC8 0, 0, 0 \ 0000000C 466562203135 DC8 "Feb 15 2008" \ 203230303800 \ 00000018 436F6E766572 DC8 "ConvertorSS v0.1\012(c)kluchnik\012%s %s" \ 746F72535320 \ 76302E310A28 \ 63296B6C7563 \ 686E696B0A25 \ 7320257300 \ 0000003B 00 DC8 0 \ In segment DATA_C, align 1, align-sorted \ 00000000 256400 DC8 "%d" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 44454300 DC8 "DEC" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 48455800 DC8 "HEX" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 4F435400 DC8 "OCT" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 42494E00 DC8 "BIN" \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 CFF0E0E200 DC8 "\317\360\340\342" \ 00000005 000000 DC8 0, 0, 0 \ In segment DATA_C, align 4, align-sorted \ `?`: \ 00000000 CBE5E200 DC8 "\313\345\342" Maximum stack usage in bytes: Function CSTACK -------- ------ Killer 0 UpdateCSMname 4 about 136 bin2dec 28 dec2bin 32 dec2oct 32 ed_create 132 empty_ghook 4 empty_locret 0 empty_onkey 8 get_file_size 48 hex2dec 40 input 68 main 48 maincsm_onclose 4 maincsm_oncreate 8 maincsm_onmessage 0 mess 4 mess2 4 messd 12 oct2dec 40 pos_ghook 4 pos_locret 0 pos_onkey 88 Segment part sizes: Function/Label Bytes -------------- ----- icsmd 24 old_icsm_onMessage 4 MAINCSM_ID 4 MAINGUI_ID 4 minus11 4 per_t 52 empty_str 1 my_csm_id 4 err 4 get_file_size 40 mess 20 mess2 20 messd 52 about 64 dec2bin 208 bin2dec 136 dec2oct 212 per_c 3 oct2dec 196 hex2dec 196 empty_onkey 80 sk 8 empty_locret 4 empty_ghook 48 ed_create 1376 pos_onkey 100 pos_ghook 48 pos_locret 4 pos_desc 168 edit_desc 87 skt 8 sk 8 sk 8 menu_sk 24 menu_skt 8 input 272 maincsm_oncreate 20 Killer 4 maincsm_onclose 20 maincsm_onmessage 40 maincsm_name_body 280 ? 56 UpdateCSMname 28 maincsm_id 4 main 64 ??DataTable1 4 ??DataTable3 4 ? 168 ? 87 ? 8 ? 8 ?_1 8 ? 24 ? 8 ? 16 ? 3 ? 8 ? 60 ? 3 ? 4 ? 4 ? 4 ? 4 ? 8 ? 4 Others 204 3 440 bytes in segment CODE 234 bytes in segment DATA_C 311 bytes in segment DATA_I 311 bytes in segment DATA_ID 336 bytes in segment DATA_Z 24 bytes in segment INITTAB 3 260 bytes of CODE memory (+ 204 bytes shared) 545 bytes of CONST memory 647 bytes of DATA memory Errors: none Warnings: none