home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol021 / cplot.pas < prev    next >
Pascal/Delphi Source File  |  1984-04-29  |  1KB  |  67 lines

  1. (*******************************************************
  2. *
  3. *        CHARPLOT PROGRAM
  4. *
  5. *    I understand this came from a text book.  It
  6. *  isn't all that great but it will give you some ideas
  7. *  on banners for your programs. So look it over and
  8. *  come up with something better and send it in.
  9. *
  10. *  Donated July, 1980
  11. *
  12. ******************************************************)
  13.  
  14. PROGRAM CHARPLOT;
  15. CONST
  16.   WIDTH = 25;
  17.   HEIGHT = 11;
  18. TYPE
  19.   DX = -WIDTH..+WIDTH;
  20.   DY = -HEIGHT..+HEIGHT;
  21. VAR
  22.   PAGE : ARRAY[DY] OF PACKED ARRAY[DX] OF CHAR;
  23.   X : DX;
  24.   Y : DY;
  25.  
  26. PROCEDURE RECT(H,W : INTEGER; CH : CHAR);
  27. VAR
  28.   I,XMIN,XMAX : DX;
  29.   J,YMIN,YMAX : DY;
  30. BEGIN
  31.   XMAX:=W;    YMAX:=H;
  32.   XMIN:=-W;    YMIN:=-H;
  33.   (* MARK TOP & BOTTOM OF RECTANGLE *)
  34.   FOR I:=XMIN TO XMAX DO
  35.   BEGIN
  36.     PAGE[YMAX,I]:=CH;
  37.     PAGE[YMIN,I]:=CH;
  38.   END;
  39.   (* MARK SIDES *)
  40.   FOR J:=YMIN TO YMAX DO
  41.   BEGIN
  42.     PAGE[J,XMAX]:=CH;
  43.     PAGE[J,XMIN]:=CH;
  44.   END;
  45. END;  (* RECT *)
  46.  
  47. PROCEDURE BLANKPAGE;
  48. VAR
  49.   I : DX;
  50.   J : DY;
  51. BEGIN
  52.   FOR J:=-HEIGHT TO HEIGHT DO
  53.     FOR I:=-WIDTH TO WIDTH DO PAGE[J,I]:=' ';
  54. END;
  55.  
  56. BEGIN    (* MAIN PROGRAM *)
  57.   BLANKPAGE;
  58.   RECT(11,10,'*');
  59.   RECT(5,25,'#');
  60.   RECT(8,15,'&');
  61.   FOR Y:=HEIGHT DOWNTO -HEIGHT DO
  62.     BEGIN
  63.     FOR X:=-WIDTH TO WIDTH DO WRITE(PAGE[Y,X]);
  64.     IF Y > -HEIGHT THEN WRITELN;
  65.     END;
  66. END.
  67.