From Open Watcom
Note: The page you are reading is for the users of the Open Watcom toolchain. There is a separate section for Open Watcom contributors; some of the documents there may be of general interest.
Frequently Asked Questions
FAQ's for Open Watcom
FAQ's for supported languages
For experts, needing a break
- Infrequently asked questions in comp.lang.c - Not to be taken seriously ;-)
Links to off-site free online books, tutorials and references
- For the C language
- The C Book (HTML) or The C Book (PDF) is a nice introduction to the C language.
- For the C++ language
- For the Fortran language
- For Intel x86 assembly, or for several CPU's.
- Programming Language Examples Alike Cookbook - C++ solutions to examples in the Perl Cookbook. (Project still needs volunteers to help complete all examples.)
Documentation and Manuals
Documentation of general interest to developers using Open Watcom
- A20 Line - The low-down on the infamous A20 address line
- Advanced Debugging Techniques using the Open Watcom Debugger
- C coding tips - Useful tips for coding in C
- Calling Conventions - Demystifying calling conventions
- DLL Debugging How to breakpoint on DLL load
- Exploring Windows 3.x - A technical introduction to the most hated "operating system" in the history of computing
- Geometry problems - PC disk geometries, size limits, and why it's such a mess
- History of Open Watcom
- Math error handling on x87 - Some of the more obscure aspects of x87 FPU error handling
- Math Coprocessor Interface Evolution - How the x86/x87 interface evolved over the years
- MSDN Library - Microsoft API Reference
- Open Watcom Reference Manuals - Documentation for the compilers and tools in Portable Document Format (PDF)
- Open Watcom STL Notes, Usage, Issues
- PCI Interrupt Routing - Why PCI interrupts are so complicated on PC compatibles
- Performance Profiling using Open Watcom
- Performance tuning - notes on compiler performance
- Printable Reference Card - for ANSI C (PDF format)
- sandpile.org - source for pure technical x86 processor information
- Sybase Technical Articles - Mainly related to Watcom C/C++
- Target platforms documentation - Collection of external sources
- STL reference - Not the standard version of STL used with Open Watcom, but lists the data structures and algorithms available with STL and has some useful examples of how to work with STL. Also has some documentation on iostreams.
- Undocumented features in current release
- Using wmake - differences between wmake and other make tools
Tutorials - Link to the index page of all articles marked as a Tutorial, most of which are not on the page below.
Tutorials - Link to an annotated and organized page of some Tutorials, not all of which are on the page above.
- /msdos/programming/watcom Directory - Watcom/DOS oriented ASM & C sources, mostly for screen & keyboard handling.
- /msdos/programming/source Directory - Some Watcom, lots of graphics samples for DOS, mostly in C with some C++ & assembler.
- BGET - Memory allocator. Public Domain
- bzip2 - ANSI C, compression, commandline & library. BSD license.
- Catalog - of small ANSI C programs, showing how to use many features of the language.
- Curses - Public Domain Curses, Portable text mode screen/keyboard/mouse library. Works with DOS, Win32 console mode or via SDL library. PDCURSES howto
- Curses for Windows - A fork of PDCurses specifically for Windows (not console mode).
- Dialog - Draws user friendly dialog boxes using curses. Used by many Linux and BSD systems to create custom menus for scripts or batch files. Ubuntu has the latest version (with patches). Builds on Windows with a few minor changes. FreeBSD has a different version (Freedialog) with BSD style license instead of GNU GPL license. Dialog howto
- Expat - XML parser library written in C. Open Watcom 1.5 changes and makefiles committed to cvs 6 Aug 2006 (OS/2, Linux, and NT/2000/XP)
- FastLZ - Very fast compression library in ansi C, MIT licence, Watcom C compatible, note: SVN dev versions only
- FFT - Ooura's Mathematical Software Packages, Kyoto Uni. high performance math code with MIT compatible licence. Also Fortran version, OW compat not known.
- FreeGlut with OpenWatcom - Steps to configure OpenGL Freeglut library with OpenWatcom compiler
- GLFW Open Source (liberal zlib licence), portable framework for OpenGL application development. Includes Makefiles for OW.
- GTK+ Open Source (GNU LGPL 2.1 licence), cross platform GUI toolkit. See wiki page for OpenWatcom compile instructions. (Please note that GTK+ is moving from version 2 to version 3. In attempting to report issues with building version 3 on Windows, I've found their support extremely negative and anything but helpful. I highly recommend using another GUI toolkit besides this one.)
- IUP - Cross platform GUI library in C, MIT licence, current Open Watcom static libraries for download, small footprint. IUP at TecGraf
- libunicows - Alternative library for using Unicode on WIN32 (95/98/ME). (See also Opencow)
- Lua and Open Watcom Using lua as an embedded scripting language, including how to dynamic link or static link mixed mode libraries, easy when you know how.
- malloc.c - malloc/free/realloc replacements written by Doug Lea. Public Domain
- Mersenne Twister - Directly generates double precision random numbers, by Mutsuo Saito, Makoto Matsumoto and Hiroshima University (mit/bsd style licence)
- nedmalloc - Fast alloc for WIN32 & unix systems. (boost license)
- POSHLIB - POSH is a simple, portable, easy-to-use, easy-to-integrate, flexible, open source "harness" designed to make writing cross-platform libraries and applications significantly less tedious to create and port. Supports Watcom. (not tested)
- POSIX Threads for Win32 (LGPL)
- Regina Rexx Interpreter - Rexx programming / scripting language, OSI version under GPL, dynamically loaded user extensions can be written in C or C++ Regina on sourceforge
- SDL - The Simple DirectMedia Layer library (version>=1.2.10) can be built with OpenWatcom for Windows and OS/2. GNU Lesser General Public License (LGPL) version 2.1
- SFL - Standard Function Library, documentation.
- shwild - Shell-compatible wildcard pattern matching library. (C++ wrapper avail.)
- The SNIPPETS C Source Code Archives - Small, useful cross-platform code snippets in C. There are also some for C++. The original site is down, but still accessible from archive.org
- C Snippets Hosts some of the C Snippets code plus other C snippets.
- The Better String Library - Abstraction of a string data type, including C++ wrapper. BSD License.
- TxWin - Text mode library with windows, menus, dialogs, buttons, entryfields and more. DOS32, NT, OS/2, Linux console & most XTERM env. LGPL license.
- SwsSock - Cross platform networking library (DOS 16/32, Win32 , Linux). Free for personal use.
- Watt-32 TCP/P - library for DOS, used by Open Watcom WD debugger for remote debug.
- mTCP - A nice little TCP/IP stack for IBM PCs, XTs PCjrs, and newer machines
- Wizard's Apprentice - Script invoked GUI in C for tasks such as installing. zlib licence
- gsar - Generic Search and Replace. Builds using owcc.
- zlib - A Massively Spiffy Yet Delicately Unobtrusive Compression Library.
- nano-x, fltk 1.3 for dos This is a DOS port of nano-x, fltk 1.3 and other useful programs. It's built with djgpp, but may port to OpenWatcom's DOS compiler as well.
- Perl patch Patch to build Perl for Windows using the Microperl build method (make -f Makefile.micro).
- Custom strsafe - Custom strsafe library is for non-Microsoft C and C++ compilers. It is partially compatible with strsafe.lib from Microsoft Platform SDK.
- FLTK, Fast Light ToolKit - Cross platform GUI toolkit, V1.1.9 and 1.3 confirmed builds static linked out of the box with 1.7a and Cmake (can do out of source build), from command line wmake. Watcom IDE does not like source .cxx sourcenames. Test progs built automatically. FLTK howto
- FOX GUI Library - Very portable GUI toolkit, was built with Open Watcom 1.0 (mentioned in installation instructions). Does not compile out of the box with Open Watcom 1.7 and FOX version 1.7.15, but that may be fixable for someone with C++ knowledge. FOX howto
- Windows++ Source code from a book on how to create your own Windows GUI framework library.
- SFML - Simple and Fast Multimedia Library
- The SNIPPETS C++ Source Code Archives The original site is down, but still accessible from archive.org
- wxWidgets - Portable Graphical User Interface library.
- SFL - (Standard Function Library) is a portable function library for C/C++ programs. Provides a wide variety of functionality from string manipulation and searching to directory access to compression to socket and Internet programming and more.
- Canabis - Open Source Canasta card-game for OS/2 Warp (including eComStation) and Windows 9x/NT. It's completely written in Open Watcom FORTRAN 77 using for instance FORTRAN/TK and EXPAT/77.
- FORTRAN/TK - an easy to learn, powerful cross-platform (OS/2 Warp and Windows 9x/NT) widget toolkit for the Open Watcom FORTRAN 77 compiler. It's a real FORTRAN implementation of the Tk-toolkit from Tcl/Tk (technically based on Rexx/Tk) including its own small API for additional functionality.
- ResEdit - Freeware resource editor for Windows 32-bit. Also extracts resources from .exe & .dll files.
- Code::Blocks - Free IDE built with wxWidgets (see C++ source section). Supports Open Watcom as one of several compilers. Howto configure Code::Blocks.
- SciTe - A highly configurable programming editor for Windows, Linux and BSD. Functionality can be extended using LUA scripts. Here's a page with some configuration tips that might help get you started: SciTE Tips
- VIM - VI is a programming editor that has been around for ages. VIM is VI improved. Works on most platforms. With new features such as tabs, it's highly configurable. Gvim is the GUI version of VIM. There's also an older version CREAM at Sourceforge with a more Windows friendly user interface for Gvim.
- HX DOS Extender - WIN32 API emulation, open source, Open Watcom WD(W) source level debugging supported. Will allow some console based Win32 applications to run in DOS.
- KernelEx - This is an Open Source project that creates a compatibility layer for Windows 98 and Windows ME machines that allows them to run programs specifically aimed only at later versions of Windows such as Windows 2000 or Windows XP.
- Zeus for Windows Editor/IDE - A commercial/payware compiler neutral IDE with features like syntax highlighting, code folding, version control, project/workspace management, class browsing, macro scripting etc. Can be easily configured to run the Open Watcom toolset.
- Cmake - A cross-platform Open Source build system. Can output makefiles compatible with wmake, gnu make and other formats.
- premake - Generates cross-pltaform project and makefiles.
- sln2mak - Can convert some Visual C++ project files to GNU makefiles.
- scons - Software construction tool using Python.
- bsdbuild Portable build system derived from BSD share/mk files. Works with Bourne shell (or shell supplied with msys) and make. Can interface with other build systems as well.
- spkg A package manager based on Slackware pkgtools. It's written in C so it's faster than the pkgtools scripts. It works on Windows, Linux or FreeBSD (and possibly other platforms) providing a cross-platform solution to package management. Lets you keep track of, install and uninstall libraries and programs on your system. Also keeps track of versions of libraries installed and what files are installed so they can be easily uninstalled or updated with spkg. Works with standard tarball files (created with tar and gzip) as long as names use proper Slackware package naming conventions.
- Wix A set of open source tools that compiles XML into Windows Installer based installers (.MSI), patch files (.MSP), transform files (.MST), and merge modules (.MSM).
- diffh An easy to read, cross-platform file difference tool. Works in conjunction with diff (available from gnuwin32 project or with msys at Sourceforge). Outputs differences between two files side by side in HTML. Handles files with long lines very well.
- Searchmonkey - Search tool with regular expression support similar to grep but providing a GUI interface. Works on Windows, Linux and BSD. To build the most stable GTK version, use 0.8.1 source code available from the Downloads section under Compile from source. Newer QT version now available.
- 7zip and 7za - Can compress/decompress and unarchive most formats including xz (which gives good compression for tarballs). 7zip is the GUI interface while 7za provides a command line tool.
- Console 2 Windows Command prompt replacement. May be used with cmd.exe, bash or other shells.
Unix Style Utilities
- Unix Utilities - Windows ports of common Unix utilities.
- Gnuwin32 project - Contains many GNU programs for Windows such as findutils, make, diff, patch, wget, gsar, etc. Also has many standard GNU libraries. Source includes patches when needed to make it more compatible with Windows.
- Busybox-w32 - Port of Busybox (common Unix style utilities) for Windows.
- grep - Grep with subdirectory search for Windows.
- less - Cross-platform file filter. Less is more than more.
- bsdtar - Version of tar for Windows that handles compression and decompression of many formats including xz. Tries to keep BSD compatible licensing and makes use of port of BSD's libarchive.
- X server - Port of X Windows server for Windows.
- bash Bash shell for Windows.
- KpyM Telnet/SSH Server ( KTS ) - Open Source ssh and telnet server for Windows. Source is available when you install.
- djgpp - Has ports of several Unix utilities to DOS including cp, mv, rm, sed, awk, bash.
- NAG - Numerical Algorithms Group, libs for C/C++/Fortran.
- PCRE (Perl Compatiable Regular Expressions)
- Programmers Fonts - In a GUI dominated world, a good monospaced font is necessary for a pleasant time in your favorite editor or in the WDW debugger.
- Marty Stanquist's OW page - Reflections on Open Watcom development from multiple perspectives.
- Paul Hsieh's WATCOM C/C++ Page - Several source snippets made for the Watcom compilers.
- Laura Michaels' msys FAQ - Tips on setting up msys for use with Open Watcom and the owcc interface.
- Japanese Localization - The project that improves Open Watcom for Japanese speakers.