/[grub]/grub2/term/i386/pc/vesafb.c
ViewVC logotype

Diff of /grub2/term/i386/pc/vesafb.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by chaac, Mon Aug 15 21:25:41 2005 UTC revision 1.2 by chaac, Tue Aug 16 18:34:17 2005 UTC
# Line 136  grub_virtual_screen_setup (grub_uint32_t Line 136  grub_virtual_screen_setup (grub_uint32_t
136    
137    /* Allocate memory for text buffer.  */    /* Allocate memory for text buffer.  */
138    virtual_screen.text_buffer =    virtual_screen.text_buffer =
139      (struct grub_colored_char *)grub_malloc (virtual_screen.columns *      (struct grub_colored_char *)grub_malloc (virtual_screen.columns
140                                               virtual_screen.rows *                                               * virtual_screen.rows
141                                               sizeof(struct grub_colored_char));                                               * sizeof(struct grub_colored_char));
142    if (virtual_screen.text_buffer == 0)    if (virtual_screen.text_buffer == 0)
143      {      {
144        return GRUB_ERR_OUT_OF_MEMORY;        return GRUB_ERR_OUT_OF_MEMORY;
# Line 320  write_char (void) Line 320  write_char (void)
320    unsigned char bitmap[32];    unsigned char bitmap[32];
321    unsigned width;    unsigned width;
322    
323    p = (virtual_screen.text_buffer +    p = (virtual_screen.text_buffer
324         virtual_screen.cursor_x +         + virtual_screen.cursor_x
325         (virtual_screen.cursor_y * virtual_screen.columns));         + (virtual_screen.cursor_y * virtual_screen.columns));
326    
327    p -= p->index;    p -= p->index;
328    
# Line 356  write_char (void) Line 356  write_char (void)
356                color = p->bg_color;                color = p->bg_color;
357              }              }
358    
359            grub_vbe_set_pixel_index(i + (virtual_screen.cursor_x * virtual_screen.char_width),            grub_vbe_set_pixel_index(i + (virtual_screen.cursor_x
360                                     y + (virtual_screen.cursor_y * virtual_screen.char_height),                                          * virtual_screen.char_width),
361                                       y + (virtual_screen.cursor_y
362                                            * virtual_screen.char_height),
363                                     color);                                     color);
364          }          }
365      }      }
# Line 390  scroll_up (void) Line 392  scroll_up (void)
392    /* Scroll text buffer with one line to up.  */    /* Scroll text buffer with one line to up.  */
393    grub_memmove (virtual_screen.text_buffer,    grub_memmove (virtual_screen.text_buffer,
394                  virtual_screen.text_buffer + virtual_screen.columns,                  virtual_screen.text_buffer + virtual_screen.columns,
395                  sizeof (struct grub_colored_char) *                  sizeof (struct grub_colored_char)
396                  virtual_screen.columns *                  * virtual_screen.columns
397                  (virtual_screen.rows - 1));                  * (virtual_screen.rows - 1));
398    
399    /* Clear last line in text buffer.  */    /* Clear last line in text buffer.  */
400    for (i = virtual_screen.columns * (virtual_screen.rows - 1);    for (i = virtual_screen.columns * (virtual_screen.rows - 1);
# Line 408  scroll_up (void) Line 410  scroll_up (void)
410    
411    /* Scroll frambuffer with one line to up.  */    /* Scroll frambuffer with one line to up.  */
412    grub_memmove (framebuffer,    grub_memmove (framebuffer,
413                  framebuffer + bytes_per_scan_line * virtual_screen.char_height,                  framebuffer
414                  bytes_per_scan_line *                  + bytes_per_scan_line * virtual_screen.char_height,
415                  (mode_info.y_resolution - virtual_screen.char_height));                  bytes_per_scan_line
416                    * (mode_info.y_resolution - virtual_screen.char_height));
417    
418    /* Clear last line in framebuffer.  */    /* Clear last line in framebuffer.  */
419    grub_memset (framebuffer +    grub_memset (framebuffer
420                 (bytes_per_scan_line *                 + (bytes_per_scan_line
421                  (mode_info.y_resolution - virtual_screen.char_height)),                    * (mode_info.y_resolution - virtual_screen.char_height)),
422                 0,                 0,
423                 bytes_per_scan_line * virtual_screen.char_height);                 bytes_per_scan_line * virtual_screen.char_height);
424  }  }
425    
426  static void  static void
# Line 432  grub_vesafb_putchar (grub_uint32_t c) Line 435  grub_vesafb_putchar (grub_uint32_t c)
435        /* Erase current cursor, if any.  */        /* Erase current cursor, if any.  */
436        if (virtual_screen.cursor_state)        if (virtual_screen.cursor_state)
437          write_char ();          write_char ();
438      
439        switch (c)        switch (c)
440          {          {
441          case '\b':          case '\b':

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26