|
|
| version 1.1, 2003/10/16 17:58:27 | version 1.5, 2004/02/20 08:32:23 |
|---|---|
| Line 1 | Line 1 |
| #include "compiler.h" | #include "compiler.h" |
| #include "i286.h" | #include "cpucore.h" |
| #include "memory.h" | |
| #include "pccore.h" | #include "pccore.h" |
| #include "iocore.h" | #include "iocore.h" |
| #include "biosmem.h" | |
| #include "lio.h" | #include "lio.h" |
| extern BYTE screenupdate; | |
| static void lio_makescreen(void) { | static void lio_makescreen(void) { |
| UINT16 pos; | UINT16 pos; |
| Line 39 static void lio_makescreen(void) { | Line 36 static void lio_makescreen(void) { |
| BYTE lio_gscreen(void) { | BYTE lio_gscreen(void) { |
| LIOGSCREEN data; | LIOGSCREEN data; |
| LIO_SCRN scrn; | LIO_SCRN scrn; |
| BOOL screenmodechange = FALSE; | BOOL screenmodechange = FALSE; |
| BYTE bit; | BYTE bit; |
| int disp; | int disp; |
| i286_memstr_read(I286_DS, I286_BX, &data, sizeof(data)); | i286_memstr_read(CPU_DS, CPU_BX, &data, sizeof(data)); |
| if (data.mode == 0xff) { | if (data.mode == 0xff) { |
| data.mode = lio.gscreen.mode; | data.mode = lio.gscreen.mode; |
| } | } |
| else if (data.mode != lio.gscreen.mode) { | if (data.mode > 4) { |
| goto gscreen_err5; | |
| } | |
| else if ((data.mode >= 2) && (!(mem[MEMB_PRXCRT] & 0x40))) { | |
| goto gscreen_err5; | |
| } | |
| if (data.mode != lio.gscreen.mode) { | |
| screenmodechange = TRUE; | screenmodechange = TRUE; |
| } | } |
| if (data.sw == 0xff) { | if (data.sw == 0xff) { |
| Line 156 BYTE lio_gscreen(void) { | Line 160 BYTE lio_gscreen(void) { |
| lio.scrn = scrn; | lio.scrn = scrn; |
| lio_makeviewmask(); | lio_makeviewmask(); |
| lio_makescreen(); | lio_makescreen(); |
| return(0); | return(LIO_SUCCESS); |
| gscreen_err5: | |
| return(LIO_ILLEGALFUNC); | |
| } | } |