[Simh] Custom PC formatting
Peter Onion
Peter.Onion at btinternet.com
Sun Oct 6 13:03:13 EDT 2013
On Sun, 2013-10-06 at 09:37 -0700, Mark Pizzolato - Info Comm wrote:
> >
> >
> > I'll reply to the list this time !
> >
> > Ok, so I guess this is done via HRDATADF and the psl_bits
definition ?
> >
> > HRDATADF is not mentioned in the docs and from that one example it
is
> > rather hard to see how to use it to do what I need.
>
> I believe that these are mentioned in the doc files in the doc
directory at github.com/simh/simh.
I've looked, but I can't find any reference to them.
> > I have a 14 bit SCR register and I want to print ((SCR >> 1) & 8191)
and a
> > decimal, and add a "+" on the end if ((SCR & 1) == 1).
> >
> > I've tried to define my PC using HRDATADF, and it picks up the name
string
> > OK but it isn't doing anything with the bit/field definitions as far
as I can tell,
> > it's still just printing it out a decimal.
>
> Please provide your code.
>
> I'll take a shot, not knowing precisely what you really want to see:
>
> It seems like this register has two fields. Lets say it is a 16 bit
14 bits actually...
> register with the high 15 bits the PCValue and the Low Bit this extra
> flag bit you want to see as a "+" when it is set. And you'd like to
> see the high 15 bits displayed in octal.
Decimal actually...
> I'd define the low bit as a selector on two strings:
>
> uint16 scr;
>
> char *lowbit_values[] = {"", "+"};
>
> BITFIELD SCR_bits {
> BITFNAM(LOW,1, lowbit_values),
> BITFFMT(PCV,15,"%o") ,
> ENDBITS
> };
>
> REG cpu_reg[] = {
> ....
> { HRDATADF(SCR, scr, 16, "sequence control register",
SCR_bits) },
> ....
> NULL
> };
>
That's close to the code I had already, but it doesn't affect the way
that the SCR is printed out after the "stop message" when sim_instr
returns. When it reaches a dynamic stop in the second instruction in
location 4 it prints
"Dynamic Stop, SCR: 0009"
when it should print
"Dynamic Stop, SCR: 0004+"
Thanks for trying to help :-)
Peter Onion
Elliott 803 Team leader
The National Museum of Computing
More information about the Simh
mailing list