From 4099330616acd4b048ff4e12a5ef38871ef10801 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Thu, 30 Apr 2020 05:18:47 -0700 Subject: [PATCH] H316: Open LPT, PTP devices for append This implements the principle of "least surprise", in that users won't normally expect to start overwriting an existing file on these devices. Real hardware didn't behave that way. A new (empty) file can always be created with the -N switch on the ATTACH. --- H316/h316_lp.c | 11 ++++++++++- H316/h316_stddev.c | 9 ++++++--- doc/h316_doc.doc | Bin 77312 -> 80384 bytes 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/H316/h316_lp.c b/H316/h316_lp.c index 6f97d85c..230626de 100644 --- a/H316/h316_lp.c +++ b/H316/h316_lp.c @@ -97,6 +97,7 @@ int32 lpt_stopioe = 0; /* stop on error */ int32 lptio (int32 inst, int32 fnc, int32 dat, int32 dev); t_stat lpt_svc (UNIT *uptr); t_stat lpt_reset (DEVICE *dptr); +t_stat lpt_attach (UNIT *uptr, CONST char *cptr); /* LPT data structures @@ -135,7 +136,7 @@ DEVICE lpt_dev = { "LPT", &lpt_unit, lpt_reg, NULL, 1, 10, 31, 1, 8, 8, NULL, NULL, &lpt_reset, - NULL, NULL, NULL, + NULL, &lpt_attach, NULL, &lpt_dib, DEV_DISABLE }; @@ -355,3 +356,11 @@ CLR_ENB (INT_LPT); sim_cancel (&lpt_unit); /* deactivate unit */ return SCPE_OK; } + +/* Attach routine */ + +t_stat lpt_attach (UNIT *uptr, CONST char *cptr) +{ +sim_switches |= SWMASK ('A'); /* Default to Append to existing file */ +return attach_unit (uptr, cptr); +} diff --git a/H316/h316_stddev.c b/H316/h316_stddev.c index ffe2876a..cf519a9f 100644 --- a/H316/h316_stddev.c +++ b/H316/h316_stddev.c @@ -421,13 +421,16 @@ return SCPE_OK; t_stat pt_attach (UNIT *uptr, CONST char *cptr) { t_stat r; +int32 saved_switches = sim_switches; if (!(uptr->flags & UNIT_ATTABLE)) /* not tti,tto */ return SCPE_NOFNC; -if (strcmp ("PTR", sim_uname (uptr)) == 0) /* PTR is read only */ - sim_switches |= SWMASK ('R'); -if ((r = attach_unit (uptr, cptr))) +sim_switches &= ~SWMASK ('A'); +if (strcmp ("PTP", sim_uname (uptr)) == 0) /* PTP is append default */ + sim_switches |= SWMASK ('A'); +if ((r = attach_unit (uptr, cptr)) != SCPE_OK) return r; +sim_switches = saved_switches; if (sim_switches & SWMASK ('A')) /* -a? ASCII */ uptr->flags |= UNIT_ASC; else if (sim_switches & SWMASK ('U')) /* -u? Unix ASCII */ diff --git a/doc/h316_doc.doc b/doc/h316_doc.doc index ed84865689bf19968dc71cdea130dbc5d201b1af..d0bdf7a48771c74d4bbd54d0b04a3596adf0310a 100644 GIT binary patch delta 18741 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 delta 16171 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