mirror of
https://github.com/mauiaaron/apple2.git
synced 2024-09-29 23:54:53 +00:00
Refactor hires table initializations
This commit is contained in:
parent
83da4c11af
commit
95ff4adb08
114
src/display.c
114
src/display.c
@ -34,8 +34,6 @@ uint8_t video__columns[8192];
|
|||||||
|
|
||||||
uint8_t *video__fb1,*video__fb2;
|
uint8_t *video__fb1,*video__fb2;
|
||||||
|
|
||||||
uint8_t video__wider_hires_even[0x1000];
|
|
||||||
uint8_t video__wider_hires_odd[0x1000];
|
|
||||||
uint8_t video__hires_even[0x800];
|
uint8_t video__hires_even[0x800];
|
||||||
uint8_t video__hires_odd[0x800];
|
uint8_t video__hires_odd[0x800];
|
||||||
|
|
||||||
@ -157,38 +155,36 @@ static void c_initialize_hires_values(void)
|
|||||||
int value, b, v, e, /*color_toggle,*/ last_not_black;
|
int value, b, v, e, /*color_toggle,*/ last_not_black;
|
||||||
|
|
||||||
/* precalculate the colors for all the 256*8 bit combinations. */
|
/* precalculate the colors for all the 256*8 bit combinations. */
|
||||||
for (value = 0x00; value <= 0xFF; value++)
|
for (value = 0x00; value <= 0xFF; value++) {
|
||||||
{
|
for (e = value * 8, last_not_black = 0, v = value, b = 0; b < 7; b++, v >>= 1, e++) {
|
||||||
for (e = value * 8, last_not_black = 0, v = value, b = 0;
|
if (v & 1) {
|
||||||
b < 7; b++, v >>= 1, e++)
|
if (last_not_black) {
|
||||||
{
|
video__hires_even[e] = COLOR_LIGHT_WHITE;
|
||||||
if (v & 1)
|
video__hires_odd[e] = COLOR_LIGHT_WHITE;
|
||||||
{
|
if (b > 0)
|
||||||
video__hires_even[ e ] = last_not_black ?
|
|
||||||
COLOR_LIGHT_WHITE :
|
|
||||||
((b & 1) ?
|
|
||||||
((value & 0x80) ?
|
|
||||||
COLOR_LIGHT_RED :
|
|
||||||
COLOR_LIGHT_GREEN) :
|
|
||||||
((value & 0x80) ?
|
|
||||||
COLOR_LIGHT_BLUE :
|
|
||||||
COLOR_LIGHT_PURPLE));
|
|
||||||
|
|
||||||
video__hires_odd[ e ] = last_not_black ?
|
|
||||||
COLOR_LIGHT_WHITE :
|
|
||||||
((b & 1) ?
|
|
||||||
((value & 0x80) ?
|
|
||||||
COLOR_LIGHT_BLUE :
|
|
||||||
COLOR_LIGHT_PURPLE) :
|
|
||||||
((value & 0x80) ?
|
|
||||||
COLOR_LIGHT_RED :
|
|
||||||
COLOR_LIGHT_GREEN));
|
|
||||||
|
|
||||||
if (last_not_black && b > 0)
|
|
||||||
{
|
{
|
||||||
video__hires_even[ e - 1 ] = COLOR_LIGHT_WHITE,
|
video__hires_even[ e - 1 ] = COLOR_LIGHT_WHITE,
|
||||||
video__hires_odd[ e - 1 ] = COLOR_LIGHT_WHITE;
|
video__hires_odd[ e - 1 ] = COLOR_LIGHT_WHITE;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if (b & 1) {
|
||||||
|
if (value & 0x80) {
|
||||||
|
video__hires_even[e] = COLOR_LIGHT_RED;
|
||||||
|
video__hires_odd[e] = COLOR_LIGHT_BLUE;
|
||||||
|
} else {
|
||||||
|
video__hires_even[e] = COLOR_LIGHT_GREEN;
|
||||||
|
video__hires_odd[e] = COLOR_LIGHT_PURPLE;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (value & 0x80) {
|
||||||
|
video__hires_even[e] = COLOR_LIGHT_BLUE;
|
||||||
|
video__hires_odd[e] = COLOR_LIGHT_RED;
|
||||||
|
} else {
|
||||||
|
video__hires_even[e] = COLOR_LIGHT_PURPLE;
|
||||||
|
video__hires_odd[e] = COLOR_LIGHT_GREEN;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
last_not_black = 1;
|
last_not_black = 1;
|
||||||
}
|
}
|
||||||
@ -232,8 +228,7 @@ static void c_initialize_hires_values(void)
|
|||||||
video__hires_even[e-1] != COLOR_LIGHT_WHITE &&
|
video__hires_even[e-1] != COLOR_LIGHT_WHITE &&
|
||||||
video__hires_even[e+1] != COLOR_LIGHT_WHITE)
|
video__hires_even[e+1] != COLOR_LIGHT_WHITE)
|
||||||
{
|
{
|
||||||
video__hires_even[e] =
|
video__hires_even[e] = video__hires_even[e-1];
|
||||||
video__hires_even[e-1];
|
|
||||||
}
|
}
|
||||||
else if (
|
else if (
|
||||||
video__hires_even[e-1] != COLOR_BLACK &&
|
video__hires_even[e-1] != COLOR_BLACK &&
|
||||||
@ -241,8 +236,7 @@ static void c_initialize_hires_values(void)
|
|||||||
video__hires_even[e-1] != COLOR_LIGHT_WHITE &&
|
video__hires_even[e-1] != COLOR_LIGHT_WHITE &&
|
||||||
video__hires_even[e+1] == COLOR_LIGHT_WHITE)
|
video__hires_even[e+1] == COLOR_LIGHT_WHITE)
|
||||||
{
|
{
|
||||||
video__hires_even[e] =
|
video__hires_even[e] = video__hires_even[e-1];
|
||||||
video__hires_even[e-1];
|
|
||||||
}
|
}
|
||||||
else if (
|
else if (
|
||||||
video__hires_even[e-1] != COLOR_BLACK &&
|
video__hires_even[e-1] != COLOR_BLACK &&
|
||||||
@ -250,15 +244,13 @@ static void c_initialize_hires_values(void)
|
|||||||
video__hires_even[e-1] == COLOR_LIGHT_WHITE &&
|
video__hires_even[e-1] == COLOR_LIGHT_WHITE &&
|
||||||
video__hires_even[e+1] != COLOR_LIGHT_WHITE)
|
video__hires_even[e+1] != COLOR_LIGHT_WHITE)
|
||||||
{
|
{
|
||||||
video__hires_even[e] =
|
video__hires_even[e] = video__hires_even[e+1];
|
||||||
video__hires_even[e+1];
|
|
||||||
}
|
}
|
||||||
else if (
|
else if (
|
||||||
video__hires_even[e-1] == COLOR_LIGHT_WHITE &&
|
video__hires_even[e-1] == COLOR_LIGHT_WHITE &&
|
||||||
video__hires_even[e+1] == COLOR_LIGHT_WHITE)
|
video__hires_even[e+1] == COLOR_LIGHT_WHITE)
|
||||||
{
|
{
|
||||||
video__hires_even[e] = (value & 0x80)
|
video__hires_even[e] = (value & 0x80) ? COLOR_LIGHT_BLUE : COLOR_LIGHT_PURPLE;
|
||||||
? COLOR_LIGHT_BLUE : COLOR_LIGHT_PURPLE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -270,8 +262,7 @@ static void c_initialize_hires_values(void)
|
|||||||
video__hires_odd[e-1] != COLOR_LIGHT_WHITE &&
|
video__hires_odd[e-1] != COLOR_LIGHT_WHITE &&
|
||||||
video__hires_odd[e+1] != COLOR_LIGHT_WHITE)
|
video__hires_odd[e+1] != COLOR_LIGHT_WHITE)
|
||||||
{
|
{
|
||||||
video__hires_odd[e] =
|
video__hires_odd[e] = video__hires_odd[e-1];
|
||||||
video__hires_odd[e-1];
|
|
||||||
}
|
}
|
||||||
else if (
|
else if (
|
||||||
video__hires_odd[e-1] != COLOR_BLACK &&
|
video__hires_odd[e-1] != COLOR_BLACK &&
|
||||||
@ -279,8 +270,7 @@ static void c_initialize_hires_values(void)
|
|||||||
video__hires_odd[e-1] != COLOR_LIGHT_WHITE &&
|
video__hires_odd[e-1] != COLOR_LIGHT_WHITE &&
|
||||||
video__hires_odd[e+1] == COLOR_LIGHT_WHITE)
|
video__hires_odd[e+1] == COLOR_LIGHT_WHITE)
|
||||||
{
|
{
|
||||||
video__hires_odd[e] =
|
video__hires_odd[e] = video__hires_odd[e-1];
|
||||||
video__hires_odd[e-1];
|
|
||||||
}
|
}
|
||||||
else if (
|
else if (
|
||||||
video__hires_odd[e-1] != COLOR_BLACK &&
|
video__hires_odd[e-1] != COLOR_BLACK &&
|
||||||
@ -288,15 +278,13 @@ static void c_initialize_hires_values(void)
|
|||||||
video__hires_odd[e-1] == COLOR_LIGHT_WHITE &&
|
video__hires_odd[e-1] == COLOR_LIGHT_WHITE &&
|
||||||
video__hires_odd[e+1] != COLOR_LIGHT_WHITE)
|
video__hires_odd[e+1] != COLOR_LIGHT_WHITE)
|
||||||
{
|
{
|
||||||
video__hires_odd[e] =
|
video__hires_odd[e] = video__hires_odd[e+1];
|
||||||
video__hires_odd[e+1];
|
|
||||||
}
|
}
|
||||||
else if (
|
else if (
|
||||||
video__hires_odd[e-1] == COLOR_LIGHT_WHITE &&
|
video__hires_odd[e-1] == COLOR_LIGHT_WHITE &&
|
||||||
video__hires_odd[e+1] == COLOR_LIGHT_WHITE)
|
video__hires_odd[e+1] == COLOR_LIGHT_WHITE)
|
||||||
{
|
{
|
||||||
video__hires_odd[e] = (value & 0x80)
|
video__hires_odd[e] = (value & 0x80) ? COLOR_LIGHT_RED : COLOR_LIGHT_GREEN;
|
||||||
? COLOR_LIGHT_RED : COLOR_LIGHT_GREEN;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -312,8 +300,7 @@ static void c_initialize_hires_values(void)
|
|||||||
video__hires_even[e-1] != COLOR_LIGHT_WHITE &&
|
video__hires_even[e-1] != COLOR_LIGHT_WHITE &&
|
||||||
video__hires_even[e+1] != COLOR_LIGHT_WHITE)
|
video__hires_even[e+1] != COLOR_LIGHT_WHITE)
|
||||||
{
|
{
|
||||||
video__hires_even[e] =
|
video__hires_even[e] = video__hires_even[e-1];
|
||||||
video__hires_even[e-1];
|
|
||||||
}
|
}
|
||||||
else if (
|
else if (
|
||||||
video__hires_even[e-1] != COLOR_BLACK &&
|
video__hires_even[e-1] != COLOR_BLACK &&
|
||||||
@ -321,8 +308,7 @@ static void c_initialize_hires_values(void)
|
|||||||
video__hires_even[e-1] != COLOR_LIGHT_WHITE &&
|
video__hires_even[e-1] != COLOR_LIGHT_WHITE &&
|
||||||
video__hires_even[e+1] == COLOR_LIGHT_WHITE)
|
video__hires_even[e+1] == COLOR_LIGHT_WHITE)
|
||||||
{
|
{
|
||||||
video__hires_even[e] =
|
video__hires_even[e] = video__hires_even[e-1];
|
||||||
video__hires_even[e-1];
|
|
||||||
}
|
}
|
||||||
else if (
|
else if (
|
||||||
video__hires_even[e-1] != COLOR_BLACK &&
|
video__hires_even[e-1] != COLOR_BLACK &&
|
||||||
@ -330,15 +316,13 @@ static void c_initialize_hires_values(void)
|
|||||||
video__hires_even[e-1] == COLOR_LIGHT_WHITE &&
|
video__hires_even[e-1] == COLOR_LIGHT_WHITE &&
|
||||||
video__hires_even[e+1] != COLOR_LIGHT_WHITE)
|
video__hires_even[e+1] != COLOR_LIGHT_WHITE)
|
||||||
{
|
{
|
||||||
video__hires_even[e] =
|
video__hires_even[e] = video__hires_even[e+1];
|
||||||
video__hires_even[e+1];
|
|
||||||
}
|
}
|
||||||
else if (
|
else if (
|
||||||
video__hires_even[e-1] == COLOR_LIGHT_WHITE &&
|
video__hires_even[e-1] == COLOR_LIGHT_WHITE &&
|
||||||
video__hires_even[e+1] == COLOR_LIGHT_WHITE)
|
video__hires_even[e+1] == COLOR_LIGHT_WHITE)
|
||||||
{
|
{
|
||||||
video__hires_even[e] = (value & 0x80)
|
video__hires_even[e] = (value & 0x80) ? COLOR_LIGHT_RED : COLOR_LIGHT_GREEN;
|
||||||
? COLOR_LIGHT_RED : COLOR_LIGHT_GREEN;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -352,8 +336,7 @@ static void c_initialize_hires_values(void)
|
|||||||
video__hires_odd[e-1] != COLOR_LIGHT_WHITE &&
|
video__hires_odd[e-1] != COLOR_LIGHT_WHITE &&
|
||||||
video__hires_odd[e+1] != COLOR_LIGHT_WHITE)
|
video__hires_odd[e+1] != COLOR_LIGHT_WHITE)
|
||||||
{
|
{
|
||||||
video__hires_odd[e] =
|
video__hires_odd[e] = video__hires_odd[e-1];
|
||||||
video__hires_odd[e-1];
|
|
||||||
}
|
}
|
||||||
else if (
|
else if (
|
||||||
video__hires_odd[e-1] != COLOR_BLACK &&
|
video__hires_odd[e-1] != COLOR_BLACK &&
|
||||||
@ -361,8 +344,7 @@ static void c_initialize_hires_values(void)
|
|||||||
video__hires_odd[e-1] != COLOR_LIGHT_WHITE &&
|
video__hires_odd[e-1] != COLOR_LIGHT_WHITE &&
|
||||||
video__hires_odd[e+1] == COLOR_LIGHT_WHITE)
|
video__hires_odd[e+1] == COLOR_LIGHT_WHITE)
|
||||||
{
|
{
|
||||||
video__hires_odd[e] =
|
video__hires_odd[e] = video__hires_odd[e-1];
|
||||||
video__hires_odd[e-1];
|
|
||||||
}
|
}
|
||||||
else if (
|
else if (
|
||||||
video__hires_odd[e-1] != COLOR_BLACK &&
|
video__hires_odd[e-1] != COLOR_BLACK &&
|
||||||
@ -370,31 +352,19 @@ static void c_initialize_hires_values(void)
|
|||||||
video__hires_odd[e-1] == COLOR_LIGHT_WHITE &&
|
video__hires_odd[e-1] == COLOR_LIGHT_WHITE &&
|
||||||
video__hires_odd[e+1] != COLOR_LIGHT_WHITE)
|
video__hires_odd[e+1] != COLOR_LIGHT_WHITE)
|
||||||
{
|
{
|
||||||
video__hires_odd[e] =
|
video__hires_odd[e] = video__hires_odd[e+1];
|
||||||
video__hires_odd[e+1];
|
|
||||||
}
|
}
|
||||||
else if (
|
else if (
|
||||||
video__hires_odd[e-1] == COLOR_LIGHT_WHITE &&
|
video__hires_odd[e-1] == COLOR_LIGHT_WHITE &&
|
||||||
video__hires_odd[e+1] == COLOR_LIGHT_WHITE)
|
video__hires_odd[e+1] == COLOR_LIGHT_WHITE)
|
||||||
{
|
{
|
||||||
video__hires_odd[e] = (value & 0x80)
|
video__hires_odd[e] = (value & 0x80) ? COLOR_LIGHT_BLUE : COLOR_LIGHT_PURPLE;
|
||||||
? COLOR_LIGHT_BLUE : COLOR_LIGHT_PURPLE;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* *2 for 640x400 */
|
|
||||||
for (b=0, e=0; b<4096; b++, e++)
|
|
||||||
{
|
|
||||||
video__wider_hires_even[b] = video__hires_even[e];
|
|
||||||
video__wider_hires_odd[b] = video__hires_odd[e];
|
|
||||||
b++;
|
|
||||||
video__wider_hires_even[b] = video__hires_even[e];
|
|
||||||
video__wider_hires_odd[b] = video__hires_odd[e];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -172,9 +172,6 @@ const uint8_t * const video_current_framebuffer();
|
|||||||
|
|
||||||
extern uint8_t *video__fb1,*video__fb2;
|
extern uint8_t *video__fb1,*video__fb2;
|
||||||
|
|
||||||
extern uint8_t video__wider_hires_even[0x1000];
|
|
||||||
extern uint8_t video__wider_hires_odd[0x1000];
|
|
||||||
|
|
||||||
extern uint8_t video__hires_even[0x800];
|
extern uint8_t video__hires_even[0x800];
|
||||||
extern uint8_t video__hires_odd[0x800];
|
extern uint8_t video__hires_odd[0x800];
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user