Early PC Graphics Capabilities of the IBM Color Graphics Adapter (CGA) and Enhanced Graphics Adapter (EGA)

Slides:



Advertisements
Similar presentations
Video Cards CS431 Class Presentation Ashish Bhat ( ) Nilesh Meshram ( )
Advertisements

Topics covered: CPU Architecture CSE 243: Introduction to Computer Architecture and Hardware/Software Interface.
Status – Week 257 Victor Moya. Summary GPU interface. GPU interface. GPU state. GPU state. API/Driver State. API/Driver State. Driver/CPU Proxy. Driver/CPU.
VGA Text Mode An introduction to font selection and to reprogramming of the Character Generator ram.
TK2633 Introduction to Parallel Data Interfacing DR MASRI AYOB.
Early PC Graphics Capabilities of the IBM Color Graphics Adapter (CGA) and Enhanced Graphics Adapter (EGA)
Assembly Language for Intel-Based Computers Chapter 15: BIOS-Level Programming (c) Pearson Education, All rights reserved. You may modify and.
Programming Super-VGA Graphics Devices Introduction to VESA graphics modes and to organization of the linear frame-buffer memory.
The CRT Controller How to modify CRTC registers to achieve a non-standard horizontal and vertical screen resolution.
EET Advanced Digital Display Adapters. A vital part to the system provides the visual part of the Human/Computer interface In boot process, goes.
Display Technology  Images stolen from various locations on the web...
Direct I/O Programming An introduction to the Pentium’s mechanism for programming peripheral hardware components.
Hardware Evaluation and Selection James D. Lehman Educational Technology Purdue University.
Wire-frame Modeling An application of Bresenham’s line-drawing algorithm.
Graphics Bitmaps Drawing characters glyphs and multicolor patterns.
VGA Color Registers How we can reprogram the Digital-to-Analog Converter’s 256 color-table registers.
Vertical Retrace Interval An introduction to VGA techniques for smooth graphics animation.
SiS 315 An introductory exploration of features of the SVGA graphics processor used in our classroom’s workstations.
Lecture 121 Lecture 12: VGA Video ECE 412: Microcomputer Laboratory.
EET Advanced Digital Display Adapters. A vital part to the system provides the visual part of the Human/Computer interface In boot process, goes.
Copyright © 2007 Heathkit Company, Inc. All Rights Reserved PC Fundamentals Presentation 40 – Displays and Resolution.
Presentation by David Fong
Welcome to my presentation
Monitor. The Basics Often referred to as a monitor when packaged in a separate case, the display is the most-used output device on a computer. The display.
Introduction to VGA Wei Miao Yuxuan Zhou 1. 2 VGA VGA = Video Graphics Array Introduced by IBM in 1987, still using today All points addressable Transmitting.
Power Supplies. Basics Power Supply Unit aka PSU Converts 110/220VAC to 3.3, ±5, ±12 VDC There is a 5VDC standby in ATX PSU Rating is in Watts. More is.
Video Monitor Uses raster scanning to display images
IE433 CAD/CAM Computer Aided Design and Computer Aided Manufacturing Part-2 CAD Systems Industrial Engineering Department King Saud University.
Khaled A. Al-Utaibi  Intel Peripheral Controller Chips  Basic Description of the 8255  Pin Configuration of the 8255  Block Diagram.
Basics of a Computer Graphics System Introduction to Computer Graphics CSE 470/598 Arizona State University Dianne Hansford.
Peripherals The term peripherals refers to all hardware devices that are attached to your computer and are controlled by your computer system Peripherals.
ORG ; FOUR INT 21H and INT 10H Programming and Macros Dec Hex Bin
PIT: Programmable Interval Timer
Dr. Rabie A. Ramadan Al-Azhar University Lecture 6
ECE291 Computer Engineering II Lecture 9 Josh Potts University of Illinois at Urbana- Champaign.
Video Monitor Uses raster scanning to display images –Beam of electrons illuminates phosphorus dots on the screen called pixels. Starting at the top of.
By, Prof. Tambe S. S. S.N.D. College of Engineering and Research Center Department of Electrical Engineering.
Text-mode Video Dr. Dimitrios S. Nikolopoulos CSL/UIUC
1-1 NET+OS Software Group Flash API Multiple flash memory bank support New Flash API introduction Detailed Flash API Function presentation Supporting.
Lab 8 Bit-Mapped Graphics Moving from text-based graphics to bit- mapped graphics. Easy to draw graphic points and lines using INT 10h, Function 0Ch (write.
Video Monitor CRT: Cathode Ray Tube
ECE291 Lecture 12 Mode 13h Graphics. ECE 291 Lecture 12Page 2 of 27 Lecture outline Color theory Video Hardware Mode 13h Graphics File Formats.
ECE291 Computer Engineering II Lecture 15 Josh Potts University of Illinois at Urbana- Champaign.
1 How will execution time grow with SIZE? int array[SIZE]; int sum = 0; for (int i = 0 ; i < ; ++ i) { for (int j = 0 ; j < SIZE ; ++ j) { sum +=
Programmable Peripheral Interface Parallel port Interface 8255
ECE 103 Engineering Programming Chapter 53 Generic Algorithms Herbert G. Mayer, PSU CS Status 6/4/2014 Initial content copied verbatim from ECE 103 material.
BMOW is a Custom CPU Design Like your PC’s Pentium, but much simpler Closest cousin is the MOS 6502 used in the Apple II, C-64, and Atari VCS =
Video Card CES Industries, Inc. Lesson 10.  Translates computer information of binary digital data into visual information that the monitor can understand.
Programmable Interrupt Controller (PIC)
PROGRAMMABLE PERIPHERAL INTERFACE -8255
4. Kernel and VGA ENGI 3655 Lab Sessions. Richard Khoury2 Textbook Readings  None.
2D Output Primitives Points Lines Circles Ellipses Other curves Filling areas Text Patterns Polymarkers.
CS-321 Dr. Mark L. Hornick 1 Graphics Displays Video graphics adapter Monitor.
Lecture 11 Text mode video
Direct-Access Color Graphics Chapter 11. Graphics modes C++ provides a different combination of graphics characteristics. These characteristics include.
Computer Graphics Lecture 03 Graphics Systems Cont… Taqdees A. Siddiqi
Problems in IO CS 1550 Recitation December 2 nd /4 th, 2002 The questions in this slide are from Andrew S. Tanenbaum's textbook page 376, 377.
Flowchart of basic interrupt mechanism
Computer Graphics Lecture 13 Graphics Systems Taqdees A
VIDEO GRAPHICS ARRAY CARD (VGA CARD)
Computer Graphics: An Introduction
PROGRAMMABLE PERIPHERAL INTERFACE -8255
8085 Microprocessor Architecture
Microprocessor and Assembly Language
PROGRAMMABLE PERIPHERAL INTERFACE -8255
Microprocessor & Assembly Language
8085 Microprocessor Architecture
Graphics Hardware: Specialty Memories, Simple Framebuffers
Graphics Systems Lecture-2
8085 Microprocessor Architecture
Presentation transcript:

Early PC Graphics Capabilities of the IBM Color Graphics Adapter (CGA) and Enhanced Graphics Adapter (EGA)

IBM product introductions MDA: introduced with IBM-PC in 1981 CGA: introduced as an option in 1982 EGA: introduced in 1984 (to replace CGA) VGA: introduced in 1987 (as PS/2 option)

CGA Engineered to coexist with IBM’s Monochrome Display Adapter (MDA), used for text display Designed to operate with Intel’s 8086/8088 CPU –MDA: max 32K VRAM: 0xB0000-0xB7FFF –CGA: max 32K VRAM: 0xB8000-0xBFFFF Designed to operate with Motorola’s 6845 CRTC –MDA: uses cpu’s i/o ports 0x3B4-0x3B5 –CGA: uses cpu’s i/o ports 0x3D4-0x3D5

CGA graphics capabilities Two graphics modes (2-color or 4color) Both use “packed-pixel” memory-mode –4 pixels-per-byte, or 8 pixels-per-byte Four 4-color palette choices: –black+cyan+red+white –black+cyan+violet+white –black+green+red+yellow –black+dark-gray+light-gray+white

CGA screen resolutions color: 320x200 (4 packed pixels-per-byte) memory: 320x200/4 = bytes mono: 640x200 (8 packed pixels-per-byte) memory: 640x200/8 = bytes

“Interlaced” VRAM addressing Even-numbered scanlines in upper bank: scanline 0: starts at offset 0 scanline 2: starts at offset 80 scanline 4: starts at offset 160 Odd-numbered scanlines in lower bank: scanline 1: starts at offset 0x2000 scanline 3: starts at offset 0x Scanline 5: starts at offset 0x

Pixel-drawing Algorithm (mono) void draw_pixel_1( int x, int y, int color ) { intlocn = 0x2000*(y%2) + 80*(y/2) + (x/8); intmask = (1 > (x%8); unsigned chartemp = vram[ locn ]; color &= 1; color > (x%8); temp &= ~mask; temp |= color; vram[ locn ] = temp; }

void draw_pixel_2( int x, int y, int color ) { intlocn = 0x2000*(y%2) + 80*(y/2) + (2*x/8); intmask = (3 > (2*x%8); unsigned chartemp = vram[ locn ]; color &= 3; color > (2*x%8); temp &= ~mask; temp |= color; vram[ locn ] = temp; } Pixel-drawing Algorithm (color)

CGA pixels aren’t square Physical screen has 4:3 aspect-ratio CGA visual screen-resolutions: –color screen is 320x200 (ratio is 8:5) –b&w screen is 640x200 (ratio is 16:5) Physical square would be: –4-color mode: 240 wide by 200 high –2-color mode: 480 wide by 200 high So logical pixels are “stretched” vertically

Enhanced Graphics Adapter (EGA) Backward compatibility with the CGA Plus four additional display modes Higher graphics resolutions Greater color depths (16-colors) Faster screen refresh rates Needed to support more video memory Simplify video memory-byte addressing Needed additional “controller” hardware

EGA display modes New display modes 13, 14, 15, 16 13: 320x200 with 16-colors 14: 640x200 with 16-colors 15: 640x350 2-colors (monochrome) 16: 640x350 4-colors w/64K vram or 16-colors w/128K vram But uses “planar” memory organization, so relies on “Graphics Controller” hardware

Four memory “planes” Each CPU byte-address controls 8 pixels CPU addresses bytes in 4 parallel planes

Graphics Controller registers 0: Set/Reset register 1: Enable Set/Reset register 2: Color Compare register 3: Data-Rotate/Function-Select 4: Read Map Select register 5: Mode register 6: Miscellaneous register 7: Color Don’t Care register 8: Bit Mask register

Addressing device-registers Nine Graphics Controller registers (8-bits) Multiplexed i/o addressing scheme: - register index is written to i/o port 0x3CE - register value is accessed via port 0x3CF Two read modes, and four write modes

Reading a byte from VRAM Select which memory-plane Perform CPU read-byte instruction movb vram(%esi), %al Bytes from all four planes are copied into Graphics Controller’s Latches (32-bits) But only selected plane’s byte goes to AL

Read operation illustrated Controller’s Latch register plane 0 plane 1plane 2plane 3 2 Controller’s Read Map Select register CPU register AL

Writing a byte to VRAM Four distinct write modes (must choose) We illustrate Write Mode 0 (“Direct Write”) Four graphics controller registers involved: index 0: Set/Reset register index 1: Enable Set/Reset register index 3: Data-Rotate/Function-Select index 8: Bit Mask register

Steps for Write Mode 0 The new “fill color” goes into Set/Reset Set Enable Set/Reset to enable all planes Zero goes in Data-Rotate/Function-Select Setup Bit Mask for the pixel(s) to modify After these setup steps: –CPU reads from VRAM (to load the latches) –CPU writes to VRAM (to modify the pixel(s))

Set/Reset (index 0) The new fill-color Value (range is 0..15) outb( 0, 0x3CE ); // select Set/Reset register outb( color, 0x3CF ); // output the color-value Alternative programming (in one-step) outw( (color<<8)|0, 0x3CE );

Enable Set/Reset 0 = plane is write-protected 1 = plane can be modified outb( 1, 0x3CE ); // select Enable Set/Reset outb( 0x0F, 0x3CF ); // output selection bits Alternative programming (in one-step) outw( 0x0F01, 0x3CE );

Data-Rotate (index 3) Data-Rotation Count 0 to 7 bits (to right) Function Select outb( 3, 0x3CE ); // select Data-Rotate register outb( 0x00, 0x3CF ); // output the register value Alternative programming (in one-step) outw( 0x0003, 0x3CE ); Functions: 00=copy, 01=AND, 10=OR, 11=XOR (with Latch contents)

Bit Mask (index 8) The corresponding pixel will be modified (=1) or unmodified (=0) outb( 8, 0x3CE ); // select the Bit Mask register outb( mask, 0x3CF ); // output the register value Alternative programming (in one-step) outw( (mask<<8)|3, 0x3CE );

Write Mode 0 illustrated VRAM: Latch Register Bit Mask Fill-Color Set/Reset VRAM:

Video Graphics Array (VGA) Offers both CGA and EGA emulation And supports three new display modes: mode 17: improved monochrome graphics mode 18: 16-colors using “square” pixels mode 19: supports 256 colors (8 bits/pixel) Provides faster display-refresh rates Supports analog multisync monitors

Class Demos ‘cgademo.cpp’ (4-color and b&w modes) ‘egademo.cpp’ (shows 16-color palette) ‘vgademo.cpp’ (square-pixels/256 colors)