ITASK 
          IDENT  ITASK
          ENTRY  ITASK
          LCC    OVERLAY(ITASK,0,0) 
          SST    BEGN,CMBL
          SYSCOM B1 
  
*COMMENT  INITIAL TASK. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 ITASK    TITLE  INITIAL TASK.
  
***       INITIAL TASK
*         M. M. CHEN  1977. 
*         E. D. REDIG.       80/06/20.  *TAF* AUTOMATIC RECOVERY. 
          SPACE  4,15 
***           INITIALIZE TASK IS THE INTERFACE BETWEEN THE TRANSACTION
*         EXECUTIVE AND USER-S APPLICATION TASK.  *ITASK* PROCESSES 
*         ALL TRANSACTION INPUT TO DETERMINE WHICH TRANSACTION UNIT 
*         TO CALL TO FURTHER PROCESS THE INPUT, AND STATUS MESSAGES 
*         CONCERNING THE STATE OF THE TRANSACTION SYSTEM. 
* 
*             BECAUSE TRANSACTION INPUT WILL VARY FROM APPLICATION TO 
*         APPLICATION, INITIAL TASK WILL HAVE TO VARY TO ADAPT TO 
*         DIFFERENT INPUT FORMATS AND OPERATIONAL CONDITIONS.  THIS 
*         INITIAL TASK IS PROVIDED TO SERVE AS AN EXAMPLE.  EACH
*         INSTALLATION WILL NEED ITS OWN INITIAL TASK TO SERVE ITS OWN
*         SPECIFIC NEEDS. 
  
  
 MACROS   TITLE  MACROS 
*CALL     COMKTAF 
*CALL     COMKFLD 
*CALL     COMKIPR 
*CALL     COMKMAC 
 BEGN     BSS    0           SAVE ORIGIN COUNTER
*CALL     COMKCBD 
          ORG    BEGN        RESTORE ORIGIN COUNTER 
  
          NOREF  .1,.2
 .1       SET    0
 .2       SET    0
 TIMCNT   SPACE  4
**        TIMCNT - DEFINE A TIME ORIGINATING TASK.
* 
  
  
          PURGMAC TIMCNT
  
 TIMCNT   MACRO  HH,MM,SS,ADDR
          VFD    18/ADDR,24/0,6/HH,6/MM,6/SS
          ENDM
 TRAN     SPACE  4,20 
**        TRAN - DEFINE A TRANSACTION CODE. 
* 
*         THE *TRAN* MACRO SETS UP ENTRIES FOR THE TABLE OF 
*         TRANSACTION CODES *TRANT*.  NOTE - A PARTICULAR 
*         TRAN ENTRY SETS UP THE TRANT ENTRY FOR THE PRECEDING
*         DECLARED TRANSACTION CODE.  *ITASK* ASSUMES THAT
*         THE *TRANT* TABLE IS SET UP IN DISPLAY ORDER.  IT 
*         USES THE DISPLAY CODE VALUE OF THE TRANSACTION CODE 
*         ENTERED BY THE USER TO LOCATE THE PROPER ENTRY IN 
*         *TRANT*.
* 
*         TRAN   CODE 
* 
*         ENTRY  CODE  = ONE-CHARACTER TRANSACTION CODE.
*                TRANS = SYMBOL SPECIFYING THE RELATIVE ADDRESS 
*                        OF SUBTRANSACTION CODES. 
* 
*         EXIT   ENTRY MADE INTO THE TABLE OF TRANSACTION 
*                CODES *TRANT*. 
  
  
          PURGMAC TRAN
  
 TRAN     MACRO  A
          VFD    12/2000B+.1,48/TRANS+.2
 .2       SET    .2+.1
 .1       SET    0
          ENDM
 STRAN    SPACE  4,15 
**        STRAN - DEFINE A SUBTRANSACTION CODE. 
* 
*         THE *STRAN* MACRO MAKES ENTRIES IN THE TABLE OF 
*         SUBTRANSACTION CODES *TRANS*.  *TRANS* CONTAINS THE 
*         SUBTRANSACTION CODE AND THE CORRESPONDING NAME OF 
*         THE TRANSACTION UNIT. 
* 
*         STRAN  CODE,TNAME 
* 
*         ENTRY  CODE = TWO-CHARACTER SUBTRANSACTION CODE.
*                TNAME = NAME OF THE TRANSACTION UNIT TO BE CALLED. 
* 
*         EXIT   ENTRY MADE INTO THE TABLE OF SUBTRANSACTION
*                CODES *TRANS*. 
  
  
          PURGMAC STRAN 
  
 STRAN    MACRO  CODE,TNAME 
 STRAN    RMT 
          VFD    12/0H_CODE,6/0,42/0L_TNAME 
 STRAN    RMT 
 .1       SET    .1+1        ADVANCE SUB TRANSACTION CODE COUNT 
          ENDM
  
  
          BSS    CMBL        RESERVE SPACE FOR COMMUNICATION BLOCK
 TABLES   TITLE  TRANSACTION TABLES.
 TRANT    SPACE  4,20 
**        TRANT - TRANSACTION CODE TABLE. 
* 
*         EACH GROUP OF ENTRIES RELATING TO THE SAME TRANSACTION
*         CODE IS PLACED IMMEDIATELY FOLLOWING THE *TRANT* ENTRY
*         FOR THAT CODE, ALTHOUGH THE SUBTRANSACTION TABLE IS 
*         ASSEMBLED ELSEWHERE.  THE FOLLOWING IS AN EXAMPLE OF
*         THE USE OF THE *TRAN* AND *STRAN* MACROS. 
* 
*         TRANT  BSS         0
* 
*                TRAN        A
* 
*                STRAN       02,TNAME1
* 
*                STRAN       03,TNAME2
* 
*         WHERE, *A* IS THE TRANSACTION CODE, *02* AND *03* ARE 
*         THE SUBTRANSACTION CODES, AND *TNAME1* AND *TNAME2* 
*         ARE THE RESPECTIVE TRANSACTION UNITS TO BE REQUESTED. 
* 
*         THE DECLARATION OF A TRANSACTION UNIT AND THE ASSOCIATION 
*         OF ATTRIBUTES WITH IT IS ACCOMPLISHED THROUGH *LIBTASK* 
*         DIRECTIVES. 
  
  
 TRANT    BSS    0
          LOC    1
          TRAN   A
          TRAN   B
          TRAN   C
          TRAN   D
          TRAN   E
          STRAN  (X.),XTRAN  EXECUTE NAMED TASK 
  
*         CAUTION: THE FOLLOWING IS AN EXAMPLE OF A *LIBTASK* 
*                  DIRECTIVE NEEDED FOR THE TRANSACTION UNIT *XTRAN*. 
* 
*                  /XTRAN,T1=XTASK
  
          TRAN   F
          TRAN   G
          TRAN   H
          TRAN   I
          TRAN   J
          TRAN   K
          TRAN   L
          TRAN   M
          TRAN   N
          TRAN   O
          TRAN   P
          TRAN   Q
          TRAN   R
          TRAN   S
          TRAN   T
          TRAN   U
          TRAN   V
          TRAN   W
          TRAN   X
          TRAN   Y
          TRAN   Z
          TRAN   0
          TRAN   1
          TRAN   2
          TRAN   3
          TRAN   4
          TRAN   5
          TRAN   6
          TRAN   7
          TRAN   8
          TRAN   9
          TRAN   +
          TRAN   -
          TRAN   *
          TRAN   /
          TRAN   )
          TRAN   (
          TRAN   $
          TRAN   =
          TRAN   1R 
          TRAN   ,
          TRAN   .
          TRAN   #
          TRAN   [
          TRAN   ]
          TRAN   :  
          TRAN   "
          TRAN   _
          TRAN   !
          TRAN   &
          TRAN   '
          TRAN   ?
          TRAN   <
          TRAN   :  
          TRAN   @
          TRAN   \
          TRAN   ^
          TRAN   ;
          TRAN
          LOC    *O 
 STAN     SPACE  4,10 
**        SUBTRANSACTION CODE TABLES. 
* 
  
  
 TRANS    BSS    0
 STRAN    HERE
 TTOT     SPACE  4,10 
**        TABLE OF TIME ORIGINATING TASKS.
*         TIMCNT MACROS WOULD BE PUT IN THIS TABLE. 
  
  
 TTOT     BSS    0
 TTOTL    EQU    *-TTOT 
  
  
 ITASK    TITLE  ITASK
 ITASK    SPACE  4,80 
**        ITASK - PROCESS TRANSACTION INPUT.
* 
*           *ITASK* EXTRACTS THE DATA BASE NAME FROM THE COMMUNICATION
*         BLOCK AND SEARCHES A DATA BASE NAME TABLE TO DETERMINE WHAT 
*         INPUT PROCESSING IS NECESSARY.
* 
*           *ITASK* MAY BE CALLED WITH SYSTEM ORIGIN TRANSACTIONS,
*         WITH THE TYPE OF CALL IN WORD *TMSW* OF THE COMMUNICATION 
*         BLOCK.
* 
*         ENTRY  (TRSQ) = 12/     DB,24/     UA,24/     SEQ 
*                (TNAM) = 42/     TN,1/S,1/P,1/B,2/ ,1/M,12/WC
*                (TMSW) = MESSAGE IF S .EQ. 0.
*                       = RC IF S .EQ. 1. 
* 
*                DB     DATA BASE FOR TERMINAL
*                UA     USER ARGUMENT FIELD FOR TERMINAL
*                SEQ    TRANSACTION SEQUENCE NUMBER 
*                TN     TERMINAL NAME 
* 
*                S      =1 IF SYSTEM ORIGIN TRANSACTION.
*                P      =1 IF PARITY ERROR OCCURRED ON TERMINAL INPUT.
*                B      =1 IF TRANSACTION INPUT CAME FROM BATCH.
*                M      =1 IF MULTIPLE COMMUNICATION BLOCKS USED. 
*                WC     MESSAGE LENGTH IN WORDS.
* 
*                RC     = 1  IMPLIES SYSTEM TIMED ACTIVATION. 
*                       = 2  IMPLIES IDLE DOWN (K.IDLE).
*                       = 3  IMPLIES RECOVERY HAS TAKEN PLACE.
*                       = 4  IMPLIES TERMINAL LOGIN.
*                       = 5  IMPLIES SYSTEM MESSAGE.
*                            SYSTEM MESSAGE IS HANDLED BY *SYSMSG* TASK 
*                            NOT BY ITASK.
*                       = 6  IMPLIES TERMINAL BREAK FROM NAM. 
*                       = 7  IMPLIES TERMINAL CONNECTION BROKEN FROM NAM
*                       = 8  IMPLIES NETWORK SHUT DOWN -NORMAL. 
*                       = 9  IMPLIES NAM ABORTED. 
*                       = 10 IMPLIES NETWORK SHUT DOWN - FORCED.
*                       = 11 IMPLIES TERMINAL INACTIVE. 
*                       = 14 IMPLIES LOGICAL ERROR. 
*                       = 15 IMPLIES BLOCK NOT DELIVERED. 
*                       = 16 IMPLIES TERMINAL CHARACTERISTICS.
*                       = 17 IMPLIES INPUT TOO LARGE. 
*                       = 18 IMPLIES TERMINAL STATUS REQUEST. 
* 
*          SEE COMMON DECK *COMKSTC* FOR SYBOLS AND THEIR VALUES. 
* 
*          FOR CODES 1, 2, 3, 8, 9, AND 10
*          THE COMMUNICATION BLOCK HEADER CONTAINS ZERO FOR TERMINAL
*          NAME AND USER AREA, THE DATA BASE IS *SY* WITH SECURITY
*          CODES OF 7.
* 
*          FOR CODE 4, THE COMMUNICATION BLOCK HEADER IS SET UP WITH
*          THE FOLLOWING INFORMATION FOR THE TERMINAL LOGGED IN.
* 
*                (TMSW+1) = 23/ ,12/BSZ,1/HW/8/DT,8/PW,8/PL 
* 
*                BSZ = BLOCK SIZE. (IN CHARACTERS, BITS 25-37)
*                HW = HARD WIRED LINE. (BIT 24) 
*                DT = DEVICE TYPE/TERMINAL CLASS. (BIT 16-23) 
*                PW = PAGE WIDTH OF TERMINAL. (BIT 8-15)
*                PL = PAGE LENGTH OF TERMINAL. (BIT 0-7)
* 
*          FOR CODES 6, 7, AND 11 - 17
*          THE COMMUNICATION BLOCK IS SET UP WITH NORMAL SEQUENCE 
*          NUMBER, TERMINAL NAME OF MALFUNCTION, THE DATA BASE FOR
*          THE TERMINAL, READ AND UPDATE SECURITY OF 7 AND THE NETWORK
*          SUPERVISORY MESSAGE IS FORMED IN (TMSW+1). 
* 
*          THE FORMATS OF NETWORK SUPERVISORY MESSAGES ARE GIVEN IN 
*          COMMON DECK *COMKNWF*.  THE VALUES FOR THE FIELDS ARE GIVEN
*          IN COMMON DECK *COMSNCD*.
* 
*         USES   A - 1, 2, 5, 6, 7. 
*                B - 3. 
*                X - 0, 1, 2, 5, 6, 7.
* 
*         CALLS  BIN, CBT, CCS, CTL, CYB. 
* 
*         MACROS CALLTRN, CALLTSK, CEASE, FMSG, JOURNL, SCALL, SEND.
  
  
 ITASK    SB1    1           ENTRY
          SA2    TNAM 
          SA5    A2+B1       SYSTEM TRANSACTION CODE
          LX2    59-CBSYS    LEFT JUSTIFY SYSTEM ORIGIN 
          SA1    A2-B1
          SX0    X5 
          NG     X2,ITA1     IF SYSTEM ORIGIN TRANSACTION 
          BX3    X2 
          LX2    59-CBIDS-59+CBSYS
          NG     X2,ITA15    IF OPERATOR IDLE DOWN
          LX3    59-CBCDS-59+CBSYS
          NG     X3,ITA16    IF CDCS ABORTED
  
*         IF INPUT FOUND IN TRANSACTION, SUBTRANSACTION TABLES
*         SCHEDULE TRANSACTION UNIT SPECIFIED BY TABLES.  OTHERWISE 
*         USE INPUT AS TRANSACTION UNIT TO SCHEDULE.
  
          RJ     CYB         PROCESS INPUT
          NZ     X1,ITA8     IF TRANSACTION UNIT FOUND
          RJ     CCS         CHECK CHARACTER STRING 
          ZR     X1,ITA7     IF NO TRANSACTION UNIT TO SCHEDULE 
          EQ     ITA8        SCHEDULE TRANSACTION UNIT
  
*         DETERMINE PROCESSOR FOR SYSTEM ORIGIN TRANSACTION.
  
 ITA1     LX0    -1 
          SX6    X0-TITAL 
          SB3    X0 
          PL     X6,ITA14    IF UNKNOWN REASON CODE 
          JP     B3+TITA     JUMP THRU TABLE
  
 TITA     PL     X0,ITA14    IF UNKNOWN REASON CODE 
          EQ     ITA13       IF SYSTEM TIMED ACTIVATION 
          PL     X0,ITA13    IF IDLE
          EQ     ITA13       IF RECOVERY HAS TAKEN PLACE
          PL     X0,ITA2     IF TERMINAL LOG IN 
          EQ     ITA13       IF SYSTEM MESSAGE
          PL     X0,ITA3     IF BREAK 
          EQ     ITA12       IF CONNECTION BROKEN 
          PL     X0,ITA12    IF NETWORK SHUT DOWN - NORMAL
          EQ     ITA12       IF NETWORK ABORT 
          PL     X0,ITA12    IF NETWORK SHUT DOWN - FORCED
          EQ     ITA12       IF TERMINAL INACTIVE 
          PL     X0,ITA14    IF UNKNOWN REASON CODE 
          EQ     ITA14       IF UNKNOWN REASON CODE 
          PL     X0,ITA4     IF TASK LOGICAL ERROR
          EQ     ITA5        IF BLOCK NOT DELIVERED 
          PL     X0,ITA12    IF TERMINAL CHARACTERISTICS
          EQ     ITA6        IF INPUT TOO LARGE 
          PL     X0,ITA12    IF TERMINAL STATUS REQUEST 
          EQ     ITA14       IF UNKNOWN REASON CODE 
 TITAL    EQU    *-TITA      LENGTH OF *ITASK* JUMP TABLE 
  
*         PROCESS TERMINAL LOG IN.
  
 ITA2     SEND   ITAF        SEND *READY.*
          SA1    TRSQ        FIRST WORD OF COMMUNICATION BLOCK
          RJ     CBT         CHECK FOR BINARY TERMINAL
          ZR     X6,ITA13    IF NOT BINARY TERMINAL 
          SA6    ITAE 
          SX7    ITAD        BINARY INPUT REQUEST MESSAGE 
          EQ     ITA10       SEND MESSAGE AND CEASE 
  
*         PROCESS TERMINAL BREAK. 
*         APPLICATION MAY WISH TO ACTIVE RECOVERY TASK. 
  
 ITA3     SX7    1           *BREAK RECEIVED.* MESSAGE CODE 
          EQ     ITA18       CALLTSK TO SEND MESSAGE
  
*         PROCESS TASK LOGICAL ERROR. 
*         APPLICATION MAY WISH TO DUMP THE TASK.
  
 ITA4     SX7    ITAH        *TASK LOGICAL ERROR.* MESSAGE
          EQ     ITA11       SEND AND JOURNAL MESSAGE THEN CEASE
  
*         PROCESS BLOCK NOT DELIVERED.
*         APPLICATION MAY WISH TO ACTIVE RECOVERY TASK. 
  
 ITA5     SX7    ITAI        *BLOCK LOST.* MESSAGE
          EQ     ITA11       SEND AND JOURNAL MESSAGE THEN CEASE
  
*         PROCESS INPUT TOO LARGE.
  
 ITA6     SX7    0           *INPUT TOO LARGE.* MESSAGE CODE
          EQ     ITA18       CALLTSK TO SEND MESSAGE
  
*         PROCESS NO TRANSACTION UNIT TO SCHEDULE.
  
 ITA7     SX7    2           ILLEGAL TRANSACTION UNIT MESSAGE CODE
          EQ     ITA18       CALLTSK TO SEND MESSAGE
  
*         SCHEDULE A TRANSACTION UNIT AND CEASE.
  
 ITA8     BX7    X1 
          SA7    ITAA        TRANSACTION UNIT NAME
          RJ     CTL         CHECK TIME LIST
          NZ     X2,ITA9     IF TIME TO SCHEDULE TRANSACTION UNIT 
          CALLTRN  ITAA      SCHEDULE TRANSACTION UNIT AND CEASE
  
 ITA9     CALLTSK  ITAA      SCHEDULE THE TIMED TASK
          SA1    CTLA        TRANSACTION UNIT TO SCHEDULE 
          EQ     ITA8        SCHEDULE TRANSACTION UNIT
  
 ITA10    SEND   X7          SEND MESSAGE 
          EQ     ITA13       CEASE
  
 ITA11    SEND   X7          SEND MESSAGE 
  
*         PROCESS CONNECTION BROKEN, NETWORK ABORT, NETWORK 
*         SHUTDOWN, TERMINAL INACTIVE, STOP AND START ON
*         DOWNLINE CONNECTION.  JOURNAL MESSAGE.
  
 ITA12    JOURNL ITAC        JOURNAL MESSAGE
          CEASE  -1          EXIT WITHOUT UNLOCKING TERMINAL
  
 ITA13    CEASE              EXIT WITHOUT SCHEDULING TRANSACTION UNIT 
  
*         PROCESS UNKNOWN REASON CODE.
  
 ITA14    SCALL  TMSG,(ITAB) SEND MESSAGE TO DAYFILE
          CEASE  2           ABNORMAL CEASE WITH DUMP 
  
*         TAF IS IDLING DOWN, ONLY ACCEPT *EX.LOGT* 
*         AS INPUT. 
  
 ITA15    SX7    ITAL        *TAF IDLING DOWN.* 
          EQ     ITA17       SEND MESSAGE AND CEASE 
  
*         CDCS ABORTED, ONLY ACCEPT *EX.LOGT* 
*         AS INPUT. 
  
 ITA16    SX7    ITAM        *CDCS ABORTED PLEASE WAIT* 
  
*         CHECK FOR *EX.LOGT*.
  
 ITA17    SA1    ITAN 
          IX2    X1-X5       PROCESS INPUT
          MX1    42 
          BX2    X1*X2
          NZ     X2,ITA10    IF NOT *EX.LOGT* 
          RJ     CYB
  
 ITA18    SA7    TMSW 
          SA1    ITAO 
          BX7    X1 
          SA7    ITAA 
          CALLTSK  ITAA,CEASE 
  
          EQ     ITA8        PROCESS *EX.LOGT*
 ITAA     BSSZ   2           TRANSACTION UNIT LIST FOR *CALLTRN*
 ITAB     DATA   C* UNKNOWN REASON CODE.* 
 ITAC     VFD    6/0,18/0,18/2,18/TRSQ
 ITAD     VFD    12/0,18/ITAE,12/0,18/ITAEL  SEND CONTROL WORD
 ITAE     CON    0
 ITAEL    EQU    *-ITAE 
 ITAF     FMSG   READY. 
 ITAH     FMSG   (TASK LOGICAL ERROR.)
 ITAI     FMSG   (BLOCK LOST.)
 ITAL     FMSG   (TAF IDLING DOWN.) 
 ITAM     FMSG   (CDCS ABORTED PLEASE WAIT.)
 ITAN     VFD    60/0LEX.LOGT 
 ITAO     VFD    60/0LSTASK 
 CYB      TITLE  CYBERLOAN/NIXDORF INPUT PROCESSING.
 CYB      SPACE  4,20 
**        CYB - CYBERLOAN INPUT PROCESSING. 
* 
*         THE FIRST THREE CHARACTERS OF INPUT ARE USED
*         TO DETERMINE WHICH TRANSACTION UNIT TO CALL.
* 
*         ENTRY  (X5) = FIRST WORD OF DATA MESSAGE. 
* 
*         EXIT   (X1) = TRANSACTION UNIT TO SCHEDULE. 
*                     = 0, IF NO TRANSACTION UNIT TO SCHEDULE.
* 
*         USES   A - 1, 2, 7. 
*                B - 2, 3.
*                X - 0, 1, 2, 5, 7. 
* 
*         CALLS  BIN. 
  
  
 CYB      SUBR               ENTRY/EXIT 
  
*         THE FIRST CHARACTER OF INPUT DETERMINES THE 
*         SUBTRANSACTION TABLE. 
  
          MX2    -6 
          LX5    6
          BX2    -X2*X5      TRANSACTION CODE 
          MX0    12 
          SA2    X2+TRANT    INDEX TO SUB TRANSACTION CODES 
          BX7    X0*X5       SUB TRANSACTION CODES
          UX2,B3 X2 
          SB2    X2          START OF SUB TRANSACTION CODES 
  
*         CHARACTERS 2 AND 3 DETERMINE THE TRANSACTION UNIT 
*         TO SCHEDULE FROM THE SUBTRANSACTION TABLE.
  
          RJ     BIN         SEARCH SUB TRANSACTION CODE TABLE
          ZR     X3,CYB1     IF ILLEGAL SUB-TRANSACTION CODE
          LX1    18 
          MX7    42 
          BX1    X7*X1       TRANSACTION UNIT NAME TO SCHEDULE
          EQ     CYBX        RETURN 
  
 CYB1     SX1    X3          NO TRANSACTION UNIT TO SCHEDULE
          LX5    -6          REPOSITION TERMINAL INPUT
          EQ     CYBX        RETURN 
 BIN      SPACE  4,15 
**        BIN - BINARY SEARCH TABLE.
* 
*         ENTRY  (X0) = MASK. 
*                (X7) = CRITERION.
*                (B2) = START OF TABLE. 
*                (B3) = LENGTH OF TABLE.
* 
*         EXIT   (X3) = 0 IF MATCH NOT FOUND. 
*                (X1) = ENTRY IF MATCH. 
* 
*         USES   A - 1. 
*                B - 2, 3.
*                X - 1, 2, 3, 6.
  
  
 BIN      SUBR               ENTRY/EXIT 
          SX3    B3+
          SB3    B2+B3
          SB3    B3-B1
          ZR     X3,BINX     IF THERE ARE NO ELEMENTS TO SEARCH 
 BIN1     SX3    B3-B2
          AX3    1
          SA1    X3+B2       TABLE ENTRY
          NO
          BX2    X0*X1
          IX6    X2-X7
          NG     X6,BIN2     IF RAISE LOWER LIMIT 
          ZR     X6,BIN3     IF FOUND ENTRY 
          SB3    A1-1        LOWER UPPER LIMIT
          GE     B3,B2,BIN1  IF NOT END OF TABLE
          SX3    0
          EQ     BINX        RETURN - NO MATCH FOUND
  
 BIN2     SB2    A1+B1
          LE     B2,B3,BIN1  IF NOT END OF TABLE
          BX3    X3-X3
          EQ     BINX        RETURN - NO MATCH FOUND
  
 BIN3     SX3    1
          EQ     BINX        RETURN - MATCH FOUND 
 ITASK    SPACE  4,15 
**        CCS - CHECK CHARACTER STRING FOR TRANSACTION UNIT NAME. 
* 
*         THE FIRST ONE TO SEVEN ALPHANUMERIC CHARACTERS OF INPUT 
*         ARE USED TO DETERMINE WHICH TRANSACTION UNIT TO SCHEDULE. 
* 
*         ENTRY  (X5) = FIRST WORD OF TERMINAL INPUT. 
* 
*         EXIT   (X1) = TRANSACTION UNIT TO SCHEDULE. 
*                     = 0, IF NO TRANSACTION UNIT TO SCHEDULE.
* 
*         USES   X - 0, 1, 2, 3, 4, 5, 6. 
*                B - 2, 3.
  
  
 CCS      SUBR               ENTRY/EXIT 
          MX2    48          EIGHT CHARACTER MASK 
          SB2    6
          BX6    X6-X6       CLEAR TRANSACTION UNIT NAME
          SX0    1R+
          BX5    X5*X2       MASK OFF CHARACTER STRING
          MX3    -6          ONE CHARACTER MASK 
          SB3    60 
          LX5    6           POSITION TERMINAL INPUT
          BX1    X6 
 CCS1     BX4    -X3*X5      GET A CHARACTER
          ZR     X4,CCS2     IF END OF TRANSACTION UNIT NAME
          IX2    X4-X0
          PL     X2,CCS3     IF NOT ALPHANUMERIC
          LX6    6
          SB3    B3-B2
          BX6    X6+X4       TRANSFER A CHARACTER 
          LX5    6
          EQ     CCS1        LOOP FOR NEXT CHARACTER
  
 CCS2     SB2    12 
          EQ     B2,B3,CCSX  IF TOO MANY CHARACTERS 
 CCS3     ZR     X6,CCSX     IF ZERO LENGTH TRANSACTION UNIT NAME 
          LX6    X6,B3       POSITION TRNASACTION UNIT NAME 
          BX1    X6 
          EQ     CCSX        RETURN 
 CTL      SPACE  4,20 
**        CTL - CHECK TIMED TRANSACTION UNIT LIST.
* 
*           THIS ROUTINE CHECKS TIME DEPENDENT TRANSACTION UNITS. 
*         IF IT IS TIME TO SCHEDULE A TRANSACTION UNIT THEN (X2) =
*         THE ADDRESS OF THE TRANSACTION UNIT, OTHERWISE (X2) = 0.
* 
*           APPLICATIONS MAY WISH TO GENERATE TIME DEPENDENT TRANS- 
*         ACTION TABLES BY MACRO *TIMCNT* AND CHANGE THIS ROUTINE 
*         TO SEARCH FOR THE PROPER TRANSACTION UNIT TO SCHEDULE.
*         DEFAULT VALUE FOR *TAF* IS NO TIMED TRANSACTION UNIT. 
* 
*         ENTRY  NONE.
* 
*         EXIT   (X2) = FWA OF TRANSACTION UNIT TO SCHEDULE.
*                (X2) = 0 IF NOT TIME TO SCHEDULE TIMED TRANSACTION.
* 
*         USES   X - 2. 
  
  
 CTL      SUBR               ENTRY/EXIT 
          SX2    0
          EQ     CTLX        RETURN 
  
 CTLA     BSS    1           NEXT TIMED TRANSACTION UNIT TO SCHEDULE
          SPACE  4
*         COMMON DECKS. 
  
  
          LIST   X
*CALL     COMKCBT 
*CALL     COMKSTC 
          END    ITASK
