system/std.zusatz/1.7.3/src/MINPRINT.ELA

Raw file
Back to index

PACKET minimal font routines DEFINES lf height of current font, 
                                     x factor per inch, 
                                     y factor per inch: 
 
REAL CONST lf height of current font ::  2.54 / 6.0;
INT CONST x factor per inch         :: 10,
          y factor per inch         ::  6;
 
END PACKET minimal font routines;

PACKET minimal printer                 (* 25.04.84 *)
    DEFINES  material,
             start,
             new page, 
             reset printer,
             line, 
             print text , 
             printer cmd,
             on,
             off,
             x pos, 
             y pos,
             papersize,
             limit,
             change type:
 
 
PROC change type (TEXT CONST name of type): ENDPROC change type; 

PROC material (TEXT CONST value): END PROC material;
 
PROC start (REAL CONST x,y): END PROC start;

PROC papersize (REAL CONST x,y): END PROC papersize;

PROC limit (REAL CONST l): END PROC limit;

PROC on (TEXT CONST cmd): END PROC on;

PROC off (TEXT CONST cmd): END PROC off;
 
PROC xpos (REAL CONST cm): END PROC xpos; 
 
PROC ypos (REAL CONST cm): END PROC ypos; 
 
PROC printer cmd (TEXT CONST cmd):
  out (buffer); buffer := "";
  out(cmd)
END PROC printer cmd;
 
INT VAR actual line ;

TEXT VAR buffer;

PROC reset printer:
  buffer := "";
  actual line := 0 
ENDPROC reset printer;
 
PROC print text (TEXT CONST content, INT CONST mode): 
  buffer CAT content
ENDPROC print text; 
 
PROC new page:
  IF buffer <> ""
  THEN line (1.0)
  FI;
  actual line := actual line MOD 72 ;
  IF actual line > 0
    THEN page feed
  FI .

page feed :
  INT VAR i ;
  FOR i FROM actual line UPTO 71 REP
    out(" "13""10"")
  PER ;
  actual line := 0

ENDPROC new page; 
 
PROC line (REAL CONST lf): 
  out (buffer); buffer := "";
  IF lf > 0.0
    THEN REAL VAR ist := 0.0 ;
         REP
           out (""13""10"") ;
           actual line INCR 1 ;
           ist INCR 1.0
         UNTIL ist >= floor (lf) PER
  FI 
ENDPROC line; 
 
ENDPACKET minimal printer;