/* * Copyright (c) 1994 Christian E. Hopps * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by Christian E. Hopps. * 4. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $Id: grfabs_ccglb.c,v 1.3 1994/03/27 06:23:32 chopps Exp $ */ #include #include #include #include #include /* the custom thips monitor */ monitor_t *cc_monitor; cop_t std_copper_list[] = { { CI_WAIT (0, 12), 0xfffe }, #if defined (GRF_ECS) { R_BEAMCON0, 0x0000 }, { R_BPLCON3, 0x0020 }, /* enable border blank */ #endif /* bit plane pointers */ { R_BPL0PTH, 0x0000 }, { R_BPL0PTL, 0x0000 }, { R_BPL1PTH, 0x0000 }, { R_BPL1PTL, 0x0000 }, { R_BPL2PTH, 0x0000 }, { R_BPL2PTL, 0x0000 }, { R_BPL3PTH, 0x0000 }, { R_BPL3PTL, 0x0000 }, { R_BPL4PTH, 0x0000 }, { R_BPL4PTL, 0x0000 }, { R_BPL5PTH, 0x0000 }, { R_BPL5PTL, 0x0000 }, { R_BPL6PTH, 0x0000 }, { R_BPL6PTL, 0x0000 }, { R_BPL7PTH, 0x0000 }, { R_BPL7PTL, 0x0000 }, /* view specific stuff. */ { R_BPL1MOD, 0x0000 }, { R_BPL2MOD, 0x0000 }, { R_DIWSTRT, 0xffff }, { R_BPLCON0, 0x0000 }, { R_DIWSTOP, 0x0000 }, #if defined (GRF_ECS) { R_DIWHIGH, 0x0000 }, #endif { R_DDFSTRT, 0x0000 }, { R_DDFSTOP, 0x0000 }, { R_BPLCON1, 0x0000 }, /* colors */ { R_COLOR00, 0x0779 }, { R_COLOR01, 0x0000 }, { R_COLOR02, 0x0FFF }, { R_COLOR03, 0x068B }, { R_COLOR04, 0x000f }, { R_COLOR05, 0x0f0f }, { R_COLOR06, 0x00ff }, { R_COLOR07, 0x0fff }, { R_COLOR08, 0x0620 }, { R_COLOR09, 0x0e50 }, { R_COLOR0A, 0x09f1 }, { R_COLOR0B, 0x0eb0 }, { R_COLOR0C, 0x055f }, { R_COLOR0D, 0x092f }, { R_COLOR0E, 0x00f8 }, { R_COLOR0F, 0x0ccc }, { R_COLOR10, 0x0e44 }, { R_COLOR11, 0x0e44 }, { R_COLOR12, 0x0000 }, { R_COLOR13, 0x0eec }, { R_COLOR14, 0x0444 }, { R_COLOR15, 0x0555 }, { R_COLOR16, 0x0666 }, { R_COLOR17, 0x0777 }, { R_COLOR18, 0x0888 }, { R_COLOR19, 0x0999 }, { R_COLOR1A, 0x0aaa }, { R_COLOR1B, 0x0bbb }, { R_COLOR1C, 0x0ccc }, { R_COLOR1D, 0x0ddd }, { R_COLOR1E, 0x0eee }, { R_COLOR1F, 0x0fff }, { R_COP1LCH, 0x0000 }, { R_COP1LCL, 0x0000 }, { 0xffff, 0xfffe }, { 0xffff, 0xfffe } /* COPEND, COPEND */ }; /* standard custom chips copper list. */ int std_copper_list_len = sizeof (std_copper_list) / sizeof (cop_t); int std_copper_list_size = sizeof (std_copper_list); #if defined (GRF_A2024) cop_t std_dlace_copper_list[] = { { CI_WAIT(0,12), 0xfffe }, /* WAIT (0, 12) */ #if defined (GRF_ECS) { R_BEAMCON0, 0x0000 }, { R_BPLCON3, 0x0020 }, /* enable border blank */ #endif /* colors */ { R_COLOR00, 0x0000 }, { R_COLOR01, 0x0000 }, { R_COLOR02, 0x0000 }, { R_COLOR03, 0x0000 }, { R_COLOR04, 0x0000 }, { R_COLOR05, 0x0000 }, { R_COLOR06, 0x0000 }, { R_COLOR07, 0x0000 }, { R_COLOR08, 0x0000 }, { R_COLOR09, 0x0000 }, { R_COLOR0A, 0x0000}, { R_COLOR0B, 0x0000 }, { R_COLOR0C, 0x0000 }, { R_COLOR0D, 0x0000 }, { R_COLOR0E, 0x0000}, { R_COLOR0F, 0x0000 }, { R_COLOR10, 0x0009 }, { R_COLOR11, 0x0009 }, { R_COLOR12, 0x0001 }, { R_COLOR13, 0x0809 }, { R_COLOR14, 0x0009 }, { R_COLOR15, 0x0009 }, { R_COLOR16, 0x0001 }, { R_COLOR17, 0x0809 }, { R_COLOR18, 0x0008 }, { R_COLOR19, 0x0008 }, { R_COLOR1A, 0x0000 }, { R_COLOR1B, 0x0808 }, { R_COLOR1C, 0x0089 }, { R_COLOR1D, 0x0089 }, { R_COLOR1E, 0x0081 }, { R_COLOR1F, 0x0889 }, /* set the registers up. */ { R_DIWSTRT, 0xffff }, { R_BPLCON0, 0x0000 }, { R_DIWSTOP, 0x0000 }, #if defined (GRF_ECS) { R_DIWHIGH, 0x0000 }, #endif { R_DDFSTRT, 0x0000 }, { R_DDFSTOP, 0x0000 }, { R_BPLCON1, 0x0000 }, /* view specific stuff. */ { R_BPL1MOD, 0x0000 }, { R_BPL2MOD, 0x0000 }, /* bit plane pointers */ { R_BPL0PTH, 0x0000 }, { R_BPL0PTL, 0x0000 }, { R_BPL1PTH, 0x0000 }, { R_BPL1PTL, 0x0000 }, { R_BPL2PTH, 0x0000 }, { R_BPL2PTL, 0x0000 }, { R_BPL3PTH, 0x0000 }, { R_BPL3PTL, 0x0000 }, { R_COP1LCH, 0x0000 }, { R_COP1LCL, 0x0000 }, { 0xffff, 0xfffe }, { 0xffff, 0xfffe } /* COPEND, COPEND */ }; int std_dlace_copper_list_len = sizeof (std_dlace_copper_list) / sizeof (cop_t); int std_dlace_copper_list_size = sizeof (std_dlace_copper_list); cop_t std_a2024_copper_list[] = { { CI_WAIT(0,12), 0xfffe }, /* WAIT (0, 12) */ #if defined (GRF_ECS) { R_BEAMCON0, 0x0000 }, #endif /* hedley card init setup section */ { R_COLOR00, 0x0f00 }, { R_BPL0PTH, 0x0000 }, { R_BPL0PTL, 0x0000 }, /* init plane of 1's with first set for centering */ { R_DIWSTRT, 0x1561 }, { R_DIWSTOP, 0x16d1 }, #if defined (GRF_ECS) { R_DIWHIGH, 0x2000 }, #endif { R_DDFSTRT, 0x0040 }, { R_DDFSTOP, 0x00d0 }, { R_BPLCON0, 0x9200 }, /* actual data that will be latched by hedley card. */ { R_COLOR01, 0x0001 }, /* Stuff1 */ { CI_WAIT(126,21), 0xfffe }, { R_COLOR01, 0x0001 }, /* Display Quadrent */ { CI_WAIT(158,21), 0xfffe }, { R_COLOR01, 0x08f0 }, /* Stuff */ { CI_WAIT(190,21), 0xfffe }, { R_COLOR01, 0x0ff1 }, /* Stuff2 */ { CI_WAIT(0,22), 0xfffe }, { R_COLOR00, 0x0000 }, { R_BPLCON0, 0x0000 }, { CI_WAIT(0,43), 0xfffe }, /* set the registers up. */ { R_COLOR00, 0x0009 }, { R_COLOR01, 0x0001 }, { R_COLOR02, 0x0008 }, { R_COLOR03, 0x0000 }, { R_COLOR04, 0x0809 }, { R_COLOR05, 0x0801 }, { R_COLOR06, 0x0808 }, { R_COLOR07, 0x0800 }, { R_COLOR08, 0x0089 }, { R_COLOR09, 0x0081 }, { R_COLOR0A, 0x0088 }, { R_COLOR0B, 0x0080 }, { R_COLOR0C, 0x0889 }, { R_COLOR0D, 0x0881 }, { R_COLOR0E, 0x0888 }, { R_COLOR0F, 0x0880 }, { R_COLOR10, 0x0009 }, { R_COLOR11, 0x0009 }, { R_COLOR12, 0x0001 }, { R_COLOR13, 0x0809 }, { R_COLOR14, 0x0009 }, { R_COLOR15, 0x0009 }, { R_COLOR16, 0x0001 }, { R_COLOR17, 0x0809 }, { R_COLOR18, 0x0008 }, { R_COLOR19, 0x0008 }, { R_COLOR1A, 0x0000 }, { R_COLOR1B, 0x0808 }, { R_COLOR1C, 0x0089 }, { R_COLOR1D, 0x0089 }, { R_COLOR1E, 0x0081 }, { R_COLOR1F, 0x0889 }, /* window size. */ { R_DIWSTRT, 0x2c81 }, { R_BPLCON0, 0x0000 }, { R_DIWSTOP, 0xf481 }, /* datafetch */ { R_DDFSTRT, 0x0038 }, { R_DDFSTOP, 0x00b8 }, { R_BPLCON1, 0x0000 }, { R_BPL1MOD, 0x00bc }, { R_BPL2MOD, 0x00bc }, /* bitplanes */ { R_BPL0PTH, 0x0000 }, { R_BPL0PTL, 0x0000 }, { R_BPL1PTH, 0x0000 }, { R_BPL1PTL, 0x0000 }, { R_BPL2PTH, 0x0000 }, { R_BPL2PTL, 0x0000 }, { R_BPL3PTH, 0x0000 }, { R_BPL3PTL, 0x0000 }, #if defined (GRF_ECS) { R_DIWHIGH, 0x2000 }, #endif { R_COP1LCH, 0x0000 }, { R_COP1LCL, 0x0000 }, { 0xffff, 0xfffe }, { 0xffff, 0xfffe } /* COPEND, COPEND */ }; int std_a2024_copper_list_len = sizeof (std_a2024_copper_list) / sizeof (cop_t); int std_a2024_copper_list_size = sizeof (std_a2024_copper_list); cop_t std_pal_a2024_copper_list[] = { { CI_WAIT(0,20), 0xfffe }, /* WAIT (0, 12) */ #if defined (GRF_ECS) { R_BEAMCON0, STANDARD_PAL_BEAMCON }, #endif /* hedley card init setup section */ { R_COLOR00, 0x0f00 }, { R_BPL0PTH, 0x0000 }, { R_BPL0PTL, 0x0000 }, /* init plane of 1's with first set for centering */ { R_DIWSTRT, 0x1d61 }, { R_DIWSTOP, 0x1ed1 }, #if defined (GRF_ECS) { R_DIWHIGH, 0x2000 }, #endif { R_DDFSTRT, 0x0040 }, { R_DDFSTOP, 0x00d0 }, { R_BPLCON0, 0x9200 }, /* actual data that will be latched by hedley card. */ { R_COLOR01, 0x0001 }, /* Stuff1 */ { CI_WAIT(126,29), 0xfffe }, { R_COLOR01, 0x0001 }, /* Display Quadrent */ { CI_WAIT(158,29), 0xfffe }, { R_COLOR01, 0x08f0 }, /* Stuff */ { CI_WAIT(190,29), 0xfffe }, { R_COLOR01, 0x0ff1 }, /* Stuff2 */ { CI_WAIT(0,30), 0xfffe }, { R_COLOR00, 0x0000 }, { R_BPLCON0, 0x0000 }, { CI_WAIT(0,43), 0xfffe }, /* set the registers up. */ { R_COLOR00, 0x0009 }, { R_COLOR01, 0x0001 }, { R_COLOR02, 0x0008 }, { R_COLOR03, 0x0000 }, { R_COLOR04, 0x0809 }, { R_COLOR05, 0x0801 }, { R_COLOR06, 0x0808 }, { R_COLOR07, 0x0800 }, { R_COLOR08, 0x0089 }, { R_COLOR09, 0x0081 }, { R_COLOR0A, 0x0088 }, { R_COLOR0B, 0x0080 }, { R_COLOR0C, 0x0889 }, { R_COLOR0D, 0x0881 }, { R_COLOR0E, 0x0888 }, { R_COLOR0F, 0x0880 }, { R_COLOR10, 0x0009 }, { R_COLOR11, 0x0009 }, { R_COLOR12, 0x0001 }, { R_COLOR13, 0x0809 }, { R_COLOR14, 0x0009 }, { R_COLOR15, 0x0009 }, { R_COLOR16, 0x0001 }, { R_COLOR17, 0x0809 }, { R_COLOR18, 0x0008 }, { R_COLOR19, 0x0008 }, { R_COLOR1A, 0x0000 }, { R_COLOR1B, 0x0808 }, { R_COLOR1C, 0x0089 }, { R_COLOR1D, 0x0089 }, { R_COLOR1E, 0x0081 }, { R_COLOR1F, 0x0889 }, /* window size. */ { R_DIWSTRT, 0x2c81 }, { R_BPLCON0, 0x0000 }, { R_DIWSTOP, 0x2c81 }, /* datafetch */ { R_DDFSTRT, 0x0038 }, { R_DDFSTOP, 0x00b8 }, { R_BPLCON1, 0x0000 }, { R_BPL1MOD, 0x00bc }, { R_BPL2MOD, 0x00bc }, /* bitplanes */ { R_BPL0PTH, 0x0000 }, { R_BPL0PTL, 0x0000 }, { R_BPL1PTH, 0x0000 }, { R_BPL1PTL, 0x0000 }, { R_BPL2PTH, 0x0000 }, { R_BPL2PTL, 0x0000 }, { R_BPL3PTH, 0x0000 }, { R_BPL3PTL, 0x0000 }, #if defined (GRF_ECS) { R_DIWHIGH, 0x2100 }, #endif { R_COP1LCH, 0x0000 }, { R_COP1LCL, 0x0000 }, { 0xffff, 0xfffe }, { 0xffff, 0xfffe } /* COPEND, COPEND */ }; int std_pal_a2024_copper_list_len = sizeof (std_pal_a2024_copper_list) / sizeof (cop_t); int std_pal_a2024_copper_list_size = sizeof (std_pal_a2024_copper_list); /* color tables for figuring color regs for 2024 */ u_short a2024_color_value_line0[4] = { A2024_L0_BLACK, A2024_L0_DGREY, A2024_L0_LGREY, A2024_L0_WHITE }; u_short a2024_color_value_line1[4] = { A2024_L1_BLACK, A2024_L1_DGREY, A2024_L1_LGREY, A2024_L1_WHITE }; #endif /* GRF_A2024 */ u_short cc_default_colors[32] = { 0xAAA, 0x000, 0x68B, 0xFFF, 0x369, 0x963, 0x639, 0x936, 0x000, 0x00F, 0x0F0, 0xF00, 0x0FF, 0xFF0, 0xF0F, 0xFFF, 0x000, 0x111, 0x222, 0x333, 0x444, 0x555, 0x666, 0x777, 0x888, 0x999, 0xAAA, 0xBBB, 0xCCC, 0xDDD, 0xEEE, 0xFFF }; #if defined (GRF_A2024) u_short cc_a2024_default_colors[4] = { 0x2, /* LGREY */ 0x0, /* BLACK */ 0x3, /* WHITE */ 0x1 /* DGREY */ }; #endif /* GRF_A2024 */