|XF86Config options||History||Issues||Newbie info||Environments||Download||Misc laptop links||About me|
I am maintaining a moderated mailing list for folks who wish to be receive updates on the status of this driver. You may sign up at this web page: www.probo.com/mailman/listinfo/savage40. This is a very low-volume list; several have suggested I should have called it "savage40-announce", since that's really what it is. They're right.
VIA/S3 has release an updated version of THEIR Savage driver. It forked off of my source base about 3 years ago, so there are significant differences, but it looks like they have addressed a number of issues. This includes motion compensation support for MPEG playback (XvMC), and the long-awaited DRI driver for 3D OpenGL code. The DRI driver is only for the ProSavage and Twister chips, so it won't help Savage/IX or SuperSavage users. If you want to download the source and build it, try http://www.linux.org.uk/~alan/S3.zip. It was built for XFree86 4.2.0; the DRI code, in particular, will need a lot of work for XFree86 4.3.0. This driver has been submitted to XFree86, but it will not be a standard part of XFree86 4.4.
ProSavage-DDR Refresh Rates A number of users have complained that
they get wacky refresh rates when using the 1.1.27t driver. There is
apparently some kind of conflict between this driver and the BIOS found on
some ProSavage-DDR motherboard that causes anything but the default refresh
rate to be set wrong. There are two workaround for this. One is to turn
off the use of the BIOS by adding
Option "UseBios" "no"
in the "Device" section of your XF86Config file. Another is to try the driver below that was built from the 4.4.0 beta 2 source base. It works on 4.3.0, and reportedly solves the refresh problem.
Important Update!VIA has now replaced the Savage chips with a new and incompatible graphics engine which was initially called "CastleRock". However, in a brilliant marketing move paralleling the "New Coke" fiasco, the marketing folks at VIA have decided to allow laptop makers to call this chip the "ProSavage-DDR400". This is insanity on VIA's part, and it's going to cause me enormous grief, because of my optimistic statement that my driver supports every chip with "Savage" in the name.
So, here's the new rule. My driver supports every chip with "Savage" in the name that has a PCI vendor ID of 5333 (which belongs to S3). If you have a Savage chip with VIA's vendor ID (1106), then it is a CastleRock, not a Savage, and my driver does not support it.
VIA has submitted an XFree86 4.2 driver for the CastleRocks to XFree86, but I don't think it has been integrated yet.
VIA also has a pre-built driver for the ProSavage and Twister chips for RedHat 7.3 at downloads.viaarena.com, or www.viaarena.com. I haven't looked at either of these pages.
Several folks have asked about the possibility of contributing as thanks for past work and to inspire future development. I don't expect anyone to feel obligated to do so, but if the mood so strikes you, I do have a PayPal account with my e-mail address (firstname.lastname@example.org).
Want to meet my dog?
1.1.27t drop now available The 1.1.27t drop solves a couple of problems.
The last few drops have had a bug in the mode switching that caused the refresh rate on some machines to come up stubbornly at 60Hz, even though the driver and the log both indicate a higher refresh rate. This is now repaired.
The LCD expansion code in the xvideo support that I stole from S3 was just buggy. I think that has been the cause of MANY xvideo problems. I know it affected the SuperSavage, but probably affected others as well. This has been repaired.
I can now run any resolution on the IBM T23 panel, and the xvideo support runs just fine. It even shows up on the TV display, using the S-vido connector.
I need to give a big word of thanks to the folks at IBM in North Carolina, who sent me a loaner T23 laptop for a couple of months.
Note that I STILL cannot do simultaneous LCD/TV or LCD/CRT on the T23, so you don't need to check for that...
So, what's left?
s3switch still cannot switch to LCD plus CRT on the IBM T23 with the 1400x1050 panel. IBM is loaning me a laptop so I can chase this down. Hopefully.
The Citrix ICA client still hangs. I don't know why. In the short
term, you can work around the hang by
in the "Screen" section of your XF86Config-4 file.
xvideo on the Savage2000 still seems to be broken. I don't know when I'll be able to get around to this.
The XFree86 4.3.0 source code release is my version 1.1.25t plus changes. The XFree86 4.2.1 source code release seems to match my version 1.1.23t. The XFree86 4.2.0 source code release matched my version 1.1.20t. The XFree86 4.1.0 source code release matched my version 1.1.17.
The xdm/kdm hangs are fixed! A few minutes ago, I found a bug in my driver in an apparently unrelated area which eventually causes keyboard and mouse events to go awry after the server has been reset by xdm/kdm.
CRT/LCD/TV Switch Utility available. In the list of downloads below, you will find a utility called 's3switch' that will allow you to switch your display between the various output devices supported by the Savage (CRT, LCD, TV). There is also a minimal man page included. If you find this useful, you can copy s3switch to /usr/local/bin, and s3switch.1x to /usr/local/man/man1. s3switch depends on the vm86 syscall, so it is Linux-only for now.
So, when can you use it? If you run with UseBIOS on (which is the default), you can use it at any time, whether XFree86 is running or not, and whether the X VT is visible or not. If you must run the server with UseBIOS off, then s3switch will only work when XFree86 is NOT RUNNING. S3switch calls into the video BIOS to do its thing, and the BIOS depends on state information left over from the previous mode switch. If you try to use s3switch while the server is running with UseBIOS off, the state information is wrong, and the BIOS will Do The Wrong Thing.
XFree86 4.2.0 now available. Check the XFree86 FTP site for more details.
There are a number of options you can set in the Screen section of your XF86Config file to manipulate the driver's operation. Some of the more interesting options are:
|Option "NoAccel"||Turn off all acceleration. You might try this if you're seeing unusual crashes, just to rule out acceleration problems. On a speedy machine, even the unaccelerated code runs pretty darn fast. That's a tribute to the new XFree86 4.x architecture.|
|Option "SWCursor"||Force the board to use a software cursor instead of a hardware cursor.|
|Option "CRTOnly"||On a laptop chip (/IX, /MX, Twister, SuperSavage), force the chip to display only to an attached CRT, not to the LCD panel.|
|Option "TvOnly"||On the chips that support a "TV Out" connector, force the chip to display only to the TV, not to the CRT and/or LCD.|
|Option "PAL"||(Requires TvOnly) Force the "TV Out" signal to be in PAL instead of NTSC.|
|Option "shadowFB"||This is another option for cases where acceleration does not work. With shadowFB, the X server maintains an image of the screen as a bitmap in memory, and only updates the sections of the screen that change. This often provides better performance than pure "NoAccel".|
|Option "Rotate" "CW"
Option "Rotate" "CCW"
|Causes the frame buffer to be rotated 90 degrees clockwise or counterclockwise. This is designed primarily for monitors which can rotate between portrait and landscape orientations. Turning this option on disables acceleration and enables shadowFB.|
|Option "UseBIOS" "off"
Option "UseBIOS" "on"
|Enables or disables the use of the video BIOS to switch modes. Using the BIOS lets me do a better job of supporting all the various LCD panels in the world, but some purists are opposed to it. Default is "on".|
|Option "ShadowStatus"||Allows you to select the alternate "shadow" method of reading the engine status register. This has completely eliminated the infamous "scrolling hang" bug in every instance thus far, at the cost of a slight performance hit. The default value is "off".|
|Option "LCDClock" "100MHz"||Allows you to limit the maximum dot clock when an LCD panel is active. Some Savage/MX and /IX users report problems as if the BIOS were allowing the dot clock to overdrive the panel. I've tried to detect this automatically and failed, so it seems to me that the best solution is to provide this override. Most users will probably not need this. Overall, the BETTER choice might be to limit the H and V frequencies of your LCD monitor definition in XF86Config. The default maximum dot clock is 220MHz.|
These chips are supported:
|Supported Chipsets:||Trivia Tidbits|
The list to the left is roughly in chronological order of release. The Savage3D was the first Savage. Only a few actually made it into the real world. The graphics engine is a cleaned-up and sped-up version of the ViRGE engine.
The 3D, MX and IX all have the same basic drawing engine. The MX and IX add LCD support. The only difference between the MX and IX is video RAM: the MX uses external RAM, while the IX has its RAM on-chip. A one-chip solution!
Savage4, ProSavages, and the SuperSavages share a drawing engine, which is much improved over the 3D. The ProSavage and SuperSavage engine is embedded in the motherboard north bridge chip, so its raw memory access rate is excellent. This design came from a partnership between S3 and VIA. Now that S3 is owned by VIA, I think you'll hear a lot more about these products. The P products are for Pentium systems; the K products are for AMD systems. The graphics parts are identical; only the north bridge functions differ.
The Savage2000 has a the best 3D engine of the bunch; the 2D engine is an incremental improvement over the Savage4. The Savage2000 did quite poorly in the marketplace, so the installed base is rather small.
The "-MV" designation means the chip supports the Macrovision copy protection scheme, like that used on commercial video tapes. A computer OEM cannot get a license to play DVDs on a system with a "TV out" port unless the graphics chip supports Macrovision encoding, to prevent you from making digitally perfect tape copies of your DVDs. And don't think you can get around this by looking for a non-MV chip; no non-MV Savages have ever left the S3 testing lab.
The SuperSavage is a recently introduced set of laptop chips from VIA/S3. I have never had one of these in my hands, so my support is entirely based on good luck and the good will of others.
Version 1.1.26t (4-December-2002):
I've made a subtle change to the way the streams engine is managed during xvideo operation. The result should be MUCH less flickering when moving windows while playing movies.
I have added an additional XFree86 option. If
your console screen is screwed up when you switch using Ctrl-Alt-F1 or
when you exit the server, try adding
to the "Device" section of your /etc/X11/XF86Config.
Perhaps the biggest change in 26t has to do with distribution. Many people reported that my drivers would crash with an illegal instruction fault when used on SuSE 8.x, Mandrake 9.0, or Gentoo 1.2 or 1.4 distributions. I'm still not quite sure how these folks built XFree86 4.2.0 in an incompatible way, but they seem to have done so. Fortunately, if the libvbe.a and libint10.a modules are built on the same machine as the Savage driver, then the problem no longer occurs. Thus, I am now releasing all three as a package. Only people using those distributions need to worry about the extra libraries!
This driver was built for XFree86 4.2.0. It works fine with 4.2.1. It will not work with 4.0.x. It will work with 4.1.0 if you supply the "-ignoreABI" switch to the server.
Version 1.1.25t (11-September-2002): This drop fixes the hangs in the "blaster" and "critical" hacks of xscreensaver. The hangs were caused by clipped lines drawn with very large coordinates.
This also fixes the hang at the beginning of "xine", caused by trying to set one of the video attributes (colorkey, brightness, saturation, etc.) before the overlay window was visible. This is a perfectly legal thing for xine to do, and I just needed to be able to handle it.
The "xgamma" extension is now supported, which allows you to reprogram the DAC registers at depth 24. This also allows me to support DirectColor visuals. As a side effect, I changed the default DAC resolution from 6 bits to 8 bits.
A bug in the hardware cursor code that would cause it to get the cursor colors wrong on ProSavage boards has been fixed.
Another long-standing bug in color tiled patterns has been fixed. Previously, they never worked on ANY Savage chip. With 1.1.25t, they will work, but they are only accelerated on the Savage3D and Savage4. The other chips have a hardware limitation that makes them incompatible with XFree86 accelerated 8x8 pattern code. However, if you never saw the bug (and so far only one person has), then you won't notice a slowdown...
I also made a minor (but commonly requested) change to s3switch which forces it to assume that all possible devices (LCT, CRT, TV) are always connected. Only the BIOS on the Savage4 and Savage2000 is able to accurately determine which devices are actually attached. Changes described above.
Version 1.1.24t (10-September-2002): Preview release of 1.1.25t; same changes.
Version 1.1.23t (8-March-2002): This drop made a number of small changes. It added support for the ProSavage-DDR chip. It included code from VIA/S3 to clean up some issues with the xvideo support. It added a patch contributed by Sidik Isani that adds the ability to use a 24-in-24 mode (-depth 24 -fbbpp 24). It included a patch from Juan Altmayer Pizzorno that fixes DGA on 1400x1050 panels, which was completely broken before. It inclued a patch from Egbert Eich who noticed that monochrome pattern expansion had the bit order backwards. This fixes bad titlebar buttons in KDE 2.2. It included a patch from Chuck Cranor that fixes black screen when switching back to text mode on a 1400x1050 panel when running NetBSD.
Version 1.1.22t (8-March-2002): This was an earlier and slightly broken version of 1.1.23t...
Version 1.1.20t (25-October-2001): This drop adds initial support for the SuperSavages, fixed the StarOffice and OpenOffice hangs, and changes the mechanism for figuring out the amount of attached VRAM.
Version 1.1.19 (28-August-2001): This drop fixes the hangs in "xlock -mode xcl" and in the Opera browser. Thanks to Martin Wilck for doing the analysis that led to the discovery of an invalid parameter causing a chip lock.
Version 1.1.18 (10-August-2001): This drop fixes lockups experienced by ProSavage PM133 and KM133 users, by dropping all mention of DDC information.
Version 1.1.17 (18-May-2001): This drop is intended to bring my source tree in line with the XFree86 4.1.0 development tree. Besides some minor tweaks by the XFree86.org developers, the only significant change is that xvideo support is now enabled for the older Savage3D and Savage4 chips.
Version 1.1.15 (23-Feb-2001): This drop fixes two minor problems. First, some later versions of the Savage4 chip add an additional memory configuration that I was not handling. Your 32MB would show up as 2MB. Now fixed. Second, the server would crash (cleanly) if you went into a console VT long enough for the X screensaver to kick in. This is also fixed.
Version 1.1.14 (16-Feb-2001): The xdm/kdm hangs are fixed! After spending several hours hunkered over gdb, tracing through the intestines of the XFree86 event handling code, I managed to find the problem. The programmers in the group will appreciate the apparently unrelated nature of the fix: I was mishandling my DGA initialization during a server reset, which only happens in xdm/kdm processing. This allowed DGA to use uninitialized memory for its status structure. Most of the time this uninitialized memory had bits set that made DGA think there was a DGA app that had grabbed the mouse and keyboard. It then very efficiently intercepted all mouse and keyboard events and routed them into /dev/null.
I suspect this might also help some of you who are experiencing full screen VMWare problems, although I'm not 100% convinced.
Version 1.1.13 (8-Feb-2001): We seem to have a reliable and universal workaround for the infamous scrolling hang! Starting with this drop, if you see the hang, try turning on Option "ShadowStatus". This uses an alternate method of reading the engine status that avoids the dangerous register access.
The 1.1.13 drop included stupid code on my part which disabled the 2D engine when the BIOS was turned off. This was repaired in 1.1.13b.
Version 1.1.12 (6-Feb-2001): This is a bug fix release for 1.1.11 that removes the xvideo initialization which was locking up non-mobile chips, like the Savage4 and Savage2000.
I am told that VMWare 2.0 still does not work in fullscreen. I believe I was told that VMWare does not correctly handle DGA 2.0 as included in XFree86 version 4. Thus, for now, I think this is a VMWare problem. If someone can tell me convincingly that VMWare 2.0 works in fullscreen on SOME XFree86 4.0 hardware, I will put it on my list.
Version 1.1.11 (1-Feb-2001): This minor tweak of 1.1.9 finally fixes fullscreen DGA support. DGA in a window worked before, but I had... ahem... a little bug that passed the wrong frame buffer pointer to fullscreen apps.
This version also has a new option for those of you trying to work through the scrolling hangs. You can try adding Option "StatusHack" to your XF86Config file. This completely changes the way the driver fetches the engine busy status. If you do try this, let me know your results.
Version 1.1.9 (30-Jan-2001): This is a minor update of 1.1.8a that REALLY resolves the console stuff. 1.1.8 worked on text consoles but not framebuffer; 1.1.8a worked on framebuffer but not text. This time, I actually investigated the issue instead of trying to concoct a workaround, and it should work in both places. I do not know if it works with SVGATextMode consoles.
Version 1.1.8a (26-Jan-2001): This is a minor update of 1.1.8 that finally fixes our problems with frame buffer consoles. I'm using a vga=792 console, and everyone plays together nicely. If anything, it even works BETTER than a text console.
Version 1.1.8 (25-Jan-2001): This is a minor update of 1.1.7 to fix several problems in the xvideo support.
Version 1.1.7 (24-Jan-2001): A number of niggly problems have been solved, and a number of new features have been added. There is a problem in the stock 4.0.2 source tree which will cause -depth 24 to fail on most machines; this release fixes that.
The server now uses DDC to probe your monitor, which should make configuration easier. Even if it doesn't, it prints a lot of cool information to the server log.
The server now has preliminary support for the xvideo extension. It includes several types of YUV overlays (YUY2, UYVY, YV12, Y211, I420). Those of you with mpeg and legal DVD players: please try this out and let me know what you find out.
Version 1.1.5 (21-Dec-2000): Fixed support for 15-bit (5:5:5) modes. It was supposed to be there all along, but it was broken. Now it should work. Rearranged the memory mapping and unmapping; a fix adopted by XFree86 seems to break kdm and switch to VTs. Added code to shut off the cursor when the screen saver kicks in. Added initial DGA support, but this is UNTESTED.
As I mentioned above, S3 is taking future development of this driver in-house. As a result, it seems likely that the current list of known issues will be outstanding for quite a while. Some of them have workarounds, some do not.
There is currently no DRI driver for the Savages for XFree86 4.x, which means that OpenGL applications are entirely simulated in software. There was work going on at one time to add this support, by the same fellow who did the UtahGLX driver for XFree86 3.3.6, but his e-mail address no longer responds.
Xvideo extension unreliable at depth 24.
Many people have been unable to get the xvideo extension to work at depth 24, especially on the laptop chips, although some have had complete success. I do not know what the issue is, but each case thus far has had success by switching to depth 16. This problem is MUCH improved in 1.1.22t, although at least one user is still seeing problems.
Black screen when exiting X on 1400x1050 LCDs.
Several manufacturers (IBM T21, T22, T23; HP; Micron Transport GX) now have Savage-based laptops with an LCD panel of an unusual size: 1400x1050. These manufacturers have concocted "magic" in their video BIOSes to get text-mode screens to fill the panel, and this "magic" conflicts with the Savage driver in some way. As a result, any attempts to exit the server or to switch VTs results in a black console. You can work around this by using a graphics console, by adding vga=828 or vga=830 to your /etc/lilo.conf. This has the added bonus of giving you crisp, clear characters in your consoles, instead of the fuzzy "expanded" text mode.
Citrix ICA client causes server hang.
When using the Citrix ICA client, some operations can cause the chip to
go out to lunch, and hang the server and the system.
You can work around the hang by
in the "Screen" section of your XF86Config-4 file.
ASUS Signal 4.
Some people get "fatal error, signal 4" with the BIOS turned on. ASUS laptops seem particularly prone to this. For now, if you see this signal 4, please set UseBIOS "off".
I get a lot of requests for technical support. I'm not really set up to handle that kind of thing. There are a number of good web sites devoted to getting started with Linux and X; check the links below. However, I have learned some things that might be of use to those just getting started.
Some folks get the idea from my text below that you have to build from source. If you're running Linux, you do NOT need to build from source. Just fetch the xf40sav.tgz file. This file is a "compressed tar". If you're used to Windows, this is just like a .zip file; it is a compressed file which contains other files. You decompress it with the tar command: tar xvfz xf40sav.tgz
There are relatively few really key files in XFree86. The first key file is the server binary itself: /usr/X11R6/bin/XFree86. In XFree86 4.x, this file provides only the most basic services. Most of the work is done by separate, loadable modules. These modules reside in directories /usr/X11R6/lib/modules and /usr/X11R6/lib/modules/drivers. The next key file is the Savage server, which goes in /usr/X11R6/lib/modules/drivers/savage_drv.o.
The next key file is a symbolic link to the server binary. When you go to run X, the file you eventually run is /etc/X11/X. This is not actually an executable file. Instead, it is a "symbolic link" which points to the actual file. In RedHat 7.0 and Mandrake 7.2, this file is the method by which you can switch between XFree86 3.3.6 and XFree86 4.x. To run 3.3.6, /etc/X11/X must point to /usr/X11R6/bin/XF86_SVGA. To run 4.x, /etc/X11/X must point to /usr/X11R6/bin/XFree86. You can switch between them like this:
|Switch to 3.3.6||Switch to 4.x|
ln -s /usr/X11R6/bin/XF86_SVGA /etc/X11/X
ln -s /usr/X11R6/bin/XFree86 /etc/X11/X
The final key file is the XF86Config file. This includes all the configuration information, like your monitor type, your graphics board, your keyboard, your mouse, which modules you want, which options you want, which font directories you need, and so on. On many systems today, you will find two such files: /etc/X11/XF86Config and /etc/X11/XF86Config-4. This allows XFree86 3.3 and XFree86 4.x to coexist on the same system. XFree86 4.x will always use the XF86Config-4 file if it is present, otherwise it looks for XF86Config.
Now, you can construct a basic configuration file using "X -configure". You need to make sure you copy this to the correct spot. Look at the files in /etc/X11; if you see XF86Config-4, that's where you should copy the file produced by "X -configure". Otherwise, copy it to /etc/X11/XF86Config. You can download a sample XF86Config-4 here.
Important Note! The default configuration file created by "X -configure" assumes a very stupid monitor, capable of no more than 640x480 60Hz. On many laptops, this timing produces an unreadable screen. Before launching X, you should load your newly created XF86Config into an editor, find the "Monitor" section, and add these two lines before the EndSection:
HorizSync 30-70 VertRefresh 50-90
That's the setup in a nutshell. If you have more configuration and setup questions, your best bet is to ask them in the comp.os.linux.portable or comp.os.linux.x newsgroups. I've been impressed by the uncharacteristic patience of both groups towards beginners.
I don't know anything about Xconfigurator or XFdrake or SaX. These are tools invented by RedHat and Mandrake to do pretty graphical X configuration. I don't know where they get their lists of supported chips and drivers. I understand that the scheme I describe above is less friendly than these GUI tools, but I also know that it works. Perhaps someone on one of the newsgroups (comp.os.linux.x or comp.os.linux.portable) could help with these other tools.
The server seems to work well on Linux, FreeBSD, OpenBSD and Solaris. It also works in Linux/Alpha. Binaries and sources are available below.
I have been assured that XFree86 drivers are operating system independent. In theory, you should be able to use ANY of the Intel/x86 drivers below on any operating system.
The binary tars below contain the file savage_drv.o. This is the driver binary. This file belongs in the loadable driver module directory, which is usually /usr/X11R6/lib/modules/drivers. Note that the driver name in XF86Config is just "savage"; the "_drv.o" suffix is automatically added by XFree86.
The 1.1.26t zip contains three files. Most people will ONLY need the driver file itself. The other two libraries will only be needed if you run Linux, using a SuSE distribution 8.0 or later, a Mandrake 9.0 or later, or a Gentoo 1.2 or later.
XFree86 modules are supposed to be operating system independent, and in my experience this actually seems to be true. If there is a binary below built on your operating system, use it, but feel free to try one of the others if you have a need to run some other version. I include the source code below for those who are masochistic enough to want to explore it, and for those who are running other operating systems (anybody have a Plan 9 binary?).
If you really need to build from source, you will need to install the XFree86 4.3.0 source distribution. It's BIG. First, build everything with "make World". Change to xc/programs/Xserver/hw/xfree86/drivers/savage. Get rid of the existing files (rm Imakefile *.[ch]). Untar the source code tarball into that directory. Do "make Makefile", "make depend", and "make". That gives you a "savage_drv.o", which should be linked into the modules directory.
|savage_drv.o driver binary from 4.4.0 source
built on Linux/x86
|4.4.0 beta 2||34kB||xf44sav-27t.tgz||xf44sav-27t.tgz|
|savage_drv.o driver binary for 4.3.0
built on Linux/x86
|savage_drv.o driver binary for 4.2.x
built on Linux/x86
plus support libs
|savage_drv.o driver binary
|savage_drv.o driver binary
built on FreeBSD/x86
|savage_drv.o driver binary
built on OpenBSD and NetBSD
|savage_drv.o driver binary
built on Solaris 8
|Savage driver source code||1.1.27t||77kB||savage-1.1.27t.zip||savage-1.1.27t.zip|
|s3switch utility binary for Linux/x86||--||21kB||s3s.tgz||s3s.tgz|
|s3switch utility source code||--||8kB||s3ssrc.zip||s3ssrc.zip|
Thanks to Christian Herzog for building the 4.4.0 driver.
Thanks to Thanassis Misaradis for building 27t on XFree86 4.3.0.
Big thanks to Manoj Kasichainula for his work in adding support for the SuperSavage.
Thanks to Tony Simone for buildint the Debian package.
Thanks to Frank Mehnert and Jork Loeser of Dresden University for coming up with the "scrolling hang" fix.
Thanks to Adrian Woizik for building the FreeBSD binary.
Thanks to Dean Christakos for building the NetBSD binary.
Thanks to Angelos Keromytis for building the OpenBSD binary.
Thanks to Rudy Ruiz for allowing me debug time to find the x86emu emulator bug on FreeBSD.
If you have comments or questions, you can e-mail me at email@example.com.
Here are some links to general laptop setup sites. I haven't visited most of these myself, but I'm told they are helpful.
I am Tim Roberts, a partner in the technology consulting firm Providenza & Boekelheide, Inc. (www.probo.com), located in Tigard, Oregon, just southwest of Portland. I've been programming computers for just over a quarter of a century, from teletypes to mainframes to minis to PCs. I hold a CCP (Certificate in Computer Programming), an MCP (Microsoft Certified Professional), and have been named a Microsoft MVP (Most Valuable Professional) for the last eight years.
P&B offers a wide range of technology consulting and development services, from chips to boards to architectural and design reviews to drivers of all kinds, as well as networking and Internet consulting for small businesses.
|This web site was created with vim, the ultimate web site management tool.|
Take appropriate precautions. Although substantial testing suggests this software is quite stable, this is an open source product, and there is no warranty. The prudent computer user always makes regular backups. Neither I nor VIA/S3 Graphics can be held responsible for any damage which might be caused by this software.
Last modified: Monday, December 8, 2003