DOC PREVIEW
USF CS 686 - Capabilities of the IBM Color Graphics

This preview shows page 1-2-14-15-29-30 out of 30 pages.

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

Unformatted text preview:

Early PC GraphicsIBM product introductionsCGAThe IBM design imperativesThe imperatives (continued)“Interlaced” VRAM addressingCGA graphics capabilitiesCGA screen resolutionsPixel-drawing Algorithm (mono)Pixel-drawing Algorithm (color)CGA pixels aren’t squareEnhanced Graphics Adapter (EGA)EGA display modesFour memory “planes”Graphics Controller registersAddressing device-registersReading a byte from VRAMRead operation illustratedWriting a byte to VRAMSteps for Write Mode 0Set/Reset (index 0)Enable Set/ResetSlide 23Bit Mask (index 8)Write Mode 0 illustratedThe EGA’s 16-color paletteVideo Graphics Array (VGA)Class DemosIn-class exercise #1In-class exercise #2Early PC GraphicsCapabilities 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-0x3D5The IBM design imperatives1-MB1) CGA shall work with 8086 CPU8086 memory-addresses are 20-bits,so memory is restricted to 1 megabyte employs ‘segmented’ architecture that use 16-bit register-offsets 0xB0000MDA2) CGA shall coexist with the MDAThe VRAM for IBM-PC’s Monochrome Display Adapter resides in a ‘reserved’ address-range starting from 0xB0000 Consequently: CGA’s VRAM starts at 0xB8000 and fits in a 32KB regionThe imperatives (continued)3) CGA shall use 6845 CRTC Motorola 6845 Cathode Ray Tube controller implemented only 7-bits for addressing display scan lines so could not address 200 rows in just one screen-refresh cycle Consequently: CGA’s VRAM shall be accessed in alternating ‘banks’ upper bank lower bank0x00000x2000Data for even-numbered scan linesData for odd-numbered scan linesCGA VRAM“Interlaced” VRAM addressing•Even-numbered scanlines in lower bank:•scanline 0: starts at offset 0•scanline 2: starts at offset 80•scanline 4: starts at offset 160•Odd-numbered scanlines in upper bank:•scanline 1: starts at offset 0x2000•scanline 3: starts at offset 0x2000 + 80 •Scanline 5: starts at offset 0x2000 + 160CGA graphics capabilities•Two graphics modes (2-color or 4-color)•Both use “packed-pixel” memory-model–8 pixels-per-byte, or 4 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+whiteCGA screen resolutions•color: 320x200 (4 packed pixels-per-byte) memory: 320x200/4 = 16000 bytes•mono: 640x200 (8 packed pixels-per-byte)memory: 640x200/8 = 16000 bytes 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0Pixel-drawing Algorithm (mono)void draw_pixel_1( int x, int y, int color ){int locn = 0x2000*(y%2) + 80*(y/2) + (x/8);int mask = (1<<7) >> (x%8);unsigned char temp = vram[ locn ];color &= 1; color <<= 7; color >> (x%8);temp &= ~mask; temp |= color;vram[ locn ] = temp;}void draw_pixel_2( int x, int y, int color ){int locn = 0x2000*(y%2) + 80*(y/2) + (2*x/8);int mask = (3<<6) >> (2*x%8);unsigned char temp = vram[ locn ];color &= 3; color <<= 6; 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” verticallyEnhanced 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” hardwareEGA 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” hardwareFour memory “planes”•Each CPU byte-address controls 8 pixels•CPU addresses bytes in 4 parallel planes 7 6 5 4 3 2 1 0Graphics 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 registerAddressing device-registers•Nine Graphics Controller registers (8-bits)•Two ‘read’ modes, and four ‘write’ modes•Multiplexed i/o addressing scheme:- register index is written to i/o port 0x3CE- register value is accessed via port 0x3CF•CPU allows a pair of bytes to be written to adjacent port-addresses in one instructionReading a byte from VRAM•Select which memory-plane •Perform CPU read-byte instructionmovb vram(%esi), %al •Bytes from all four planes are copied to Graphics Controller’s Latches (32-bits)•But only selected plane’s byte goes to ALRead operation illustratedController’s Latch registerplane 0plane 1plane 2plane 32Controller’s Read Map Select registerCPU register ALWriting 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 registerindex 1: Enable Set/Reset registerindex 3: Data-Rotate/Function-Select index 8: Bit Mask registerSteps 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) 7 6 5


View Full Document

USF CS 686 - Capabilities of the IBM Color Graphics

Documents in this Course
Load more
Download Capabilities of the IBM Color Graphics
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 Capabilities of the IBM Color Graphics 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 Capabilities of the IBM Color Graphics 2 2 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?