[Back to EGAVGA SWAG index]  [Back to Main SWAG index]  [Original]


{..$define First} { disable to force loading of file }

{use this if you launch the program for the first time (you also may add a
code to detect if the file already exiists but... normally, you should use
this option once.}

program GenSmallCar;
{CopyRight Thierry De Leeuw 1994}
uses crt, dos, graph;

Type TSmallCar = Array [0..8] of Byte;
     PSmallCar = ^TSmallCar;

var  SmallCar : Array[32..180] of PSmallCar;
     Buffer   : Array[0..7,0..8] of Char;
     grDriver : Integer;
     grMode   : Integer;
     ErrCode  : Integer;
     EnCours  : Byte;

Procedure ReserveMemoire;
var i : byte;
begin
   For i := 32 to 180 do
   begin
      New(SmallCar[i]);
   end;
end;

procedure ChargeTable;
var Fichier : Text;
    i       : byte;
    j       : byte;
begin
   {$Ifndef First}
   Assign(Fichier, 'Small.FON');
   Reset(Fichier);
   {$Endif}
   For i := 32 to 180 do
   begin
      for j := 0 to 8 do
      begin
         {$IFDEF First}
         SmallCar[i]^[j] := 0;
         {$Else}
         readLn(Fichier, SmallCar[i]^[j]);
         {$Endif}
      end;
      {$Ifndef First}
      Readln(Fichier);
      {$Endif}
   end;
   {$Ifndef First}
   Close(Fichier);
   {$endif}
end;

function Analyse(Valeur: byte) : String;
var Tmp : String[19];
begin
   Tmp := ' ';
   Analyse := Tmp


end;

Procedure Update(No : Byte);
var i : byte;
    j : byte;

begin
   ClrScr;
   LowVideo;
   GotoXY(22,1);
   Write('Edition du caractŠre nø ',No:3,' - "',Chr(No),'".');
   GotoXY(22,2);
   Write('ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ');
   gotoXY(30,4);
   Write('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
   gotoXY(30,5);
   Write('º                 º');
   gotoXY(30,6);
   Write('º                 º');
   gotoXY(30,7);
   Write('º                 º');
   gotoXY(30,8);
   Write('º                 º');
   gotoXY(30,9);
   Write('º                 º');
   gotoXY(30,10);
   Write('º                 º');
   gotoXY(30,11);
   Write('º                 º');
   gotoXY(30,12);
   Write('º                 º');
   gotoXY(30,13);
   Write('º                 º');
   gotoXY(30,14);
   Write('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
   For i := 0 to 8 do
   begin
      gotoXY(31,5+i);
      For j := 0 to 7 do
         Write(' ' + Buffer[j,i]);
   end;
end;

Procedure Bufferize(No : Byte);
var i : byte;
begin
   for i := 0 to 8 do
   begin
      if SmallCar[No]^[i] and 1 <> 0 then Buffer[0,i] := '*' else Buffer[0,i]
:= 'ú';
      if SmallCar[No]^[i] and 2 <> 0 then Buffer[1,i] := '*' else Buffer[1,i]
:= 'ú';
      if SmallCar[No]^[i] and 4 <> 0 then Buffer[2,i] := '*' else Buffer[2,i]
:= 'ú';
      if SmallCar[No]^[i] and 8 <> 0 then Buffer[3,i] := '*' else Buffer[3,i]
:= 'ú';
      if SmallCar[No]^[i] and 16 <> 0 then Buffer[4,i] := '*' else Buffer[4,i]
:= 'ú';
      if SmallCar[No]^[i] and 32 <> 0 then Buffer[5,i] := '*' else Buffer[5,i]
:= 'ú';
      if SmallCar[No]^[i] and 64 <> 0 then Buffer[6,i] := '*' else Buffer[6,i]
:= 'ú';
      if SmallCar[No]^[i] and 128 <> 0 then Buffer[7,i] := '*' else
Buffer[7,i] := 'ú';

   end;
end;

procedure Encode(No : Byte);
var i,j : byte;
begin
   for i := 0 to 8 do
   begin
      SmallCar[No]^[i] := 0;
      if Buffer[0,i] = '*' then SmallCar[No]^[i] := 1;
      if Buffer[1,i] = '*' then SmallCar[No]^[i] := SmallCar[No]^[i] + 2;
      if Buffer[2,i] = '*' then SmallCar[No]^[i] := SmallCar[No]^[i] + 4;
      if Buffer[3,i] = '*' then SmallCar[No]^[i] := SmallCar[No]^[i] + 8;
      if Buffer[4,i] = '*' then SmallCar[No]^[i] := SmallCar[No]^[i] + 16;
      if Buffer[5,i] = '*' then SmallCar[No]^[i] := SmallCar[No]^[i] + 32;
      if Buffer[6,i] = '*' then SmallCar[No]^[i] := SmallCar[No]^[i] + 64;
      if Buffer[7,i] = '*' then SmallCar[No]^[i] := SmallCar[No]^[i] + 128;
   end;
end;

procedure Preview;
var i, j : byte;
begin
   initGraph(grDriver,GrMode,'\turbo\tp\');
   for i := 0 to 8 do
   begin
      for j := 0 to 7 do
      begin
         if Buffer[j,i] = '*' then putpixel(j+GetMaxX div 2 ,i+GetMaxY div
2,15);
      end;
   end;
   readkey;
   closeGraph;
end;

procedure PreviewAll;
var i, j, k : byte;
begin
   initGraph(grDriver,GrMode,'\turbo\tp\');
   for k := 32 to 96 do
   begin
      Bufferize(k);
      for i := 0 to 8 do
      begin
         for j := 0 to 7 do
         begin
            if Buffer[j,i] = '*' then putpixel(j+(k-32) * 9 ,i+GetMaxY div
2-10,15);
         end;
      end;
   end;
   for k := 97 to 180 do
   begin
      Bufferize(k);
      for i := 0 to 8 do
      begin
         for j := 0 to 7 do
         begin
            if Buffer[j,i] = '*' then putpixel(j+(k-97) * 9 ,i+GetMaxY div
2+10,15);
         end;
      end;
   end;
   readkey;
   closeGraph;
end;

function Edit(No : byte) : Char;
var x, y : byte;
    car  : Char;
    Sortie : Boolean;
    Go     : byte;
begin
   UpDate(No);
   x := 0;
   y := 0;
   Sortie := false;

   repeat
      GotoXY(32 + 2*x,5+y);
      HighVideo;
      Write(Buffer[x,y]);
      GotoXY(32 + 2*x,5+y);
      repeat
      until keypressed;
      car := ReadKey;
      GotoXY(32 + 2*x,5+y);
      LowVideo;
      Write(Buffer[x,y]);
      if (car = 'q') or (car = 'Q') then car := #13;
      if car = #0 then car := ReadKey;
      case car of
         '2',chr(80)   : if y = 8 then y := 0 else inc(y);
         '8',chr(72)   : if y = 0 then y := 8 else dec(y);
         '4',chr(75)   : if x = 0 then x := 7 else dec(x);
         '6',chr(77)   : if x = 7 then x := 0 else inc(x);
         ' '           : if Buffer[x,y] = '*' then Buffer[x,y] := 'ú' else
Buffer[x,y] := '*';
         #13, #81, #73 : Sortie := true;
         #27           : Sortie := True;
         'G','g'       : begin
                            GotoXY(20,24);
                            Write('Aller … quel code ascii ? ');
                            Read(Go);
                            if (Go >= 32) and (go <= 180) then
                            begin
                               Encode(No);
                               EnCours := Go -1;
                               Car := #81;
                               Sortie := true;
                            end;
                            GotoXY(1,24);
                            ClrEol;
                         end;

         'v'           : begin
                           Preview;
                           update(No);
                         end;
         'a'           : begin
                            Encode(No);
                            PreviewAll;
                            Bufferize(No);
                            Update(No);
                         end;
      end;
   until (sortie);
   Encode(No);
   Edit := Car;
end;

procedure EditeTable;
var fin     : boolean;
    Car     : char;
    Car_Retour : char;
begin
   fin := false;
   Encours := 32;
   repeat
      Bufferize(Encours);
      Car_Retour := Edit(EnCours);
      case car_Retour of
         #13 : begin
                  gotoXY(20,24);
                  Write('Quitter ? ');
                  Car := UpCase(readKey);
                  GotoXY(1,24);
                  ClrEol;
                  if Car = 'O' then Fin := true;
               end;
         #81 : begin
                  if EnCours = 180 then Encours := 32 else inc(EnCours);
               end;
         #73 : begin
                  if EnCours = 32 then Encours := 180 else dec(EnCours);
               end;
         #27 : begin
                  gotoXY(20,24);
                  Write('Abandon des modifications ? ');
                  Car := UpCase(readKey);
                  GotoXY(1,24);
                  ClrEol;
                  if Car = 'O' then Halt(0);
               end;
      end;
   until fin;
end;

procedure SauveTable;
var Fichier : Text;
    i       : byte;
    j       : byte;
begin
   Assign(Fichier, 'Small.FON');
   Rewrite(Fichier);
   For i := 32 to 180 do
   begin
      for j := 0 to 8 do
      begin
         writeLn(Fichier, SmallCar[i]^[j]);
      end;
      WriteLn(Fichier);
   end;
   Close(Fichier);
end;

begin
   DetectGraph(GrDriver, GrMode);
   InitGraph(grDriver, grMode,'\turbo\tp\');
   ErrCode := GraphResult;
   if ErrCode <> grOk then
   begin
     Writeln('Graphics error:', GraphErrorMsg(ErrCode));
     Halt(255);
   end;
   CloseGraph;


   NormVideo;
   ReserveMemoire;
   ChargeTable;
   EditeTable;
   SauveTable;
end.

{$define}
{same remark as above}

program GenMidCar;
{CopyRight Thierry De Leeuw 1994}
uses crt, dos, graph;

Type TMidCar = Array [0..18] of Word;
     PMidCar = ^TMidCar;

var  MidCar : Array[32..180] of PMidCar;
     Buffer   : Array[0..15,0..18] of Char;
     grDriver : Integer;
     grMode   : Integer;
     ErrCode  : Integer;
     EnCours  : Byte;

Procedure ReserveMemoire;
var i : byte;
begin
   For i := 32 to 180 do
   begin
      New(MidCar[i]);
   end;
end;

procedure ChargeTable;
var Fichier : Text;
    i       : byte;
    j       : byte;
begin
   {$Ifndef First}
   Assign(Fichier, 'Mid.FON');
   Reset(Fichier);
   {$Endif}
   For i := 32 to 180 do
   begin
      for j := 0 to 18 do
      begin
         {$IFDEF First}
         MidCar[i]^[j] := 0;
         {$Else}
         readLn(Fichier, MidCar[i]^[j]);
         {$Endif}
      end;
      {$Ifndef First}
      Readln(Fichier);
      {$Endif}
   end;
   {$Ifndef First}
   Close(Fichier);
   {$endif}
end;

function Analyse(Valeur: byte) : String;
var Tmp : String[19];
begin
   Tmp := ' ';
   Analyse := Tmp


end;

Procedure Update(No : Byte);
var i : byte;
    j : byte;

begin
   ClrScr;
   LowVideo;
   GotoXY(22,1);
   Write('Edition du caractŠre nø ',No:3,' - "',Chr(No),'".');
   GotoXY(22,2);
   Write('ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ');
   gotoXY(20,4);
   Write('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
   gotoXY(20,5);
   Write('º                                 º');
   gotoXY(20,6);
   Write('º                                 º');
   gotoXY(20,7);
   Write('º                                 º');
   gotoXY(20,8);
   Write('º                                 º');
   gotoXY(20,9);
   Write('º                                 º');
   gotoXY(20,10);
   Write('º                                 º');
   gotoXY(20,11);
   Write('º                                 º');
   gotoXY(20,12);
   Write('º                                 º');
   gotoXY(20,13);
   Write('º                                 º');
   gotoXY(20,14);
   Write('º                                 º');
   gotoXY(20,15);
   Write('º                                 º');
   gotoXY(20,16);
   Write('º                                 º');
   gotoXY(20,17);
   Write('º                                 º');
   gotoXY(20,18);
   Write('º                                 º');
   gotoXY(20,19);
   Write('º                                 º');
   gotoXY(20,20);
   Write('º                                 º');
   gotoXY(20,21);
   Write('º                                 º');
   gotoXY(20,22);
   Write('º                                 º');
   gotoXY(20,23);
   Write('º                                 º');
   gotoXY(20,24);
   Write('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
   For i := 0 to 18 do
   begin
      gotoXY(21,5+i);
      For j := 0 to 15 do
         Write(' ' + Buffer[j,i]);
   end;
end;

Procedure Bufferize(No : Byte);
var i : byte;
begin
   for i := 0 to 18 do
   begin
      if MidCar[No]^[i] and 1 <> 0 then Buffer[0,i] := '*' else Buffer[0,i] :=
'ú';
      if MidCar[No]^[i] and 2 <> 0 then Buffer[1,i] := '*' else Buffer[1,i] :=
'ú';
      if MidCar[No]^[i] and 4 <> 0 then Buffer[2,i] := '*' else Buffer[2,i] :=
'ú';
      if MidCar[No]^[i] and 8 <> 0 then Buffer[3,i] := '*' else Buffer[3,i] :=
'ú';
      if MidCar[No]^[i] and 16 <> 0 then Buffer[4,i] := '*' else Buffer[4,i]
:= 'ú';
      if MidCar[No]^[i] and 32 <> 0 then Buffer[5,i] := '*' else Buffer[5,i]
:= 'ú';
      if MidCar[No]^[i] and 64 <> 0 then Buffer[6,i] := '*' else Buffer[6,i]
:= 'ú';
      if MidCar[No]^[i] and 128 <> 0 then Buffer[7,i] := '*' else Buffer[7,i]
:= 'ú';
      if MidCar[No]^[i] and 256 <> 0 then Buffer[8,i] := '*' else Buffer[8,i]
:= 'ú';
      if MidCar[No]^[i] and 512 <> 0 then Buffer[9,i] := '*' else Buffer[9,i]
:= 'ú';
      if MidCar[No]^[i] and 1024 <> 0 then Buffer[10,i] := '*' else
Buffer[10,i] := 'ú';
      if MidCar[No]^[i] and 2048 <> 0 then Buffer[11,i] := '*' else
Buffer[11,i] := 'ú';
      if MidCar[No]^[i] and 4096 <> 0 then Buffer[12,i] := '*' else
Buffer[12,i] := 'ú';
      if MidCar[No]^[i] and 8192 <> 0 then Buffer[13,i] := '*' else
Buffer[13,i] := 'ú';
      if MidCar[No]^[i] and 16384 <> 0 then Buffer[14,i] := '*' else
Buffer[14,i] := 'ú';
      if MidCar[No]^[i] and 32768 <> 0 then Buffer[15,i] := '*' else
Buffer[15,i] := 'ú';

   end;
end;

procedure Encode(No : Byte);
var i,j : byte;
begin
   for i := 0 to 18 do
   begin
      MidCar[No]^[i] := 0;
      if Buffer[0,i] = '*' then MidCar[No]^[i] := 1;
      if Buffer[1,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 2;
      if Buffer[2,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 4;
      if Buffer[3,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 8;
      if Buffer[4,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 16;
      if Buffer[5,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 32;
      if Buffer[6,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 64;
      if Buffer[7,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 128;
      if Buffer[8,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 256;
      if Buffer[9,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 512;
      if Buffer[10,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 1024;
      if Buffer[11,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 2048;
      if Buffer[12,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 4096;
      if Buffer[13,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 8192;
      if Buffer[14,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 16384;
      if Buffer[15,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 32768;
   end;
end;

procedure Preview;
var i, j : byte;
begin
   initGraph(grDriver,GrMode,'\turbo\tp\');
   for i := 0 to 18 do
   begin
      for j := 0 to 15 do
      begin
         if Buffer[j,i] = '*' then putpixel(j+GetMaxX div 2 ,i+GetMaxY div
2,15);
      end;
   end;
   readkey;
   closeGraph;
end;

procedure PreviewAll;
var i, j, k : byte;
begin
   initGraph(grDriver,GrMode,'\turbo\tp\');
   for k := 32 to 64 do
   begin
      Bufferize(k);
      for i := 0 to 18 do
      begin
         for j := 0 to 15 do
         begin
            if Buffer[j,i] = '*' then putpixel(j+(k-32) * 18 ,i+GetMaxY div
2-20,15);
         end;
      end;
   end;
   for k := 65 to 96 do
   begin
      Bufferize(k);
      for i := 0 to 18 do
      begin
         for j := 0 to 15 do
         begin
            if Buffer[j,i] = '*' then putpixel(j+(k-65) * 18 ,i+GetMaxY div
2+10,15);
         end;
      end;
   end;
   for k :=  97 to 127 do
   begin
      Bufferize(k);
      for i := 0 to 18 do
      begin
         for j := 0 to 15 do
         begin
            if Buffer[j,i] = '*' then putpixel(j+(k-97) * 18 ,i+GetMaxY div
2+30,15);
         end;
      end;
   end;
   for k :=  128 to 155 do
   begin
      Bufferize(k);
      for i := 0 to 18 do
      begin
         for j := 0 to 15 do
         begin
            if Buffer[j,i] = '*' then putpixel(j+(k-128) * 18 ,i+GetMaxY div
2+50,15);
         end;
      end;
   end;
   for k :=  156 to 180 do
   begin
      Bufferize(k);
      for i := 0 to 18 do
      begin
         for j := 0 to 15 do
         begin
            if Buffer[j,i] = '*' then putpixel(j+(k-156) * 18 ,i+GetMaxY div
2+70,15);
         end;
      end;
   end;
   readkey;
   closeGraph;
end;

function Edit(No : byte) : Char;
var x, y : byte;
    car  : Char;
    Sortie : Boolean;
    Go     : byte;
    CaracTempo :  char;
begin
   UpDate(No);
   x := 0;
   y := 0;
   Sortie := false;

   repeat
      GotoXY(22 + 2*x,5+y);
      HighVideo;
      Write(Buffer[x,y]);
      GotoXY(22 + 2*x,5+y);
      repeat
      until keypressed;
      car := ReadKey;
      GotoXY(22 + 2*x,5+y);
      LowVideo;
      Write(Buffer[x,y]);
      if (car = 'q') or (car = 'Q') then car := #13;
      if car = #0 then car := ReadKey;
      case car of
         '2',chr(80)   : if y = 18 then y := 0 else inc(y);
         '8',chr(72)   : if y = 0 then y := 18 else dec(y);
         '4',chr(75)   : if x = 0 then x := 15 else dec(x);
         '6',chr(77)   : if x = 15 then x := 0 else inc(x);
         ' '           : if Buffer[x,y] = '*' then Buffer[x,y] := 'ú' else
Buffer[x,y] := '*';
         #13, #81, #73 : Sortie := true;
         #27           : Sortie := True;
         'G','g'       : begin
                            GotoXY(20,24);
                            Write('Aller … quel code ascii ? ');
                            Read(Go);
                            if (Go >= 32) and (go <= 180) then
                            begin
                               Encode(No);
                               EnCours := Go -1;
                               Car := #81;
                               Sortie := true;
                            end;
                            GotoXY(1,24);
                            ClrEol;
                         end;

         'v', 'V'      : begin
                           Preview;
                           update(No);
                         end;
         'a', 'A'      : begin
                            Encode(No);
                            PreviewAll;
                            Bufferize(No);
                            Update(No);
                         end;
         'c', 'C'      : begin
                            gotoXY(20,24);
                            Write('Copier quel caractŠre ? ');
                            CaracTempo := ReadKey;
                            if CaracTempo <> #13 then
                            begin
                               Bufferize(ord(CaracTempo));
                               UpDate(EnCOurs);
                            end;
                            GotoXY(20,24);
                            ClrEol;
                         end;
      end;
   until (sortie);
   Encode(No);
   Edit := Car;
end;

procedure EditeTable;
var fin     : boolean;
    Car     : char;
    Car_Retour : char;
begin
   fin := false;
   Encours := 32;
   repeat
      Bufferize(Encours);
      Car_Retour := Edit(EnCours);
      case car_Retour of
         #13 : begin
                  gotoXY(20,24);
                  Write('Quitter ? ');
                  Car := UpCase(readKey);
                  GotoXY(1,24);
                  ClrEol;
                  if Car = 'O' then Fin := true;
               end;
         #81 : begin
                  if EnCours = 180 then Encours := 32 else inc(EnCours);
               end;
         #73 : begin
                  if EnCours = 32 then Encours := 180 else dec(EnCours);
               end;
         #27 : begin
                  gotoXY(20,24);
                  Write('Abandon des modifications ? ');
                  Car := UpCase(readKey);
                  GotoXY(1,24);
                  ClrEol;
                  if Car = 'O' then Halt(0);
               end;
      end;
   until fin;
end;

procedure SauveTable;
var Fichier : Text;
    i       : byte;
    j       : byte;
begin
   Assign(Fichier, 'Mid.FON');
   Rewrite(Fichier);
   For i := 32 to 180 do
   begin
      for j := 0 to 18 do
      begin
         writeLn(Fichier, MidCar[i]^[j]);
      end;
      WriteLn(Fichier);
   end;
   Close(Fichier);
end;

begin
   DetectGraph(GrDriver, GrMode);
   InitGraph(grDriver, grMode,'\turbo\tp\');
   ErrCode := GraphResult;
   if ErrCode <> grOk then
   begin
     Writeln('Graphics error:', GraphErrorMsg(ErrCode));
     Halt(255);
   end;
   CloseGraph;


   NormVideo;
   ReserveMemoire;
   ChargeTable;
   EditeTable;
   SauveTable;
end.

{$define}
{same remark as above}
program GenMidCar;

{CopyRight Thierry De Leeuw 1994}

uses crt, dos, graph;

Type TBigCar = Array [0..36] of LongInt;
     PBigCar = ^TBigCar;
     TEtat = (Move, delete, trace);

var  BigCar : Array[32..180] of PBigCar;
     Buffer   : Array[0..31,0..36] of Char;
     grDriver : Integer;
     grMode   : Integer;
     ErrCode  : Integer;
     EnCours  : Byte;
     Etat     : TEtat;

Procedure ReserveMemoire;
var i : byte;
begin
   For i := 32 to 180 do
   begin
      New(BigCar[i]);
   end;
end;

procedure ChargeTable;
var Fichier : Text;
    i       : byte;
    j       : byte;
begin
   {$Ifndef First}
   Assign(Fichier, 'Big.FON');
   Reset(Fichier);
   {$Endif}
   For i := 32 to 180 do
   begin
      for j := 0 to 36 do
      begin
         {$IFDEF First}
         BigCar[i]^[j] := 0;
         {$Else}
         readLn(Fichier, BigCar[i]^[j]);
         {$Endif}
      end;
      {$Ifndef First}
      Readln(Fichier);
      {$Endif}
   end;
   {$Ifndef First}
   Close(Fichier);
   {$endif}
end;

function Analyse(Valeur: byte) : String;
var Tmp : String[19];
begin
   Tmp := ' ';
   Analyse := Tmp
end;

Procedure Update(No : Byte);
var i : byte;
    j : byte;

begin
   ClrScr;
   textMode(258);
   LowVideo;
   GotoXY(1,1);
   if etat = move then write('Move')
   else
      if etat = delete then write('Delete')
      else
         if etat = trace then write('Trace');
   GotoXY(22,1);
   Write('Edition du caractŠre nø ',No:3,' - "',Chr(No),'".');
   GotoXY(22,2);
   Write('ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ');
   gotoXY(2,4);
Write('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
   gotoXY(2,5);
   Write('º º');
   gotoXY(2,6);
   Write('º º');
   gotoXY(2,7);
   Write('º º');
   gotoXY(2,8);
   Write('º º');
   gotoXY(2,9);
   Write('º º');
   gotoXY(2,10);
   Write('º º');
   gotoXY(2,11);
   Write('º º');
   gotoXY(2,12);
   Write('º º');
   gotoXY(2,13);
   Write('º º');
   gotoXY(2,14);
   Write('º º');
   gotoXY(2,15);
   Write('º º');
   gotoXY(2,16);
   Write('º º');
   gotoXY(2,17);
   Write('º º');
   gotoXY(2,18);
   Write('º º');
   gotoXY(2,19);
   Write('º º');
   gotoXY(2,20);
   Write('º º');
   gotoXY(2,21);
   Write('º º');
   gotoXY(2,22);
   Write('º º');
   gotoXY(2,23);
   Write('º º');
   gotoXY(2,24);
   Write('º º');
   gotoXY(2,25);
   Write('º º');
   gotoXY(2,26);
   Write('º º');
   gotoXY(2,27);
   Write('º º');
   gotoXY(2,28);
   Write('º º');
   gotoXY(2,29);
   Write('º º');
   gotoXY(2,30);
   Write('º º');
   gotoXY(2,31);
   Write('º º');
   gotoXY(2,32);
   Write('º º');
   gotoXY(2,33);
   Write('º º');
   gotoXY(2,34);
   Write('º º');
   gotoXY(2,35);
   Write('º º');
   gotoXY(2,36);
   Write('º º');
   gotoXY(2,37);
   Write('º º');
   gotoXY(2,38);
   Write('º º');
   gotoXY(2,39);
   Write('º º');
   gotoXY(2,40);
   Write('º º');
   gotoXY(2,41);
   Write('º º');
   gotoXY(2,42);
   Write('º º');
   gotoXY(2,43);
Write('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
   For i := 0 to 36 do
   begin
      gotoXY(3,5+i);
      For j := 0 to 31 do
         Write(' ' + Buffer[j,i]);
   end;
end;

Procedure Bufferize(No : Byte);
var i : byte;
begin
   for i := 0 to 36 do
   begin
      if BigCar[No]^[i] and 1 <> 0 then Buffer[0,i] := '*' else Buffer[0,i] :=
'ú';
      if BigCar[No]^[i] and 2 <> 0 then Buffer[1,i] := '*' else Buffer[1,i] :=
'ú';
      if BigCar[No]^[i] and 4 <> 0 then Buffer[2,i] := '*' else Buffer[2,i] :=
'ú';
      if BigCar[No]^[i] and 8 <> 0 then Buffer[3,i] := '*' else Buffer[3,i] :=
'ú';
      if BigCar[No]^[i] and $10 <> 0 then Buffer[4,i] := '*' else Buffer[4,i]
:= 'ú';
      if BigCar[No]^[i] and $20 <> 0 then Buffer[5,i] := '*' else Buffer[5,i]
:= 'ú';
      if BigCar[No]^[i] and $40 <> 0 then Buffer[6,i] := '*' else Buffer[6,i]
:= 'ú';
      if BigCar[No]^[i] and $80 <> 0 then Buffer[7,i] := '*' else Buffer[7,i]
:= 'ú';
      if BigCar[No]^[i] and $100 <> 0 then Buffer[8,i] := '*' else Buffer[8,i]
:= 'ú';
      if BigCar[No]^[i] and $200 <> 0 then Buffer[9,i] := '*' else Buffer[9,i]
:= 'ú';
      if BigCar[No]^[i] and $400 <> 0 then Buffer[10,i] := '*' else
Buffer[10,i] := 'ú';
      if BigCar[No]^[i] and $800 <> 0 then Buffer[11,i] := '*' else
Buffer[11,i] := 'ú';
      if BigCar[No]^[i] and $1000 <> 0 then Buffer[12,i] := '*' else
Buffer[12,i] := 'ú';
      if BigCar[No]^[i] and $2000 <> 0 then Buffer[13,i] := '*' else
Buffer[13,i] := 'ú';
      if BigCar[No]^[i] and $4000 <> 0 then Buffer[14,i] := '*' else
Buffer[14,i] := 'ú';
      if BigCar[No]^[i] and $8000 <> 0 then Buffer[15,i] := '*' else
Buffer[15,i] := 'ú';
      if BigCar[No]^[i] and $10000 <> 0 then Buffer[16,i] := '*' else
Buffer[16,i] := 'ú';
      if BigCar[No]^[i] and $20000 <> 0 then Buffer[17,i] := '*' else
Buffer[17,i] := 'ú';
      if BigCar[No]^[i] and $40000 <> 0 then Buffer[18,i] := '*' else
Buffer[18,i] := 'ú';
      if BigCar[No]^[i] and $80000 <> 0 then Buffer[19,i] := '*' else
Buffer[19,i] := 'ú';
      if BigCar[No]^[i] and $100000 <> 0 then Buffer[20,i] := '*' else
Buffer[20,i] := 'ú';
      if BigCar[No]^[i] and $200000 <> 0 then Buffer[21,i] := '*' else
Buffer[21,i] := 'ú';
      if BigCar[No]^[i] and $400000 <> 0 then Buffer[22,i] := '*' else
Buffer[22,i] := 'ú';
      if BigCar[No]^[i] and $800000 <> 0 then Buffer[23,i] := '*' else
Buffer[23,i] := 'ú';
      if BigCar[No]^[i] and $1000000 <> 0 then Buffer[24,i] := '*' else
Buffer[24,i] := 'ú';
      if BigCar[No]^[i] and $2000000 <> 0 then Buffer[25,i] := '*' else
Buffer[25,i] := 'ú';
      if BigCar[No]^[i] and $4000000 <> 0 then Buffer[26,i] := '*' else
Buffer[26,i] := 'ú';
      if BigCar[No]^[i] and $8000000 <> 0 then Buffer[27,i] := '*' else
Buffer[27,i] := 'ú';
      if BigCar[No]^[i] and $10000000 <> 0 then Buffer[28,i] := '*' else
Buffer[28,i] := 'ú';
      if BigCar[No]^[i] and $20000000 <> 0 then Buffer[29,i] := '*' else
Buffer[29,i] := 'ú';
      if BigCar[No]^[i] and $40000000 <> 0 then Buffer[30,i] := '*' else
Buffer[30,i] := 'ú';
      if BigCar[No]^[i] and $80000000 <> 0 then Buffer[31,i] := '*' else
Buffer[31,i] := 'ú';

   end;
end;

procedure Encode(No : Byte);
var i,j : byte;
begin
   for i := 0 to 36 do
   begin
      BigCar[No]^[i] := 0;
      if Buffer[0,i] = '*' then BigCar[No]^[i] := 1;
      if Buffer[1,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $2;
      if Buffer[2,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $4;
      if Buffer[3,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $8;
      if Buffer[4,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $10;
      if Buffer[5,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $20;
      if Buffer[6,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $40;
      if Buffer[7,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $80;
      if Buffer[8,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $100;
      if Buffer[9,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $200;
      if Buffer[10,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $400;
      if Buffer[11,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $800;
      if Buffer[12,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $1000;
      if Buffer[13,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $2000;
      if Buffer[14,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $4000;
      if Buffer[15,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $8000;
      if Buffer[16,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $10000;
      if Buffer[17,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $20000;
      if Buffer[18,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $40000;
      if Buffer[19,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $80000;
      if Buffer[20,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $100000;
      if Buffer[21,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $200000;
      if Buffer[22,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $400000;
      if Buffer[23,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $800000;
      if Buffer[24,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $1000000;
      if Buffer[25,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $2000000;
      if Buffer[26,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $4000000;
      if Buffer[27,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $8000000;
      if Buffer[28,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $10000000;
      if Buffer[29,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $20000000;
      if Buffer[30,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $40000000;
      if Buffer[31,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $80000000;
   end;
end;

procedure Preview;
var i, j : byte;
begin
   initGraph(grDriver,GrMode,'\turbo\tp\');
   for i := 0 to 36 do
   begin
      for j := 0 to 31 do
      begin
         if Buffer[j,i] = '*' then putpixel(j+GetMaxX div 2 ,i+GetMaxY div
2,15);
      end;
   end;
   readkey;
   closeGraph;
end;

procedure PreviewAll;
var i, j, k : byte;
begin
   initGraph(grDriver,GrMode,'\turbo\tp\');
   for k := 32 to 47 do
   begin
      Bufferize(k);
      for i := 0 to 36 do
      begin
         for j := 0 to 31 do
         begin
            if Buffer[j,i] = '*' then putpixel(j+(k-32) * 36 ,i+20,15);
         end;
      end;
   end;
   for k := 48 to 96 do
   begin
      Bufferize(k);
      for i := 0 to 36 do
      begin
         for j := 0 to 31 do
         begin
            if Buffer[j,i] = '*' then putpixel(j+(k-48) * 36 ,i+60,15);
         end;
      end;
   end;
   for k :=  97 to 127 do
   begin
      Bufferize(k);
      for i := 0 to 36 do
      begin
         for j := 0 to 31 do
         begin
            if Buffer[j,i] = '*' then putpixel(j+(k-97) * 36 ,i+100,15);
         end;
      end;
   end;
   for k :=  128 to 155 do
   begin
      Bufferize(k);
      for i := 0 to 36 do
      begin
         for j := 0 to 31 do
         begin
            if Buffer[j,i] = '*' then putpixel(j+(k-128) * 36 ,i+140,15);
         end;
      end;
   end;
   for k :=  156 to 180 do
   begin
      Bufferize(k);
      for i := 0 to 36 do
      begin
         for j := 0 to 31 do
         begin
            if Buffer[j,i] = '*' then putpixel(j+(k-156) * 36 ,i+GetMaxY div
2+70,15);
         end;
      end;
   end;
   readkey;
   closeGraph;
end;

function Edit(No : byte) : Char;
var x, y : byte;
    car  : Char;
    Sortie : Boolean;
    Go     : byte;
    CaracTempo :  char;
begin
   UpDate(No);
   x := 0;
   y := 0;
   Sortie := false;
   Etat := Move;

   repeat
      GotoXY(1,1);
      Write('          ');
      gotoxy(1,1);
      if etat = move then write('Move')
      else
         if etat = delete then write('Delete')
         else
            if etat = trace then write('Trace');
      GotoXY(60,1);
      write('(',x:2,' , ',y:2,')');
      GotoXY(4 + 2*x,5+y);
      HighVideo;
      Write(Buffer[x,y]);
      GotoXY(4 + 2*x,5+y);
      repeat
      until keypressed;
      car := ReadKey;
      GotoXY(4 + 2*x,5+y);
      LowVideo;
      Write(Buffer[x,y]);
      if (car = 'q') or (car = 'Q') then car := #13;
      if car = #0 then car := ReadKey;
      case car of
         '2',chr(80)   : begin
                            if y = 36 then y := 0 else inc(y);
                            if etat = trace then buffer[x,y] := '*'
                            else if etat = delete then buffer[x,y] := 'ú';
                         end;
         '8',chr(72)   : begin
                            if y = 0 then y := 36 else dec(y);
                            if etat = trace then buffer[x,y] := '*'
                            else if etat = delete then buffer[x,y] := 'ú';
                         end;
         '4',chr(75)   : begin
                            if x = 0 then x := 31 else dec(x);
                            if etat = trace then buffer[x,y] := '*'
                            else if etat = delete then buffer[x,y] := 'ú';
                         end;
         '6',chr(77)   : Begin
                            if x = 31 then x := 0 else inc(x);
                            if etat = trace then buffer[x,y] := '*'
                            else if etat = delete then buffer[x,y] := 'ú';
                         end;
         '1',chr(80)   : begin
                            if y = 36 then y := 0 else inc(y);
                            if x = 0 then x := 31 else dec(x);
                            if etat = trace then buffer[x,y] := '*'
                            else if etat = delete then buffer[x,y] := 'ú';
                         end;
         '7',chr(72)   : begin
                            if y = 0 then y := 36 else dec(y);
                            if x = 0 then x := 31 else dec(x);
                            if etat = trace then buffer[x,y] := '*'
                            else if etat = delete then buffer[x,y] := 'ú';
                         end;
         '9',chr(75)   : begin
                            if x = 31 then x := 0 else inc(x);
                            if y = 0 then y := 36 else dec(y);
                            if etat = trace then buffer[x,y] := '*'
                            else if etat = delete then buffer[x,y] := 'ú';
                         end;
         '3',chr(77)   : Begin
                            if x = 31 then x := 0 else inc(x);
                            if y = 36 then x := 0 else inc(y);
                            if etat = trace then buffer[x,y] := '*'
                            else if etat = delete then buffer[x,y] := 'ú';
                         end;
         ' '           : if etat <> trace then etat := succ(etat) else etat :=
move;
         #13, #81, #73 : Sortie := true;
         #27           : Sortie := True;
         'G','g'       : begin
                            GotoXY(20,49);
                            Write('Aller … quel code ascii ? ');
                            Read(Go);
                            if (Go >= 32) and (go <= 180) then
                            begin
                               Encode(No);
                               EnCours := Go -1;
                               Car := #81;
                               Sortie := true;
                            end;
                            GotoXY(1,49);
                            ClrEol;
                         end;

         'v', 'V'      : begin
                           Preview;
                           update(No);
                         end;
         'a', 'A'      : begin
                            Encode(No);
                            PreviewAll;
                            Bufferize(No);
                            Update(No);
                         end;
         'c', 'C'      : begin
                            gotoXY(20,49);
                            Write('Copier quel caractŠre ? ');
                            CaracTempo := ReadKey;
                            if CaracTempo <> #13 then
                            begin
                               Bufferize(ord(CaracTempo));
                               UpDate(EnCOurs);
                            end;
                            GotoXY(20,49);
                            ClrEol;
                         end;
      end;
   until (sortie);
   Encode(No);
   Edit := Car;
end;

procedure EditeTable;
var fin     : boolean;
    Car     : char;
    Car_Retour : char;
begin
   fin := false;
   Encours := 32;
   repeat
      Bufferize(Encours);
      Car_Retour := Edit(EnCours);
      case car_Retour of
         #13 : begin
                  gotoXY(20,49);
                  Write('Quitter ? ');
                  Car := UpCase(readKey);
                  GotoXY(1,49);
                  ClrEol;
                  if Car = 'O' then Fin := true;
               end;
         #81 : begin
                  if EnCours = 180 then Encours := 32 else inc(EnCours);
                  etat := move;
               end;
         #73 : begin
                  if EnCours = 32 then Encours := 180 else dec(EnCours);
                  etat := move;
               end;
         #27 : begin
                  gotoXY(20,49);
                  Write('Abandon des modifications ? ');
                  Car := UpCase(readKey);
                  GotoXY(1,49);
                  ClrEol;
                  if Car = 'O' then Halt(0);
               end;
      end;
   until fin;
end;

procedure SauveTable;
var Fichier : Text;
    i       : byte;
    j       : byte;
begin
   Assign(Fichier, 'Big.FON');
   Rewrite(Fichier);
   For i := 32 to 180 do
   begin
      for j := 0 to 36 do
      begin
         writeLn(Fichier, BigCar[i]^[j]);
      end;
      WriteLn(Fichier);
   end;
   Close(Fichier);
end;

begin
   DetectGraph(GrDriver, GrMode);
   InitGraph(grDriver, grMode,'\turbo\tp\');
   ErrCode := GraphResult;
   if ErrCode <> grOk then
   begin
     Writeln('Graphics error:', GraphErrorMsg(ErrCode));
     Halt(255);
   end;
   CloseGraph;


   NormVideo;
   ReserveMemoire;
   ChargeTable;
   EditeTable;
   SauveTable;
end.

{
You'll find here the fonts I had already done. They are not complete. (use A
to see all the characters) You must use XX3402 that you'll find on the Swag.
If you make others fonts, would you please send them to me ?
}

{ cut this out as save as FON.XX.  Use XX3402 :   XX3402 d FON.XX to
  create FON.ZIP containing the FONT files need here }

*XX3402-004554-160794--72--90-49467---------FON.ZIP--1-OF--1
I2g1--E++++6+1lIWFn1MZsTikA++8QI+++7++++Iop-H2kiFYxCXJVhggAU0DnTaRv3449h
yIzq+c6iWiaP0Ool-70D3NDSfxrpTaJujocOlDRAA5mzXdHptmmlaDi5Z+tylkr6i6vvvSia
md8HXZCvtn2z3xPDHKRh2okwHDTQhs6Y2trjmNAOAQAr8lDJFaRi9mlKqsDe9tvWFvTcKw1m
a4FSF-k3XAwoJeTeCZCbH5v0aBN91NgaBHPSxRA3ARGLS35gZaxd5V2fvjgmZg8K3zAn9y4X
2lRMmJsFfyfMuAVUXIYet1lwc2b6EzfzeAlw7k8DX6gX0MYYAAKGH7ilpNJ3lAlKno5eJhRp
5D46Km81627lm1m1rTKIa3l99ao9iPEkjzjIURmqxsMkmMYcX8C8Sebqj75bIdS-RvJQVqBc
r-UHVaMS-t4YI-AnTz788AFGVVdqh739nt+XG3zG7IS7oAqTpshfjV+PU7nn1eWoHgIbX+aK
STqTZR3miIKrueyhyij4M-snAbkAu-Uit4RS3fsRyaQ8wRP7FYBRBZ-vndj+66Lce0MLO6sE
63fIIy0B8CrZa9j3xvCjyutOlbXaEEKFoHrvcAdvJUeHS9F4Znld6-HVX2F-CAv++8HHvRjV
hNZarRQZ4vfczzKi-PWVfupVCACKlbkFD60I4a8AxFFAD5wKqu0qIUlE5+j9yHFnQbRsVi+C
x1QJdWvHsr6y4DrGdSkEtgn9iV-XiW6KHGe9oeHeeLlEKPi6Fi6PHOtHsJ2tSyR4FEUmZ0tf
Ell5fNBnhIg8VCnWQlKD8lPVCYJKcoq9U5ajQjpBKj-Wld8Jcl6orMs1cKFpe1C+pq9q+gxV
uLVcjUoIyQuFbxecthQbY10GnfFvXR03wdHnsYdUZMS0UwwDxTcx4Dh5usHPJFIE8a1gt42D
8r1+a+iytmEUrkB+oLxEf5dhANDdgz9P6y6KvqdYRvGqx7j3BcrzWRa03JWntOazAOzIzzGY
u278HpnJRMrOAffaWWi4gOOaQE8HBWNVxOn55MIauLj0DBfUrmyK8MQW3h0oHrq6utt7THLl
xBDFJM+dOVpRr+7BoL21tI-CBrE7RpvNPB-YppDpLA8YOZYqhRpm6j--MkxJA+mHAWScBD1-
jenfvle7TFakv6Aa4zqDfFVsv41EizHCN8aiqgg0ptXcKXCCeOTeIT0IWejm6fDPANOD8CTV
DRQXSIVPeq3gwJ6RqNoC3vMY-rHxyX+KHHpEoKQqr5IZLJHW7vybdVOT44RD9TOrSCxtw9wB
YETwfIUFujjJD+gbUZBdEChACGCiDp-9+kEI++++0++JUMoQbzQ8qa+5++-FC+++-k+++2p7
F0t4HovJKyhmvGc6zhyNjcire5by7ng-j60L74NZRQyNOP-B6WX07q0eTbySzTnyu1qurlyb
T83F-mwdTofjlxobEbnkptsJSzbskxbRpANM0nmAUPSpBaj1hhec8yernKuZySkhcYQ92n78
cqvURyq0Wn+R5sv4vWcF-nAmmc3mh3Ts6f+kPjSW0OMk6Mv25EIVkFZP2o09PhTFEnSj3SfE
59qx-VtK6OQBh-dwH7opu-dvFZExXWEsEspqp4VwNYBGvUTaJ+o1lv0V3XOzm+F5vPJnSJdq
kwbUt5G+dwUSGFJNtG8V3uYHAG-al7W256c-RGPxu8EgB2dwXgH-kofe+rkDHFxukXBYZRSg
9C5F9NNJ1Zs-7lJJKKgHT4rc5XqbRpB5sZ8t6a29pXldWDMKC8Paz3qq3jTLfGe6b+FKLNhs
lcEAbiWdFOkOcg+b6N0kls+aiM4RyUpOUw43ZKBWO71+F8DpYTpuI9HTUP3rk0DFPMCb-fVv
Mz3rJTcG5sM-KJOmtdpQ3zFu94INyGQo2ikXnR9G+1kAoWcQ8UuDR9OYCSCuVOM7gSr07szr
OWVWXqInsGsg8TJ3TqKPHuCyaF8H8UZZT4COuyfXjEqvRX6MFnh8cwwFrInKD+SA9AMd45NY
IyT026hI9-i9BZOPKkrTxYRHmfO+WuvOrOSpW0aVmQUdQTHXMbd8vxltQuv+dx8S9JQ9H9TE
eoD-FFPxDYnyg6W-3C0Nx6XqJxdNaIAadV7n9u5yt32OOhqW9sNl0wPbWpyw+8QVanBBhHhb
2vmFWC82GbKBpHUlNmWY36opV2Q64bhA0WaLhy0fFyCNtb4d8GV5Z9D7YjSdslQqq3l1V3mW
GtUdHZ3ccz2V0gK0M8qsaeX6DWrywSgIspMawvGNHoWeDlf2FHtwr16GPON3PogCvr5bZyGO
oVcmj-Dpuwp4pYmg1mBttBUuzqoZftfkaI5nfSZw2vivisbpcC0M4fu-9ZAK9St1tF2gMoBV
7gIRSUAcW9+yawcYob9hdYEbFbJQIhCcuwFeFhQBaoq9Yuc3aoDUQqWXqVdAWkvpLI16wffL
NnFLFs8GGO4KhA4ci2ULXIKcpnNWcaVhWcQ6nmbv5iDb1B+yVdkNmd4vQmkS-Xpl5FXi-pIL
33Ab5YUpgQmBST+Ns3eaaU0gVAlfKbdrUR03T7qpPOCVohlPZkmc0F9r64cOuyElb9tbOizk
dyW36Va8OX1+YRKZRyEZLmOIGNWH2QWm4Ce4qAac8vYNcBqTcN0sZn-trJGOzREEueqZ1FR+
vnRomhEwr4V5F18ayFmDXXh9yMFkNCCqE1JMGDCUKdQXvUoee2VSb27ZaidcK3i9kfpiZpFL
SrG3wItB5sxV08Y0APo3FQg6Isi6wJU2qvbz82OaM5stB2kFgolBFvB97OTHM3UCTEGIOd7v
rZ56yHHCZ0JnwLYAnNIVtpCDWXfacYFZ+2ZrHpSBCzARThKbwz4Ou+DHlxbeWWltcaCi8lfk
qyMYaatSPFKVph7jY25ofqF-fUVdvexEZ3GCF8fBpWjUgEISAS1iH-3n7jUbDg-LM3DBhDRV
SEWnHb11DfLqsDXiZ4DrlSP8btXtjKIdRnpq+S4ewts8GQ-XzOn7vVBG+A0jR6MuMxzLZXbB
JQ9UtkJMABAdEBQHJYdfNwbAo75YODqkw759T5s+szVG5m5bxVsatgjeic4IIsvtS-z5kKEP
JcJn41sDTTg+y1lsTn7sYM7jm1HgR4kDhwtLYm7IAZzOcOkVnFeJEo7WVfTd3NozLx0bTjBI
txp4hPDu5JfFI7csscJSBMH34G+WIjp3RIT0H2hdMyoRP3O5Gjg1bOily9abDQwYvBLMSIEU
SKgClldwceF3pSm3Lm8GErNlcqr1s8Zy0CIISCbbs8WXqksVpgC56zzcfxwDuietqVJRZ01L
bESCzS8dfpn1J7CJjVvXhiQgLwtgt3vvHK51NCwvcUVVAOQaaWJyAo3QmRqcKdWhb4RjPSZX
NV1TG8l49jGWY3aqzzswq+QMvyExkq97dolZcSU3bWYucb5yoIbhqBIK1cijNPTG8jX8ngod
tCE2wjeQuBbDdpr5PjupJ4nJptw94vfxRoGBRTWB84+seKw6SWqmiNw3XCGxQNcsCQptNrdf
loSeeMvNyhrUSg4pGkcy+s9zJxQqLjZqi1cKxwaiCKPt5MmOmbcRCfE7W2ts64pX4r+lF5Uc
KQf0+nx35tAbRqgzS1Xtoi5V7ktDPLOO5Z0pMMoDkzzF+OWRT1DMO9FKWiVoUoMmYTnd2SS2
vGR5Xe9udG9zG+xfDCXny7Ju85o0famA0jyr-SgqJDZFuKFU3ddRG5+FDlDN6+9Mw-oLe1N3
yk2KJ7n4TtbEGWvdxLwReSNXq4TzvREdLlgg2uJecOOeZpTZJACLqvZO8AwW7atlrbgWfERt
yhXZI0-coOBPzwKhMqn-iTrrNvQS10A4Q7szj+TTsSVUXw5t06tVcc7zZjffarxEm3nuSi07
UDw+I2g1--E++++6+AloXVlDpuzgVkI++DBH+++5++++EYZ59YNDHipNuqsXCkXyLubjkgI4
yzaTv-XkX4SmiPFdYxoX6OK-n6IDA4-AsTDXbNzD1mFePL-I4tHqyJ47eA0W02JfdKSNGr4r
u+NzWqtevdzGoSFzLSpPW3DEkGKAdLM0SAFFFJ4K2nSchh-UtlerXaEuMmxJLfCChGa-Eba4
Ep1KUcrUOzlDgBv9jRCmnkyWnWe9WW6otQ2V3o6J4MyFhA8pY9r9oVFO5kwIuPqXDp0+KeDa
2GNBd68GmlGIfpD5PdsuUKocUQqRBalhdUMATKefwVfKh+yqksvKdNrgDrXZs8jZk2jLPjGE
+ppUmd48t5uIKgZnL9d8EElB43gh7P7KU1pCe1M4x2KXXiCpaSZ8JbLEe3Uium1gBngHSgPr
6QESuYB0qGeHeH9SxURauF6gRdh-DSeepkgJiwLB8oOr4khTlawdrQCbYcUf5SloZ93FRc8Z
Bhw0iqyG9ifBSrSLokNnWvfPRW8pqb7DkeEK7mVgQTc8tIFJmTCagk0O+lT5J030SEL+jisv
gurvFjw6pFY5SnlUYRNyXpv8jwGzp0x0y7cZ-mhrmuztNLbBZb3Qw-Hq9zP2bj2Q6Hv71Dx7
jaj2fx25Wr4VtQa0g0cgL-Ov+usMw6+mBk08AZZpL+9PGvd6wQ958CWZVp4VxB0WPko3cfeE
Udrx8M7SAHOwIcdRWRcO3TQFivyoWxY3vp+9TKaoh3mO9qiKVRzpnIMDeTegW4zHq6T8ZxVr
uHHdKufsfQG7PKvFQsJy+aRhy+zN7wlseMiSKuRdY0K2hmOAheZtOo7lVf5KF06F8oeRtkUO
H7kTpcPyRpcHHzfE9nGnnDTwzjlcpzrTS+-saFGp5hHfEeoZBbhfRQ0XOaVA09vJaVCuq+tp
NeKnOs5IJL1ePrpWl0KdxWfFKIUPTu4W1+jN1s6o-044-+4RdNpe9sJw0lWghMjHtlpVQrxh
d-Gg+BCwKaNNhhNFcYwlRWu9gP50nW9uAS+q0x4RBXJ5mB39mrCvAzTmT5Pqjhs2JdZhNI08
xosoffiCUqbF8ECd-kDq9bvOkBuUcCSuqW5N-PPMwHT7zmC4iFO75Sg8RzMQEFQrp1mfRXsm
LoTQK9A1PPO14Xo+ZdaRpVGVrnpnZmrHTKuZAnAkc1Tu3hbC1HqeklNgsa40I8Gu023D1zhZ
hcjjhx4WFAvSzptFRdyvW1C9G1EjqFCFZLtIWomAwlhgKE0+gdKliVqqe3Bddy9q91jY2zgq
6EcxwbSclH5RKRmuSrXZ3z+jqMBRRFohkkT9AwhRmsL9fFTiXV6zaAOnLDssoKRzqtJpvVFx
VcIx2cl4+FlMRRhBcanvOA51vWvrpemLMMSXbborFknh8qntnhT-nAjNXVz1EutsUow+bLo+
QxXWLw1KTQ+VJLQoLRpyH5fL2CVeE3s25lRgNNyhMDRdZ6YHobpwledaRCRSapO9kkOJiQKa
BVtiseAavLmcHrOZalsyt6Vuiby3Pac01XrrMKGonSow6E-2a5ogyptyuT1ElKT5fU5RTQvr
VV-ZRI-hHzdtezRDY4gC+PUmgHkgzHN1N7jRkPjNUnc57KzcypsZZrSi8vbQywTVtBzmz+PQ
HXLUlVHvdTKohDpIJdTlTivxWPjj12ArydDDBqLzCsdRbEGTFw0TVktonarbGTZuCzqSor5k
qtEk5hgaWBizJuTA1KD1L8SJHOpRoQAoRfTbQ5XMvJuyi9OUlwzOsyxnxtTlRuEQ0vyTB8oB
g7mDErKQHZvcrFQDGIePBdZlXxPZNTxvGQ+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2
HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+T+js5I2g-
+VE+3+++++U+D3G75ABWLVyv+k++dlE+++Y++++++++++E+U+++++++++3BBEIlA9YNDHZ-9
+E6I+-E++++6+-K-XFmTxkfOM+Q++32s+++5++++++++++2+6++++C61++-BGIEiFYxCI2g-
+VE+3+++++U+n5GC52zLfym5-E++wpA+++Q++++++++++E+U++++Nkg++277Fmt4HotEGkI4
++++++A++k0V++++2l2+++++
***** END OF BLOCK 1 *****

[Back to EGAVGA SWAG index]  [Back to Main SWAG index]  [Original]