From 1575d4f53805f177474b5bb96daebede9b2dfb73 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 24 Feb 2021 23:45:58 +0000 Subject: base --- mmc/assemble.c | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 mmc/assemble.c (limited to 'mmc/assemble.c') diff --git a/mmc/assemble.c b/mmc/assemble.c new file mode 100644 index 0000000..05bf769 --- /dev/null +++ b/mmc/assemble.c @@ -0,0 +1,96 @@ +#include +#include +#include +#include +#include +#include + + + +char buf[204800]; + +int write_entry(int image,void *ptr) +{ +off_t o=(image+1)*16; +lseek(1,o,SEEK_SET); +write(1,ptr,16); +} + +int write_image(int image,void *ptr) +{ +off_t o=(image*204800)+8192; +lseek(1,o,SEEK_SET); +write(1,ptr,204800); +} + + +int main(int argc,char *argv[]) +{ +int image=0; +int fd,i; +uint8_t entry[16]; +char *ptr; + + +bzero(entry,sizeof(entry)); +entry[0]=0; +entry[1]=1; +entry[2]=2; +entry[3]=3; +lseek(1,0L,SEEK_SET); +write(1,entry,16); + + +for (argc--,argv++; argc;argc--,argv++) +{ + +bzero(buf,sizeof(buf)); +fd=open(*argv,O_RDONLY); +read(fd,buf,sizeof(buf)); +close(fd); + +ptr=strstr(*argv,".ssd"); +if (ptr) *ptr='\0'; +ptr=strstr(*argv,".SSD"); +if (ptr) *ptr='\0'; + +bzero(entry,sizeof(entry)); +strncpy(entry,*argv,12); + + +entry[12]=0; +entry[13]=0; +entry[14]=0; +entry[15]=0x0f; + +write_image(image,buf); +write_entry(image,entry); + +image++; +} + +bzero(buf,sizeof(buf)); +for (;image<511;++image) { + +bzero(entry,sizeof(entry)); +entry[15]=0xf0; +write_image(image,buf); +} + +} + + + + + + + + + + + + + + + + -- cgit v1.2.3