mirror of
https://github.com/simh/simh.git
synced 2026-03-02 17:55:17 +00:00
sigma: Invalid address must set a TDV-visible error flag on DP Device
This commit is contained in:
committed by
Mark Pizzolato
parent
b86c5360a9
commit
d6fad5d975
@@ -127,6 +127,7 @@
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user