Esempio n. 1
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;
}
Esempio n. 2
0
File: id_mt.c Progetto: ST3ALth/simh
t_stat mt_reset (DEVICE *dptr)
{
uint32 u;
UNIT *uptr;

mt_bptr = mt_blnt = 0;                                  /* clr buf */
mt_sta = STA_BSY;                                       /* clr flags */
mt_xfr = 0;                                             /* clr controls */
for (u = 0; u < MT_NUMDR; u++) {                        /* loop thru units */
    CLR_INT (v_MT + u);                                 /* clear int */
    CLR_ENB (v_MT + u);                                 /* disable int */
    mt_arm[u] = 0;                                      /* disarm int */
    uptr = mt_dev.units + u;
    sim_tape_reset (uptr);                              /* clear pos flag */
    sim_cancel (uptr);                                  /* cancel activity */
    uptr->UST = (uptr->UST & STA_UFLGS) | STA_NMTN;     /* init status */
    uptr->UCMD = 0;                                     /* init cmd */
    }
return SCPE_OK;
}
Esempio n. 3
0
t_stat mt_reset (DEVICE *dptr)
{
hp_enbdis_pair (dptr,                                   /* make pair cons */
    (dptr == &mtd_dev) ? &mtc_dev : &mtd_dev);

if (dptr == &mtc_dev)                                   /* command channel reset? */
    mtcio (mtc_dib.devno, ioPOPIO, 0);                  /* send POPIO signal to command channel */
else                                                    /* data channel reset */
    mtdio (mtd_dib.devno, ioPOPIO, 0);                  /* send POPIO signal to data channel */

mtc_fnc = 0;
mtc_1st = mtc_dtf = 0;

sim_cancel (&mtc_unit);                                 /* cancel activity */
sim_tape_reset (&mtc_unit);

if (mtc_unit.flags & UNIT_ATT)
    mtc_sta = (sim_tape_bot (&mtc_unit)? STA_BOT: 0) |
              (sim_tape_wrp (&mtc_unit)? STA_WLK: 0);
else
    mtc_sta = STA_LOCAL | STA_BUSY;

return SCPE_OK;
}