PDP11: Fix DL11 & TU58 autoconfigure limitation checks
This commit is contained in:
parent
5da0d954c4
commit
c8c071e3e1
2 changed files with 16 additions and 10 deletions
|
@ -612,10 +612,16 @@ if (dis) {
|
||||||
dlo_dev.flags = dlo_dev.flags | DEV_DIS;
|
dlo_dev.flags = dlo_dev.flags | DEV_DIS;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (((dli_dev.flags & DEV_DIS) || (dlo_dev.flags & DEV_DIS)) &&
|
if (dlx_tu58_count() < 16) {
|
||||||
(dlx_tu58_count() < 16)) {
|
if ((dlx_desc.lines + dlx_tu58_count()) > 16) {
|
||||||
if ((dlx_desc.lines + dlx_tu58_count()) > 16)
|
char lines[16];
|
||||||
dlx_desc.lines = 16 - dlx_tu58_count();
|
int32 saved_switches = sim_switches;
|
||||||
|
|
||||||
|
sprintf (lines, "%d", 16 - dlx_tu58_count());
|
||||||
|
sim_switches |= SWMASK('Y');
|
||||||
|
dlx_set_lines (NULL, 0, lines, NULL);
|
||||||
|
sim_switches = saved_switches;
|
||||||
|
}
|
||||||
dli_dev.flags = dli_dev.flags & ~DEV_DIS;
|
dli_dev.flags = dli_dev.flags & ~DEV_DIS;
|
||||||
dlo_dev.flags = dlo_dev.flags & ~DEV_DIS;
|
dlo_dev.flags = dlo_dev.flags & ~DEV_DIS;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1441,12 +1441,12 @@ td_ctrls = newln;
|
||||||
td_dib.lnt = td_ctrls * td_dib.ulnt; /* upd IO page lnt */
|
td_dib.lnt = td_ctrls * td_dib.ulnt; /* upd IO page lnt */
|
||||||
/* Make sure that the number of TU58 controllers plus DL devices is 16 or less */
|
/* Make sure that the number of TU58 controllers plus DL devices is 16 or less */
|
||||||
if ((dli_dptr != NULL) && !(dli_dptr->flags & DEV_DIS) &&
|
if ((dli_dptr != NULL) && !(dli_dptr->flags & DEV_DIS) &&
|
||||||
((((DIB *)dli_dptr->ctxt)->numc + td_ctrls) > 16)) {
|
((((DIB *)dli_dptr->ctxt)->numc + td_ctrls) > 16)) { /* Too many? */
|
||||||
dli_dptr->flags |= DEV_DIS;
|
dli_dptr->flags |= DEV_DIS; /* First disable DL devices */
|
||||||
dli_dptr->reset (dli_dptr);
|
dli_dptr->reset (dli_dptr); /* Notify of the disable */
|
||||||
if (td_ctrls < 16) {
|
if (td_ctrls < 16) { /* Room for some DL devices? */
|
||||||
dli_dptr->flags &= ~DEV_DIS;
|
dli_dptr->flags &= ~DEV_DIS; /* Re-Enable DL devices */
|
||||||
dli_dptr->reset (dli_dptr);
|
dli_dptr->reset (dli_dptr); /* Notify of the enable which forces sizing */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return td_reset (&tdc_dev);
|
return td_reset (&tdc_dev);
|
||||||
|
|
Loading…
Add table
Reference in a new issue