pTAL Reference Manual (G06.24+, H06.09+, J06.03+)

You cannot use a GOTO statement to branch to a procedure entry-point identifier.
To obtain the address of a procedure entry-point identifier, preface the identifier with @.
You can specify FORWARD or EXTERNAL procedure entry-point declarations, which look like
FORWARD procedure declarations and EXTERNAL procedure declarations.
Example 209 Procedure Entry-Point Identifiers
INT to_this := 314; ! Declare global data
PROC add_3 (g2);
INT .g2;
BEGIN
ENTRY add_2; ! Declare entry-point identifiers
ENTRY add_1;
INT m2 := 1;
g2 := g2 + m2;
add_2: ! Location of entry-point identifier add_2
g2 := g2 + m2;
add_1: ! Location of entry-point identifier add_1
g2 := g2 + m2;
END;
PROC mymain MAIN; ! Main procedure
BEGIN
CALL add_1 (to_this); ! Call entry point add_1
END;
Example 210 FORWARD Declarations for Entry Points
INT to_this := 314;
PROC add_1 (g2); ! FORWARD entry-point identifier
INT .g2; ! declaration
FORWARD;
PROC add_2 (g2); ! FORWARD entry-point identifier
INT .g2; ! declaration
FORWARD;
PROC add_3 (g2); ! FORWARD procedure declaration
INT .g2;
FORWARD;
PROC mymain MAIN; ! Main procedure declaration
BEGIN
CALL add_1 (to_this); ! Call entry-point identifier
END;
PROC add_3 (g2); ! Body for FORWARD procedure
INT .g2;
BEGIN
ENTRY add_2; ! Declare entry-point identifiers
ENTRY add_1;
INT m2 := 1;
g2 := g2 + m2;
add_2: ! Location of entry-point identifier
g2 := g2 + m2; ! add_2
add_1: ! Location of entry-point identifier
g2 := g2 + m2; ! add_1
END;
Entry-Point Declarations 261