[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