Index: tester.c =================================================================== --- tester.c (revision 35415) +++ tester.c (revision 35416) @@ -14,7 +14,7 @@ printf("CDF header:\n"); printf(" ver=%04x rev=%04x %s-endian sect_size=%d,%d\n", ctx.file_ver, ctx.file_rev, ctx.litend ? "little" : "big", ctx.sect_size, ctx.short_sect_size); - printf(" sat: %ld+%ld ssat=%ld+%ld msat=%ld+%ld\n", ctx.sat_first, ctx.sat_len, ctx.ssat_first, ctx.ssat_len, ctx.msat_first, ctx.msat_len); + printf(" sat_len: %ld; dir1=%ld ssat=%ld+%ld msat=%ld+%ld\n", ctx.sat_len, ctx.dir_first, ctx.ssat_first, ctx.ssat_len, ctx.msat_first, ctx.msat_len); return 0; } Index: ucdf.c =================================================================== --- ucdf.c (revision 35415) +++ ucdf.c (revision 35416) @@ -138,7 +138,7 @@ safe_read(buff, 4); ctx->sat_len = load_int(ctx, buff, 4); safe_read(buff, 4); - ctx->sat_first = load_int(ctx, buff, 4); + ctx->dir_first = load_int(ctx, buff, 4); safe_seek(60); safe_read(buff, 4); Index: ucdf.h =================================================================== --- ucdf.h (revision 35415) +++ ucdf.h (revision 35416) @@ -27,7 +27,8 @@ /* cache/interanl */ FILE *f; /* the file we are reading from */ int ssz, sssz; - long sat_len, sat_first; + long sat_len; + long dir_first; /* first sector ID of the directory stream */ long ssat_len, ssat_first; /* short allocation table */ long msat_len, msat_first; /* master allocation table */