t_stat tto_reset (DEVICE *dptr) { chan_disc (tto_dib.chan); /* disconnect */ tto_unit.buf = 0; /* clear state */ xfr_req = xfr_req & ~XFR_TTO; /* clr xfr flag */ sim_cancel (&tto_unit); /* deactivate unit */ return SCPE_OK; }
void ptp_set_err (void) { chan_set_flag (ptp_dib.chan, CHF_ERR); /* error */ chan_disc (ptp_dib.chan); /* disconnect */ xfr_req = xfr_req & ~XFR_PTP; /* clear xfr */ sim_cancel (&ptp_unit); /* stop */ return; }
t_stat tti_reset (DEVICE *dptr) { chan_disc (tti_dib.chan); /* disconnect */ tti_unit.buf = 0; /* clear state */ xfr_req = xfr_req & ~XFR_TTI; /* clr xfr flag */ sim_activate (&tti_unit, tti_unit.wait); /* start poll */ return SCPE_OK; }
t_stat ptp_reset (DEVICE *dptr) { chan_disc (ptp_dib.chan); /* disconnect */ ptp_ldr = 0; /* clear state */ ptp_unit.buf = 0; xfr_req = xfr_req & ~XFR_PTP; /* clr xfr flag */ sim_cancel (&ptp_unit); /* deactivate unit */ return SCPE_OK; }
t_stat lpt_reset (DEVICE *dptr) { chan_disc (lpt_dib.chan); /* disconnect */ lpt_spc = 0; /* clr state */ lpt_sta = 0; xfr_req = xfr_req & ~XFR_LPT; /* clr xfr flag */ sim_cancel (&lpt_unit); /* deactivate */ return SCPE_OK; }
void mt_set_err (UNIT *uptr) { chan_set_flag (mt_dib.chan, CHF_EOR | CHF_ERR); /* eor, error */ chan_disc (mt_dib.chan); /* disconnect */ xfr_req = xfr_req & ~XFR_MT0; /* clear xfr */ sim_cancel (uptr); /* stop */ mt_bptr = 0; /* buf empty */ return; }
void lpt_end_op (int32 fl) { if (fl) /* set flags */ chan_set_flag (lpt_dib.chan, fl); xfr_req = xfr_req & ~XFR_LPT; /* clear xfr */ sim_cancel (&lpt_unit); /* stop */ if (fl & CHF_ERR) { /* error? */ chan_disc (lpt_dib.chan); /* disconnect */ lpt_err = 1; /* set lpt err */ } return; }
void mt_readend (UNIT *uptr) { sim_cancel (uptr); /* stop timer */ mt_skip = 0; /* clr skp flg */ chan_set_flag (mt_dib.chan, CHF_EOR); /* end record */ if (mt_eof) /* EOF? */ chan_disc (mt_dib.chan); else { mt_gap = 1; /* no, in gap */ sim_activate (uptr, mt_gtime); /* start timer */ } return; }
t_stat mt_svc (UNIT *uptr) { if (mt_gap) { /* gap timeout */ mt_gap = 0; /* clr gap flg */ chan_disc (mt_dib.chan); /* disc chan */ } else if (mt_skip) /* skip record */ mt_readend (uptr); else { /* normal xfr */ xfr_req = xfr_req | XFR_MT0; /* set xfr req */ sim_activate (uptr, mt_ctime); /* reactivate */ } return SCPE_OK; }
t_stat mt_reset (DEVICE *dptr) { int32 i; chan_disc (mt_dib.chan); /* disconnect */ mt_eof = 0; /* clear state */ mt_gap = 0; mt_skip = 0; mt_inst = 0; mt_bptr = mt_blnt = 0; xfr_req = xfr_req & ~XFR_MT0; /* clr xfr flag */ for (i = 0; i < MT_NUMDR; i++) { /* deactivate */ sim_cancel (&mt_unit[i]); sim_tape_reset (&mt_unit[i]); mt_unit[i].eotf = 0; } return SCPE_OK; }