home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / OKI390.ZIP / OKI390.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1988-09-15  |  7.2 KB  |  237 lines

  1. unit oki390;
  2.  
  3. interface
  4.  
  5. uses
  6.    Crt, Printer ;
  7.  
  8. var
  9.    Rset,Enhanced_OFF,Emphasized_off,Utility,Default_Perf : String;
  10.    Set_Perf_Skip,Set_Form_Length,Pica,Elite,Condense,Compress : String;
  11.    Double_Wide,LQ,Enhanced_On,Emphasis_On,Enhanced_Emphasis_On : String;
  12.    Six_Lines,Eight_Lines,Var_Line,Fine_Line,N360,Left_Margin : String;
  13.    Right_Margin,Set_Both_Margins,Proportional,Proportional_Double : String;
  14.    Proportional_Double_Condense,Double_Height,Italics,IBM1,IBM2A : String;
  15.    USA,LATIN_AMERICAN,BRITISH,GERMAN,FRENCH,SWEDISH,DANISH_I : String;
  16.    NORWEGIAN,DANISH_II,ITALIAN,FRENCH_CANADIAN,SPANISH : String;
  17.    BIDIRECTIONAL,UNIDIRECTIONAL,FORM_LENGTH_11,LEFT_MARGIN_1 : String;
  18.    RIGHT_MARGIN_80,ESC,Mode : String ;
  19.    Origmode,LastRow : word;
  20.    IBM_Mode : Boolean;
  21.  
  22. procedure Print_Select;
  23.  
  24. implementation
  25.  
  26. var
  27.   LastCol{,LastRow}: Word;
  28.   Ch: Char;
  29.   Done: Boolean;
  30.   Width, Height, Epson, IBM : Word;
  31.   Col, Row, X, Y : Integer;
  32.   String1, String2, Message : string;
  33.  
  34. procedure Initialize;
  35. { Initialize the video mode, LastCol, LastRow }
  36. { Paint the help line. }
  37. begin
  38.   LastCol:=Lo(WindMax)+1;              { get last column, row }
  39.   LastRow:=Hi(WindMax)+1;
  40.   GoToXY(20,LastRow);                   { put message line on screen }
  41.   TextBackground(Black);
  42.   TextColor(White);
  43.   Dec(LastRow,80 div LastCol);
  44. end; { Init }
  45.  
  46. procedure Menu1(var Modem:string; var IBM_Mode,Quit: boolean) ;
  47. var
  48.    Valid : Boolean ;
  49.  
  50. Begin
  51.   Valid := False;
  52.   GoToXY(2,12);
  53.   Write('Unfortunately, you must put your printer');
  54.   GoToXY(2,13);
  55.   Write('in the correct emulation mode from the');
  56.   GoToXY(2,14);
  57.   Write('front panel of your printer. Sorry. ');
  58.   GoToXY(35,15);Write('S.Kline');
  59.   GoToXY(2,8);
  60.   Write(' Select Mode (1-2)      ESC - EXIT');
  61.   GotoXY(5,2);
  62.   Write('Select Printer Emulation Mode: ');
  63.   GoToXY(4,4);
  64.   Write('(1) Epson    (2) IBM Proprinter');
  65.   GoToXY(3,6);
  66. Begin
  67.   repeat
  68.        CH:=ReadKey;
  69.        Case CH of
  70.             #49: Begin
  71.                       Modem    := 'Epson';
  72.                       Valid    := True;
  73.                       IBM_Mode := False;
  74.                  End;
  75.             #50: Begin
  76.                       Modem    := 'IBM';
  77.                       Valid    := True;
  78.                       IBM_Mode := True;
  79.                  end;
  80.            #27: Begin
  81.                       Valid := True;
  82.                       Done := True;
  83.                 end;
  84.         else
  85.           Begin
  86.             GoToXY(3,6);
  87.             Write('Selection invalid! Try again.');
  88.           end;
  89.        end (* Case *);
  90.    until Valid;
  91. end (* Begin *);
  92.  
  93. end (* procedure *);
  94.  
  95. procedure MakeWindow(var X, Y : integer; width, height: word);
  96. { Make a window }
  97.  
  98. begin (* procedure body *)
  99.   Window(X,Y,X+Width,Y+Height);
  100.   if OrigMode = Mono then
  101.   begin
  102.     TextBackground(White);
  103.     TextColor(Black);
  104.     ClrScr;
  105.     Window(X+1,Y+1,X+Width-1,Y+Height-1);
  106.     TextBackground(Black);
  107.     TextColor(White);
  108.     ClrScr;
  109.   end
  110.   else
  111.   begin
  112.     TextBackground(Blue);
  113.     TextColor(White);
  114.   end;
  115. ClrScr;
  116. end; { MakeWindow }
  117.  
  118.  
  119.  
  120. procedure Print_Select;
  121. begin { program body }
  122.   IBM_Mode:=False;
  123.   Width:=40;
  124.   Height:=15;
  125.   X:=20;
  126.   Y:=5;
  127.   ESC:=Chr(27);
  128.   Initialize;
  129.   Done:=False;
  130.   MakeWindow(X,Y,Width,Height);
  131.   Menu1(Mode, IBM_Mode, Done);
  132.   if Mode = 'Epson' then
  133.     begin
  134.       Rset:=ESC+Chr(64);
  135.       Enhanced_Off:=ESC+Chr(72);
  136.       Emphasized_Off:=ESC+Chr(70);
  137.       Utility:=ESC+Chr(120)+Chr(0);
  138.       Default_Perf:=ESC+Chr(79);
  139.       Set_Perf_Skip:=ESC+Chr(78);
  140.       Set_Form_Length:=ESC+Chr(67)+Chr(0);
  141.       Pica:=ESC+Chr(80);
  142.       Elite:=ESC+Chr(77);
  143.       Condense:=ESC+Chr(103);
  144.       Compress:=Chr(15);
  145.       Double_Wide:=ESC+Chr(87)+Chr(1);
  146.       LQ:=ESC+Chr(120)+Chr(1);
  147.       Enhanced_On:=ESC+Chr(71);
  148.       Emphasis_On:=ESC+Chr(69);
  149.       Enhanced_Emphasis_On:=ESC+Chr(33)+Chr(24);
  150.       Six_Lines:=ESC+Chr(50);
  151.       Eight_Lines:=ESC+Chr(48);
  152.       Var_Line:=ESC+Chr(65);
  153.       Fine_Line:=ESC+Chr(51);
  154.       N360:=ESC+Chr(91);
  155.       Left_Margin:=ESC+Chr(108);
  156.       Right_Margin:=ESC+Chr(81);
  157.       Set_Both_Margins:=ESC+Chr(108)+Chr(1)+ESC+Chr(81)+Chr(80);
  158.       Proportional:=ESC+Chr(112)+Chr(1);
  159.       Proportional_Double:=ESC+Chr(33)+Chr(34);
  160.       Proportional_Double_Condense:=ESC+Chr(33)+Chr(38);
  161.       Double_Height:=ESC+Chr(31)+Chr(1);
  162.       Italics:=ESC+Chr(52);
  163.       IBM1:=ESC+Chr(116)+Chr(1)+ESC+Chr(55);
  164.       IBM2A:=ESC+Chr(116)+Chr(1)+ESC+Chr(54);
  165.       USA:=ESC+Chr(82)+Chr(0);
  166.       LATIN_AMERICAN:=ESC+Chr(82)+Chr(12);
  167.       BRITISH:=ESC+Chr(82)+Chr(3);
  168.       GERMAN:=ESC+Chr(82)+Chr(2);
  169.       FRENCH:=ESC+Chr(82)+Chr(1);
  170.       SWEDISH:=ESC+Chr(82)+Chr(5);
  171.       DANISH_I:=ESC+Chr(82)+Chr(4);
  172.       NORWEGIAN:=ESC+Chr(82)+Chr(9);
  173.       DANISH_II:=ESC+Chr(82)+Chr(10);
  174.       ITALIAN:=ESC+Chr(82)+Chr(6);
  175.       FRENCH_CANADIAN:=ESC+Chr(82)+Chr(13);
  176.       SPANISH:=ESC+Chr(82)+Chr(7);
  177.       UNIDIRECTIONAL:=ESC+Chr(85)+Chr(1);
  178.       BIDIRECTIONAL:=ESC+Chr(85)+Chr(0);
  179.       FORM_LENGTH_11:=ESC+Chr(67)+Chr(0)+Chr(11);
  180.       LEFT_MARGIN_1:=ESC+Chr(108)+Chr(1);
  181.       RIGHT_MARGIN_80:=ESC+Chr(81)+Chr(80);
  182.     end
  183.   else
  184.        begin
  185.          Rset:=Chr(24);
  186.          Enhanced_Off:=ESC+Chr(72);
  187.          Emphasized_Off:=ESC+Chr(70);
  188.          Utility:=ESC+Chr(73);
  189.          Default_Perf:=ESC+Chr(79);
  190.          Set_Perf_Skip:=ESC+Chr(78);
  191.          Set_Form_Length:=ESC+Chr(67)+Chr(0);
  192.          Pica:=ESC+Chr(73)+Chr(0);
  193.          Elite:=ESC+Chr(73)+Chr(8);
  194.          Condense:=ESC+Chr(73)+Chr(24);
  195.          Compress:=Chr(15);
  196.          Double_Wide:=ESC+Chr(87)+Chr(1);
  197.          LQ:=ESC+Chr(73);
  198.          Enhanced_On:=ESC+Chr(71);
  199.          Emphasis_On:=ESC+Chr(69);
  200.          Enhanced_Emphasis_On:=ESC+Chr(71)+ESC+Chr(69);
  201.          Six_Lines:=ESC+Chr(49);
  202.          Eight_Lines:=ESC+Chr(48);
  203.          Var_Line:=ESC+Chr(65);
  204.          Fine_Line:=ESC+Chr(51);
  205.          N360:=ESC+Chr(37)+Chr(56);
  206.          Left_Margin:=ESC+Chr(88);
  207.          Right_Margin:=ESC+Chr(88);
  208.          Set_Both_Margins:=ESC+Chr(88)+Chr(1)+Chr(80);
  209.          Proportional:=ESC+Chr(80)+Chr(1);
  210.          Proportional_Double:=ESC+Chr(80)+Chr(1)+ESC+Chr(87)+Chr(1);
  211.          Proportional_Double_Condense:=Chr(15)+ESC+Chr(80)+Chr(1)+ESC+Chr(87)+Chr(1);
  212.          Double_Height:=ESC+Chr(91)+Chr(64)+Chr(4)+CHR(0)+CHR(0)+CHR(0)+Chr(0)+Chr(0);
  213.          Italics:=ESC+Chr(37)+Chr(71);
  214.          IBM1:=ESC+Chr(55);
  215.          IBM2A:=ESC+Chr(54);
  216.          USA:=ESC+Chr(33)+Chr(64);
  217.          LATIN_AMERICAN:=ESC+Chr(33)+Chr(65);
  218.          BRITISH:=ESC+Chr(33)+Chr(66);
  219.          GERMAN:=ESC+Chr(33)+Chr(67);
  220.          FRENCH:=ESC+Chr(33)+Chr(68);
  221.          SWEDISH:=ESC+Chr(33)+Chr(69);
  222.          DANISH_I:=ESC+Chr(33)+Chr(70);
  223.          NORWEGIAN:=ESC+Chr(33)+Chr(71);
  224.          DANISH_II:=ESC+Chr(33)+Chr(72);
  225.          ITALIAN:=ESC+Chr(33)+Chr(73);
  226.          FRENCH_CANADIAN:=ESC+Chr(33)+Chr(74);
  227.          SPANISH:=ESC+Chr(33)+Chr(75);
  228.          UNIDIRECTIONAL:=ESC+Chr(85)+Chr(1);
  229.          BIDIRECTIONAL:=ESC+Chr(85)+Chr(0);
  230.          FORM_LENGTH_11:=ESC+Chr(67)+Chr(0)+Chr(11);
  231.          LEFT_MARGIN_1:=ESC+Chr(88)+Chr(1)+Chr(80);
  232.          RIGHT_MARGIN_80:=ESC+Chr(88)+Chr(1)+Chr(80);
  233.       end
  234.   end;
  235. end.
  236.  
  237.