1*c6d7607bSjmcneill /* $NetBSD: rasops.c,v 1.1 2009/02/16 22:39:30 jmcneill Exp $ */ 2*c6d7607bSjmcneill 3*c6d7607bSjmcneill /*- 4*c6d7607bSjmcneill * Copyright (c) 1999 The NetBSD Foundation, Inc. 5*c6d7607bSjmcneill * All rights reserved. 6*c6d7607bSjmcneill * 7*c6d7607bSjmcneill * This code is derived from software contributed to The NetBSD Foundation 8*c6d7607bSjmcneill * by Andrew Doran. 9*c6d7607bSjmcneill * 10*c6d7607bSjmcneill * Redistribution and use in source and binary forms, with or without 11*c6d7607bSjmcneill * modification, are permitted provided that the following conditions 12*c6d7607bSjmcneill * are met: 13*c6d7607bSjmcneill * 1. Redistributions of source code must retain the above copyright 14*c6d7607bSjmcneill * notice, this list of conditions and the following disclaimer. 15*c6d7607bSjmcneill * 2. Redistributions in binary form must reproduce the above copyright 16*c6d7607bSjmcneill * notice, this list of conditions and the following disclaimer in the 17*c6d7607bSjmcneill * documentation and/or other materials provided with the distribution. 18*c6d7607bSjmcneill * 19*c6d7607bSjmcneill * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20*c6d7607bSjmcneill * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21*c6d7607bSjmcneill * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22*c6d7607bSjmcneill * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23*c6d7607bSjmcneill * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24*c6d7607bSjmcneill * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25*c6d7607bSjmcneill * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26*c6d7607bSjmcneill * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27*c6d7607bSjmcneill * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28*c6d7607bSjmcneill * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29*c6d7607bSjmcneill * POSSIBILITY OF SUCH DAMAGE. 30*c6d7607bSjmcneill */ 31*c6d7607bSjmcneill 32*c6d7607bSjmcneill #include <lib/libsa/stand.h> 33*c6d7607bSjmcneill 34*c6d7607bSjmcneill /* ANSI colormap (R,G,B). Upper 8 are high-intensity */ 35*c6d7607bSjmcneill const uint8_t rasops_cmap[256*3] = { 36*c6d7607bSjmcneill 0x00, 0x00, 0x00, /* black */ 37*c6d7607bSjmcneill 0x7f, 0x00, 0x00, /* red */ 38*c6d7607bSjmcneill 0x00, 0x7f, 0x00, /* green */ 39*c6d7607bSjmcneill 0x7f, 0x7f, 0x00, /* brown */ 40*c6d7607bSjmcneill 0x00, 0x00, 0x7f, /* blue */ 41*c6d7607bSjmcneill 0x7f, 0x00, 0x7f, /* magenta */ 42*c6d7607bSjmcneill 0x00, 0x7f, 0x7f, /* cyan */ 43*c6d7607bSjmcneill 0xc7, 0xc7, 0xc7, /* white - XXX too dim? */ 44*c6d7607bSjmcneill 45*c6d7607bSjmcneill 0x7f, 0x7f, 0x7f, /* black */ 46*c6d7607bSjmcneill 0xff, 0x00, 0x00, /* red */ 47*c6d7607bSjmcneill 0x00, 0xff, 0x00, /* green */ 48*c6d7607bSjmcneill 0xff, 0xff, 0x00, /* brown */ 49*c6d7607bSjmcneill 0x00, 0x00, 0xff, /* blue */ 50*c6d7607bSjmcneill 0xff, 0x00, 0xff, /* magenta */ 51*c6d7607bSjmcneill 0x00, 0xff, 0xff, /* cyan */ 52*c6d7607bSjmcneill 0xff, 0xff, 0xff, /* white */ 53*c6d7607bSjmcneill 54*c6d7607bSjmcneill /* 55*c6d7607bSjmcneill * For the cursor, we need at least the last (255th) 56*c6d7607bSjmcneill * color to be white. Fill up white completely for 57*c6d7607bSjmcneill * simplicity. 58*c6d7607bSjmcneill */ 59*c6d7607bSjmcneill #define _CMWHITE 0xff, 0xff, 0xff, 60*c6d7607bSjmcneill #define _CMWHITE16 _CMWHITE _CMWHITE _CMWHITE _CMWHITE \ 61*c6d7607bSjmcneill _CMWHITE _CMWHITE _CMWHITE _CMWHITE \ 62*c6d7607bSjmcneill _CMWHITE _CMWHITE _CMWHITE _CMWHITE \ 63*c6d7607bSjmcneill _CMWHITE _CMWHITE _CMWHITE _CMWHITE 64*c6d7607bSjmcneill _CMWHITE16 _CMWHITE16 _CMWHITE16 _CMWHITE16 _CMWHITE16 65*c6d7607bSjmcneill _CMWHITE16 _CMWHITE16 _CMWHITE16 _CMWHITE16 _CMWHITE16 66*c6d7607bSjmcneill _CMWHITE16 _CMWHITE16 _CMWHITE16 _CMWHITE16 /* but not the last one */ 67*c6d7607bSjmcneill #undef _CMWHITE16 68*c6d7607bSjmcneill #undef _CMWHITE 69*c6d7607bSjmcneill 70*c6d7607bSjmcneill /* 71*c6d7607bSjmcneill * For the cursor the fg/bg indices are bit inverted, so 72*c6d7607bSjmcneill * provide complimentary colors in the upper 16 entries. 73*c6d7607bSjmcneill */ 74*c6d7607bSjmcneill 0x7f, 0x7f, 0x7f, /* black */ 75*c6d7607bSjmcneill 0xff, 0x00, 0x00, /* red */ 76*c6d7607bSjmcneill 0x00, 0xff, 0x00, /* green */ 77*c6d7607bSjmcneill 0xff, 0xff, 0x00, /* brown */ 78*c6d7607bSjmcneill 0x00, 0x00, 0xff, /* blue */ 79*c6d7607bSjmcneill 0xff, 0x00, 0xff, /* magenta */ 80*c6d7607bSjmcneill 0x00, 0xff, 0xff, /* cyan */ 81*c6d7607bSjmcneill 0xff, 0xff, 0xff, /* white */ 82*c6d7607bSjmcneill 83*c6d7607bSjmcneill 0x00, 0x00, 0x00, /* black */ 84*c6d7607bSjmcneill 0x7f, 0x00, 0x00, /* red */ 85*c6d7607bSjmcneill 0x00, 0x7f, 0x00, /* green */ 86*c6d7607bSjmcneill 0x7f, 0x7f, 0x00, /* brown */ 87*c6d7607bSjmcneill 0x00, 0x00, 0x7f, /* blue */ 88*c6d7607bSjmcneill 0x7f, 0x00, 0x7f, /* magenta */ 89*c6d7607bSjmcneill 0x00, 0x7f, 0x7f, /* cyan */ 90*c6d7607bSjmcneill 0xc7, 0xc7, 0xc7, /* white - XXX too dim? */ 91*c6d7607bSjmcneill }; 92