aboutsummaryrefslogtreecommitdiff
path: root/console-client/vga-support.c
Commit message (Collapse)AuthorAgeFilesLines
* Use our own variant of 'assert' and 'assert_perror'.Justus Winter2017-08-051-2/+2
| | | | | Our variants print stack traces on failures. This will make locating errors much easier.
* fix compiler warnings in hurd/console-clientFlavio Cruz2015-12-291-3/+5
| | | | | | | | | | | | | | | | console-client: Fix several compiler warnings. * console-client/bdf.c: Use size_t instead of int. * console-client/driver.c: Remove unused variable errstring. * console-client/pc-kbd.c: Cast sc to scancode_x1 before comparing with enum values. * console-client/vga-dynacolor.h: Use an explicit if in reference counting. * console-client/vga-dynafont.c: Use usigned char for bitmaps. * console-client/vga-support.c: Use unsigned char instead of char. * console-client/vga-support.h: Likewise. * console-client/vga.c: Use conchar_attr_equal instead of casting structures to integers. * hurd/console.h: Add conchar_attr_equal to compare conchar_attr_t structures.
* Fix setting LGE flagSamuel Thibault2014-03-261-2/+2
| | | | | * console-client/vga-support.c (vga_set_font_width): Fix setting the `VGA_ATTR_MODE_LGE' flag.
* Align VGA buffersSamuel Thibault2014-03-261-2/+5
| | | | | | | | | | | Some "hardware" (such as kvm on linux 3.2) would hang when transferring between video memory and unaligned main memory. This also allows better optimized transfers anyway. Thanks Petter Reinholdtsen for the report and patient tests. * console-client/vga-support.c (vga_state): Force maximum alignment of `videomem' and `fontmem' fields.
* Add --font-width option to force 8/9 pixel font widthSamuel Thibault2014-02-131-6/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This permits to choose between 720x400 or 640x400 textmode without changing the font. * console-client/vga-hw.h (VGA_ATTR_MODE_ADDR, VGA_ATTR_MODE_LGE, VGA_ATTR_ENABLE_ADDR): New macros. * console-client/vga-support.c (vga_state): Add `attr_mode' field. (vga_init): Save attribute mode subregister content. Re-enable the screen after that. (vga_fini): Restore attribute mode subregister content. Re-enable the screen after that. (vga_set_font_width): When the font width is set to 9, enable VGA LGE to properly handle box-drawing unicode characters. Re-nable the screen after that. (vga_exchange_palette_attributes): Use VGA_ATTR_ENABLE_ADDR macro instead of harcoded 0x20. * console-client/vga-dynafont.h (dynafont_new): Add `width' parameter. * console-client/vga-dynafont.c (dynafont): Add `width' field. (dynafont_new): Add `width' parameter, stored in `width' field of `df', but using the font bbox as default value. Use it to decide whether to use VGA LGE or not. (dynafont_activate): Use `width' field of `df' instead of the font bbox to configure the VGA glyph width. * console-client/vga.c (vga_display_font_width): New variable. (vga_display): New `df_width' field. (argp_option): New `font-width' option. (parse_opt): Handle `font-width' option. (vga_display_init): Copy `vga_display_font_width' to `disp'. (vga_display_start): Pass `df_width' to `dynafont_new'.
* Fix typosSamuel Thibault2014-02-121-2/+2
|
* Include <stdlib.h> or <mach.h> where neededPino Toscano2013-02-251-0/+1
| | | | | | | | | | | | | | | cthreads.h includes both <stdlib.h> and <mach.h>, while pthreads.h does not; with the switch to pthreads, their lack causes prototype compilation warnings for malloc/calloc/free/abort, and mach_task_self/mach_reply_port/etc in few places. * console-client/vga-support.c: Include <stdlib.h>. * libiohelp/iouser-dup.c: Likewise. * libiohelp/iouser-free.c: Likewise. * libiohelp/iouser-reauth.c: Likewise. * libiohelp/return-buffer.c: Likewise. * libiohelp/shared.c: Likewise. * pflocal/connq.c: Likewise. * nfsd/cache.c: Include <mach.h>.
* Let GNU Mach messages appear under Hurd consoleSamuel Thibault2011-08-081-52/+2
| | | | | | | | | | | * console-client/vga-dynafont.c (dynafont_new): Force ASCII glyphs as being always trivially mapped. * console-client/vga-hw.h (VGA_VIDEO_MEM_BASE_ADDR): Set macro to 0x0b8000. * console-client/vga-support.c [!OSKIT_MACH]: Do not include <device/device.h> and <hurd.h>, remove VIDMMAP_BEGIN, VIDMMAP_SIZE and VIDMMAP_KDOFS macros. (vga_init): Remove code which maps video memory from the kd device. Use VGA_GFX_MISC_B8TOBF instead of VGA_GFX_MISC_A0TOAF or VGA_GFX_MISC_A0TOBF.
* Strictly adhere to the VGA register conventionSamuel Thibault2011-01-021-0/+1
| | | | | | | | Not writing a value to the "enable display" register works for tested cards, but Linux writes a 0, and you can never know what manufacturers think. * console-client/vga-support.c (vga_exchange_palette_attributes): Write a 0 value to the "enable display" register.
* 2007-05-08 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault2007-05-081-1/+1
| | | | * vga-support.c (vga_fini): Fix call to ioperm().
* 2002-11-18 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann2002-11-181-45/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | * console.c (main): Pass ERR to error invocation. * generic-speaker.c (generic_spaker_beep): Use currently active beep's next pointer, instead index 0. * pc-kbd.c: New global variables led_state and gnumach_v1_compat. (enum scancode): Change to set 2 encoding. (enum scancode_x1): Likewise. (enum scancode_x2): New type. (sc_to_kc): Change to set 2 encoding. (sc_x1_to_kc): Likewise. (sc_set1_to_set2): New variable. (sc_set1_to_set2_x1): Likewise. (gnumach_v1_input_next): New function. (update_leds): Likewise. (input_next): Likewise. (input_loop): Use input_next or gnumach_v1_input_next to read next key code. (pc_kbd_start): Add support for current GNU Mach @>=kbd interface. Call update_leds and toggle led_state. (pc_kbd_fini): Add support for current GNU Mach. (pc_kbd_set_scroll_lock_status): Toggle led_state and call update_leds. * vga-support.c (vga_init): Add support for current GNU Mach's I/O permission bitmap handling and its mem device.
* 2002-09-30 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann2002-09-301-0/+8
| | | | | | | * vga-support.c (vga_get_font_width): New function. * vga-support.h: Add prototype for vga_get_font_width. * vga-dynafont.c (create_system_font): Call vga_get_font_width to determine real font width.
* 2002-09-19 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann2002-09-181-40/+32
| | | | | | | | | * vga-support.c (vga_read_write_font_buffer): New function. It turns out that reading and writing needs the same register settings. (vga_write_font_buffer): Implement in terms of vga_read_write_font_buffer. (vga_read_font_buffer): Likewise.
* 2002-09-17 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann2002-09-171-0/+480
* Makefile (prog-subdirs): Add console-client. sutils/ 2002-09-17 Marcus Brinkmann <marcus@gnu.org> * MAKEDEV.sh (mkdev: vcs): New console device. (mkdev: tty[0-9a-f]|tty[0-9][0-9a-f]): Replaced with new rules for tty[1-9][0-9]. utils/ 2002-09-17 Marcus Brinkmann <marcus@gnu.org> * console-ncurses.c: File removed (the ncursesw console client is now a driver in the console-client). * Makefile: Revert 2002-08-22 change: Do not include`../config.make'. (targets) [LIBNCURSES]: Removed. (SRCS) [LIBNCURSES]: Likewise. (HURDLIBS) [LIBNCURSES]: Likewise. (console-ncurses): Target removed. (console-ncurses-CPPFLAGS): Removed. (console-ncurses-LDLIBS): Likewise. console-client/ 2002-09-17 Marcus Brinkmann <marcus@gnu.org> * Makefile, bdf.c, bdf.h, bell.h, console.c, display.h, driver.c, driver.h, generic-speaker.c, input.h, pc-kbd.c, timer.c, timer.h, unicode.h, vga.c, vga-dynacolor.c, vga-dynacolor.h, vga-dynafont.c, vga-dynafont.h, vga-hw.h, vga-support.c, vga-support.h: New file.