PDP11: Fix error path check on disk I/O status

This commit is contained in:
Mark Pizzolato 2017-04-13 21:55:40 -07:00
parent 8c5305c857
commit c4931bbd30

View file

@ -1178,7 +1178,7 @@ switch (fnc) { /* case on function */
else if (uptr->FNC == FNC_READ) { /* read? */
err = sim_disk_rdsect (uptr, da/HK_NUMWD, (uint8 *)hkxb, &sectsread, ((wc + (HK_NUMWD - 1)) & ~(HK_NUMWD - 1))/HK_NUMWD);
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;
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? */
@ -1197,6 +1197,9 @@ switch (fnc) { /* case on function */
} /* end if read */
else { /* wchk */
err = sim_disk_rdsect (uptr, da/HK_NUMWD, (uint8 *)hkxb, &sectsread, ((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);
awc = wc;
for (wc = 0; wc < awc; wc++) { /* loop thru buf */