10 printf("isz converter\n");
11 printf("usage:\n\t%s file.isz\n",progname
);
15 void print_isz_header(isz_header
*header
) {
16 printf("Header Size : %u\n",header
->header_sz
);
17 printf("Version : %u\n",header
->version
);
18 printf("Volume Serial : %u\n",header
->vsn
);
19 printf("Sector Size : %d\n", header
->sector_sz
);
20 printf("Total Sectors : %d\n",header
->total_sectors
);
21 printf("Calculated Size : %d Bytes\n", (header
->sector_sz
) * (header
->total_sectors
) );
23 printf("Password Flag : %d\n", header
->has_password
);
24 printf("Segment Size : %ld\n", header
->segment_sz
);
25 printf("Num Blocks/Chunks : %d\n", header
->nblocks
);
26 printf("Block/Chunk Size : %d\n", header
->block_sz
);
28 printf("Chunk Ptr len : %d\n", header
->block_ptr_sz
);
29 printf("Segment Number : %d\n", header
->segment_num
);
31 printf("Chunk Ptr Offset : %d\n", header
->chunk_offset
);
32 printf("Segment Offset : %d\n", header
->segment_offset
);
33 printf("Data Offset : %d\n", header
->data_offset
);
35 printf("Reserved : %d\n",header
->reserved
);
38 void pread( void * ptr
, size_t size
, size_t count
, FILE * stream
) {
39 size_t s
= fread(ptr
,size
,count
,stream
);
40 if (s
< (size
*count
)) {
41 fprintf(stderr
," read too little\n");
45 int main (int argc
, char ** argv
) {
48 fprintf(stderr
," isz struct sz: 0x%X, %u\n",
49 (unsigned int)sizeof(isz_header
),(unsigned int)sizeof(isz_header
));
55 isz_header
* header
= malloc(sizeof(isz_header
));
57 fputs(" malloc error\n",stderr
);
61 FILE * isz
= fopen(argv
[1],"rb");
63 fprintf(stderr
," could not open %s\n",argv
[1]);
67 pread(header
,1,sizeof(isz_header
),isz
);
69 if ( memcmp( header
->signature
, ISZ_MAGIC
,
70 sizeof(ISZ_MAGIC
)) ) {
71 fputs(" Invalid Magic.\n",stderr
);
75 if (header
->header_sz
!= sizeof(isz_header
) ) {
76 fprintf(stderr
, " Failure: ISZ file header size incorrect (is %lu, should be %lu)\n"
77 " Possibly older isz version, unsupported\n",
78 (long unsigned int)(header
->header_sz
), sizeof(isz_header
));
82 print_isz_header(header
);