struct FileHandle *fi,*fo,*Open(); LONG l,hl,Read(),Seek(); UBYTE *buf,*AllocMem(); UWORD hunkdat[]={ /* 0 1 2 3 4 5 6 7 */ 0x0000,0x03F3,0x0000,0x0000,0x0000,0x0001,0x0000,0x0000,/* 0 */ 0x0000,0x0000,0x0000,0x0010,0x0000,0x03E9,0x0000,0x0010,/* 1 */ 0x43FA,0x002c,0x2C78,0x0004,0x4EAE,0xFDD8,0x2C40,0x4EAE,/* 2 */ 0xFFC4,0x2200,0x41FA,0x0024,0x2618,0x2408,0x4EAE,0xFFD0,/* 3 */ 0x224E,0x2C78,0x0004,0x4EAE,0xFE62,0x7000,0x4E75,0x646F,/* 4 */ 0x732E,0x6C69,0x6272,0x6172,0x7900, /* 5 */ 0x0000,0x03F2}; /* 5 */ main(argc,argv) char *argv[]; { int t; if (argc!=3) PrintF("Usage: %s \n",argv[0]); else { if (!(fi=Open(argv[1],MODE_OLDFILE))) { PrintF("Couldn't open input-file\n"); exit(0L); } Seek(fi,0L,OFFSET_END); l=Seek(fi,0L,OFFSET_BEGINNING); if (l<1L) { PrintF("Input-file empty !?\n"); Close(fi); Close(fo); exit(0L); } if (!(fo=Open(argv[2],MODE_NEWFILE))) { PrintF("Couldn't open output-file\n"); Close(fi); exit(0L); } Write(fo,hunkdat,20L); hl=16L+((l+1)>>2); Write(fo,&hl,4L); Write(fo,&(hunkdat[014]),4L); Write(fo,&hl,4L); Write(fo,&(hunkdat[020]),58L); Write(fo,&l,4L); hl=((l+1)&0xFFFFFFFCL)+2L; if (!(buf=AllocMem(hl,MEMF_CLEAR))) { PrintF("Not enough memory to read file!\n"); Close(fi); Close(fo); exit(0L); } Read(fi,buf,l); Write(fo,buf,hl); Write(fo,&(hunkdat[055]),4L); Close(fi); Close(fo); } exit(0L); }