PDP11: Fix error path check on disk I/O status
This commit is contained in:
parent
8c5305c857
commit
c4931bbd30
1 changed files with 4 additions and 1 deletions
|
@ -1178,7 +1178,7 @@ switch (fnc) { /* case on function */
|
||||||
else if (uptr->FNC == FNC_READ) { /* read? */
|
else if (uptr->FNC == FNC_READ) { /* read? */
|
||||||
err = sim_disk_rdsect (uptr, da/HK_NUMWD, (uint8 *)hkxb, §sread, ((wc + (HK_NUMWD - 1)) & ~(HK_NUMWD - 1))/HK_NUMWD);
|
err = sim_disk_rdsect (uptr, da/HK_NUMWD, (uint8 *)hkxb, §sread, ((wc + (HK_NUMWD - 1)) & ~(HK_NUMWD - 1))/HK_NUMWD);
|
||||||
if ((err == SCPE_OK) &&
|
if ((err == SCPE_OK) &&
|
||||||
(sectsread != ((wc + (HK_NUMWD - 1)) & ~(HK_NUMWD - 1)/HK_NUMWD)))
|
(sectsread != (((wc + (HK_NUMWD - 1)) & ~(HK_NUMWD - 1))/HK_NUMWD)))
|
||||||
err = -1;
|
err = -1;
|
||||||
sim_disk_data_trace (uptr, (uint8 *)hkxb, da/HK_NUMWD, sectsread*HK_NUMWD*sizeof(*hkxb), "sim_disk_rdsect", HKDEB_DAT & dptr->dctrl, HKDEB_OPS);
|
sim_disk_data_trace (uptr, (uint8 *)hkxb, da/HK_NUMWD, sectsread*HK_NUMWD*sizeof(*hkxb), "sim_disk_rdsect", HKDEB_DAT & dptr->dctrl, HKDEB_OPS);
|
||||||
if (hkcs2 & CS2_UAI) { /* no addr inc? */
|
if (hkcs2 & CS2_UAI) { /* no addr inc? */
|
||||||
|
@ -1197,6 +1197,9 @@ switch (fnc) { /* case on function */
|
||||||
} /* end if read */
|
} /* end if read */
|
||||||
else { /* wchk */
|
else { /* wchk */
|
||||||
err = sim_disk_rdsect (uptr, da/HK_NUMWD, (uint8 *)hkxb, §sread, ((wc + (HK_NUMWD - 1)) & ~(HK_NUMWD - 1))/HK_NUMWD);
|
err = sim_disk_rdsect (uptr, da/HK_NUMWD, (uint8 *)hkxb, §sread, ((wc + (HK_NUMWD - 1)) & ~(HK_NUMWD - 1))/HK_NUMWD);
|
||||||
|
if ((err == SCPE_OK) &&
|
||||||
|
(sectsread != (((wc + (HK_NUMWD - 1)) & ~(HK_NUMWD - 1))/HK_NUMWD)))
|
||||||
|
err = -1;
|
||||||
sim_disk_data_trace (uptr, (uint8 *)hkxb, da/HK_NUMWD, sectsread*HK_NUMWD*sizeof(*hkxb), "sim_disk_rdsect", HKDEB_DAT & dptr->dctrl, HKDEB_OPS);
|
sim_disk_data_trace (uptr, (uint8 *)hkxb, da/HK_NUMWD, sectsread*HK_NUMWD*sizeof(*hkxb), "sim_disk_rdsect", HKDEB_DAT & dptr->dctrl, HKDEB_OPS);
|
||||||
awc = wc;
|
awc = wc;
|
||||||
for (wc = 0; wc < awc; wc++) { /* loop thru buf */
|
for (wc = 0; wc < awc; wc++) { /* loop thru buf */
|
||||||
|
|
Loading…
Add table
Reference in a new issue