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
page revision: 0, last edited: 21 Aug 2019 17:24