
  FreeBASIC - Compilador de BASIC de 32 bit Multi-plataforma
  Copyright (C) 2004-2005 Andre Victor T. Vicentini (av1ctor@yahoo.com.br)
 

Licencia:

  Este programa es software libre; puedes redistribuirlo y/o modificarlo bajo los
  terminos de la  GNU General Public License tal como la publica la  Free Software
  Foundation; tanto bajo la versin 2 de la Licencia, o (a tu criterio) cualquier 
  versin posterior.

  Este programa se distribuye en la esperanza de que sea til, pero SIN NINGUNA
  GARANTA; ni tan solo la garanta implcita de SER COMERCIALIZABLE o ADECUADO
  PARA CUALQUIER PROPSITO. Consulta la GNU General Public License para mas detalles.

  Debes haber recibido una copia de la GNU General Public License junto con este 
  programa; si no es as, escribe a la Free Software Foundation, Inc., 59 Temple
  Place, Suite 330, Boston, MA 02111-1307 USA.

Instalacin:

  o Versin Windows:

    - Descomprime el fichero zip en el directorio que prefieras -- El C:\ es una
      buena idea, si no vas a utilizar un IDE mas adelante. Debe preservarse la 
      estructura de directorios que viene con el archivo.

    - Ejecuta el fichero INSTALL.BAT para generar las libreras de importacin -- se 
      necesitan para llamar a funciones en las DLL's y para generar los ejecutables.

    (Nota: No instales la versin Windows sobre una instalacin anterior sin borrar
      antes todo el directorio /lib/win32.)

  o Versin Linux:

    - Descomprime el archivo tar.gzip archive en cualquier directorio.

    - Ejecuta "sudo ./install.sh -i" desde el mismo directorio para instalar como root
      los binarios, librerias y ficheros include en el sistema en el directorio
      /usr/share/freebasic. Se crear un enlace al compilador en /usr/bin/fbc. 
      Si no tienes privilegios de root, tambin puedes instalar a un directorio de 
      tu eleccin; ejecuta el script install.sh sin argumentos para ms informacin
      Ten en cuenta que al instalar sin privilegios de root el script no podr crear 
      el enlace al ejecutable en /usr/bin/fbc.
    
    (Nota: Para desinstalar FreeBASIC, puedes ejecutar  "install.sh -u")

  o DOS:

    - Descopmprime el archivo .zip en el directorio que prefieras, que no tenga espacios
      en su nombre ni mas de 8 cararacteres. Debe preservarse la estructura de directorios
      que viene con el archivo.

  (Nota: Si ests instalando la versin DOS sobre la Windows, o viceversa,
   renombra el fichero fbc.exe de la instalacin previa a fbc-win.exe o algo por el estilo,
   o la nueva versin sobreescribir a la antigua.)


Ejecucin:

  o Versiones DOS y Windows:

    - Abre la cnsola/lnea de comandos y cambia al directorio dnde se descomprimi
      FreeBASIC. Por ejemplo, teclear "cd C:\FreeBASIC"(sin las comillas) y pulsa enter, 
      si el archivo se descomprimi en C:\.

    - Teclea "fbc" (sin comillas) para ver una lista de opciones. Para compilar el ejemplo 
      hello teclea: "fbc examples\hello.bas", el fichero hello.exe se crear en el directorio
      "examples".

    - Tambin puedes aadir el directorio de FB en tu variable de entorno PATH, as no te ser
      necesario cambiar al directorio FB cada vez que vayas compilar tus proyectos.

  o Versin Linux:

    - Si el script install.sh se ejecut correctamente y con suficientes privilegios,
      debe existir un enlace al binario del compilador en /usr/bin/fbc.
      Esto significa que cualquier usuario puede invocar FreeBASIC tecleando "fbc" en un
      shell abierto en cualquier directorio. Si el enlace no pudo ser creado,
      necesitars cambiar tu variable de entorno PATH para poder llamar a FB desde
      cualquier directorio.

    - Teclea "fbc" (sin comillas) para ver una lista de opciones. Para compilar el ejemplo 
      hello teclea: "fbc examples/hello.bas", el fichero hello.exe se crear en el directorio
      "examples".

Requerimientos:

  o Versin Windows:

    - El compilador FreeBASIC (fbc.exe) y los ejecutables que genera requieren al menos
      Windows 95 para correr -- no ha sido probado en Windows 3.x con  el sistema Win32s.

    - Debe estar presente msvcrt.dll (la librera de tiempo de ejecucin de C de Microsoft)
      (Nota:esta librera no vena con Windows 95, pero muchas aplicaciones la instalan y
      puedes obtenerla en:  http://support.microsoft.com/default.aspx?scid=kb;en-us;259403 ).

    - Las rutinas grficas utilizan la librera DirectX 5.0 o posterior si existe en el sistema,
      en caso contrario trabajan con la librera GDI que incorporan todas las versiones 
      de Windows.

    - Las wide strings Unicode funcionan slo en Windows NT/2000/XP/2003/Vista o superior.
      Las aplicaciones que utilizan widw strings funcionarn en W98/ME, pero la entrada-salida
      fallar si el juego de caracteres no est bbasado en el lati, ya que estas plataformas
      no soportan las cadanas Unicode. En el Windows 95 faltan la mayora de funciones API
      para unicode, las aplicaciones con wide strings ni siquiera sern cargadas por el SO.

  o Versin Linux:

    - El compilador FreeBASIC (fbc) y los ejecutables que ste genera dependen de
      libc, libm, libpthread y libdl. Estas son libreras estandar de Linux 
      y deben estar disponibles por defecto en todas las distribuciones modernas.

    - Si se utiliza la librera grfica las dependencias aumentan. Los programas 
      grficos necesitan tambin que libX11, libXext, libXpm, libXrender y libXrandr
      estn instaladas en el sistema donde se van a ejecutar. Normalmente esto no es un
      problema siempre que el sistema disponga de un servidor X11 reciente. 
      (como mnimo XFree86 4.3.0 o cualquer versin de  X.org).

    - Tener instalado X11 es suficiente para correr programas grficos FreeBASIC,
      pero puede no ser suficiente para compilarlos; puede ser necesario obtener las 
      libreras de desarrollo de X11 de tu fuente de distribuciones de Linux.

  o Versin DOS:

    - Debe estar presente un servidor  DPMI (DOS Protected-Mode Interface) para correr
      fbc.exe o cualquier ejecutable generado por ste. En DOS verdadero (es decir
      no en una linea de rdenes de Windows 3x/9x/NT/XP/etc), el servidor CWSDPMI 
      (http://clio.rice.edu/cwsdpmi/csdpmi5b.zip) debe estar en el PATH.
      (nota: El FreeDOS instala por defecto este servidor).

Depuracin:

  o El depurador es GDB.EXE y viene en el directorio bin\win32 (versin Windows) o el bin\dos
    (versin DOS). La mayora de distribuciones de Linux instalan GDB por defecto.

    Puede obtenerse Insight (GDB con un interface grfico) de  
    http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=82725&release_id=358837    

    (Nota: Todas las rdenes deben teclearse sin las comillas y pulsar [return] seguidamente.)

    - Compila las fuentes usando la opcin -g  en la lnea de rdenes para aadir soporte para
      el depurador.

    - Carga el ejecutable en GDB con: "gdb MiAplicacin.exe"

    - Indica a gdb los argumentos a pasar a la aplicacin con:
      "set args arg1 arg2 argn". Puedes ejecutar tambin GDB y pasarle los argumentos 
      directamente ala aplicacin que se est depurando "gdb -args MiApl arg1 arg2 arg3"    

    - Si el ejecutable no est en el mismo directorio que sus ficheros fuente teclea:
      "dir path/a/fuentes/de/mi/aplicacion".

    - Situa un breakpoint en la primera lnea con: "b main". Para situar un punto de ruptura
      en una funcin llamada "abc" utiliza "b ABC" (todo en maysculas, GDB no es insensible
      a caja)

    - Teclea "r" para arrancar la aplicacin.

    - Teclea "n" para avanzar paso a paso saltando las llamadas a funciones.
      Pulsa return [return] para avanzar a la siguiente lnea.

    - Teclea "s" para avanzar paso a paso tambin en las funciones.
      Pulsa return [return] para avanzar a la siguiente lnea.  

    - Teclea "c" para lanzar la ejecucin hasta el prximo breakpoint.   
    
    - Utiliza "print ABC" para ver el contenido de la variable "abc". GDB soporta desreferen-
      ciado de punteros y campos de puntero, indexado y aritmtica, por lo que "print 
      MiPuntero" funcionar. Las variables no declaradas o con sufijos como % & ! # $ no 
      pueden visualizarse.
      
    - Usa "disp ABC" para ver el contendip de la variable  "abc"
      
    - "watch ABC" detiene la ejecucin cada vez que la variable "abc" cambia.

    - Utiliza "r" de nuevo para reiniciar la apicacin cuando sta termina.

    - Teclea "q" para salir del debugger.

    - "help" visualiza la lista de rdenes disponibles, hay un centenar de ellas.


Caractersticas ms importantes:

  o Compatibilidad con otros BASIC :

    - FreeBASIC no es un "nuevo" lenguaje BASIC. No necesitas aprender nada nuevo
      si ests familiarizado/a con cualquier variante de Microsoft-BASIC.

    - FreeBASIC no es sensible a caja; las variables escalares no necesitan ser
      dimensionadas y admite sufijos; soporta nmeros de lnea; no requiere 
      funcin MAIN; la mayora de las sentencias de modo cnsola o grficas
      que pueden encontrarse en MS-QuickBASIC estn implementadas, etctera.

  o Sintaxis limpia:

    - Slo se ha aadido un mnimo de nuevas palabras claves. Todas las funciones
      se han implementado como libreras, por lo que prcticamente no hay nuevas
      rutinas implcitas: la probabilidad de colisin de nombres con programas antiguos
      es mnima. Si quieres mostrar una caja de mensajes en Windows, teclea:

      '$include: 'windows.bi'
      MessageBox NULL, "Texto", "Ttulo", MB_ICONASTERISK

      (nota: MessageBox no es sensible a caja, puede ser MESSAGEBOX si as lo deseas)

  o La mayor parte de las librarias y API's de C pueden usarse sin envolventes ni auxiliares:

    - GTK+ 2.0: Herramientas GUI multiplataforma (casi 1MB de cabeceras, incluyendo
      soporte para Glade, libart y glGtk)

    - libxml y libxslt: estas librerias son el estandar de hecho en XML y XSL.

    - GSL - Librera cientfica GNU: nmeros complejos, vectores y matrices, FFT,
      lgebra lineal, estadstica, ordenacin, ecuaciones diferenciales, y una docena
      de sub-librerias matemticas.

    - GMP - Librera GNU de aritmtica de precisin mltiple: se la tiene por la ms rpida
     
    - SDL - Simple DirectMedia Layer: Librera multimedia para audio, entrada de usuario,
      grficos 3D y 2D (incluye sub-librerias como SDL_Net, SDL_TTF, etc)

    - OpenGL: Librera portable para desarrollar juegos y aplicaciones grficas 2D y 3D 
      (incluye soporte para entornos como GLUT and GLFW, adems de  GL Extensions)

    - Allegro: librera para la programacin de juegos (grficos, sonido, entrada de jugador,
      etc)

    - GD, DevIL, FreeImage, Libreras relacionadas con grficos.

    - OpenAL, Fmod, BASS: Sistemas de sonido 2D y 3D, con soporte para mod, mp3, ogg, etc

    - ODE y Newton - Motores dinmicos:  simulacin de la dinmica de los cuerpo rgidos.

    - cgi-util y FastCGI: desarrollo de aplicaciones web

    - DirectX and the Windows API - Las cabeceras mas completas disponibles para un compilador
      BASIC

    - y mas cabeceras prximamante...

  o Multi-plataforma:

    - FreeBASIC corre actualmente en Windows 32 bit, Linux, y MS-DOS 32 bit,
      adicionalmente puede crear aplicaciones para la cnsola Xbox.  mas  plataformas
			prximamente. 

    - La librera de tiempo de ejecucin se escribi pensando en su portabilidad.
      Todas las herramients de terceras partes corren ya en la mayoria de sistemas 
      operativos ya que forman parte de las binutils de GNU. El compilador est escrito
      en un 100% en FreeBASIC (es decir, FreeBASIC se compila a s mismo.), esto hace 
      fcil su  bootstrap ya que no depende de herramientas no portables.

  o Un gran numero de tipos de variables disponibles, tales como BYTE, SHORT, INTEGER,
    LONGINT, SINGLE, DOUBLE y STRING:

    - Todos los tipos integer tienen versiones sin signo (UBYTE, USHORT, UINTEGER, ULONGINT).

    - Las cadenas de texto pueden ser fijas, de longitud variable o terminadas en nulo
      (zstring's), de hasta 2GB de longitud.
      
    - Los tipos de dato LONGINT y ULONGINT son de 64 bits.

  o Tipos definidos por el usuario (UDT's):

    - Nivel de anidado ilimitado.

    - FB soporta las sentencias TYPE de BASIC, junto con la nueva UNION (que incluye
      (UNIONs sin nombre y anidadas).

      TYPE MyType
         A AS SHORT
         B AS INTEGER
         C AS LONG
         D AS OtherUDT
         UNION
            E AS DOUBLE
            F AS SINGLE
            G AS OtherUDT
         END UNION
         H AS BYTE
      END TYPE

      O bien,

      UNION MyUnion
         A AS INTEGER
         B AS LONGINT
         C AS DOUBLE
      END UNION

    - Las UDT pueden contener campos array de hasta cuatro dimensiones. Por ejemplo,

      TYPE MyList
         ListData(0 TO MAXITEMS - 1) AS MyItem
      END TYPE

    - Campos de tipo funcin:

      TYPE MyType
         MyFunction AS FUNCTION (BYVAL ArgumentA AS INTEGER) AS INTEGER
      END TYPE

    - Campos de bits:

      TYPE mytype
          flag_0 : 1 as integer
          flag_1 : 1 as integer
          flag_2 : 1 as integer
      END TYPE

      DIM t AS mytype

      t.flag_0 = 1
      t.flag_1 = 0
      t.flag_2 = 1

      PRINT "All flags ON? ";
      IF ( t.flag_0 AND t.flag_1 AND t.flag_2 ) THEN
        PRINT "TRUE"
      ELSE
        PRINT "FALSE"
      END IF

  o Enumeraciones (ENUM's):

      ENUM MyEnum
         A
         B = 3
         C
      END ENUM

      DIM E AS MyEnum

      E = C

  o Arrays:

    - FB soporta arrays dinmicos y estticos de hasta 2GB.

    - Nmero de dimensiones ilimitado.

    - Indices alto y bajo cualesquiera.

    - Soporta REDIM PRESERVE, que permite redimensionar cualquier array dinmico manteniendo su 
      contenido intacto.
      

  o Punteros:

    - Punteros a cualquera de los tipos de datos anteriores, incluyendo UDT's y arrays.

    - Utiliza la misma sintaxis que C. Por ejemplo,

      TYPE Node
         PreviousNode AS Node POINTER
         NextNode     AS Node POINTER
      END TYPE

      DIM CurrentNode AS Node POINTER
      CurrentNode->NextNode->PreviousNode = NULL

      DIM A AS SHORT POINTER, B AS SHORT POINTER, C AS SHORT POINTER POINTER
      *A = *B \ **C

    - Ilimitados niveles de indireccin (es decir., puntero a puntero a...)

    - Punteros a Funcin:

      DIM MyPointer AS SUB(BYVAL ArgumentA AS INTEGER, BYVAL ArgumentB AS DOUBLE)
      DIM OtherPointer AS FUNCTION(BYVAL ArgumentA AS INTEGER)

      MyPointer = @RealSub '' or PROCPTR(RealSub)
      MyPointer(1, 2)

      SUB RealSub(BYVAL ArgumentA AS INTEGER, BYVAL ArgumentB AS DOUBLE)
         Result = ArgumentA * ArgumentB
      END SUB

    - Indexado:

      DIM foo AS INTEGER PTR

      foo = CALLOCATE( 10 * len( integer ) )

      FOR i = 0 to 9
        foo[i] = bar            '' same as *(foo + i) = bar
      NEXT

    - Indexado de cadenas de texto:

      DIM text AS STRING

      text = "BAR"
      print text[0]             '' output will be 66 = ASC("B")

    - Desreferenciado de funciones:

      value = somefunc( )->somefuncptr( )->somefield

    - Amoldado de tipos:

      cptr(byte ptr, intptr) += 1

      cptr(myudt1 ptr, @udt2)->foo = *cptr(integer ptr, bar)

  o Inicializadores de variables para variables estticas, a nivel de mdulo o locales, simples,arrays
    o  tipos definidos por el usuario:

      DIM foo( 0 to 3 ) AS INTEGER = { 1, 2, 3, 4 }

      STATIC bar( 0 to 1, 0 to 1 ) AS ZSTRING * 10 => { { "abc", "def" }, _
                                                        { "ghi", "jkl" } }

      DIM mytype as MYTYPE = ( "a", 1, 2.0 )

      DIM mytypearray(0 to 1) as MYTYPE = { ( "a", 1, 2.0 ), ( "b", 3, 4.0 ) }

      DIM localvar AS INTEGER = a + b * d

  o Argumentos de funcin opcionales (numericos y cadenas):

      DECLARE SUB Test(a AS DOUBLE = 12.345, BYVAL b AS BYTE = 255, _
                       BYVAL s AS STRING = "abc")

      Test
      Test , 128
      Test ,
      Test 44,
      Test 44
      Test ( )

      etcetera.
      
  o Sobrecarga de funciones:
  
  	DECLARE SUB Test OVERLOAD (a AS DOUBLE)
  	DECLARE SUB Test (a AS SINGLE)
  	DECLARE SUB Test (a AS INTEGER, b AS INTEGER = 1234)
  	DECLARE SUB Test (a AS BYTE, b AS SHORT)

  o Ensamblador en lnea:

    - Sintaxis Intel.

    - Se referencian las variables por su name; no requiere "trucos".

  o Preprocesador:

    - Misma sintaxis que C (incluyendo #DEFINEs con argumentos):

      #DEFINE SOMEDEF 1234
      #DEFINE OTHERDEF 5678
      #IFDEF SOMEDEF
      #   IF NOT DEFINED(OTHERDEF)
      #      DEFINE OTHERDEF SOMEDEF
      #   ELSE
      #      IF OTHERDEF <> SOMEDEF
      #         UNDEF OTHERDEF
      #         DEFINE OTHERDEF SOMEDEF
      #      ENDIF
      #   ENDIF
      #ELSE
      #   DEFINE OTHERDEF 5678
      #ENDIF
      #PRINT OTHERDEF

      #DEFINE bar(x,y) ((x) * (y))
      #DEFINE foo(x,y) bar(x-y,y-x)
      a = foo(b, c)

  o Typedefs:

    - Soporta referenciado adelantado al igual que C:

      TYPE foo AS bar

      TYPE sometype
           f   AS foo PTR
      END TYPE

      TYPE bar
           st  AS sometype
           a   AS INTEGER
      END TYPE

      DIM s AS sometype, b AS bar

      b.st.f = @b
      s.f = @b

      s.f->st.f->a = 1234

  o Caracteres de escape en cadenas literales:

    - Lo mismo que en C (a excepcin de que los nmeros se interpretan como decimales, no
      como octales).
      Utiliza OPTION ESCAPE para activar y desactivar esta funcin.

      OPTION ESCAPE
      PRINT "\"Hello from FreeBASIC!\""
 
  o Soporte para Unicode

    - FreeBASIC puede parsear ficheros fuente (.bas) o cabecera (.bi)  en formato UTF-16 
      (otros formatos ms adelante), pueden mezclarse con ficheros ASCII en el mismo    
      proyecto.
  
    - Las cadenas literales pueden teclearse en el alfabeto original no latino, evitando
      tener que usar las inmantenibles secuencias de escape.

  o Soporte para depurador:

    - Soporte completo para GDB (el depurador de GNU) o Insight ( el frontend GUI de GDB)

    - Comprobacin de lmites de arrays (se habilita mediante la opcin de lnea de rdenes
       -exx)

    - Comprobacin de punteros nulos (igual que el anterior)

  o Crea OBJ's, LIB's, DLL's, y EXE's para consola o GUI:

    - FB no est ligado a un IDE o editor determinado.

    - Puede crear libreras estticas o dinmicas con solo aadir la opcin de lnea de rdenes
      adecuada (-lib o -dll).

  o Es una aplicacin de 32 bit:

    - FreeBASIC puede compilar ficheros fuente de hasta 2 GB de largo.

    - El nmero de smbolos (variables, constantes, etcetera) est limitado slo
      por el total de memoria disponible durante la compilacin. (Por ejamplo, puedes
      incluir OpenGL, Gtk/SDL y BASS, de forma simultnea en tu fuente.)

  o Generacin de cdigo optimizado

    - Aunque FreeBASIC no es un compilador optimizador, realiza varias operaciones
      de optimizacin para generar el cdigo ms rpido posible en CPU's x86,
      por lo que su velocidad no es menor a la de  otros BASICs, incluyendo los 
      distribuidos comercialmente.

  o Totalmente gratuito:

    - Todas las herramientas de terceras partes son tambin gratuitas, no utiliza
      ningn elemento de software abandonado o con copyright (excepto GoRC en Win32).
      El ensamblador, linker, archivador, y dems aplicaciones de lnea de 
      rdenes provienen de las herramientas binutils de GNU.
      
Qu no es FreeBASIC:

  o FreeBASIC no es un clon de QuickBASIC ni un emulador.

    - Los DEF SEG, PEEK y POKE a posiciones absolutas de memoria 16-bit, y muchas
      otras antiguas sentencias raramente utilizadas en la actualidad, no se han
      implementado, lee el archivo  docs/keywords.txt para una lista de diferencias.

    - Aunque FB es el compilador BASIC que mas se parece a los compiladores BASIC 
      de Microsoft para DOS, no esperes poder compilar sin modificarlo cdigo antiguo
      con sentencias no soportadas o libreras externas: no funcionar.

  o FreeBASIC no es una alternativa a Visual Basic.

    - FB no tiene eventos, o envolvente del GUI. (Aunque puedes crearlo facilmente
      mediante UDT's y punteros)

  o FreeBASIC no est libre de errores, como cualquier otro programa.

    - El proyecto FreeBASIC comenz en Septiembre de 2004, y todava no est 
      probado en su totalidad.


Probables adiciones en prximas versiones:

  o Estructura de datos CLASS (para programacin orientada a objetos):

    - Ser ms facil escribir cdigo para GUI.
 

Crditos (por orden alfabtico):

  o Angelo Mottola (a.mottola@libero.it) - Miembro del equipo de desarrollo:
    - Port FreeBASIC a Linux; mantenedor de la versin.
    - Desarrollador de GFXLib2.
    - Aadi el profiler.
    - Aadi tambin la capacidad multi-hilos, soporte a librerias dinmicas y 
      acceso a puertos E/S.
    - Hizo la rtlib compatible con la programacion multi-hilos, ademas de otras
      mejoras en la rtlib y el compilador.

  o Bryan Stoeberl (b_stoeberl@yahoo.com):
    - Tradujo la cabecera de OpenGL Extensions.
    - Escribi el ejemplo de glext del directorio examples/GL.

  o Chris Davies (c.g.davies@gmail.com):
    - Tradujo  las cabeceras OpenAL (que luego fueron reemplazadas por una versin
      SWIG FB).
    - Escribi el ejemplo de OpenAL en el directorio examples/sound.

  o Daniel R. Verkamp (i_am_drv@yahoo.com) - Miembro del equipo de desarrollo:
    - Port FreeBASIC a DOS y Xbox; mantendedor de los ports.
    - Tradujo las cabeceras de Allegro (en curso).
    - Escribi la automatizacin de librerias estticas y DLL, y el soporte
      a scripts de recursos en Windows.

  o Dumbledore
    - Port las cabeceras wx-c (que luego fueron reemplazadas por una versin
      SWIG FB).
    - Escribi el ejemplo de wx en el directorio examples/wx-c.

  o Edmond Leung (leung.edmond@gmail.com):
		- Tradujo  las cabeceras SDL (que luego fueron reemplazadas por una versin
      SWIG FB).
    - Escribi/tradujo muchos de los ejemplos del directorio examples/SDL.
   
  o Eric Lope (vic_viperph@yahoo.com):
		- Tradujo  las cabeceras OpenGL y GLU (que luego fueron reemplazadas por una versin
      SWIG FB).
    - Escribi los ejemplos rel-* del directorio examples/gfx.
    - Escribi el ejemplo fbgfx_texture.bas del directorio examples/GL.   
   
  o Florent Heyworth (florent.heyworth@swissonline.ch):
		- Tradujo  las cabeceras WIN API y sql/odbc (que luego fueron reemplazadas por una versin
      SWIG FB).

  o fsw (fsw.fb@comcast.net):
		- Tradujo  las mayoria de las cabeceras Windows API (que luego fueron reemplazadas por una 
      versin SWIG FB).
    - Escribi el ejemplo glade_gui del directorio examples/Gtk, adems de varios ejemplos wx-c
      (no incluidos)

  o Garvan O'Keeffe (sisophon2001@yahoo.com):
    - Port la mayora de las lecciones sobre OpenGL de NeHe del directorio examples/GL/NeHe.
    - Escribi el ejemplo de uso de pdflib del directorio examples/pdflib.  

  o Randy Keeling (randy@keeling.com):
    - Escribi el ejemplo de clculo matricial en GSL matrix del directorio examples/GSL.

  o Matthias Faust (matthias_faust@web.de):
		- Tradujo  las cabeceras SDL_ttf (que luego fueron reemplazadas por una versin
      SWIG FB).
    - Escribi el ejemplo de SDL_ttf.
    
  o Mark Junker (mjscod@gmx.de) - Miembro del equipo de desarrollo:
    - Aadi soporte para ficheros del sistema como SCR, LPTx, COM, etc.
    - Aadi soporte para impresora.
    - Cre los tests automatizados para el compilador y la librera de tiempo de ejecucin.
    - Muchas mejoras en la librera de tiempo de ejecucin.

  o Marzec:
    - Escribi los ejemplos de SDL_bassgl, SDL_opengl, and SDL_key del directorio examples/SDL.
    - Tradujo las primeras cabeceras SDL(que dejaron de usarse desde la version 0.11b).
    - Escribi las primeras rutinas de ficheros para la librera de tiempo de ejecucin.

  o Nek (dave@nodtveidt.net):
    - Tradujo las cabeceras para Windows API, integrando partes del trabajo de fsw. (ms tarde
      fueron reemplazadas por una versin SWIG FB).

  o plasma:
    - Tradujo las cabeceras para FMOD y BASS.
    - Escribi fmod.bas del directorio examples/sound.

  o Sterling Christensen (sterling@engineer.com):
    - Antiguo miembro del equipo de desarrollo, escribi la primera librera grfica (que fu 
      reemplazada por la GFXLib2 en la versin 0.11b)

  o Steven Hidy (subxero@phatcode.net):
    - Reescribi este fichero leeme, corrigiendo los errore de v1ctor's (KrisKhaos lo reedit 
      para la  version 0.12).

  o zydon:
    - Escribi muchos de los ejemplos del directorio examples/Windows/gui.


  o Herramientas de terceras partes que se incluyen:
    - Para la versin DOS: DJGPP (http://www.delorie.com/)

    - Para la versin Windows: Mingw (http://www.mingw.org/) y GoRC (http://www.godevtool.com/)

    - Para la versin Xbox: OpenXDK (http://www.openxdk.org/)

  o Las rutinas de divisin y mdulo para enteros largos (64-bit) son de las fuentes de la 
    libgcc2 del compilador GCC.
 


Agradecimientos:

  o Plasma: Registr el dominio freebasic.net y acoge desde mar/2005 el sitio principal,  
    muchas gracias.

  o Nexinarus: Organiz la documentacin (en curso), encontr errores mientras salvaba canguros.

  o VonGodric: Autor de la primera IDE para FreeBASIC: FBIDE  (descrgala de aqu:
    http://www.hot.ee/fbide/ ).

  o Rel: El mejor beta tester que existe, encontr montones de errores.

  o Wildcard: Cre el mayor forum sobre FB y contribuy a que FB  fuera conocido incluso antes 
    de ser publicado.

  o Blitz: El primero en ver FB cuando tan slo era un juguete ( Borra las fuentes !). Me 
    indic el camino a seguir para generar mejor cdigo. Encontr errores y escribi las 
    primeras aplicaciones reales.

  o Marzec: Hizo montones de pruebas, adems de aportar muchas ideas.

  o Nek, na_th_an, Sj Zero, Z!re: Beta testers  serios - significa: encontraron montones de 
    errores.
    

Enlaces:

  o Sitio oficial: http://www.freebasic.net/ or
                   http://fbc.sourceforge.net/ or
                   http://www.sourceforge.net/projects/fbc

  o canal IRC : irc://irc.freenode.net/freeBASIC

  o Librerias externas:

    - Allegro: http://www.talula.demon.co.uk/allegro/

    - BASS and BASSMod: http://www.un4seen.com/

    - BIG_INT: http://chat.finalcombat.com/valyala/big_int/

    - cgi-util: http://www.newbreedsoftware.com/cgi-util/

    - cryptlib: http://www.cs.auckland.ac.nz/~pgut001/cryptlib/

    - DevIL: http://openil.sourceforge.net/

    - FastCGI: http://www.fastcgi.com/

    - fmod: http://www.fmod.org/

    - FreeImage: http://freeimage.sourceforge.net/

    - GD: http://www.boutell.com/gd/ or http://gnuwin32.sourceforge.net/packages/gd.htm

    - GDSL: http://www.nongnu.org/gdsl/

    - GLFW: http://glfw.sourceforge.net/

    - GLUT: http://www.xmission.com/~nate/glut.html

    - GMP: http://www.swox.com/gmp/

    - GRX: http://grx.gnu.de/

    - GSL: http://www.gnu.org/software/gsl/ o http://gnuwin32.sourceforge.net/packages/gsl.htm

    - GTK+: http://www.gtk.org/ or http://gladewin32.sourceforge.net/modules.php?name=Downloads

    - IUP: http://luaforge.net/projects/iup

    - JAPI: http://www.japi.de/

    - libcaca: http://sam.zoy.org/libcaca/

    - LibXML: http://xmlsoft.org/

    - Lua: http://www.lua.org/

    - Mini-XML: http://www.easysw.com/~mike/mxml/

    - MySQL: http://dev.mysql.com/

    - Newton: http://www.physicsengine.com/

    - ODE: http://ode.org/

    - OpenAL: http://www.openal.org/ o bien http://developer.creative.com/landing.asp?cat=1&sbcat=31&top=38

    - OpenGL: http://www.opengl.org/

    - PDCurses: http://pdcurses.sourceforge.net/

    - PDFlib: http://www.pdflib.com/ or http://gnuwin32.sourceforge.net/packages/pdflib.htm

    - SDL: http://www.libsdl.org/ (ver seccin "Libraries" para SDL_net, SDL_image, SDL_ttf, etc)

    - SDL_gfx: http://www.ferzkopp.net/~aschiffler/Software/SDL_gfx-2.0/

    - SQLite: http://www.sqlite.org/

    - TinyPTC: http://sourceforge.net/projects/tinyptc/

    - TRE (Expresiones Regulares): http://laurikari.net/tre/

    - wx-c: http://wxnet.sourceforge.net/

    - Zlib: http://www.zlib.net/ or http://gnuwin32.sourceforge.net/packages/zlib.htm


Traducido al espaol por Antoni Gual

EOF
