+PROCEDURE MAINTITLE;
+BEGIN
+ SETTEXT; WINDOW(1,1,80,25); {TEXTBACKGROUND(0);} CLRSCR;
+ TEXTCOLOR(1); WRITE('���������������������������<');
+ TEXTCOLOR(14); WRITE(' WormEdit � ');
+ TEXTCOLOR(15); WRITE(' by SHIAR ');
+ TEXTCOLOR(1); WRITE('>�����������������������������');
+ WINDOW(41,2,41,25); TEXTCOLOR(7); TEXTBACKGROUND(0); WRITE(CC('�',23));
+ WINDOW(1,25,80,25); TEXTBACKGROUND(1); CLRSCR;
+ GOTOXY(75,1); TEXTCOLOR(0); WRITE('v0.93'); TEXTBACKGROUND(0);
+END; {MAINTITLE}
+
+PROCEDURE CIRCLE(X,Y,Z,COL:BYTE);
+VAR XX,YY,ZZ:INTEGER;
+BEGIN
+ XX:=-1; YY:=Z; ZZ:=-Z;
+ REPEAT
+ INC(XX);
+ LINE(X-XX,Y+YY,X+XX,Y+YY,COL,VGA);
+ LINE(X-XX,Y-YY,X+XX,Y-YY,COL,VGA);
+ LINE(X-YY,Y+XX,X+YY,Y+XX,COL,VGA);
+ LINE(X-YY,Y-XX,X+YY,Y-XX,COL,VGA);
+ IF ZZ>=0THEN BEGIN ZZ:=ZZ-(YY SHL 1)+2; DEC(YY); END;
+ ZZ:=ZZ+(XX SHL 1)+3;
+ UNTIL XX>=YY;
+END; {CIRCLE}
+
+PROCEDURE DISPMAP(OBJ:INTEGER);
+VAR OBJ2:INTEGER;
+PROCEDURE DISPOBJ(OBJ:INTEGER;COL:BYTE);
+VAR Y:BYTE;
+BEGIN
+ CASE L[II].OBJ[OBJ].TYP OF
+ 1:LINE(L[II].OBJ[OBJ].X1,L[II].OBJ[OBJ].Y1,L[II].OBJ[OBJ].X2,L[II].OBJ[OBJ].Y2,COL,VGA);
+ 2:BEGIN
+ LINE(L[II].OBJ[OBJ].X1,L[II].OBJ[OBJ].Y1,L[II].OBJ[OBJ].X2,L[II].OBJ[OBJ].Y2,COL,VGA);
+ LINE(L[II].OBJ[OBJ].X1+1,L[II].OBJ[OBJ].Y1,L[II].OBJ[OBJ].X2+1,L[II].OBJ[OBJ].Y2,COL,VGA);
+ LINE(L[II].OBJ[OBJ].X1+1,L[II].OBJ[OBJ].Y1+1,L[II].OBJ[OBJ].X2+1,L[II].OBJ[OBJ].Y2+1,COL,VGA);
+ LINE(L[II].OBJ[OBJ].X1,L[II].OBJ[OBJ].Y1+1,L[II].OBJ[OBJ].X2,L[II].OBJ[OBJ].Y2+1,COL,VGA);
+ END; {FATLINE}
+ 3:BEGIN
+ FOR Y:=L[II].OBJ[OBJ].Y1 TO L[II].OBJ[OBJ].Y1+L[II].OBJ[OBJ].Y2-1DO
+ LINE(L[II].OBJ[OBJ].X1,MIN(Y,191),L[II].OBJ[OBJ].X2,MIN(Y,191),COL,VGA);
+ END; {BOX}
+ 4:CIRCLE(L[II].OBJ[OBJ].X1,L[II].OBJ[OBJ].Y1,L[II].OBJ[OBJ].X2,COL);
+ END; {OBJECT TYPE}
+END; {DISPOBJ}
+BEGIN
+ SETMCGA;
+ LINE(0,56,255,56,8,VGA); LINE(0,113,255,113,8,VGA);
+ LINE(0,170,255,170,8,VGA); {LINE(0,227,255,227,8,VGA);}
+ LINE(127,0,127,170,8,VGA); LINE(255,0,255,170,8,VGA);
+ LINE(0,0,255,0,15,VGA); LINE(0,1,255,1,15,VGA);
+ LINE(0,2,0,190-3,15,VGA); LINE(1,2,1,190-3,15,VGA);
+ LINE(L[II].FIELDX-2,2,L[II].FIELDX-2,L[II].FIELDY-1,15,VGA);
+ LINE(L[II].FIELDX-1,2,L[II].FIELDX-1,L[II].FIELDY-1,15,VGA);
+ LINE(0,L[II].FIELDY-2,L[II].FIELDX-1,L[II].FIELDY-2,15,VGA);
+ LINE(0,L[II].FIELDY-1,L[II].FIELDX-1,L[II].FIELDY-1,15,VGA);
+ FOR OBJ2:=1TO L[II].NROBJ DO IF OBJ2<>OBJ THEN DISPOBJ(OBJ2,7);
+ IF(OBJ>0)AND(OBJ<=L[II].NROBJ)THEN DISPOBJ(OBJ,14);
+ REPEAT UNTIL READKEY<>#0;
+ MAINTITLE;
+END; {DISPMAP}
+
+FUNCTION NR(VALUE:LONGINT):STRING;