SIGMA: Invalid address must set a TDV-visible error flag (Ken Rector)
This commit is contained in:
parent
16de685c4b
commit
8e13ea1d21
2 changed files with 11 additions and 2 deletions
|
@ -124,7 +124,10 @@
|
|||
118. MT: revised error handling failed to set tape mark status on space file forward/reverse.
|
||||
119. IO: UEND flag in the wrong bit position in status word.
|
||||
120. DP: SEEK(I), RECAL(I) must be coded as fast operations.
|
||||
|
||||
121. COC: Transmit long space is 0x6, and stop transmit is 0xE.
|
||||
122. COC: Received break generates a data-in channel transaction with a flag bit set
|
||||
in the line number.
|
||||
123. DP: dp_inv_adr error must set a TDV visible flag (i.e., PGE) before UEND.
|
||||
|
||||
Diagnostic Notes
|
||||
----------------
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
|
||||
dp moving head disk pack controller
|
||||
|
||||
09-Dec-22 RMS Invalid address must set a TDV-visible error flag (Ken Rector)
|
||||
23-Jul-22 RMS SEEK(I), RECAL(I) should be fast operations (Ken Rector)
|
||||
02-Jul-22 RMS Fixed bugs in multi-unit operation
|
||||
28-Jun-22 RMS Fixed off-by-1 error in DP_SEEK definition (Ken Rector)
|
||||
|
@ -771,6 +772,7 @@ switch (uptr->UCMD) {
|
|||
return SCPE_OK;
|
||||
}
|
||||
if (dp_inv_ad (uptr, &da)) { /* invalid addr? */
|
||||
ctx->dp_flags |= DPF_PGE;
|
||||
chan_uen (dva); /* uend */
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
@ -800,6 +802,7 @@ switch (uptr->UCMD) {
|
|||
return SCPE_OK;
|
||||
}
|
||||
if (dp_inv_ad (uptr, &da)) { /* invalid addr? */
|
||||
ctx->dp_flags |= DPF_PGE;
|
||||
chan_uen (dva); /* uend */
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
@ -824,6 +827,7 @@ switch (uptr->UCMD) {
|
|||
|
||||
case DPS_CHECK: /* write check */
|
||||
if (dp_inv_ad (uptr, &da)) { /* invalid addr? */
|
||||
ctx->dp_flags |= DPF_PGE;
|
||||
chan_uen (dva); /* uend */
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
@ -849,6 +853,7 @@ switch (uptr->UCMD) {
|
|||
|
||||
case DPS_READ: /* read */
|
||||
if (dp_inv_ad (uptr, &da)) { /* invalid addr? */
|
||||
ctx->dp_flags |= DPF_PGE;
|
||||
chan_uen (dva); /* uend */
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
@ -869,6 +874,7 @@ switch (uptr->UCMD) {
|
|||
|
||||
case DPS_RHDR: /* read header */
|
||||
if (dp_inv_ad (uptr, &da)) { /* invalid addr? */
|
||||
ctx->dp_flags |= DPF_PGE;
|
||||
chan_uen (dva); /* uend */
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
@ -994,7 +1000,7 @@ st = 0;
|
|||
on_cyl = !sim_is_active (&dp_unit[un + DP_SEEK]) ||
|
||||
(dp_unit[un + DP_SEEK].UCMD == DSC_SEEKW);
|
||||
if (DP_Q10B (dp_ctx[cidx].dp_ctype))
|
||||
st = ((dp_ctx[cidx].dp_flags & DPF_IVA)? 0x20: 0) |
|
||||
st = ((dp_ctx[cidx].dp_flags & (DPF_IVA|DPF_PGE))? 0x20: 0) |
|
||||
(on_cyl? 0x04: 0);
|
||||
else st = ((dp_ctx[cidx].dp_flags & DPF_PGE)? 0x20: 0) |
|
||||
((dp_ctx[cidx].dp_flags & DPF_WPE)? 0x08: 0);
|
||||
|
|
Loading…
Add table
Reference in a new issue