*************** EEBPWS\EasyEx\HelloWo\   Write\   Program\
*************** HelloWo1.PAS ***************
PROGRAM   HelloWo1 ;
{$IFDEF WIN32}   {$APPTYPE CONSOLE}   {$ENDIF}      {--- Delphi2,... }

{$IFDEF VER70}{$IFDEF Windows}   USES   WinCRT ;   {$ENDIF}{$ENDIF}
{$IFDEF VER80}   USES   WinCRT ;   {$ENDIF}      {--- Delphi1 }

BEGIN
   Write (   PChar('Hello World...')   );
END.
*************** HelloWo5.PAS ***************
PROGRAM   HelloWo5 ;
{$IFDEF WIN32}   {$APPTYPE CONSOLE}   {$ENDIF}      {--- Delphi2,... }

{$IFDEF VER70}{$IFDEF MSDOS}   USES   Strings ;   {$ENDIF}{$ENDIF}
{$IFDEF VER70}{$IFDEF DPMI}   USES   Strings ;   {$ENDIF}{$ENDIF}
{$IFDEF VER70}{$IFDEF Windows}   USES   WinCRT , Strings ;   {$ENDIF}{$ENDIF}
{$IFDEF VER80}   USES   WinCRT , SysUtils ;   {$ENDIF}      {--- Delphi1 }
{$IFDEF WIN32}   USES   SysUtils ;   {$ENDIF}      {--- Delphi2,... }

VAR
   G_Buffer : ARRAY[0..255] of Char ;
   G_p      : PChar ;

BEGIN
   G_p := @G_Buffer ;
   G_p^:= #0 ;

   G_p := StrECopy ( G_p ,  'Hello World.....' + #13#10  );
   G_p := StrECopy ( G_p ,  'Hello World.....' + #13#10  );
   G_p := StrECopy ( G_p ,  'Hello World.....' + #13#10  );
   G_p := StrECopy ( G_p ,  'Hello World.....' + #13#10  );
   G_p := StrECopy ( G_p ,  'Hello World.....' + #13#10  );

   Write (   G_Buffer   );
END.
*************** HelloWo9.PAS ***************
PROGRAM   HelloWo9 ;
{$IFDEF WIN32}   {$APPTYPE CONSOLE}   {$ENDIF}      {--- Delphi2,... }

{$IFDEF VER70}{$IFDEF MSDOS}   USES   Strings ;   {$ENDIF}{$ENDIF}
{$IFDEF VER70}{$IFDEF DPMI}   USES   Strings ;   {$ENDIF}{$ENDIF}
{$IFDEF VER70}{$IFDEF Windows}   USES   WinCRT , Strings ;   {$ENDIF}{$ENDIF}
{$IFDEF VER80}   USES   WinCRT , SysUtils ;   {$ENDIF}      {--- Delphi1 }
{$IFDEF WIN32}   USES   SysUtils ;   {$ENDIF}      {--- Delphi2,... }

VAR
   G_Buffer : ARRAY[0..255] of Char ;
   G_p      : PChar ;

   i : Integer ;

BEGIN
   G_p := @G_Buffer ;
   G_p^:= #0 ;

   {----- LOOP }
   FOR i := 1 TO 9 DO BEGIN
      G_p := StrECopy ( G_p ,  'Hello World.........' + #13#10  );
   END;

   Write (   G_Buffer   );
END.
*************** Writ2x2.PAS ***************
PROGRAM   Writ2x2 ;
{$IFDEF WIN32}   {$APPTYPE CONSOLE}   {$ENDIF}      {--- Delphi2,... }

{$IFDEF VER70}{$IFDEF Windows}   USES   WinCRT ;   {$ENDIF}{$ENDIF}
{$IFDEF VER80}   USES   WinCRT ;   {$ENDIF}      {--- Delphi1 }

VAR
   G_Buf25 : ARRAY[0..25] of Char ;

   MyNum : Longint ;

BEGIN
   MyNum := 2 + 2 ;

   Str ( MyNum , G_Buf25 );

   Write (   G_Buf25   );
END.
*************** WritCalc.PAS ***************
PROGRAM   WritCalc ;
{$N+}{$E+}      {--- 8087 + Emulation }
{$IFDEF WIN32}   {$APPTYPE CONSOLE}   {$ENDIF}      {--- Delphi2,... }

{$IFDEF VER70}{$IFDEF MSDOS}   USES   Strings ;   {$ENDIF}{$ENDIF}
{$IFDEF VER70}{$IFDEF DPMI}   USES   Strings ;   {$ENDIF}{$ENDIF}
{$IFDEF VER70}{$IFDEF Windows}   USES   WinCRT , Strings ;   {$ENDIF}{$ENDIF}
{$IFDEF VER80}   USES   WinCRT , SysUtils ;   {$ENDIF}      {--- Delphi1 }
{$IFDEF WIN32}   USES   SysUtils ;   {$ENDIF}      {--- Delphi2,... }

VAR
   G_Buffer : ARRAY[0..255] of Char ;
   G_p      : PChar ;
   G_Buf25  : ARRAY[0..25] of Char ;

   R : Double ;
   C , A : Double ;

BEGIN
   R := 10 ;

   C := 2 * PI * R ;
   A := PI * R * R ;

   G_p := @G_Buffer ;
   G_p^:= #0 ;

   Str ( R , G_Buf25 );
   G_p:=StrECopy(G_p,  'Radius='  );
   G_p:=StrECopy(G_p,  G_Buf25  );
   G_p:=StrECopy(G_p,  #13#10   );

   Str ( C , G_Buf25 );
   G_p:=StrECopy(G_p,  'Circumference='  );
   G_p:=StrECopy(G_p,  G_Buf25  );
   G_p:=StrECopy(G_p,  #13#10   );

   Str ( A , G_Buf25 );
   G_p:=StrECopy(G_p,  'Area='  );
   G_p:=StrECopy(G_p,  G_Buf25  );
   G_p:=StrECopy(G_p,  #13#10   );

   Write (   G_Buffer   );
END.
*************** WritMsg.PAS ***************
PROGRAM   WritMsg ;
{$IFDEF WIN32}   {$APPTYPE CONSOLE}   {$ENDIF}      {--- Delphi2,... }

{$IFDEF VER70}{$IFDEF MSDOS}   USES   Strings ;   {$ENDIF}{$ENDIF}
{$IFDEF VER70}{$IFDEF DPMI}   USES   Strings ;   {$ENDIF}{$ENDIF}
{$IFDEF VER70}{$IFDEF Windows}   USES   WinCRT , Strings ;   {$ENDIF}{$ENDIF}
{$IFDEF VER80}   USES   WinCRT , SysUtils ;   {$ENDIF}      {--- Delphi1 }
{$IFDEF WIN32}   USES   SysUtils ;   {$ENDIF}      {--- Delphi2,... }

VAR
   MyMsg : ARRAY[0..255] of Char ;

BEGIN
   StrCopy ( MyMsg ,  '- Nice weather, isn''t it ?'  +  #13#10
                    + '- Yes "nice" weather.'        +  #13#10  );

   Write (   MyMsg   );
END.
*************** Chr20_FF.PAS ***************
PROGRAM   Chr20_FF ;
{$IFDEF WIN32}   {$APPTYPE CONSOLE}   {$ENDIF}      {--- Delphi2,... }

{$IFDEF VER70}{$IFDEF MSDOS}   USES   Strings ;   {$ENDIF}{$ENDIF}
{$IFDEF VER70}{$IFDEF DPMI}   USES   Strings ;   {$ENDIF}{$ENDIF}
{$IFDEF VER70}{$IFDEF Windows}   USES   WinCRT , Strings ;   {$ENDIF}{$ENDIF}
{$IFDEF VER80}   USES   WinCRT , SysUtils ;   {$ENDIF}      {--- Delphi1 }
{$IFDEF WIN32}   USES   SysUtils ;   {$ENDIF}      {--- Delphi2,... }

VAR
   G_Buffer : ARRAY[0..255] of Char ;
   G_p      : PChar ;

   i : Integer ;

BEGIN
   G_p := @G_Buffer ;
   G_p^:= #0 ;

   G_p := StrECopy ( G_p ,  '***** CHARS: '  );

   {----- LOOP }
   FOR i := 32 TO 255 DO BEGIN
      G_p^ := Char(i);
      Inc ( G_p );
   END;
   G_p^ := #0 ;

   Write (   G_Buffer   );
END.
*************** PrimeNb.PAS ***************
PROGRAM   PrimeNb ;
{$IFDEF WIN32}   {$APPTYPE CONSOLE}   {$ENDIF}      {--- Delphi2,... }

{$IFDEF VER70}{$IFDEF MSDOS}   USES   Strings ;   {$ENDIF}{$ENDIF}
{$IFDEF VER70}{$IFDEF DPMI}   USES   Strings ;   {$ENDIF}{$ENDIF}
{$IFDEF VER70}{$IFDEF Windows}   USES   WinCRT , Strings ;   {$ENDIF}{$ENDIF}
{$IFDEF VER80}   USES   WinCRT , SysUtils ;   {$ENDIF}      {--- Delphi1 }
{$IFDEF WIN32}   USES   SysUtils ;   {$ENDIF}      {--- Delphi2,... }

VAR
   G_Buffer : ARRAY[0..1024] of Char ;
   G_p      : PChar ;
   G_Buf25  : ARRAY[0..25] of Char ;

   IsPrimeArray : ARRAY[1..1000] of Boolean ;
   i : Longint ;
   j , jMax : Longint ;

BEGIN
   G_p := @G_Buffer ;
   G_p^:= #0 ;

   G_p := StrECopy ( G_p ,  '***** PRIME NUMBERS: '  );

   {----- LOOP 1 , On each number }
   FOR i := 1 TO 1000 DO BEGIN

      {----- Could be a prime number }
      IsPrimeArray[i] := TRUE ;

      j    := 2 ;
      jMax := i div 2 ;

      {----- LOOP 2 , Search a divisor }
      WHILE IsPrimeArray[i] and (j <= jMax) DO BEGIN
         {----- "j" can divide "i" ?  }
         IF (i mod j) = 0 THEN BEGIN
            IsPrimeArray[i] := False ;
         END;
         Inc ( j );
      END;

      {----- Display only prime numbers }
      IF IsPrimeArray[i] = TRUE THEN BEGIN
         Str ( i , G_Buf25 );
         G_p := StrECopy ( G_p ,  G_Buf25  );
         G_p := StrECopy ( G_p ,  ' '      );
      END;
   END;

   Write (   G_Buffer   );

{
   [<--                   i                      -->]
    [<-- j -->]
   .#.....................#.........................#
    |         |                                     |
    2      i div 2                                1000
}
END.
