Previous 199869 Revisions Next

r17876 Friday 14th September, 2012 at 06:16:55 UTC by Barry Rodewald
(MESS) gfxultra: Fix for blank screen after starting MS-DOS Editor or QBasic. (no whatsnew)
[src/emu/video]pc_vga.c pc_vga.h
[src/mess/video]isa_vga_ati.c

trunk/src/emu/video/pc_vga.c
r17875r17876
31033103   }
31043104}
31053105
3106READ8_HANDLER( ati_port_03c0_r )
3107{
3108   UINT8 data = 0xff;
3109
3110   switch(offset)
3111   {
3112   case 1:
3113      if ((vga.attribute.index&0x1f) < sizeof(vga.attribute.data))
3114         data = vga.attribute.data[vga.attribute.index&0x1f];
3115      break;
3116   default:
3117      data = vga_port_03c0_r(space,offset);
3118      break;
3119   }
3120   return data;
3121}
3122
3123
31063124/* accelerated ports, TBD ... */
31073125
3108
31093126static void s3_write_fg(UINT32 offset)
31103127{
31113128   UINT8 dst = vga.memory[offset];
r17875r17876
48584875   int clock;
48594876   UINT8 clock_type;
48604877   int div = ((ati.ext_reg[0x38] & 0xc0) >> 6) + 1;
4878   int divisor = 1;
48614879
48624880   svga.rgb8_en = 0;
48634881   svga.rgb15_en = 0;
r17875r17876
49224940      clock = XTAL_42_9545MHz;
49234941      logerror("Invalid dot clock %i selected.\n",clock_type);
49244942   }
4925
4926   recompute_params_clock(machine,1,clock / div);
4943//   logerror("ATI: Clock select type %i (%iHz / %i)\n",clock_type,clock,div);
4944   recompute_params_clock(machine,divisor,clock / div);
49274945}
49284946
49294947READ8_HANDLER( ati_mem_r )
r17875r17876
49784996      }
49794997      break;
49804998   }
4981
49824999   return ret;
49835000}
49845001
r17875r17876
49965013      case 0x23:
49975014         vga.crtc.start_addr = (vga.crtc.start_addr & 0xfffdffff) | ((data & 0x10) << 13);
49985015         vga.crtc.cursor_addr = (vga.crtc.cursor_addr & 0xfffdffff) | ((data & 0x08) << 14);
5016         logerror("ATI: ATI23 write %02x\n",data);
49995017         break;
50005018      case 0x2d:
50015019         if(data & 0x08)
r17875r17876
50035021            vga.crtc.horz_total = (vga.crtc.horz_total & 0x00ff) | (data & 0x01) << 8;
50045022            // bit 1 = bit 8 of horizontal blank start
50055023            // bit 2 = bit 8 of horizontal retrace start
5006            logerror("ATI: ATI2D (extensions) write %02x\n",data);
50075024         }
5025         logerror("ATI: ATI2D (extensions) write %02x\n",data);
50085026         break;
50095027      case 0x30:
50105028         vga.crtc.start_addr = (vga.crtc.start_addr & 0xfffeffff) | ((data & 0x40) << 10);
50115029         vga.crtc.cursor_addr = (vga.crtc.cursor_addr & 0xfffeffff) | ((data & 0x04) << 14);
5030         logerror("ATI: ATI30 write %02x\n",data);
50125031         break;
50135032      case 0x32:  // memory page select
50145033         if(ati.ext_reg[0x3e] & 0x08)
r17875r17876
50215040            svga.bank_r = ((data & 0x1e) >> 1);
50225041            svga.bank_w = ((data & 0x1e) >> 1);
50235042         }
5024         logerror("ATI: Memory Page Select write %02x (read: %i write %i)\n",data,svga.bank_r,svga.bank_w);
5043         //logerror("ATI: Memory Page Select write %02x (read: %i write %i)\n",data,svga.bank_r,svga.bank_w);
50255044         break;
50265045      case 0x33:  // EEPROM
50275046         if(data & 0x04)
r17875r17876
50345053               eep->set_cs_line((data & 0x08) ? CLEAR_LINE : ASSERT_LINE);
50355054            }
50365055         }
5056         else
5057            logerror("ATI: ATI33 write %02x\n",data);
50375058         break;
50385059      default:
50395060         logerror("ATI: Extended VGA register 0x01CE index %02x write %02x\n",ati.ext_reg_select,data);
trunk/src/emu/video/pc_vga.h
r17875r17876
9898READ8_HANDLER(s3_mem_r);
9999WRITE8_HANDLER(s3_mem_w);
100100
101READ8_HANDLER( ati_port_03c0_r );
101102READ8_DEVICE_HANDLER(ati_port_ext_r);
102103WRITE8_DEVICE_HANDLER(ati_port_ext_w);
103104READ16_HANDLER(ibm8514_gpstatus_r);
trunk/src/mess/video/isa_vga_ati.c
r17875r17876
8181   m_isa->install_device(this, 0x1ce, 0x1cf, 0, 0, FUNC(ati_port_ext_r), FUNC(ati_port_ext_w));
8282   m_isa->install16_device(0x2e8, 0x2eb, 0, 0, FUNC(mach8_status_r), FUNC(mach8_htotal_w));
8383   m_isa->install_device(0x3b0, 0x3bf, 0, 0, FUNC(vga_port_03b0_r), FUNC(vga_port_03b0_w));
84   m_isa->install_device(0x3c0, 0x3cf, 0, 0, FUNC(vga_port_03c0_r), FUNC(vga_port_03c0_w));
84   m_isa->install_device(0x3c0, 0x3cf, 0, 0, FUNC(ati_port_03c0_r), FUNC(vga_port_03c0_w));
8585   m_isa->install_device(0x3d0, 0x3df, 0, 0, FUNC(vga_port_03d0_r), FUNC(vga_port_03d0_w));
8686   m_isa->install16_device(0x12e8, 0x12eb, 0, 0, FUNC(mach8_vtotal_r),FUNC(mach8_vtotal_w));
8787   m_isa->install16_device(0x12ec, 0x12ef, 0, 0, FUNC(mach8_config1_r),NULL,NULL);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team