SiS 315 An introductory exploration of features of the SVGA graphics processor used in our classroom’s workstations.

Slides:



Advertisements
Similar presentations
1/1/ / faculty of Electrical Engineering eindhoven university of technology Introduction Part 2: Data types and addressing modes dr.ir. A.C. Verschueren.
Advertisements

ITCS 3181 Logic and Computer Systems 2015 B. Wilkinson slides3.ppt Modification date: March 16, Addressing Modes The methods used in machine instructions.
The 8051 Microcontroller Chapter 5 SERIAL PORT OPERATION.
Programmable Keyboard/ Display Interface: 8279
The ATA/IDE Interface Can we write a character-mode device driver for the hard disk?
VGA Text Mode An introduction to font selection and to reprogramming of the Character Generator ram.
Khaled A. Al-Utaibi  Computers are Every Where  What is Computer Engineering?  Design Levels  Computer Engineering Fields  What.
Early PC Graphics Capabilities of the IBM Color Graphics Adapter (CGA) and Enhanced Graphics Adapter (EGA)
Video systems (continue). Practice Modify the program to get a string from a keyboard to display the input string on the middle of the screen with reverse.
CS 686: Programming SuperVGA Graphics Devices Introduction: An exercise in working with graphics file formats.
Interrupts What is an interrupt? What does an interrupt do to the “flow of control” Interrupts used to overlap computation & I/O – Examples would be console.
Outline  Examine some of the H/W supplied with a typical PC and consider the software required to control it.  Introduce Commkit, a software tool that.
SiS 315 Graphics Engine Introduction to some capabilities of graphics accelerator hardware.
The CRT Controller How to modify CRTC registers to achieve a non-standard horizontal and vertical screen resolution.
Graphics acceleration An example of line-drawing by the ATI Radeon’s 2D graphics engine.
Vertical Retrace Interval An introduction to VGA techniques for smooth graphics animation.
Graphics Bitmaps Drawing characters glyphs and multicolor patterns.
How to do ‘page-flipping’ The steps needed when revising our ‘wfmodel1.cpp’ prototype to achieve ‘smooth’ animation.
Early PC Graphics Capabilities of the IBM Color Graphics Adapter (CGA) and Enhanced Graphics Adapter (EGA)
VGA Color Registers How we can reprogram the Digital-to-Analog Converter’s 256 color-table registers.
ARM programmer’s model and assembler Embedded Systems Programming.
Vertical Retrace Interval An introduction to VGA techniques for smooth graphics animation.
Railway Foundation Electronic, Electrical and Processor Engineering.
8086 emulation Using Virtual-8086 mode to execute real-mode procedures in a protected-mode environment.
Notes for Lab 10 On implementing ‘show’ and ‘hide’ for the SiS 315 hardware cursor.
Group 7 Jhonathan Briceño Reginal Etienne Christian Kruger Felix Martinez Dane Minott Immer S Rivera Ander Sahonero.
Part II: Addressing Modes
Chapter 3 – Computer Hardware Computer Components – Hardware (cont.) Lecture 3.
The von Neumann Model – Chapter 4 COMP 2620 Dr. James Money COMP
Topic 8: Data Transfer Instructions CSE 30: Computer Organization and Systems Programming Winter 2010 Prof. Ryan Kastner Dept. of Computer Science and.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
Chapter 1 Basic Structure of Computers. Chapter Outline computer types, structure, and operation instructions and programs numbers, arithmetic operations,
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.
MCU: Interrupts and Timers Ganesh Pitchiah. What’s an MCU ?
EKT 422 Computer Architecture
Using HiColor graphics
CSC321 Making a Computer Binary number system → Boolean functions Boolean functions → Combinational circuits Combinational circuits → Sequential circuits.
Computer Organization and Assembly Language Bitwise Operators.
8051 Micro controller. Architecture of 8051 Features of 8051.
Informationsteknologi Friday, September 28, 2007Computer Architecture I - Class 21 Today’s class More assembly language programming.
Lecture 7: Intro to Computer Graphics. Remember…… DIGITAL - Digital means discrete. DIGITAL - Digital means discrete. Digital representation is comprised.
Computer Architecture 2 nd year (computer and Information Sc.)
Digression on r/w ‘/proc’ files An application of kernel module programming to Super VGA graphics device control.
12/16/  List the elements of 8255A Programmable Peripheral Interface (PPI)  Explain its various operating modes  Develop a simple program to.
ALU (Continued) Computer Architecture (Fall 2006).
Programming Fundamentals. Overview of Previous Lecture Phases of C++ Environment Program statement Vs Preprocessor directive Whitespaces Comments.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
4. Kernel and VGA ENGI 3655 Lab Sessions. Richard Khoury2 Textbook Readings  None.
Georgia Institute of Technology Speed part 1 Barb Ericson Georgia Institute of Technology May 2006.
October 1, 2003Serguei A. Mokhov, 1 SOEN228, Winter 2003 Revision 1.2 Date: October 25, 2003.
CS-321 Dr. Mark L. Hornick 1 Graphics Displays Video graphics adapter Monitor.
1 Introduction to Computers Prof. Sokol Computer and Information Science Brooklyn College.
Introduction to Computing Systems from bits & gates to C & beyond Chapter 10 The Stack Stack data structure Interrupt I/O (again!) Arithmetic using a stack.
Lecture 11 Text mode video
Direct-Access Color Graphics Chapter 11. Graphics modes C++ provides a different combination of graphics characteristics. These characteristics include.
Presentation 2: A More Detailed Look Advanced VLSI Design (ECE 1193) Kent Nixon, Tom Nason, Enes Eken, and Christopher Lukas January 17, 2013.
80C51 Block Diagram 1. 80C51 Memory Memory The data width is 8 bits Registers are 8 bits Addresses are 8 bits – i.e. addresses for only 256.
Computer Graphics Lecture 03 Graphics Systems Cont… Taqdees A. Siddiqi
DEPARTMENT OF ELECTRONICS ENGINEERING V-SEMESTER MICROPROCESSOR & MICROCONTROLLER 1 CHAPTER NO microcontroller & programming.
Programming with Java. Chapter 1 Focuses on: –components of a computer –how those components interact –how computers store and manipulate information.
Flowchart of basic interrupt mechanism
Control Unit Lecture 6.
The Stack.
Microprocessor and Assembly Language
Arithmetic using a stack
Storing Information Each memory cell stores a set number of bits (usually 8 bits, or one byte) (byte addressable)
Graphics Systems Lecture-2
ECE 5571 Digital System Design 1
ENSC351 Final Project Demo
Presentation transcript:

SiS 315 An introductory exploration of features of the SVGA graphics processor used in our classroom’s workstations

Some SVGA examples Our GPU is manufactured by SiS Official programming info is ‘unavailable’ Can find some “unofficial” info on internet We explore some useful SiS 315 features But remember: other GPU chips are NOT hardware-compatible (so our software is unlikely to work on other SVGA systems) We sacrifice the advantage of “portability”

SiS Extended Registers The typical Super VGA chip implements a number of “extra” hardware registers Most often these appear as additions to the standard set of VGA registers established by IBM’s engineers: –Graphics Controller (9 registers) –Timer-Sequencer (5 registers) –CRT Controller (25 registers) –Attribute Controller (21 registers) Our SiS graphics processor implements “extra” Sequencer registers (ports 0x3C4/0x3C5) and also “extra” CRTC registers (0x3D4/0x3D5)

SiS Sequencer registers Five standard VGA Sequencer-registers: 0: the Reset register 1: the Clocking Mode register 2: the Map Mask register 3: the Character Map Select register 4: the Memory Mode register SiS implements registers 5, 6, 7, …, etc.:

In-Class Exercise Investigate the functionality of register 5 Two-step process to read this register: outb( 5, 0x3C4 ); int val = inb( 0x3C5 ); Two-step process to write this register: outb( 5, 0x3C4 ); outb( val, 0x3C5 ); Alternatively: outw( (val<<8)|5, 0x3C4 );

Write a demo program Remember to call function: iopl( 3 ); Then create a program-loop For every possible byte-value: 1)write that byte-value to Seq-register 5 2)read the byte-value in Seq-register 5 3)print out the value that was read back What do you learn from this exercise?

Some further experiments Repeat the previous experiment, but add a new step within your program-loop: 4) read (and print) Seq-register 6 What do you learn from THIS exercise? OK, try it again, but with Seq-register 7 in place of Seq-register 6 (Caution: Don’t try to ‘write’ new values into registers 6 or 7)

Detecting screen-height The screen-height parameter is 11-bits Lowest 8-bits are in CRTC register 0x12 9 th and 10 th bits are in CRTC register 0x07 This much is standard on VGA hardware 11 th bit is in SiS Sequencer register 0x0A We need to read all three registers, then extract and assemble the various bits

The screen-height bits ? seq-0x0A crtc-0x12 (Vert Displ Enable End) crtc-0x07 (Overflow Register) screen_height - 1

Detecting screen-width The screen-width parameter is 10 bits It measures the width in 8-pixel units Lowest 8-bits are in CRTC register 0x01 9 th and 10 th bits in Ext’d Seq register 0x0B The parameter-value is actually one less It gives the id-number of the final unit So we increment it, then multiply by 8

The screen-width bits crtc-0x01 (Horizontal Display End) screen_width – 1 (in 8-pixel units) seq-0x0B

Detecting CRT start-address Very important parameter for animation! This parameter is stored as 26 bits It measures start-address in 4-byte units Lowest byte stored in crtc register 0x0D Next lowest byte is in crtc register 0x0C Sequencer register 0x0D holds next byte Sequencer register 0x37 has 2 more bits

The crt start-address bits crtc-0x0D (Start Addr Lo)crtc-0x0C (Start Addr Hi) seq-0x37 seq-0x0D crt start-address (in 4-byte units)

Detecting CRT Line-Compare CRTC-address resets when counter == LC This is useful for certain “special effects” Screen is split into two separate “windows” Lower window shows VRAM address 0 Upper window is from crt start-address Lowest 8-bits from CRT register 0x18 9 th bit from CRT register 0x07 10 th bit from CRT register 0x09 More bits from Sequencer register 0x0F

The Line-Compare bits seq-0x0F crtc-0x09 (Max Scan Line) crtc-0x18 (Line Compare register) crtc-0x07 (Overflow register) Line-Compare

In-Class Experiment Reprogram the ‘Line Compare’ parameter with a value that is equal to one-half of the current screen-height What visual effect do you observe? Do you see a similar effect under Linux in both ‘text mode’ and in graphics modes?