home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C128CPM / GRC128.ZIP / DEMO.MOD < prev    next >
Encoding:
Text File  |  1991-06-15  |  4.6 KB  |  242 lines

  1.  
  2. MODULE Demo;
  3.  
  4.      FROM SYSTEM IMPORT BYTE,WORD,ADDRESS,ADR;
  5.      FROM CPM IMPORT BDOS;           
  6.  
  7.     TYPE
  8.           tsrec = RECORD
  9.            xs:INTEGER;
  10.            ys: INTEGER;
  11.            xe:INTEGER;
  12.            ye:INTEGER;
  13.            car:ARRAY[1..8] OF CHAR;
  14.            linv:BYTE;
  15.            lover:BYTE
  16.          END;
  17.  
  18.  
  19.          nstr=RECORD
  20.            xw:INTEGER;
  21.            yw:INTEGER;
  22.            xq:INTEGER;
  23.            yq:INTEGER;
  24.            wt:ADDRESS;
  25.            sinv:BYTE;
  26.            sover:BYTE
  27.           END;
  28.  
  29.          feld=ARRAY [1..4096] OF BYTE;
  30.  
  31.          ttextrec = RECORD
  32.             inv:INTEGER;
  33.             OFfs:INTEGER;
  34.             zeile:INTEGER;
  35.             spalte:INTEGER;
  36.             addr:ADDRESS
  37.           END;
  38.  
  39.         xrec = RECORD
  40.            kx:INTEGER;
  41.            ky:INTEGER
  42.         END;
  43.  
  44.         xyz = ARRAY [1..8] OF CHAR;
  45.  
  46. VAR  ndd:nstr;
  47.      speicher:feld;
  48.      lrec:xrec;
  49.      textrec:ttextrec;
  50.      s,e:INTEGER;
  51.      srec,erec:tsrec;
  52.      x,y:INTEGER;
  53.      mytext:ARRAY [1..11] OF CHAR;
  54.      dummy: WORD;
  55.  
  56. PROCEDURE GrFOn;
  57.    BEGIN
  58.    dummy:=BDOS(153,0);
  59.    END GrFOn;
  60.  
  61. PROCEDURE GrSOn;
  62.    BEGIN
  63.    dummy:=BDOS(154,0);
  64.    END GrSOn;
  65.  
  66. PROCEDURE GrFOff;
  67.    BEGIN
  68.    dummy:=BDOS(155,0);
  69.    END GrFOff;
  70.  
  71. PROCEDURE SetPix(xp,yp:INTEGER);
  72.    BEGIN
  73.    lrec.kx:=xp;lrec.ky:=yp;
  74.    dummy:=BDOS(156,ADR(lrec))
  75.    END SetPix;
  76.  
  77. PROCEDURE EraPix (xp,yp:INTEGER);
  78.     BEGIN
  79.     lrec.kx:=xp;lrec.ky:=yp;
  80.     dummy:=BDOS(157,ADR(lrec))
  81.     END EraPix;
  82.  
  83.  
  84. PROCEDURE ClrGr;
  85.     BEGIN
  86.     dummy:=BDOS(158,0)
  87.     END ClrGr;
  88.  
  89. PROCEDURE SaveWi(x1,y1,x2,y2:INTEGER);
  90.     BEGIN
  91.     ndd.xw:=x1;
  92.     ndd.yw:=y1;
  93.     ndd.xq:=x2;
  94.     ndd.yq:=y2;
  95.     ndd.wt:=ADR(speicher);
  96.     dummy:=BDOS(159,ADR(ndd))
  97.     END SaveWi;
  98.  
  99.  
  100. PROCEDURE LoadWi(x1,y1,x2,y2:INTEGER;inv:BYTE;over:BYTE);
  101.     BEGIN
  102.     ndd.xw:=x1;
  103.     ndd.yw:=y1;
  104.     ndd.xq:=x2;
  105.     ndd.yq:=y2;
  106.     ndd.wt:=ADR(speicher);
  107.     ndd.sinv:=inv;
  108.     ndd.sover:=over;
  109.     dummy:=BDOS(160,ADR(ndd))
  110.     END LoadWi;
  111.  
  112. PROCEDURE SaveFW (x1,y1,x2,y2:INTEGER;xk:xyz);
  113.     BEGIN
  114.     srec.xs:=x1;
  115.     srec.ys:=y1;
  116.     srec.xe:=x2;
  117.     srec.ye:=y2;
  118.     srec.car[1]:=xk[1];srec.car[2]:=xk[2];
  119.     srec.car[3]:=xk[3];srec.car[4]:=xk[4];
  120.     srec.car[5]:=xk[5];srec.car[6]:=xk[6];
  121.     srec.car[7]:=xk[7];srec.car[8]:=xk[8];
  122.     dummy:=BDOS(161,ADR(srec))
  123.     END SaveFW;
  124.  
  125. PROCEDURE LoadFW (x1,y1,x2,y2:INTEGER;xk:xyz;inv:BYTE;over:BYTE);
  126.     BEGIN
  127.     srec.xs:=x1;
  128.     srec.ys:=y1;
  129.     srec.xe:=x2;
  130.     srec.ye:=y2;
  131.     srec.car[1]:=xk[1];srec.car[2]:=xk[2];
  132.     srec.car[3]:=xk[3];srec.car[4]:=xk[4];
  133.     srec.car[5]:=xk[5];srec.car[6]:=xk[6];
  134.     srec.car[7]:=xk[7];srec.car[8]:=xk[8];
  135.     srec.linv:=inv;srec.lover:=over;
  136.     dummy:=BDOS(162,ADR(srec))
  137.     END LoadFW;
  138.  
  139. PROCEDURE GFtext (i,o,z,s :INTEGER;a :ADDRESS);
  140.     BEGIN
  141.     textrec.inv:=i;
  142.     textrec.OFfs:=o;
  143.     textrec.spalte:=s;
  144.     textrec.zeile:=z;
  145.     textrec.addr:=a;
  146.     dummy:=BDOS(163,ADR(textrec))
  147.    END GFtext;
  148.  
  149. PROCEDURE scrdump (i:INTEGER);
  150.    BEGIN
  151.    dummy:=BDOS(164,i)
  152.    END scrdump;
  153.  
  154. BEGIN
  155.  
  156. GrSOn;
  157.  
  158. mytext[1]:=CHR(10);
  159. mytext[2]:='s';
  160. mytext[3]:='m';
  161. mytext[4]:='a';
  162. mytext[5]:='l';
  163. mytext[6]:='l';
  164. mytext[7]:=' ';
  165. mytext[8]:='d';
  166. mytext[9]:='e';
  167. mytext[10]:='m';
  168. mytext[11]:='o';
  169.  
  170. GFtext(0,0,0,0,ADR(mytext));
  171. GFtext(1,0,0,15,ADR(mytext));
  172. GFtext(0,1,2,0,ADR(mytext));
  173. GFtext(0,0,2,15,ADR(mytext));
  174. GFtext(1,0,4,0,ADR(mytext));
  175. GFtext(0,1,4,15,ADR(mytext));
  176. GFtext(0,0,6,0,ADR(mytext));
  177. GFtext(1,0,6,15,ADR(mytext));
  178. GFtext(0,1,8,0,ADR(mytext));
  179. GFtext(0,0,8,15,ADR(mytext));
  180. GFtext(1,0,10,0,ADR(mytext));
  181. GFtext(0,1,10,15,ADR(mytext));
  182. GFtext(0,0,12,0,ADR(mytext));
  183. GFtext(1,0,12,15,ADR(mytext));
  184. GFtext(0,1,14,0,ADR(mytext));
  185. GFtext(0,0,14,15,ADR(mytext));
  186. (*
  187. scrdump(0);
  188. scrdump(1);
  189. scrdump(2);
  190. scrdump(3);
  191. scrdump(4);
  192. scrdump(5);
  193. scrdump(6);
  194. scrdump(7);
  195. *)
  196. y:=1;
  197. WHILE (y<=150) DO
  198.      FOR x:=1 TO 500 DO
  199.           SetPix(x,y)
  200.      END;
  201.      y:=y+10
  202. END;
  203.  
  204. SaveWi(0,0,100,50);
  205. ClrGr;
  206. LoadWi(0,0,100,50,1,1);
  207. SaveFW(0,0,100,50,'NEWFILE ');
  208. ClrGr;
  209. LoadFW(50,100,150,150,'NEWFILE ',0,0);
  210. LoadFW(70,120,170,170,'NEWFILE ',1,1);
  211. LoadFW(90,140,190,190,'NEWFILE ',0,0);
  212. LoadFW(300,149,400,199,'NEWFILE ',1,1);
  213.  
  214. y:=1;
  215. WHILE (y<=150) DO
  216.      x:=1;
  217.      WHILE (x<=500) DO
  218.         SetPix(x,y);
  219.         x:=x+2
  220.      END;
  221.      y:=y+10
  222. END;
  223.  
  224.  
  225. y:=1;
  226. WHILE (y<=150) DO
  227.      x:=1;
  228.      WHILE (x<=500) DO
  229.         EraPix(x,y);
  230.         x:=x+2
  231.      END;
  232.      y:=y+10
  233. END;
  234.  
  235.  
  236. GrFOff
  237. END Demo.
  238.  
  239.  
  240.  
  241.  
  242.