+PROCEDURE SAVELEVEL(SAVEWORMS:BYTE);
+BEGIN
+ BLOCKWRITE(FF,L[II].PEAS,1);
+ BLOCKWRITE(FF,L[II].DELAY,1);
+ BLOCKWRITE(FF,L[II].GROWTH,1);
+ BLOCKWRITE(FF,L[II].BSIZE,1);
+ BLOCKWRITE(FF,L[II].SPRSIZE,1);
+ BLOCKWRITE(FF,L[II].SPRITE,L[II].SPRSIZE);
+ BLOCKWRITE(FF,L[II].NRBALLS,1);
+ BLOCKWRITE(FF,L[II].BALLS,L[II].NRBALLS*3);
+ BLOCKWRITE(FF,L[II].W[1].D,3*SAVEWORMS); {D,X,Y}
+ BLOCKWRITE(FF,L[II].FIELDX,2); {FIELDX,FIELDY}
+ FOR I:=1TO L[II].NROBJ DO BEGIN
+ IF L[II].OBJ[I].TYP>0THEN BEGIN
+ BLOCKWRITE(FF,L[II].OBJ[I].TYP,4);
+ IF(L[II].OBJ[I].TYP=3)AND(L[II].OBJ[I].Y2+L[II].OBJ[I].Y1=255)THEN BEGIN
+ I4:=MAX(57,L[II].FIELDY)-L[II].OBJ[I].Y1; BLOCKWRITE(FF,I4,1);
+ END {OFFSCREEN} ELSE BLOCKWRITE(FF,L[II].OBJ[I].Y2,1);
+ END; {VALID}
+ END; {OBJS}
+ I:=0; BLOCKWRITE(FF,I,1); {LVL END}
+END; {COMMONSAVELEVEL}