ATI Graphics Ultra Pro

ATI Graphics Ultra Pro Drivers and Utilities (another page)
Problems with ATI Mach32 Video Adapter on MCA Computer LINK

Identifying the graphics controller on an ATI product  Broke
Mach32 Setup Tips (ATI Site) Broke

Graphics Ultra Pro BIOS ST M27C256B-12 28 pin DIP
112-19201-106 Odd / 112-19201-106 Even


   Alone Under W95
   Problems with ATI Mach32 Video Adapter on MCA Computer
   Set Power-Up Configuration
   Custom Monitor Configuration
   Power-Up Video Mode-
   Memory Aperture
      Configuration Issues
   VGA Memory Size
Only 640x480x256 Under Why9x
GUP under Linux
ASIC Revision
ADF Sections

Release Notes for XFree86[tm]

ATI Graphics Ultra Pro
J1 HDD15
JU1-4,6,7,11-13 empty
JU5 ROM enable
JU8 Compatibility Mode Enable
JU9 IRQ9 Enable
JU10 VGA Enable
U1-16 KM424C257Z-6
U17 BIOS Even
U18 BIOS Odd
U28 ATI Mach32 See ASIC rev
U33 ATI18811-1 Clock gen
Y1 A14.318S xtal
Y2 Outline for osc

RAMDAC Older boards use an ATI 68875 CFN, newer ones use a TI TLC 34076-135FN. The TI chip responds as an ATI 68875 under the install program and other diagnostic applications 

112-19201-106 Odd
112-19200-106 Even


JU5 ROM Enable/Disable Jumper
   In some system configurations, the BIOS ROM address of the GUP may conflict with other system BIOS ROMs. To prevent an error message, set the jumper to ROM Disable which will disable the ROM BIOS until configuration is complete. See HERE for conficts with memory managers, COM4, and network cards. See HERE for conflicts during configuration.

JU6 DAC Select Jumper
CLOSED = 68830 DAC 
     OPEN = 68875 DAC 

JU8 Compatability/Performance Jumper
   This is usually in the performance setting. Some MCA systems may have timing problems when the MCA card runs at maximum speed, showing a corrupted VGA screen. Setting the jumper to Compatibility should correct this problem. 

JU9 IRQ Jumper
   The manual cheerfully sez: The IRQ jumper is not used, do not enable it. This jumper should be left open. 

JU10 VGA Disable Jumper
   I have no experience with trying to run a dual-monitor configuration. But read on and see what it does...  To use the GUP with another VGA controller, you must first disable the VGA portion of the GUP. Set the VGA Enable/Disabled jumper to the Disabled position. 
   Whether operating as VGA Enabled or VGA Disabled, a Base Video must be present (either on the motherboard or on an addin card) for system operation. The mach32 card operates as an auxiliary video card only. 

ATI18811-1 Clock Chip
>I'm having problems getting X running on my new machine running linux.  I have an ATI Ultra XLR 2MB Video card, and a Gateway 1572FS monitor.

Robert Seward wrote:
   I just went through the same thing last week.  I called ATI to get the clocks needed for the Ultra XLR.  It turns out that the clock chip used on that (ATI18811-2) has the same clocks at the ATI18811-1.  The clocks for that chip is listed near the bottom of the AccelCards file:

ATI 18811-1:
  100.0  126.0   92.4  36.0   50.35  56.64   0.0   44.9
  135.0   32.0  110.0  80.0   39.91  44.9   75.0   65.0

  The monitor times given for the Gateway 1572FS did not work quite right for me - the video was not centered.  I modified it slightly, but I don't have the numbers with me.
   One problem I did not solve was X telling me that it could only use 1M of the video RAM when the man pages says that it can use 2M.  It is just annoying right now, since anything more that 1024x768 on a 15" monitor is impossible to see, but I would like to know in case I get a bigger monitor one day.

ATI GUP Alone in a 95

Take this with a grain of salt. The Farmer City Madman did it without the nutroll. 12 Nov 2005

I have replicated the GUPification process. 

FIRST and MOST IMPORTANT - get the @8089.ADF from M32UTL.ZIP or from Peter's site (above) extract all files to a floppy.
Run setup, copy an options disk. Exit setup. Power down. 
   Install the GUP in #7 (85/95) or #3 (90). Put a terminator plug on the base video card. Hook up the monitor to the GUP. Do NOT install jumpers. NO JUMPERS.
   Power up. When autoconfig pops up, don't. set configuration>change  configuration. XGA-2 will be set to no resources (at this time). The GUP MUST show a line for a ROM address range. If it doesn't, you have the old adf (and you didn't believe me about extracting that m32utl file either).
   F10, save config. F3 to exit. Exit setup, boot successfully, then run INSTALL.EXE from the floppy (DOS program). Set GUP to VGA. Save settings. Exit install. Reboot.
   NOW listen up! Set the XGA-2 ROM Address Range to C6000-C7000. It will show the asterix for a conflict...., that's what we want. hit F10, a little warning pops up, telling you that an adapter may be disabled hit enter.
   At this point the XGA-2 adapter is no longer providing base video... The king is dead! Long live the king!
   Boot to confirm that you have video. You should.
   Shut down. Remove BVE card. Power up, run setup. Do NOT autoconfig (though it might not diddle anything, why chance it?).
   Set configuration>change configuration. F10 to save (all you are doing is confirming the BVE card is gone). Exit setup. 

You now should have a lone GUP.

Single Card Settings
   Run INSTALL. Under Power Up menu- 
Monitor Type: VGA 60Hz 640x480 
Power Up Video Mode: VGA (CV80) 
Memory Aperture Size: Disabled 
VGA Memory Size: Shared 

Single GUP Under W95
   It's almost (ALMOST) fully supported under Windowze95. Clear every other adapter out of the C000-CFFF block. The only range that isn't right is the I/O range of 2E0-2E7. The ATI uses- 

:*** The GUP uses IO of 2E0-2E7. Non-configurable. How can I set the IO ranges used by the GUP? 

Addresses used under W95
   I went through Device Mangler. The GUP uses EACH block from 03B0-03DF. This takes in the IBM Parallel 1, which is 3BC-3BF. 

Hi Jim, 
  Do I read you right? You have an XGA-2 *AND* an ATI GUP in the same machine, but can't get anything better than 640x480? In that case, you're *not* using the GUP (which should be jumpered for 'VGA Disabled' if you have the XGA-2 installed, otherwise, *both* cards are responding to the VGA I/O and memory addressing!!? Very bad idea!). 
   NOTE: the ATI card's POS Id. changes when you change the jumper from 'VGA Enabled' to 'VGA Disabled' and vice versa, so you will get a 165 error after changing the jumper . Which card is the monitor  plugged into? Which slot is the ATI plugged into? (AVE slot required for VGA 'passthru' from XGA-2, if monitor plugged into ATI). Have you INSTALL-ed your monitor's scan rates into the ATI EEPROM? Once that has been done correctly, you can use 8514/A drivers if all else fails (ATI GUP is 8514/A register compatible). Not the fastest though. The pre-requisite list is fairly large. Plus, I'm not familiar with the 9517s spec.s/limitations. 

ROM BIOS Address- If you are using extended memory managers such as QEMM, 386MAX or EMM386, be sure to use an EXCLUDE statement to protect the mach32 ROM Address space. (ex. X=C800-C9FF) 
Com4 Conflict- The GUP uses I/O port address from 2E0-2EF. This will conflict with systems using COM port 4. You must disable COM port 4 in order to use the GUP. 
Network Cards- Many NICs have a default I/O port base address of 2E8. This conflicts with the GUP. The NIC must be reconfigured, since the address of the GUP is not configurable. 
Memory Aperture- If your system is fully populated with system memory (My interpretation is the 640K conventional plus 384 upper), the memory aperture feature must be disabled. (So with the 90/95 machines, I think Memory Aperture disabled would be a good bet. Mine's disabled) 

What is this Terminator Plug?
Well, it goes on the Base video card or the Base Video port for on-board video. Brad Parker sent me some info HERE

Some personal experiences with my GUP-
The GUP goes in Slot 7 of your 8595/9595. Your Base Video card (use an IBM SVGA card, don't waste a XGA-2 on this) goes in Slot 5.  All jumpers are open. 

   You must run the ATI setup utility called INSTALL.EXE to initialize the GUP. This utility is DOS based, so you may have to boot with a DOS floppy with the utility on it. Set the card to VGA. Use the Windoze or OS/2 drivers to change the configuration later. 

The Main Selection Menu has six sub-menus. 
Set Power-Up Configuration 
Set Current Video Mode 
Test Graphics Adapter 
Install Video Adapter Utilities 
Install Device Drivers 
Install Adapter Interface 

Set Power-Up Configuration
Monitor Type Sets a preset or custom configuration for your monitor. 
If you're lucky, you have one of the below monitors. If you don't, then the Custom Monitor Configuration is for you. 
Monitors 640x480 800x600 1024x768 1280x1024
VGA or PS/2 60Hz

NEC 2A 60Hz 56Hz

ALR FlexVIEW 2X 60Hz 56Hz

IBM 8514 60Hz 95Hz(i) 87Hz(i)
IBM 8507 60Hz 95Hz(i) 87Hz(i)
NEC 3D 60Hz 60Hz 87Hz(i)
NEC 4D 60Hz 60Hz 60Hz 87Hz(i)
NEC 4D/5D 72Hz 72Hz 70Hz 87Hz(i)
NEC 5D 72Hz 72Hz 72Hz 60Hz
NEC 5FG 72Hz 76Hz 76Hz 70Hz

Custom Monitor Configuration
In the Install program, choose Set Power-up Configuration, then Monitor Type, then Custom.  Your choices are: (this will be painful, but it's for your own good) 
640x480 Mode 800x600 Mode  1024x768 Mode  1280x1024 Mode 
60Hz 60Hz 60Hz 60Hz
  70Hz 70Hz 70Hz
72Hz (40/32MHz) 72Hz 72Hz  
  76Hz 76Hz  
    87Hz (I) 87Hz (i)
  89Hz (i)    
  95Hz (i)   95Hz (i)

Power-Up Video Mode-
   The GUP can be configured to power up in VGA, EGA, CGA, MDA 720x348 or MDA 640x400 mode. In most cases, you will want the card to power up in VGA Mode (default setting) 

Memory Aperture
   The drivers included with this card automatically sense if the memory aperture is enabled or disabled, and reconfigure accordingly. The memory aperture is a feature which maps the graphics card memory to the main system memory to improve graphics performance in high color modes. You will not notice any appreciable difference in functionality or performance in 256 color modes. 
   The location of the memory aperture is determined by the system type and amount of system memory installed. The memory aperture is mapped above the system memory area. The aperture location and size are determined by the INSTALL program when you enable memory aperture. 
   For a real heavy-metal grunge, look HERE

VGA Memory Size
If you intend to mainly use Windows applications and the mach32 Windows driver, leave the VGA memory size at the default. Memory on your card is shared between the mach32 VGA and accelerator subsystems. You can set VGA memory size to Shared, 256K, 512K, or 1MB. The size of the VGA memory only affects the resolution/color combinations supported when using SVGA or 8514/A drivers. (Mine is set as Shared) 

  • Shared- This selection provides the best results, allowing any VGA or 8514/A driver to use the maximum memory available. This setting is suitable for most applications except when these need to preserve the contents of VGA memory (for example, DOS boxes in Windows) when used with an 8514/A drivers or for special programming considerations.
  • 256K/512K/1.0MB- Sets the amount of memory dedicated for the VGA controller. This selection affects the resolution/color combinations that are supported when used with either SVGA or 8514/A drivers.
NOTE: The VGA memory size does not affect the mach32 driver performance or functionality. 

Mach32 Memory Aperture Configuration Issues ATI Tech Note #067
    The following information describes common configuration issues which may arise when configuring the Memory Aperture feature of the GRAPHICS ULTRA PRO or GRAPHICS ULTRA+ video adapter.

     The Memory Aperture feature on the mach32 products is an option which moves the video frame buffer into the motherboard system memory address space to improve performance. While not required to access the color and resolution capabilities of the mach32, some ATI drivers and utilities will take advantage of the memory aperture if it is present.

    The main reason for a direct memory aperture feature is that it allows an application to write to the video display memory directly, bypassing the overhead of the standard "paging" system required by VGA and SVGA cards. The major benefits of a memory aperture are apparent when dealing with graphics which are not "vector-based", such as continuous tone bitmapped images.

 In an aperture-disabled configuration, these graphics, which cannot be easily translated into vector-based commands for the mach32 accelerator, must be passed through the standard "video memory window" in the A000-AFFF region, just above 640k. Since the standard VGA window is only 64k in size, moving a large image onto the screen can involve several operations. With a memory aperture available, a single operation can write the image from system RAM into video RAM.

 On EISA, 32-bit MCA and VLB architectures, there is an additional performance advantage as compared to ISA. These busses support 32-bit data transfers, and generally operate at higher speeds than the 16-bit ISA bus. Thus, while the main function of the mach32 chipset - offloading screen vector processing from the CPU - is unaffected by the hardware platform or the state of the memory aperture, the processing of bitmapped images will be more rapid on machines in which the memory aperture feature is available, and even faster on a 32-bit high speed bus.

 The "memory aperture" feature of our ISA mach32 products can only be enabled in systems having less than 12MB of RAM installed. This is due to the 16MB address limitation on the ISA bus. Our memory aperture can be enabled only within the addressable space on the bus. If this space is occupied by system RAM it is impossible to have the "aperture" share this area.

 There is a feature in the INSTALL program which checks to see how much memory is in the system. If 16MB are detected in an ISA system, INSTALL will display a warning. Unfortunately, some versions of INSTALL will display the warning message whether you've attempted to enable the "memory aperture" feature or not. If your "power up configuration" shows the memory aperture to be disabled, you can ignore any warning messages.

 If you have an ISA system with less than 12MB of RAM installed and the Memory Aperture feature will not enable, there is likely a problem either with the memory manager, or with the motherboard DIP switches or jumpers. Disable any memory management software (EMM386, QEMM, 386MAX, etc) and try again. If this doesn't help, check the CMOS setup to be sure that the correct amount of system RAM is being reported.

 Make sure that the system CMOS is not set to "cache" the memory area in which the mach32 memory aperture will be installed. Some CMOS setups allow you to define a "cachable memory size" option.  Make sure that this is set to the actual amount of system RAM installed. Other setup routines will allow you to define a "non cachable block". If this is how your CMOS operates, be sure to define the memory aperture location as a "non cachable block". It may be necessary to adjust the motherboard DIP switches or jumpers to properly reflect the amount of system RAM installed. Check your motherboard manual for details.

 On an ISA system, the default aperture state is "disabled". The default positioning of the aperture, once enabled, is at the 10MB location. We have found that 12MB is more appropriate for systems in which a "non-cachable block" must be defined in the CMOS. The aperture size will be 4MB for a 2MB  mach32, and 1MB for a 1MB mach32. INSTALL versions 2.1 and later will  automatically place the memory aperture at an appropriate location if you choose to enable it.

 ATI mach32 products designed for other bus specifications (EISA, 32-bit MicroChannel, and VESA Local Bus) fall under the same sort of limitations as  the ISA models, but the maximum memory address for the aperture is much  higher (128MB), so the possibility of a conflict with installed system RAM is  slight.

 The recommended memory aperture location for the EISA and VLB mach32  products is at the default 124MB setting. INSTALL version 2.1 or later will  automatically place the aperture in this location if you elect to enable it.

 Very early versions of the mach32 Windows driver would not operate if the  memory aperture was disabled. This problem has been resolved in more recent  versions of the driver. Ensure that you're using a driver version of 2.0 or later to  take full advantage of the memory aperture feature.

mach32 only gets 640@256 or 800@16 in WIN95 / 98
When a mach32 product is installed in Windows 95 or Windows 98, only the following modes are available: 
    640 x 480 at 16 colors or 256 colors 
    800 x 600 at 16 colors only 
This problem occurs because the mach32 board is configured for "factory defaults". 
   The Microsoft-supplied driver for the mach32 reads information regarding mode support directly from the card. If it reads a "factory default" configuration, only the modes shown above are made available. 
   The mach32 product must be configured to match the capabilities of the MONITOR attached, before WIN95 will allow full access to resolution and color depth combinations.. 
   This is accomplished using the DOS-based INSTALL program which comes with the mach32 product (mach32 disk #1). The INSTALL program can also be downloaded from the ATI website or BBS. Look for M32UTL.ZIP

1. Boot to a DOS command prompt. 
2. Run INSTALL. 
4. Change the monitor type to one which matches the monitor attached, or use the CUSTOM option to setup each resolution supported by the monitor attached. 
5. Save the new configuration, exit the INSTALL program and POWER OFF the machine. 
6. POWER ON, load WIN95, and check the Display Properties panel. Additional resolution and color depth options should now be available. 

GUP under Linux
Brad Parker replies 
Heroic isn't the work I'd use for this procedure... 

I've never been able to get the ATi GUP to run using the Mach32 xserver, however here is the why and how of getting it to display using the generic SVGA xserver. 

   Why: The ATi GUP is a Vesa compliant video card. It also has a firmware configuration utility available. I drive a fixed frequency IBM 6091-19 with mine. As the monitor only works at three specific frequencies, I used the DOS firmware configuration utility to program in my specific needs to the onboard eprom on the GUP.

How: There are two ways to do this. 
   First there is the hard way which uses a text file, similar to the XF86Config file, which is read by a compiler like program that transfers the info to the eprom on the ATi card. It's about as fun as figuring out dot clocks. At one time Vesa member companies were supposed to supply the owners of their monitors with this file. A few exist out there, mostly for the NEC multisyncs, which really don't need them. Go figure... 
   And there is the Easy way, which is an interactive adjustment program. supplied with the ATi driver diskettes, available on the ATi web site. This DOS program works a lot like the size and sync adjustments on a multisync monitor. It reminds me of the AppleVision software for the Mac. As I knew from the IBM specs what the 6091-19 needed, I just picked the closest preset, which happened to be the Vesa 1280 x 1024 @ 60 Hz mode. This is known as Vesa mode 107h (See Peter Wendt's excellent page on the XGA-2 card for a list of other Vesa modes). I then entered the custom mode. Next I displayed the test pattern with the ATi setup program and used the arrow keys and what not to get the size, centering, sync polarity etc.. correct for my monitor. Then I saved those settings, which get stored on the GUP's eprom chip under, you guessed it, Vesa  Mode 107h (I gave it a user friendly name, but 107h is where it really is). 
   When setting up your xserver for Linux, choose the generic SVGA server. It's smart enough to figure out that the ATi GUP is a Vesa compliant card. You edit the XF86Config file leaving all the entries for the display settings that correspond to the ones you have programmed in the ATi card using the above procedure. Don't worry about the dotclocks and such, just use the basic resolutions, color depth and vertical refresh rates that are closest to your monitors modes. Delete all of the others that aren't supported by your monitor or the GUP. 
   Now when you start the xserver, it is simply going to send a Vesa mode change to your Vesa compliant ATi GUP card. The card will switch to your custom mode that corresponds to the Vesa mode, like 107h in my particular case. I'm fairly certain that it just ignores the dot clock settings and all. 
   Now when you toggle through the various modes while running X, the generic SVGA xserver just sends out various Vesa mode changes. See the SVGA howto for details on which modes correspond to which resolutions. I've also used the ATi GUP in this manner with a Compaq SVGA and IBM 9524 (14P) and 9525 (15P) monitors. It was significantly easier with the  multisyncing 14P and 15P than with the fixed frequency 6091-19. Basically with the multisyncs I just used whatever was the default Vesa modes and adjusted the monitors to work with that. 

Hope this sheds some light on the subject. 

ASIC Revision
> I was unable to install NT with linear video memory access enabled. 

From Brad Parker
/* You may have an ATI with the hardware timing error. To check this: Use the ATi DOS utilities, type "test /i" and note the ASIC revision.
   If it's 0, then ATI's drivers won't work very well. Numbers above 6 are the fixed card numbers.  Between 1 and 6 are may or may not work. */
   I have no problems with my GUP and NT 4 sp4. My ASIC revision is 7 IIRC

"there is a timing problem in The Revision 3 MACH 32 CHIP ITSELF!! Its a hardware problem.  No amount of messing with the software will fix it. check the revision of the Mach32 chip.  if the rev number ends in 3 ie: 6880003 replace it with a revision 6 chip and all should be ok."  (Ed. uh, it's not socketed, so how to easily swap in a new ASIC is beyond me)

(Ed. OR  Control Panel>Display>Display Properties>Display Type, look in the lower left hand at Adapter Information, Chip Type, and it will say Mach32 rev. x).

AdapterId 8089 ATI GRAPHICS ULTRA MCA Video Accelerator (VGA ENABLED)  10/02/94 v2.2

FixedResources (IO)
02E8h-02E8h 02EAh-02EDh 06E8h-06E8h 0AE8h-0AE8h 0EE8h-0EE8h 12E8h-12E8h 12EEh-12EEh 16E8h-16E8h 16EEh-16EEh 1AE8h-1AE8h 1EE8h-1EE8h 22E8h-22E8h 26EEh-26EEh 2AEEh-2AEEh 2EEEh-2EEEh 36EEh-36EEh

Address of BIOS ROM
   The base address of the BIOS ROM cannot be changed. However, some systems have a problem allocating C0000h-C1FFFh during configuration.  For these systems, a second identical choice is provided.
  This overcomes the problem by making it appear that a choice is available to the configuration program.  The ROM JUMPER is used to enable the ROM prior to configuration.  Setting the ROM JUMPER to the DISABLED position disables the ROM, allowing the adapter to co-exist with an unconfigured XGA adapter.  It is important that during configuration, all other adapters be moved away from address C0000h-C7FFFh."

A duplicate choice is required to fix configuration problem on model 76
  <"C0000h-C7FFFh">, C0000h-C7FFFh

9595 Main Page