VOGONS


First post, by nicetux

User metadata
Rank Newbie
Rank
Newbie

I've got a weitek 4167-33 FPU. To use on a mainboard is no problem, i have a mainboard with socket for 4167. But is there any software who support the 4167?

Reply 1 of 7, by tayyare

User metadata
Rank Oldbie
Rank
Oldbie

I only know old Autodesk applications (AutoCAD was being one) that supports this specialized FPU.

GA-6VTXE PIII 1.4+512MB
Geforce4 Ti 4200 64MB
Diamond Monster 3D 12MB SLI
SB AWE64 PNP+32MB
120GB IDE Samsung/80GB IDE Seagate/146GB SCSI Compaq/73GB SCSI IBM
Adaptec AHA29160
3com 3C905B-TX
Gotek+CF Reader
MSDOS 6.22+Win 3.11/95 OSR2.1/98SE/ME/2000

Reply 3 of 7, by idspispopd

User metadata
Rank Oldbie
Rank
Oldbie

My guess would be CAD applications and compilers (especially Fortran). Weitek coprocessors were rather uncommon.
They are discrete FPUs. AFAIR communication used memory-mapped I/O which was faster than the method used for x87, and also allowed concurrency. I think it used a flat register file instead of a register stack which also has advantages.
http://www.weitek.com/textual/support/wtl3167_bench.html is interesting for comparing the performance.

Reply 4 of 7, by Ailicec

User metadata
Rank Newbie
Rank
Newbie

I think Watcom C does, or did support the Weitek. I wish GCC supported it so I could recompile some projects, but I can't find that it ever did.

In the 386 days, the Weitek should have blown away any 387. The interface overhead made any 387 operation at least 20 clocks, where weitek may have been as fast as two clocks on writes (commands) and four on reads - basically as fast as you could feed it instructions. Also it has more registers and none of the stack, so it would be more pleasant to deal with.

On the 486 the gap is a lot smaller. On the clock doubled 486s, the Weitek ends up at a disadvantage since it goes over the now-slower bus. Of course you could probably use both the x87 and weitek at the same time..

Concurrency is an interesting topic. I've scoured the 386 and 486 manuals, and they basically say that concurrency is possible, with no details. I've seen hints - for example, that a 387 can sometimes accept a new operation while executing the last one, and that a 486 can't run its divide in parallel with the integer units. But nothing very definite.

I'd like to see what say, Quake, can do, recompiled for a Weitek.

Reply 5 of 7, by Unknown_K

User metadata
Rank Oldbie
Rank
Oldbie

I only have one Weitek mounted on an ISA 486 motherboard (25mhz I think). Back in the 386 days they were rare and no cheap consumer motherboard had a socket for them (387 was much more common).

As far as software anything ancient and scientific should use it plus CAD programs. I never did much with mine except set it up and stick it on the shelf.

Collector of old computers, hardware, and software

Reply 6 of 7, by Ailicec

User metadata
Rank Newbie
Rank
Newbie

My late-era (~1992) 386 has a 121 pin "EMC" (extended math coprocessor) socket. You can put a 3167 or 387 in, but not both. By that time I'm not sure who was buying a lower-end 386 and sticking a very expensive weitek in it.. but you could if you wanted to.

I've read that some motherboards had both the 3167 socket and the 387 socket, but have never seen an example.

Nowadays, especially since the 3167 is rare.. You could make an FPGA to go in the socket and actually serve as both 3167 and 387, unless the BIOS defeats that in some way. A good afternoon project for somebody.

Reply 7 of 7, by Ailicec

User metadata
Rank Newbie
Rank
Newbie

To try to answer the original question - more info on compiler support, from the 1988 3167 datasheet.

The WTL 3167 coprocessor is supported by the UNIX operating system (System V release 3.0). Operating system support include […]
Show full quote

The WTL 3167 coprocessor is supported by the UNIX
operating system (System V release 3.0). Operating
system support includes coprocessor addressing, pres-ence detection at power-up, context-switch handling
and emulation. For UNIX operating systems informa-tion contact your UNIX supplier. XENIX 386 support
is forthcoming.
The WTL 3167 is also supported by Phar Lap, IGC,
and AI architects MS-DOS protected mode environ-ments. MS-DOS protected mode environment support
for the WTL 3167 includes coprocessor addressing and
presence detection.
The WEITEK coprocessor can be supported under real
mode MS-DOS as well. OEMs that intend to provide
MS-DOS real mode support for the WEITEK
coprocessor must refer to the Systems Programmer's
section.
C, FORTRAN and Pascal Compilers for the 80386
and WTL 3167 under UNIX V.3 and MS-DOS
protected mode are provided by Green Hills,
Metaware, Microway, and Silicon Valley Software.
Vendor
Lahey Computer Systems offers an MS-DOS real mode
FORTRAN compiler. Metaware also provides MS-DOS real mode C and Pascal compilers. Contact ven-dors for details.
The WEITEK Coprocessor is fully transparent to the
programmer using these compilers, as the floating-point
operations are specified with familiar high-level lan-guage commands. The compilers include a run-time li-brary for transcendental operations.
Compiler designers and programmers who intend to
write WTL 3167 assembly code should refer to the Ap-plications Programmer's section. Systems programmers
who need to modify existing operating systems to sup-port the WTL 3167 should refer to the Systems Pro-grammer's section.

And a compiler info section:

  • AI Architects OS 386 (MS-DOS protected mode environment)
    Green Hills Software C, F, P Compilers (UNIX and MS-DOS protected mode)
    IGC X-AM (MS-DOS protected mode environment)
    Lahey Computer Systems F Compiler (MS-DOS real mode)
    Metaware C, P Compilers (UNIX, MS-DOS real and protected mode)
    Microway C, F, P Compilers (UNIX and MS-DOS protected mode)
    Phar-Lap Software RUN386 (MS-DOS protected mode environment)
    Silicon Valley Software C, F, P Compilers (UNIX and MS-DOS protected mode)

This info taken from the file "WTL_3167_Floating-Point_Coprocessor_Sep88.pdf" which will show up in google.

Old documents say there were 40 commercial software packages supporting Weitek.. but usually don't name many. One I found was VersaCAD-386.

Another thing that should be floating around somewhere is a 387 emulator that uses the Weitek (since you typically don't have the sockets for both). I've seen reference to such a thing but not sure it existed. Oh,another funky thing mentioned in the document above was an interposer/daughter board that let you plug in both the 387 and weitek.

So.. basically, not much for you to run and play with. Too bad.. the potential of this thing was definitely not exploited