                                 
PROGRAM Graphik;{Fuer Block-Graphik mit ITOH 8510A}
                {Eberhard Hewicker, Koblenz, 1983 }
                {ITOH VERSION Rudolf Burkhardt    }

 VAR Name :ARRAY[1..14] OF CHAR;
     Data :FILE OF CHAR;

 PROCEDURE KA; BEGIN 
  WRITE(CHR(255),CHR(255),CHR(255),CHR(255));
  WRITE(CHR(0),CHR(0),CHR(0),CHR(0));END;
 PROCEDURE KB; BEGIN
  WRITE(CHR(240),CHR(240),CHR(240),CHR(240));
  WRITE(CHR(15),CHR(15),CHR(15),CHR(15));END;
 PROCEDURE KG;BEGIN 
  WRITE(CHR(0),CHR(0),CHR(0),CHR(0));
  WRITE(CHR(240),CHR(240),CHR(240),CHR(240));END;
 PROCEDURE KD;BEGIN 
  WRITE(CHR(0),CHR(0),CHR(0),CHR(0));         
  WRITE(CHR(255),CHR(255),CHR(255),CHR(255));END;
 PROCEDURE KI;BEGIN 
  WRITE(CHR(0),CHR(0),CHR(252),CHR(252));
  WRITE(CHR(252),CHR(252),CHR(60),CHR(60));END;
 PROCEDURE KE;BEGIN 
  WRITE(CHR(15),CHR(15),CHR(15),CHR(15));
  WRITE(CHR(255),CHR(255),CHR(255),CHR(255));END;
 PROCEDURE KF;    BEGIN 
  WRITE(CHR(240),CHR(240),CHR(240),CHR(240));        
  WRITE(CHR(0),CHR(0),CHR(0),CHR(0));END;
 PROCEDURE KJ;    BEGIN 
  WRITE(CHR(128),CHR(192),CHR(224),CHR(240));        
  WRITE(CHR(248),CHR(252),CHR(254),CHR(255));END;
 PROCEDURE KH;    BEGIN 
  WRITE(CHR(255),CHR(254),CHR(252),CHR(248));       
  WRITE(CHR(240),CHR(224),CHR(192),CHR(128));END;
 PROCEDURE KL; BEGIN
  WRITE(CHR(60),CHR(60),CHR(255),CHR(255));
  WRITE(CHR(255),CHR(255),CHR(60),CHR(60));END;    
 PROCEDURE KQ; BEGIN 
  WRITE(CHR(255),CHR(255),CHR(255),CHR(255));       
  WRITE(CHR(15),CHR(15),CHR(15),CHR(15));END;
 PROCEDURE KM; BEGIN     
  WRITE(CHR(0),CHR(60),CHR(126),CHR(126));
  WRITE(CHR(126),CHR(126),CHR(60),CHR(0));END;
 PROCEDURE KN; BEGIN     
  WRITE(CHR(15),CHR(15),CHR(15),CHR(15));        
  WRITE(CHR(240),CHR(240),CHR(240),CHR(240));END;
 PROCEDURE KO; BEGIN  
  WRITE(CHR(60),CHR(60),CHR(252),CHR(252));
  WRITE(CHR(252),CHR(252),CHR(60),CHR(60));END;
 PROCEDURE KU; BEGIN  
  WRITE(CHR(1),CHR(3),CHR(7),CHR(15));    
  WRITE(CHR(31),CHR(63),CHR(127),CHR(255)); END;
 PROCEDURE KP;    BEGIN  
  WRITE(CHR(60),CHR(60),CHR(252),CHR(252));        
  WRITE(CHR(252),CHR(252),CHR(0),CHR(0));END;
 PROCEDURE KW; BEGIN     
  WRITE(CHR(15),CHR(15),CHR(15),CHR(15));         
  WRITE(CHR(15),CHR(15),CHR(15),CHR(15));END;
 PROCEDURE KR; BEGIN   
  WRITE(CHR(15),CHR(15),CHR(15),CHR(15));
  WRITE(CHR(0),CHR(0),CHR(0),CHR(0));END;
 PROCEDURE KS;  BEGIN   
  WRITE(CHR(51),CHR(51),CHR(204),CHR(204));
  WRITE(CHR(51),CHR(51),CHR(204),CHR(204));END;
 PROCEDURE KX;  BEGIN  
  WRITE(CHR(240),CHR(240),CHR(240),CHR(240));         
  WRITE(CHR(240),CHR(240),CHR(240),CHR(240));END;
 PROCEDURE KV;  BEGIN  
  WRITE(CHR(255),CHR(255),CHR(255),CHR(255));    
  WRITE(CHR(255),CHR(255),CHR(255),CHR(255));END;
 PROCEDURE KY;  BEGIN  
  WRITE(CHR(255),CHR(127),CHR(63),CHR(31));     
  WRITE(CHR(15),CHR(7),CHR(3),CHR(1));END;
 PROCEDURE KT; BEGIN  
  WRITE(CHR(0),CHR(0),CHR(0),CHR(0));        
  WRITE(CHR(15),CHR(15),CHR(15),CHR(15));END;
 PROCEDURE KZ; BEGIN  
  WRITE(CHR(255),CHR(255),CHR(255),CHR(255));        
  WRITE(CHR(240),CHR(240),CHR(240),CHR(240));END;
 PROCEDURE KKLA; BEGIN  
  WRITE(CHR(60),CHR(60),CHR(60),CHR(60));         
  WRITE(CHR(60),CHR(60),CHR(60),CHR(60));END;
 PROCEDURE KDA; BEGIN 
  WRITE(CHR(0),CHR(0),CHR(63),CHR(63));        
  WRITE(CHR(63),CHR(63),CHR(60),CHR(60));END;
 PROCEDURE KTILDE; BEGIN
  WRITE(CHR(60),CHR(60),CHR(63),CHR(63));
  WRITE(CHR(63),CHR(63),CHR(60),CHR(60));END;
 PROCEDURE GRAFIK; BEGIN
  WRITE(CHR(27),CHR(83),'0008');END;{meldet dem ITOH 8510A 8er Grafikworte}
 PROCEDURE KK; BEGIN
  WRITE(CHR(0),CHR(0),CHR(255),CHR(255));        
  WRITE(CHR(255),CHR(255),CHR(0),CHR(0));END;
 PROCEDURE KC;   BEGIN
  WRITE(CHR(240),CHR(240),CHR(240),CHR(240));        
  WRITE(CHR(255),CHR(255),CHR(255),CHR(255));END;
 PROCEDURE KKLZ; BEGIN
  WRITE(CHR(60),CHR(60),CHR(63),CHR(63));
  WRITE(CHR(63),CHR(63),CHR(0),CHR(0));END;

 PROCEDURE Ausgabe;
  BEGIN
   RESET(Data, Name);PRON;    {File eroeffnen, Drucker ein}
   WRITE(CHR(27),CHR(84),'16'); {Zeilenabstand=0}
   WRITE(CHR(27),CHR(62));       {Unidirektional} 
   WHILE NOT EOF(Data) DO                 {End of File?}
     BEGIN                                {wenn ja, dann END!}
      GET(Data);                          {Lies ein Zeichen}
      IF EOLN(Data) THEN WRITELN  {wenn Zeilenende, dann 1 Zeilenvorschub}
        ELSE BEGIN;
          IF (Data^<'a') THEN WRITE(Data^){Normalzeichen, zum Drucker}
           ELSE BEGIN                     {Sonderzeichen, Procedure suchen}
	   CASE Data^ OF
	   'a':BEGIN GRAFIK;KA END;     'b':BEGIN GRAFIK;KB END;
           'g':BEGIN GRAFIK;KG END;     'd':BEGIN GRAFIK;KD END;
           'i':BEGIN GRAFIK;KI END;     'e':BEGIN GRAFIK;KE END;
           'f':BEGIN GRAFIK;KF END;     'j':BEGIN GRAFIK;KJ END;
           'h':BEGIN GRAFIK;KH END;     'l':BEGIN GRAFIK;KL END;
           'u':BEGIN GRAFIK;KU END;     'm':BEGIN GRAFIK;KM END;
           'n':BEGIN GRAFIK;KN END;     'o':BEGIN GRAFIK;KO END;
           'w':BEGIN GRAFIK;KW END;     'p':BEGIN GRAFIK;KP END;
           'x':BEGIN GRAFIK;KX END;     'k':BEGIN GRAFIK;KK END;
           'r':BEGIN GRAFIK;KR END;     's':BEGIN GRAFIK;KS END;
           'y':BEGIN GRAFIK;KY END;     'v':BEGIN GRAFIK;KV END;
           'z':BEGIN GRAFIK;KZ END;     'c':BEGIN GRAFIK;KC END; 
           't':BEGIN GRAFIK;KT END;     'q':BEGIN GRAFIK;KQ END;
           '{':BEGIN GRAFIK;KKLA END;   '|':BEGIN GRAFIK;KDA END;
           '~':BEGIN GRAFIK;KTILDE END; '}':BEGIN GRAFIK;KKLZ END 
           END
	  END                   
	 END
        END        
      END;
 BEGIN    {Beginn des Hauptprogrammes}
   WRITE(CHR(26));
   WRITELN;WRITE('      ----------------------------');
   WRITELN;WRITE('      (C) HEWICKER, BURKHARDT 1984');
   WRITELN;WRITE('      ----------------------------');
   WRITELN;WRITE('      PROGRAM BLOCK.COM PRODUCES');
   WRITELN;WRITE('      THE OSBORNE 1 GRAPHIC SYMBOLS');
   WRITELN;WRITE('      ON THE ITOH 8510 A PRINTER.');
   WRITELN;WRITE('      ----------------------------');
   WRITELN;WRITE('      INPUT FILENAME.EXT - BUT:');
   WRITELN;WRITE('      2 SPACES AHEAD ..........');
   READLN;
   READ(Name); 
  Ausgabe;     
 END.          



