49000 #include "rundecs.h" 49010 (* COPYRIGHT 1983 C.H.LINDSEY, UNIVERSITY OF MANCHESTER *) 49020 (**) 49030 (**) 49040 PROCEDURE SLCMN(STOWEDVAL: OBJECTP; INDEX, SLICDEX: INTEGER); EXTERN; 49050 (**) 49060 (**) 49070 FUNCTION SLICEN(INDEX: BOUNDSRANGE; NOROWS: INTEGER): ASNAKED; 49080 (*PSLICEN*) 49090 VAR TEMP: NAKEGER; 49100 OFFS, I: INTEGER; 49110 BEGIN 49120 WITH TEMP DO WITH NAK DO 49130 BEGIN 49140 (*+11() ASNAK := 0; ()+11*) 49150 STOWEDVAL := ASPTR(GETSTKTOP(SZADDR, (NOROWS-1)*SZINT)); 49160 WITH STOWEDVAL^ DO 49170 BEGIN 49180 OFFS := -LBADJ; 49190 FOR I := 0 TO NOROWS-1 DO WITH DESCVEC[I] DO 49200 BEGIN 49210 IF (INDEXUI) THEN SLCMN(STOWEDVAL, INDEX, I) 49220 ELSE OFFS := OFFS+DI*INDEX; 49230 INDEX := GETSTKTOP(SZINT, I*SZINT); 49240 END 49250 END; 49260 POSITION := OFFS; 49270 SLICEN := ASNAK; 49280 END; 49290 END; 49300 (**) 49310 (**) 49320 (*-02() BEGIN END ; ()-02*) 49330 (*+01() 49340 BEGIN (*OF MAIN PROGRAM*) 49350 END (*OF EVERYTHING*). 49360 ()+01*)