|
|
| version 1.2, 2004/08/07 10:53:01 | version 1.6, 2005/02/04 06:42:12 |
|---|---|
| Line 8 | 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 22 void width80x25_200l(void) { // 8 | Line 18 void width80x25_200l(void) { // 8 |
| UINT8 *lp; | UINT8 *lp; |
| UINT x; | UINT x; |
| REG8 udtmp; | REG8 udtmp; |
| REG8 dirty; | |
| UINT8 work[MAKETEXT_ROW * 3]; | UINT8 work[MAKETEXT_ROW * 3]; |
| UINT32 skipline; | |
| UINT lines; | UINT lines; |
| UINT i; | UINT i; |
| Line 36 void width80x25_200l(void) { // 8 | Line 32 void width80x25_200l(void) { // 8 |
| do { | do { |
| x = makescrn.surfcx; | x = makescrn.surfcx; |
| do { | do { |
| udtmp = updatetmp[pos]; | udtmp = TRAMUPDATE(pos); |
| if (udtmp & dispflg) { | dirty = (udtmp & makescrn.dispflag); |
| updatetmp[pos] = (UINT8)(udtmp & (~dispflg)); | if (dirty) { |
| TRAMUPDATE(pos) = (UINT8)(udtmp ^ dirty); | |
| newline = TRUE; | newline = TRUE; |
| ZeroMemory(work, sizeof(work)); | if (dirty & UPDATE_TRAM) { |
| skipline = makechr8(work, pos, fontcy, udtmp); | ZeroMemory(work, sizeof(work)); |
| makemix_mix(dst, SURFACE_WIDTH * 2, | makechr8(work, pos, fontcy, udtmp); |
| work, dispp + (pos << 5), fontcy); | makemix_mixtext(dst, SURFACE_WIDTH * 2, work, fontcy); |
| makemix_doubler(dst, fontcy, skipline); | } |
| if (dirty & UPDATE_VRAM) { | |
| makemix_mixgrph(dst, SURFACE_WIDTH * 2, | |
| makescrn.disp1 + TRAM2GRAM(pos), fontcy); | |
| } | |
| if (fontcy < makescrn.fontcy) { | if (fontcy < makescrn.fontcy) { |
| makemix_remcpy(dst, fontcy * 2, makescrn.fontcy * 2); | makemix_cpy200(dst, fontcy, makescrn.fontcy); |
| } | } |
| } | } |
| pos = LOW11(pos + 1); | pos = LOW11(pos + 1); |
| Line 54 void width80x25_200l(void) { // 8 | Line 55 void width80x25_200l(void) { // 8 |
| } while(--x); | } while(--x); |
| pos = LOW11(pos + makescrn.surfrx); | pos = LOW11(pos + makescrn.surfrx); |
| if (updatetmp[LOW11(pos - 1)] & 4) { // 縦倍角描画だったら | if (TRAMUPDATE(LOW11(pos - 1)) & 4) { // 縦倍角描画だったら |
| makescrn.fontycnt += makescrn.charcy; | makescrn.fontycnt += makescrn.charcy; |
| } | } |
| else { | else { |
| Line 83 void width80x12_200l(void) { // 8 | Line 84 void width80x12_200l(void) { // 8 |
| UINT8 *lp; | UINT8 *lp; |
| UINT x; | UINT x; |
| REG8 udtmp; | REG8 udtmp; |
| REG8 dirty; | |
| 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; |
| Line 98 const UINT8 *src; | Line 99 const UINT8 *src; |
| do { | do { |
| x = makescrn.surfcx; | x = makescrn.surfcx; |
| do { | do { |
| udtmp = updatetmp[pos]; | udtmp = TRAMUPDATE(pos); |
| if (udtmp & dispflg) { | dirty = (udtmp & makescrn.dispflag); |
| updatetmp[pos] = (UINT8)(udtmp & (~dispflg)); | if (dirty) { |
| TRAMUPDATE(pos) = (UINT8)(udtmp ^ dirty); | |
| newline = TRUE; | newline = TRUE; |
| ZeroMemory(work, sizeof(work)); | if (dirty & UPDATE_TRAM) { |
| skipline = makechr16(work, pos, fontcy, udtmp); | ZeroMemory(work, sizeof(work)); |
| src = dispp + (LOW10(pos) << 5); | makechr16(work, pos, fontcy, udtmp); |
| makemix_mix(dst, SURFACE_WIDTH * 4, work, src, fontcy); | makemix_mixtext(dst, SURFACE_WIDTH * 4, work, fontcy); |
| makemix_mix(dst + SURFACE_WIDTH * 2, SURFACE_WIDTH * 4, | makemix_mixtext(dst + SURFACE_WIDTH * 2, SURFACE_WIDTH * 4, |
| work + MAKETEXT_STEP, src + GRAM_HALFSTEP, fontcy); | work + MAKETEXT_STEP, fontcy); |
| makemix_doubler(dst, fontcy * 2, skipline); | } |
| if (dirty & UPDATE_VRAM) { | |
| src = makescrn.disp1 + TRAM2GRAM(LOW10(pos)); | |
| makemix_mixgrph(dst, SURFACE_WIDTH * 4, src, fontcy); | |
| makemix_mixgrph(dst + SURFACE_WIDTH * 2, SURFACE_WIDTH * 4, | |
| src + GRAM_HALFSTEP, fontcy); | |
| } | |
| if (fontcy < makescrn.fontcy) { | if (fontcy < makescrn.fontcy) { |
| makemix_remcpy(dst, fontcy * 4, makescrn.fontcy * 4); | makemix_cpy200(dst, fontcy * 2, makescrn.fontcy * 2); |
| } | } |
| } | } |
| pos = LOW11(pos + 1); | pos = LOW11(pos + 1); |
| Line 118 const UINT8 *src; | Line 126 const UINT8 *src; |
| } while(--x); | } while(--x); |
| pos = LOW11(pos + makescrn.surfrx); | pos = LOW11(pos + makescrn.surfrx); |
| if (updatetmp[LOW11(pos - 1)] & 4) { // 縦倍角描画だったら | if (TRAMUPDATE(LOW11(pos - 1)) & 4) { // 縦倍角描画だったら |
| makescrn.fontycnt += makescrn.charcy; | makescrn.fontycnt += makescrn.charcy; |
| } | } |
| else { | else { |
| Line 148 void width80x20l(void) { | Line 156 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; |
| Line 161 void width80x20l(void) { | Line 168 void width80x20l(void) { |
| do { | do { |
| x = makescrn.surfcx; | x = makescrn.surfcx; |
| do { | do { |
| udtmp = updatetmp[pos]; | udtmp = TRAMUPDATE(pos); |
| if (udtmp & UPDATE_TRAM) { | if (udtmp & UPDATE_TRAM) { |
| updatetmp[pos] = (UINT8)(udtmp & (~UPDATE_TRAM)); | TRAMUPDATE(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_settext(dst, SURFACE_WIDTH * 2, work, fontcy); |
| makemix_doubler(dst, fontcy, skipline); | |
| if (fontcy < makescrn.fontcy) { | if (fontcy < makescrn.fontcy) { |
| makemix_remcpy(dst, fontcy * 2, makescrn.fontcy * 2); | makemix_cpy200(dst, fontcy, makescrn.fontcy); |
| } | } |
| makemix_ul20(dst + SURFACE_WIDTH * makescrn.fontcy * 2, | makemix_ul20(dst + SURFACE_WIDTH * makescrn.fontcy * 2, pos); |
| pos, 0x40404040); | |
| } | } |
| pos = LOW11(pos + 1); | pos = LOW11(pos + 1); |
| dst += 8; | dst += 8; |
| } while(--x); | } while(--x); |
| pos = LOW11(pos + makescrn.surfrx); | pos = LOW11(pos + makescrn.surfrx); |
| if (updatetmp[LOW11(pos - 1)] & 4) { // 縦倍角描画だったら | if (TRAMUPDATE(LOW11(pos - 1)) & 4) { // 縦倍角描画だったら |
| makescrn.fontycnt += makescrn.charcy; | makescrn.fontycnt += makescrn.charcy; |
| } | } |
| else { | else { |
| Line 210 void width80x10l(void) { | Line 215 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; |
| Line 223 void width80x10l(void) { | Line 227 void width80x10l(void) { |
| do { | do { |
| x = makescrn.surfcx; | x = makescrn.surfcx; |
| do { | do { |
| udtmp = updatetmp[pos]; | udtmp = TRAMUPDATE(pos); |
| if (udtmp & UPDATE_TRAM) { | if (udtmp & UPDATE_TRAM) { |
| updatetmp[pos] = (UINT8)(udtmp & (~UPDATE_TRAM)); | TRAMUPDATE(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_settext(dst, SURFACE_WIDTH * 4, work, fontcy); |
| makemix_txt(dst + SURFACE_WIDTH * 2, SURFACE_WIDTH * 4, | makemix_settext(dst + SURFACE_WIDTH * 2, SURFACE_WIDTH * 4, |
| work + MAKETEXT_STEP, fontcy); | work + MAKETEXT_STEP, fontcy); |
| makemix_doubler(dst, fontcy * 2, skipline); | |
| if (fontcy < makescrn.fontcy) { | if (fontcy < makescrn.fontcy) { |
| makemix_remcpy(dst, fontcy * 4, makescrn.fontcy * 4); | makemix_cpy200(dst, fontcy * 2, makescrn.fontcy * 2); |
| } | } |
| makemix_ul10(dst + SURFACE_WIDTH * makescrn.fontcy * 4, | makemix_ul10(dst + SURFACE_WIDTH * makescrn.fontcy * 4, pos); |
| pos, 0x40404040); | |
| } | } |
| pos = LOW11(pos + 1); | pos = LOW11(pos + 1); |
| dst += 8; | dst += 8; |
| } while(--x); | } while(--x); |
| pos = LOW11(pos + makescrn.surfrx); | pos = LOW11(pos + makescrn.surfrx); |
| if (updatetmp[LOW11(pos - 1)] & 4) { // 縦倍角描画だったら | if (TRAMUPDATE(LOW11(pos - 1)) & 4) { // 縦倍角描画だったら |
| makescrn.fontycnt += makescrn.charcy; | makescrn.fontycnt += makescrn.charcy; |
| } | } |
| else { | else { |