Вот попытался сделать прокрутку массива на экране. Идея вообщем то не сложная, но не получается реализовать ((
uses crt;
var
a:array[1..30] of byte;
i:byte;
y,y1,yn:byte;
c:char;
begin
textbackground(black);
clrscr;
for i:=1 to 30 do a[i]:=i;
for i:=1 to 24 do writeln(a[i]);
write(a[25]);
gotoxy(1,25);
textbackground(green);
write(a[25]);
y:=25;
yn:=1;
repeat
c:=readkey;
y1:=y;
if c=#0 then c:=readkey;
if c=#80 then begin
inc(y);
yn:=y-24;
if y>31 then y:=31;
if y in [1..25] then begin
gotoxy(1,y1);
textbackground(black);
write(a[y1]);
gotoxy(1,y);
textbackground(green);
write(a[y]);
end
else if y in [26..30] then begin
gotoxy(1,1);
delline;
gotoxy(1,24);
textbackground(black);
write(a[y-1]);
gotoxy(1,25);
textbackground(green);
write(a[y]);
end;
end;
if c=#72 then begin
dec(y);
if y=30 then y:=29;
if y in [26..30] then yn:=y-24;
if y=0 then y:=1;
if y in [6..30] then begin
gotoxy(1,y-4);
textbackground(black);
write(a[y+1]);
gotoxy(1,y-5);
textbackground(green);
write(a[y]);
end
else if y in [2..5] then begin
textbackground(black);
gotoxy(1,25);
clreol;
gotoxy(1,1);
insline;
textbackground(green);
write(a[yn])
end;
end;
until c=#13;
end.