Fenix, si el numero q kieres pasar esta en decimal, es muy facil pasarlo a BCD, no se si existira alguna funcion que lo haga, pero si no hazlo tu, pq en 5 o 6 lineas tienes hecha la funcion.
Por ejemplo, si tienes el numero 153 en decimal, para pasarlo a BCD yo haria lo siguiente:
153 / 100 = 1 <--- PRIMER CODIGO A PASAR A BCD (0001)
153 mod 100= 53
53 / 10 = 5 <--- SEGUNDO CODIGO A PASAR A BCD (0101)
53 mod 10 = 3 <-- TERCER CODIGO A PASAR A BCD (0011)
Para pasar los numeros digitales obtenidos que iran del 0..9, simplemente realizamos una conversion a binario, y añadimos por la izquierda tantos ceros como necesitemos para completar los 4 bits correspondientes a los codigos BCD. Yo para hacer esto crearia un registro parecido al siguiente:
RECORD BCD:
codigo1: ARRAY [0..3] OF INTEGER;
codigo2: ARRAY [0..3] OF INTEGER;
codigo3: ARRAY [0..3] OF INTEGER;
Y iniciaria todos los arrays a 0, luego empezaria pasando los digitos hallados anteriormente a binario, empezando a completar por la ultima posicion del ARRAY.
Para pasar los numeros a binario, puedes usar el tipico algoritmo de la division.
Ahora el numero en BCD para el 153, seria la impresion del registro en orden.
Un saludo.