X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=specs%2Ffreevga%2Fvga%2Fgraphreg.htm;fp=specs%2Ffreevga%2Fvga%2Fgraphreg.htm;h=e557863ca43b9a0edf79ad6c345dec7832853fb3;hb=8af06d1fd50343e17229618ef4d2693193b2b3d9;hp=0000000000000000000000000000000000000000;hpb=d0d14ca50fbac167253e1e1d8d806bfd749a5e8a;p=pintos-anon
diff --git a/specs/freevga/vga/graphreg.htm b/specs/freevga/vga/graphreg.htm
new file mode 100644
index 0000000..e557863
--- /dev/null
+++ b/specs/freevga/vga/graphreg.htm
@@ -0,0 +1,585 @@
+
+
+
+
+
+
+ VGA/SVGA Video Programming--Graphics Registers
+
+
+
+Home Back
+
Hardware Level VGA and SVGA Video Programming Information
+Page
+
+Graphics Registers
+
+
+
+ The Graphics Registers are
+accessed via a pair of registers, the Graphics Address Register and the
+Graphics Data Register. See the Accessing the VGA
+Registers section for more details. The Address Register is located
+at port 3CEh and the Data Register is located at port 3CFh.
+
+-
+Index 00h -- Set/Reset Register
+
+-
+Index 01h -- Enable Set/Reset Register
+
+-
+Index 02h -- Color Compare Register
+
+-
+Index 03h -- Data Rotate Register
+
+-
+Index 04h -- Read Map Select Register
+
+-
+Index 05h -- Graphics Mode Register
+
+-
+Index 06h -- Miscellaneous Graphics Register
+
+-
+Index 07h -- Color Don't Care Register
+
+-
+Index 08h -- Bit Mask Register
+
+
+
+Set/Reset Register (Index 00h)
+
+
+7 |
+
+6 |
+
+5 |
+
+4 |
+
+3 |
+
+2 |
+
+1 |
+
+0 |
+
+
+
+ |
+
+ |
+
+ |
+
+ |
+
+Set/Reset |
+
+
+
+
+-
+Set/Reset
+
+
Bits 3-0 of this field represent planes 3-0 of the VGA display memory.
+This field is used by Write Mode 0 and Write Mode 3 (See the Write
+Mode field.) In Write Mode 0, if the corresponding bit in the Enable
+Set/Reset field is set, and in Write Mode 3 regardless of the Enable
+Set/Reset field, the value of the bit in this field is expanded to
+8 bits and substituted for the data of the respective plane and passed
+to the next stage in the graphics pipeline, which for Write Mode 0 is the
+Logical Operation unit and for Write Mode 3 is the Bit
+Mask unit.
+
+
+Enable Set/Reset Register (Index
+01h)
+
+
+7 |
+
+6 |
+
+5 |
+
+4 |
+
+3 |
+
+2 |
+
+1 |
+
+0 |
+
+
+
+ |
+
+ |
+
+ |
+
+ |
+
+Enable Set/Reset |
+
+
+
+
+-
+Enable Set/Reset
+
+
Bits 3-0 of this field represent planes 3-0 of the VGA display memory.
+This field is used in Write Mode 0 (See the Write Mode
+field) to select whether data for each plane is derived from host data
+or from expansion of the respective bit in the Set/Reset
+field.
+
+
+Color Compare Register (Index 02h)
+
+
+7 |
+
+6 |
+
+5 |
+
+4 |
+
+3 |
+
+2 |
+
+1 |
+
+0 |
+
+
+
+ |
+
+ |
+
+ |
+
+ |
+
+Color Compare |
+
+
+
+
+-
+Color Compare
+
+
Bits 3-0 of this field represent planes 3-0 of the VGA display memory.
+This field holds a reference color that is used by Read Mode 1 (See the
+Read Mode field.) Read Mode 1 returns the result of the
+comparison between this value and a location of display memory, modified
+by the Color Don't Care field.
+
+
+Data Rotate Register (Index 03h)
+
+
+7 |
+
+6 |
+
+5 |
+
+4 |
+
+3 |
+
+2 |
+
+1 |
+
+0 |
+
+
+
+ |
+
+ |
+
+ |
+
+Logical Operation |
+
+Rotate Count |
+
+
+
+
+-
+Logical Operation
+
+
This field is used in Write Mode 0 and Write Mode 2 (See the Write
+Mode field.) The logical operation stage of the graphics pipeline is
+32 bits wide (1 byte * 4 planes) and performs the operations on its inputs
+from the previous stage in the graphics pipeline and the latch register.
+The latch register remains unchanged and the result is passed on to the
+next stage in the pipeline. The results based on the value of this field
+are:
+
+-
+00b - Result is input from previous stage unmodified.
+
+-
+01b - Result is input from previous stage logical ANDed with latch register.
+
+-
+10b - Result is input from previous stage logical ORed with latch register.
+
+-
+11b - Result is input from previous stage logical XORed with latch register.
+
+
+-
+Rotate Count
+
+
This field is used in Write Mode 0 and Write Mode 3 (See the Write
+Mode field.) In these modes, the host data is rotated to the right
+by the value specified by the value of this field. A rotation operation
+consists of moving bits 7-1 right one position to bits 6-0, simultaneously
+wrapping bit 0 around to bit 7, and is repeated the number of times specified
+by this field.
+
+
+Read Map Select Register (Index
+04h)
+
+
+7 |
+
+6 |
+
+5 |
+
+4 |
+
+3 |
+
+2 |
+
+1 |
+
+0 |
+
+
+
+ |
+
+ |
+
+ |
+
+ |
+
+ |
+
+ |
+
+Read Map Select |
+
+
+
+
+-
+Read Map Select
+
+
This value of this field is used in Read Mode 0 (see the Read
+Mode field) to specify the display memory plane to transfer data from.
+Due to the arrangement of video memory, this field must be modified four
+times to read one or more pixels values in the planar video modes.
+
+
+Graphics Mode Register (Index 05h)
+
+
+7 |
+
+6 |
+
+5 |
+
+4 |
+
+3 |
+
+2 |
+
+1 |
+
+0 |
+
+
+
+ |
+
+Shift256 |
+
+Shift Reg. |
+
+Host O/E |
+
+Read Mode |
+
+ |
+
+Write Mode |
+
+
+
+
+-
+Shift256 -- 256-Color Shift Mode
+"When set to 0, this bit allows bit 5 to control the loading of
+the shift registers. When set to 1, this bit causes the shift registers
+to be loaded in a manner that supports the 256-color mode."
+
+
Shift Reg. -- Shift Register Interleave Mode
+"When set to 1, this bit directs the shift registers in the graphics
+controller to format the serial data stream with even-numbered bits from
+both maps on even-numbered maps, and odd-numbered bits from both maps on
+the odd-numbered maps. This bit is used for modes 4 and 5."
+
Host O/E -- Host Odd/Even Memory Read Addressing Enable
+"When set to 1, this bit selects the odd/even addressing mode used
+by the IBM Color/Graphics Monitor Adapter. Normally, the value here follows
+the value of Memory Mode register bit 2 in the sequencer."
+-
+Read Mode
+
+
This field selects between two read modes, simply known as Read Mode
+0, and Read Mode 1, based upon the value of this field:
+
+-
+0b -- Read Mode 0: In this mode, a byte from one of the four planes is
+returned on read operations. The plane from which the data is returned
+is determined by the value of the Read Map Select field.
+
+
+-
+1b -- Read Mode 1: In this mode, a comparison is made between display memory
+and a reference color defined by the Color Compare field.
+Bit planes not set in the Color Don't Care field then
+the corresponding color plane is not considered in the comparison. Each
+bit in the returned result represents one comparison between the reference
+color, with the bit being set if the comparison is true.
+
+-
+Write Mode
+
+
This field selects between four write modes, simply known as Write
+Modes 0-3, based upon the value of this field:
+
+-
+00b -- Write Mode 0: In this mode, the host data is first rotated as per
+the Rotate Count field, then the Enable
+Set/Reset mechanism selects data from this or the Set/Reset
+field. Then the selected Logical Operation is performed
+on the resulting data and the data in the latch register. Then the Bit
+Mask field is used to select which bits come from the resulting data
+and which come from the latch register. Finally, only the bit planes enabled
+by the Memory Plane Write Enable field are
+written to memory.
+
+-
+01b -- Write Mode 1: In this mode, data is transferred directly from the
+32 bit latch register to display memory, affected only by the Memory
+Plane Write Enable field. The host data is not used in this mode.
+
+-
+10b -- Write Mode 2: In this mode, the bits 3-0 of the host data are replicated
+across all 8 bits of their respective planes. Then the selected Logical
+Operation is performed on the resulting data and the data in the latch
+register. Then the Bit Mask field is used to select which
+bits come from the resulting data and which come from the latch register.
+Finally, only the bit planes enabled by the Memory
+Plane Write Enable field are written to memory.
+
+-
+11b -- Write Mode 3: In this mode, the data in the Set/Reset
+field is used as if the Enable Set/Reset field were set
+to 1111b. Then the host data is first rotated as per the Rotate
+Count field, then logical ANDed with the value of the Bit
+Mask field. The resulting value is used on the data obtained from the
+Set/Reset field in the same way that the Bit Mask field
+would ordinarily be used. to select which bits come from the expansion
+of the Set/Reset field and which come from the latch
+register. Finally, only the bit planes enabled by the Memory
+Plane Write Enable field are written to memory.
+
+
+
+
+Miscellaneous Graphics Register
+(Index 06h)
+
+
+7 |
+
+6 |
+
+5 |
+
+4 |
+
+3 |
+
+2 |
+
+1 |
+
+0 |
+
+
+
+ |
+
+ |
+
+ |
+
+ |
+
+Memory Map Select |
+
+Chain O/E |
+
+Alpha Dis. |
+
+
+
+
+-
+Memory Map Select
+This field specifies the range of host memory addresses that is decoded
+by the VGA hardware and mapped into display memory accesses. The
+values of this field and their corresponding host memory ranges are:
+
+
+-
+00b -- A0000h-BFFFFh (128K region)
+
+-
+01b -- A0000h-AFFFFh (64K region)
+
+-
+10b -- B0000h-B7FFFh (32K region)
+
+-
+11b -- B8000h-BFFFFh (32K region)
+
+Chain O/E -- Chain Odd/Even Enable
+"When set to 1, this bit directs the system address bit, A0, to
+be replaced by a higher-order bit. The odd map is then selected when A0
+is 1, and the even map when A0 is 0."
+
Alpha Dis. -- Alphanumeric Mode Disable
+"This bit controls alphanumeric mode addressing. When set to 1,
+this bit selects graphics modes, which also disables the character generator
+latches."
+
+
+Color Don't Care Register (Index
+07h)
+
+
+7 |
+
+6 |
+
+5 |
+
+4 |
+
+3 |
+
+2 |
+
+1 |
+
+0 |
+
+
+
+ |
+
+ |
+
+ |
+
+ |
+
+Color Don't Care |
+
+
+
+
+-
+Color Don't Care
+
+
Bits 3-0 of this field represent planes 3-0 of the VGA display memory.
+This field selects the planes that are used in the comparisons made by
+Read Mode 1 (See the Read Mode field.) Read Mode 1 returns
+the result of the comparison between the value of the Color
+Compare field and a location of display memory. If a bit in this field
+is set, then the corresponding display plane is considered in the comparison.
+If it is not set, then that plane is ignored for the results of the comparison.
+
+
+Bit Mask Register (Index 08h)
+
+
+7 |
+
+6 |
+
+5 |
+
+4 |
+
+3 |
+
+2 |
+
+1 |
+
+0 |
+
+
+
+Bit Mask |
+
+
+
+
+-
+Bit Mask
+
+
This field is used in Write Modes 0, 2, and 3 (See the Write
+Mode field.) It it is applied to one byte of data in all four display
+planes. If a bit is set, then the value of corresponding bit from the previous
+stage in the graphics pipeline is selected; otherwise the value of the
+corresponding bit in the latch register is used instead. In Write Mode
+3, the incoming data byte, after being rotated is logical ANDed with this
+byte and the resulting value is used in the same way this field would normally
+be used by itself.
+Notice: All trademarks used or referred to on this page are the property
+of their respective owners.
+
All pages are Copyright © 1997, 1998, J. D. Neal, except where
+noted. Permission for utilization and distribution is subject to the terms
+of the FreeVGA Project Copyright License.
+
+