44100 #include "rundecs.h"
44110     (*  COPYRIGHT 1983 C.H.LINDSEY, UNIVERSITY OF MANCHESTER  *)
44120 (**)
44130 (**)
44140 FUNCTION ROUTNA (PROC:PROCPOINT;ENV:IPOINT):OBJECTP;
44150   VAR NEWRT:OBJECTP;
44160   BEGIN
44170   ENEW(NEWRT, ROUTINESIZE);
44180   WITH NEWRT^ DO
44190     BEGIN
44200 (*-02() FIRSTWORD := SORTSHIFT * ORD(ROUTINE); ()-02*)
44210 (*+02() PCOUNT:=0; SORT:=ROUTINE; ()+02*)
44220     PROCBL:=PROC;
44230     ENVCHAIN:=ENV;
44240     SETMYSTATIC(ENV);
44250     OSCOPE:=SCOPE+PROC^.SCOFFSET;
44260     END;
44270   ROUTNA:= NEWRT
44280   END;
44290 (**)
44300 (**)
44310 FUNCTION ROUTN (PROC: PROCPOINT): OBJECTP;
44320   (* PLOADRT: CONSTRUCTS ROUTINE VALUE FOR GIVEN PROCBL;
44330      RETURNS POINTER TO NEW ROUTINEBLOCK; KK 13.5.1977 *)
44340   VAR I: INTEGER;
44350   BEGIN
44360     FOR I := LEVEL-1 DOWNTO PROC^.SCOPELEVEL DO
44370       SETMYSTATIC( (*-05()STATIC()-05*)(*+05()A68STATIC()+05*) ( STATIC( ME ) ) );
44380   ROUTN := ROUTNA(PROC,STATIC(ME));
44390   END;
44400   (**)
44410   (**)
44420 (*-02()
44430   BEGIN
44440   END ;
44450 ()-02*)
44460 (*+01()
44470 BEGIN (*OF MAIN PROGRAM*)
44480 END (*OF EVERYTHING*).
44490 ()+01*)
