home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 11 / CDACTUAL11.iso / cdactual / demobin / share / DOS / FUENTES / LEEFONT.C < prev    next >
Encoding:
C/C++ Source or Header  |  1995-10-14  |  2.1 KB  |  59 lines

  1. /****************************************************************************/
  2. /*                                                                                                     */
  3. /*                                        L E E F O N T   1.0                                       */
  4. /*                                                                                                     */
  5. /*                 Programa realizado por Luis Aguilar - 1995  B A S S                 */
  6. /*                                                                                                     */
  7. /*      Con este programa se pretende ilustrar cómo usar fuentes creadas por   */
  8. /*      el programa FUENTES en vuestros propios programas. Esta rutina puede   */
  9. /*      usarse libremente, si bien se agradecería una mención al autor en los  */
  10. /*      créditos del programa que la utilice.                                             */
  11. /*                                                                                                     */
  12. /*      NOTA: Esta rutina ha sido escrita con Borland C++ versión 3.1             */
  13. /*                                                                                                     */
  14. /****************************************************************************/
  15.  
  16. #include <process.h>
  17. #include <alloc.h>
  18. #include <string.h>
  19. #include <stdio.h>
  20.  
  21. char *buffer;                                  /* Buffer donde guardaremos la fuente */
  22. char *nombre_fichero="broadway.fnt";  /* Nombre del fichero .FNT */
  23. FILE *fich;
  24.  
  25. void main(void)
  26. {
  27.     /* Reservamos 4 Kb. para cargar la fuente en memoria */
  28.  
  29.     if((buffer=(char *)malloc(4096))==NULL) {
  30.         printf("¡¡ No hay suficiente memoria !!\n");
  31.         exit (1);
  32.     }
  33.  
  34.     /* Abrimos el fichero de la fuente */
  35.  
  36.     if ((fich=fopen(nombre_fichero,"rb"))==NULL) {
  37.         printf("\a\nArchivo %s no encontrado.\n",nombre_fichero);
  38.         exit(1);
  39.     }
  40.  
  41.     fseek(fich, SEEK_SET, 0);    /* Nos colocamos al principio del fichero     */
  42.     fread(buffer,1,4096,fich);    /* Cargamos en memoria 4096 bytes del fichero */
  43.     fclose(fich);                    /* Cerramos el fichero                                  */
  44.  
  45.  
  46.     /* Activamos el nuevo tipo de letra */
  47.  
  48.     asm {
  49.         mov ax,0x1100    /* Utilizamos la subfunción 11h de la interrupción 10h */
  50.         mov bh,16      /* Bytes por caracter = 16                                      */
  51.         mov cx,255        /* Número de caracteres a definir = 255                      */
  52.         mov dx,0            /* Desplazamiento dentro del bloque = 0                    */
  53.         les bp, buffer /* ES:BP apunta al buffer de caracteres                   */
  54.         int 0x10            /* Llamamos a la interrupción 10h                             */
  55.     }
  56.  
  57.     free(buffer);        /* Liberamos los 4 Kb. de memoria asignada a buffer    */
  58.     exit(0);                /* Apaga y vámonos ;-)                                             */
  59. }