OP = 97
AF is unused and reserved, but may be specified as an indirect field length. A literal flag will cause an Invalid Instruction (IEX = 21) fault.
BF is the variant and may be specified as an indirect field length. The following variants may be specified:
|00||Set Time of Day Timer|
|01||Set Alarm Timer|
A is the address of the memory location where the timer information is stored. Address may be indexed, indirect or extended. The final address controller must equal UN or cause an Invalid Instruction (IEX = 03) fault.
This instruction may only be executed with Privileged Enable set, or an Invalid Instruction (IEX = 02) fault is reported.
The Set Timer instruction is used to set the current Time-Of-Day timer or the Alarm Timer.
The Set Time of Day Timer instruction will load the Time of Day timer with the twenty digit value at the memory location specified by the A address.
The Set Alarm Timer variant loads the Alarm Timer with the new microseconds since midnight time at which to cause an alarm timer interrupt. See Compatibility Notes A.36.
The format of the A operand is the normal twenty digit value. However, in this case, the Year/Month/Day fields are ignored.
The microseconds field of the A operand is loaded into the Alarm Timer.
Note that if the new Alarm Timer is greater than the number of microseconds in a day, the Alarm Timer interrupt may not occur. As long as the current Microseconds field of the Time of Day Timer contains a value equal to or greater than the Alarm Timer, then the Alarm Timer interrupt will continue to be reported (if not masked by the Interrupt Mask).
Not affected by this instruction.
Field overlap is not applicable to this instruction.