IDENT CALLRTN ENTRY CALLRTN SYSCOM B1 CALLRTN TITLE CALLRTN - CALL TASK(S) WITH RETURN. *COMMENT CALLRTN - CALL TASK(S) WITH RETURN. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. CALLRTN SPACE 4,10 ***** CALLRTN - CALL TASK(S) WITH RETURN. * * W. E. MARTIN. 79/03/06. * * CALLRTN IS AN INTERFACE ROUTINE FOR COBOL AND FORTRAN * TASKS. IT ALLOWS THEM TO CALL TASK(S) WITH RETURN. SPACE 4,20 *** COBOL/FORTRAN CALL FORMAT. * * COBOL - * * ENTER CALLRTN USING TASK1,TASK2,...,TASKN. * * FORTRAN EXTENDED - * * CALL CALLRTN (TASK1,TASK2,...,TASKN). * * WHERE - TASKI = PARAMETER WHOSE VALUE IS A 1 TO 7 CHARACTER * TASK NAME. TASKI MUST BE LEFT JUSTIFIED, WITH * BINARY-ZERO OR BLANK-FILL. * * NOTE - IF MORE THAN FIVE (5) TASK NAMES ARE ENCOUNTERED, * THEN THE TASK WILL BE ABORTED WITH A PARAMETER LIST * STRUCTURE ERROR. SPACE 4 * COMMON TEXTS. *CALL COMKMAC *CALL COMSPRD SPACE 4,25 ** CALLRTN - CALL TASK(S) WITH RETURN. * * ENTRY (A1) = ADDRESS OF PARAMETER LIST. * (X1) = 42/,18/ADDRESS OF FIRST PARAMETER. * * EXIT (A0) SAME AS ON ENTRY. * * USES A - 1, 2, 5, 6. * X - 0, 1, 2, 5, 6. * B - 1, 7. * * CALLS ZFN. * * MACROS ARGERR, CALLRTN. * * NOTES IF MORE THAN FIVE (5) TASK NAMES ARE ENCOUNTERED, * THEN THE TASK WILL BE ABORTED WITH A PARAMETER * LIST STRUCTURE ERROR. * (A0) MUST BE THE SAME ON EXIT AS UPON ENTRY. VFD 42/0LCALLRTN,18/CALLRTN CALLRTN SUBR ENTRY/EXIT SA2 X1+ READ TASK NAME SB1 1 ZR X1,CAL3 IF CALLED WITH NULL LIST BX1 X2 RJ ZFN ZERO FILL NAME BX6 X1 SA5 A1+B1 SA6 CALA STORE TASK NAME ZR X5,CAL2 IF NO TASK LIST SB7 4 SET TASK LIST LIMIT CAL1 SA2 X5+ READ TASK NAME SA5 A5+B1 READ NEXT ADDRESS BX1 X2 STORE TASK NAME ZR X2,CAL2 IF END OF PARAMETER LIST RJ ZFN ZERO FILL NAME SB7 B7-B1 DECREMENT LIST ENTRY COUNT BX6 X1 SA6 A6+1 LT B7,CAL3 IF LIST OVERFLOW - ABORT TASK NZ X5,CAL1 IF PARAMETER LIST NOT EXHAUSTED CAL2 BX6 X6-X6 TERMINATE LIST SA6 A6+B1 CALLRTN CALA ENTER REQUEST EQ CALLRTNX RETURN * PROCESS ARGUMENT ERROR BY ABORTING PROGRAM. CAL3 SA1 CALLRTN READ CALLING ADDRESS MX0 30 LX1 29-59 SA2 X1-1 BX6 -X0*X2 SA6 CALA ARGERR A6 EXIT TO EXECUTIVE CALA BSSZ 6 TASK NAME LIST SPACE 4 * COMMON DECK. *CALL COMKZFN SPACE 4 END