From ef94dcbe93f87f3a40dcbd77e614a6eacb8f82a9 Mon Sep 17 00:00:00 2001 From: Bob Supnik Date: Wed, 23 May 2018 15:52:08 -0700 Subject: [PATCH] SDS: Simplify MT operation check. The SDS tape unit can't do write reverse (no magtape tape can, afaik). So instead of testing for a particular write subop, the code just tests that the write was done in BCD mode. This is closer to how the hardware works. --- SDS/sds_mt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/SDS/sds_mt.c b/SDS/sds_mt.c index 83d43274..6887323b 100644 --- a/SDS/sds_mt.c +++ b/SDS/sds_mt.c @@ -427,9 +427,9 @@ if (dev & DEV_MTS) { /* erase? */ st = sim_tape_errecr (uptr, mt_bptr); else st = sim_tape_errecf (uptr, mt_bptr); /* no, forward */ } -else { - if ((mt_bptr == 1) && (mtxb[0] == 017) && /* wr eof? */ - ((mt_inst & 01670) == 00050)) +else { /* can't be reverse */ + if ((mt_bptr == 1) && (mtxb[0] == 017) && /* 1 char BCD write */ + (!(mt_inst & CHC_BIN))) /* of 017B? */ st = sim_tape_wrtmk (uptr); /* write tape mark */ else st = sim_tape_wrrecf (uptr, mtxb, mt_bptr); /* write record */ }