ttox_reg TTOx register list */ UNIT ttox_unit[] = { { UDATA (&ttox_svc, TT_MODE_UC, 0), SERIAL_OUT_WAIT }, { UDATA (&ttox_svc, TT_MODE_UC, 0), SERIAL_OUT_WAIT }, { UDATA (&ttox_svc, TT_MODE_UC, 0), SERIAL_OUT_WAIT }, { UDATA (&ttox_svc, TT_MODE_UC, 0), SERIAL_OUT_WAIT } }; REG ttox_reg[] = { { BRDATAD (BUF, ttox_buf, 8, 8, TTX_LINES, "last data item processed, lines 0 to 3") }, { GRDATAD (DONE, dev_done, 8, TTX_LINES, INT_V_TTO1, "device done flag (line 0 rightmost)") }, { GRDATAD (ENABLE, int_enable, 8, TTX_LINES, INT_V_TTO1, "interrupt enable flag") }, { GRDATAD (INT, int_req, 8, TTX_LINES, INT_V_TTO1, "interrupt pending flag") }, { URDATAD (TIME, ttox_unit[0].wait, 10, 24, 0, TTX_LINES, PV_LEFT, "line from I/O initiation to interrupt, lines 0 to 3") }, { NULL } }; MTAB ttox_mod[] = { { TT_MODE, TT_MODE_UC, "UC", "UC", NULL }, { TT_MODE, TT_MODE_7B, "7b", "7B", NULL }, { TT_MODE, TT_MODE_8B, "8b", "8B", NULL }, { TT_MODE, TT_MODE_7P, "7p", "7P", NULL }, { MTAB_XTD|MTAB_VUN, 0, NULL, "DISCONNECT", &tmxr_dscln, NULL, &ttx_desc }, { MTAB_XTD|MTAB_VUN|MTAB_NC, 0, "LOG", "LOG", &tmxr_set_log, &tmxr_show_log, &ttx_desc }, { MTAB_XTD|MTAB_VUN|MTAB_NC, 0, NULL, "NOLOG", &tmxr_set_nolog, NULL, &ttx_desc }, { 0 }
*/ UNIT tti_unit[] = { { UDATA (&tti_svc, UNIT_IDLE|TT_MODE_8B, 0), 0 }, { UDATA (&tti_svc, UNIT_IDLE|TT_MODE_8B, 0), 0 }, { UDATA (&tti_svc, UNIT_IDLE|TT_MODE_8B, 0), 0 }, { UDATA (&tti_svc, UNIT_IDLE|TT_MODE_8B, 0), 0 }, }; REG tti_reg[] = { { HRDATAD (RXDB, tti_buf, 16, "last data item processed") }, { HRDATAD (RXCS, tti_csr, 16, "control/status register") }, { FLDATAD (INT, tti_int, 0, "interrupt pending flag") }, { FLDATAD (DONE, tti_csr, CSR_V_DONE, "device done flag (CSR<7>)") }, { FLDATAD (IE, tti_csr, CSR_V_IE, "interrupt enable flag (CSR<6>)") }, { URDATAD (POS, tti_unit[0].pos, 10, T_ADDR_W, 0, 4, PV_LEFT, "number of characters input") }, { URDATAD (TIME, tti_unit[0].wait, 10, 24, 0, 4, PV_LEFT, "input polling interval") }, { NULL } }; MTAB tti_mod[] = { { TT_MODE, TT_MODE_7B, "7b", "7B", NULL, NULL, NULL, "Set 7 bit mode" }, { TT_MODE, TT_MODE_8B, "8b", "8B", NULL, NULL, NULL, "Set 8 bit mode" }, { 0 } }; DEVICE tti_dev = { "TTI", tti_unit, tti_reg, tti_mod, 4, 10, 31, 1, 16, 8, NULL, NULL, &tti_reset, NULL, NULL, NULL,
UNIT_BUFABLE|UNIT_MUSTBUF|(RS04_DTYPE << UNIT_V_DTYPE), RS04_SIZE) }, { UDATA (&rs_svc, UNIT_FIX|UNIT_ATTABLE|UNIT_DISABLE|UNIT_AUTO| UNIT_BUFABLE|UNIT_MUSTBUF|(RS04_DTYPE << UNIT_V_DTYPE), RS04_SIZE) }, { UDATA (&rs_svc, UNIT_FIX|UNIT_ATTABLE|UNIT_DISABLE|UNIT_AUTO| UNIT_BUFABLE|UNIT_MUSTBUF|(RS04_DTYPE << UNIT_V_DTYPE), RS04_SIZE) } }; REG rs_reg[] = { { BRDATAD (CS1, rscs1, DEV_RDX, 16, RS_NUMDR, "control/status 1") }, { BRDATAD (DA, rsda, DEV_RDX, 16, RS_NUMDR, "track/sector") }, { BRDATAD (DS, rsds, DEV_RDX, 16, RS_NUMDR, "drive status") }, { BRDATAD (ER, rser, DEV_RDX, 16, RS_NUMDR, "error status") }, { BRDATAD (MR, rsmr, DEV_RDX, 16, RS_NUMDR, "maint register") }, { BRDATAD (WLKS, rswlk, DEV_RDX, 6, RS_NUMDR, "write lock switches") }, { DRDATAD (TIME, rs_wait, 24, "rotate time"), REG_NZ + PV_LEFT }, { URDATAD (CAPAC, rs_unit[0].capac, 10, T_ADDR_W, 0, RS_NUMDR, PV_LEFT | REG_HRO, "Capacity") }, { FLDATAD (STOP_IOE, rs_stopioe, 0, "stop on I/O error") }, { NULL } }; MTAB rs_mod[] = { { MTAB_XTD|MTAB_VDV, 0, "MASSBUS", NULL, NULL, &mba_show_num, NULL, "Display Massbus Address" }, { UNIT_WLK, 0, "write enabled", "WRITEENABLED", NULL, NULL, NULL, "Write enable disk drive" }, { UNIT_WLK, UNIT_WLK, "write lockable", "LOCKED", NULL, NULL, NULL, "Write lock disk drive" }, { (UNIT_DTYPE|UNIT_ATT), (RS03_DTYPE << UNIT_V_DTYPE) + UNIT_ATT, "RS03", NULL, NULL }, { (UNIT_DTYPE|UNIT_ATT), (RS04_DTYPE << UNIT_V_DTYPE) + UNIT_ATT, "RS04", NULL, NULL }, { (UNIT_AUTO|UNIT_DTYPE|UNIT_ATT), (RS03_DTYPE << UNIT_V_DTYPE), "RS03", NULL, NULL }, { (UNIT_AUTO|UNIT_DTYPE|UNIT_ATT), (RS04_DTYPE << UNIT_V_DTYPE),
{ UDATA (&dco_svc, TT_MODE_7P+DCX_EPAR+DCX_MDM, 0), SERIAL_OUT_WAIT }, { UDATA (&dco_svc, TT_MODE_7P+DCX_EPAR+DCX_MDM, 0), SERIAL_OUT_WAIT }, { UDATA (&dco_svc, TT_MODE_7P+DCX_EPAR+DCX_MDM, 0), SERIAL_OUT_WAIT }, { UDATA (&dco_svc, TT_MODE_7P+DCX_EPAR+DCX_MDM, 0), SERIAL_OUT_WAIT }, { UDATA (&dco_svc, TT_MODE_7P+DCX_EPAR+DCX_MDM, 0), SERIAL_OUT_WAIT }, { UDATA (&dco_svc, TT_MODE_7P+DCX_EPAR+DCX_MDM, 0), SERIAL_OUT_WAIT }, { UDATA (&dco_svc, TT_MODE_7P+DCX_EPAR+DCX_MDM, 0), SERIAL_OUT_WAIT }, { UDATA (&dco_svc, TT_MODE_7P+DCX_EPAR+DCX_MDM, 0), SERIAL_OUT_WAIT }, { UDATA (&dco_svc, TT_MODE_7P+DCX_EPAR+DCX_MDM, 0), SERIAL_OUT_WAIT } }; REG dco_reg[] = { { BRDATAD (BUF, dco_buf, DEV_RDX, 8, DCX_LINES, "control/stats register") }, { BRDATAD (CSR, dco_csr, DEV_RDX, 16, DCX_LINES, "buffer") }, { GRDATAD (IREQ, dco_ireq, DEV_RDX, DCX_LINES, 0, "interrupt requests") }, { URDATAD (TIME, dco_unit[0].wait, 10, 31, 0, DCX_LINES, PV_LEFT, "time from I/O initiation to interrupt") }, { NULL } }; MTAB dco_mod[] = { { TT_MODE, TT_MODE_UC, "UC", "UC", NULL, NULL, NULL, "lower case converted to upper, high bit cleared" }, { TT_MODE, TT_MODE_7B, "7b", "7B", NULL, NULL, NULL, "7 bit mode" }, { TT_MODE, TT_MODE_8B, "8b", "8B", NULL, NULL, NULL, "8 bit mode" }, { TT_MODE, TT_MODE_7P, "7p", "7P", NULL, NULL, NULL, "7 bit mode - non printing suppressed" }, { DCX_OPAR+DCX_EPAR, 0, "no parity", "NOPARITY", NULL }, { DCX_OPAR+DCX_EPAR, DCX_OPAR, "odd parity", "ODDPARITY", NULL }, { DCX_OPAR+DCX_EPAR, DCX_EPAR, "even parity", "EVENPARITY", NULL }, { DCX_MDM, 0, "no dataset", "NODATASET", NULL }, { DCX_MDM, DCX_MDM, "dataset", "DATASET", NULL }, { MTAB_XTD|MTAB_VUN, 1, NULL, "DISCONNECT", &tmxr_dscln, NULL, &dcx_desc, "Disconnect a specific line" },