From 323cd48244fb921cd3bb85adda49ffbbd84ba010 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Thu, 30 Apr 2020 05:08:29 -0700 Subject: [PATCH] PDP8: 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. --- PDP8/pdp8_lp.c | 1 + PDP8/pdp8_pt.c | 11 ++++++++++- doc/pdp8_doc.doc | Bin 98304 -> 98816 bytes 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/PDP8/pdp8_lp.c b/PDP8/pdp8_lp.c index c1f40534..092758b6 100644 --- a/PDP8/pdp8_lp.c +++ b/PDP8/pdp8_lp.c @@ -177,6 +177,7 @@ t_stat lpt_attach (UNIT *uptr, CONST char *cptr) { t_stat reason; +sim_switches |= SWMASK ('A'); /* Default to Append to existing file */ reason = attach_unit (uptr, cptr); lpt_err = (lpt_unit.flags & UNIT_ATT) == 0; return reason; diff --git a/PDP8/pdp8_pt.c b/PDP8/pdp8_pt.c index 404a2524..a2a16209 100644 --- a/PDP8/pdp8_pt.c +++ b/PDP8/pdp8_pt.c @@ -46,6 +46,7 @@ t_stat ptr_svc (UNIT *uptr); t_stat ptp_svc (UNIT *uptr); t_stat ptr_reset (DEVICE *dptr); t_stat ptp_reset (DEVICE *dptr); +t_stat ptp_attach (UNIT *uptr, CONST char *cptr); t_stat ptr_boot (int32 unitno, DEVICE *dptr); const char *ptr_description (DEVICE *dptr); const char *ptp_description (DEVICE *dptr); @@ -123,7 +124,7 @@ DEVICE ptp_dev = { "PTP", &ptp_unit, ptp_reg, ptp_mod, 1, 10, 31, 1, 8, 8, NULL, NULL, &ptp_reset, - NULL, NULL, NULL, + NULL, &ptp_attach, NULL, &ptp_dib, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, &ptp_description @@ -260,6 +261,14 @@ sim_cancel (&ptp_unit); /* deactivate unit */ return SCPE_OK; } +/* Attach routine */ + +t_stat ptp_attach (UNIT *uptr, CONST char *cptr) +{ +sim_switches |= SWMASK ('A'); /* Default to Append to existing file */ +return attach_unit (uptr, cptr); +} + /* Bootstrap routine */ #define BOOT_START 07756 diff --git a/doc/pdp8_doc.doc b/doc/pdp8_doc.doc index 4c22ce7fc9b419aabd5e7f188ebfa1aca9d9cad3..ed1ef0842a7d9b4490dd80960d1b2d579fe876c2 100644 GIT binary patch delta 20419 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 F{2woJkNp4u delta 19960 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