| version 1.2, 2004/08/04 15:18:26 | version 1.17, 2004/08/20 08:41:41 | 
| Line 1 | Line 1 | 
 | #include        "compiler.h" | #include        "compiler.h" | 
 | #include        "scrnmng.h" | #include        "scrnmng.h" | 
 | #include        "pccore.h" | #include        "pccore.h" | 
| #include        "x1_io.h" | #include        "iocore.h" | 
| #include        "x1_crtc.h" |  | 
 | #include        "scrndraw.h" | #include        "scrndraw.h" | 
 | #include        "draw.h" |  | 
 | #include        "palettes.h" | #include        "palettes.h" | 
 |  | #include        "makescrn.h" | 
 |  |  | 
 |  |  | 
| RGB32   x1n_pal32[256];                 // xm_palette | UINT            xmil_palettes; | 
| RGB32   x1z_pal32[4096+8];              // GRPHPAL4096 | RGB32           xmil_pal32[XMILPAL_MAX];                        // xm_palette | 
|  |  | 
 | #if defined(SUPPORT_16BPP) | #if defined(SUPPORT_16BPP) | 
| RGB16   x1n_pal16[256];                 // xmil_pal16 | RGB16           xmil_pal16[XMILPAL_MAX]; | 
| RGB16   x1z_pal16[4096+8];              // GRPHPAL16bit | #endif | 
|  | #if defined(SUPPORT_PALEVENT) | 
|  | PALEVENT        palevent; | 
 | #endif | #endif | 
 |  |  | 
|  | #if defined(SUPPORT_TURBOZ) | 
| // drop |  | 
| int             xm_palettes = 0; |  | 
|  |  | 
|  |  | 
| extern  BYTE    dispmode; |  | 
| extern  BYTE    pal_disp; |  | 
|  |  | 
|  |  | 
 | static const UINT16 pal4096banktbl[2][64] = { | static const UINT16 pal4096banktbl[2][64] = { | 
 | {       0x000, 0x008, 0x080, 0x088, 0x800, 0x808, 0x880, 0x888, | {       0x000, 0x008, 0x080, 0x088, 0x800, 0x808, 0x880, 0x888, | 
 | 0x004, 0x00C, 0x084, 0x08C, 0x804, 0x80C, 0x884, 0x88C, | 0x004, 0x00C, 0x084, 0x08C, 0x804, 0x80C, 0x884, 0x88C, | 
| Line 44  static const UINT16 pal4096banktbl[2][64 | Line 36  static const UINT16 pal4096banktbl[2][64 | 
 | 0x110, 0x112, 0x130, 0x132, 0x310, 0x312, 0x330, 0x332, | 0x110, 0x112, 0x130, 0x132, 0x310, 0x312, 0x330, 0x332, | 
 | 0x111, 0x113, 0x131, 0x133, 0x311, 0x313, 0x331, 0x333}}; | 0x111, 0x113, 0x131, 0x133, 0x311, 0x313, 0x331, 0x333}}; | 
 |  |  | 
 |  | static void pal4096to64(RGB32 *pal, const UINT16 *map) { | 
 |  |  | 
 |  | UINT    r; | 
 |  |  | 
 |  | r = 64; | 
 |  | do { | 
 |  | pal->d = xmil_pal32[XMILPAL_4096G + (*map++)].d; | 
 |  | pal++; | 
 |  | } while(--r); | 
 |  | } | 
 |  | #endif | 
 |  |  | 
 |  |  | 
 |  | // ---- | 
 |  |  | 
 | void pal_makegrad(RGB32 *pal, int pals, UINT32 bg, UINT32 fg) { | void pal_makegrad(RGB32 *pal, int pals, UINT32 bg, UINT32 fg) { | 
 |  |  | 
| Line 68  void pal_makegrad(RGB32 *pal, int pals, | Line 72  void pal_makegrad(RGB32 *pal, int pals, | 
 | } | } | 
 | } | } | 
 |  |  | 
 | void pals_cnv16pal(RGB16 *dst, const RGB32 *src, UINT pals) { |  | 
 |  |  | 
 | while(pals--) { |  | 
 | *dst++ = scrnmng_makepal16(*src++); |  | 
 | } |  | 
 | } |  | 
 |  |  | 
 |  |  | 
 | // ---- | // ---- | 
 |  |  | 
 | static  WORD    halfgrp = 0; |  | 
 | static  WORD    halftxt = 0; |  | 
 |  |  | 
 |  |  | 
 | typedef struct { | typedef struct { | 
 | UINT8   blankcol; | UINT8   blankcol; | 
| UINT8   padding[3]; | UINT8   padding; | 
| RGB32   text[24]; | UINT16  skipline; | 
|  | RGB32   text[16]; | 
|  | #if defined(SUPPORT_TURBOZ) | 
 | RGB32   grph[2][16]; | RGB32   grph[2][16]; | 
 | RGB32   grph64[2][64]; | RGB32   grph64[2][64]; | 
 |  | #endif | 
 | } PALS; | } PALS; | 
 |  |  | 
 | static  PALS    pals; | static  PALS    pals; | 
 |  |  | 
 |  |  | 
 |  | #if !defined(SUPPORT_TURBOZ) | 
 |  | static void pal_settext(REG8 num) { | 
 |  |  | 
 |  | RGB32   rgb; | 
 |  |  | 
 |  | rgb.p.e = 0; | 
 |  | if (!num) { | 
 |  | rgb.p.b = pals.blankcol; | 
 |  | rgb.p.g = pals.blankcol; | 
 |  | rgb.p.r = pals.blankcol; | 
 |  | } | 
 |  | else { | 
 |  | rgb.p.b = (num & 1)?0xff:0x00; | 
 |  | rgb.p.g = (num & 4)?0xff:0x00; | 
 |  | rgb.p.r = (num & 2)?0xff:0x00; | 
 |  | } | 
 |  | pals.text[num].d = rgb.d; | 
 |  | pals.text[num+8].p.b = (UINT8)((pals.skipline * rgb.p.b) >> 8); | 
 |  | pals.text[num+8].p.g = (UINT8)((pals.skipline * rgb.p.g) >> 8); | 
 |  | pals.text[num+8].p.r = (UINT8)((pals.skipline * rgb.p.r) >> 8); | 
 |  | makescrn.palandply = 1; | 
 |  | } | 
 |  | #else | 
 | void pal_settext(REG8 num) { | void pal_settext(REG8 num) { | 
 |  |  | 
 | REG8    textpal; | REG8    textpal; | 
 | REG8    black; | REG8    black; | 
 | RGB32   rgb; | RGB32   rgb; | 
 |  |  | 
| textpal = crtc_TEXTPAL[num]; | textpal = crtc.p.text[num]; | 
 | black = 0; | black = 0; | 
 | rgb.p.e = 0; | rgb.p.e = 0; | 
 | rgb.p.b = ((textpal >> 0) & 3) * 0x55; | rgb.p.b = ((textpal >> 0) & 3) * 0x55; | 
| Line 119  void pal_settext(REG8 num) { | Line 138  void pal_settext(REG8 num) { | 
 | rgb.p.g = pals.blankcol; | rgb.p.g = pals.blankcol; | 
 | rgb.p.r = pals.blankcol; | rgb.p.r = pals.blankcol; | 
 | } | } | 
| x1z_pal32[4096 + num].d = rgb.d; | xmil_pal32[XMILPAL_4096T + num].d = rgb.d; | 
 | #if defined(SUPPORT_16BPP) | #if defined(SUPPORT_16BPP) | 
 | if (scrnmng_getbpp() == 16) { | if (scrnmng_getbpp() == 16) { | 
| x1z_pal16[4096 + num] = scrnmng_makepal16(rgb); | xmil_pal16[XMILPAL_4096T + num] = scrnmng_makepal16(rgb); | 
 | } | } | 
 | #endif | #endif | 
 |  |  | 
 | pals.text[num].d = rgb.d; | pals.text[num].d = rgb.d; | 
| pals.text[num].p.e = num + START_EXT; | pals.text[num+8].p.b = (UINT8)((pals.skipline * rgb.p.b) >> 8); | 
|  | pals.text[num+8].p.g = (UINT8)((pals.skipline * rgb.p.g) >> 8); | 
| pals.text[num+8].p.b = (halftxt * rgb.p.b) / 255; | pals.text[num+8].p.r = (UINT8)((pals.skipline * rgb.p.r) >> 8); | 
| pals.text[num+8].p.g = (halftxt * rgb.p.g) / 255; | makescrn.palandply = 1; | 
| pals.text[num+8].p.r = (halftxt * rgb.p.r) / 255; |  | 
| pals.text[num+8].p.e = num + START_EXT + 0x08; |  | 
|  |  | 
| pals.text[num+16].p.b = (halfgrp * rgb.p.b) / 255; |  | 
| pals.text[num+16].p.g = (halfgrp * rgb.p.g) / 255; |  | 
| pals.text[num+16].p.r = (halfgrp * rgb.p.r) / 255; |  | 
| pals.text[num+16].p.e = num + START_EXT + 0x10; |  | 
|  |  | 
| palandply = 1; |  | 
 | } | } | 
 |  |  | 
 | void pal_setgrph(REG8 bank, REG8 num) { | void pal_setgrph(REG8 bank, REG8 num) { | 
| Line 148  void pal_setgrph(REG8 bank, REG8 num) { | Line 157  void pal_setgrph(REG8 bank, REG8 num) { | 
 | REG8    black; | REG8    black; | 
 | RGB32   rgb; | RGB32   rgb; | 
 |  |  | 
| grphpal = crtc_GRPHPAL[bank][num]; | grphpal = crtc.p.grph[bank][num]; | 
 | black = 0; | black = 0; | 
 |  | rgb.p.e = 0; | 
 | rgb.p.b = ((grphpal >> 0) & 0x0f) * 0x11; | rgb.p.b = ((grphpal >> 0) & 0x0f) * 0x11; | 
 | if (rgb.p.b < pals.blankcol) { | if (rgb.p.b < pals.blankcol) { | 
 | black |= 1; | black |= 1; | 
| Line 168  void pal_setgrph(REG8 bank, REG8 num) { | Line 178  void pal_setgrph(REG8 bank, REG8 num) { | 
 | rgb.p.r = pals.blankcol; | rgb.p.r = pals.blankcol; | 
 | } | } | 
 | pals.grph64[bank][num].d = rgb.d; | pals.grph64[bank][num].d = rgb.d; | 
 | pals.grph64[bank][num].p.e = num + START_PAL; |  | 
 | if (!(((num >> 3) ^ num) & 7)) { | if (!(((num >> 3) ^ num) & 7)) { | 
 | num &= 7; | num &= 7; | 
 | pals.grph[bank][num+0].d = rgb.d; | pals.grph[bank][num+0].d = rgb.d; | 
| pals.grph[bank][num+0].p.e = num + START_EXT + 0x18; | pals.grph[bank][num+8].p.b = (UINT8)((pals.skipline * rgb.p.b) >> 8); | 
| pals.grph[bank][num+8].p.b = (halfgrp * rgb.p.b) / 0xff; | pals.grph[bank][num+8].p.g = (UINT8)((pals.skipline * rgb.p.g) >> 8); | 
| pals.grph[bank][num+8].p.g = (halfgrp * rgb.p.g) / 0xff; | pals.grph[bank][num+8].p.r = (UINT8)((pals.skipline * rgb.p.r) >> 8); | 
| pals.grph[bank][num+8].p.r = (halfgrp * rgb.p.r) / 0xff; |  | 
| pals.grph[bank][num+8].p.e = num + START_EXT + 0x20; |  | 
 | } | } | 
| palandply = 1; | makescrn.palandply = 1; | 
 | } | } | 
 |  |  | 
 | void pal_setgrph4096(UINT num) { | void pal_setgrph4096(UINT num) { | 
| Line 187  void pal_setgrph4096(UINT num) { | Line 194  void pal_setgrph4096(UINT num) { | 
 | REG8    black; | REG8    black; | 
 | RGB32   rgb; | RGB32   rgb; | 
 |  |  | 
| grphpal = crtc_PAL4096[num]; | grphpal = crtc.p.grph4096[num]; | 
 | black = 0; | black = 0; | 
 | rgb.p.e = 0; | rgb.p.e = 0; | 
 | rgb.p.b = ((grphpal >> 0) & 0x0f) * 0x11; | rgb.p.b = ((grphpal >> 0) & 0x0f) * 0x11; | 
| Line 207  void pal_setgrph4096(UINT num) { | Line 214  void pal_setgrph4096(UINT num) { | 
 | rgb.p.g = pals.blankcol; | rgb.p.g = pals.blankcol; | 
 | rgb.p.r = pals.blankcol; | rgb.p.r = pals.blankcol; | 
 | } | } | 
| x1z_pal32[num].d = rgb.d; | xmil_pal32[XMILPAL_4096G + num].d = rgb.d; | 
 | #if defined(SUPPORT_16BPP) | #if defined(SUPPORT_16BPP) | 
 | if (scrnmng_getbpp() == 16) { | if (scrnmng_getbpp() == 16) { | 
| x1z_pal16[num] = scrnmng_makepal16(rgb); | xmil_pal16[XMILPAL_4096G + num] = scrnmng_makepal16(rgb); | 
 | } | } | 
 | #endif | #endif | 
| palandply = 1; | makescrn.palandply = 1; | 
 | } | } | 
 |  | #endif | 
 |  |  | 
 |  |  | 
 | // ---- | // ---- | 
 |  |  | 
| static void pal4096to64(RGB32 *pal, const UINT16 *map) { | void pal_update1(const UINT8 *rgbp) { | 
 |  |  | 
| UINT    r; | UINT    i; | 
|  | UINT    j; | 
| r = 64; | REG8    bit; | 
| do { | UINT    c; | 
| pal->d = x1z_pal32[*map++].d; | UINT    skip8; | 
| pal++; | UINT    bcnt; | 
| } while(--r); |  | 
|  | skip8 = 0; | 
|  | if (!(crtc.s.SCRN_BITS & SCRN_24KHZ)) { | 
|  | skip8 = 8; | 
|  | } | 
|  | for (i=0, bit=1; i<8; i++, bit<<=1) { | 
|  | #if defined(SUPPORT_TURBOZ) | 
|  | if (!(crtc.s.EXTPALMODE & 0x80)) { | 
|  | #endif | 
|  | c = 0; | 
|  | if (rgbp[CRTC_PALB] & bit) { | 
|  | c += 1; | 
|  | } | 
|  | if (rgbp[CRTC_PALR] & bit) { | 
|  | c += 2; | 
|  | } | 
|  | if (rgbp[CRTC_PALG] & bit) { | 
|  | c += 4; | 
|  | } | 
|  | #if defined(SUPPORT_TURBOZ) | 
|  | } | 
|  | else { | 
|  | c = i; | 
|  | } | 
|  | #endif | 
|  | #if !defined(SUPPORT_TURBOZ) | 
|  | xmil_pal32[i].d = pals.text[c].d; | 
|  | xmil_pal32[i+64].d = pals.text[c + skip8].d; | 
|  | #else | 
|  | xmil_pal32[i].d = pals.grph[crtc.e.pal_disp][c].d; | 
|  | xmil_pal32[i+64].d = pals.grph[crtc.e.pal_disp][c + skip8].d; | 
|  | #endif | 
|  | if (rgbp[CRTC_PLY] & bit) { | 
|  | for (j=i+8; j<64; j+=8) { | 
|  | xmil_pal32[j].d = xmil_pal32[i].d; | 
|  | xmil_pal32[j+64].d = xmil_pal32[i+64].d; | 
|  | } | 
|  | } | 
|  | else { | 
|  | bcnt = (rgbp[CRTC_BLACK] & 15) - 8; | 
|  | for (j=i+8; j<64; j+=8) { | 
|  | bcnt--; | 
|  | if (bcnt) { | 
|  | c = j >> 3; | 
|  | } | 
|  | else { | 
|  | c = 0; | 
|  | } | 
|  | xmil_pal32[j].d = pals.text[c].d; | 
|  | xmil_pal32[j+64].d = pals.text[c + skip8].d; | 
|  | } | 
|  | } | 
|  | } | 
|  | #if defined(SUPPORT_16BPP) | 
|  | if (scrnmng_getbpp() == 16) { | 
|  | for (i=0; i<xmil_palettes; i++) { | 
|  | xmil_pal16[i] = scrnmng_makepal16(xmil_pal32[i]); | 
|  | } | 
|  | } | 
|  | #endif | 
 | } | } | 
 |  |  | 
| void palettes(void) { | void pal_update(void) { | 
 |  |  | 
| int             i, j; | #if defined(SUPPORT_TURBOZ) || defined(SUPPORT_16BPP) | 
| BYTE    bit; | UINT    i; | 
| BYTE    c; | #endif | 
| BYTE    skip8 = 0; |  | 
| BYTE    skip16 = 0; |  | 
 |  |  | 
| if (pal_disp & PAL_4096) { | #if !defined(SUPPORT_TURBOZ) | 
| switch(pal_disp & 0xf) { | pal_update1(crtc.s.rgbp); | 
|  | xmil_palettes = 64 + 64; | 
|  | #else | 
|  | if (!(crtc.e.dispmode & SCRN64_ENABLE)) { | 
|  | pal_update1(crtc.s.rgbp); | 
|  | xmil_palettes = 64 + 64; | 
|  | scrndraw_changepalette(); | 
|  | return; | 
|  | } | 
|  | else if (crtc.e.pal_disp & PAL_4096) { | 
|  | switch(crtc.e.pal_disp & 0xf) { | 
 | case PAL_4096H: | case PAL_4096H: | 
| pal4096to64(x1n_pal32, pal4096banktbl[0]); | pal4096to64(xmil_pal32, pal4096banktbl[0]); | 
| xm_palettes = 64; | xmil_palettes = 64; | 
 | break; | break; | 
 |  |  | 
 | case PAL_4096L: | case PAL_4096L: | 
| pal4096to64(x1n_pal32, pal4096banktbl[1]); | pal4096to64(xmil_pal32, pal4096banktbl[1]); | 
| xm_palettes = 64; | xmil_palettes = 64; | 
 | break; | break; | 
 |  |  | 
 | case (PAL_4096H | PAL_64x2): | case (PAL_4096H | PAL_64x2): | 
| pal4096to64(&x1n_pal32[ 0], pal4096banktbl[0]); | pal4096to64(&xmil_pal32[ 0], pal4096banktbl[0]); | 
| pal4096to64(&x1n_pal32[64], pal4096banktbl[1]); | pal4096to64(&xmil_pal32[64], pal4096banktbl[1]); | 
| xm_palettes = 128; | xmil_palettes = 128; | 
 | break; | break; | 
 |  |  | 
 | case (PAL_4096L | PAL_64x2): | case (PAL_4096L | PAL_64x2): | 
| pal4096to64(&x1n_pal32[ 0], pal4096banktbl[0]); | pal4096to64(&xmil_pal32[ 0], pal4096banktbl[0]); | 
| pal4096to64(&x1n_pal32[64], pal4096banktbl[1]); | pal4096to64(&xmil_pal32[64], pal4096banktbl[1]); | 
| xm_palettes = 128; | xmil_palettes = 128; | 
 | break; | break; | 
 |  |  | 
 | default:                                                // fullcolor! | default:                                                // fullcolor! | 
 | return; | return; | 
 | } | } | 
 | for (i=0; i<8; i++) { | for (i=0; i<8; i++) { | 
| x1n_pal32[xm_palettes++].d = pals.text[i].d; | xmil_pal32[xmil_palettes++].d = pals.text[i].d; | 
 | } | } | 
 | } | } | 
 | else if ((dispmode & SCRN64_MASK) == SCRN64_INVALID) { |  | 
 | if ((xmilcfg.SKIP_LINE) && (!(crtc.SCRN_BITS & SCRN_24KHZ))) { |  | 
 | skip8 = 8; |  | 
 | skip16 = 16; |  | 
 | } |  | 
 | for (i=0, bit=1; i<8; i++, bit<<=1) { |  | 
 | if (!(crtc.EXTPALMODE & 0x80)) { |  | 
 | c = 0; |  | 
 | if (crtc.PAL_B & bit) { |  | 
 | c |= 1; |  | 
 | } |  | 
 | if (crtc.PAL_R & bit) { |  | 
 | c |= 2; |  | 
 | } |  | 
 | if (crtc.PAL_G & bit) { |  | 
 | c |= 4; |  | 
 | } |  | 
 | } |  | 
 | else { |  | 
 | c = i; |  | 
 | } |  | 
 | x1n_pal32[i].d = pals.grph[pal_disp][c].d; |  | 
 | x1n_pal32[i+64].d = x1n_pal32[i+128].d |  | 
 | = pals.grph[pal_disp][c+skip8].d; |  | 
 | if (crtc.PLY & bit) { |  | 
 | for (j=i+8; j<64; j+=8) { |  | 
 | x1n_pal32[j].d = x1n_pal32[i].d; |  | 
 | x1n_pal32[j+64].d = x1n_pal32[j+128].d |  | 
 | = x1n_pal32[i+64].d; |  | 
 | } |  | 
 | } |  | 
 | else { |  | 
 | BYTE cnt = (crtc.BLACKPAL & 15) - 8; |  | 
 | for (j=i+8; j<64; j+=8) { |  | 
 | if (--cnt) { |  | 
 | c = crtc.TEXT_PAL[j>>3]; |  | 
 | } |  | 
 | else { |  | 
 | c = 0; |  | 
 | } |  | 
 | x1n_pal32[j].d = pals.text[c].d; |  | 
 | x1n_pal32[j+64].d = pals.text[c+skip8].d; |  | 
 | x1n_pal32[j+128].d = pals.text[c+skip16].d; |  | 
 | } |  | 
 | } |  | 
 | } |  | 
 | for (i=0; i<24; i++) { |  | 
 | x1n_pal32[i+192].d = pals.text[i].d; |  | 
 | } |  | 
 | for (i=0; i<16; i++) { |  | 
 | x1n_pal32[i+192+24].d = pals.grph[pal_disp][i].d; |  | 
 | } |  | 
 | xm_palettes = 64+64+64+24+16; |  | 
 | } |  | 
 | else { | else { | 
 | for (i=0; i<64; i++) { | for (i=0; i<64; i++) { | 
| x1n_pal32[i].d = pals.grph64[pal_disp][i].d; | xmil_pal32[i].d = pals.grph64[crtc.e.pal_disp][i].d; | 
 | } | } | 
 | for (i=0; i<8; i++) { | for (i=0; i<8; i++) { | 
| x1n_pal32[i+64].d = pals.text[i].d; | xmil_pal32[i+64].d = pals.text[i].d; | 
 | } | } | 
| xm_palettes = 64+8; | xmil_palettes = 64 + 8; | 
 | } | } | 
 |  | #endif | 
 |  |  | 
 |  | #if defined(SUPPORT_16BPP) | 
 |  | if (scrnmng_getbpp() == 16) { | 
 |  | for (i=0; i<xmil_palettes; i++) { | 
 |  | xmil_pal16[i] = scrnmng_makepal16(xmil_pal32[i]); | 
 |  | } | 
 |  | } | 
 |  | #endif | 
 | scrndraw_changepalette(); | scrndraw_changepalette(); | 
 | } | } | 
 |  |  | 
 |  | #if defined(SUPPORT_PALEVENT) | 
 |  | void pal_eventclear(void) { | 
 |  |  | 
 |  | if ((!corestat.drawframe) || | 
 |  | (!xmilcfg.RASTER) || (scrnmng_getbpp() == 8)) { | 
 |  | palevent.events = SUPPORT_PALEVENT; | 
 |  | } | 
 |  | else { | 
 |  | CopyMemory(palevent.rgbp, crtc.s.rgbp, CRTC_RGBPMAX); | 
 |  | palevent.events = 0; | 
 |  | } | 
 |  | } | 
 |  | #endif | 
 |  |  | 
 |  |  | 
 | // ---- | // ---- | 
 |  |  | 
| void reflesh_palette(void) { | void pal_reset(void) { | 
 |  |  | 
 | REG8    i; | REG8    i; | 
 |  | #if defined(SUPPORT_TURBOZ) | 
 | REG8    j; | REG8    j; | 
 | UINT    k; | UINT    k; | 
 |  | #endif | 
 |  |  | 
| pals.blankcol = xmilcfg.BLKLIGHT; | pals.blankcol = 0; | 
| if ((!xmilcfg.SKIP_LINE) || (crtc.SCRN_BITS & SCRN_24KHZ)) { | pals.skipline = (xmilcfg.skipline)?xmilcfg.skiplight:0; | 
| pals.blankcol >>= 1; |  | 
| } |  | 
| halfgrp = xmilcfg.LINEDEPTH; |  | 
| switch(xmilcfg.TEXT400L) { |  | 
| case 0: |  | 
| halftxt = xmilcfg.LINEDEPTH; |  | 
| break; |  | 
|  |  | 
| case 1: |  | 
| halftxt = 0xff; |  | 
| break; |  | 
|  |  | 
| default: |  | 
| halftxt = xmilcfg.LINETEXT; |  | 
| break; |  | 
| } |  | 
|  |  | 
 | for (i=0; i<8; i++) { | for (i=0; i<8; i++) { | 
 | pal_settext(i); | pal_settext(i); | 
 | } | } | 
| for (j=0; j<2; j++) { | #if defined(SUPPORT_TURBOZ) | 
| for (i=0; i<64; i++) { | for (i=0; i<2; i++) { | 
| pal_setgrph(j, i); | for (j=0; j<64; j++) { | 
|  | pal_setgrph(i, j); | 
 | } | } | 
 | } | } | 
 | for (k=0; k<4096; k++) { | for (k=0; k<4096; k++) { | 
 | pal_setgrph4096(k); | pal_setgrph4096(k); | 
 | } | } | 
 |  | #endif | 
 | } | } | 
 |  |  |