Annotation of sbbs/conio/vidmodes.h, revision 1.1.1.1

1.1       root        1: /* $Id: */
                      2: 
                      3: /****************************************************************************
                      4:  * @format.tab-size 4          (Plain Text/Source Code File Header)                    *
                      5:  * @format.use-tabs true       (see http://www.synchro.net/ptsc_hdr.html)              *
                      6:  *                                                                                                                                                     *
                      7:  * Copyright 2004 Rob Swindell - http://www.synchro.net/copyright.html         *
                      8:  *                                                                                                                                                     *
                      9:  * This library is free software; you can redistribute it and/or                       *
                     10:  * modify it under the terms of the GNU Lesser General Public License          *
                     11:  * as published by the Free Software Foundation; either version 2                      *
                     12:  * of the License, or (at your option) any later version.                                      *
                     13:  * See the GNU Lesser General Public License for more details: lgpl.txt or     *
                     14:  * http://www.fsf.org/copyleft/lesser.html                                                                     *
                     15:  *                                                                                                                                                     *
                     16:  * Anonymous FTP access to the most recent released source is available at     *
                     17:  * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net     *
                     18:  *                                                                                                                                                     *
                     19:  * Anonymous CVS access to the development source and modification history     *
                     20:  * is available at cvs.synchro.net:/cvsroot/sbbs, example:                                     *
                     21:  * cvs -d :pserver:[email protected]:/cvsroot/sbbs login                       *
                     22:  *     (just hit return, no password is necessary)                                                     *
                     23:  * cvs -d :pserver:[email protected]:/cvsroot/sbbs checkout src                *
                     24:  *                                                                                                                                                     *
                     25:  * For Synchronet coding style and modification guidelines, see                                *
                     26:  * http://www.synchro.net/source.html                                                                          *
                     27:  *                                                                                                                                                     *
                     28:  * You are encouraged to submit any modifications (preferably in Unix diff     *
                     29:  * format) via e-mail to [email protected]                                                                      *
                     30:  *                                                                                                                                                     *
                     31:  * Note: If this box doesn't appear square, then you need to fix your tabs.    *
                     32:  ****************************************************************************/
                     33: 
                     34: #ifndef _VIDMODES_H_
                     35: #define _VIDMODES_H_
                     36: 
                     37: #include "ciolib.h"
                     38: 
                     39: struct  video_params {
                     40:        int     mode;
                     41:        int palette;
                     42:        int     cols;
                     43:        int rows;
                     44:        int     curs_start;
                     45:        int curs_end;
                     46:        int charheight;
                     47:        int charwidth;
                     48: };
                     49: 
                     50: enum {
                     51:         MONO_PALETTE
                     52:        ,GREYSCALE_PALETTE
                     53:        ,COLOUR_PALETTE
                     54: };
                     55: 
                     56: static struct video_params vparams[] = {
                     57:        /* BW 40x25 */
                     58:        {BW40, GREYSCALE_PALETTE, 40, 25, 14, 15, 16, 8},
                     59:        /* CO 40x25 */
                     60:        {C40, COLOUR_PALETTE, 40, 25, 14, 15, 16, 8},
                     61:        /* BW 80x25 */
                     62:        {BW80, GREYSCALE_PALETTE, 80, 25, 14, 15, 16, 8},
                     63:        /* CO 80x25 */
                     64:        {C80, COLOUR_PALETTE, 80, 25, 14, 15, 16, 8},
                     65:        /* MONO */
                     66:        {MONO, 0, 80, 25, 14, 15, 16, 8},
                     67:        /* CO 40x14 */
                     68:        {C40X14, COLOUR_PALETTE, 40, 14, 14, 15, 16, 8},
                     69:        /* CO 40x21 */
                     70:        {C40X21, COLOUR_PALETTE, 40, 21, 14, 15, 16, 8},
                     71:        /* CO 40x28 */
                     72:        {C40X28, COLOUR_PALETTE, 40, 28, 12, 13, 14, 8},
                     73:        /* CO 40x43 */
                     74:        {C40X43, COLOUR_PALETTE, 40, 43, 7, 7, 8, 8},
                     75:        /* CO 40x50 */
                     76:        {C40X50, COLOUR_PALETTE, 40, 50, 7, 7, 8, 8},
                     77:        /* CO 40x60 */
                     78:        {C40X60, COLOUR_PALETTE, 40, 60, 7, 7, 8, 8},
                     79:        /* CO 80x14 */
                     80:        {C80X14, COLOUR_PALETTE, 80, 14, 14, 15, 16, 8},
                     81:        /* CO 80x21 */
                     82:        {C80X21, COLOUR_PALETTE, 80, 21, 14, 15, 16, 8},
                     83:        /* CO 80x28 */
                     84:        {C80X28, COLOUR_PALETTE, 80, 28, 12, 13, 14, 8},
                     85:        /* CO 80x43 */
                     86:        {C80X43, COLOUR_PALETTE, 80, 43, 7, 7, 8, 8},
                     87:        /* CO 80x50 */
                     88:        {C80X50, COLOUR_PALETTE, 80, 50, 7, 7, 8, 8},
                     89:        /* CO 80x60 */
                     90:        {C80X60, COLOUR_PALETTE, 80, 60, 7, 7, 8, 8},
                     91:        /* B 40x14 */
                     92:        {BW40X14, GREYSCALE_PALETTE, 40, 14, 14, 15, 16, 8},
                     93:        /* BW 40x21 */
                     94:        {BW40X21, GREYSCALE_PALETTE, 40, 21, 14, 15, 16, 8},
                     95:        /* BW 40x28 */
                     96:        {BW40X28, GREYSCALE_PALETTE, 40, 28, 12, 13, 14, 8},
                     97:        /* BW 40x43 */
                     98:        {BW40X43, GREYSCALE_PALETTE, 40, 43, 7, 7, 8, 8},
                     99:        /* BW 40x50 */
                    100:        {BW40X50, GREYSCALE_PALETTE, 40, 50, 7, 7, 8, 8},
                    101:        /* BW 40x60 */
                    102:        {BW40X60, GREYSCALE_PALETTE, 40, 60, 7, 7, 8, 8},
                    103:        /* BW 80x14 */
                    104:        {BW80X14, GREYSCALE_PALETTE, 80, 14, 14, 15, 16, 8},
                    105:        /* BW 80x21 */
                    106:        {BW80X21, GREYSCALE_PALETTE, 80, 21, 14, 15, 16, 8},
                    107:        /* BW 80x28 */
                    108:        {BW80X28, GREYSCALE_PALETTE, 80, 28, 12, 13, 14, 8},
                    109:        /* BW 80x43 */
                    110:        {BW80X43, GREYSCALE_PALETTE, 80, 43, 7, 7, 8, 8},
                    111:        /* BW 80x50 */
                    112:        {BW80X50, GREYSCALE_PALETTE, 80, 50, 7, 7, 8, 8},
                    113:        /* BW 80x60 */
                    114:        {BW80X60, GREYSCALE_PALETTE, 80, 60, 7, 7, 8, 8},
                    115:        /* MONO 80x14 */
                    116:        {MONO14, MONO_PALETTE, 80, 14, 14, 15, 16, 8},
                    117:        /* MONO 80x21 */
                    118:        {MONO21, MONO_PALETTE, 80, 21, 14, 15, 16, 8},
                    119:        /* MONO 80x28 */
                    120:        {MONO28, MONO_PALETTE, 80, 28, 12, 13, 14, 8},
                    121:        /* MONO 80x43 */
                    122:        {MONO43, MONO_PALETTE, 80, 43, 7, 7, 8, 8},
                    123:        /* MONO 80x50 */
                    124:        {MONO50, MONO_PALETTE, 80, 50, 7, 7, 8, 8},
                    125:        /* MONO 80x60 */
                    126:        {MONO60, MONO_PALETTE, 80, 60, 7, 7, 8, 8},
                    127:        /* Magical C4350 Mode */
                    128:        {C4350, COLOUR_PALETTE, 80, 50, 7, 7, 8, 8},
                    129: };
                    130: 
                    131: #define NUMMODES      (sizeof(vparams) / sizeof(struct video_params))
                    132: 
                    133: static unsigned char palettes[][16] = {
                    134:        /* Mono */
                    135:        { 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
                    136:          0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07
                    137:        },
                    138:        /* Black and White */
                    139:        { 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
                    140:          0x08, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f
                    141:        },
                    142:        /* Colour */
                    143:        { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 
                    144:          0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f
                    145:        }
                    146: };
                    147: 
                    148: /* Entry type for the DAC table. Each value is actually 6 bits wide. */
                    149: struct dac_colors {
                    150:        BYTE red;
                    151:        BYTE green;
                    152:        BYTE blue;
                    153: };
                    154: 
                    155: static struct dac_colors dac_default16[] = {
                    156:        {0, 0, 0},    {0, 0, 42},   {0, 42, 0},   {0, 42, 42},
                    157:        {42, 0, 0},   {42, 0, 42},  {42, 21, 0},  {42, 42, 42},
                    158:        {21, 21, 21}, {21, 21, 63}, {21, 63, 21}, {21, 63, 63},
                    159:        {63, 21, 21}, {63, 21, 63}, {63, 63, 21}, {63, 63, 63}
                    160: };
                    161: 
                    162: static int find_vmode(int mode)
                    163: {
                    164:     unsigned i;
                    165: 
                    166:        for (i = 0; i < NUMMODES; i++)
                    167:                if (vparams[i].mode == mode)
                    168:                        return i;
                    169: 
                    170:        return -1;
                    171: }
                    172: 
                    173: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.