Fixed some issues. in hdd_image.c and keyboard_at.c.
This commit is contained in:
@@ -14,7 +14,7 @@
|
|||||||
* merged with hdd.c, since that is the scope of hdd.c. The
|
* merged with hdd.c, since that is the scope of hdd.c. The
|
||||||
* actual format handlers can then be in hdd_format.c etc.
|
* actual format handlers can then be in hdd_format.c etc.
|
||||||
*
|
*
|
||||||
* Version: @(#)hdd_image.c 1.0.10 2019/05/17
|
* Version: @(#)hdd_image.c 1.0.11 2019/05/23
|
||||||
*
|
*
|
||||||
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
|
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||||
* Miran Grca, <mgrca8@gmail.com>
|
* Miran Grca, <mgrca8@gmail.com>
|
||||||
@@ -789,12 +789,16 @@ hdd_image_read(uint8_t id, uint32_t sector, uint32_t count, uint8_t *buffer)
|
|||||||
/* Now read all (consecutive) blocks from the image. */
|
/* Now read all (consecutive) blocks from the image. */
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
/* If past end of image, give up. */
|
/* If past end of image, give up. */
|
||||||
if (feof(img->file))
|
if (ferror(img->file) || feof(img->file))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Read a block. */
|
/* Read a block. */
|
||||||
fread(buffer + (i << 9), 1, 512, img->file);
|
fread(buffer + (i << 9), 1, 512, img->file);
|
||||||
|
|
||||||
|
/* If error during read, give up. */
|
||||||
|
if (ferror(img->file))
|
||||||
|
break;
|
||||||
|
|
||||||
/* Update position. */
|
/* Update position. */
|
||||||
img->pos = sector + i;
|
img->pos = sector + i;
|
||||||
}
|
}
|
||||||
@@ -827,7 +831,7 @@ hdd_image_read_ex(uint8_t id, uint32_t sector, uint32_t count, uint8_t *buffer)
|
|||||||
fseeko64(img->file, ((uint64_t)sector << 9LL) + img->base, SEEK_SET);
|
fseeko64(img->file, ((uint64_t)sector << 9LL) + img->base, SEEK_SET);
|
||||||
fread(buffer, 1, transfer_sectors << 9, img->file);
|
fread(buffer, 1, transfer_sectors << 9, img->file);
|
||||||
|
|
||||||
if (count != transfer_sectors)
|
if (ferror(img->file) || (count != transfer_sectors))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -845,13 +849,13 @@ hdd_image_write(uint8_t id, uint32_t sector, uint32_t count, uint8_t *buffer)
|
|||||||
|
|
||||||
/* Now write all (consecutive) blocks to the image. */
|
/* Now write all (consecutive) blocks to the image. */
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
/* If past end of image, give up. */
|
|
||||||
if (feof(img->file))
|
|
||||||
break;
|
|
||||||
|
|
||||||
/* Write a block. */
|
/* Write a block. */
|
||||||
fwrite(buffer + (i << 9), 512, 1, img->file);
|
fwrite(buffer + (i << 9), 512, 1, img->file);
|
||||||
|
|
||||||
|
/* If error during write, give up. */
|
||||||
|
if (ferror(img->file))
|
||||||
|
break;
|
||||||
|
|
||||||
/* Update position. */
|
/* Update position. */
|
||||||
img->pos = sector + i;
|
img->pos = sector + i;
|
||||||
}
|
}
|
||||||
@@ -873,7 +877,7 @@ hdd_image_write_ex(uint8_t id, uint32_t sector, uint32_t count, uint8_t *buffer)
|
|||||||
fseeko64(img->file, ((uint64_t)sector << 9LL) + img->base, SEEK_SET);
|
fseeko64(img->file, ((uint64_t)sector << 9LL) + img->base, SEEK_SET);
|
||||||
fwrite(buffer, transfer_sectors << 9, 1, img->file);
|
fwrite(buffer, transfer_sectors << 9, 1, img->file);
|
||||||
|
|
||||||
if (count != transfer_sectors)
|
if (ferror(img->file) || (count != transfer_sectors))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -894,13 +898,13 @@ hdd_image_zero(uint8_t id, uint32_t sector, uint32_t count)
|
|||||||
|
|
||||||
/* Now write all (consecutive) blocks to the image. */
|
/* Now write all (consecutive) blocks to the image. */
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
/* If past end of image, give up. */
|
|
||||||
if (feof(img->file))
|
|
||||||
break;
|
|
||||||
|
|
||||||
/* Write a block. */
|
/* Write a block. */
|
||||||
fwrite(empty, 512, 1, img->file);
|
fwrite(empty, 512, 1, img->file);
|
||||||
|
|
||||||
|
/* If error during write, give up. */
|
||||||
|
if (ferror(img->file))
|
||||||
|
break;
|
||||||
|
|
||||||
/* Update position. */
|
/* Update position. */
|
||||||
img->pos = sector + i;
|
img->pos = sector + i;
|
||||||
}
|
}
|
||||||
@@ -925,10 +929,16 @@ hdd_image_zero_ex(uint8_t id, uint32_t sector, uint32_t count)
|
|||||||
|
|
||||||
fseeko64(img->file, ((uint64_t)sector << 9LL) + img->base, SEEK_SET);
|
fseeko64(img->file, ((uint64_t)sector << 9LL) + img->base, SEEK_SET);
|
||||||
|
|
||||||
for (i = 0; i < transfer_sectors; i++)
|
for (i = 0; i < transfer_sectors; i++) {
|
||||||
fwrite(empty, 1, 512, img->file);
|
fwrite(empty, 1, 512, img->file);
|
||||||
|
|
||||||
if (count != transfer_sectors)
|
/* If error during write, give up. */
|
||||||
|
if (ferror(img->file))
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ferror(img->file) || (count != transfer_sectors))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1013,5 +1023,4 @@ hdd_image_close(uint8_t id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
memset(img, 0x00, sizeof(hdd_image_t));
|
memset(img, 0x00, sizeof(hdd_image_t));
|
||||||
img->loaded = 0; /* redundant --FvK */
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
* it either will not process ctrl-alt-esc, or it will not do
|
* it either will not process ctrl-alt-esc, or it will not do
|
||||||
* ANY input.
|
* ANY input.
|
||||||
*
|
*
|
||||||
* Version: @(#)keyboard_at.c 1.0.29 2019/05/20
|
* Version: @(#)keyboard_at.c 1.0.30 2019/05/23
|
||||||
*
|
*
|
||||||
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
|
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||||
* Miran Grca, <mgrca8@gmail.com>
|
* Miran Grca, <mgrca8@gmail.com>
|
||||||
@@ -2739,7 +2739,7 @@ kbd_write(uint16_t port, uint8_t val, priv_t priv)
|
|||||||
case 0xd4: /* write to mouse */
|
case 0xd4: /* write to mouse */
|
||||||
DEBUG("ATkbd: write to mouse (%02x)\n", val);
|
DEBUG("ATkbd: write to mouse (%02x)\n", val);
|
||||||
|
|
||||||
/* FIXME: What does this do? --FvK */
|
/* OS/2 Warp 3 sends this command. */
|
||||||
if (val == 0xbb)
|
if (val == 0xbb)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user