Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (plan9)
Apropos / Subsearch:
optional field

VGA(3)                     Library Functions Manual                     VGA(3)

       vga - VGA controller device

       bind #v /dev


       The  VGA  device allows configuration of a graphics controller on a PC.
       Vgactl allows  control  over  higher-level  settings  such  as  display
       height,  width,  depth,  controller  and hardware-cursor type.  Vgaiob,
       vgaiow and vgaiol allow  control  over  individual  8-bit,  16-bit  and
       32-bit x86 I/O-ports respectively, such as those used to implement con-
       figuration and setup registers on a VGA controller card.   These  func-
       tions are normally carried out by vga(8).

       Writes  to  vgactl are of the form `attribute value'.  Valid attributes

       size   value is 'XxYxZ' , where X, Y and Z are numbers  that  tell  the
              kernel the width and height of the screen in pixels and the num-
              ber of bits per pixel.

       type   tells the kernel which type of controller is being used,  mainly
              to  enable the correct code for display-memory bank switching at
              resolutions greater than 640x480x1.  The  names  vga,  clgd542x,
              et4000, mach32, and s3 are supported for value.

              Note  that this list does not indicate the full set of VGA chips
              supported.  For  example,  s3  includes  the  86C801/5,  86C928,
              Vision864,  and Vision964.  It is the job of vga(8) to recognize
              which particular chip is being used and to initialize it  appro-

       hwgc   tells  the  kernel to use a particular type of hardware graphics
              cursor.  Bt485hwgc, et4000hwgc, s3hwgc and tvp3020hwgc, are cur-
              rently  recognized  values.  A value of off reverts to using the
              software cursor.

       Reading vgactl returns the current settings, one per line.

       The following reverts to using the software graphics cursor

            echo -n 'hwgc off' >/dev/vgactl

       Sample code to read an x86 8-bit I/O port

            inportb(long port)
                 uchar data;

                 if(iobfd == -1)
                      iobfd = open("#v/vgaiob", ORDWR);

                 seek(iobfd, port, 0);
                 if(read(iobfd, &data, sizeof(data)) != sizeof(data))
                      error("inportb(0x%4.4x): %r0, port);
                 return data;



       There should be some restriction on the range of valid ports.

       There should be  support  for  the  hardware  graphics  cursor  on  the
       clgd54[23]x VGA controller chips.

       The  hardware  graphics  cursor  on the et4000 does not work in 2x8-bit