Updated Radius PowerView Commands (markdown)

akuker 2022-01-10 19:42:36 -06:00
parent 577e74682a
commit 0b842cc086
1 changed files with 61 additions and 16 deletions

@ -369,31 +369,76 @@ Command: `CA011AE6 00020003 009C00` - Size 6
Command: `CA011AE6 00020003 009C00` - Size 6
## **UNKNOWN** (CB)
Command: CB 00 00 00 01 00
## Load Color Palette (CB)
Command: CB 00 00 LL LL 00
* LL = Length in 32-bit words
Function: ***Unknown at this time***
Type: Input (Transitions to DATAOUT)
Function: Loads the color palette into the Radius PowerView
Sequence: Command->Data Out->Status->Msg In
Observations: During startup, the host seems to transfer several smaller `CB` messages during initialization. These seem to indicate different color depths during initialization.
The current working theory is that when the PowerView is first initialized, it is loaded with the Black & White color palette (`00 FF FF FF 80 00 00 00`). Then, it will later be loaded with the color palette.
Theory: We can probably key off this information to determine the current color depth of the display. I'm guessing that the host will load a new color palette. We can use the size of this (potentially) to figure out the color depth of the incoming framebuffers.
__TODO: Need to capture the color palettes for the various grayscale color depths.__
Each of the color palette entries appears to map to:
II RR GG BB
where:
* II = index (00 through FF)
* RR = Red
* GG = Green
* BB = Blue
**Assumption: The order of the R/G/B fields may be in a different order**
Examples:
Command: `CB 00 00 00 01 00`
Data out: `00 00 64 00`
Command: `CB 00 00 00 01 00`
Data out: `00 00 00 64`
Command: `CB 00 00 00 01 00`
Data out: `00 00 00 00`
**_Black and White Color Palette_**
Command: `CB FF FF 00 02 00`
Data out: `00 FF FF FF`
Command: `CB FF FF 00 02 00`
Data out: `00 FF FF FF 80 00 00 00`
Data: `00 FF FF FF 80 00 00 00`
**_16 color (8 bit) Color Palette_**
Command: `CB 00 00 00 10 00`
Data: wc: (0x40)
```
00FFFFFF 01FCF305 02FF6402 03DD0806
04F20884 054600A5 060000D4 0702ABEA
081FB714 09006411 0A562C05 0B90713A
0CC0C0C0 0D808080 0E404040 0F000000
```
**_256 color (16 bit) Color Palette_**
Command: `CB 00 00 01 00 00`
Data: (wc 0x400)
```
0: 00FFFFFF 01FFFFCC 02FFFF99 03FFFF66
10: 04FFFF33 05FFFF00 06FFCCFF 07FFCCCC
20: 08FFCC99 09FFCC66 0AFFCC33 0BFFCC00
30: 0CFF99FF 0DFF99CC 0EFF9999 0FFF9966
...
3d0: F4000011 F5EEEEEE F6DDDDDD F7BBBBBB
3e0: F8AAAAAA F9888888 FA777777 FB555555
3f0: FC444444 FD222222 FE111111 FF000000
```
**_Some sort of test sequence?_**
Command: `CB 00 00 00 01 00`
* Data out: `00 00 64 00` or
* Data out: `00 00 00 64` or
* Data out: `00 00 00 00`
## **UNKNOWN** (CC)
Command: CC 45 E0 00