Differences

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

Link to this comparison view

instructions:szu [2008/11/25 12:11] (current)
scott created
Line 1: Line 1:
 +====== Scan to Delimiter - Zone Unequal (SDU)/OP=19 ======
 +
 +==== Format ====
 +
 +^  OP  ^  AF  ^  BF  ^  A Syllable  ^  B Syllable  ^
 +
 +''OP = 19''
 +
 +**AF** is the length of the **A** field.  A value of __00__ is equal to
 +a length of __100__ units (digits or characters as specified by the
 +**A** address controller).  **AF** may be indirect or may indicate that the
 +**A** syllable is a literal.\\
 +**BF** is the length of the **B** field.  A value of __00__ is equal to
 +a length of __100__ units (digits or characters as specified by the **B**
 +address controller). **BF** may be indirect.
 +
 +The //A Syllable// is the address of the delimiter list field. Address may be
 +indexed, indirect or extended.  The final address controller data type
 +may be **UN**, **SN** or **UA**.   An **SN** controller is treated as
 +if it were a **UN** controller (i.e. 7SN == 7UN).\\
 +The //B Syllable// is the address of the data field to be scanned.
 +Address may be
 +indexed, indirect or extended.  The final address controller data type
 +may be **UN**, **SN** or **UA**.   An **SN** controller is treated as
 +if it were a **UN** controller (i.e. 7SN == 7UN).
 +
 +==== Function ====
 +
 +The Scan to Delimiter - Zone Unequal instruction scans
 +the **B** field for a character whose zone is
 +not equal to any of the delimiter characters's zones from the **A** field.
 +
 +The first **B** field character's zone is compared to
 +each delimiter (**A**) field
 +character's zone until a match is found.   If a match is
 +found, the next **B** field
 +character's zone is compared to each delimiter's zone.   Continue
 +this process until
 +no matching delimiter's zone is found or until the **B** field is exhausted.
 +
 +If a numeric data type (**UN**/**SN**) is specified in either field add
 +the **EBCDIC** zone digit **F** to each digit to form the character for
 +use in the comparison.
 +
 +This instruction stores the number of characters in the **B** data field
 +//preceeding// the equal character into memory locations __38-39__,
 +relative to Base #0 (accessible with indirect field length).  However, if
 +no equal character is found, store the field length of the data field minus
 +one (**BF** - 1).
 +
 +
 +==== Comparison Flags ====
 +
 +Set the [[processor_state:comparison_flags|Comparison Flags]] to **HIGH**
 +if every zone in the **B** field matches a delimiter character zone.
 +Set the Comparison Flags to **LOW** if
 +the first character's zone in the **B** field was not equal to any delimiter 
 +zone  and
 +set the Comparison Flags to **EQUAL** if some other character's zone is unequal.
 +
 +==== Overlap ====
 +
 +There are no overlap restrictions for this instruction.
 +
 +==== Examples ====
 +
 +=== Example (1) Scan Delimiter-Zone Unequal, First zone unequal ===
 +
 +^  OP  ^  AFBF  ^  A Syllable  ^  B Syllable  ^
 +|  19  |  0104  |  A Field (UA)  |  B Field (UN)  |
 +
 +                      BEFORE              AFTER
 +     A Field            C1              unchanged
 +     B Field          D1C1C2E7          unchanged
 +     000038             nn                  00
 +
 +     Comparison Flags   nn                 LOW
 +
 +=== Example (2) Scan Delimiter-Zone Unequal, Other than first zone unequal ===
 +
 +^  OP  ^  AFBF  ^  A Syllable  ^  B Syllable  ^
 +|  19  |  0204  |  A Field (UA)  |  B Field (UA)  |
 +
 +                      BEFORE              AFTER
 +     A Field           C1D1             unchanged
 +     B Field         C1C2E7C3           unchanged
 +     000038             nn                  02
 +
 +     Comparison Flags   nn                 EQUAL
  
instructions/szu.txt ยท Last modified: 2008/11/25 12:11 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