home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / rexxface.zip / xbm2ascii.cmd < prev    next >
OS/2 REXX Batch file  |  1998-02-01  |  2KB  |  59 lines

  1. /*
  2.  *  xbm2ascii.cmd  --- width=48 XBM to ascii-picture converter
  3.  *
  4.  *          Copyright (C) 1997-1998  OKUNISHI Fujikazu
  5.  *
  6.  * Author:  OKUNISHI Fujikazu <fuji0924@mbox.kyoto-inet.or.jp>
  7.  * Created: Jul 30, 1997
  8.  * Revised: Feb  1, 1998
  9.  *
  10.  * how2use:
  11.  *  ex.)
  12.  *   1.  xface.cmd +x-face/6 | xbm2ascii.cmd [RET]
  13.  *   2a. xbm2ascii.cmd foo.xbm [RET]
  14.  *   2b. xbm2ascii.cmd < foo.xbm [RET]
  15.  */
  16.  
  17.   Parse Arg IN .
  18.   If IN='' Then Do; If Lines()==0 Then Exit 255; IN='STDIN'; End
  19.            Else If Stream(IN,'C','Query Exist') ='' Then Exit 255
  20.   str=''
  21.  
  22.   Do i=1 By 1 While Lines(IN)
  23.     str.i= Linein(IN)
  24.     If Left(Word(str.i,1),2)<>'0x' Then Iterate
  25.     Do Until Length(str.i) = 0
  26.       Parse Var str.i '0x' strA.i ',' str.i
  27.       strA.i =Substr(strA.i,1,2)
  28.       If Datatype(strA.i,'X') <>1 Then Leave
  29.       strA.i = B2X(Reverse(X2b(strA.i)))
  30.       str = str strA.i
  31.    End
  32.   End
  33.  
  34.   Do i=1 By 1 While Length(str) > 0
  35.     Parse Var str str1.i str2.i str3.i str4.i str5.i str6.i str7.i str8.i str9.i strA.i strB.i strC.i str
  36.     line1.i= X2B(str1.i||str2.i||str3.i||str4.i||str5.i||str6.i)
  37.     line2.i= X2B(str7.i||str8.i||str9.i||strA.i||strB.i||strC.i)
  38.     /* say line1.i; say line2.i*/
  39.   End
  40.  
  41.   Do j=1 to i-1
  42.     l.j=''
  43.     Do m=1 to 48  /* 48x48 */
  44.       a1.j.m=Substr(line1.j,m,1)
  45.       a2.j.m=Substr(line2.j,m,1)
  46.       d.j= a1.j.m||a2.j.m
  47.       If d.j='00' Then d.j=' '
  48.       If d.j='01' Then d.j='w'   /* 'o' */
  49.       If d.j='10' Then d.j='"'
  50.       If d.j='11' Then d.j='W'   /* 'M' 'H' 'Z' */
  51.       l.j=l.j||d.j
  52.     End
  53.     Say l.j
  54.   End
  55.  
  56. Exit
  57.  
  58. /* end of procedure */
  59.