Raspberry Pi and the 'instr_speed' program

Issue: when running dps8/m hosted on a Raspberry Pi (or other machine where the emulated CPU speed is less the about 0.5 MIPS), the the Multics instr_speed command hangs.

The instr_speed program runs a loop of instructions and checks the elapsed wall clock time; if the time is greater then some threshold, it concludes that the loop was stalled by Multics servicing an interrupt and tries again.

The follow procedure increases the time limits by a factor of ten, allowing the program to run correctly on slow emulations:

Patch instructions:

Login as Repair

[Fetch some source code]

   ac x >ldd>tools>s>bound_system_test_.s test_speed.alm

[Invoke an editor; it does not prompt]

   qedx

[Read the source into the buffer]

   r test_speed.alm

[Search for the code to be changed]

   /instr_limit:/

[Multiply the time limits by 10]

   .+1,.+15 s/00/000/

[Print the changed values]

   .-15,.p

[That should display]

    instr_limit:
              dec       12000
              dec       14000
              dec       9000
              dec       14000
              dec       20000
              dec       21000
              dec       29000
              dec       28000
              dec       20000
              dec       29000
              dec       28000
              dec       17000
              dec       12000
              dec       9000
              dec       24000

[Save the changes]

   w

[Quit the editor]

   q

[Assemble the code]

   alm test_speed

[Get the already compiled bits]

   cp >ldd>tools>o>bound_system_test_.archive

[Move the patched code into the archive]

   ac ud bound_system_test_ test_speed

[Bind the object files]

   bind bound_system_test_

[Run the new executable]

   [pwd]>instr_speed
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License