DOC PREVIEW
USF CS 686 - VGA Text Mode

This preview shows page 1-2-21-22 out of 22 pages.

Save
View full document
Premium Document
Do you want full access? Go Premium and unlock all 22 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

VGA Text Mode An introduction to font selection and to reprogramming of the Character Generator ram alphanumeric information Most early PC programs weren t graphical Screen was similar to a typewriter s output Used only a limited set of character images letters numerals and punctuation symbols Hardware can efficiently render such glyphs VGA can emulate the MDA EGA text modes mode 1 emulates EGA 40x25 text 320x200 pixels mode 3 emulates EGA 80x25 text 640x400 pixels mode 7 emulates MDA 80x25 text 720x350 pixels Font images in ROM VGA has built in firmware ROM BIOS Both code and data are provided in ROM VGA s ROM is normally at 0x000C0000 Can be addressed by CPU in real mode VGA ROM includes character glyph tables 8x8 character set is used with mode 1 8x16 character set is used with mode 3 8x14 character set is used with mode 7 A character glyph example Here s a sample 8x8 character glyph A This glyph can be represented as an array of 8 bytes 0x00 0x38 0x6C 0xC6 0xFE 0xC6 0x00 0x00 VGA Timer Sequencer A character table is copied into VRAM Glyphs organized as an array of bitmaps Array holds 256 images 32 bytes image Table size 256x32 8K bytes 0x2000 The ascii codes serve as array indexes Example A has ascii code 0x41 65 Sequencer hardware accesses these images Dedicated area of VRAM is used plane 2 Planes 0 and 1 are used as a text frame buffer Arrangement of VRAM planes plane 3 plane 2 plane 1 plane 0 Not used masked Holds the character glyph table s Stores color attribute bytes for displayed text Stores ASCII codes for the currently display text CPU can rea write only to planes 0 and 1 using odd even addressing mode multiple fonts supported Plane 2 is the Character Generator ram Enough room for eight separate tables 8 x 8K 64K Two tables can be in use simultaneously Tables must start at prescribed offsets Table 0 0x0000 Table 1 0x4000 Table 2 0x8000 Table 3 0xC000 Table 4 0x2000 Table 5 0x6000 Table 6 0xA000 Table 7 0xE000 Text color attributes In text mode the picture elements consist of character images shown in two colors Foreground color and Background color Character colors individually programmed A byte pair in VRAM selects the bit image ascii code and color pair attribute byte All colors come from a palette of 16 But the color palette is programmable Layout for an attribute byte Background Color R G B Bit function is Programmable Default is EnableBlinking Foreground Color R G B Bit function is programmable Default is EnableIntensity VGA Sequencer Registers Five registers comprise VGA Sequencer index 0 index 1 index 2 index 3 index 4 Reset register Clocking Mode register Map Mask register Character Map Select register Memory Mode register All accessed via i o ports 0x3C4 0x3C5 using multiplexing scheme index data Access to character ram In text modes CPU can t access Plane 2 Plane 2 gets accessed by the Sequencer Sequencer performs a glyph lookup for each ascii code stored by CPU in Plane 0 Both Sequencer and Graphics Controller must be suitably reprogrammed in order for the CPU to a read or write to Plane 2 Six VGA registers are involved in that step Reset index 0 7 6 5 4 3 2 1 0 Synchronous Reset bit bit 1 1 normal sequencer operation 0 initiate a synchronous reset A synchronous reset is used in advance of reprogramming the Clocking Mode register or the Clock Select field in the VGA s Miscellaneous Output register Asynchronous Reset bit bit 0 1 normal sequencer operation 0 initiate an asynchronous reset Halts VRAM refresh cycles and clears VRAM contents Map Mask index 2 7 6 5 4 3 2 1 Plane 3 Plane 2 Plane 1 Enables or disables CPU s ability to access specific memory planes 1 write enable 0 write disable Plane 0 0 Memory Mode index 4 7 6 5 Chain 4 Addressing 1 enabled 0 disabled i e each plane holds every fourth byte Odd Even Addressing 1 disabled 0 enabled It s used for text modes 4 3 2 1 0 For EGA only 1 text 0 graphics Extended Memory 64K 1 present 0 absent GC Miscellaneous index 6 7 6 5 4 3 Memory Map Memory Map options 00 0xA0000 128K 01 0xA0000 64K 10 0xB0000 64K 11 0xB8000 32K 2 1 Odd Even enable 0 G A 1 use Odd Even Addressing 0 use Sequential Addressing 1 Disable the character generator graphics mode 0 Enable the character generator use text mode Graphics Controller registers are accessed via i o ports 0x3CE 0x3CF GC Mode index 5 7 6 256 colors 5 SHIFT Should be 0 for text mode This affects the VGA Attribute Controller s operation text color foreground color and background color Should be 1 for text 4 ODD EVEN 3 Read Mode 2 1 Write Mode 0 1 2 3 1 cpu data at odd addresses is mapped to odd numbered planes cpu data at even addresses gets mapped to even numbered planes 0 cpu addressing is sequential NOT This affects only the Graphics Controller The Sequencer needs to be programmed separately to match 0 How to modify character ram Algorithm Reset the VGA for accessing Plane 2 Then CPU reads or modifies Plane 2 Reset the VGA for accessing Planes 0 1 Acknowledgement Author Richard Wilton described this process in his classic book Programmer s Guide to PC Video Systems 2nd Edition Details for this prolog outw 0x0100 0x3C4 do a synch reset outw 0x0402 0x3C4 write Plane 2 only outw 0x0704 0x3C4 sequential access outw 0x0300 0x3C4 end the reset outw 0x0204 0x3CE read Plane 2 only outw 0x0005 0x3CE disable odd even outw 0x0006 0x3CE VRAM at 0xA0000 Details for the epilog outw 0x0100 0x3C4 do a synch reset outw 0x0302 0x3C4 write Planes 0 1 outw 0x0304 0x3C4 odd even access outw 0x0300 0x3C4 end the reset outw 0x0004 0x3CE restore to default outw 0x1005 0x3CE resume odd even outw 0x0E06 0x3CE VRAM at 0xB8000 Some Class Demos newzero cpp installs new glyph for 0 romfonts cpp finds ROM glyph tables backward cpp flips character images vm86blue cpp changes the text s color Algorithm for backward cpp for int i 0 i 8192 i int orig vram i revs 0 for int j 0 j 8 j if orig 1 j revs 1 7 j vram i revs In Class Exercises Exercise 1 Design a new image for A Exercise 2 Draw all text upside down Exercise 3 Draw yellow on green text


View Full Document

USF CS 686 - VGA Text Mode

Documents in this Course
Load more
Download VGA Text Mode
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view VGA Text Mode and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view VGA Text Mode and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?