Differences

This shows you the differences between two versions of the page.

Link to this comparison view

instructions:stt [2017/06/27 11:20] (current)
scott created
Line 1: Line 1:
 +====== Set Timer (STT)/OP=97 ======
 +
 +==== Format ====
 +
 +^  OP  ^  AF  ^  BF  ^  A Syllable  ^
 +
 +''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:
 +
 +^  BF  ^  Description  ^
 +|  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.
 +
 +==== Function ====
 +
 +The Set Timer instruction is used to set the current Time-Of-Day
 +timer or the Alarm Timer.
 +
 +=== BF = 00 Set Time of Day Timer  ===
 +
 +The Set Time of Day Timer instruction will load the
 +Time of Day timer with the twenty digit
 +[[processor_state::time_of_day_timer|value]] at
 +the memory location specified by the **A** address.
 +
 +=== BF = 01 Set Alarm Timer ===
 +
 +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|Compatibility Notes A.36]].
 +
 +The format of the **A** operand is the normal twenty digit
 +[[processor_state::time_of_day_timer|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
 +[[processor_state:interrupt_mask|Interrupt Mask]]).
 +
 +==== Comparison and Overflow Flags ====
 +
 +Not affected by this instruction.
 +
 +==== Overlap ====
 +
 +Field overlap is not applicable to this instruction.
 +
 +==== Examples ====
  
instructions/stt.txt ยท Last modified: 2017/06/27 11:20 by scott
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki