From 43f59ab59c426dd6905c12a046061368ad26be1a Mon Sep 17 00:00:00 2001 From: Richard Cornwell Date: Tue, 9 May 2023 12:22:53 -0400 Subject: [PATCH] I7000: Fixes to allow for output tape switching. --- I7000/i7000_mt.c | 2 ++ I7000/i7090_cdr.c | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/I7000/i7000_mt.c b/I7000/i7000_mt.c index f903aac..94d5429 100644 --- a/I7000/i7000_mt.c +++ b/I7000/i7000_mt.c @@ -798,6 +798,7 @@ t_stat mt_srv(UNIT * uptr) switch (cmd) { case 0: /* No command, stop tape */ uptr->u5 |= MT_RDY; /* Ready since command is done */ + mt_chan[chan] &= ~MTC_BSY; sim_debug(DEBUG_DETAIL, dptr, "Idle unit=%d\n", unit); return SCPE_OK; @@ -1171,6 +1172,7 @@ t_stat mt_srv(UNIT * uptr) sim_activate(uptr, T2_us); } else { uptr->u3 -= reclen; + sim_debug(DEBUG_DETAIL, dptr, "Backspace file record unit=%d\n", unit); sim_activate(uptr, T2_us + (reclen * T1_us)); } return SCPE_OK; diff --git a/I7000/i7090_cdr.c b/I7000/i7090_cdr.c index a72f150..e075646 100644 --- a/I7000/i7090_cdr.c +++ b/I7000/i7090_cdr.c @@ -109,8 +109,12 @@ uint32 cdr_cmd(UNIT * uptr, uint16 cmd, uint16 dev) } return SCPE_BUSY; } - chan_set_attn(chan); - return SCPE_NODEV; + uptr->wait = 0; + uptr->u5 |= URCSTA_READ | URCSTA_CMD | (24 << CDRPOSSHIFT); + chan_set_sel(chan, 0); + chan_clear_status(chan); + sim_activate(uptr, us_to_ticks(1000)); /* activate */ + return SCPE_OK; } t_stat cdr_srv(UNIT * uptr)