Beispiel #1
0
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;
}
Beispiel #2
0
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;
}
Beispiel #3
0
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;
}
Beispiel #4
0
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;
}
Beispiel #5
0
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;
}
Beispiel #6
0
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;
}
Beispiel #7
0
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;
}
Beispiel #8
0
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;
}
Beispiel #9
0
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;
}
Beispiel #10
0
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;
}