PCem
changeset 147:a221bebd5ff3
Fixed IDE transfers of 256 sectors, Windows 2000 now works.
| author | TomW |
|---|---|
| date | Wed Aug 20 19:37:23 2014 +0100 |
| parents | 21f926f1fabf |
| children | d08a822e6603 |
| files | src/ide.c |
| diffstat | 1 files changed, 5 insertions(+), 5 deletions(-) [+] |
line diff
1.1 --- a/src/ide.c Mon Aug 18 20:28:31 2014 +0100 1.2 +++ b/src/ide.c Wed Aug 20 19:37:23 2014 +0100 1.3 @@ -1059,7 +1059,7 @@ 1.4 ide->packetstatus=0; 1.5 if (ide->command == WIN_READ || ide->command == WIN_READ_NORETRY || ide->command == WIN_READ_MULTIPLE) 1.6 { 1.7 - ide->secount--; 1.8 + ide->secount = (ide->secount - 1) & 0xff; 1.9 if (ide->secount) 1.10 { 1.11 ide_next_sector(ide); 1.12 @@ -1187,7 +1187,7 @@ 1.13 /*DMA successful*/ 1.14 ide->atastat = DRQ_STAT | READY_STAT | DSC_STAT; 1.15 1.16 - ide->secount--; 1.17 + ide->secount = (ide->secount - 1) & 0xff; 1.18 if (ide->secount) 1.19 { 1.20 ide_next_sector(ide); 1.21 @@ -1239,7 +1239,7 @@ 1.22 fseeko64(ide->hdfile, addr, SEEK_SET); 1.23 fwrite(ide->buffer, 512, 1, ide->hdfile); 1.24 ide_irq_raise(ide); 1.25 - ide->secount--; 1.26 + ide->secount = (ide->secount - 1) & 0xff; 1.27 if (ide->secount) 1.28 { 1.29 ide->atastat = DRQ_STAT | READY_STAT | DSC_STAT; 1.30 @@ -1271,7 +1271,7 @@ 1.31 1.32 ide->atastat = DRQ_STAT | READY_STAT | DSC_STAT; 1.33 1.34 - ide->secount--; 1.35 + ide->secount = (ide->secount - 1) & 0xff; 1.36 if (ide->secount) 1.37 { 1.38 ide_next_sector(ide); 1.39 @@ -1304,7 +1304,7 @@ 1.40 ide->blockcount = 0; 1.41 ide_irq_raise(ide); 1.42 } 1.43 - ide->secount--; 1.44 + ide->secount = (ide->secount - 1) & 0xff; 1.45 if (ide->secount) 1.46 { 1.47 ide->atastat = DRQ_STAT | READY_STAT | DSC_STAT;
