! %EXTERNALROUTINESPEC ECTM ENTER(%STRING(31) NAME) %EXTERNALROUTINESPEC ECTM RESULT(%INTEGER RC) ! %EXTERNALINTEGERFNSPEC ECTM PPI(%INTEGER DR0, DR1, ID) %EXTERNALSTRINGFNSPEC ECTM NEXT TEMP ! %CONSTINTEGER BYTE DESC = X'18000000' ! %EXTERNALINTEGERFN CTM WORK AREA( %C %INTEGER NOT RANGE DR0, NOT RANGE DR1, %C PP DR0, PP DR1, DESC DR0, DESC DR1) %INTEGER RC ! %SYSTEMROUTINESPEC OUTFILE(%STRING(31) FILE, %C %INTEGER SIZE, HOLE, PROT, %INTEGERNAME CONAD, FLAG) %SYSTEMROUTINESPEC FILL(%INTEGER LENGTH, FROM, FILLER) ! %INTEGER SIZE, MAX, FLAG, CONAD %STRING(31) NAME ! ECTM ENTER("WORK AREA") SIZE = ECTM PPI(PP DR0, PP DR1, 1) MAX = ECTM PPI(PP DR0, PP DR1, 1) %IF MAX = 0 %THEN MAX = SIZE NAME = ECTM NEXT TEMP OUTFILE(NAME, SIZE+32, MAX, 0, CONAD, FLAG) %IF FLAG > 0 %THEN RC = FLAG %AND -> RETURN FILL(SIZE,CONAD+32,X'00000081') INTEGER(CONAD) = SIZE + 32 ! INTEGER(DESC DR1) = BYTE DESC ! SIZE INTEGER(DESC DR1 + 4) = CONAD + 32 RC = 0 %AND -> RETURN ! RETURN: ECTM RESULT(RC) %RESULT = RC %END ! %EXTERNALINTEGERFN CTM SET VS ATT(%LONGINTEGER DESC, %C %INTEGER PP DR0, PP DR1) %INTEGER RC ! ECTM ENTER("SET VS ATT") RC = 0 %AND -> RETURN ! RETURN: ECTM RESULT(RC) %RESULT = RC %END ! %ENDOFFILE