|
|
| version 1.6, 2004/02/21 00:25:33 | version 1.13, 2005/05/20 13:59:47 |
|---|---|
| Line 4 | Line 4 |
| typedef struct { | typedef struct { |
| BYTE x[2]; | UINT8 x[2]; |
| BYTE y[2]; | UINT8 y[2]; |
| BYTE pal; | UINT8 pal; |
| } GPSET; | } GPSET; |
| typedef struct { | typedef struct { |
| BYTE x[2]; | UINT8 x[2]; |
| BYTE y[2]; | UINT8 y[2]; |
| } GPOINT2; | } GPOINT2; |
| // ---- CLS | |
| REG8 lio_gcls(LIOWORK lio) { | |
| SINT16 y; | |
| lio_updatedraw(lio); | |
| for (y=lio->draw.y1; y<=lio->draw.y2; y++) { | |
| lio_line(lio, lio->draw.x1, lio->draw.x2, y, lio->gcolor1.bgcolor); | |
| } | |
| return(LIO_SUCCESS); | |
| } | |
| // ---- PSET | // ---- PSET |
| REG8 lio_gpset(LIOWORK lio) { | REG8 lio_gpset(GLIO lio) { |
| GPSET dat; | GPSET dat; |
| SINT16 x; | SINT16 x; |
| SINT16 y; | SINT16 y; |
| lio_updatedraw(lio); | lio_updatedraw(lio); |
| i286_memstr_read(CPU_DS, CPU_BX, &dat, sizeof(dat)); | MEMR_READS(CPU_DS, CPU_BX, &dat, sizeof(dat)); |
| x = (SINT16)LOADINTELWORD(dat.x); | x = (SINT16)LOADINTELWORD(dat.x); |
| y = (SINT16)LOADINTELWORD(dat.y); | y = (SINT16)LOADINTELWORD(dat.y); |
| if (dat.pal == 0xff) { | if (dat.pal == 0xff) { |
| if (CPU_AH == 1) { | if (CPU_AH == 1) { |
| dat.pal = lio->gcolor1.fgcolor; | dat.pal = lio->work.fgcolor; |
| } | } |
| else { | else { |
| dat.pal = lio->gcolor1.bgcolor; | dat.pal = lio->work.bgcolor; |
| } | } |
| } | } |
| lio_pset(lio, x, y, dat.pal); | lio_pset(lio, x, y, dat.pal); |
| Line 56 REG8 lio_gpset(LIOWORK lio) { | Line 42 REG8 lio_gpset(LIOWORK lio) { |
| // ---- GPOINT2 | // ---- GPOINT2 |
| REG8 lio_gpoint2(LIOWORK lio) { | REG8 lio_gpoint2(GLIO lio) { |
| GPOINT2 dat; | GPOINT2 dat; |
| SINT16 x; | SINT16 x; |
| Line 65 REG8 lio_gpoint2(LIOWORK lio) { | Line 51 REG8 lio_gpoint2(LIOWORK lio) { |
| UINT32 addr; | UINT32 addr; |
| UINT sft; | UINT sft; |
| UINT pl; | UINT pl; |
| const BYTE *ptr; | const UINT8 *ptr; |
| lio_updatedraw(lio); | lio_updatedraw(lio); |
| i286_memstr_read(CPU_DS, CPU_BX, &dat, sizeof(dat)); | MEMR_READS(CPU_DS, CPU_BX, &dat, sizeof(dat)); |
| x = (SINT16)LOADINTELWORD(dat.x); | x = (SINT16)LOADINTELWORD(dat.x); |
| y = (SINT16)LOADINTELWORD(dat.y); | y = (SINT16)LOADINTELWORD(dat.y); |
| if ((lio->draw.x1 > x) || (lio->draw.x2 < x) || | if ((lio->draw.x1 > x) || (lio->draw.x2 < x) || |
| Line 78 const BYTE *ptr; | Line 64 const BYTE *ptr; |
| else { | else { |
| ret = 0; | ret = 0; |
| addr = (x >> 3) + (y * 80); | addr = (x >> 3) + (y * 80); |
| if (lio->scrn.top) { | if (lio->draw.flag & LIODRAW_UPPER) { |
| addr += 16000; | addr += 16000; |
| } | } |
| addr += lio->draw.base; | addr += lio->draw.base; |
| sft = (~x) & 7; | sft = (~x) & 7; |
| if (lio->scrn.plane & 0x80) { | if (!(lio->draw.flag & LIODRAW_MONO)) { |
| for (pl=0; pl<3; pl++) { | for (pl=0; pl<3; pl++) { |
| ptr = mem + addr + lioplaneadrs[pl]; | ptr = mem + addr + lioplaneadrs[pl]; |
| ret += (((*ptr) >> sft) & 1) << pl; | ret += (((*ptr) >> sft) & 1) << pl; |
| } | } |
| if (lio->gcolor1.palmode == 2) { | if (lio->draw.flag & LIODRAW_4BPP) { |
| ptr = mem + addr + lioplaneadrs[3]; | ptr = mem + addr + lioplaneadrs[3]; |
| ret += (((*ptr) >> sft) & 1) << 3; | ret += (((*ptr) >> sft) & 1) << 3; |
| } | } |
| } | } |
| else { | else { |
| ptr = mem + addr + lioplaneadrs[lio->scrn.plane & 3]; | ptr = mem + addr + lioplaneadrs[lio->draw.flag & LIODRAW_PMASK]; |
| ret = ((*ptr) >> sft) & 1; | ret = ((*ptr) >> sft) & 1; |
| } | } |
| } | } |