termcol: index greyscale ramp, include in image palette
[sheet.git] / termcol.inc.pl
index 385f277845fb3f4976c130d176ee285f597a0117..e14abcf2c44afa5f1320622ee09d4327e10ff665 100644 (file)
@@ -79,6 +79,15 @@ my @msxorder = ( 0,6,2,10,4,13,7,14 , 1,8,3,11,5,9,12,15 );
                        2F2F2F CD5757 8FC35B D1C45E 5C81A9 BC95B7 76CBCB EEEEEC
                )],
        },
+       mirc => {
+               name => 'mIRC',
+               href => 'http://www.mirc.com/colors.html',
+               list => [qw(
+                       FFFFFF 000000 00007F 009300 FF0000 7F0000 9C009C FC7F00
+                       FFFF00 00FC00 009393 00FFFF 0000FC FF00FF 7F7F7F D2D2D2
+               )],
+               ansiorder => [ 1,5,3,7,2,6,10,15 , 14,4,9,8,12,13,11,0  ],
+       },
        mac2 => {
                name => 'MacII',
                list => [qw(
@@ -185,7 +194,7 @@ my @msxorder = ( 0,6,2,10,4,13,7,14 , 1,8,3,11,5,9,12,15 );
                                $_[2] + 4 * ($_[1] + 4 * $_[0]) + 16,
                                map { (0, 139, 205, 255)[$_] } @_
                        },
-                       [ map { ($_ + 2 + ($_>0)) * 255/11 } 0 .. 7 ],
+                       [ map { [80 + $_, (($_ + 2 + ($_>0)) * 255/11) x 3] } 0 .. 7 ],
                ],
        },
        ansi256 => {
@@ -197,7 +206,22 @@ my @msxorder = ( 0,6,2,10,4,13,7,14 , 1,8,3,11,5,9,12,15 );
                                $_[2] + 6 * ($_[1] + 6 * $_[0]) + 16,
                                map { $_ && $_*40 + 55 } @_
                        },
-                       [ map { $_ * 10 + 8 } 0 .. 23 ],
+                       [ map { [232 + $_, ($_ * 10 + 8) x 3] } 0 .. 23 ],
+               ],
+       },
+       512 => {
+               name => '9-bit RGB map',
+               # atari st, msx2, sega genesis/nomad, turbografx16
+               rgbmap => [8],
+       },
+       '4k' => {
+               name => '12-bit RGB map',
+               # amiga, apple IIgs, game gear, neo geo, lynx, cpc+, nextstation
+               rgbmap => [
+                       12 => sub {
+                               join('', map { sprintf '%X', $_ } @_),
+                               map { int $_ * 255 / 11 } @_
+                       },
                ],
        },
 }