Added PAL mode for A2024 monitor, cleaned A2024 code, added borderblank to all
modes that support it.
This commit is contained in:
parent
404b8fce6b
commit
39dd8d2805
|
@ -27,7 +27,7 @@
|
|||
* (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: grf_cc_a2024_mode.c,v 1.2 1994/01/29 07:00:14 chopps Exp $
|
||||
* $Id: grf_cc_a2024_mode.c,v 1.3 1994/01/30 08:25:02 chopps Exp $
|
||||
*/
|
||||
#if defined (GRF_A2024)
|
||||
|
||||
|
@ -173,38 +173,25 @@ display_a2024_view (view_t *v)
|
|||
tmp = find_copper_inst (cp, CI_MOVE(R_COLOR1F));
|
||||
tmp = find_copper_inst (tmp, CI_MOVE(R_BPLCON0)); /* grab third one. */
|
||||
tmp->cp.inst.operand = this_data->bplcon0 | ((depth & 0x7) << 13); /* times 2 */
|
||||
#if 0
|
||||
/* change display wait if 2 bitplanes. */
|
||||
if (depth == 2) {
|
||||
tmp = find_copper_inst (cp, CI_WAIT(0, 43));
|
||||
if (tmp) {
|
||||
tmp->cp.inst.opcode = CI_WAIT (0,42);
|
||||
}
|
||||
} else {
|
||||
/* XXX does same thing as above */
|
||||
tmp = find_copper_inst (cp, CI_WAIT(0, 43));
|
||||
if (tmp) {
|
||||
tmp->cp.inst.opcode = CI_WAIT (0, 42);
|
||||
}
|
||||
#if 0 /* blows away the coplc data load :^) */
|
||||
if (depth == 1) {
|
||||
tmp = find_copper_inst (cp, CI_MOVE(R_BPL2PTH));
|
||||
CWAIT (tmp, 255,255);
|
||||
CWAIT (tmp, 255,255);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/* set new modulos FIX: doesn't support larger bitmaps. */
|
||||
tmp = find_copper_inst (cp, CI_MOVE(R_BPLMOD1));
|
||||
tmp[0].cp.inst.operand = 0xbc + v->bitmap->row_mod;
|
||||
tmp[1].cp.inst.operand = 0xbc + v->bitmap->row_mod;
|
||||
#endif
|
||||
|
||||
bcopy (this_data->frames[F_STORE_QUAD0], this_data->frames[F_STORE_QUAD1], std_a2024_copper_list_size);
|
||||
bcopy (this_data->frames[F_STORE_QUAD0], this_data->frames[F_STORE_QUAD2], std_a2024_copper_list_size);
|
||||
bcopy (this_data->frames[F_STORE_QUAD0], this_data->frames[F_STORE_QUAD3], std_a2024_copper_list_size);
|
||||
|
||||
/*
|
||||
* Mark Id's
|
||||
*/
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD1], CI_WAIT (126,21));
|
||||
CBUMP(tmp);
|
||||
CMOVE (tmp, R_COLOR01, QUAD1_ID);
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD2], CI_WAIT (126,21));
|
||||
CBUMP(tmp);
|
||||
CMOVE (tmp, R_COLOR01, QUAD2_ID);
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD3], CI_WAIT (126,21));
|
||||
CBUMP(tmp);
|
||||
CMOVE (tmp, R_COLOR01, QUAD3_ID);
|
||||
|
||||
|
||||
#define HALF_2024_LINE (512>>3)
|
||||
|
||||
plane[0]--;
|
||||
|
@ -229,6 +216,12 @@ display_a2024_view (view_t *v)
|
|||
CMOVE (tmp, R_BPL3PTH, HIADDR (PREP_DMA_MEM (&plane[1][full_line])));
|
||||
CMOVE (tmp, R_BPL3PTL, LOADDR (PREP_DMA_MEM (&plane[1][full_line])));
|
||||
}
|
||||
#if defined (GRF_ECS)
|
||||
CMOVE (tmp, R_DIWHIGH, 0x2000);
|
||||
#endif
|
||||
CMOVE (tmp, R_COP1LCH, HIADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD1])));
|
||||
CMOVE (tmp, R_COP1LCL, LOADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD1])));
|
||||
CEND (tmp); CEND (tmp);
|
||||
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD1], CI_MOVE (R_BPLMOD2));
|
||||
CBUMP(tmp);
|
||||
|
@ -242,6 +235,12 @@ display_a2024_view (view_t *v)
|
|||
CMOVE (tmp, R_BPL3PTH, HIADDR (PREP_DMA_MEM (&plane[1][full_line+HALF_2024_LINE])));
|
||||
CMOVE (tmp, R_BPL3PTL, LOADDR (PREP_DMA_MEM (&plane[1][full_line+HALF_2024_LINE])));
|
||||
}
|
||||
#if defined (GRF_ECS)
|
||||
CMOVE (tmp, R_DIWHIGH, 0x2000);
|
||||
#endif
|
||||
CMOVE (tmp, R_COP1LCH, HIADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD2])));
|
||||
CMOVE (tmp, R_COP1LCL, LOADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD2])));
|
||||
CEND (tmp); CEND (tmp);
|
||||
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD2], CI_MOVE (R_BPLMOD2));
|
||||
CBUMP(tmp);
|
||||
|
@ -255,6 +254,12 @@ display_a2024_view (view_t *v)
|
|||
CMOVE (tmp, R_BPL3PTH, HIADDR (PREP_DMA_MEM (&plane[1][half_plane+full_line])));
|
||||
CMOVE (tmp, R_BPL3PTL, LOADDR (PREP_DMA_MEM (&plane[1][half_plane+full_line])));
|
||||
}
|
||||
#if defined (GRF_ECS)
|
||||
CMOVE (tmp, R_DIWHIGH, 0x2000);
|
||||
#endif
|
||||
CMOVE (tmp, R_COP1LCH, HIADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD3])));
|
||||
CMOVE (tmp, R_COP1LCL, LOADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD3])));
|
||||
CEND (tmp); CEND (tmp);
|
||||
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD3], CI_MOVE (R_BPLMOD2));
|
||||
CBUMP(tmp);
|
||||
|
@ -268,33 +273,12 @@ display_a2024_view (view_t *v)
|
|||
CMOVE (tmp, R_BPL3PTH, HIADDR (PREP_DMA_MEM (&plane[1][half_plane+full_line+HALF_2024_LINE])));
|
||||
CMOVE (tmp, R_BPL3PTL, LOADDR (PREP_DMA_MEM (&plane[1][half_plane+full_line+HALF_2024_LINE])));
|
||||
}
|
||||
|
||||
/*
|
||||
* Mark Id's
|
||||
*/
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD1], CI_WAIT (126,21));
|
||||
CBUMP(tmp);
|
||||
CMOVE (tmp, R_COLOR01, QUAD1_ID);
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD2], CI_WAIT (126,21));
|
||||
CBUMP(tmp);
|
||||
CMOVE (tmp, R_COLOR01, QUAD2_ID);
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD3], CI_WAIT (126,21));
|
||||
CBUMP(tmp);
|
||||
CMOVE (tmp, R_COLOR01, QUAD3_ID);
|
||||
|
||||
/* set next pointers correctly */
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD0], CI_MOVE (R_COP1LCH));
|
||||
tmp[0].cp.inst.operand = HIADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD1]));
|
||||
tmp[1].cp.inst.operand = LOADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD1]));
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD1], CI_MOVE (R_COP1LCH));
|
||||
tmp[0].cp.inst.operand = HIADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD2]));
|
||||
tmp[1].cp.inst.operand = LOADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD2]));
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD2], CI_MOVE (R_COP1LCH));
|
||||
tmp[0].cp.inst.operand = HIADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD3]));
|
||||
tmp[1].cp.inst.operand = LOADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD3]));
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD3], CI_MOVE (R_COP1LCH));
|
||||
tmp[0].cp.inst.operand = HIADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD0]));
|
||||
tmp[1].cp.inst.operand = LOADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD0]));
|
||||
#if defined (GRF_ECS)
|
||||
CMOVE (tmp, R_DIWHIGH, 0x2000);
|
||||
#endif
|
||||
CMOVE (tmp, R_COP1LCH, HIADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD0])));
|
||||
CMOVE (tmp, R_COP1LCL, LOADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD0])));
|
||||
CEND (tmp); CEND (tmp);
|
||||
|
||||
/* swap new pointers in. */
|
||||
for (i = F_STORE_QUAD0, j = F_QUAD0;
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
* (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: grf_cc_global.c,v 1.2 1994/01/29 07:00:19 chopps Exp $
|
||||
* $Id: grf_cc_global.c,v 1.3 1994/01/30 08:25:04 chopps Exp $
|
||||
*/
|
||||
|
||||
#include "grf_cc_priv.h"
|
||||
|
@ -39,6 +39,7 @@ 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 },
|
||||
|
@ -84,6 +85,7 @@ 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 },
|
||||
|
@ -115,13 +117,21 @@ cop_t std_dlace_copper_list[] = {
|
|||
{ 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. */
|
||||
|
@ -131,7 +141,7 @@ cop_t std_a2024_copper_list[] = {
|
|||
{ CI_WAIT(190,21), 0xfffe }, { R_COLOR01, 0x0ff1 }, /* Stuff2 */
|
||||
{ CI_WAIT(0,22), 0xfffe },
|
||||
{ R_COLOR00, 0x0000 }, { R_BPLCON0, 0x0000 },
|
||||
{ CI_WAIT(0,42), 0xfffe },
|
||||
{ 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 },
|
||||
|
@ -152,13 +162,71 @@ cop_t std_a2024_copper_list[] = {
|
|||
{ 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);
|
||||
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_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);
|
||||
|
||||
#endif /* GRF_A2024 */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
* (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: grf_cc_h_mode.c,v 1.2 1994/01/29 07:00:20 chopps Exp $
|
||||
* $Id: grf_cc_h_mode.c,v 1.3 1994/01/30 08:25:05 chopps Exp $
|
||||
*/
|
||||
|
||||
#if defined (GRF_NTSC)
|
||||
|
@ -67,7 +67,7 @@ cc_init_ntsc_hires (void)
|
|||
this->nominal_size.width = 640;
|
||||
this->nominal_size.height = 200;
|
||||
this_data->max_size.width = 724;
|
||||
this_data->max_size.height = 241;
|
||||
this_data->max_size.height = 242;
|
||||
this_data->min_size.width = 320;
|
||||
this_data->min_size.height = 100;
|
||||
this_data->min_depth = 1;
|
||||
|
@ -95,7 +95,7 @@ cc_init_ntsc_hires (void)
|
|||
bcopy (std_copper_list, this_data->frames[F_STORE_LONG], std_copper_list_size);
|
||||
bcopy (std_copper_list, this_data->frames[F_LONG], std_copper_list_size);
|
||||
|
||||
this_data->bplcon0 = 0x8200; /* hires, color composite enable, lace. */
|
||||
this_data->bplcon0 = 0x8200|USE_CON3; /* hires, color composite enable, lace. */
|
||||
this_data->std_start_x = STANDARD_VIEW_X;
|
||||
this_data->std_start_y = STANDARD_VIEW_Y;
|
||||
this_data->vbl_handler = (vbl_handler_func *) hires_mode_vbl_handler;
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
* (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: grf_cc_hdl_mode.c,v 1.2 1994/01/29 07:00:22 chopps Exp $
|
||||
* $Id: grf_cc_hdl_mode.c,v 1.3 1994/01/30 08:25:06 chopps Exp $
|
||||
*/
|
||||
|
||||
#if defined (GRF_A2024) && defined (GRF_NTSC)
|
||||
|
@ -111,7 +111,7 @@ cc_init_ntsc_hires_dlace (void)
|
|||
bcopy (std_dlace_copper_list, this_data->frames[F_LONG], std_dlace_copper_list_size);
|
||||
bcopy (std_dlace_copper_list, this_data->frames[F_SHORT], std_dlace_copper_list_size);
|
||||
|
||||
this_data->bplcon0 = 0x8204; /* hires, color composite enable, dlace. */
|
||||
this_data->bplcon0 = 0x8204|USE_CON3; /* hires, color composite enable, dlace. */
|
||||
this_data->std_start_x = STANDARD_VIEW_X;
|
||||
this_data->std_start_y = STANDARD_VIEW_Y;
|
||||
this_data->vbl_handler = (vbl_handler_func *) hires_dlace_mode_vbl_handler;
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
* (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: grf_cc_hl_mode.c,v 1.2 1994/01/29 07:00:24 chopps Exp $
|
||||
* $Id: grf_cc_hl_mode.c,v 1.3 1994/01/30 08:25:08 chopps Exp $
|
||||
*/
|
||||
#if defined (GRF_NTSC)
|
||||
|
||||
|
@ -102,7 +102,7 @@ cc_init_ntsc_hires_lace (void)
|
|||
bcopy (std_copper_list, this_data->frames[F_LONG], std_copper_list_size);
|
||||
bcopy (std_copper_list, this_data->frames[F_SHORT], std_copper_list_size);
|
||||
|
||||
this_data->bplcon0 = 0x8204; /* hires, color composite enable, lace. */
|
||||
this_data->bplcon0 = 0x8204|USE_CON3; /* hires, color composite enable, lace. */
|
||||
this_data->std_start_x = STANDARD_VIEW_X;
|
||||
this_data->std_start_y = STANDARD_VIEW_Y;
|
||||
this_data->vbl_handler = (vbl_handler_func *) hires_lace_mode_vbl_handler;
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
* (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: grf_cc_mode.c,v 1.2 1994/01/29 07:00:26 chopps Exp $
|
||||
* $Id: grf_cc_mode.c,v 1.3 1994/01/30 08:25:09 chopps Exp $
|
||||
*/
|
||||
#include "errno.h"
|
||||
#include "grf_cc_priv.h"
|
||||
|
@ -50,6 +50,7 @@ dmode_t *(*mode_init_funcs[])(void) = {
|
|||
#endif /* GRF_NTSC */
|
||||
#if defined (GRF_PAL)
|
||||
#if defined (GRF_A2024)
|
||||
cc_init_pal_a2024,
|
||||
cc_init_pal_hires_dlace,
|
||||
#endif /* GRF_A2024 */
|
||||
cc_init_pal_hires_lace,
|
||||
|
@ -149,7 +150,7 @@ cc_alloc_colormap (int depth)
|
|||
cm->blue_mask = 0x0F;
|
||||
cm->first = 0;
|
||||
cm->size = size;
|
||||
cm->entry = &cm[1]; /* table directly after. */
|
||||
cm->entry = (u_long *) &cm[1]; /* table directly after. */
|
||||
for (i=0; i < min(size,32); i++) {
|
||||
cm->entry[i] = CM_WTOL(cc_default_colors[i]);
|
||||
}
|
||||
|
@ -170,7 +171,7 @@ cc_a2024_alloc_colormap (int depth)
|
|||
cm->grey_mask = 0x03;
|
||||
cm->first = 0;
|
||||
cm->size = size;
|
||||
cm->entry = &cm[1]; /* table directly after. */
|
||||
cm->entry = (u_long *) &cm[1]; /* table directly after. */
|
||||
for (i=0; i < size; i++) {
|
||||
cm->entry[i] = CM_WTOL(cc_a2024_default_colors[i]);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,324 @@
|
|||
/*
|
||||
* Copyright (c) 1993 Christian E. Hopps
|
||||
* All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to Berkeley by
|
||||
* Christian E. Hopps.
|
||||
*
|
||||
* 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 the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
|
||||
*
|
||||
*/
|
||||
#if defined (GRF_A2024) && defined (GRF_PAL)
|
||||
|
||||
#include "grf_cc_priv.h"
|
||||
#include "../../../amiga/cc_2024.h"
|
||||
|
||||
#if defined (AMIGA_TEST)
|
||||
#define DEBUG
|
||||
#include <debug.h>
|
||||
#else
|
||||
#define D(x)
|
||||
#endif
|
||||
|
||||
static void pal_a2024_mode_vbl_handler (dmode_t *d);
|
||||
static void display_pal_a2024_view (view_t *v);
|
||||
static view_t *get_current_view (dmode_t *d);
|
||||
|
||||
/* -------
|
||||
* |0 |1 |
|
||||
* |------
|
||||
* |2 |3 |
|
||||
* -------
|
||||
*/
|
||||
|
||||
#define QUAD0_ID 0x0001
|
||||
#define QUAD1_ID 0x00f1
|
||||
#define QUAD2_ID 0x0f01
|
||||
#define QUAD3_ID 0x0ff1
|
||||
|
||||
/* display order Q0 -> Q2 -> Q1 -> Q3 ---> */
|
||||
|
||||
enum frame_numbers {
|
||||
F_QUAD0, F_QUAD1, F_QUAD2, F_QUAD3,
|
||||
F_STORE_QUAD0, F_STORE_QUAD1, F_STORE_QUAD2, F_STORE_QUAD3,
|
||||
F_TOTAL
|
||||
};
|
||||
|
||||
static dmode_t pal_a2024_mode;
|
||||
static dmdata_t pal_a2024_mode_data;
|
||||
static cop_t *pal_a2024_frames[F_TOTAL];
|
||||
static u_byte *hedley_init; /* init bitplane. */
|
||||
static dmode_t *this;
|
||||
static dmdata_t *this_data;
|
||||
|
||||
dmode_t *
|
||||
cc_init_pal_a2024 (void)
|
||||
{
|
||||
/* this function should only be called once. */
|
||||
if (!this) {
|
||||
int i;
|
||||
u_word len = std_pal_a2024_copper_list_len;
|
||||
cop_t *cp;
|
||||
|
||||
this = &pal_a2024_mode;
|
||||
this_data = &pal_a2024_mode_data;
|
||||
bzero (this, sizeof (dmode_t));
|
||||
bzero (this_data, sizeof (dmdata_t));
|
||||
|
||||
this->name = "pal: A2024 15khz";
|
||||
this->nominal_size.width = 1024;
|
||||
this->nominal_size.height = 1024;
|
||||
this_data->max_size.width = 1024;
|
||||
this_data->max_size.height = 1024;
|
||||
this_data->min_size.width = 1024;
|
||||
this_data->min_size.height = 1024;
|
||||
this_data->min_depth = 1;
|
||||
this_data->max_depth = 2;
|
||||
this->data = this_data;
|
||||
|
||||
this->get_monitor = cc_get_monitor;
|
||||
this->alloc_view = cc_alloc_view;
|
||||
this->get_current_view = get_current_view;
|
||||
|
||||
this_data->use_colormap = cc_a2024_use_colormap;
|
||||
this_data->get_colormap = cc_a2024_get_colormap;
|
||||
this_data->display_view = display_pal_a2024_view;
|
||||
this_data->alloc_colormap = cc_a2024_alloc_colormap;
|
||||
this_data->monitor = cc_monitor;
|
||||
|
||||
this_data->flags |= DMF_HEDLEY_EXP;
|
||||
|
||||
this_data->frames = pal_a2024_frames;
|
||||
this_data->frames[F_QUAD0] = alloc_chipmem (std_pal_a2024_copper_list_size*F_TOTAL);
|
||||
if (!this_data->frames[F_QUAD0]) {
|
||||
panic ("couldn't get chipmem for copper list");
|
||||
}
|
||||
|
||||
/* setup the hedley init bitplane. */
|
||||
hedley_init = alloc_chipmem (128);
|
||||
if (!hedley_init) {
|
||||
panic ("couldn't get chipmem for hedley init bitplane");
|
||||
}
|
||||
for (i = 1; i < 128; i++) hedley_init[i] = 0xff;
|
||||
hedley_init[0] = 0x03;
|
||||
|
||||
/* copy image of standard copper list. */
|
||||
bcopy (std_pal_a2024_copper_list, this_data->frames[0], std_pal_a2024_copper_list_size);
|
||||
|
||||
/* set the init plane pointer. */
|
||||
cp = find_copper_inst (this_data->frames[F_QUAD0], CI_MOVE(R_BPL0PTH));
|
||||
cp[0].cp.inst.operand = HIADDR (PREP_DMA_MEM (hedley_init));
|
||||
cp[1].cp.inst.operand = LOADDR (PREP_DMA_MEM (hedley_init));
|
||||
|
||||
for (i = 1; i < F_TOTAL; i++) {
|
||||
this_data->frames[i] = &this_data->frames[i-1][len];
|
||||
bcopy (this_data->frames[0], this_data->frames[i], std_pal_a2024_copper_list_size);
|
||||
}
|
||||
|
||||
this_data->bplcon0 = 0x8200; /* hires */
|
||||
this_data->vbl_handler = (vbl_handler_func *) pal_a2024_mode_vbl_handler;
|
||||
|
||||
|
||||
dadd_head (&MDATA(cc_monitor)->modes, &this->node);
|
||||
}
|
||||
return (this);
|
||||
}
|
||||
|
||||
static void
|
||||
display_pal_a2024_view (view_t *v)
|
||||
{
|
||||
if (this_data->current_view != v) {
|
||||
vdata_t *vd = VDATA(v);
|
||||
monitor_t *monitor = this_data->monitor;
|
||||
cop_t *cp, *tmp;
|
||||
u_byte *inst_plane[2];
|
||||
u_byte **plane = inst_plane;
|
||||
u_long full_line = v->bitmap->bytes_per_row+v->bitmap->row_mod;
|
||||
u_long half_plane = full_line * v->bitmap->rows / 2;
|
||||
|
||||
int line_mod = 0xbc; /* standard 2024 15khz mod. */
|
||||
int depth = v->bitmap->depth, i, j;
|
||||
|
||||
plane[0] = v->bitmap->plane[0];
|
||||
if (depth == 2) {
|
||||
plane[1] = v->bitmap->plane[1];
|
||||
}
|
||||
|
||||
if (this_data->current_view) {
|
||||
VDATA(this_data->current_view)->flags &= ~VF_DISPLAY; /* mark as no longer displayed. */
|
||||
}
|
||||
|
||||
cp = this_data->frames[F_STORE_QUAD0];
|
||||
tmp = find_copper_inst (cp, CI_MOVE(R_COLOR1F));
|
||||
tmp = find_copper_inst (tmp, CI_MOVE(R_BPLCON0)); /* grab third one. */
|
||||
tmp->cp.inst.operand = this_data->bplcon0 | ((depth & 0x7) << 13); /* times 2 */
|
||||
|
||||
bcopy (this_data->frames[F_STORE_QUAD0], this_data->frames[F_STORE_QUAD1], std_pal_a2024_copper_list_size);
|
||||
bcopy (this_data->frames[F_STORE_QUAD0], this_data->frames[F_STORE_QUAD2], std_pal_a2024_copper_list_size);
|
||||
bcopy (this_data->frames[F_STORE_QUAD0], this_data->frames[F_STORE_QUAD3], std_pal_a2024_copper_list_size);
|
||||
|
||||
/*
|
||||
* Mark Id's
|
||||
*/
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD1], CI_WAIT (126,29));
|
||||
CBUMP(tmp);
|
||||
CMOVE (tmp, R_COLOR01, QUAD1_ID);
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD2], CI_WAIT (126,29));
|
||||
CBUMP(tmp);
|
||||
CMOVE (tmp, R_COLOR01, QUAD2_ID);
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD3], CI_WAIT (126,29));
|
||||
CBUMP(tmp);
|
||||
CMOVE (tmp, R_COLOR01, QUAD3_ID);
|
||||
|
||||
|
||||
#define HALF_2024_LINE (512>>3)
|
||||
|
||||
plane[0]--;
|
||||
plane[0]--;
|
||||
if (depth == 2) {
|
||||
plane[1]--;
|
||||
plane[1]--;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set bitplane pointers.
|
||||
*/
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD0], CI_MOVE (R_BPLMOD2));
|
||||
CBUMP(tmp);
|
||||
CMOVE (tmp, R_BPL0PTH, HIADDR (PREP_DMA_MEM (&plane[0][0])));
|
||||
CMOVE (tmp, R_BPL0PTL, LOADDR (PREP_DMA_MEM (&plane[0][0])));
|
||||
CMOVE (tmp, R_BPL1PTH, HIADDR (PREP_DMA_MEM (&plane[0][full_line])));
|
||||
CMOVE (tmp, R_BPL1PTL, LOADDR (PREP_DMA_MEM (&plane[0][full_line])));
|
||||
if (depth == 2) {
|
||||
CMOVE (tmp, R_BPL2PTH, HIADDR (PREP_DMA_MEM (&plane[1][0])));
|
||||
CMOVE (tmp, R_BPL2PTL, LOADDR (PREP_DMA_MEM (&plane[1][0])));
|
||||
CMOVE (tmp, R_BPL3PTH, HIADDR (PREP_DMA_MEM (&plane[1][full_line])));
|
||||
CMOVE (tmp, R_BPL3PTL, LOADDR (PREP_DMA_MEM (&plane[1][full_line])));
|
||||
}
|
||||
#if defined (GRF_ECS)
|
||||
CMOVE (tmp, R_DIWHIGH, 0x2100);
|
||||
#endif
|
||||
CMOVE (tmp, R_COP1LCH, HIADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD1])));
|
||||
CMOVE (tmp, R_COP1LCL, LOADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD1])));
|
||||
CEND (tmp); CEND (tmp);
|
||||
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD1], CI_MOVE (R_BPLMOD2));
|
||||
CBUMP(tmp);
|
||||
CMOVE (tmp, R_BPL0PTH, HIADDR (PREP_DMA_MEM (&plane[0][HALF_2024_LINE])));
|
||||
CMOVE (tmp, R_BPL0PTL, LOADDR (PREP_DMA_MEM (&plane[0][HALF_2024_LINE])));
|
||||
CMOVE (tmp, R_BPL1PTH, HIADDR (PREP_DMA_MEM (&plane[0][full_line+HALF_2024_LINE])));
|
||||
CMOVE (tmp, R_BPL1PTL, LOADDR (PREP_DMA_MEM (&plane[0][full_line+HALF_2024_LINE])));
|
||||
if (depth == 2) {
|
||||
CMOVE (tmp, R_BPL2PTH, HIADDR (PREP_DMA_MEM (&plane[1][HALF_2024_LINE])));
|
||||
CMOVE (tmp, R_BPL2PTL, LOADDR (PREP_DMA_MEM (&plane[1][HALF_2024_LINE])));
|
||||
CMOVE (tmp, R_BPL3PTH, HIADDR (PREP_DMA_MEM (&plane[1][full_line+HALF_2024_LINE])));
|
||||
CMOVE (tmp, R_BPL3PTL, LOADDR (PREP_DMA_MEM (&plane[1][full_line+HALF_2024_LINE])));
|
||||
}
|
||||
#if defined (GRF_ECS)
|
||||
CMOVE (tmp, R_DIWHIGH, 0x2100);
|
||||
#endif
|
||||
CMOVE (tmp, R_COP1LCH, HIADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD2])));
|
||||
CMOVE (tmp, R_COP1LCL, LOADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD2])));
|
||||
CEND (tmp); CEND (tmp);
|
||||
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD2], CI_MOVE (R_BPLMOD2));
|
||||
CBUMP(tmp);
|
||||
CMOVE (tmp, R_BPL0PTH, HIADDR (PREP_DMA_MEM (&plane[0][half_plane])));
|
||||
CMOVE (tmp, R_BPL0PTL, LOADDR (PREP_DMA_MEM (&plane[0][half_plane])));
|
||||
CMOVE (tmp, R_BPL1PTH, HIADDR (PREP_DMA_MEM (&plane[0][half_plane+full_line])));
|
||||
CMOVE (tmp, R_BPL1PTL, LOADDR (PREP_DMA_MEM (&plane[0][half_plane+full_line])));
|
||||
if (depth == 2) {
|
||||
CMOVE (tmp, R_BPL2PTH, HIADDR (PREP_DMA_MEM (&plane[1][half_plane])));
|
||||
CMOVE (tmp, R_BPL2PTL, LOADDR (PREP_DMA_MEM (&plane[1][half_plane])));
|
||||
CMOVE (tmp, R_BPL3PTH, HIADDR (PREP_DMA_MEM (&plane[1][half_plane+full_line])));
|
||||
CMOVE (tmp, R_BPL3PTL, LOADDR (PREP_DMA_MEM (&plane[1][half_plane+full_line])));
|
||||
}
|
||||
#if defined (GRF_ECS)
|
||||
CMOVE (tmp, R_DIWHIGH, 0x2100);
|
||||
#endif
|
||||
CMOVE (tmp, R_COP1LCH, HIADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD3])));
|
||||
CMOVE (tmp, R_COP1LCL, LOADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD3])));
|
||||
CEND (tmp); CEND (tmp);
|
||||
|
||||
tmp = find_copper_inst (this_data->frames[F_STORE_QUAD3], CI_MOVE (R_BPLMOD2));
|
||||
CBUMP(tmp);
|
||||
CMOVE (tmp, R_BPL0PTH, HIADDR (PREP_DMA_MEM (&plane[0][half_plane+HALF_2024_LINE])));
|
||||
CMOVE (tmp, R_BPL0PTL, LOADDR (PREP_DMA_MEM (&plane[0][half_plane+HALF_2024_LINE])));
|
||||
CMOVE (tmp, R_BPL1PTH, HIADDR (PREP_DMA_MEM (&plane[0][half_plane+full_line+HALF_2024_LINE])));
|
||||
CMOVE (tmp, R_BPL1PTL, LOADDR (PREP_DMA_MEM (&plane[0][half_plane+full_line+HALF_2024_LINE])));
|
||||
if (depth == 2) {
|
||||
CMOVE (tmp, R_BPL2PTH, HIADDR (PREP_DMA_MEM (&plane[1][half_plane+HALF_2024_LINE])));
|
||||
CMOVE (tmp, R_BPL2PTL, LOADDR (PREP_DMA_MEM (&plane[1][half_plane+HALF_2024_LINE])));
|
||||
CMOVE (tmp, R_BPL3PTH, HIADDR (PREP_DMA_MEM (&plane[1][half_plane+full_line+HALF_2024_LINE])));
|
||||
CMOVE (tmp, R_BPL3PTL, LOADDR (PREP_DMA_MEM (&plane[1][half_plane+full_line+HALF_2024_LINE])));
|
||||
}
|
||||
#if defined (GRF_ECS)
|
||||
CMOVE (tmp, R_DIWHIGH, 0x2100);
|
||||
#endif
|
||||
CMOVE (tmp, R_COP1LCH, HIADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD0])));
|
||||
CMOVE (tmp, R_COP1LCL, LOADDR (PREP_DMA_MEM (this_data->frames[F_STORE_QUAD0])));
|
||||
CEND (tmp); CEND (tmp);
|
||||
|
||||
/* swap new pointers in. */
|
||||
for (i = F_STORE_QUAD0, j = F_QUAD0;
|
||||
i <= F_STORE_QUAD3; i++, j++) {
|
||||
cp = this_data->frames[j];
|
||||
this_data->frames[j] = this_data->frames[i];
|
||||
this_data->frames[i] = cp;
|
||||
}
|
||||
|
||||
this_data->current_view = v;
|
||||
vd->flags |= VF_DISPLAY;
|
||||
|
||||
cc_a2024_use_colormap (v, vd->colormap);
|
||||
}
|
||||
cc_load_mode (this);
|
||||
}
|
||||
|
||||
static view_t *
|
||||
get_current_view (dmode_t *d)
|
||||
{
|
||||
return (this_data->current_view);
|
||||
}
|
||||
|
||||
static void
|
||||
pal_a2024_mode_vbl_handler (dmode_t *d)
|
||||
{
|
||||
u_word vp = ((custom.vposr & 0x0007) << 8) | ((custom.vhposr) >> 8);
|
||||
|
||||
if (vp < 20) {
|
||||
custom.cop1lc = PREP_DMA_MEM (this_data->frames[this_data->hedley_current]);
|
||||
custom.copjmp1 = 0;
|
||||
}
|
||||
this_data->hedley_current++;
|
||||
this_data->hedley_current &= 0x3; /* if 4 then 0. */
|
||||
}
|
||||
|
||||
#endif /* GRF_A2024 & GRF_PAL */
|
||||
|
|
@ -27,7 +27,7 @@
|
|||
* (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: grf_cc_ph_mode.c,v 1.2 1994/01/29 07:00:28 chopps Exp $
|
||||
* $Id: grf_cc_ph_mode.c,v 1.3 1994/01/30 08:25:11 chopps Exp $
|
||||
*/
|
||||
#if defined (GRF_PAL)
|
||||
|
||||
|
@ -66,9 +66,9 @@ cc_init_pal_hires (void)
|
|||
this->nominal_size.width = 640;
|
||||
this->nominal_size.height = 256;
|
||||
this_data->max_size.width = 724;
|
||||
this_data->max_size.height = 283;
|
||||
this_data->max_size.height = 289;
|
||||
this_data->min_size.width = 320;
|
||||
this_data->min_size.height = 128;
|
||||
this_data->min_size.height = 244;
|
||||
this_data->min_depth = 1;
|
||||
this_data->max_depth = 4;
|
||||
this->data = this_data;
|
||||
|
@ -94,7 +94,7 @@ cc_init_pal_hires (void)
|
|||
bcopy (std_copper_list, this_data->frames[F_STORE_LONG], std_copper_list_size);
|
||||
bcopy (std_copper_list, this_data->frames[F_LONG], std_copper_list_size);
|
||||
|
||||
this_data->bplcon0 = 0x8200; /* pal_hires, color composite enable, lace. */
|
||||
this_data->bplcon0 = 0x8200|USE_CON3; /* pal_hires, color composite enable, lace. */
|
||||
this_data->std_start_x = STANDARD_VIEW_X;
|
||||
this_data->std_start_y = STANDARD_VIEW_Y;
|
||||
this_data->vbl_handler = (vbl_handler_func *) pal_hires_mode_vbl_handler;
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
* (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: grf_cc_phdl_mode.c,v 1.2 1994/01/29 07:00:30 chopps Exp $
|
||||
* $Id: grf_cc_phdl_mode.c,v 1.3 1994/01/30 08:25:12 chopps Exp $
|
||||
*/
|
||||
#if defined (GRF_A2024) && defined (GRF_PAL)
|
||||
|
||||
|
@ -110,7 +110,7 @@ cc_init_pal_hires_dlace (void)
|
|||
bcopy (std_dlace_copper_list, this_data->frames[F_LONG], std_dlace_copper_list_size);
|
||||
bcopy (std_dlace_copper_list, this_data->frames[F_SHORT], std_dlace_copper_list_size);
|
||||
|
||||
this_data->bplcon0 = 0x8204; /* hires, color composite enable, dlace. */
|
||||
this_data->bplcon0 = 0x8204|USE_CON3; /* hires, color composite enable, dlace. */
|
||||
this_data->std_start_x = STANDARD_VIEW_X;
|
||||
this_data->std_start_y = STANDARD_VIEW_Y;
|
||||
this_data->vbl_handler = (vbl_handler_func *) pal_hires_dlace_mode_vbl_handler;
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
* (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: grf_cc_phl_mode.c,v 1.2 1994/01/29 07:00:32 chopps Exp $
|
||||
* $Id: grf_cc_phl_mode.c,v 1.3 1994/01/30 08:25:14 chopps Exp $
|
||||
*/
|
||||
#if defined (GRF_PAL)
|
||||
|
||||
|
@ -68,9 +68,9 @@ cc_init_pal_hires_lace (void)
|
|||
this->nominal_size.width = 640;
|
||||
this->nominal_size.height = 512;
|
||||
this_data->max_size.width = 724;
|
||||
this_data->max_size.height = 566;
|
||||
this_data->max_size.height = 578;
|
||||
this_data->min_size.width = 320;
|
||||
this_data->min_size.height = 256;
|
||||
this_data->min_size.height = 484;
|
||||
this_data->min_depth = 1;
|
||||
this_data->max_depth = 4;
|
||||
this->data = this_data;
|
||||
|
@ -102,7 +102,7 @@ cc_init_pal_hires_lace (void)
|
|||
bcopy (std_copper_list, this_data->frames[F_LONG], std_copper_list_size);
|
||||
bcopy (std_copper_list, this_data->frames[F_SHORT], std_copper_list_size);
|
||||
|
||||
this_data->bplcon0 = 0x8204; /* hires, color composite enable, lace. */
|
||||
this_data->bplcon0 = 0x8204|USE_CON3; /* hires, color composite enable, lace. */
|
||||
this_data->std_start_x = STANDARD_VIEW_X;
|
||||
this_data->std_start_y = STANDARD_VIEW_Y;
|
||||
this_data->vbl_handler = (vbl_handler_func *) pal_hires_lace_mode_vbl_handler;
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
* (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: grf_cc_priv.h,v 1.2 1994/01/29 07:00:34 chopps Exp $
|
||||
* $Id: grf_cc_priv.h,v 1.3 1994/01/30 08:25:16 chopps Exp $
|
||||
*/
|
||||
|
||||
#if ! defined (_GRF_CCPRIV_H)
|
||||
|
@ -150,6 +150,12 @@ int cc_a2024_use_colormap (view_t *v, colormap_t *);
|
|||
int cc_a2024_get_colormap (view_t *v, colormap_t *);
|
||||
colormap_t * cc_a2024_alloc_colormap (int);
|
||||
|
||||
#if defined (GRF_PAL)
|
||||
extern cop_t std_pal_a2024_copper_list[];
|
||||
extern int std_pal_a2024_copper_list_len;
|
||||
extern int std_pal_a2024_copper_list_size;
|
||||
#endif
|
||||
|
||||
extern cop_t std_a2024_copper_list[];
|
||||
extern int std_a2024_copper_list_len;
|
||||
extern int std_a2024_copper_list_size;
|
||||
|
@ -173,6 +179,9 @@ extern monitor_t *cc_monitor;
|
|||
#if defined (GRF_ECS)
|
||||
#define CALC_DIWHIGH(hs, vs, he, ve) \
|
||||
((u_word)((he&0x100)<<5)|(ve&0x700)|((hs&0x100)>>3)|((vs&0x700)>>8))
|
||||
#define USE_CON3 0x0001
|
||||
#else
|
||||
#define USE_CON3 0x0
|
||||
#endif
|
||||
|
||||
#endif /* _GRF_CCPRIV_H */
|
||||
|
|
Loading…
Reference in New Issue