44900 #include "rundecs.h" 44910 (* COPYRIGHT 1983 C.H.LINDSEY, UNIVERSITY OF MANCHESTER *) 44920 (**) 44930 (**) 44940 FUNCTION GETMULT(NEWMULT: OBJECTP): OBJECTP; EXTERN; 44950 PROCEDURE GARBAGE (ANOBJECT: OBJECTP); EXTERN ; 44960 FUNCTION COPYDESC(ORIGINAL: OBJECTP; NEWSORT: STRUCTYPE): OBJECTP; EXTERN ; 44970 PROCEDURE COPYSLICE(ASLICE: OBJECTP); EXTERN ; 44980 (**) 44990 (**) 45000 FUNCTION ROWM(AMULT: OBJECTP; ROWCOUNT: INTEGER): OBJECTP; 45010 (*PROWMULT*) 45020 VAR NEWMULT, OLDESC, NEWDESC: OBJECTP; 45030 I: INTEGER; OLDROWS: 0..7; 45040 BEGIN 45050 WITH AMULT^ DO 45060 BEGIN 45070 IF BPTR<>NIL THEN (*A SLICE*) 45080 COPYSLICE(AMULT); 45090 OLDROWS := ROWS; 45100 ROWS := ROWCOUNT-1; 45110 NEWMULT := COPYDESC(AMULT, MULT); 45120 NEWMULT^.PVALUE := AMULT; 45130 NEWMULT := GETMULT(NEWMULT); 45140 ROWS := OLDROWS; 45150 WITH NEWMULT^ DO 45160 BEGIN 45170 ROWS := ROWCOUNT-1; 45180 FOR I := OLDROWS+1 TO ROWS DO WITH DESCVEC[I] DO 45190 BEGIN LI := 1; UI := 1; DI := PVALUE^.D0 END; 45200 LBADJ := LBADJ+DESCVEC[ROWS].DI*(ROWS-OLDROWS); 45210 FPINC(PVALUE^); 45220 END; 45230 IF FTST THEN GARBAGE(AMULT) 45240 END; 45250 ROWM := NEWMULT; 45260 END; 45270 (**) 45280 (**) 45290 (*-02() BEGIN END ; ()-02*) 45300 (*+01() 45310 BEGIN (*OF MAIN PROGRAM*) 45320 END (*OF EVERYTHING*). 45330 ()+01*)