#! /usr/bin/perl

$Base[0]="A"; # Adenosin
$Base[1]="C"; # Cytosin
$Base[2]="G"; # Guanin
$Base[3]="T"; # Thymin

if(!(-e $ARGV[0]))
{
 die;
}

open(THEFILE, "<" . $ARGV[0]) || die;

seek(THEFILE, 0, 2);
$FileSize=tell(THEFILE);
seek(THEFILE, 0, 0);

if(!read(THEFILE, $Data, $FileSize))
{
 close(THEFILE);
 die;
}

close(THEFILE);

@Data=unpack(C . $FileSize, $Data);

$NumChunks=int($FileSize/16);

$CurByte=0;

for($i=0; $i<$NumChunks; $i++)
{
 for($j=0; $j<16; $j++)
 {
  print($Base[$Data[$CurByte]/64]);
  print($Base[($Data[$CurByte]%64)/16]);
  print($Base[(($Data[$CurByte]%64)%16)/4]);
  print($Base[(($Data[$CurByte]%64)%16)%4], " ");

  $CurByte++;
 }

 print("\n");
}

for($i=0; $i<($FileSize%16); $i++)
{
 print($Base[$Data[$CurByte]/64]);
 print($Base[($Data[$CurByte]%64)/16]);
 print($Base[(($Data[$CurByte]%64)%16)/4]);
 print($Base[(($Data[$CurByte]%64)%16)%4], " ");

 $CurByte++;
}

print("\n");
