Browse Prior Art Database

Programmable Hot Spot for Sprite Bitmap Display

IP.com Disclosure Number: IPCOM000106246D
Original Publication Date: 1993-Oct-01
Included in the Prior Art Database: 2005-Mar-20
Document File: 4 page(s) / 146K

Publishing Venue

IBM

Related People

Arroyo, RX: AUTHOR [+3]

Abstract

This invention provides function to allow the hot spot in a hardware sprite to be programmable to any pixel in its 64x64 bitmap.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 47% of the total text.

Programmable Hot Spot for Sprite Bitmap Display

      This invention provides function to allow the hot spot in a
hardware sprite to be programmable to any pixel in its 64x64 bitmap.

      Most hardware sprites allow different pixels in the 64x64
sprite image to be the origin.  That is, the sprite screen position
register can reference different pixels for the sprite location on
the screen.  This can be a choice of having the origin at a
corner(0,0, 63,63) or the center (31,31) pixel of the 64x64 bitmap.
However, the 'pointing' pixel in the icon can be anywhere in the
image and an off-set adjustment must be made to point to the correct
screen pixel.

      To facilitate sprite display and movement, any pixel in the
64x64 sprite can be programmed as the 'origin'.  This pixel is
referred to as the sprite's 'hot spot'.  Software does not need to
make any offset adjustments, only identify the 'hot spot', or the
'pointing' pixel, via the COFFST register to the hardware.  The
sprite's screen position register, CURPOS, will always align with the

'pointing' pixel, regardless of the icon (e.g., pointing finger,
cross-hairs, arrow-head, etc.).

      The product requires a low-cost, small-footprint graphics
adapter (SGA).  The SGA consists of two inexpensive ASICs, the VRAM
frame buffer, and the SPD2.  Chip #2 contains a 1KByte (64x64x2bit
sprite) RAM macro and the control logic to overlay the sprite data on
the VRAM serial data.  This chip takes the serial data and generates
the video data that is ultimately clocked into the SPD2 as video
data.  See diagram below.

      Fig. 1 is an overview of the graphics adapter.  Chip #2
contains a RAM macro that holds the sprite bitmap image.  This sprite
image is 64 x 64 x 2 bits.  The 2 bits identify 1 of 4 possible
planes to be displayed.  The placement of the sprite image on the
screen is controlled by the CURPOS and COFFST registers.  There is
also an 'enable' bit in the ADCNTL register that controls whether the
sprite will be displayed.

      CURPOS defines the 'X' and 'Y' coordinates.  Each coordinate is
defined by 11-bits.  This yields a maximum 2048 by 2048 grid.  The
'X' and 'Y' values identify where on the 2048 by 2048 grid the sprite
hotspot will be displayed.

      COFFST is used to identify the hotspot in the sprite bitmap.
It contains 6-bit 'X' and 'Y' coordinates.  Thus any of the pixels in
the 64 x 64 sprite image can be identified to be placed at the screen
pixel identified by the CURPOS register.

      Fig. 2 is an Overview of Function to Determine Sprite Location
The information whether CURPOS is greater than COFFST is used to
determine which one of four cases of sprite placement is being
displayed and to set the Borrow-In for the subtracters.  The figure
below shows four general placement possibilities for the sprite
bitmap.

      By comparing CURPOS and COFFST values, determining whether the
DELTA_Y and DELTA_X information refer t...