138 unsigned short start=0x3000;
140 unsigned short runaddr=0x3000;
150 remove( temporaryFileName );
153 fr=fopen(temporaryFileName,
"rb");
161 if(
frmt(_environment,
"main.exe",strlen(
"main.exe"),nome))
168 unsigned char h[]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x3c,0x5a};
169 unsigned char h1[]={1,0,0};
170 unsigned char h2[]={1,0};
171 unsigned char n[]={0x00,0x10};
172 unsigned char n1[]={0x02,0x00,0x00};
173 unsigned char end[]={0xff,0x02,0x00};
176 unsigned char preend[]={0xff,0x00,0x00};
177 fr=fopen(temporaryFileName,
"rb");
185 fw=fopen(destin,
"wb");
186 fseek(fr, 0
L, SEEK_END);
189 nblock=floor((
size+12)/254);
192 rest=
size+12-nblock*254;
195 unsigned char restByte = (
unsigned char)rest;
201 fwrite(&h,
sizeof(h),1,fw);
202 fwrite(&n,
sizeof(n),1,fw);
203 fwrite(&nome,
sizeof(nome)-1,1,fw);
212 fwrite(&h,
sizeof(h),1,fw);
215 fwrite(&h1,
sizeof(h1),1,fw);
219 fwrite(&u,
sizeof(u),1,fw);
221 fwrite(&restByte,1,1,fw);
222 fwrite(&z,
sizeof(z),1,fw);
226 fwrite(&start,
sizeof(start),1,fw);
227 crc((
unsigned char *)&
size,
sizeof(
size),&sum);
228 crc((
unsigned char *)&start,
sizeof(start),&sum);
229 for (
int i=0;i<l;i++)
238 fwrite(&h,
sizeof(h),1,fw);
240 fwrite(&h2,
sizeof(h2),1,fw);
243 fwrite(&u,
sizeof(u),1,fw);
245 fwrite(&restByte,1,1,fw);
251 (void)!fread(&byt,1,1,fr);
255 crc((
unsigned char *)&preend,3,&sum);
256 fwrite(&preend,3,1,fw);
257 crc((
unsigned char *)&runaddr,2,&sum);
258 fwrite(&runaddr,2,1,fw);
262 fwrite(&h,
sizeof(h),1,fw);
263 fwrite(&
end,
sizeof(
end),1,fw);
269 remove(temporaryFileName);