COMKMAC 
COMMON
          CTEXT  COMKMAC - KTS INTERFACE MACROS.
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 COMKMAC  SPACE  4
***       COMKMAC - KTS INTERFACE MACROS. 
*         J.C.BOHNHOFF. 72/07/11. 
          SPACE  4
***       GENERAL INFORMATION.
* 
*         THIS DECK CONTAINS THE INTERFACE MACROS PROVIDED FOR USE BY 
*         COMPASS TASKS IN THE TRANSACTION SUBSYSTEM.  TWO SETS OF
*         MACROS ARE PROVIDED: ONE FOR TRANEX INTERFACE 
*         FUNCTIONS AND ONE FOR DATA MANAGER REQUESTS.
          TITLE  TRANEX EXECUTIVE INTERFACE MACROS
          SPACE  4
***       EXECUTIVE INTERFACE MACROS. 
* 
*         TRANEX INTERFACE REQUESTS INCLUDE MACROS FOR TASK SCHEDULING, 
*         TERMINAL RELATED FUNCTIONS, JOURNAL ENTRIES, DEBUGGING
*         DUMPS, AND TASK TERMINATION.
 ARGERR   SPACE  4,15 
***   ARGERR - ARGUMENT ERROR (NETWORKS). 
* 
*         CALL FORMAT 
*         ARGERR  ADDR
*                 WHERE - ADDR = ADDRESS OF TRACE 
*                               BACK WORD.
*         WHEN A LIBRARY ROUTINE DETECTS A RANGE, 
*         VALUE OR STRUCTURE ERROR IN A 
*         PROGRAM LEVEL PARAMETER LIST, IT
*         ABORTS THE TASK IMMEDIATELY, RATHER 
*         THAN PASSING AN OBVIOUS LOGICAL 
*         ERROR TO THE NETWORK. 
* 
*         CALLS  SYS=.
  
  
 ARGERR   MACRO  A
  SYSTEM  CTI,R,A,19
  ENDM
 BEGIN    SPACE  4,20 
***       BEGIN - TRANSFER COMMUNICATION BLOCK TO USER SPECIFIED TASK 
*         LOCATION
* 
*         CALL   FORMAT - 
*         BEGIN  ADDR 
*                WHERE - ADDR = FWA OF USER SUPPLIED BUFFER INTO WHICH
*                               THE PRIMARY TERMINAL COMMUNICATION
*                               BLOCK IS TO BE TRANSFERRED. 
* 
*         MACROS SYSTEM.
  
  
 BEGIN    MACRO  A
  SYSTEM  CTI,R,A,21
 BEGIN    ENDM
 BTRAN    SPACE  4,50 
***       BTRAN - SUBMIT A TRANSACTION FROM A BATCH JOB.
* 
*         BTRAN  ADDR 
* 
*         ENTRY  ADDR = ADDRESS OF FIRST WORD OF TRANSACTION TO 
*                SUBMIT TO *TAF* IN THE FOLLOWING FORMAT -
* 
*T  W1    42/0,18/LENGTH. 
*T, W2    60/  TRANSACTION INPUT DATA (LIMIT 620 CHARACTERS)
* 
*         LENGTH - LENGTH OF DATA PLUS HEADER IN WORDS. 
* 
*         DATA - THE DATA MUST BE IN A FORMAT ACCEPTABLE TO THE 
*                *INITIAL* TASK.  THE 620 CHARACTER LIMIT IS A MAXIMUM, 
*                AND THE SYSTEM MAY BE ASSEMBLED FOR LESS.
* 
*         *BTRAN* THEN BUILDS THE PARAMETER PACKET FOR THE *SSC*
*         REQUEST TO TAF IN THE FOLLOWING FORMAT -
* 
*T  W1    24/RSS,12/RIN,6/WC,4/RCD,2/R,11/ES,1/C
*T, W2    12/FC,12/0,12/SFC,6/AC,18/STATUS
*T, W3    24/0,18/LENGTH,18/ATRAN 
* 
*         WORD 1. 
*            RSS - RESERVED FOR SYSTEM. 
*            RIN - RESERVED FOR INSTALLATION. 
*            WC  - WORD COUNT (COUNT-1) OF REQUEST PACKET.
*            RCD - RESERVED FOR OPERATING SYSTEM. 
*            R   - RETURN CONTROL.
*            ES  - ERROR/STATUS DATA. 
*            C   - COMPLETION BIT, SET TO 0 BY THE OBJECT-TIME ROUTINE
*                  PRIOR TO FUNCTION OR MACRO CALL. 
* 
*         WORD 2. 
*            FC  - FUNCTION CODE (2001B) FOR BTRAN REQUEST. 
*            SFC - SUB-FUNCTION CODE, 0 FOR BTRAN.
*            AC  - ARGUMENT COUNT (NUMBER OF PARAMETERS PASSED),
*                  ZERO FOR BTRAN.
*            STATUS - STATUS OF REQUEST.
* 
*         WORD 3. 
*            LENGTH - LENGTH OF TRANSATION INPUT IN WORDS.
*            ATRAN  - ADDRESS OF TRANSACTION INPUT. 
* 
*         EXIT   (X6) = STATUS
*                WHERE STATUS EQUALS BATCH JOB STATUS CODES.
* 
*         USES   X - 0, 1, 5, 6.
*                A - 1. 
*                B - 1. 
* 
*         MACROS CALLSS.
  
  
 BTRAN    MACRO  A
  LOCAL B,C 
  
*         BUILD PARAMETER PACKET FOR *SSC* CALL TO TAF. 
  
  R= B1,1 
  R= X6,2 
  LX6 23-5
  MX5 1 
  LX5 13-59 
  BX6 X5+X6 
  SA6 B 
  BX5 X5-X5 
  PX6 X5,B1 
  MX0 -18 
  SA6 A6+B1 
  SA1 A 
  BX0 -X0*X1
  SX6 A1
  LX0 18
  BX6 X0+X6 
  SA6 A6+B1 
          CALLSS TRSI,B,R 
  SA1 B 
  MX6 -12 
  BX1 -X6*X1
  SX6 X1-1
  NZ X6,C 
  SA1 A1+B1 
  EQ C
 B VFD 24/0,12/0,6/2,4/0,2/0,11/0,1/0 
  VFD 12/2001B,48/0 
  VFD 24/0,18/0,18/0
 C SX6 X1 
 BTRAN ENDM 
 CALL     SPACE  4
***       BWAITINP - BUFFER-WAIT FOR TERMINAL INPUT.
* 
*         CALLING FORMAT -
* 
*         BWAITINP ADDR 
*                 WHERE      ADDR = ADDRESS OF BUFFER TO RETURN 
*                            TERMINAL INPUT.  SYSTEM DEFAULT TIME-OUT 
*                            WILL BE USED FOR THIS OPERATION. 
*         MACROS SYSTEM.
  
  
 BWAITINP MACRO  T
  SYSTEM  SCT,R,T,9 
  ENDM
          SPACE  4
***       CALL - GENERALIZED CALL ROUTINE.
* 
*         CALLING FORMAT -
*         CALL   NAME,LIST
*                WHERE   NAME = ROUTINE TO CALL.
*                        LIST = ADDRESS OF PARAMETER LIST.
* 
*         CALLS SYS=. 
 CALL     SPACE  4,8
 CALL     MACRO  N,L
  SA1 L 
  RJ  =X_N
  ENDM
 CALLRTN  SPACE  4,10 
***       CALLRTN - CALL TASK(S) WITH RETURN. 
* 
*         CALL FORMAT - 
*         CALLRTN LST 
*                WHERE -     LST= ADDRESS OF TASK NAME LIST IN FORMAT - 
*T LST    42/  TASK NAME,18/  0 
* 
*         THE LIST MUST BE TERMINATED BY A ZERO WORD. 
* 
*         CALLS  SYS=.
  
  
 CALLRTN  MACRO  L
  SYSTEM SCT,R,L,4
  ENDM
 CALLTRN  SPACE  4,10 
**        CALLTRN - CALL TRANSACTION. 
* 
*         CALLTRN  ADDR 
*                WHERE - ADDR = ADDRESS OF TRANSACTION NAME 
*                        IN THE FOLLOWING FORMAT. 
*T ADDR   42/TNAME,18/0 
*                WHERE - TNAME = NAME OF THE TRANSACTION UNIT.
* 
*         CALLS SYS=. 
  
          PURGMAC CALLTRN 
  
 CALLTRN  MACRO  ADDR 
  SYSTEM  SCT,R,ADDR,10 
 CALLTRN ENDM 
 CALLTSK  SPACE  4
***       CALLTSK - REQUEST SCHEDULING OF TASK(S).
* 
*         CALL FORMAT - 
*         CALLTSK LST,CES 
*                WHERE -     LST= ADDRESS OF TASK NAME LIST IN FORMAT - 
*T LST    42/  TASK NAME,18/  0 
* 
*                            CES= PRESENT IF TASK IS TO BE TERMINATED 
*                              AFTER REQUEST IS HONORED.
* 
*         CALLS  SYS=.
  
  
 CALLTSK  MACRO  L,C
  LOCAL A 
 A SET 3
  IFC NE,*C**,1 
 A SET 2
  SYSTEM SCT,R,L,A
  ENDM
 CEASE    SPACE  4
***       CEASE - TERMINATE TASK EXECUTION. 
* 
*         CALL FORMAT - 
*         CEASE  A
*                WHERE -     A PRESENT IF ABNORMAL CEASE. APPROPRIATE 
*                              DUMPS WILL BE PROVIDED. (OPTIONAL) 
*                              (=0 ASSUMED) 
* 
*         CALLS  SYS=.
  
  
 CEASE    MACRO  A
  R=  X1,A
  MX6 -18 
  BX6 -X6*X1
  SX2 3RSCT 
  LX2 59-17 
  BX6 X2+X6 
  MX2 1 
  LX2 40-59 
  BX6 X2+X6 
  RJ  =XSYS=
  ENDM
 CHKOFF   SPACE  4
***       CHKOFF - CLEAR TOTAL INTERLOCK FLAG.
* 
*         CALL FORMAT - 
*         CHKOFF
* 
*         CALLS SYS=. 
  
  
 CHKOFF   MACRO 
  SYSTEM  SCT,R,,8
  ENDM
 CHKON    SPACE  4
***       CHKON - SET TOTAL INTERLOCK FLAG. 
* 
*         CALL FORMAT - 
*         CHKON 
* 
*         CALLS SYS=. 
  
  
 CHKON    MACRO 
  SYSTEM  SCT,R,,7
  ENDM
 CMDUMP   SPACE  4
***       CMDUMP - DUMP CENTRAL MEMORY / DATA BUFFERS.
* 
*         CMDUMP WILL FORMAT A REQUEST TO TRANEX TO DUMP THE DESIRED
*         FIELD LENGTH, EXCHANGE PACKAGE, AND/OR D.M. BUFFERS. IF 
*         A GIVEN PARAMETER IS NEGATIVE, THE DEFAULT VALUE WILL BE
*         OBTAINED FROM THE PREVIOUS DSDUMP REQUEST (IF ONE WAS GIVEN)
*         OTHERWISE THE DEFAULT VALUE WILL BE OBTAINED FROM THE GENERAL 
*         TRANEX DEFAULT VALUES ESTABLISHED AT INITIALIZATION OR
*         CHANGED BY K-DISPLAY COMMANDS.
* 
*         CALL FORMAT - 
*         CMDUMP ADDR 
*                WHERE -     ADDR SPECIFIES THE FIRST WORD ADDRESS OF 
*                            AN ARGUMENT LIST IN THE FORMAT - 
*T ADDR   1/E,1/D,1/A,1/B,8/ ,18/     LWA,12/ ,18/     FWA
*T,ADDR+1 42/     QD,18/     OQ 
*T,ADDR+2 12/,18/     ADDRESS,26/,4/ NF 
*T,ADDR+N 24/     FILE NAME,36/ 
* 
*         FWA=   BEGINNING ADDRESS. 
*         LWA=   LAST WORD ADDRESS. 
*                =0, IMPLIES NO DUMP OF FIELD LENGTH. 
*         E=     EXCHANGE PACKAGE, LEGAL VALUES:  
*                =0, OPTION NOT DESIRED.
*                "0, SELECT OPTION. 
*         D=     DATA BASE FILE BUFFERS, LEGAL VALUES:  
*                =0, DUMP ONLY FILES SPECIFIED. 
*                "0, DUMP ALL DATA ASSOCIATED DATA MANAGER BUFFERS. 
*         A=     USE DEFAULT FOR E
*         B=     USE DEFAULT FOR D
*         OQ=    OUTPUT QUEUE, LEGAL VALUES:  
*                =0, DUMP TO BATCH PRINTER. 
*                =1, DUMP TO E/I 200. 
*                =2, DUMP TO USER PERMANENT FILE. 
*         QD=    QUEUE DESTINATION, LEGAL VALUES: 
*                IF PRINTER IS SPECIFIED IN PREVIOUS PARAMETER, 
*                PRINTER I.D. IS SPECIFIED IN NUMERIC CHARACTERS
*                RIGHT JUSTIFIED WITHIN WORD. 
*                IF E/I 200 IS SPECIFIED IN PREVIOUS PARAMETER, THE 
*                ACCOUNT NUMBER IS SPECIFIED IN DISPLAY CODED LEFT
*                JUSTIFIED CHARACTERS.  MAXIMUM LENGTH IS SEVEN 
*                CHARACTERS.
*                IF USER PERMANENT FILE IS SPECIFIED, THE DUMP FILE 
*                WILL BE PLACED AT THE END OF A PERMANENT FILE UNDER
*                THE USER NUMBER ASSOCIATED WITH THE DATA BASE OF THE 
*                TASK CAUSING THE DUMP. THE FILE NAME IS SPECIFIED IN 
*                LEFT JUSTIFIED DISPLAY CODED CHARACTERS. 
*         ADDRESS= USER CALL ADDRESS TO BE PLACED ON DUMP LISTING.
*         NF=    NUMBER OF FILE NAMES IN FOLLOWING LIST.
*         PERMISSABLE FILE NAME VALUES -
*                4 DISPLAY CHARACTERS LEFT JUSTIFIED. 
*                IF NONE ARE GIVEN, ALL FILES WILL BE DUMPED. 
* 
*         DEFAULT VALUES ARE SPECIFIED BY A NEGATIVE NUMBER 
* 
*         CALLS  SYS=.
  
  
 CMDUMP   MACRO  A
  SYSTEM CTI,R,A,4
  ENDM
 DSDUMP   SPACE  4
***       DSDUMP - DIRECT SUBSEQUENT DUMPS. 
* 
*                PRODUCT SET INTERFACE TO ALLOW THE APPLICATION PRO-
*         GRAMMER TO CHANGE ANY OF THE DEFAULT VALUES OF A CMDUMP 
*         REQUEST.  THE DSDUMP DOES NOT CAUSE A DUMP IN ITSELF, EXCEPT
*         WHEN THE SYSTEM DETECTS AN ERROR (I.E. ABORT). ANY DEFAULT
*         VALUES ON THE DSDUMP ARE SATISFIED FROM THE GENERAL DEFAULT 
*         VALUES. 
* 
*         CALL FORMAT - 
*         DSDUMP ADDR 
*                WHERE -     ADDR SPECIFIES THE FIRST WORD ADDRESS OF 
*                            AN ARGUMENT LIST IN THE FORMAT - 
*T ADDR   1/E,1/D,1/A,1/B,8/0,18/  LWA,12/,18/  FWA 
*T        42/     QD,18/     OQ 
* 
*         FWA=   BEGINNING ADDRESS. 
*         LWA=   LAST WORD ADDRESS. 
*                =0, IMPLIES NO DUMP OF FIELD LENGTH. 
*         E=     EXCHANGE PACKAGE, LEGAL VALUES:  
*                =0, OPTION NOT DESIRED.
*                "0, SELECT OPTION. 
*         D=     DATA BASE FILE BUFFERS, LEGAL VALUES:  
*                =0, DUMP ONLY FILES SPECIFIED. 
*                "0, DUMP ALL ASSOCIATED DATA MANAGER BUFFERS.
*         A=     USE DEFAULT FOR E
*         B=     USE DEFAULT FOR D
*         OQ=    OUTPUT QUEUE, LEGAL VALUES:  
*                =0, DUMP TO BATCH PRINTER. 
*                =1, DUMP TO E/I 200. 
*                =2, DUMP TO JOURNAL FILE.
*         QD=    QUEUE DESTINATION, LEGAL VALUES: 
*                IF PRINTER IS SPECIFIED IN PREVIOUS PARAMETER, 
*                PRINTER I.D. IS SPECIFIED IN NUMERIC CHARACTERS
*                RIGHT JUSTIFIED WITHIN WORD. 
*                IF E/I 200 IS SPECIFIED IN PREVIOUS PARAMETER, THE 
*                ACCOUNT NUMBER IS SPECIFIED IN DISPLAY CODED LEFT
*                JUSTIFIED CHARACTERS.  MAXIMUM LENGTH IS SEVEN 
*                CHARACTERS.
*                IF USER PERMANENT FILE IS SPECIFIED, THE DUMP FILE 
*                WILL BE PLACED AT THE END OF A PERMANENT FILE UNDER
*                THE USER NUMBER ASSOCIATED WITH THE DATA BASE OF THE 
*                TASK CAUSING THE DUMP. THE FILE NAME IS SPECIFIED IN 
*                LEFT JUSTIFIED DISPLAY CODED CHARACTERS. 
* 
*         DEFAULT VALUES ARE SPECIFIED BY A NEGATIVE NUMBER.
* 
*         CALLS  SYS=.
  
  
 DSDUMP   MACRO  A
  SYSTEM CTI,R,A,5
  ENDM
 FMSG     SPACE  4,20 
***       FMSG - FORMAT TERMINAL MESSAGE. 
*         *FMSG* FORMATS A TERMINAL MESSAGE USING THE DEFAULT FORMAT
*         EFFECTOR GIVEN BY MICRO *SYSPR*.
* 
*         CALL FORMAT 
*         FMSG   MESSAGE,CEASE,LAST,BLOCK,RECALL
* 
*                MESSAGE - MESSAGE TO SEND TO TERMINAL IN DISPLAY CODE. 
*                          THE MACRO PREFIXES MESSAGE WITH THE DEFAULT
*                          FORMAT GIVEN BY MICRO *SYSPR*. 
*                CEASE -   ANY CHARACTER CAUSES THE TASK TO CEASE AFTER 
*                          SEND REQUEST.
*                LAST -    ANY CHARACTER INDICATES THIS IS NOT LAST 
*                          OUTPUT BEFORE INPUT IS EXPECTED. 
*                BLOCK -   ANY CHARACTER INDICATES THAT CALLER WILL 
*                          SUPPLY BLOCK NUMBER FOR SEND IN APPLICATION
*                          BLOCK HEADER.
*                RECALL -  ANY CHARACTER INDICATES THAT SEND WILL BE
*                          DONE WITH RECALL.
  
  
          PURGMAC FMSG
 FMSG MACRO MESSAGE,CEASE,LAST,BLOCK,RECALL 
  LOCAL A,B,D,E,F,G,H,I 
 A SET 0
 B SET 0
 I SET 1
 D SET 0
 H SET 2
  IFC NE,*CEASE**,1 
 A SET 1
  IFC NE,*LAST**,2
 B SET 1
 H SET 1
  IFC NE,*BLOCK**,1 
 I SET 0
  IFC NE,*RECALL**,1
 D SET 1
  VFD 1/0,1/A,1/B,1/I,1/D,1/1,6/0,18/E,12/0,18/F
  CON 0 
  VFD 6/H,30/0,4/4,8/0,12/G 
  IFC NE,*RECALL**,1
  CON 0 
 E DATA C*"SYSPR"_MESSAGE*
 F EQU *-E
 G EQU F*10 
 FMSG ENDM
 GETABH   SPACE  4,20 
***       GETABH - GET APPLICATION CHARACTER TYPE (NETWORKS). 
* 
*         CALL FORMAT 
*         GETABH  ADDR
*                 WHERE - ADDR = ADDRESS OF SUPERVISORY 
*                                MESSAGE BLOCK. 
* 
*T ADDR   42/TERMINAL,18/0
*         42/0,18/STATUS
*         60/ABH
* 
*         TERMINAL = 1 - 7 CHARACTER TERMINAL NAME. 
*         STATUS = ADDRESS OF LOCATION TO RETURN LOGIN STATUS.
*         ABH = APLICATION BLOCK HEADER RETURNED
*               BY NETWORK ON LAST SEND.
* 
*         CALLS  SYS=.
  
  
 GETABH   MACRO  A
  SYSTEM  CTI,R,A,18
  ENDM
 ITL      SPACE  4,10 
***       ITL - INCREASE TIME LIMIT 
* 
*         CALL FORMAT 
*         ITL    ADDR 
*                WHERE ADDR CONTAINS THE NEW TIME LIMIT 
*                IN XJP TIME UNITS. 
* 
*         CALLS  SYS=.
  
  
 ITL      MACRO  A
  SYSTEM  CTI,R,A,11
  ENDM
 IIO      SPACE  4,10 
***       IIO - INCREASE I/O LIMIT
* 
*         CALL FORMAT 
*         IIO    ADDR 
*                WHERE ADDR CONTAINS THE NEW LIMIT
*                OF RA + 1 CALLS. 
* 
*         CALLS  SYS=.
  
  
 IIO      MACRO  A
  SYSTEM  CTI,R,A,12
  ENDM
 JOURNL   SPACE  4
***       JOURNL - ISSUE JOURNAL MESSAGE. 
* 
*         CALL FORMAT - 
*         JOURNL ADDR 
*                WHERE -     ADDR= ADDRESS OF ARGUMENT WORD IN FORMAT - 
*T ADDR   6/ ,18/  JOU,18/  NWD,18/  MSG
*                WHERE -     JOU= JOURNAL FILE NUMBER.
*                            NWD= LENGTH OF MESSAGE IN WORDS. 
*                            MSG= ADDRESS OF JOURNAL MESSAGE. 
* 
*         CALLS  SYS=.
  
  
 JOURNL   MACRO  A
  SYSTEM CTI,R,A,1
  ENDM
 KPOINT   SPACE  4,20 
***       KPOINT - ISSUE THE DESIGNATED TRANSACTION FACILITY
*         K-DISPLAY COMMAND.
* 
*         CALL FORMAT - 
*         KPOINT ADDR 
*                WHERE -     ADDR = THE ADDRESS OF A CHARACTER STRING 
*                                   CONTAINING THE K-DISPLAY COMMAND
*                                   TO BE EXECUTED.  THE CHARACTER
*                                   STRING IS TERMINATED WITH A *.* 
*                                   OR *)* EXCEPT FOR THE *MESSAGE* 
*                                   COMMAND WHERE THE MESSAGE TO BE 
*                                   SENT FOLLOWS A *.* OR *)* AND 
*                                   TERMINATES ON 6 BITS OF BINARY
*                                   ZEROS.  THE STRING IS LIMITED 
*                                   TO 8 CM WORDS.
* 
*         CALLS  SYS=.
  
  
 KPOINT   MACRO  A
  SYSTEM CTI,R,A,7
 KPOINT   ENDM
 LOADCB   SPACE  4,10 
***       LOADCB - READ INTO TASK INPUT DATA THAT OVERFLOWED FROM ONE 
*                COMMUNICATION BLOCK. 
* 
*         CALL FORMAT - 
*         LOADCB ADDR 
*                WHERE -     ADDR= ADDRESS OF ARGUMENT WORD IN FORMAT - 
*T  ADDR  1/R,11/  ,18/    LEN,12/   ,18/    BUF
* 
*         R      RELEASE EXTRA COMMUNICATION BLOCK(S) AFTER TRANSFER. 
*         LEN    MAXIMUM LENGTH OF DATA AREA. 
*         BUF    FWA OF AREA IN TASK TO TRANSFER DATA TO. 
* 
*         EXIT   (X6) = WORD COUNT OF DATA TRANSFERED TO TASK.
* 
*         CALL   SYS=.
  
  
 LOADCB   MACRO  A
  SYSTEM CTI,R,A,14 
  ENDM
 NEWTRAN  SPACE  4
***       NEWTRAN - START A NEW TRANSACTION CHAIN.
* 
*         CALL FORMAT - 
*         NEWTRAN LST 
*                WHERE -     LST= ADDRESS OF TASK NAME LIST IN FORMAT - 
*T LST    42/    TASK NAME,18/
* 
*         CALLS  SYS= 
  
  
 NEWTRAN  MACRO  A
  SYSTEM SCT,R,A,1
  ENDM
 LOGT     SPACE  4,10 
**        LOGT - LOG OUT OF TRANSACTION MODE. 
* 
*         LOGT   PARM 
* 
*                WHERE - IF *PARM* IS PRESENT TAF SHOULD NOT
*                INDICATE ON THE *CRF* THAT A NON-RECOVERABLE 
*                TRANSACTION HAS BEEN RUN.
* 
*         MACROS SYSTEM.
  
  
          PURGMAC  LOGT 
  
 LOGT MACRO A 
 .B IFC NE,/A// 
  SYSTEM CTI,R,1,13 
 .B ELSE
  SYSTEM CTI,R,,13
 .B ENDIF 
 LOGT ENDM
 RELSCB   SPACE  4,10 
***       RELSCB - RELEASE COMMUNICATION BLOCK(S) CONTAINING LONG 
*                TRANSACTION INPUT DATA.
* 
*         CALL FORMAT - 
*         RELSCB
* 
*         CALLS  SYS=.
  
  
 RELSCB   MACRO 
  SYSTEM CTI,R,,15
  ENDM
 SCALL    SPACE 4,15
**        SCALL - SUBROUTINE CALL.
* 
*         SCALL  ROUTINE,(PARA) 
* 
*         ENTRY  *ROUTINE* = SUBROUTINE NAME TO BE CALLED.
*                *(PARA)*  = LIST OF A VARIABLE NUMBER OF PARAMETER 
*                            ADDRESSES. 
* 
*         EXIT   (A1) = ADDRESS OF PARAMETER LIST.
* 
*         USES   A - 1, 6.
*                X - 1, 6.
* 
*         CALLS  *ROUTINE*. 
  
  
          PURGMAC SCALL 
  
 SCALL    MACRO  ROUTINE,(PARA) 
  LOCAL A,SCA,SC1 
 A SET 0
  IRP PARA
 .B IF REG,PARA 
  SX6 PARA
  SA6 SCA+A 
  RMT 
  VFD 42/0,18/0 
  RMT 
 .B ELSE
  RMT 
  VFD 42/0,18/PARA
  RMT 
 .B ENDIF 
 A SET A+1
  IRP 
  SA1 SCA 
  RJ =X_ROUTINE 
  EQ SC1
 SCA BSS 0
  HERE
  CON 0 
 SC1 BSS 0
 SCALL ENDM 
 SEND     SPACE  4
***       SEND - SEND MESSAGE TO TERMINAL.
* 
*         CALL FORMAT - 
*         SEND   ADDR 
*                WHERE -     ADDR=ADDRESS OF REQUEST ARGUMENTS IN FORM- 
*T ADDR   1/T,1/C,10/ ,18/  MSG,12/ ,18/  NWD 
*T        42/  TERMINAL NAME,18/
*                WHERE -     T= 1 IF SEND TO TERMINAL NAMED IN ADDR+1,
*                              ELSE SEND TO ORIGINATING TERMINAL. 
*                            C= 1 IF TASK IS TO BE TERMINATED AFTER 
*                              REQUEST IS HONORED.
*                            MSG= ADDRESS OF MESSAGE. 
*                            NWD= LENGTH OF MESSAGE IN WORDS. 
* 
*         CALLS  SYS=.
  
  
 SEND     MACRO  A
  SYSTEM CTI,R,A,0
  ENDM
 SETCHT   SPACE  4,15 
***       SETCHT - SET CHARACTER TYPE (NETWORKS). 
* 
*         CALL FORMAT 
*         SETCHT  ADDR
*                 WHERE - ADDR =  ADDRESS OF SUPERVISORY
*                                 MESSAGE BLOCK.
* 
*T ADDR   42/TERMINAL,18/ACT
*         42/0,18/STATUS
* 
*         TERMINAL = 1 - 7 CHARACTER TERMINAL NAME. 
*         ACT = APPLICATION CHARACTER TYPE. 
*         STATUS = ADDRESS OF TERMINAL LOGIN STATUS.
* 
*         CALLS  SYS=.
  
  
 SETCHT   MACRO  A
  SYSTEM  CTI,R,A,16
  ENDM
 SUBMT    SPACE  4,10 
***       SUBMT - SUBMIT BATCH JOB. 
* 
*         CALL FORMAT 
*         SUBMT  ADDR 
*                WHERE -     ADDR= ADDRESS OF BATCH JOB SET UP
*                            IN CONTROL WORD FORMAT.
*                            (SEE READCW IN KRONOS 2.1 REFERENCE
*                            MANUAL FOR DESCRIPTION OF THIS FORMAT) 
* 
*         CALLS  SYS=.
  
  
 SUBMT    MACRO  A
  SYSTEM CTI,R,A,10 
  ENDM
 SUBR     SPACE  4,10 
***       SUBR - SUBROUTINE TAG MACRO.
* 
*         SUBR IS USER TO DEFINE THE ENTRY/EXIT POINT TAGS FOR
*         SUBROUTINES ENTERED VIA A RETURN JUMP.
* 
*         SUBR   TAG
* 
*         WHERE  TAG = SUBROUTINE NAME. 
  
  
          PURGMAC SUBR
  
          MACRO  SUBR,A 
 A_X CON 0
 A EQU *-1
  ENDM
 SYSPR    SPACE  4,10 
***       SYSPR - SYSTEM PRE-PRINT. 
*                THE *SYSPR* MICRO GIVES THE PRE-PRINT CONTROL
*                (FORMAT EFFECTOR) FOR MESSAGES SENT TO TERMINALS.
  
  
 SYSPR    MICRO  1,,*.*      DEFAULT FORMAT EFFECTOR
 TARO     SPACE  4
***       TARO - TERMINAL ARGUMENT OPERATION. 
* 
*         CALL FORMAT:  
*         TARO   ADDR 
*                WHERE:      ADDR= ADDRESS OF ARGUMENTS IN FORM - 
*T ADDR   42/  TERMINAL NAME,18/ RETURN ADDRESS 
*T        30/  VALUE,30/  MASK
*                WHERE:      TERMINAL NAME IDENTIFIES TERMINAL TO BE
*                             OPERATED UPON. IF ZERO, ORIGINATING 
*                             TERMINAL IS ASSUMED.
*                            RETURN= LOCATION IN WHICH TO PLACE RESULT
*                             OF OPERATION (IN ADDITION TO TERMINAL 
*                             TABLE). ZERO IF NO RETURN DESIRED.
*                            VALUE= A VALUE TO BE USED TO ALTER 
*                             TERMINAL ARGUMENTS. 
*                            MASK= A 24 BIT MASK. 
* 
*         OPERATION:  
*         THE *USER ARGUMENT* AREA (24 BITS IN EACH TERMINAL TABLE
*         ENTRY) IS OPERATED UPON AS FOLLOWS: 
*         RETURN=USER ARG=(USER ARG.AND.MASK).XOR.VALUE 
* 
*         CALLS  SYS=.
  
  
 TARO     MACRO  A
  SYSTEM CTI,R,A,3
  ENDM
 TERMDEF  SPACE  4,20 
***       TERMDEF - DEFINE TERMINAL DEFINITION (NETWORKS).
* 
*         CALL FORMAT 
*         TERMDEF  ADDR 
*                  WHERE - ADDR = ADRESS OF SUPERVISORY 
*                                 MESSAGE BLOCK.
* 
*T   ADDR   42/TERMINAL,18/0
*    ADDR+1 42/0,18/STATUS
*    ADDR+2 8/CNTRL,2/0,8/DEF,43/ATTRIBUTES 
*    ADDR+N 60/ATTRIBUTES 
*         STATUS =  OF LOGIN STATUS.
*         CNTRL = PRIMARY FUNCTION CODE.
*         DEF = SECONDARY FUNCTION CODE.
*         ATTRIBUTES = HEXIDECIMAL ATTRIBUTES TO BE 
*                      ASSIGNED THE TERMINAL. 
* 
*         CALLS  SYS=.
  
  
 TERMDEF  MACRO  A
  SYSTEM  CTI,R,A,17
  ENDM
 TIMROLL  SPACE  4,10 
***       TIMROLL - CAUSE ROLLOUT OF TASK FOR A SPECIFIED TIME PERIOD.
* 
*         CALL FORMAT - 
*         TIMROLL  ADDR 
*                WHERE -     ADDR= ADDRESS OF WORD CONTAINING ROLLOUT 
*                            TIME IN SECONDS (RIGHT JUSTIFIED). 
* 
*         CALLS  SYS=.
  
  
 TIMROLL  MACRO  A
  SYSTEM SCT,R,A,6
  ENDM
 TPSTAT   SPACE  4,15 
***       TPSTAT   - DETERMINE ACTIVE TELE-PROCESSOR IDENTITY.
* 
*         CALL FORMAT - 
*         TPSTAT    ADDR
*                   WHERE - ADDR = ADDRESS TO RETURN *TPSTAT*.
*                            (ADDR) = 0 - IF *COMKTLX* ACTIVE.
*                            (ZDDR) = 1 - IF *COMKNWC* ACTIVE.
* 
*         MACROS SYSTEM.
  
  
 TPSTAT   MACRO  A
  SYSTEM  CTI,R,A,20
  ENDM
 TRANCHK  SPACE  4
***       TRANCHK - CHECK FOR TRANSACTION IN SYSTEM.
* 
*         CALL FORMAT 
*         TRANCHK ADDR
*                WHERE -     ADDR= ADDRESS OF ARGUMENT WORD IN FORMAT - 
*T ADDR   18/  ,24/   SEQ NUMBER,18/ RETURN ADDRESS 
*                WHERE -     SEQ NUMBER IDENTIFIES THE TRANSACTION
*                             SEQUENCE NUMBER TO CHECK FOR. 
*                            RETURN ADDRESS= LOCATION TO SET TO ZERO
*                             IF TRANSACTION NOT IN SYSTEM. 
* 
*         CALLS  SYS= 
  
  
 TRANCHK  MACRO  A
  SYSTEM CTI,R,A,2
  ENDM
 TRXCOM   SPACE  4
***       TRXCOM - DEFINE TRANEX COMMUNICATION SYMBOLS. 
* 
*         CALL FORMAT:  
*         TRXCOM B1 
*                WHERE:      B1 PRESENT INDICATES TO DEFINE B1=1. 
* 
*         DEFINITIONS PROVIDED: 
*                COMC        FWA OF COMMUNICATION BLOCK.
*                SEQC        ADDRESS OF WORD CONTAINING TRANSACTION 
*                            SEQUENCE NUMBER. 
*                TERC        ADDRESS OF WORD CONTAINING TERMINAL NAME.
*                MSGC        FWA OF INPUT MESSAGE.
*                TIMC        ADDRESS OF WORD CONTAINING TIME, DATE. 
*                UNDC        FWA OF UNDEFINED AREA. 
*                COMCL       LENGTH OF COMMUNICATION BLOCK. 
  
  
 TRXCOM   MACRO  A
  IFC EQ,$A$B1$,1 
 B1=1 EQU 1 
 COMC EQU 111B
 SEQC EQU 111B
 TERC EQU 112B
 MSGC EQU 113B
 UNDC EQU 204B
 TIMC EQU 215B
 COMCL EQU 69D
 TLXTP    EQU    0           FLAG FOR *COMKTLX* TELE-PROCESSOR ACTIVE 
 NAMTP    EQU    1           FLAG FOR *COMKNWC* TELE-PROCESSOR ACTIVE 
  ENDM
  
  
 TSIM     SPACE  4
***       TSIM - TERMINAL STATUS AND INFORMATION. 
* 
*         CALL FORMAT:  
*         TSIM   ADDR 
*                WHERE:      ADDR= ADDRESS OF ARGUMENTS IN FORM:  
*T ADDR   6/ ,6/ CODE,18/ LIST ADDRESS,12/ LIST LENG,18/ RETURN ADDRESS 
*T        60/  MASK 
*T        60/  CRIT 
*         WHERE: CODE= 0 IF DATA BASE NAME FIELD IS TO BE SEARCHED. 
*                    = 1 IF USER ARGUMENT FIELD IS TO BE SEARCHED.
*                    = 2 IF COMMUNICATION LINE FIELD IS TO BE SEARCHED. 
*                    = 3 IF TERMINAL NAME FIELD IS TO BE SEARHED. 
*                MASK= A VALUE TAKEN AS A BINARY MASK.
*                CRIT= CRITERION VALUE FOR SEARCH.
*                RETURN ADDRESS= ADDRESS IN WHICH TO PLACE NUMBER OF
*                  ENTRIES FOUND. 
*                LIST ADDRESS= FWA OF LIST OF RETURNED TERMINAL 
*                  ENTRIES.  IF ZERO, NO LIST IS RETURNED, BUT THE
*                  NUMBER OF FOUND ENTRIES WILL BE RETURNED AS ABOVE. 
*                LIST LENG= NUMBER OF WORDS THAT THE LIST CAN HOLD. 
* 
*         OPERATION:  
*         THE FIELD SPECIFIED BY *CODE* IS EXAMINED IN EACH TERMINAL
*         TABLE ENTRY BY TAKING THE LOGICAL PRODUCT OF THE FIELD AND
*         *MASK* AND THEN TAKING THE LOGICAL DIFFERENCE OF THIS PRODUCT 
*         AND *CRIT*. IF THIS RESULT IS ZERO, THE TERMINAL ENTRY IS 
*         PLACED INTO *LIST* AND THE NUMBER OF FOUND ENTRIES IS 
*         INCREMENTED.
* 
*         CALLS  SYS=.
  
  
 TSIM     MACRO  A
  SYSTEM CTI,R,A,6
  ENDM
 WAIT     SPACE  4,10 
***       WAIT - TASK WAIT REQUEST. 
* 
*         WAIT   ADDR 
* 
*         ENTRY  (ADDR) = RIGHT JUSTIFIED TIME VALUE IN 
*                SECONDS OF REAL TIME BEFORE EXECUTION
*                IS TO BE RESUMED.
* 
*         MACROS SYSTEM.
  
  
          PURGMAC WAIT
  
 WAIT     MACRO  T
  SYSTEM SCT,R,T,6
  ENDM
 WAITINP  SPACE  4
***       WAITINP - WAIT FOR TERMINAL INPUT.
* 
*         CALLING FORMAT -
* 
*         WAITINP ADDR
*                WHERE       ADDR = RIGHT JUSTIFIED TIME VALUE IN 
*                            SECONDS OF DELAY BEFORE TIMING OUT 
*                            TASK AND ROLLING IT IN.
* 
*         CALLS SYS=. 
  
  
 WAITINP  MACRO  T
  SYSTEM SCT,R,T,5
  ENDM
  
          ENDX
