@TITLE MTL22(7,11)
@COL 1S-2R-3R-4R-5R-6F
@FLOW 1-2-3-4-5-6
@BOX 1.0
SECTION 22
BUILT IN PROCEDURE HANDLER
@BOX 2.0
EXTERNAL ENVIRONMENT
MODULE HEADING
@BOX 3.0
TYPES
@BOX 4.0
LITERALS AND
VARIABLES [MTL22/1]
@BOX 5.0
INTERFACE PROCEDURES
B.IN.ENTER [MTL22.1]
@BOX 6.0
END
@BOX 1.1
::MTL22
@BOX 2.1
P.SPEC TL.INSERT($IN);
MODULE(B.IN.NAMES, B.IN.NAMES.Z, B.IN.SPEC, B.IN.SPEC.Z,
       B.IN.NAMES.I, B.IN.SPEC.I, B.IN.TBL.Z, B.IN.ENTER);
@BOX 3.1
:: NONE
@BOX 4.1
*GLOBAL 2;
#MTL22/1
*GLOBAL 0;
@BOX 5.1
P.SPEC B.IN.ENTER($IN);
#MTL22.1
@BOX 6.1
*END
@END
@TITLE MTL22/1(3,11)
@COL 1S-2R-3R
@BOX 1.0
BUILT IN PROCEDURE SPECIFICATION TABLES
@BOX 2.0
TABLE OF NAMES
@BOX 3.0
TABLE OF PROCEDURE SPECIFICATIONS
@BOX 1.1
::MTL22/1
@BOX 2.1
LITERAL B.IN.TBL.Z = 4;
DATAVEC B.IN.NAMES($LO8)
"P1"
"P2"
"P3"
END;
LITERAL/$LO16 I0 = 0, I1 = I0 + 2, I2 = I1 + 2, I3 = I2 + 2,
              B.IN.NAMES.Z = I3;
DATAVEC B.IN.NAMES.I($LO16)
I0 I1 I2 I3
END;
@BOX 3.1
DATAVEC B.IN.SPEC($LO8)
%00 %00
%01 %44 %44
%02 %44 %83 %83
END;
LITERAL/$LO16 J0 = 0, J1 = J0 + 2, J2 = J1 + 3, J3 = J2 + 4,
                B.IN.SPEC.Z = J3;
DATAVEC B.IN.SPEC.I($LO16)
J0 J1 J2 J3
END;
@END
@TITLE MTL22.1(3,11)
@COL 1S-2R-3F
@FLOW 1-2-3
@BOX 1.0
B.IN.ENTER(BUILT.IN.PROC.NO)
@BOX 2.0
GENERATE CODE FOR BUILT IN FUNCTION
@BOX 3.0
END
@BOX 1.1
PROC B.IN.ENTER(N);
@BOX 2.1
ALTERNATIVE N FROM
   CAPTION(%"CALL OF P1$L");
   CAPTION(%"CALL OF P2$L");
   CAPTION(%"CALL OF P3$L");
END;
@BOX 3.1
END;
@END

