PCem

changeset 159:7dbd14c4adac

Restricted available range of attribute and sequencer registers on ViRGE, XFree86 now detects card correctly.
author TomW
date Thu Sep 18 21:14:15 2014 +0100
parents 153d673e767a
children 5bddbc972079
files src/vid_s3_virge.c
diffstat 1 files changed, 10 insertions(+), 2 deletions(-) [+]
line diff
     1.1 --- a/src/vid_s3_virge.c	Wed Sep 17 21:50:57 2014 +0100
     1.2 +++ b/src/vid_s3_virge.c	Thu Sep 18 21:14:15 2014 +0100
     1.3 @@ -383,15 +383,23 @@
     1.4  //        if (addr != 0x3da) pclog("S3 in %04X %04X:%08X  ", addr, CS, pc);
     1.5          switch (addr)
     1.6          {
     1.7 +                case 0x3c1:
     1.8 +                if (svga->attraddr > 0x14)
     1.9 +                        ret = 0xff;
    1.10 +                else
    1.11 +                        ret = svga_in(addr, svga);
    1.12 +                break; 
    1.13                  //case 0x3C6: case 0x3C7: case 0x3C8: case 0x3C9:
    1.14  //                pclog("Read RAMDAC %04X  %04X:%04X\n", addr, CS, pc);
    1.15                  //return sdac_ramdac_in(addr);
    1.16  
    1.17                  case 0x3c5:
    1.18 -                if (svga->seqaddr >= 0x10)
    1.19 +                if (svga->seqaddr >= 8)
    1.20                          ret = svga->seqregs[svga->seqaddr & 0x1f];
    1.21 +                else if (svga->seqaddr <= 4)
    1.22 +                        ret = svga_in(addr, svga);
    1.23                  else
    1.24 -                        ret = svga_in(addr, svga);
    1.25 +                        ret = 0xff;
    1.26                  break;
    1.27  
    1.28                  case 0x3D4: