Chameleon-PIC Nurve Networks, Chameleon-PIC Datasheet - Page 181

MCU, MPU & DSP Development Tools PIC24 & PROPELLER DEV SYSTEM (SBC)

Chameleon-PIC

Manufacturer Part Number
Chameleon-PIC
Description
MCU, MPU & DSP Development Tools PIC24 & PROPELLER DEV SYSTEM (SBC)
Manufacturer
Nurve Networks
Datasheet

Specifications of Chameleon-PIC

Processor To Be Evaluated
PIC24
Data Bus Width
16 bit
Interface Type
USB, VGA, PS/2, I2C, ISP, SPI
Operating Supply Voltage
3.3 V, 5 V
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
Desired Signal
----------------------------------------------
----------------|-------------------------------
Sync
------------------------------------------------
Black
Dark Grey
Grey
Light Grey
Bright Grey
White
------------------------------------------------
Blue
Purple
Magenta
Red
Orange
Brown
Yellow
Yell/Grn 202.5' |
Green
Cyan
NOTE 1: Colors without names are simply linear mixes of the colors before and after.
NOTE 2: When chroma/color is enabled the luma signal is modulated +-1;
Referring to the table, the highest "safe" value to use for brightness/luma is 6 and the lowest "safe" value is 3, so keep
your luma in the range of [3,6] when using chroma, otherwise, the system won’t have enough freedom to encode the color
signal modulation since a +-1 modulates your luma signal and you don’t want it going out of range. The color format is not
something I made up, but a direct result of the underlying Propeller video hardware’s color format that it needs to process
pixels, so we are stuck with it. However, other than the out of range luma values, and the color modulation bit, it’s a fairly
common way to encode color on 8/16-bit graphics hardware. They rarely use RGB.
Tile Map Review
That about sums up the tile engine design. The physical tile map on the screen always displays 32x24 characters. You
can define larger virtual tile maps for scrolling that are 32, 64, 128, 256 wide, any height. Each tile is 2-bytes representing
the tile index (character) and the palette to use for the tile (4 colors). Each tile bitmap is 8x8 pixels, each pixel 2-bits. Each
2-bit code refers to 1 of 4 colors in the “palette” for that tile.
The tile engine supports course scrolling by changing the pointer to the start of the current tile map, or page flipping by
moving the pointer an entire tile map length. The engine also supports “smooth” scrolling in the vertical direction with the
vertical scroll register (0..7). The tile maps, tile bitmaps and palettes are all in memory and can be access by reading their
base address memory locations and then writing memory. This is done via the register interface (which we will discuss in
a moment). Finally, you can control the top and bottom overscan color of the NTSC screen with a 8-bit register for each.
That’s about all there is to it, but this tile engine is more than enough to write 90% of the games from the 90’s on 8/16-bit
machines!!!
22.1.1 GFX Driver Register Interface
Before jumping into the header file contents overview, I want to re-enforce that all communications to the GFX driver are
thru a set of “virtual” registers. These registers can be read/written (in most cases) and each register usually has a bit of
code that “executes” the read/write and does what needs to be done to any low level variables or data structures in the
ASM video driver itself. Thus, much of the functionality of the register interface isn’t directly built into the driver, but
created via code, the driver, and other added elements to give the user an “interface” that is more robust.
112.5' |
135.0' |
157.5' |
180.0' |
225.0' |
247.5' |
270.0' |
292.5' |
315.0' |
337.5' |
22.5' |
45.0' |
67.5' |
90.0' |
0.0' |
| Bit encoding
| |P3 P2 P1 P0 | M | L2 L1 L0|
|
|
|
|
|
|
|
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
Table 22.1 - Color encoding for various color values.
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
x
x
x
x
x
x
x
x
x
x
x
x
x
x
0
x
x
0
1
1
0
0
1
1
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
0
0
1
0
1
0
1
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
Control Values Group
Grayscale Values Group
(where 011 <= xxx <= 110)
(i.e. 3 <= xxx <=6 )
Color Values Group
© 2009 NURVE NETWORKS LLC “Exploring the Chameleon PIC 16-Bit”
181

Related parts for Chameleon-PIC