PDP11, Qbus VAX: Add delay when starting XQ device in DELQA-T mode
This commit is contained in:
parent
e522daf906
commit
1a8bc50130
1 changed files with 26 additions and 5 deletions
|
@ -262,6 +262,7 @@ t_stat xq_svc(UNIT * uptr);
|
|||
t_stat xq_tmrsvc(UNIT * uptr);
|
||||
t_stat xq_startsvc(UNIT * uptr);
|
||||
t_stat xq_receivesvc(UNIT * uptr);
|
||||
t_stat xq_srqrsvc(UNIT * uptr);
|
||||
t_stat xq_reset (DEVICE * dptr);
|
||||
t_stat xq_attach (UNIT * uptr, CONST char * cptr);
|
||||
t_stat xq_detach (UNIT * uptr);
|
||||
|
@ -350,6 +351,7 @@ UNIT xqa_unit[] = {
|
|||
{ UDATA (&xq_tmrsvc, UNIT_IDLE|UNIT_DIS, 0) },
|
||||
{ UDATA (&xq_startsvc, UNIT_DIS, 0) },
|
||||
{ UDATA (&xq_receivesvc, UNIT_DIS, 0) },
|
||||
{ UDATA (&xq_srqrsvc, UNIT_DIS, 0) },
|
||||
};
|
||||
|
||||
BITFIELD xq_csr_bits[] = {
|
||||
|
@ -431,6 +433,7 @@ UNIT xqb_unit[] = {
|
|||
{ UDATA (&xq_tmrsvc, UNIT_IDLE|UNIT_DIS, 0) },
|
||||
{ UDATA (&xq_startsvc, UNIT_DIS, 0) },
|
||||
{ UDATA (&xq_receivesvc, UNIT_DIS, 0) },
|
||||
{ UDATA (&xq_srqrsvc, UNIT_DIS, 0) },
|
||||
};
|
||||
|
||||
REG xqb_reg[] = {
|
||||
|
@ -537,7 +540,7 @@ DEBTAB xq_debug[] = {
|
|||
|
||||
DEVICE xq_dev = {
|
||||
"XQ", xqa_unit, xqa_reg, xq_mod,
|
||||
4, XQ_RDX, 11, 1, XQ_RDX, 16,
|
||||
5, XQ_RDX, 11, 1, XQ_RDX, 16,
|
||||
&xq_ex, &xq_dep, &xq_reset,
|
||||
&xq_boot, &xq_attach, &xq_detach,
|
||||
&xqa_dib, DEV_DISABLE | DEV_QBUS | DEV_DEBUG | DEV_ETHER,
|
||||
|
@ -547,7 +550,7 @@ DEVICE xq_dev = {
|
|||
|
||||
DEVICE xqb_dev = {
|
||||
"XQB", xqb_unit, xqb_reg, xq_mod,
|
||||
4, XQ_RDX, 11, 1, XQ_RDX, 16,
|
||||
5, XQ_RDX, 11, 1, XQ_RDX, 16,
|
||||
&xq_ex, &xq_dep, &xq_reset,
|
||||
&xq_boot, &xq_attach, &xq_detach,
|
||||
&xqb_dib, DEV_DISABLE | DEV_DIS | DEV_QBUS | DEV_DEBUG | DEV_ETHER,
|
||||
|
@ -2355,7 +2358,7 @@ void xq_stop_receiver(CTLR* xq)
|
|||
eth_clr_async(xq->var->etherface);
|
||||
}
|
||||
|
||||
t_stat xq_wr_srqr(CTLR* xq, int32 data)
|
||||
t_stat xq_wr_srqr_set(CTLR* xq, int32 data)
|
||||
{
|
||||
uint16 set_bits = data & XQ_SRQR_RW; /* set RW set bits */
|
||||
|
||||
|
@ -2363,7 +2366,14 @@ t_stat xq_wr_srqr(CTLR* xq, int32 data)
|
|||
|
||||
xq->var->srr = set_bits;
|
||||
|
||||
switch (set_bits) {
|
||||
return sim_activate (&xq->unit[4], xq->var->startup_delay);
|
||||
}
|
||||
|
||||
t_stat xq_wr_srqr_action(CTLR* xq)
|
||||
{
|
||||
sim_debug(DBG_REG, xq->dev, "xq_wr_srqr_action(data=0x%04X)\n", xq->var->srr);
|
||||
|
||||
switch (xq->var->srr) {
|
||||
case XQ_SRQR_STRT: {
|
||||
t_stat status;
|
||||
|
||||
|
@ -2477,7 +2487,7 @@ t_stat xq_wr(int32 ldata, int32 PA, int32 access)
|
|||
case 3:
|
||||
break;
|
||||
case 4: /* SRQR */
|
||||
xq_wr_srqr(xq, data);
|
||||
xq_wr_srqr_set (xq, data);
|
||||
break;
|
||||
case 5:
|
||||
break;
|
||||
|
@ -2817,6 +2827,17 @@ t_stat xq_receivesvc(UNIT* uptr)
|
|||
return SCPE_OK;
|
||||
}
|
||||
|
||||
t_stat xq_srqrsvc(UNIT * uptr)
|
||||
{
|
||||
CTLR* xq = xq_unit2ctlr(uptr);
|
||||
|
||||
sim_debug(DBG_TRC, xq->dev, "xq_srqrsvc()\n");
|
||||
|
||||
xq_wr_srqr_action(xq);
|
||||
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
/* attach device: */
|
||||
t_stat xq_attach(UNIT* uptr, CONST char* cptr)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue