home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / C-ASM_VI.ARJ / PROGC.ZIP / PROGC051.C < prev    next >
Text File  |  1988-05-15  |  2KB  |  56 lines

  1.  
  2. /************************************************************************/
  3. /* Display 512 different characters at a time                           */
  4. /************************************************************************/
  5.  
  6. print_512_chars()
  7.         {
  8.         #define MONO    5
  9.         #define VMONO   7
  10.         #define ON      1               /* Flag values                  */
  11.         #define OFF     0
  12.         static  char    buffer[256][32];/* Buffer for char gen          */
  13.         int     i, j;
  14.  
  15.         /*--- Set default text mode                                     */
  16.  
  17.         if (get_display_type() == VMONO ||
  18.             get_display_type() == MONO) set_mode(7);
  19.         else                            set_mode(3);
  20.  
  21.         /*--- Download a second 256 character set                       */
  22.  
  23.         read_char_gen(buffer);          /* Read old character generator */
  24.         for (i = 0; i < 255; i++)       /* Create a new char set        */
  25.                 for (j = 0; j < 4; j++) /* from the old by 'italisizing'*/
  26.                         {
  27.                         buffer[i][j] = buffer[i][j] >> 1;
  28.                         buffer[i][j+10] = buffer[i][j+10] << 1;
  29.                         }
  30.                                         /* Download new char gen        */
  31.         write_char_gen(buffer, 512, 256);
  32.  
  33.         /*--- Enable the 512 character set generation                   */
  34.  
  35.         enable_second_set();            /* Enable 512 char set          */
  36.  
  37.         /*--- Display 512 characters and attributes                     */
  38.  
  39.         for (i = 0; i < 256; i++)       /* Display chars 0 - 255        */
  40.                 {
  41.                 write_attribute(i/64, i%64, 0, 7);
  42.                 write_char(i, i/64, i%64);
  43.                 }
  44.  
  45.         for (i = 0; i < 256; i++)       /* Display chars 256-512        */
  46.                 {
  47.                 write_attribute(4 + i/64, i%64, 0,15);
  48.                 write_char(i, 4 + i/64, i%64);
  49.                 }
  50.  
  51.         /*--- Wait for <Enter> and then disable the second character set*/
  52.  
  53.         getchar();
  54.         disable_second_set();
  55.         }
  56.