PCem

changeset 122:84742b645324

Added Phoenix Trio64. S3 cards now report FPM memory - allows 4 MB on Phoenix Trio64.
author TomW
date Thu Jul 10 20:25:10 2014 +0100
parents 173e1f058566
children fdffe4113922
files src/ibm.h src/vid_s3.c src/vid_s3.h src/video.c
diffstat 4 files changed, 73 insertions(+), 2 deletions(-) [+]
line diff
     1.1 --- a/src/ibm.h	Wed Jul 09 22:12:59 2014 +0100
     1.2 +++ b/src/ibm.h	Thu Jul 10 20:25:10 2014 +0100
     1.3 @@ -347,6 +347,7 @@
     1.4          GFX_CL_GD5429,  /*Cirrus Logic CL-GD5429*/
     1.5          GFX_VIRGEDX,    /*S3 Virge/DX*/
     1.6          GFX_PHOENIX_TRIO32, /*S3 732/Trio32 (Phoenix)*/
     1.7 +        GFX_PHOENIX_TRIO64, /*S3 764/Trio64 (Phoenix)*/
     1.8          
     1.9          GFX_MAX
    1.10  };
     2.1 --- a/src/vid_s3.c	Wed Jul 09 22:12:59 2014 +0100
     2.2 +++ b/src/vid_s3.c	Thu Jul 10 20:25:10 2014 +0100
     2.3 @@ -1933,9 +1933,9 @@
     2.4                     NULL);
     2.5  
     2.6          if (PCI)
     2.7 -                svga->crtc[0x36] = 2 | (2 << 2) | (1 << 4) | (vram_sizes[vram] << 5);
     2.8 +                svga->crtc[0x36] = 2 | (3 << 2) | (1 << 4) | (vram_sizes[vram] << 5);
     2.9          else
    2.10 -                svga->crtc[0x36] = 1 | (2 << 2) | (1 << 4) | (vram_sizes[vram] << 5);
    2.11 +                svga->crtc[0x36] = 1 | (3 << 2) | (1 << 4) | (vram_sizes[vram] << 5);
    2.12          svga->crtc[0x37] = 1 | (7 << 5);
    2.13  
    2.14          s3_io_set(s3);
    2.15 @@ -2012,6 +2012,26 @@
    2.16          return rom_present("roms/86C732P.bin");
    2.17  }
    2.18  
    2.19 +void *s3_phoenix_trio64_init()
    2.20 +{
    2.21 +        s3_t *s3 = s3_init("roms/86c764x1.bin", S3_TRIO64);
    2.22 +        svga_t *svga = &s3->svga;
    2.23 +
    2.24 +        s3->id = 0xe1; /*Trio64*/
    2.25 +        s3->id_ext = s3->id_ext_pci = 0x11;
    2.26 +        s3->packed_mmio = 1;
    2.27 +
    2.28 +        s3->getclock = s3_trio64_getclock;
    2.29 +        s3->getclock_p = s3;
    2.30 +
    2.31 +        return s3;
    2.32 +}
    2.33 +
    2.34 +int s3_phoenix_trio64_available()
    2.35 +{
    2.36 +        return rom_present("roms/86c764x1.bin");
    2.37 +}
    2.38 +
    2.39  void s3_close(void *p)
    2.40  {
    2.41          s3_t *s3 = (s3_t *)p;
    2.42 @@ -2133,6 +2153,41 @@
    2.43          }
    2.44  };
    2.45  
    2.46 +static device_config_t s3_phoenix_trio64_config[] =
    2.47 +{
    2.48 +        {
    2.49 +                .name = "memory",
    2.50 +                .description = "Memory size",
    2.51 +                .type = CONFIG_SELECTION,
    2.52 +                .selection =
    2.53 +                {
    2.54 +                        {
    2.55 +                                .description = "512 KB",
    2.56 +                                .value = 0
    2.57 +                        },
    2.58 +                        {
    2.59 +                                .description = "1 MB",
    2.60 +                                .value = 1
    2.61 +                        },
    2.62 +                        {
    2.63 +                                .description = "2 MB",
    2.64 +                                .value = 2
    2.65 +                        },
    2.66 +                        {
    2.67 +                                .description = "4 MB",
    2.68 +                                .value = 4
    2.69 +                        },
    2.70 +                        {
    2.71 +                                .description = ""
    2.72 +                        }
    2.73 +                },
    2.74 +                .default_int = 2
    2.75 +        },
    2.76 +        {
    2.77 +                .type = -1
    2.78 +        }
    2.79 +};
    2.80 +
    2.81  device_t s3_bahamas64_device =
    2.82  {
    2.83          "Paradise Bahamas 64 (S3 Vision864)",
    2.84 @@ -2171,3 +2226,16 @@
    2.85          s3_add_status_info,
    2.86          s3_phoenix_trio32_config
    2.87  };
    2.88 +
    2.89 +device_t s3_phoenix_trio64_device =
    2.90 +{
    2.91 +        "Phoenix S3 Trio64",
    2.92 +        0,
    2.93 +        s3_phoenix_trio64_init,
    2.94 +        s3_close,
    2.95 +        s3_phoenix_trio64_available,
    2.96 +        s3_speed_changed,
    2.97 +        s3_force_redraw,
    2.98 +        s3_add_status_info,
    2.99 +        s3_phoenix_trio64_config
   2.100 +};
     3.1 --- a/src/vid_s3.h	Wed Jul 09 22:12:59 2014 +0100
     3.2 +++ b/src/vid_s3.h	Thu Jul 10 20:25:10 2014 +0100
     3.3 @@ -1,3 +1,4 @@
     3.4  device_t s3_bahamas64_device;
     3.5  device_t s3_9fx_device;
     3.6  device_t s3_phoenix_trio32_device;
     3.7 +device_t s3_phoenix_trio64_device;
     4.1 --- a/src/video.c	Wed Jul 09 22:12:59 2014 +0100
     4.2 +++ b/src/video.c	Thu Jul 10 20:25:10 2014 +0100
     4.3 @@ -58,6 +58,7 @@
     4.4          {"OAK OTI-067",                            &oti067_device,              GFX_OTI067},
     4.5          {"Paradise Bahamas 64 (S3 Vision864)",     &s3_bahamas64_device,        GFX_BAHAMAS64},
     4.6          {"Phoenix S3 Trio32",                      &s3_phoenix_trio32_device,   GFX_PHOENIX_TRIO32},
     4.7 +        {"Phoenix S3 Trio64",                      &s3_phoenix_trio64_device,   GFX_PHOENIX_TRIO64},
     4.8          {"S3 ViRGE/DX",                            &s3_virge_375_device,        GFX_VIRGEDX},
     4.9          {"Trident TVGA8900D",                      &tvga8900d_device,           GFX_TVGA},
    4.10          {"Tseng ET4000AX",                         &et4000_device,              GFX_ET4000},