trunk/src/emu/video/pc_vga.c
| r18110 | r18111 | |
| 2755 | 2755 | case 0x4f: |
| 2756 | 2756 | res = s3.cursor_pattern_y; |
| 2757 | 2757 | break; |
| 2758 | case 0x51: |
| 2759 | res = (vga.crtc.start_addr & 0x0c0000) >> 18; |
| 2760 | break; |
| 2758 | 2761 | case 0x55: |
| 2759 | 2762 | res = s3.extended_dac_ctrl; |
| 2760 | 2763 | break; |
| 2761 | 2764 | case 0x67: |
| 2762 | 2765 | res = s3.ext_misc_ctrl_2; |
| 2763 | 2766 | break; |
| 2767 | case 0x69: |
| 2768 | res = vga.crtc.start_addr >> 16; |
| 2769 | break; |
| 2764 | 2770 | case 0x6a: |
| 2765 | 2771 | res = svga.bank_r & 0x7f; |
| 2766 | 2772 | break; |
| r18110 | r18111 | |
| 2964 | 2970 | case 0x51: |
| 2965 | 2971 | vga.crtc.start_addr &= ~0xc0000; |
| 2966 | 2972 | vga.crtc.start_addr |= ((data & 0x3) << 18); |
| 2973 | svga.bank_w = (svga.bank_w & 0xcf) | ((data & 0x0c) << 2); |
| 2974 | svga.bank_r = svga.bank_r; |
| 2975 | s3_define_video_mode(); |
| 2967 | 2976 | break; |
| 2968 | 2977 | case 0x53: |
| 2969 | 2978 | s3.cr53 = data; |
| r18110 | r18111 | |
| 2996 | 3005 | s3.ext_misc_ctrl_2 = data; |
| 2997 | 3006 | s3_define_video_mode(); |
| 2998 | 3007 | //printf("%02x X\n",data); |
| 2999 | | //debugger_break(machine); |
| 3000 | 3008 | break; |
| 3009 | case 0x69: |
| 3010 | vga.crtc.start_addr &= ~0x1f0000; |
| 3011 | vga.crtc.start_addr |= ((data & 0x1f) << 16); |
| 3012 | s3_define_video_mode(); |
| 3013 | break; |
| 3001 | 3014 | case 0x6a: |
| 3002 | | svga.bank_w = data & 0xf; |
| 3015 | svga.bank_w = data & 0x3f; |
| 3003 | 3016 | svga.bank_r = svga.bank_w; |
| 3004 | 3017 | if(data & 0x60) |
| 3005 | 3018 | fatalerror("TODO: s3 bank selects above 1M\n"); |