Hola,
he necesitado de esta lista para compilar y ejecutar mi jueguecito en Bennu, y creo que será de utilidad para alguno. Son los parámetros que puede tomar el ejecutable:
Use: bgdc [options] filename
-d Debugging mode
-o ouputfile Ouput DCB file
-i dir Adds the directory to the PATH
-a Automaticaly adds all files to the DCB
-f file Adds a single file to the DCB
-l lang Specify locale settings
-s stub Generate a stubbed executable from the given stub
-g Stores debugging information at the DCB
-c File uses the MS-DOS character set
-D macro=text Set a macro
-p|--pedantic Don't use automatic declare
--libmode Build a library
-L library Include a library
-C options Specify compiler options
Where options are:
a Enable automatic declare functions
Compiling multiple sources:
Se pueden compilar múltiples fuentes desde la línea de comandos (como #include).
Modo de uso:
> bgdc prg1.prg prg2.prg
Debugging mode ( -d):
Modo debug. Permite ejecutar la consola para visualizar el estado de la ejecución (Ctrl + C):
* estado de los procesos
* visualizar/cambiar los valores de las variables, estructuras
* ...
Modo de uso:
> bgdc.exe mi_programa.prg -d
Adds the directory to the PATH ( -i dir):
Añade el directorio dir al PATH.
Modo de uso:
> bgdc.exe mi_programa.prg -i \DATA\
> bgdc.exe mi_programa.prg -i \DATA\ -i \USR\SRC\BIN\ -i \DATA\STUB\
Output DCB file (name) (-o outputfile) :
Cambia el nombre de salida del dcb a outputfile. Sus extensiones pueden ser dcb, dat o bin.
Modo de uso:
> bgdc.exe mi_programa.prg -o juego.dcb
Automaticaly adds all files to the DCB ( -a):
Añade todos los archivos al DCB. Todos los archivos (wav, ogg, map, pal, fpg, ...) son añadidos automáticamente al DCB. Los archivos de librerías DLL no se añaden al DCB.
Modo de uso:
> bgdc.exe mi_programa.prg -a
Adds a single file to the DCB ( -f file):
Añade un archivo al DCB. También se pueden añadir varios archivos nombrándolas uno a uno:
Modo de uso:
> bgdc.exe mi_programa.prg -f menu.fpg
> bgdc.exe mi_programa.prg -f menu.fpg
-f menu.ogg
-f menu.map
o, definirse a un archivo tipo listado en el que se enumeran todos los archivos a incluir. En este último caso, se definiría de la siguiente forma:
> bgdc.exe mi_programa.prg -f @include_files.lst <-- el archivo-lista debe llamarse include_files.lst
-f @sound_files.lst <-- el archivo-lista debe llamarse sound_files.lstp
Specify locale settings ( -l lang):
Obsoleto.
Generate a stubbed executable from the given stub ( -s stub):
Genera un ejecutable con el intérprete y el DCB integrado.
Modo de uso:
> bgdc.exe mi_programa.prg -s bgdi.exe
No es necesario llamar al stub con path absoluto; si existe en el mismo directorio de trabajo que el compilador es suficiente.
Nota: No se crea ningún dcb intermedio. Se crea directamente el ejecutable (.exe) con el stub y el dcb dentro.
Stores debugging information at the DCB ( -g):
Guarda información de debug en el DCB (no sé exáctamente qué es).
Modo de uso:
> bgdc.exe mi_programa.prg -g
File uses the MS-DOS character set ( -c):
Señala al copilador que nuestro código contiene carácteres de MS-DOS (ahora en desuso). Estos carácteres aparecen en ejemplos de DIV y DIV2 generalmente. Recordad que es una "c" en minúscula, mientras que en mayúscula significa opciones de compilación especiales.
Modo de uso:
> bgdc.exe mi_programa.prg -c
Set a macro ( -D macro=text):
Envía un macro al compilador. Un macro puede ser la definición de una constante, como DEBUG, ANCHO_PANTALLA=640 ALTO_PANTALLA=480 ó BUFFER=100.
-D DEBUG :
> bgdc.exe -D DEBUG mi_programa.prg
> bgdc.exe -D DEBUG -D BUFFER=100 -D MAX_NPC=1000 mi_programa.prg
y luego en tu codigo poner:
#ifdef DEBUG
...
#endif
Con esto se puede usar código que solo se ejecute en modo debug cuando lo compilas en modo debug. Lo mismo en FULL y RELEASE ( -D FULL, -D RELEASE). Sería como un #define, pero al no estar en el código, permite flexibilidad para compilar diferentes versiones sin tener que tocar el código.
Lo mismo para el macro:
-D BUFFER=100
donde en el código se podría poner:
array[BUFFER] = "Última posición en el array";
Build a library ( --libmode):
La salida del compilador será una librería hecha en Bennu, pero en formato dbl (en vez de dcb).
Modo de uso:
> bgdc.exe --libmode mi_programa.prg
Include a library ( -L library):-L library
Incluye específicamente una librería de Bennu (dbl).
Modo de uso:
> bgdc.exe -L nombre_librearía.dbl mi_programa.prg
> bgdc.exe -L nombre_librearía.dbl -L lib2.dbl -L lib3.dbl mi_programa.prg
Specify compiler options ( -C options):
a Enable automatic declare functions:
Permite la declaración de funciones automáticamente. Muy útil cuando no queramos declarar las funciones, pero tiene sus contraindicaciones, posibles bugs y descenso de efectividad en tiempo de ejecución. Utiliza como parámetro una "c" en mayúscula y los parámetros siguientes pueden ir juntos o aparte.
Modo de uso:
> bgdc.exe mi_programa.prg -C a
> bgdc.exe mi_programa.prg -Ca
Ahora mismo es necesario compilar como bgdc.exe -C a si no tienes definidos las funciones...
Y la definición de las funciones serían de esta manera:
Declare menu(); end
Declare nave_enemigo(x,y); end
Declare prota(x,y, vida, nivel); end
Un Declare por cada. Si no, se puede ordenar las funciones (cuando digo funciones digo también procesos) según el uso; tener escrito en nuestro código antes de su llamada.