[Simh] Single stepping.

Richard Cornwell rich at sky-visions.com
Mon Jan 30 10:09:38 EST 2017


Hi Bob,


> If you do want to use different timing, then global variable sim_step
> is available with the current step count (0 means not stepping) at
> entry to sim_instr. sim_step isn't deliberately global; it just works
> out that way. Further, it is NOT maintained as the step count is
> counted down. Therefore, you need to pick it up on the way into
> sim_instr and count it down yourself. You also need to cancel out the
> sim_step unit, which will stop the simulator prematurely. Again, the
> cancellation routine is global, although that wasn't deliberate
> either.

  Thanks I think this will solve my problem. This will also allow me
  to step over XCT's properly and skip interrupt calls.

 

> Converting sim_step to uint32 should quiesce compilers that are fussy 
> about integer overflow or wraparound on variable i. Or you can use
> 64b integers.
> 
> Passing the step count as an argument would require modifying every 
> simulator. There are lots of SCP variables that may be of interest to
> a running simulator; they are declared as globals.
> 
> The PDP-10 requires timing by memory reference (or something close to 
> it), because infinite indirects and XCT * must be interruptible to 
> prevent system lockup. The 7094 seems to run fine with timing by 
> instruction.

  For the 7094 I also emulate a 704 with same code. This machine did
  Programed I/O operations, instruction timing could result in missed
  data. Also some of the 709 boot sequences I have seen actually track
  channel progress and redirect the load after some code has been
  loaded. Without accurate instruction times this can get messed up.
  Similar problem occurs on the 7010, in that instructions can take a
  while and execution is related to the number of memory cycles
  required. 

Rich

> 
> /Bob
> 
> On 1/30/2017 5:33 AM, Rich Cornwell wrote:
> 
>    I track memory cycles so that I/O is closer to the time that the
> CPU expects. This is more important for the I7000 series since
>    instructions where executed during I/O and some of the code relies
> on how many instructions can be executed during a read/write. Also for
>    some cases during the I7090 I decrement sim_interval during long
>    instructions to closer simulate the real speed of the machine.
> 
> _______________________________________________
> Simh mailing list
> Simh at trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh


-- 
==========================================================================
Richard Cornwell
skyvis at sky-visions.com
http://sky-visions.com
LinkedIn:   https://www.linkedin.com/in/richard-cornwell-991076107
==========================================================================


More information about the Simh mailing list