src/wd2010.c

changeset 124
ecaec4cfc644
parent 123
82755a8d276e
child 125
7fb4f58f620a
     1.1 --- a/src/wd2010.c	Wed Jan 16 00:35:10 2013 +0000
     1.2 +++ b/src/wd2010.c	Wed Jan 16 00:36:51 2013 +0000
     1.3 @@ -341,7 +341,7 @@
     1.4  							break;
     1.5  						case CMD_READ_SECTOR:
     1.6  							/*XXX: does a separate function to set the head have to be added?*/
     1.7 -							LOG("WD2010: READ SECTOR cmd=%02X chs=%d:%d:%d", cmd, ctx->track, ctx->head, ctx->sector);
     1.8 +							LOG("WD2010: READ SECTOR cmd=%02X chs=%d:%d:%d nsectors=%d", cmd, ctx->track, ctx->head, ctx->sector, ctx->sector_count);
     1.9  
    1.10  							// Read Sector
    1.11  
    1.12 @@ -391,8 +391,8 @@
    1.13  						case CMD_WRITE_FORMAT:
    1.14  							ctx->sector = 0;
    1.15  						case CMD_WRITE_SECTOR:
    1.16 -							LOG("WD2010: WRITE SECTOR cmd=%02X chs=%d:%d:%d", cmd, ctx->track, ctx->head, ctx->sector);
    1.17 -							// Read Sector
    1.18 +							LOG("WD2010: WRITE SECTOR cmd=%02X chs=%d:%d:%d nsectors=%d", cmd, ctx->track, ctx->head, ctx->sector, ctx->sector_count);
    1.19 +							// Write Sector
    1.20  
    1.21  							// Check to see if the cyl, hd and sec are valid
    1.22  							if ((ctx->track > (ctx->geom_tracks-1)) || (ctx->head > (ctx->geom_heads-1)) || (ctx->sector > ctx->geom_spt-1)) {
    1.23 @@ -420,8 +420,8 @@
    1.24  							ctx->data_len = ctx->geom_secsz * sector_count;
    1.25  							lba = (((ctx->track * ctx->geom_heads * ctx->geom_spt) + (ctx->head * ctx->geom_spt) + ctx->sector));
    1.26  							// convert LBA to byte address
    1.27 -							ctx->write_pos = lba * ctx->geom_secsz;
    1.28 -							LOG("\tWRITE lba = %lu", lba);
    1.29 +							ctx->write_pos = (lba *= ctx->geom_secsz);
    1.30 +							LOG("\tWRITE lba = %zu", lba);
    1.31  
    1.32  							ctx->status = 0;
    1.33  							ctx->status |= (ctx->data_pos < ctx->data_len) ? SR_DRQ | SR_COMMAND_IN_PROGRESS | SR_BUSY : 0x00;