Previous 199869 Revisions Next

r22510 Tuesday 23rd April, 2013 at 10:55:59 UTC by Barry Rodewald
s3,s3virge: added bits 8 and 9 of VGA Offset register. (no whatsnew)
[src/emu/video]pc_vga.c pc_vga.h
[src/mess/video]s3virge.c

trunk/src/mess/video/s3virge.c
r22509r22510
255255            s3.cr42 = data;  // bit 5 = interlace, bits 0-3 = dot clock (seems to be undocumented)
256256            break;
257257         case 0x43:
258            s3.cr43 = data;
258            s3.cr43 = data;  // bit 2 = bit 8 of offset register, but only if bits 4-5 of CR51 are 00h.
259            vga.crtc.offset = (vga.crtc.offset & 0x00ff) | ((data & 0x04) << 6);
260            s3_define_video_mode();
259261            break;
260262/*
2612633d4h index 45h (R/W):  CR45 Hardware Graphics Cursor Mode
r22509r22510
360362          (801/5,928) For Hi/True color modes use the Horizontal Stretch bits
361363            (3d4h index 45h bits 2 and 3).
362364 */
363         case 0x4c:
365      case 0x4c:
364366            s3.cursor_start_addr = (s3.cursor_start_addr & 0x00ff) | (data << 8);
365367            break;
366368         case 0x4d:
r22509r22510
385387            vga.crtc.start_addr_latch |= ((data & 0x3) << 18);
386388            svga.bank_w = (svga.bank_w & 0xcf) | ((data & 0x0c) << 2);
387389            svga.bank_r = svga.bank_w;
390            if((data & 0x30) != 0x00)
391               vga.crtc.offset = (vga.crtc.offset & 0x00ff) | ((data & 0x30) << 4);
392            else
393               vga.crtc.offset = (vga.crtc.offset & 0x00ff) | ((s3.cr43 & 0x04) << 6);
388394            s3_define_video_mode();
389395            break;
390396         case 0x53:
trunk/src/emu/video/pc_vga.c
r22509r22510
14301430         recompute_params();
14311431         break;
14321432      case 0x13:
1433         vga.crtc.offset = data & 0xff;
1433         vga.crtc.offset &= ~0xff;
1434         vga.crtc.offset |= data & 0xff;
14341435         break;
14351436      case 0x14:
14361437         vga.crtc.dw = (data & 0x40) >> 6;
r22509r22510
26952696         case 0x42: // CR42 Mode Control
26962697            res = s3.cr42 & 0x0f;  // bit 5 set if interlaced, leave it unset for now.
26972698            break;
2699         case 0x43:
2700            res = s3.cr43;
2701            break;
26982702         case 0x45:
26992703            res = s3.cursor_mode;
27002704            break;
r22509r22510
28842888         case 0x42:
28852889            s3.cr42 = data;  // bit 5 = interlace, bits 0-3 = dot clock (seems to be undocumented)
28862890            break;
2891         case 0x43:
2892            s3.cr43 = data;  // bit 2 = bit 8 of offset register, but only if bits 4-5 of CR51 are 00h.
2893            vga.crtc.offset = (vga.crtc.offset & 0x00ff) | ((data & 0x04) << 6);
2894            s3_define_video_mode();
2895            break;
28872896/*
288828973d4h index 45h (R/W):  CR45 Hardware Graphics Cursor Mode
28892898bit    0  HWGC ENB. Hardware Graphics Cursor Enable. Set to enable the
r22509r22510
30123021            vga.crtc.start_addr_latch |= ((data & 0x3) << 18);
30133022            svga.bank_w = (svga.bank_w & 0xcf) | ((data & 0x0c) << 2);
30143023            svga.bank_r = svga.bank_w;
3024            if((data & 0x30) != 0x00)
3025               vga.crtc.offset = (vga.crtc.offset & 0x00ff) | ((data & 0x30) << 4);
3026            else
3027               vga.crtc.offset = (vga.crtc.offset & 0x00ff) | ((s3.cr43 & 0x04) << 6);
30153028            s3_define_video_mode();
30163029            break;
30173030         case 0x53:
trunk/src/emu/video/pc_vga.h
r22509r22510
127127         UINT32 start_addr_latch;
128128   /**/    UINT8 protect_enable;
129129   /**/    UINT8 bandwidth;
130   /**/    UINT8 offset;
130   /**/    UINT16 offset;
131131   /**/    UINT8 word_mode;
132132   /**/    UINT8 dw;
133133   /**/    UINT8 div4;

Previous 199869 Revisions Next


© 1997-2024 The MAME Team