home *** CD-ROM | disk | FTP | other *** search
-
- MODULE Demo;
-
- FROM SYSTEM IMPORT BYTE,WORD,ADDRESS,ADR;
- FROM CPM IMPORT BDOS;
-
- TYPE
- tsrec = RECORD
- xs:INTEGER;
- ys: INTEGER;
- xe:INTEGER;
- ye:INTEGER;
- car:ARRAY[1..8] OF CHAR;
- linv:BYTE;
- lover:BYTE
- END;
-
-
- nstr=RECORD
- xw:INTEGER;
- yw:INTEGER;
- xq:INTEGER;
- yq:INTEGER;
- wt:ADDRESS;
- sinv:BYTE;
- sover:BYTE
- END;
-
- feld=ARRAY [1..4096] OF BYTE;
-
- ttextrec = RECORD
- inv:INTEGER;
- OFfs:INTEGER;
- zeile:INTEGER;
- spalte:INTEGER;
- addr:ADDRESS
- END;
-
- xrec = RECORD
- kx:INTEGER;
- ky:INTEGER
- END;
-
- xyz = ARRAY [1..8] OF CHAR;
-
- VAR ndd:nstr;
- speicher:feld;
- lrec:xrec;
- textrec:ttextrec;
- s,e:INTEGER;
- srec,erec:tsrec;
- x,y:INTEGER;
- mytext:ARRAY [1..11] OF CHAR;
- dummy: WORD;
-
- PROCEDURE GrFOn;
- BEGIN
- dummy:=BDOS(153,0);
- END GrFOn;
-
- PROCEDURE GrSOn;
- BEGIN
- dummy:=BDOS(154,0);
- END GrSOn;
-
- PROCEDURE GrFOff;
- BEGIN
- dummy:=BDOS(155,0);
- END GrFOff;
-
- PROCEDURE SetPix(xp,yp:INTEGER);
- BEGIN
- lrec.kx:=xp;lrec.ky:=yp;
- dummy:=BDOS(156,ADR(lrec))
- END SetPix;
-
- PROCEDURE EraPix (xp,yp:INTEGER);
- BEGIN
- lrec.kx:=xp;lrec.ky:=yp;
- dummy:=BDOS(157,ADR(lrec))
- END EraPix;
-
-
- PROCEDURE ClrGr;
- BEGIN
- dummy:=BDOS(158,0)
- END ClrGr;
-
- PROCEDURE SaveWi(x1,y1,x2,y2:INTEGER);
- BEGIN
- ndd.xw:=x1;
- ndd.yw:=y1;
- ndd.xq:=x2;
- ndd.yq:=y2;
- ndd.wt:=ADR(speicher);
- dummy:=BDOS(159,ADR(ndd))
- END SaveWi;
-
-
- PROCEDURE LoadWi(x1,y1,x2,y2:INTEGER;inv:BYTE;over:BYTE);
- BEGIN
- ndd.xw:=x1;
- ndd.yw:=y1;
- ndd.xq:=x2;
- ndd.yq:=y2;
- ndd.wt:=ADR(speicher);
- ndd.sinv:=inv;
- ndd.sover:=over;
- dummy:=BDOS(160,ADR(ndd))
- END LoadWi;
-
- PROCEDURE SaveFW (x1,y1,x2,y2:INTEGER;xk:xyz);
- BEGIN
- srec.xs:=x1;
- srec.ys:=y1;
- srec.xe:=x2;
- srec.ye:=y2;
- srec.car[1]:=xk[1];srec.car[2]:=xk[2];
- srec.car[3]:=xk[3];srec.car[4]:=xk[4];
- srec.car[5]:=xk[5];srec.car[6]:=xk[6];
- srec.car[7]:=xk[7];srec.car[8]:=xk[8];
- dummy:=BDOS(161,ADR(srec))
- END SaveFW;
-
- PROCEDURE LoadFW (x1,y1,x2,y2:INTEGER;xk:xyz;inv:BYTE;over:BYTE);
- BEGIN
- srec.xs:=x1;
- srec.ys:=y1;
- srec.xe:=x2;
- srec.ye:=y2;
- srec.car[1]:=xk[1];srec.car[2]:=xk[2];
- srec.car[3]:=xk[3];srec.car[4]:=xk[4];
- srec.car[5]:=xk[5];srec.car[6]:=xk[6];
- srec.car[7]:=xk[7];srec.car[8]:=xk[8];
- srec.linv:=inv;srec.lover:=over;
- dummy:=BDOS(162,ADR(srec))
- END LoadFW;
-
- PROCEDURE GFtext (i,o,z,s :INTEGER;a :ADDRESS);
- BEGIN
- textrec.inv:=i;
- textrec.OFfs:=o;
- textrec.spalte:=s;
- textrec.zeile:=z;
- textrec.addr:=a;
- dummy:=BDOS(163,ADR(textrec))
- END GFtext;
-
- PROCEDURE scrdump (i:INTEGER);
- BEGIN
- dummy:=BDOS(164,i)
- END scrdump;
-
- BEGIN
-
- GrSOn;
-
- mytext[1]:=CHR(10);
- mytext[2]:='s';
- mytext[3]:='m';
- mytext[4]:='a';
- mytext[5]:='l';
- mytext[6]:='l';
- mytext[7]:=' ';
- mytext[8]:='d';
- mytext[9]:='e';
- mytext[10]:='m';
- mytext[11]:='o';
-
- GFtext(0,0,0,0,ADR(mytext));
- GFtext(1,0,0,15,ADR(mytext));
- GFtext(0,1,2,0,ADR(mytext));
- GFtext(0,0,2,15,ADR(mytext));
- GFtext(1,0,4,0,ADR(mytext));
- GFtext(0,1,4,15,ADR(mytext));
- GFtext(0,0,6,0,ADR(mytext));
- GFtext(1,0,6,15,ADR(mytext));
- GFtext(0,1,8,0,ADR(mytext));
- GFtext(0,0,8,15,ADR(mytext));
- GFtext(1,0,10,0,ADR(mytext));
- GFtext(0,1,10,15,ADR(mytext));
- GFtext(0,0,12,0,ADR(mytext));
- GFtext(1,0,12,15,ADR(mytext));
- GFtext(0,1,14,0,ADR(mytext));
- GFtext(0,0,14,15,ADR(mytext));
- (*
- scrdump(0);
- scrdump(1);
- scrdump(2);
- scrdump(3);
- scrdump(4);
- scrdump(5);
- scrdump(6);
- scrdump(7);
- *)
- y:=1;
- WHILE (y<=150) DO
- FOR x:=1 TO 500 DO
- SetPix(x,y)
- END;
- y:=y+10
- END;
-
- SaveWi(0,0,100,50);
- ClrGr;
- LoadWi(0,0,100,50,1,1);
- SaveFW(0,0,100,50,'NEWFILE ');
- ClrGr;
- LoadFW(50,100,150,150,'NEWFILE ',0,0);
- LoadFW(70,120,170,170,'NEWFILE ',1,1);
- LoadFW(90,140,190,190,'NEWFILE ',0,0);
- LoadFW(300,149,400,199,'NEWFILE ',1,1);
-
- y:=1;
- WHILE (y<=150) DO
- x:=1;
- WHILE (x<=500) DO
- SetPix(x,y);
- x:=x+2
- END;
- y:=y+10
- END;
-
-
- y:=1;
- WHILE (y<=150) DO
- x:=1;
- WHILE (x<=500) DO
- EraPix(x,y);
- x:=x+2
- END;
- y:=y+10
- END;
-
-
- GrFOff
- END Demo.
-
-
-
-