|
|
| version 1.3, 2004/08/10 08:28:49 | version 1.6, 2005/02/04 06:42:12 |
|---|---|
| Line 18 void width80x25_200h(void) { // 8 | Line 18 void width80x25_200h(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]; |
| const UINT8 *src; | const UINT8 *src; |
| UINT lines; | UINT lines; |
| Line 32 const UINT8 *src; | Line 33 const UINT8 *src; |
| do { | do { |
| x = makescrn.surfcx; | x = makescrn.surfcx; |
| do { | do { |
| udtmp = updatetmp[pos]; | udtmp = TRAMUPDATE(pos); |
| if (udtmp & makescrn.dispflag) { | dirty = udtmp & makescrn.dispflag; |
| updatetmp[pos] = (UINT8)(udtmp & (~makescrn.dispflag)); | if (dirty) { |
| TRAMUPDATE(pos) = (UINT8)(udtmp ^ dirty); | |
| newline = TRUE; | newline = TRUE; |
| ZeroMemory(work, sizeof(work)); | if (dirty & UPDATE_TRAM) { |
| makechr16(work, pos, fontcy, udtmp); | ZeroMemory(work, sizeof(work)); |
| src = makescrn.disp1 + (pos << 5); | makechr16(work, pos, fontcy, udtmp); |
| makemix_mix(dst, SURFACE_WIDTH * 2, work, src, fontcy); | makemix_mixtext(dst, SURFACE_WIDTH * 2, work, fontcy); |
| makemix_mix(dst + SURFACE_WIDTH, SURFACE_WIDTH * 2, | makemix_mixtext(dst + SURFACE_WIDTH, SURFACE_WIDTH * 2, |
| work + MAKETEXT_STEP, src, fontcy); | work + MAKETEXT_STEP, fontcy); |
| } | |
| if (dirty & UPDATE_VRAM) { | |
| src = makescrn.disp1 + TRAM2GRAM(pos); | |
| makemix_mixgrph(dst, SURFACE_WIDTH * 2, src, fontcy); | |
| makemix_mixgrph(dst + SURFACE_WIDTH, SURFACE_WIDTH * 2, | |
| src, fontcy); | |
| } | |
| if (fontcy < makescrn.fontcy) { | if (fontcy < makescrn.fontcy) { |
| makemix_remcpy(dst, fontcy * 2, makescrn.fontcy * 2); | makemix_cpy400(dst, fontcy * 2, makescrn.fontcy * 2); |
| } | } |
| } | } |
| pos = LOW11(pos + 1); | pos = LOW11(pos + 1); |
| Line 51 const UINT8 *src; | Line 60 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 94 const UINT8 *src; | Line 103 const UINT8 *src; |
| do { | do { |
| x = makescrn.surfcx; | x = makescrn.surfcx; |
| do { | do { |
| udtmp = updatetmp[pos]; | udtmp = TRAMUPDATE(pos); |
| if (udtmp & UPDATE_VRAM) { | if (udtmp & UPDATE_TVRAM) { |
| updatetmp[pos] = (UINT8)(udtmp & (~UPDATE_VRAM)); | TRAMUPDATE(pos) = (UINT8)(udtmp & (~UPDATE_TVRAM)); |
| newline = TRUE; | newline = TRUE; |
| ZeroMemory(work, sizeof(work)); | if (udtmp & UPDATE_TRAM) { |
| makechr16(work, pos, fontcy, udtmp); | ZeroMemory(work, sizeof(work)); |
| src = GRP_RAM + (pos << 5); | makechr16(work, pos, fontcy, udtmp); |
| makemix_mix(dst + SURFACE_WIDTH * 0, SURFACE_WIDTH * 2, | makemix_mixtext(dst + SURFACE_WIDTH * 0, SURFACE_WIDTH * 2, |
| work, src + GRAM_BANK0, fontcy); | work, fontcy); |
| makemix_mix(dst + SURFACE_WIDTH * 1, SURFACE_WIDTH * 2, | makemix_mixtext(dst + SURFACE_WIDTH * 1, SURFACE_WIDTH * 2, |
| work + MAKETEXT_STEP, src + GRAM_BANK1, fontcy); | work + MAKETEXT_STEP, fontcy); |
| } | |
| src = gram + TRAM2GRAM(pos); | |
| if (udtmp & UPDATE_VRAM0) { | |
| makemix_mixgrph(dst + SURFACE_WIDTH * 0, SURFACE_WIDTH * 2, | |
| src + GRAM_BANK0, fontcy); | |
| } | |
| if (udtmp & UPDATE_VRAM1) { | |
| makemix_mixgrph(dst + SURFACE_WIDTH * 1, SURFACE_WIDTH * 2, | |
| src + GRAM_BANK1, fontcy); | |
| } | |
| if (fontcy < makescrn.fontcy) { | if (fontcy < makescrn.fontcy) { |
| makemix_remcpy(dst, fontcy * 2, makescrn.fontcy * 2); | makemix_cpy400(dst, fontcy * 2, makescrn.fontcy * 2); |
| } | } |
| } | } |
| pos = LOW11(pos + 1); | pos = LOW11(pos + 1); |
| Line 114 const UINT8 *src; | Line 133 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 143 void width80x12_200h(void) { // 8 | Line 162 void width80x12_200h(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]; |
| const UINT8 *src; | const UINT8 *src; |
| UINT lines; | UINT lines; |
| Line 157 const UINT8 *src; | Line 177 const UINT8 *src; |
| do { | do { |
| x = makescrn.surfcx; | x = makescrn.surfcx; |
| do { | do { |
| udtmp = updatetmp[pos]; | udtmp = TRAMUPDATE(pos); |
| if (udtmp & makescrn.dispflag) { | dirty = udtmp & makescrn.dispflag; |
| updatetmp[pos] = (UINT8)(udtmp & (~makescrn.dispflag)); | if (dirty) { |
| TRAMUPDATE(pos) = (UINT8)(udtmp ^ dirty); | |
| newline = TRUE; | newline = TRUE; |
| ZeroMemory(work, sizeof(work)); | if (dirty & UPDATE_TRAM) { |
| makechr16(work, pos, fontcy, udtmp); | ZeroMemory(work, sizeof(work)); |
| src = makescrn.disp1 + (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, 0); | } |
| 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); | |
| } | |
| // makemix_doubler(dst, fontcy * 2, 0); | |
| 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 177 const UINT8 *src; | Line 205 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 220 const UINT8 *src; | Line 248 const UINT8 *src; |
| do { | do { |
| x = makescrn.surfcx; | x = makescrn.surfcx; |
| do { | do { |
| udtmp = updatetmp[pos]; | udtmp = TRAMUPDATE(pos); |
| if (udtmp & UPDATE_VRAM) { | if (udtmp & UPDATE_TVRAM) { |
| updatetmp[pos] = (UINT8)(udtmp & (~UPDATE_VRAM)); | TRAMUPDATE(pos) = (UINT8)(udtmp & (~UPDATE_TVRAM)); |
| newline = TRUE; | newline = TRUE; |
| ZeroMemory(work, sizeof(work)); | if (udtmp & UPDATE_TRAM) { |
| makechr16(work, pos, fontcy, udtmp); | ZeroMemory(work, sizeof(work)); |
| src = GRP_RAM + (LOW10(pos) << 5); | makechr16(work, pos, fontcy, udtmp); |
| makemix_mix(dst + SURFACE_WIDTH * 0, SURFACE_WIDTH * 4, | makemix_mixtext(dst + SURFACE_WIDTH * 0, SURFACE_WIDTH * 4, |
| work, src + GRAM_BANK0L, fontcy); | work, fontcy); |
| makemix_mix(dst + SURFACE_WIDTH * 1, SURFACE_WIDTH * 4, | makemix_mixtext(dst + SURFACE_WIDTH * 1, SURFACE_WIDTH * 4, |
| work, src + GRAM_BANK1L, fontcy); | 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_BANK0H, fontcy); | work + MAKETEXT_STEP, fontcy); |
| makemix_mix(dst + SURFACE_WIDTH * 3, SURFACE_WIDTH * 4, | makemix_mixtext(dst + SURFACE_WIDTH * 3, SURFACE_WIDTH * 4, |
| work + MAKETEXT_STEP, src + GRAM_BANK1H, fontcy); | work + MAKETEXT_STEP, fontcy); |
| } | |
| src = gram + TRAM2GRAM(LOW10(pos)); | |
| if (udtmp & UPDATE_VRAM0) { | |
| makemix_mixgrph(dst + SURFACE_WIDTH * 0, SURFACE_WIDTH * 4, | |
| src + GRAM_BANK0L, fontcy); | |
| makemix_mixgrph(dst + SURFACE_WIDTH * 2, SURFACE_WIDTH * 4, | |
| src + GRAM_BANK0H, fontcy); | |
| } | |
| if (udtmp & UPDATE_VRAM1) { | |
| makemix_mixgrph(dst + SURFACE_WIDTH * 1, SURFACE_WIDTH * 4, | |
| src + GRAM_BANK1L, fontcy); | |
| makemix_mixgrph(dst + SURFACE_WIDTH * 3, SURFACE_WIDTH * 4, | |
| src + GRAM_BANK1H, fontcy); | |
| } | |
| if (fontcy < makescrn.fontcy) { | if (fontcy < makescrn.fontcy) { |
| makemix_remcpy(dst, fontcy * 4, makescrn.fontcy * 4); | makemix_cpy400(dst, fontcy * 4, makescrn.fontcy * 4); |
| } | } |
| } | } |
| pos = LOW11(pos + 1); | pos = LOW11(pos + 1); |
| Line 244 const UINT8 *src; | Line 286 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 286 void width80x20h(void) { | Line 328 void width80x20h(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)); |
| makechr16(work, pos, fontcy, udtmp); | makechr16(work, pos, fontcy, udtmp); |
| makemix_txt(dst, SURFACE_WIDTH * 2, work, fontcy); | makemix_settext(dst, SURFACE_WIDTH * 2, work, fontcy); |
| makemix_txt(dst + SURFACE_WIDTH, SURFACE_WIDTH * 2, | makemix_settext(dst + SURFACE_WIDTH, SURFACE_WIDTH * 2, |
| work + MAKETEXT_STEP, fontcy); | work + MAKETEXT_STEP, fontcy); |
| if (fontcy < makescrn.fontcy) { | if (fontcy < makescrn.fontcy) { |
| makemix_remcpy(dst, fontcy * 2, makescrn.fontcy * 2); | makemix_cpy400(dst, fontcy * 2, makescrn.fontcy * 2); |
| } | } |
| makemix_ul20(dst + SURFACE_WIDTH * makescrn.fontcy * 2, | makemix_ul20(dst + SURFACE_WIDTH * makescrn.fontcy * 2, pos); |
| pos, 0); | |
| } | } |
| 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 348 void width80x10h(void) { | Line 389 void width80x10h(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)); |
| 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, 0); | |
| 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, 0); | |
| } | } |
| 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 { |