Bien, por fin lo tengo... me ha costado un buen trabajo...
el cambio del que hablaba se trata de un nuevo sistema con el cual es posible crear librerias para bennugd a nivel dcb.
esto es, dcbs que aportan funciones escritas en codigo bennugd.
esto nos permite liberar funciones de usuario sin necesidad de liberar codigo, asi sea por seguridad o porque queremos tener todo mas prolijo y ordenado, o simplemente porque no queremos compartir codigo.
si bien estos nuevos archivos .dcl no son mas que .dcb, pero tienen alguna que otra pequeña modificacion para hacer posible esto.
ejemplos de uso:
para crear una libreria, vamos a tomar el ejemplo de key_event.lib.
solo haremos:
bgdc --libmode key_event.lib
esto nos generara un bonito key_event.dcl, el cual luego utilizaremos en nuestros proyectos.
ahora, estos dcl tienen una limitacion, no contienen constantes ni tampoco contienen defines, por ende necesitamos un .h como el siguiente (key_event.h):
#ifndef __KEY_EVENT_LIB
#define __KEY_EVENT_LIB
#define _key_pressed 0
#define _key_down 1
#define _key_up 2
#define _key(k,ev) ((ev==_key_down)?( _key_state[ k ][ _key_use ] && !_key_state[ k ][ _key_use ^ 1 ] ): \
(ev==_key_up )?( !_key_state[ k ][ _key_use ] && _key_state[ k ][ _key_use ^ 1 ] ): \
( _key_state[ k ][ _key_use ]))
#endif
NOTA: no se deben declarar las funciones que existan en la lib si la estamos linkeando, ya que sino dara error. Pero si es una funcion que pensamos usar como externa y no la estamos linkeando en ese momento (generar otra dcl que usara una dcl), si conviene declararla para evitar conversiones raras.
ahora para compilar nuestro programa usando la libreria previamente generada, hacemos:
bgdc -L key_event.dcl key_event_test.prg
esto nos generara nuestro dcb de toda la vida, pero incluyendo todas las funciones de la libreria.
espero que les haya gustado y empiecen a liberar y compartir cosas usando este metodo.