|
|
| version 1.2, 2004/08/07 10:53:01 | version 1.5, 2004/08/10 08:28:49 |
|---|---|
| Line 12 | Line 12 |
| MAKESCRN makescrn; | MAKESCRN makescrn; |
| BYTE scrnallflash; | BYTE scrnallflash; |
| BYTE blinktest = 0; | |
| extern BYTE dispmode; | |
| static BYTE lastdisp = 0; | static BYTE lastdisp = 0; |
| BYTE dispflg; | |
| BYTE *dispp = &GRP_RAM[GRAM_BANK0]; | |
| BYTE *dispp2 = &GRP_RAM[GRAM_BANK1]; | |
| static BYTE blinktime = 1; | static BYTE blinktime = 1; |
| DWORD drawtime = 0; | DWORD drawtime = 0; |
| void init_draw(void) { | |
| makesub_initialize(); | |
| reflesh_palette(); | |
| lastdisp = 0; | |
| dispflg = UPDATE_TRAM | UPDATE_VRAM0; | |
| dispp = &GRP_RAM[GRAM_BANK0]; | |
| } | |
| static void fillupdatetmp(void) { | static void fillupdatetmp(void) { |
| UINT32 *p; | UINT32 *p; |
| Line 63 static void flashupdatetmp(void) { | Line 46 static void flashupdatetmp(void) { |
| y = crtc.s.TXT_YL; | y = crtc.s.TXT_YL; |
| do { | do { |
| for (x=0; x<crtc.s.TXT_XL; x++) { | for (x=0; x<crtc.s.TXT_XL; x++) { |
| if (!(tram[TRAM_ATR + LOW11(posl + x)] & X1ATR_Yx2)) { | if (!(tram[TRAM_ATR + LOW11(posl + x)] & TRAMATR_Yx2)) { |
| break; | break; |
| } | } |
| } | } |
| Line 75 static void flashupdatetmp(void) { | Line 58 static void flashupdatetmp(void) { |
| atr = (tram[TRAM_ATR + posl] << 8) | tram[TRAM_ATR + posr]; | atr = (tram[TRAM_ATR + posl] << 8) | tram[TRAM_ATR + posr]; |
| udt = udtbase; | udt = udtbase; |
| if (!y2) { | if (!y2) { |
| if (atr & (X1ATR_Yx2 << 8)) { | if (atr & (TRAMATR_Yx2 << 8)) { |
| udt |= (UPDATE_TRAM | 1) << 8; // º¸ÄÙ¤ì½ÄÇÜ³Ñ | udt |= (UPDATE_TRAM | 1) << 8; // º¸ÄÙ¤ì½ÄÇÜ³Ñ |
| } | } |
| else { | else { |
| Line 83 static void flashupdatetmp(void) { | Line 66 static void flashupdatetmp(void) { |
| } | } |
| } | } |
| if (!y2) { | if (!y2) { |
| if (atr & (X1ATR_Yx2 << 0)) { | if (atr & (TRAMATR_Yx2 << 0)) { |
| udt |= (UPDATE_TRAM | 1) << 0; // ±¦ÄÙ¤ì½ÄÇÜ³Ñ | udt |= (UPDATE_TRAM | 1) << 0; // ±¦ÄÙ¤ì½ÄÇÜ³Ñ |
| } | } |
| else { | else { |
| y2 = TRUE; | y2 = TRUE; |
| } | } |
| } | } |
| if (atr & (X1ATR_Xx2 << 8)) { // º¸Â¦ÇܳÑ? | if (atr & (TRAMATR_Xx2 << 8)) { // º¸Â¦ÇܳÑ? |
| udt |= 0x0812; | udt |= 0x0812; |
| } | } |
| if (atr & (X1ATR_Xx2 << 0)) { // ±¦Â¦ÇܳÑ? | if (atr & (TRAMATR_Xx2 << 0)) { // ±¦Â¦ÇܳÑ? |
| udt |= 0x0008; | udt |= 0x0008; |
| } | } |
| if ((updatetmp[posl] ^ (udt >> 8)) & 0x1f) { | if ((updatetmp[posl] ^ (udt >> 8)) & 0x1f) { |
| Line 223 static BRESULT updateblink(void) { | Line 206 static BRESULT updateblink(void) { |
| else { | else { |
| blinktime = 30 - 1; | blinktime = 30 - 1; |
| pos = makescrn.vramtop; | pos = makescrn.vramtop; |
| blinktest ^= 0x10; | makescrn.blinktest ^= 0x10; |
| update = 0; | update = 0; |
| r = makescrn.vramsize; | r = makescrn.vramsize; |
| while(r) { | while(r) { |
| Line 245 static BRESULT updateblink(void) { | Line 228 static BRESULT updateblink(void) { |
| } | } |
| // --------------------------------------------------------------------------- | // ---- |
| static void changemodes(void) { | |
| lastdisp = crtc.e.dispmode; | |
| if (!(lastdisp & SCRN_BANK1)) { | |
| makescrn.disp1 = GRP_RAM + GRAM_BANK0; | |
| makescrn.disp2 = GRP_RAM + GRAM_BANK1; | |
| makescrn.dispflag = UPDATE_TRAM | UPDATE_VRAM0; | |
| } | |
| else { | |
| makescrn.disp1 = GRP_RAM + GRAM_BANK1; | |
| makescrn.disp2 = GRP_RAM + GRAM_BANK0; | |
| makescrn.dispflag = UPDATE_TRAM | UPDATE_VRAM1; | |
| } | |
| scrnallflash = 1; | |
| makescrn.palandply = 1; | |
| } | |
| static void x1vram_adjust(void) { | static void changecrtc(void) { |
| REG8 widthmode; | REG8 widthmode; |
| UINT fontcy; | UINT fontcy; |
| Line 259 static void x1vram_adjust(void) { | Line 259 static void x1vram_adjust(void) { |
| makescrn.vramtop = LOW11(crtc.s.TXT_TOP); | makescrn.vramtop = LOW11(crtc.s.TXT_TOP); |
| if (crtc.s.TXT_XL <= 40) { | if (crtc.s.TXT_XL <= 40) { |
| if (dispmode & SCRN_DRAW4096) { | if (lastdisp & SCRN_DRAW4096) { |
| widthmode = SCRNWIDTHMODE_4096; | widthmode = SCRNWIDTHMODE_4096; |
| } | } |
| else { | else { |
| Line 341 void scrnupdate(void) { | Line 341 void scrnupdate(void) { |
| corestat.drawframe = 0; | corestat.drawframe = 0; |
| ddrawflash = FALSE; | ddrawflash = FALSE; |
| if (lastdisp != dispmode) { | if (lastdisp != crtc.e.dispmode) { |
| lastdisp = dispmode; | changemodes(); |
| scrnallflash = 1; | |
| makescrn.palandply = 1; | |
| if (!(dispmode & SCRN_BANK1)) { | |
| dispp = GRP_RAM + GRAM_BANK0; | |
| dispp2 = GRP_RAM + GRAM_BANK1; | |
| dispflg = UPDATE_TRAM | UPDATE_VRAM0; | |
| } | |
| else { | |
| dispp = GRP_RAM + GRAM_BANK1; | |
| dispp2 = GRP_RAM + GRAM_BANK0; | |
| dispflg = UPDATE_TRAM | UPDATE_VRAM1; | |
| } | |
| } | } |
| if (scrnallflash) { | if (scrnallflash) { |
| scrnallflash = 0; | scrnallflash = 0; |
| fillupdatetmp(); | fillupdatetmp(); |
| x1vram_adjust(); | changecrtc(); |
| makescrn.scrnflash = 1; | makescrn.scrnflash = 1; |
| } | } |
| if (makescrn.remakeattr) { | if (makescrn.remakeattr) { |
| Line 368 void scrnupdate(void) { | Line 356 void scrnupdate(void) { |
| } | } |
| if (makescrn.palandply) { | if (makescrn.palandply) { |
| makescrn.palandply = 0; | makescrn.palandply = 0; |
| palettes(); | pal_update(); |
| ddrawflash = 1; | ddrawflash = 1; |
| } | } |
| if (makescrn.existblink) { | if (makescrn.existblink) { |
| Line 439 void scrnupdate(void) { | Line 427 void scrnupdate(void) { |
| } | } |
| } | } |
| void makescrn_initialize(void) { | |
| makesub_initialize(); | |
| } | |
| void makescrn_reset(void) { | |
| fillupdatetmp(); | |
| changemodes(); | |
| changecrtc(); | |
| } | |