Timer configuration selects the host-time interval used by ivss's timer thread. The memory-mapped register is at 0xFFFFFF10; this snippet requests configuration one and reads it back:
.equ tim_cfg, 0xFFFFFF10 .section my_code ld $1, %r1 st %r1, tim_cfg ld tim_cfg, %r2 halt .end
Configuration one represents 1,000 milliseconds. The supported values zero through seven select 500, 1,000, 1,500, 2,000, 5,000, 10,000, 30,000, and 60,000 milliseconds respectively. The default is zero, and writes outside the supported range do not change the setting.
Reading the register returns its configuration index, so %r2 becomes one rather than one thousand. The register is readable and writable even when no timer thread is running.
Use -timer to generate periodic requests. The thread consults the setting before each sleep, so changing it does not necessarily interrupt a sleep already underway. Receiving ticks also requires an installed handler and clear timer and global mask bits.
Source: emulator.c.