From 1ef6c3d6b9feceb397a518b1622312bd0a604e30 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Sun, 20 Sep 2015 14:04:24 -0700 Subject: [PATCH] SCP: Added REG_V_UF and REG_UFMASK to support user-defined register flags. From Dave Bryan Altered the calling sequences to fprint_sym and parse_sym in ex_reg and dep_reg to merge user-defined register flags with the radix in the addr parameter. This allows the print and parse routines to identify the register or determine how it is to be handled. These are called in lieu of the standard print and parse routines if a register has REG_VMIO or at least one user-defined flag set. --- doc/simh.doc | Bin 207872 -> 240640 bytes scp.c | 11 +++++++---- sim_defs.h | 6 ++++++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/doc/simh.doc b/doc/simh.doc index 399848953efad233d8349d23340f8602dd58d915..713fe58b9271e8063f552fb22d8e32b1a10a8542 100644 GIT binary patch delta 58292 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 delta 39248 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 z>hpDradix); if ((rptr->flags & REG_VMAD) && sim_vm_fprint_addr) sim_vm_fprint_addr (ofile, sim_dflt_dev, (t_addr) val); -else if (!(rptr->flags & REG_VMIO) || - (fprint_sym (ofile, rdx, &val, NULL, sim_switches | SIM_SW_REG) > 0)) { +else if (!(rptr->flags & REG_VMFLAGS) || + (fprint_sym (ofile, (rptr->flags & REG_UFMASK) | rdx, &val, + NULL, sim_switches | SIM_SW_REG) > 0)) { fprint_val (ofile, val, rdx, rptr->width, rptr->flags & REG_FMT); if (rptr->fields) { Fprintf (ofile, "\t"); @@ -6603,8 +6604,10 @@ if ((rptr->flags & REG_VMAD) && sim_vm_parse_addr) { /* address form? */ if ((tptr == cptr) || (*tptr != 0) || (val > mask)) return SCPE_ARG; } -else if (!(rptr->flags & REG_VMIO) || /* dont use sym? */ - (parse_sym (cptr, rdx, NULL, &val, sim_switches | SIM_SW_REG) > SCPE_OK)) { +else + if (!(rptr->flags & REG_VMFLAGS) || /* dont use sym? */ + (parse_sym (cptr, (rptr->flags & REG_UFMASK) | rdx, NULL, + &val, sim_switches | SIM_SW_REG) > SCPE_OK)) { val = get_uint (cptr, rdx, mask, &r); if (r != SCPE_OK) return SCPE_ARG; diff --git a/sim_defs.h b/sim_defs.h index 4e5e28f0..b98ae56c 100644 --- a/sim_defs.h +++ b/sim_defs.h @@ -565,6 +565,8 @@ struct sim_reg { uint32 qptr; /* circ q ptr */ }; +/* Register flags */ + #define REG_FMT 00003 /* see PV_x */ #define REG_RO 00004 /* read only */ #define REG_HIDDEN 00010 /* hidden */ @@ -576,6 +578,10 @@ struct sim_reg { #define REG_FIT 01000 /* fit access to size */ #define REG_HRO (REG_RO | REG_HIDDEN) /* hidden, read only */ +#define REG_V_UF 16 /* device specific */ +#define REG_UFMASK (~((1u << REG_V_UF) - 1)) /* user flags mask */ +#define REG_VMFLAGS (REG_VMIO | REG_UFMASK) /* call VM routine if any of these are set */ + /* Command tables, base and alternate formats */ struct sim_ctab {