|
|
| version 1.10, 2004/02/21 20:48:52 | version 1.16, 2005/05/20 13:59:47 |
|---|---|
| Line 9 | Line 9 |
| typedef struct { | typedef struct { |
| BYTE mode; | UINT8 mode; |
| BYTE sw; | UINT8 sw; |
| BYTE act; | UINT8 act; |
| BYTE disp; | UINT8 disp; |
| } GSCREEN; | } GSCREEN; |
| typedef struct { | typedef struct { |
| BYTE x1[2]; | UINT8 x1[2]; |
| BYTE y1[2]; | UINT8 y1[2]; |
| BYTE x2[2]; | UINT8 x2[2]; |
| BYTE y2[2]; | UINT8 y2[2]; |
| BYTE vdraw_bg; | UINT8 vdraw_bg; |
| BYTE vdraw_ln; | UINT8 vdraw_ln; |
| } GVIEW; | } GVIEW; |
| typedef struct { | typedef struct { |
| BYTE dummy; | UINT8 dummy; |
| BYTE bgcolor; | UINT8 bgcolor; |
| BYTE bdcolor; | UINT8 bdcolor; |
| BYTE fgcolor; | UINT8 fgcolor; |
| BYTE palmode; | UINT8 palmode; |
| } GCOLOR1; | } GCOLOR1; |
| typedef struct { | typedef struct { |
| BYTE pal; | UINT8 pal; |
| BYTE color1; | UINT8 color1; |
| BYTE color2; | UINT8 color2; |
| } GCOLOR2; | } GCOLOR2; |
| Line 45 REG8 lio_ginit(GLIO lio) { | Line 45 REG8 lio_ginit(GLIO lio) { |
| UINT i; | UINT i; |
| vramop.operate &= VOP_ACCESSMASK; | vramop.operate &= ~(1 << VOPBIT_ACCESS); |
| i286_vram_dispatch(vramop.operate); | MEMM_VRAM(vramop.operate); |
| bios0x18_42(0x80); | bios0x18_42(0x80); |
| bios0x18_40(); | bios0x18_40(); |
| iocore_out8(0x006a, 0); | iocore_out8(0x006a, 0); |
| Line 66 REG8 lio_ginit(GLIO lio) { | Line 66 REG8 lio_ginit(GLIO lio) { |
| STOREINTELWORD(lio->work.viewx2, 639); | STOREINTELWORD(lio->work.viewx2, 639); |
| STOREINTELWORD(lio->work.viewy2, 399); | STOREINTELWORD(lio->work.viewy2, 399); |
| lio->palmode = 0; | lio->palmode = 0; |
| i286_memstr_write(CPU_DS, 0x0620, &lio->work, sizeof(lio->work)); | MEMR_WRITES(CPU_DS, 0x0620, &lio->work, sizeof(lio->work)); |
| i286_membyte_write(CPU_DS, 0x0a08, lio->palmode); | MEMR_WRITE8(CPU_DS, 0x0a08, lio->palmode); |
| return(LIO_SUCCESS); | return(LIO_SUCCESS); |
| } | } |
| Line 93 REG8 lio_gscreen(GLIO lio) { | Line 93 REG8 lio_gscreen(GLIO lio) { |
| else { | else { |
| colorbit = 4; | colorbit = 4; |
| } | } |
| i286_memstr_read(CPU_DS, CPU_BX, &dat, sizeof(dat)); | MEMR_READS(CPU_DS, CPU_BX, &dat, sizeof(dat)); |
| scrnmode = dat.mode; | scrnmode = dat.mode; |
| if (scrnmode == 0xff) { | if (scrnmode == 0xff) { |
| scrnmode = lio->work.scrnmode; | scrnmode = lio->work.scrnmode; |
| Line 181 REG8 lio_gscreen(GLIO lio) { | Line 181 REG8 lio_gscreen(GLIO lio) { |
| } | } |
| lio->work.scrnmode = scrnmode; | lio->work.scrnmode = scrnmode; |
| pos = lio->work.pos; | |
| switch(scrnmode) { | switch(scrnmode) { |
| case 0: | case 0: |
| mode = (pos)?0x40:0x80; | mode = (pos)?0x40:0x80; |
| Line 200 REG8 lio_gscreen(GLIO lio) { | Line 201 REG8 lio_gscreen(GLIO lio) { |
| break; | break; |
| } | } |
| mode |= disp << 4; | mode |= disp << 4; |
| TRACEOUT(("bios1842 - %.2x", mode)); | |
| bios0x18_42(mode); | bios0x18_42(mode); |
| iocore_out8(0x00a6, lio->work.access); | iocore_out8(0x00a6, lio->work.access); |
| i286_memstr_write(CPU_DS, 0x0620, &lio->work, sizeof(lio->work)); | MEMR_WRITES(CPU_DS, 0x0620, &lio->work, sizeof(lio->work)); |
| return(LIO_SUCCESS); | return(LIO_SUCCESS); |
| gscreen_err5: | gscreen_err5: |
| Line 223 REG8 lio_gview(GLIO lio) { | Line 223 REG8 lio_gview(GLIO lio) { |
| int x2; | int x2; |
| int y2; | int y2; |
| i286_memstr_read(CPU_DS, CPU_BX, &dat, sizeof(dat)); | MEMR_READS(CPU_DS, CPU_BX, &dat, sizeof(dat)); |
| x1 = (SINT16)LOADINTELWORD(dat.x1); | x1 = (SINT16)LOADINTELWORD(dat.x1); |
| y1 = (SINT16)LOADINTELWORD(dat.y1); | y1 = (SINT16)LOADINTELWORD(dat.y1); |
| x2 = (SINT16)LOADINTELWORD(dat.x2); | x2 = (SINT16)LOADINTELWORD(dat.x2); |
| Line 235 REG8 lio_gview(GLIO lio) { | Line 235 REG8 lio_gview(GLIO lio) { |
| STOREINTELWORD(lio->work.viewy1, (UINT16)y1); | STOREINTELWORD(lio->work.viewy1, (UINT16)y1); |
| STOREINTELWORD(lio->work.viewx2, (UINT16)x2); | STOREINTELWORD(lio->work.viewx2, (UINT16)x2); |
| STOREINTELWORD(lio->work.viewy2, (UINT16)y2); | STOREINTELWORD(lio->work.viewy2, (UINT16)y2); |
| i286_memstr_write(CPU_DS, 0x0620, &lio->work, sizeof(lio->work)); | MEMR_WRITES(CPU_DS, 0x0620, &lio->work, sizeof(lio->work)); |
| return(LIO_SUCCESS); | return(LIO_SUCCESS); |
| } | } |
| Line 246 REG8 lio_gcolor1(GLIO lio) { | Line 246 REG8 lio_gcolor1(GLIO lio) { |
| GCOLOR1 dat; | GCOLOR1 dat; |
| i286_memstr_read(CPU_DS, CPU_BX, &dat, sizeof(dat)); | MEMR_READS(CPU_DS, CPU_BX, &dat, sizeof(dat)); |
| if (dat.bgcolor != 0xff) { | if (dat.bgcolor != 0xff) { |
| lio->work.bgcolor = dat.bgcolor; | lio->work.bgcolor = dat.bgcolor; |
| } | } |
| Line 270 REG8 lio_gcolor1(GLIO lio) { | Line 270 REG8 lio_gcolor1(GLIO lio) { |
| } | } |
| lio->palmode = dat.palmode; | lio->palmode = dat.palmode; |
| } | } |
| i286_memstr_write(CPU_DS, 0x0620, &lio->work, sizeof(lio->work)); | MEMR_WRITES(CPU_DS, 0x0620, &lio->work, sizeof(lio->work)); |
| i286_membyte_write(CPU_DS, 0x0a08, lio->palmode); | MEMR_WRITE8(CPU_DS, 0x0a08, lio->palmode); |
| return(LIO_SUCCESS); | return(LIO_SUCCESS); |
| gcolor1_err5: | gcolor1_err5: |
| Line 285 REG8 lio_gcolor2(GLIO lio) { | Line 285 REG8 lio_gcolor2(GLIO lio) { |
| GCOLOR2 dat; | GCOLOR2 dat; |
| i286_memstr_read(CPU_DS, CPU_BX, &dat, sizeof(dat)); | MEMR_READS(CPU_DS, CPU_BX, &dat, sizeof(dat)); |
| if (dat.pal >= ((lio->palmode == 2)?16:8)) { | if (dat.pal >= ((lio->palmode == 2)?16:8)) { |
| goto gcolor2_err5; | goto gcolor2_err5; |
| } | } |
| Line 302 REG8 lio_gcolor2(GLIO lio) { | Line 302 REG8 lio_gcolor2(GLIO lio) { |
| gdc_setanalogpal(dat.pal, offsetof(RGB32, p.g), | gdc_setanalogpal(dat.pal, offsetof(RGB32, p.g), |
| (UINT8)(dat.color2 & 0x0f)); | (UINT8)(dat.color2 & 0x0f)); |
| } | } |
| i286_memstr_write(CPU_DS, 0x0620, &lio->work, sizeof(lio->work)); | MEMR_WRITES(CPU_DS, 0x0620, &lio->work, sizeof(lio->work)); |
| return(LIO_SUCCESS); | return(LIO_SUCCESS); |
| gcolor2_err5: | gcolor2_err5: |