#include FILE *fdo; int flag; unsigned int dd,address; int d,sum,buff[32],cr,lf,ctr; char src[16],obj[16]; main(){ unsigned int i,j; cr=0x0d; lf=0x0a; flag=1; ctr=0; address=0; fdo=fopen("ROM-0L.HEX","wb"); for(i=0;i<128;i++){ for(j=0;j<256;j++){ dd=i*j; d=dd%256; file_write(); } } file_close(); ctr=0; address=0; fdo=fopen("ROM-0H.HEX","wb"); for(i=128;i<256;i++){ for(j=0;j<256;j++){ dd=i*j; d=dd%256; file_write(); } } file_close(); ctr=0; address=0; fdo=fopen("ROM-8L.HEX","wb"); for(i=0;i<128;i++){ for(j=0;j<256;j++){ dd=i*j; d=dd/256; file_write(); } } file_close(); ctr=0; address=0; fdo=fopen("ROM-8H.HEX","wb"); for(i=128;i<256;i++){ for(j=0;j<256;j++){ dd=i*j; d=dd/256; file_write(); } } file_close(); } file_write(){ int i; if(ctr==31){ buff[ctr]=d; output(':'); outbyte(0x20); sum=0x20; outbyte(address/256); sum=(sum+(address/256))%256; outbyte(address%256); sum=(sum+(address%256))%256; outbyte(0x00); for(i=0;i<32;i++){ outbyte(buff[i]); sum=(sum+buff[i])%256; } sum=(256-sum)%256; outbyte(sum); output(cr); output(lf); ctr=0; address=address+0x20; } else{ buff[ctr]=d; ctr=ctr+1; } } file_close(){ output(':'); outbyte(0x00); outbyte(0x00); outbyte(0x00); outbyte(0x01); outbyte(0xff); output(cr); output(lf); fputc(0x1a,fdo); fclose(fdo); } output(dt) int dt; { putchar(dt); if(flag!=0) fputc(dt,fdo); } outasc(dt) int dt; { if(dt<10){ putchar('0'+dt); if(flag!=0) fputc('0'+dt,fdo); } else{ dt=dt-10; putchar('A'+dt); if(flag!=0) fputc('A'+dt,fdo); } } outbyte(dt) int dt; { outasc(dt/16); outasc(dt%16); }