@8089.ADF ATI GRAPHICS ULTRA MCA Video Acc., Ver 2.2, VGA ENABLED
@808A.ADF ATI GRAPHICS ULTRA MCA Video Acc., Ver 2.2, VGA DISABLED
mach32 Drivers and Utilities (ATI Graphics Ultra Pro)
MACH32.ZIP IBM's mach32 driver OS/2 (2.x / Warp 3)
11-11-1996. ATI's mach32 driver for OS/2 was from 08-11-1995. Thanks to the ceaseless
surveillance of Wolfgang Gehl!
Problems with ATI Mach32 Video Adapter on MCA Computer LINK
Installation and configuration utilities (INSTALL.EXE v2.3) for mach32
products - EISA and MCA config files, DPMS, VVESA, VDIF, VGRAF and DOS
mouse drivers included.
- Problems with ATI Mach32 Video Adapter on MCA Computer
Version 2.6 Win 3.1x display and Multimedia Video Acceleration drivers
Note: The bundled drivers with W95
and NT are the most current.
OS/2 2.1x and OS/2 3.0 Warp display drivers
Win95 DPMS patch for all mach32 based products. Please see 32W95DPM.TXT
for more details.
Note: This is a patch
for the existing Windows 95 mach32 display driver adding DPMS capabilities
for VESA compliant Display Power Management Signaling (DPMS) monitors only,
it does not add any further enhanced features to the mach32 display drivers
for Windows 95.
Identifying ATI Products by Direct (Visual) Inspection
Using the BIOS Part Number to determine which ATI chip is on Your Product
Mach32 Setup Tips (ATI Site) Broke
REG-688000-15 Programmers Guide to the mach32 Registers
GCS688xxx-xx mach32 Graphics Controller Specifications
BIO688000-xx Graphics Accelerators and VGA BIOS Kits
AIF6888000-xx Programmer's Guide to the mach32 Adapter Interface
TLC34076 Video Interface Palette Data Manual Datasheet
ICS2494 Dual Video/Memory Clock Generator Datasheet
Equivalent to ATI 18811 Clock Generator Chip
Release Notes for XFree86[tm] 220.127.116.11
ATI GUP Board
ATI GUP Alone
Alone Under W95
ROM BIOS Address
Set Power-Up Configuration
Custom Monitor Configuration
Power-Up Video Mode
VGA Memory Size
Only 640x480x256 Under Why9x
GUP under Linux
ATI Graphics Ultra Pro
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
ST M27C256B-12 28 pin DIP
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.
for conflicts during configuration.
JU6 DAC Select Jumper
CLOSED = 68830 DAC
OPEN = 68875 DAC
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.
The manual cheerfully says: The IRQ jumper
is not used, do not enable it. This jumper should be
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
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
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:
100.0 126.0 92.4
36.0 50.35 56.64
135.0 32.0 110.0
80.0 39.91 44.9
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
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.
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
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
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.
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
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
Some personal experiences with
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 Windows 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
Monitor Type Sets a preset or custom configuration for
If you're lucky, you have one of the below monitors. If
you don't, then the Custom Monitor Configuration is for
|VGA or PS/2
|ALR FlexVIEW 2X
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)
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
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
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)
Note: The VGA
memory size does not affect the mach32 driver performance
- 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
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
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
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
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 Win9x
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
This is accomplished using the DOS-based INSTALL
program which comes with the mach32 product (mach32 disk
The INSTALL program can also be downloaded from the ATI
website or BBS. Look for M32UTL.ZIP.
- Boot to a DOS command prompt.
- Run INSTALL.
- Select SET POWER-UP CONFIGURATION.
- 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.
- Save the new configuration, exit the INSTALL program
and POWER OFF the machine.
- POWER ON, load WIN95, and check the Display
Properties panel. Additional resolution and color
depth options should now be available.
If you have any questions about the information above,
contact ATI Technical Support and reference INFO-BASE
file # 2981
GUP Under Linux
Brad Parker says:
Heroic isn't the work I'd use for this
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
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
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.
> I was unable to install NT with linear video memory
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)
Properties>Display Type, look in the lower left hand
at Adapter Information, Chip Type, and it will say
Mach32 rev. x).
ATI GRAPHICS ULTRA MCA Video Accelerator (VGA ENABLED) 10/02/94 v2.2
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
A duplicate choice is required to
fix configuration problem on Model 76