Rev 183 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 183 | Rev 288 | ||
---|---|---|---|
Line 88... | Line 88... | ||
88 | BYTE buff[0x2000]; |
88 | BYTE buff[0x2000]; |
89 | FILE* f; |
89 | FILE* f; |
90 | 90 | ||
91 | o=0; |
91 | o=0; |
92 | printf("ZX EVO project: Calc CRC for bootloader\n"); |
92 | printf("ZX EVO project: Calc CRC for bootloader\n"); |
93 | if (argc<3) { printf("usage: CRCBLDR <HexFileName> [<VersionFileName>]\n"); return 2; } |
93 | if (argc<3) { printf("usage: crcbldr <HexFileName> [<VersionFileName>]\n"); return 2; } |
94 | 94 | ||
95 | for (adr=0;adr<0x2000;adr++) buff[adr]=0xff; |
95 | for (adr=0;adr<0x2000;adr++) buff[adr]=0xff; |
96 | if (argc==4) |
96 | if (argc==4) |
97 | { |
97 | { |
98 | strncpy(s1,argv[3],1); |
98 | strncpy(s1,argv[3],1); |
Line 173... | Line 173... | ||
173 | if (checksum!=0) print_err_r(CHECKSUM); |
173 | if (checksum!=0) print_err_r(CHECKSUM); |
174 | } |
174 | } |
175 | } |
175 | } |
176 | fclose(f); |
176 | fclose(f); |
177 | 177 | ||
178 | if (err) { printf("Total %d error(s)!\n",err); return 3; } |
178 | if (err) { printf("Total %d error(s)!\n",(int)err); return 3; } |
179 | 179 | ||
180 | for (i=0;i<256;i++) |
180 | for (i=0;i<256;i++) |
181 | { |
181 | { |
182 | crc=i<<8; |
182 | crc=i<<8; |
183 | b=8; |
183 | b=8; |
Line 208... | Line 208... | ||
208 | buff[0x1ffe]=crc>>8; |
208 | buff[0x1ffe]=crc>>8; |
209 | buff[0x1fff]=crc&0xff; |
209 | buff[0x1fff]=crc&0xff; |
210 | 210 | ||
211 | // - - - - - - - - |
211 | // - - - - - - - - |
212 | 212 | ||
213 | f=fopen("ZXEVO_BL.HEX","wt"); |
213 | f=fopen("zxevo_bl.hex","wt"); |
214 | if (!f) { printf("Can't create output file!\n"); return 1; } |
214 | if (!f) { printf("Can't create output file!\n"); return 1; } |
215 | 215 | ||
216 | fputs(":020000020000FC\n:01000000FF00\n:020000021000EC\n",f); |
216 | fputs(":020000020000FC\n:01000000FF00\n:020000021000EC\n",f); |
217 | s[0]=':'; |
217 | s[0]=':'; |
218 | s[1]='1'; |
218 | s[1]='1'; |
Line 249... | Line 249... | ||
249 | while (adr<0x2000); |
249 | while (adr<0x2000); |
250 | 250 | ||
251 | fputs(":00000001FF\n",f); |
251 | fputs(":00000001FF\n",f); |
252 | fclose(f); |
252 | fclose(f); |
253 | 253 | ||
254 | printf("Created file ZXEVO_BL.HEX\n"); |
254 | printf("Created file zxevo_bl.hex\n"); |
255 | 255 | ||
256 | // - - - - - - - - |
256 | // - - - - - - - - |
257 | 257 | ||
258 | for (i=0;i<256;i++) |
258 | for (i=0;i<256;i++) |
259 | { |
259 | { |
Line 302... | Line 302... | ||
302 | crc=0; |
302 | crc=0; |
303 | for (adr=0;adr<0x96;adr++) crc=tabcrc[(crc&0xff)^E2Phead[adr]]^(crc>>8); |
303 | for (adr=0;adr<0x96;adr++) crc=tabcrc[(crc&0xff)^E2Phead[adr]]^(crc>>8); |
304 | E2Phead[0x96]=crc&0xff; |
304 | E2Phead[0x96]=crc&0xff; |
305 | E2Phead[0x97]=crc>>8; |
305 | E2Phead[0x97]=crc>>8; |
306 | 306 | ||
307 | f=fopen("ZXEVO_BL.E2P","wb"); |
307 | f=fopen("zxevo_bl.e2p","wb"); |
308 | if (!f) { printf("Can't create output file!\n"); return 1; } |
308 | if (!f) { printf("Can't create output file!\n"); return 1; } |
309 | fwrite(E2Phead,1,0x98,f); |
309 | fwrite(E2Phead,1,0x98,f); |
310 | for (adr=0;adr<256;adr++) s1[adr]=0xff; |
310 | for (adr=0;adr<256;adr++) s1[adr]=0xff; |
311 | for (adr=0;adr<0x1e0;adr++) fwrite(s1,1,256,f); |
311 | for (adr=0;adr<0x1e0;adr++) fwrite(s1,1,256,f); |
312 | fwrite(buff,1,0x2000,f); |
312 | fwrite(buff,1,0x2000,f); |
313 | for (adr=0;adr<0x10;adr++) fwrite(s1,1,256,f); |
313 | for (adr=0;adr<0x10;adr++) fwrite(s1,1,256,f); |
314 | fclose(f); |
314 | fclose(f); |
315 | 315 | ||
316 | printf("Created file ZXEVO_BL.E2P\n"); |
316 | printf("Created file zxevo_bl.e2p\n"); |
317 | 317 | ||
318 | return 0; |
318 | return 0; |
319 | } |
319 | } |