program sets(input,output);
const
   NUM_SETS   = 2;

   SetNames  : Array[1..NUM_SETS] Of String =  (
                   ' 1  - valid char set                            ',
                   ' 2  - terminating char set                      ');

   Tbl       : Array[1..NUM_SETS] Of Set Of 0..255 = (

   {- VCSet -}
             [32..255],

   {- TCSet -}
             [  9,             { Tab         }
               13,             { Enter       }
               15,             { Shft-Tab    }
               68 ] );         { F10         }

Var
   SetArray1,
   SetArray2 : Array[1..32] Of Byte;
   i,j,k,l,m : Integer;

Begin

   for j := 1 To NUM_SETS Do Begin


      Move( Tbl[j], SetArray1, 32 );
      FillChar( SetArray2, 32, 0 );
      For i := 1 To 32 Do Begin
         l := 7;
         For k := 0 To 7 Do Begin
            If (SetArray1[i] And ( 1 Shl k ) <> 0) Then
               SetArray2[i] := SetArray2[i] Or ( 1 Shl l );
            l := l - 1;
         End;
      End;

      Writeln('/* Set',SetNames[j],' */');
      for k := 0 to 3 do begin
         for l := 1 to 8 do
            Write(SetArray2[k*8+l]:3,',');
         writeln;
      End;
      writeln;
      writeln;
   End;
end.
