|
|
| version 1.1, 2004/08/07 07:19:56 | version 1.4, 2004/08/10 08:28:49 |
|---|---|
| Line 1 | Line 1 |
| #include "compiler.h" | #include "compiler.h" |
| #include "scrnmng.h" | #include "scrnmng.h" |
| #include "pccore.h" | #include "pccore.h" |
| #include "iocore.h" | |
| #include "vram.h" | #include "vram.h" |
| #include "scrndraw.h" | #include "scrndraw.h" |
| #include "makescrn.h" | #include "makescrn.h" |
| Line 9 | Line 8 |
| #include "font.h" | #include "font.h" |
| extern BYTE dispflg; | |
| extern BYTE *dispp; | |
| void width80x25_200l(void) { // 80x25 200line | void width80x25_200l(void) { // 80x25 200line |
| UINT fontcy; | UINT fontcy; |
| Line 24 void width80x25_200l(void) { // 8 | Line 19 void width80x25_200l(void) { // 8 |
| UINT x; | UINT x; |
| REG8 udtmp; | REG8 udtmp; |
| UINT8 work[MAKETEXT_ROW * 3]; | UINT8 work[MAKETEXT_ROW * 3]; |
| UINT32 skipline; | |
| UINT lines; | UINT lines; |
| UINT i; | UINT i; |
| fontcy = min(makescrn.fontcy, MAKETEXT_ROW); | fontcy = min(makescrn.fontcy, MAKETEXT_ROW); |
| pos = crtc.s.TXT_TOP; | pos = makescrn.vramtop; |
| dst = screenmap; | dst = screenmap; |
| newline = FALSE; | newline = FALSE; |
| y = makescrn.surfcy; | y = makescrn.surfcy; |
| Line 38 void width80x25_200l(void) { // 8 | Line 32 void width80x25_200l(void) { // 8 |
| x = makescrn.surfcx; | x = makescrn.surfcx; |
| do { | do { |
| udtmp = updatetmp[pos]; | udtmp = updatetmp[pos]; |
| if (udtmp & dispflg) { | if (udtmp & makescrn.dispflag) { |
| updatetmp[pos] = (UINT8)(udtmp & (~dispflg)); | updatetmp[pos] = (UINT8)(udtmp & (~makescrn.dispflag)); |
| newline = TRUE; | newline = TRUE; |
| ZeroMemory(work, sizeof(work)); | ZeroMemory(work, sizeof(work)); |
| skipline = makechr8(work, pos, fontcy, udtmp); | makechr8(work, pos, fontcy, udtmp); |
| makemix_mix(dst, SURFACE_WIDTH * 2, | makemix_mix(dst, SURFACE_WIDTH * 2, |
| work, dispp + (pos << 5), fontcy); | work, makescrn.disp1 + (pos << 5), fontcy); |
| makemix_doubler(dst, fontcy, skipline); | makemix_doubler(dst, fontcy, 0x40404040); |
| if (fontcy < makescrn.fontcy) { | if (fontcy < makescrn.fontcy) { |
| makemix_remcpy(dst, fontcy * 2, makescrn.fontcy * 2); | makemix_remcpy(dst, fontcy * 2, makescrn.fontcy * 2); |
| } | } |
| Line 85 void width80x12_200l(void) { // 8 | Line 79 void width80x12_200l(void) { // 8 |
| UINT x; | UINT x; |
| REG8 udtmp; | REG8 udtmp; |
| UINT8 work[MAKETEXT_STEP * 2]; | UINT8 work[MAKETEXT_STEP * 2]; |
| UINT32 skipline; | |
| const UINT8 *src; | const UINT8 *src; |
| UINT lines; | UINT lines; |
| UINT i; | UINT i; |
| fontcy = min(makescrn.fontcy, MAKETEXT_ROW); | fontcy = min(makescrn.fontcy, MAKETEXT_ROW); |
| pos = crtc.s.TXT_TOP; | pos = makescrn.vramtop; |
| dst = screenmap; | dst = screenmap; |
| newline = FALSE; | newline = FALSE; |
| y = makescrn.surfcy; | y = makescrn.surfcy; |
| Line 100 const UINT8 *src; | Line 93 const UINT8 *src; |
| x = makescrn.surfcx; | x = makescrn.surfcx; |
| do { | do { |
| udtmp = updatetmp[pos]; | udtmp = updatetmp[pos]; |
| if (udtmp & dispflg) { | if (udtmp & makescrn.dispflag) { |
| updatetmp[pos] = (UINT8)(udtmp & (~dispflg)); | updatetmp[pos] = (UINT8)(udtmp & (~makescrn.dispflag)); |
| newline = TRUE; | newline = TRUE; |
| ZeroMemory(work, sizeof(work)); | ZeroMemory(work, sizeof(work)); |
| skipline = makechr16(work, pos, fontcy, udtmp); | makechr16(work, pos, fontcy, udtmp); |
| src = dispp + (LOW10(pos) << 5); | src = makescrn.disp1 + (LOW10(pos) << 5); |
| makemix_mix(dst, SURFACE_WIDTH * 4, work, src, fontcy); | makemix_mix(dst, SURFACE_WIDTH * 4, work, src, fontcy); |
| makemix_mix(dst + SURFACE_WIDTH * 2, SURFACE_WIDTH * 4, | makemix_mix(dst + SURFACE_WIDTH * 2, SURFACE_WIDTH * 4, |
| work + MAKETEXT_STEP, src + GRAM_HALFSTEP, fontcy); | work + MAKETEXT_STEP, src + GRAM_HALFSTEP, fontcy); |
| makemix_doubler(dst, fontcy * 2, skipline); | makemix_doubler(dst, fontcy * 2, 0x40404040); |
| if (fontcy < makescrn.fontcy) { | if (fontcy < makescrn.fontcy) { |
| makemix_remcpy(dst, fontcy * 4, makescrn.fontcy * 4); | makemix_remcpy(dst, fontcy * 4, makescrn.fontcy * 4); |
| } | } |
| Line 149 void width80x20l(void) { | Line 142 void width80x20l(void) { |
| UINT x; | UINT x; |
| REG8 udtmp; | REG8 udtmp; |
| UINT8 work[MAKETEXT_ROW * 3]; | UINT8 work[MAKETEXT_ROW * 3]; |
| UINT32 skipline; | |
| UINT lines; | UINT lines; |
| UINT i; | UINT i; |
| fontcy = min(makescrn.fontcy, MAKETEXT_ROW); | fontcy = min(makescrn.fontcy, MAKETEXT_ROW); |
| pos = crtc.s.TXT_TOP; | pos = makescrn.vramtop; |
| dst = screenmap; | dst = screenmap; |
| newline = FALSE; | newline = FALSE; |
| y = makescrn.surfcy; | y = makescrn.surfcy; |
| Line 167 void width80x20l(void) { | Line 159 void width80x20l(void) { |
| updatetmp[pos] = (UINT8)(udtmp & (~UPDATE_TRAM)); | updatetmp[pos] = (UINT8)(udtmp & (~UPDATE_TRAM)); |
| newline = TRUE; | newline = TRUE; |
| ZeroMemory(work, sizeof(work)); | ZeroMemory(work, sizeof(work)); |
| skipline = makechr8(work, pos, fontcy, udtmp); | makechr8(work, pos, fontcy, udtmp); |
| makemix_txt(dst, SURFACE_WIDTH * 2, work, fontcy); | makemix_txt(dst, SURFACE_WIDTH * 2, work, fontcy); |
| makemix_doubler(dst, fontcy, skipline); | makemix_doubler(dst, fontcy, 0x40404040); |
| if (fontcy < makescrn.fontcy) { | if (fontcy < makescrn.fontcy) { |
| makemix_remcpy(dst, fontcy * 2, makescrn.fontcy * 2); | makemix_remcpy(dst, fontcy * 2, makescrn.fontcy * 2); |
| } | } |
| Line 211 void width80x10l(void) { | Line 203 void width80x10l(void) { |
| UINT x; | UINT x; |
| REG8 udtmp; | REG8 udtmp; |
| UINT8 work[MAKETEXT_STEP * 2]; | UINT8 work[MAKETEXT_STEP * 2]; |
| UINT32 skipline; | |
| UINT lines; | UINT lines; |
| UINT i; | UINT i; |
| fontcy = min(makescrn.fontcy, MAKETEXT_ROW); | fontcy = min(makescrn.fontcy, MAKETEXT_ROW); |
| pos = crtc.s.TXT_TOP; | pos = makescrn.vramtop; |
| dst = screenmap; | dst = screenmap; |
| newline = FALSE; | newline = FALSE; |
| y = makescrn.surfcy; | y = makescrn.surfcy; |
| Line 229 void width80x10l(void) { | Line 220 void width80x10l(void) { |
| updatetmp[pos] = (UINT8)(udtmp & (~UPDATE_TRAM)); | updatetmp[pos] = (UINT8)(udtmp & (~UPDATE_TRAM)); |
| newline = TRUE; | newline = TRUE; |
| ZeroMemory(work, sizeof(work)); | ZeroMemory(work, sizeof(work)); |
| skipline = makechr16(work, pos, fontcy, udtmp); | makechr16(work, pos, fontcy, udtmp); |
| makemix_txt(dst, SURFACE_WIDTH * 4, work, fontcy); | makemix_txt(dst, SURFACE_WIDTH * 4, work, fontcy); |
| makemix_txt(dst + SURFACE_WIDTH * 2, SURFACE_WIDTH * 4, | makemix_txt(dst + SURFACE_WIDTH * 2, SURFACE_WIDTH * 4, |
| work + MAKETEXT_STEP, fontcy); | work + MAKETEXT_STEP, fontcy); |
| makemix_doubler(dst, fontcy * 2, skipline); | makemix_doubler(dst, fontcy * 2, 0x40404040); |
| if (fontcy < makescrn.fontcy) { | if (fontcy < makescrn.fontcy) { |
| makemix_remcpy(dst, fontcy * 4, makescrn.fontcy * 4); | makemix_remcpy(dst, fontcy * 4, makescrn.fontcy * 4); |
| } | } |