|
|
| version 1.9, 2004/02/21 04:48:35 | version 1.10, 2004/02/21 06:26:34 |
|---|---|
| Line 9 | Line 9 |
| #include "lio.h" | #include "lio.h" |
| static _LIOWORK liowork; | |
| void lio_initialize(void) { | void lio_initialize(void) { |
| UINT i; | UINT i; |
| Line 28 void lio_initialize(void) { | Line 25 void lio_initialize(void) { |
| void bios_lio(REG8 cmd) { | void bios_lio(REG8 cmd) { |
| LIOWORK lio; | _LIOWORK 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)); | |
| lio = &liowork; | lio.palmode = i286_membyte_read(CPU_DS, 0x0a08); |
| lio->wait = 500; | lio.wait = 500; |
| switch(cmd) { | switch(cmd) { |
| case 0x00: // a0: GINIT | case 0x00: // a0: GINIT |
| ret = lio_ginit(lio); | ret = lio_ginit(&lio); |
| break; | break; |
| case 0x01: // a1: GSCREEN | case 0x01: // a1: GSCREEN |
| ret = lio_gscreen(lio); | ret = lio_gscreen(&lio); |
| break; | break; |
| case 0x02: // a2: GVIEW | case 0x02: // a2: GVIEW |
| ret = lio_gview(lio); | ret = lio_gview(&lio); |
| break; | break; |
| case 0x03: // a3: GCOLOR1 | case 0x03: // a3: GCOLOR1 |
| ret = lio_gcolor1(lio); | ret = lio_gcolor1(&lio); |
| break; | break; |
| case 0x04: // a4: GCOLOR2 | case 0x04: // a4: GCOLOR2 |
| ret = lio_gcolor2(lio); | ret = lio_gcolor2(&lio); |
| break; | break; |
| case 0x05: // a5: GCLS | case 0x05: // a5: GCLS |
| ret = lio_gcls(lio); | ret = lio_gcls(&lio); |
| break; | break; |
| case 0x06: // a6: GPSET | case 0x06: // a6: GPSET |
| ret = lio_gpset(lio); | ret = lio_gpset(&lio); |
| break; | break; |
| case 0x07: // a7: GLINE | case 0x07: // a7: GLINE |
| ret = lio_gline(lio); | ret = lio_gline(&lio); |
| break; | break; |
| // case 0x08: // a8: GCIRCLE | // case 0x08: // a8: GCIRCLE |
| Line 78 void bios_lio(REG8 cmd) { | Line 75 void bios_lio(REG8 cmd) { |
| // break; | // break; |
| case 0x0b: // ab: GGET | case 0x0b: // ab: GGET |
| ret = lio_gget(lio); | ret = lio_gget(&lio); |
| break; | break; |
| case 0x0c: // ac: GPUT1 | case 0x0c: // ac: GPUT1 |
| ret = lio_gput1(lio); | ret = lio_gput1(&lio); |
| break; | break; |
| case 0x0d: // ad: GPUT2 | case 0x0d: // ad: GPUT2 |
| ret = lio_gput2(lio); | ret = lio_gput2(&lio); |
| break; | break; |
| // case 0x0e: // ae: GROLL | // case 0x0e: // ae: GROLL |
| // break; | // break; |
| case 0x0f: // af: GPOINT2 | case 0x0f: // af: GPOINT2 |
| ret = lio_gpoint2(lio); | ret = lio_gpoint2(&lio); |
| break; | break; |
| // case 0x10: // ce: GCOPY | // case 0x10: // ce: GCOPY |
| Line 104 void bios_lio(REG8 cmd) { | Line 101 void bios_lio(REG8 cmd) { |
| break; | break; |
| } | } |
| CPU_AH = ret; | CPU_AH = ret; |
| gdcsub_setslavewait(lio->wait); | gdcsub_setslavewait(lio.wait); |
| } | } |
| Line 200 static void pixed8(const _LIOWORK *lio, | Line 197 static void pixed8(const _LIOWORK *lio, |
| else { | else { |
| ptr[VRAM_G] &= ~bit; | ptr[VRAM_G] &= ~bit; |
| } | } |
| if (lio->palmode == 2) { | if (lio->draw.flag & LIODRAW_4BPP) { |
| if (pal & 8) { | if (pal & 8) { |
| ptr[VRAM_E] |= bit; | ptr[VRAM_E] |= bit; |
| } | } |