Annotation of Net2/arch/amiga/stand/dumpfont/dumpfont.c, revision 1.1.1.1

1.1       root        1: /* This is a *real* hack to dump the topaz80 kernel font. This one is 
                      2:    ways nicer than the ugly Mach font, but we'll have to dump it from a
                      3:    running system to not run against Commodore copyrights. *NEVER* distribute
                      4:    the generated font with BSD, always regenerate! */
                      5: 
                      6: #include <exec/types.h>
                      7: #include <exec/memory.h>
                      8: #include <dos/dos.h>
                      9: #include <graphics/gfx.h>
                     10: #include <graphics/rastport.h>
                     11: #include <graphics/text.h>
                     12: 
                     13: #include <inline/exec.h>
                     14: #include <inline/graphics.h>
                     15: 
                     16: #include <stdio.h>
                     17: 
                     18: 
                     19: main()
                     20: {
                     21:   unsigned char str[256], *pp;
                     22:   int i;
                     23:   struct TextAttr ta = { "topaz.font", 8, FS_NORMAL, FPF_ROMFONT };
                     24:   struct RastPort rp;
                     25:   struct BitMap bm = { 256,    /* bytes per row */
                     26:                         8,     /* rows */
                     27:                         0,     /* flags */
                     28:                         1,     /* depth */
                     29:                         0,     /* pad */
                     30:                         0 };   /* planes */
                     31:   struct TextFont *tf;
                     32: 
                     33:   InitRastPort (& rp);
                     34:   rp.BitMap = &bm;
                     35:   bm.Planes[0] = pp = AllocRaster (256 * 8, 8);
                     36: 
                     37:   if (!pp)
                     38:     {
                     39:       fprintf (stderr, "Can't allocate raster!\n");
                     40:       exit (1);
                     41:     }
                     42:   bzero (pp, 256 * 8);
                     43:   
                     44:   tf = OpenFont (& ta);
                     45:   if (! tf)
                     46:     {
                     47:       fprintf (stderr, "can't open topaz font.\n");
                     48:       exit (1);
                     49:     }
                     50: 
                     51:   SetFont (&rp, tf);
                     52: 
                     53:   /* initialize string to be printed */
                     54:   for (i = 32; i < 256; i++) str[i - 32] = i;
                     55: 
                     56:   Move (&rp, 0, 6);
                     57:   
                     58:   Text (&rp, str, 256 - 32);
                     59:   {
                     60:     int bin = open ("bitmap", 1);
                     61:     if (bin >= 0)
                     62:       {
                     63:         write (bin, pp, 256*8);
                     64:         close (bin);
                     65:       }
                     66:   }
                     67:   
                     68:   /* dump them.. */
                     69:   printf ("/* generated automatically by dumpfont.c. *DONT* distribute\n");
                     70:   printf ("   this file, it contains information Copyright by Commodore!\n");
                     71:   printf ("\n");
                     72:   printf ("   This is the (new) topaz80 system font: */\n\n");
                     73:   
                     74:   printf ("unsigned char kernel_font_width  = 8;\n");
                     75:   printf ("unsigned char kernel_font_height = 8;\n");
                     76:   printf ("unsigned char kernel_font_lo = 32;\n");
                     77:   printf ("unsigned char kernel_font_hi = 255;\n\n");
                     78:   
                     79:   printf ("unsigned char kernel_cursor[] = {\n");
                     80:   printf ("  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };\n\n");
                     81:   printf ("unsigned char kernel_font[] = {\n");
                     82:   
                     83:   for (i = 0; i < 256 - 32; i++)
                     84:     {
                     85:       printf ("/* %c */ ", i + 32);
                     86:       printf ("0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x,\n",
                     87:              pp[i+0*256], pp[i+1*256], pp[i+2*256], pp[i+3*256],
                     88:              pp[i+4*256], pp[i+5*256], pp[i+6*256], pp[i+7*256]);
                     89:     }
                     90:   printf ("};\n");
                     91:   
                     92:   CloseFont (tf);
                     93:   FreeRaster (pp, 256 * 8, 8);
                     94: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.