home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / drdobbs / 1988 / 04 / porter / porter.ls1 next >
Text File  |  1979-12-31  |  2KB  |  44 lines

  1.  
  2.  
  3.  
  4.  
  5. DEFINITION MODULE LineDwg;
  6.   EXPORT QUALIFIED
  7.     width, height, CharWidth, CharHeight, PaintMode, Px, Py,
  8.     mode, dot, line, paint, copyArea, clear, Write, WriteString;
  9.  
  10.   TYPE PaintMode = (replace, add, invert, erase);
  11.  
  12.   VAR Px, Py     : INTEGER; (* Current coordinates of drawing pen *)
  13.       mode       : PaintMode;  (* Current mode for paint and copy *)
  14.       width      : INTEGER;   (* Width of picture area, read-only *)
  15.       height     : INTEGER;  (* Height of picture area, read-only *)
  16.       CharWidth  : INTEGER;               (* Width of a character *)
  17.       CharHeight : INTEGER;              (* Height of a character *)
  18.  
  19.   PROCEDURE dot (c : CARDINAL; x, y : INTEGER);
  20.         (* Place a dot at coordinate x, y in color c *)
  21.  
  22.   PROCEDURE line (d, n : CARDINAL);
  23.         (* Draw a line of length n in direction d
  24.            (angle = 45 * d degrees) *)
  25.  
  26.   PROCEDURE paint (c : CARDINAL; x, y, w, h : INTEGER);
  27.         (* Paint the rectangular area at x, y of width w and
  28.            height h in color c, where 0 = white, 1 = light gray,
  29.            2 = dark gray, 3 = black *)
  30.         (* Note: This proc is also called 'area' by Wirth *)
  31.  
  32.   PROCEDURE copyArea (sx, sy, dx, dy, dw, dh : INTEGER);
  33.         (* Copy rectangular area at sx, sy into rectangle at dx, dy
  34.            of width dw and height dh *)
  35.  
  36.   PROCEDURE clear;        (* Clear the screen *)
  37.         (* Note: Also places display in EGA 640 x 350 color mode *)
  38.  
  39.   PROCEDURE Write (ch : CHAR);   (* Write ch at pen's position *)
  40.  
  41.   PROCEDURE WriteString (s : ARRAY OF CHAR);
  42.  
  43. END LineDwg.
  44.