|
|
| version 1.11, 2004/02/21 06:55:44 | version 1.15, 2004/03/04 17:36:06 |
|---|---|
| Line 25 void lio_initialize(void) { | Line 25 void lio_initialize(void) { |
| void bios_lio(REG8 cmd) { | void bios_lio(REG8 cmd) { |
| _LIOWORK lio; | _GLIO lio; |
| UINT8 ret; | UINT8 ret; |
| // TRACEOUT(("lio command %.2x", cmd)); | // TRACEOUT(("lio command %.2x", cmd)); |
| i286_memstr_read(CPU_DS, 0x0620, &lio.mem, sizeof(lio.mem)); | MEML_READSTR(CPU_DS, 0x0620, &lio.work, sizeof(lio.work)); |
| lio.palmode = i286_membyte_read(CPU_DS, 0x0a08); | lio.palmode = i286_membyte_read(CPU_DS, 0x0a08); |
| lio.wait = 500; | lio.wait = 0; |
| switch(cmd) { | switch(cmd) { |
| case 0x00: // a0: GINIT | case 0x00: // a0: GINIT |
| ret = lio_ginit(&lio); | ret = lio_ginit(&lio); |
| Line 101 void bios_lio(REG8 cmd) { | Line 101 void bios_lio(REG8 cmd) { |
| break; | break; |
| } | } |
| CPU_AH = ret; | CPU_AH = ret; |
| gdcsub_setslavewait(lio.wait); | if (lio.wait) { |
| gdcsub_setslavewait(lio.wait); | |
| } | |
| } | } |
| Line 109 void bios_lio(REG8 cmd) { | Line 111 void bios_lio(REG8 cmd) { |
| const UINT32 lioplaneadrs[4] = {VRAM_B, VRAM_R, VRAM_G, VRAM_E}; | const UINT32 lioplaneadrs[4] = {VRAM_B, VRAM_R, VRAM_G, VRAM_E}; |
| void lio_updatedraw(LIOWORK lio) { | void lio_updatedraw(GLIO lio) { |
| UINT8 flag; | UINT8 flag; |
| UINT8 colorbit; | UINT8 colorbit; |
| Line 123 void lio_updatedraw(LIOWORK lio) { | Line 125 void lio_updatedraw(LIOWORK lio) { |
| flag |= LIODRAW_4BPP; | flag |= LIODRAW_4BPP; |
| colorbit = 4; | colorbit = 4; |
| } | } |
| switch(lio->mem.scrnmode) { | switch(lio->work.scrnmode) { |
| case 0: | case 0: |
| if (lio->mem.pos & 1) { | if (lio->work.pos & 1) { |
| flag |= LIODRAW_UPPER; | flag |= LIODRAW_UPPER; |
| } | } |
| maxline = 199; | maxline = 199; |
| break; | break; |
| case 1: | case 1: |
| flag |= lio->mem.pos % colorbit; | flag |= lio->work.pos % colorbit; |
| flag |= LIODRAW_MONO; | flag |= LIODRAW_MONO; |
| if (lio->mem.pos >= colorbit) { | if (lio->work.pos >= colorbit) { |
| flag |= LIODRAW_UPPER; | flag |= LIODRAW_UPPER; |
| } | } |
| maxline = 199; | maxline = 199; |
| break; | break; |
| case 2: | case 2: |
| flag |= lio->mem.pos % colorbit; | flag |= lio->work.pos % colorbit; |
| flag |= LIODRAW_MONO; | flag |= LIODRAW_MONO; |
| break; | break; |
| } | } |
| lio->draw.flag = flag; | lio->draw.flag = flag; |
| lio->draw.palmax = 1 << colorbit; | lio->draw.palmax = 1 << colorbit; |
| tmp = (SINT16)LOADINTELWORD(lio->mem.viewx1); | tmp = (SINT16)LOADINTELWORD(lio->work.viewx1); |
| lio->draw.x1 = max(tmp, 0); | lio->draw.x1 = max(tmp, 0); |
| tmp = (SINT16)LOADINTELWORD(lio->mem.viewy1); | tmp = (SINT16)LOADINTELWORD(lio->work.viewy1); |
| lio->draw.y1 = max(tmp, 0); | lio->draw.y1 = max(tmp, 0); |
| tmp = (SINT16)LOADINTELWORD(lio->mem.viewx2); | tmp = (SINT16)LOADINTELWORD(lio->work.viewx2); |
| lio->draw.x2 = min(tmp, 639); | lio->draw.x2 = min(tmp, 639); |
| tmp = (SINT16)LOADINTELWORD(lio->mem.viewy2); | tmp = (SINT16)LOADINTELWORD(lio->work.viewy2); |
| lio->draw.y2 = min(tmp, maxline); | lio->draw.y2 = min(tmp, maxline); |
| if (!gdcs.access) { | if (!gdcs.access) { |
| lio->draw.base = 0; | lio->draw.base = 0; |
| Line 171 void lio_updatedraw(LIOWORK lio) { | Line 173 void lio_updatedraw(LIOWORK lio) { |
| // ---- | // ---- |
| static void pixed8(const _LIOWORK *lio, UINT addr, REG8 bit, REG8 pal) { | static void pixed8(const _GLIO *lio, UINT addr, REG8 bit, REG8 pal) { |
| BYTE *ptr; | BYTE *ptr; |
| Line 217 static void pixed8(const _LIOWORK *lio, | Line 219 static void pixed8(const _LIOWORK *lio, |
| } | } |
| } | } |
| void lio_pset(const _LIOWORK *lio, SINT16 x, SINT16 y, REG8 pal) { | void lio_pset(const _GLIO *lio, SINT16 x, SINT16 y, REG8 pal) { |
| UINT addr; | UINT addr; |
| BYTE bit; | BYTE bit; |
| Line 235 void lio_pset(const _LIOWORK *lio, SINT1 | Line 237 void lio_pset(const _LIOWORK *lio, SINT1 |
| pixed8(lio, addr, bit, pal); | pixed8(lio, addr, bit, pal); |
| } | } |
| void lio_line(const _LIOWORK *lio, SINT16 x1, SINT16 x2, SINT16 y, REG8 pal) { | #if 0 |
| void lio_line(const _GLIO *lio, SINT16 x1, SINT16 x2, SINT16 y, REG8 pal) { | |
| UINT addr; | UINT addr; |
| BYTE bit, dbit; | BYTE bit, dbit; |
| Line 284 void lio_line(const _LIOWORK *lio, SINT1 | Line 287 void lio_line(const _LIOWORK *lio, SINT1 |
| pixed8(lio, addr, dbit, pal); | pixed8(lio, addr, dbit, pal); |
| } | } |
| } | } |
| #endif | |
| #if 0 | |
| void lio_look(UINT vect) { | void lio_look(UINT vect) { |
| BYTE work[16]; | BYTE work[16]; |
| Line 309 void lio_look(UINT vect) { | Line 314 void lio_look(UINT vect) { |
| work[6], work[7], work[8], work[9])); | work[6], work[7], work[8], work[9])); |
| } | } |
| } | } |
| #endif | |