diff --git a/PDP11/pdp11_kg.c b/PDP11/pdp11_kg.c index 7532a908..90db6d7b 100644 --- a/PDP11/pdp11_kg.c +++ b/PDP11/pdp11_kg.c @@ -131,12 +131,6 @@ extern int32 R[]; #define KG_SR_POLYMASK (KGSR_M_CRCIC|KGSR_M_LRC|KGSR_M_16) -/* Unit structure redefinitions */ -#define SR u3 -#define BCC u4 -#define DR u5 -#define PULSCNT u6 - #define POLY_LRC8 (0x0008) #define POLY_LRC16 (0x0080) #define POLY_CRC12 (0x0f01) @@ -206,26 +200,23 @@ static DIB kg_dib = { 0, 0, 0, { NULL }, IOLN_KG+2 }; -static UNIT kg_unit[] = { - { UDATA (NULL, 0, 0) }, - { UDATA (NULL, UNIT_DISABLE + UNIT_DIS, 0) }, - { UDATA (NULL, UNIT_DISABLE + UNIT_DIS, 0) }, - { UDATA (NULL, UNIT_DISABLE + UNIT_DIS, 0) }, - { UDATA (NULL, UNIT_DISABLE + UNIT_DIS, 0) }, - { UDATA (NULL, UNIT_DISABLE + UNIT_DIS, 0) }, - { UDATA (NULL, UNIT_DISABLE + UNIT_DIS, 0) }, - { UDATA (NULL, UNIT_DISABLE + UNIT_DIS, 0) }, -}; +static UNIT kg_unit[KG_UNITS]; static const REG kg_reg[] = { - { URDATAD (SR, kg_unit[0].SR, DEV_RDX, 16, 0, KG_UNITS, 0, "control and status register; R/W") }, - { URDATAD (BCC, kg_unit[0].BCC, DEV_RDX, 16, 0, KG_UNITS, 0, "result block check character; R/O") }, - { URDATAD (DR, kg_unit[0].DR, DEV_RDX, 16, 0, KG_UNITS, 0, "input data register; W/O") }, - { URDATAD (PULSCNT, kg_unit[0].PULSCNT, DEV_RDX, 16, 0, KG_UNITS, 0, "polynomial cycle stage") }, - { ORDATA (DEVADDR, kg_dib.ba, 32), REG_HRO }, + { URDATAD (SR, kg_unit[0].u3, DEV_RDX, 16, 0, KG_UNITS, 0, "control and status register; R/W") }, + { URDATAD (BCC, kg_unit[0].u4, DEV_RDX, 16, 0, KG_UNITS, 0, "result block check character; R/O") }, + { URDATAD (DR, kg_unit[0].u5, DEV_RDX, 16, 0, KG_UNITS, 0, "input data register; W/O") }, + { URDATAD (PULSCNT, kg_unit[0].u6, DEV_RDX, 16, 0, KG_UNITS, 0, "polynomial cycle stage") }, + { ORDATA (DEVADDR, kg_dib.ba, 32), REG_HRO }, { NULL } }; +/* Unit structure redefinitions */ +#define SR u3 +#define BCC u4 +#define DR u5 +#define PULSCNT u6 + static const MTAB kg_mod[] = { { MTAB_XTD|MTAB_VDV|MTAB_VALR, 020, "ADDRESS", NULL, NULL, &show_addr, NULL, "Bus address" }, @@ -386,6 +377,7 @@ static t_stat kg_reset (DEVICE *dptr) kg_unit[i].SR = KGSR_M_DONE; kg_unit[i].BCC = 0; kg_unit[i].PULSCNT = 0; + kg_unit[i].flags |= UNIT_DISABLE; /* allow SET KGn DISABLE */ } return auto_config(dptr->name, (dptr->flags & DEV_DIS) ? 0 : kg_dev.numunits); }