--- xmil/vram/makescrn.c 2004/08/07 12:10:27 1.3 +++ xmil/vram/makescrn.c 2004/08/10 10:41:53 1.6 @@ -12,16 +12,8 @@ MAKESCRN makescrn; BYTE scrnallflash; - BYTE blinktest = 0; - -extern BYTE dispmode; - static BYTE lastdisp = 0; - BYTE dispflg; - BYTE *dispp = &GRP_RAM[GRAM_BANK0]; - BYTE *dispp2 = &GRP_RAM[GRAM_BANK1]; static BYTE blinktime = 1; - DWORD drawtime = 0; @@ -54,7 +46,7 @@ static void flashupdatetmp(void) { y = crtc.s.TXT_YL; do { for (x=0; x> 8)) & 0x1f) { @@ -214,7 +206,7 @@ static BRESULT updateblink(void) { else { blinktime = 30 - 1; pos = makescrn.vramtop; - blinktest ^= 0x10; + makescrn.blinktest ^= 0x10; update = 0; r = makescrn.vramsize; while(r) { @@ -240,16 +232,16 @@ static BRESULT updateblink(void) { static void changemodes(void) { - lastdisp = dispmode; - if (!(dispmode & SCRN_BANK1)) { - dispp = GRP_RAM + GRAM_BANK0; - dispp2 = GRP_RAM + GRAM_BANK1; - dispflg = UPDATE_TRAM | UPDATE_VRAM0; + 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 { - dispp = GRP_RAM + GRAM_BANK1; - dispp2 = GRP_RAM + GRAM_BANK0; - dispflg = UPDATE_TRAM | UPDATE_VRAM1; + makescrn.disp1 = GRP_RAM + GRAM_BANK1; + makescrn.disp2 = GRP_RAM + GRAM_BANK0; + makescrn.dispflag = UPDATE_TRAM | UPDATE_VRAM1; } scrnallflash = 1; makescrn.palandply = 1; @@ -267,7 +259,7 @@ static void changecrtc(void) { makescrn.vramtop = LOW11(crtc.s.TXT_TOP); if (crtc.s.TXT_XL <= 40) { - if (dispmode & SCRN_DRAW4096) { + if (lastdisp & SCRN_DRAW4096) { widthmode = SCRNWIDTHMODE_4096; } else { @@ -315,6 +307,7 @@ static void changecrtc(void) { if (surfcy > crtc.s.TXT_YL) { surfcy = crtc.s.TXT_YL; } + surfcy = max(1, surfcy); makescrn.surfcy = surfcy; makescrn.surfstep = (SURFACE_WIDTH * charcy * 2) - (makescrn.surfcx * 8); makescrn.vramsize = min(0x800, surfcy * crtc.s.TXT_XL); @@ -349,7 +342,7 @@ void scrnupdate(void) { corestat.drawframe = 0; ddrawflash = FALSE; - if (lastdisp != dispmode) { + if (lastdisp != crtc.e.dispmode) { changemodes(); } if (scrnallflash) {