program rajzol; {PM-3fv-HBV} uses crt; type tkar=record kar:char; attrib:byte; end; type tkep=array[1..25,1..80] of tkar; tkepf=file of tkep; {tkep?} var f:tkepf; kep:tkep absolute $0b800:$0000; sor1,oszlop1,sor2,oszlop2:integer; szin1,szin2,hszin:byte; procedure rajz; var c:char; procedure szinbeolvas(var sz:byte); begin inc(sz); sz:=(sz mod 16); end; begin sor1:=1; oszlop1:=40; hszin:=blue; szin1:=white; szin2:=red; sor2:=25; oszlop2:=40; repeat c:=readkey; case c of 'r': begin kep[sor1,oszlop1].kar:=chr(220); kep[sor1,oszlop1].attrib:=hszin*16+szin1; end; 'w': begin kep[sor2,oszlop2].kar:='*'; kep[sor2,oszlop2].attrib:=hszin*16+szin2; end; 't': begin clrscr; oszlop1:=40; sor1:=1; sor2:=25; oszlop2:=40; end; 's': begin szinbeolvas(szin1); end; 'd': begin szinbeolvas(szin2); end; 'h': begin szinbeolvas(hszin); end; #0: begin c:=readkey; case c of #72: {fel} begin dec(sor1); if sor1=0 then sor1:=25; end; #77: {jobb} begin inc(oszlop1); if oszlop1=80 then oszlop1:=1; end; #80: {le} begin inc(sor1); if sor1=26 then sor1:=1; end; #75: {bal} begin dec(oszlop1); if oszlop1=0 then oszlop1:=80; end; end; end; 'b': {75} begin dec(oszlop2); if oszlop2=0 then oszlop2:=80; end; 'l': {80} begin inc(sor2); if sor2=26 then sor2:=1; end; 'j': {77} begin inc(oszlop2); if oszlop2=80 then oszlop2:=1; end; 'f': {72} begin dec(sor2); if sor2=0 then sor2:=25; end; 'm': begin assign(f,'kep.txt'); rewrite(f); write(f,kep); close(f); end; 'v': begin assign(f,'kep.txt'); reset(f); read(f,kep); close(f); end; end; until ((c='q') or (c=#27)); end; begin rajz; end.