[Back to PRINTING SWAG index] [Back to Main SWAG index] [Original]

    unit Print_La;

    INTERFACE

    procedure dump_laser;

    IMPLEMENTATION

    Uses Graph,Dos,Printer;

    Const
      d = 'l';

    Var
      MaxX, MaxY : Integer;

    Procedure dump_laser;

    Var
      ymax,
      bbyt,
      b2   : Byte;
      psf  : File of Byte;
      regs : Registers;

    Procedure out(ch : Char);

    begin
      regs.ax := ord(ch);
      regs.dx := 0;
      intr($17, regs);
    end;

    Procedure hplaser;

    Var
      b,
      reg,
      kol : Word;

    begin
      assign(psf, 'lpt1');
      reWrite(psf);
      Write(lst, chr(27), 'E');
      Write(lst, chr(27), '*t100R', chr(27), '*r0A');
      For reg := 0 to maxx do begin
        Write(lst, chr(27), '*b', (maxy + 1) div 8, 'W');
        For kol := ((maxy + 1) div 8) - 1 downto 0 do begin
          bbyt := 0;
          For b := 0 to 7 do begin
            if getpixel(reg, kol * 8 + b) in[0,8] then    { = 0 }
              b2 := 0
            else
              b2 := 1;
            bbyt := bbyt or (b2 shl b);
          end;
          out(chr(bbyt));
        end;
      end;
      Write(lst, chr(27), '*rB');
      Write(lst, chr(12));
      Write(lst, chr(27), 'E');
      close(psf);
    end;

    begin
      MaxX := GetMaxX;
      MaxY := GetMaxY;
      hplaser
    end;

    begin
    end.

[Back to PRINTING SWAG index] [Back to Main SWAG index] [Original]