¡Aló!
Pos a decir verdad, está bién, no puedo decir mucho sobre el código porque no sé FreeBASIC y tendría que echarle una pasada al viejo libro de informática que heredé de mi madre para ello.
Pero, por inducción veo que la función DibujarCorazon
se declara dos veces, aunque no pasa nada porque la última tendrá siempre prioridad.
Si lo deseas puedes dejarlo aquí de todas formas, la licencia que todas las publicaciones en el foro tienen es la CC BY-SA tal como respondí en Script para controlar el swap - nº 4 por Carlinux.