140 unsigned short start=0x3000;
142 unsigned short runaddr=0x3000;
152 remove( temporaryFileName );
155 fr=fopen(temporaryFileName,
"rb");
163 if(
frmt(_environment,
"main.exe",strlen(
"main.exe"),nome))
170 unsigned char h[]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x3c,0x5a};
171 unsigned char h1[]={1,0,0};
172 unsigned char h2[]={1,0};
173 unsigned char n[]={0x00,0x10};
174 unsigned char n1[]={0x02,0x00,0x00};
175 unsigned char end[]={0xff,0x02,0x00};
178 unsigned char preend[]={0xff,0x00,0x00};
179 fr=fopen(temporaryFileName,
"rb");
187 fw=fopen(destin,
"wb");
188 fseek(fr, 0
L, SEEK_END);
191 nblock=floor((
size+12)/254);
194 rest=
size+12-nblock*254;
197 unsigned char restByte = (
unsigned char)rest;
203 fwrite(&h,
sizeof(h),1,fw);
204 fwrite(&n,
sizeof(n),1,fw);
205 fwrite(&nome,
sizeof(nome)-1,1,fw);
214 fwrite(&h,
sizeof(h),1,fw);
217 fwrite(&h1,
sizeof(h1),1,fw);
221 fwrite(&u,
sizeof(u),1,fw);
223 fwrite(&restByte,1,1,fw);
224 fwrite(&z,
sizeof(z),1,fw);
228 fwrite(&start,
sizeof(start),1,fw);
229 crc((
unsigned char *)&
size,
sizeof(
size),&sum);
230 crc((
unsigned char *)&start,
sizeof(start),&sum);
231 for (
int i=0;i<l;i++)
240 fwrite(&h,
sizeof(h),1,fw);
242 fwrite(&h2,
sizeof(h2),1,fw);
245 fwrite(&u,
sizeof(u),1,fw);
247 fwrite(&restByte,1,1,fw);
253 (void)!fread(&byt,1,1,fr);
257 crc((
unsigned char *)&preend,3,&sum);
258 fwrite(&preend,3,1,fw);
259 crc((
unsigned char *)&runaddr,2,&sum);
260 fwrite(&runaddr,2,1,fw);
264 fwrite(&h,
sizeof(h),1,fw);
265 fwrite(&
end,
sizeof(
end),1,fw);
271 remove(temporaryFileName);