diff options
Diffstat (limited to 'apps/plugins/zxbox/spscr.c')
-rw-r--r-- | apps/plugins/zxbox/spscr.c | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/apps/plugins/zxbox/spscr.c b/apps/plugins/zxbox/spscr.c index 4cae8654ae..6b85904d11 100644 --- a/apps/plugins/zxbox/spscr.c +++ b/apps/plugins/zxbox/spscr.c | |||
@@ -82,6 +82,7 @@ byte *update_screen_line(byte *scrp, int coli, int scri, int border, | |||
82 | cmark = *cmarkp; | 82 | cmark = *cmarkp; |
83 | scrptr = (qbyte *) scrp; | 83 | scrptr = (qbyte *) scrp; |
84 | if(scri >= 0) { /* normal line */ | 84 | if(scri >= 0) { /* normal line */ |
85 | #if LCD_WIDTH == 320 && ( LCD_HEIGHT == 240 || LCD_HEIGHT == 200 ) | ||
85 | if(SPNM(border_update)) { | 86 | if(SPNM(border_update)) { |
86 | brd_color = SPNM(colors)[border]; | 87 | brd_color = SPNM(colors)[border]; |
87 | brd_color |= brd_color << 8; | 88 | brd_color |= brd_color << 8; |
@@ -91,7 +92,10 @@ byte *update_screen_line(byte *scrp, int coli, int scri, int border, | |||
91 | for(i = 8; i; i--) *scrptr++ = brd_color; | 92 | for(i = 8; i; i--) *scrptr++ = brd_color; |
92 | scrptr -= 0x48; | 93 | scrptr -= 0x48; |
93 | } | 94 | } |
94 | else scrptr += 0x08; | 95 | else |
96 | #endif | ||
97 | scrptr += 0x08; | ||
98 | |||
95 | tmptr = SPNM(scr_mark) + 0x2C0 + (coli >> 3); | 99 | tmptr = SPNM(scr_mark) + 0x2C0 + (coli >> 3); |
96 | mark = *tmptr; | 100 | mark = *tmptr; |
97 | if(!(coli & 0x07)) { | 101 | if(!(coli & 0x07)) { |
@@ -129,40 +133,23 @@ byte *update_screen_line(byte *scrp, int coli, int scri, int border, | |||
129 | else scrptr += 0x48; | 133 | else scrptr += 0x48; |
130 | } | 134 | } |
131 | else if(scri == -1) { /* only border */ | 135 | else if(scri == -1) { /* only border */ |
136 | #if LCD_WIDTH == 320 && ( LCD_HEIGHT == 240 || LCD_HEIGHT == 200 ) | ||
132 | if(SPNM(border_update)) { | 137 | if(SPNM(border_update)) { |
133 | brd_color = SPNM(colors)[border]; | 138 | brd_color = SPNM(colors)[border]; |
134 | brd_color |= brd_color << 8; | 139 | brd_color |= brd_color << 8; |
135 | brd_color |= brd_color << 16; | 140 | brd_color |= brd_color << 16; |
136 | for(i = 0x50; i; i--) *scrptr++ = brd_color; | 141 | for(i = 0x50; i; i--) *scrptr++ = brd_color; |
137 | } | 142 | } |
138 | else scrptr += 0x50; | 143 | else |
144 | #endif | ||
145 | scrptr += 0x50; | ||
146 | |||
139 | } | 147 | } |
140 | 148 | ||
141 | *cmarkp = cmark; | 149 | *cmarkp = cmark; |
142 | return (byte *) scrptr; | 150 | return (byte *) scrptr; |
143 | } | 151 | } |
144 | 152 | ||
145 | void translate_screen(void) | ||
146 | { | ||
147 | int border, scline; | ||
148 | byte *scrptr; | ||
149 | qbyte cmark = 0; | ||
150 | |||
151 | scrptr = (byte *) SPNM(image); | ||
152 | |||
153 | border = DANM(ula_outport) & 0x07; | ||
154 | if(border != SPNM(lastborder)) { | ||
155 | SPNM(border_update) = 2; | ||
156 | SPNM(lastborder) = border; | ||
157 | } | ||
158 | |||
159 | for(scline = 0; scline < (TMNUM / 2); scline++) | ||
160 | scrptr = update_screen_line(scrptr, SPNM(coli)[scline], SPNM(scri)[scline], | ||
161 | border, &cmark); | ||
162 | |||
163 | } | ||
164 | |||
165 | |||
166 | void spscr_init_mask_color(void) | 153 | void spscr_init_mask_color(void) |
167 | { | 154 | { |
168 | int clb; | 155 | int clb; |