Wed, 16 Jan 2013 00:35:10 +0000
[wd2010] fix confusing expressions used for multisector mode
src/wd2010.c | file | annotate | diff | revisions |
1.1 diff -r b214cf455ff2 -r 82755a8d276e src/wd2010.c 1.2 --- a/src/wd2010.c Wed Jan 16 00:34:11 2013 +0000 1.3 +++ b/src/wd2010.c Wed Jan 16 00:35:10 2013 +0000 1.4 @@ -145,7 +145,7 @@ 1.5 { 1.6 // If there's data in the buffer, return it. Otherwise return 0xFF. 1.7 if (ctx->data_pos < ctx->data_len) { 1.8 - if (ctx->multi_sector && ctx->data_pos & !(ctx->data_pos & ~(ctx->geom_secsz - 1))){ 1.9 + if (ctx->multi_sector && (ctx->data_pos > 0) && ((ctx->data_pos % ctx->geom_secsz) == 0)){ 1.10 ctx->sector_count--; 1.11 ctx->sector_number++; 1.12 } 1.13 @@ -171,7 +171,7 @@ 1.14 // buffer, allow the write. 1.15 if (ctx->write_pos >= 0 && ctx->data_pos < ctx->data_len) { 1.16 // store data byte and increment pointer 1.17 - if (ctx->multi_sector && ctx->data_pos & !(ctx->data_pos & ~(ctx->geom_secsz - 1))){ 1.18 + if (ctx->multi_sector && (ctx->data_pos > 0) && ((ctx->data_pos % ctx->geom_secsz) == 0)){ 1.19 ctx->sector_count--; 1.20 ctx->sector_number++; 1.21 }