IDENT TARO
ENTRY TARO
SYSCOM B1
TITLE TARO - TERMINAL ARGUMENT OPERATIONS.
*COMMENT TARO - TERMINAL ARGUMENT OPERATIONS.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
SPACE 4
***** TARO - TERMINAL ARGUMENT OPERATIONS.
*
* J. C. BOHNHOFF. 72/08/31.
* W. E. MARTIN. 78/09/30.
SPACE 4
* COMMON TEXTS.
*CALL COMCMAC
*CALL COMKMAC
*CALL COMSPRD
SPACE 4,45
*** TARO - TERMINAL ARGUMENT OPERATIONS.
*
* ENTRY FORMAT -
*
* FORTRAN EXTENDED -
*
* CALL TARO ( VALUE, MASK, TERM, RETURN )
*
* COBOL -
*
* ENTER TARO USING VALUE, MASK, TERM, RETURN.
*
* WHERE - (VALUE) = A 24 BIT VALUE TO BE USED TO ALTER TERMINAL
* USER ARGUMENT AREA.
*
* MASK - A VALUE TAKEN AS A BINARY MASK - ONLY THE
* LOWEST 24 BITS ARE USED.
*
* TERM - THE NAME OF THE TERMINAL FOR WHICH THE
* OPERATION IS TO BE DONE. IF ABSENT OR ZERO, IT IS
* IS ASSUMNED THE TERMINAL THAT ORIGINED THE CALLING
* TRANSACTION, AND THE NAME MAY BE 1 - 7 CHARACTERS,
* LEFT JUSTIFIED BINARY ZERO FILLED, OR LEFT-JUSTIFIED
* BLANK FILLED.
*
* RETURN - LOCATION IN WHICH TO PLACE THE RESULTANT
* USER ARGUMENT BITS. THIS VALUE IS ALSO RETURNED
* AS THE VALUE OF A FORTRAN FUNCTION. (OPTIONAL).
*
* NOTES -
*
* 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.
*
* SEE *TAF* LISTING FOR FORMAT OF TERMINAL-TABLE ENTRIES.
*
* USES A - 1, 2, 3, 5, 6, 7.
* X - ALL.
* B - 1.
* CALLS ZFN.
*
* MACROS TARO.
VFD 42/0LTARO,18/TARO
TAR3 SA1 TARB RESTORE (A0)
SA0 X1+
TARO SUBR ENTRY/EXIT
SX6 A0 SAVE (A0)
SA2 X1 READ VALUE
SA6 TARB
SB1 1
SA3 A1+B1 READ MASK ADDRESS
BX5 X5-X5 ASSUME NO RETURN
SA4 A1+2 READ TERMINAL NAME ADDRESS
MX0 -24
SA3 X3 READ MASK
ZR X4,TAR1 IF NO TERMINAL NAME OR RETURN ADDRESS
SA5 A4+1 RETURN ADDRESS
SA4 X4 READ TERMINAL NAME
UX6 X4
NZ X6,TAR1 IF NOT DEFAULT ORIGINATING TERMINAL
BX4 X4-X4
TAR1 MX6 42
BX2 -X0*X2 (X2) = VALUE
BX4 X6*X4 (X4) = TERMINAL NAME
LX2 30 POSITION VALUE
BX5 -X6*X5 (X5) = RETURN
BX3 -X0*X3 (X3) = MASK
BX7 X2+X3 (X7) = VALUE AND MASK
BX1 X4
SA7 TARA+1
ZR X4,TAR2 IF ORIGINATING TERMINAL
RJ ZFN ZERO FILL NAME
TAR2 IX6 X1+X5 (X6) = TERMINAL NAME AND RETURN ADDRESS
SA6 TARA STORE ARGUMENT WORD
TARO A6 ISSUE REQUEST TO EXECUTIVE
ZR X5,TAR3 IF NO RETURN VALUES DESIRED
SA1 X5 READ RETURN VALUE
BX6 X1 (X6) = FUNCTION RETURN
EQ TAR3 RESTORE (A0) AND RETURN
TARA CON 0 STORAGE FOR *TARO* ARGUMENTS
CON 0
TARB CON 0 STORAGE FOR (A0)
SPACE 4
* COMMON DECK.
*CALL COMKZFN
SPACE 4
END