1. HP 3500C Colour Depth Registers

The low 5 bits (0x1f) of these registers contain colour depth information. It seems that the colour bits of 0x2d must normally be equal to the colour bits of 0x2c plus 2. Both are stored mod 24.

The values of the colour depth areas of these are calculated as follows:

  1. Take CDSS 2 (low 5 bits of register 0x2a) (x = CDSS2).
  2. If performing a full colour scan, multiply by 3, and take the modulo 24 (x = x * 3 % 24). [Taking modulo 24 appears redundant due to the same operation being taken below, but that's what the Windows driver does].
  3. If the low bit of the motor mode only (high two bits of register 0x40) is set, add 17, otherwise add 16 (x += (motormode == 0x40) ? 17 : 16).
  4. Take the value modulo 24 (x = x % 24). This goes in the 0x2c colour depth field.
  5. Add 2, and take mod 24 (x = (x + 2) % 24). This goes in the 0x2d colour depth field.

The only values I have seen are:

1.1. Register 0x2c

Bits Mask Purpose
5-7 0xe0 ???
0-4 0x1f Colour depth (0-23)

1.2. Register 0x2d

Bits Mask Purpose
7 0x80 CSMPS
6 0x40 CISCKS
5 0x20 CPH0S
0-4 0x1f Colour depth + 2 (2-25)

Return to HP3500C