home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / TURBOPAS / PRINT120.LBR / CONFIG1.PQS / CONFIG1.PAS
Pascal/Delphi Source File  |  2000-06-30  |  5KB  |  175 lines

  1. { CONFIG1.PAS for PRINT version 1.20       }
  2. {       for GEMINI-10x printer             }
  3.  
  4. procedure INIT_PRINT;
  5.  
  6. var
  7.    i : integer;
  8.  
  9. begin
  10.    { The following line is the PRINTER INITIALIZATION SEQUENCE}
  11.    { In this sequence, the initial PAGE OFFSET is set }
  12.    write(lst,chr($0D),chr(27),'@',chr(27)+'M'+chr(8));
  13.    for i := 1 to 26 do
  14.       Def_Status[i] := off;
  15.    Def_Status[14] := on;
  16.  
  17.    {**********************************************************}
  18.  
  19.    TwoLine_Ctrl   := 'XR';    {Printer controls that require
  20.                                two lines of printing         }
  21.    Page_Offset    :=  8;      {Also set in INIT_PRINT above}
  22.    Line_Spacing   :=  8;      {init at 8/48 inch LF}
  23.  
  24.    { BE SURE TO SET THE PAGE_OFFSET (LEFT MARGIN) AND THE LINE
  25.      SPACING COMMANDS IN DOTCMD.PAS ! }
  26.    {**********************************************************}
  27.  
  28.    for i := 1 to length(TwoLine_Ctrl) do
  29.       TwoLine_Ctrl[i] := chr(ord(TwoLine_Ctrl[i]) - $40);
  30.  
  31. end;
  32.  
  33.  
  34. procedure UNINIT_PRINT;
  35. begin
  36.    write(lst,chr($0D),chr(27),'@');
  37. end;
  38.  
  39.  
  40. procedure Ctrl_Printer(funct : integer; state : boolean; var flag : FlagBank);
  41. var
  42.     key       : char;
  43.  
  44. begin
  45.    case funct of
  46.         1 : if state then  { ^A - Elite print (12CPI) } 
  47.               begin
  48.                  write(lst,chr(27)+'B'+chr(2));
  49.                  flag[1] := on;
  50.                  flag[14] := off;
  51.                  flag[25] := off;
  52.               end;
  53.  
  54.         2 : begin          { ^B - Boldface }
  55.                if state then
  56.                   write(lst,chr(27)+'E')
  57.                else
  58.                   write(lst,chr(27)+'F');
  59.                flag[2] := state;
  60.             end;
  61.  
  62.         3 : begin          { ^C - print pause }
  63.                GotoXY(1,20);
  64.                write('Press Y to abandon print, any key to continue');
  65.                read(kbd,key);
  66.                if upcase(key) = 'Y' then
  67.                   begin
  68.                      close(Infile);
  69.                      UnInit_Print;
  70.                      halt;
  71.                   end;
  72.                DelLine;
  73.             end;
  74.  
  75.         4 : begin          { ^D - Double Strike }
  76.                if state then
  77.                   write(lst,chr(27)+'G')
  78.                else
  79.                   write(lst,chr(27)+'H');
  80.                flag[4] := state;
  81.             end;
  82.  
  83.         5 : begin          { ^E - graphics }
  84.                if state then
  85.                   write(lst,chr(27)+'>')
  86.                else
  87.                   write(lst,chr(27)+'#');
  88.                flag[5] := state;
  89.             end;
  90.  
  91.         8 : write(lst,chr(8)); { ^H - BackSpace }
  92.  
  93.         9 : write(lst,chr(9)); { ^I - Tab }
  94.  
  95.        10 : begin          { ^J - Line Feed }
  96.                write(lst,chr(10));
  97.                Line_Num := Line_Num + 1;
  98.                GotoXY(Line_Num_X, Line_Num_Y);
  99.                write(Line_Num:3);
  100.             end;
  101.  
  102.        13 : write(lst,chr(13)); { ^M - carriage return }
  103.  
  104.        14 : if state then  { ^N - pica print (10CPI) }
  105.                begin
  106.                   write(lst,chr(27)+'B'+chr(1));
  107.                   flag[1]  := off;
  108.                   flag[14] := on;
  109.                   flag[25] := off;
  110.                end;
  111.  
  112.        17 : begin          { ^Q - italics }
  113.                if state then
  114.                   write(lst,chr(27)+'4')
  115.                else
  116.                   write(lst,chr(27)+'5');
  117.                flag[17] := state;
  118.             end;
  119.  
  120.        18 : begin          { ^R - download Char set }
  121.                if state then
  122.                   write(lst,chr(27)+'$'+chr(1))
  123.                else
  124.                   write(lst,chr(27)+'$'+chr(0));
  125.             end;
  126.  
  127.        19 : if state then  { ^S - underline }
  128.                write(lst,chr(27) + '-' + chr(1))
  129.             else
  130.                write(lst,chr(27) + '-' + chr(0));
  131.  
  132.        20 : begin          { ^T - superscript }
  133.                if state then
  134.                   write(lst,chr(27)+'S'+chr(0))
  135.                else
  136.                   write(lst,chr(27)+'T');
  137.                flag[20] := state;
  138.             end;
  139.  
  140.    uniprt : begin          { ^U - unidirectional print }
  141.                if state then
  142.                   write(lst,chr(27)+'U'+chr(1))
  143.                else
  144.                   write(lst,chr(27)+'U'+chr(0));
  145.                flag[21] := state;
  146.             end;
  147.  
  148.        22 : begin          { ^V - subscript }
  149.                if state then
  150.                   write(lst,chr(27)+'S'+chr(1))
  151.                else
  152.                   write(lst,chr(27)+'T');
  153.                flag[22] := state;
  154.             end;
  155.  
  156.        23 : begin          { ^W - WIDE print }
  157.                if state then
  158.                   write(lst,chr(27)+'W'+chr(1))
  159.                else
  160.                   write(lst,chr(27)+'W'+chr(0));
  161.                flag[23] := state;
  162.             end;
  163.  
  164.  
  165.        25 : if state then  { ^Y - compressed print }
  166.               begin
  167.                  write(lst,chr(27)+'B'+chr(3));
  168.                  flag[1]  := off;
  169.                  flag[14] := off;
  170.                  flag[25] := on;
  171.               end;
  172.  
  173.     end; {*case*}
  174.  end;
  175.