OS/2 2.1 and 2.11

The Solid Platform—with version 2.11, 32-bit OS/2 reached maturity

In May 1993, IBM released OS/2 version 2.1. It was an incremental improvement over 2.0 and especially at first glance OS/2 2.1 didn’t look noticeably different from its predecessor. OS/2 2.1 in fact had the same boring look of OS/2 2.0 with the same strange color scheme (no doubt determined by extensive scientific research) and the same old boring icons:

It’s difficult to tell from the screenshot whether it is showing OS/2 2.0 or 2.1. It’s also impossible to tell from the above screenshot that it’s actually OS/2 2.1 Special Edition, better known as OS/2 for Windows, released in October 1993.


The CD version of OS/2 for Windows included a total of four boot floppies—two 3½” and two 5¼” HD diskettes. What it unfortunately didn’t include was drivers for modern hardware, hardly a surprise given its vintage. The first attempt to install this version of OS/2 on a test system (a 600 MHz Pentium III with a 4GB IDE fixed disk) failed miserably. The floppies wouldn’t even boot and complained about missing A:\COUNTRY.SYS. That seemed curious because the file was decidedly present and it couldn’t have anything to do with the anticipated hard disk troubles. Disabling internal and external caches on the test system got the installation past this hurdle.

The second one followed very shortly. It is possible to create floppies from the installation CD, but the prospect of formatting and copying 20 floppies was very unappealing; in retrospect, it would have saved a lot of time. The test system had two CD-ROM drives: a newer IDE DVD-ROM and an older SCSI CD-ROM attached to an Adaptec 2940 PCI SCSI host adapter. Sadly, OS/2 2.1 had drivers for neither—both IDE CD-ROMs and Adaptec 2940s appeared on the market just a short while after OS/2 2.1. The Adaptec driver from OS/2 Warp wouldn’t even load under 2.1, apparently due to missing PCI support. OS/2 couldn’t be directly installed on this system from CD.

Fortunately, it is possible to copy the contents of the installation CD-ROM onto a hard disk and install from there (the OS2SE20.SRC file in the disk’s root directory tells the installer where to look).

The first phase of the installation process proceeded without problems. But then the partially installed OS/2 wouldn’t reboot and locked up right after the Boot Manager. This was fixed by re-enabling the L1 and L2 caches—go figure!

Then there was one last problem—disk drivers again. OS/2 still wouldn’t properly recognize the entire disk. That was solved in a very simple way, so simple that it may not have been expected to work. Simply downloading updated IDE drivers (dated June 2001) from IBM’s DDPak site [Ed. note: The site is no longer operational] and copying them on top of the OS/2 2.1 installation did the trick. In fact it turned out the drivers could have been copied to the boot floppies and the IDE CD driver added, which would have allowed installation directly from the CD. With an updated floppy driver, it was also no longer necessary to disable the CPU cache.

The Big Thing

After setting up the base OS, the next step was installing the new big thing in OS/2 2.1: Multimedia Presentation Manager/2. In OS/2 version 2.1, MMPM/2 was shipped with the OS but it was a separate component and had its own installer program. It only included drivers for Sound Blaster and Pro Audio Spectrum cards but fortunately the SB Pro 16 driver worked very well with the test system’s SB AWE64. After MMPM/2 was installed the desktop looked like this:

Yes, there were shiny new multimedia icons. And of course, there was sound! OS/2 starting up, windows opening and closing, error windows popping up, every action had an associated sound. Remember, this was 1993 software! There was even software motion video included, unfortunately it was nearly unusable with the default 16-color VGA drivers and high-resolution drivers weren’t available for the test machine’s Matrox G400. At 16 colors, Ultimotion videos looked horrible and Indeo clips didn’t play at all. The OS/2 2.1 CD included the same sample videos included later on OS/2 Warp CDs.

There were several other less visible enhancements in OS/2 2.1. It utilized the new 32-bit Graphics Engine that didn’t make it into OS/2 2.0. It included APM support, designed primarily for laptop computers. And last but not least, version 2.1 offered wider selection of printer and display drivers.

Operate at a Higher Level

The above was IBM’s advertising slogan for OS/2 2.1. The lower level was, of course, DOS and Windows. Just like version 2.0, OS/2 2.1 supported most DOS and Windows 3.x applications. But while OS/2 2.0 came with Windows 3.0, version 2.1 shipped with Windows 3.1—unless it was OS/2 for Windows. With OS/2 2.0, things had been simple. There were versions on 3½”, 5¼” or CD-ROM media and there were upgrade editions, but they were all essentially identical. With OS/2 for Windows, things started getting interesting. OS/2 for Windows did not come with Win-OS/2 and instead would use an existing Windows 3.1 installation—although that wasn’t strictly required and therefore, ironically, it was possible to use OS/2 for Windows entirely without Windows.

The codename of OS/2 2.1 had been Borg. This certainly fit OS/2 for Windows well, given the situation on the market. Microsoft had OEMs under tight control and effectively prevented them from preloading anything other than MS-DOS/Windows. This was later found illegal but that did not help OS/2 in any way. With OS/2 for Windows, IBM found a way for OEMs to preload OS/2 while still honoring their agreements with Microsoft. In 1993-94, several major German retailers offered systems preloaded with OS/2.


In the OS/2 2.1 years, the number of applications available for OS/2 grew rapidly. IBM managed to convince several big-name companies to develop OS/2 versions of their products—companies like Borland, Novell, Lotus or WordPerfect. IBM subsidized the development of at least some of those OS/2 products, but the specific dollar figures are not known. Microsoft was no less active than IBM—only instead of paying those companies, it was threatening to deny them access to beta versions and information about Windows if they developed for any other platforms.

Information about Borland C++ can be found on the OS/2 2.0 history page and Novell networks was not considered sufficiently interesting. That left WordPerfect and Lotus. In 1993, WordPerfect Corp. released WordPerfect 5.2 for OS/2. Like many other ported applications, it used Micrografx Mirrors. It looked like this:

Unlike the immensely popular WordPerfect 5.1 for DOS, version 5.2 for OS/2 (and for Windows as well) was a WYSIWYG word processor. And it was a powerful word processor. It looked very much like every other word processor, but it had the wonderful “Reveal Codes” feature:

Compared to the quick and dirty job Corel did with their CorelDraw 2.5 port, WordPerfect 5.2 for OS/2 was completely different and yet very much the same. It offered comprehensive WPS integration and was in fact a model WPS enabled application:

It had document templates, supported extensive drag and drop operations on WordPerfect documents (printing etc.) and similar goodies. Unfortunately, most WP 5.2 users complained that it was also very slow (not noticeable on the relatively modern test system) and buggy. An interesting fact is that WP 5.2 was a 16-bit application and had in fact been built with Microsoft C 6.0. Manyt OS/2 WordPerfect users preferred the DOS versions 5.1 or 6.x to this (sort of) native product. WordPerfect Corp. was working on an OS/2 version of WordPerfect 6 for OS/2 but canned the product in December 1993, probably because WP 5.2 for OS/2 was not received very well. Whether the fault was with WordPerfect or OS/2 users is debatable.

WordPerfect had a competitor from Lotus Development Corporation: AmiPro 3.0 for OS/2, released in 1993. AmiPro was never quite as powerful as WordPerfect but it serviceable for typical office use. AmiPro was also able to work together with other Lotus products such as 1-2-3 or Notes.

Just like WordPerfect 5.2, AmiPro 3.0 was port of a Windows product. But unlike WP 5.2, AmiPro did not use Mirrors and it was a purely 32-bit program (built with Borland C++ 1.0 for OS/2).

AmiPro 3.0 for OS/2 was missing some features of its Windows counterpart (drawing and charting) but on the other hand it had several OS/2 specific features such as REXX integration. There were several updates to AmiPro 3.0 (the latest was 3.0b) and it was later followed by Lotus WordPro. It was not possible to judge how good AmiPro 3.0 for OS/2 actually was based on a short test drive, but at least some users criticized its lack of stability.

The word processor preferred by many OS/2 users was DeScribe, developed by DeScribe, Inc. It was a native application written for OS/2 from the beginning (the first versions of DeScribe ran on OS/2 1.x). The program executable had been built with IBM CSet++ compiler. DeScribe was fast and powerful—it even offered some DTP-like features such as text frames and it included a drawing package:

The above screenshot is from DeScribe version 5, released in late 1994. It would be more appropriate to present a picture of DeScribe 4 or 3, but version 5 is all that was available for testing. While many users of AmiPro 3.0 and WordPerfect 5.2 stopped using those products because of bugs and instability, DeScribe users claimed that their word processor wouldn’t buckle even under heavy load.

Application Development

The OS/2 2.0 history page examines various compilers available for OS/2 2.0. In the 2.1 days there were new versions of all of those products (IBM CSet++ 2.1, Borland C++ 1.5 and 2.0, Watcom C/C++ 9.5 and 10) but with the exception of Watcom C/C++ version 10, these were not substantially different from the older versions. Instead of Watcom C/C++ version 10, a different and very OS/2 specific product of Watcom International Corp., (based in Waterloo, Ontario, Canada) was installed on the test system: VX-REXX 1.0. Version 1.0 was released in 1993, followed by versions 2.0 and 2.1 in 1994. The most advanced version was VX-REXX 2.1 Client/Server edition which supported charting and database objects that could interface with Watcom SQL (naturally) and IBM DB2/2.

VX-REXX conceptually resembled products like Delphi or Visual Basic. The user created windows and placed GUI controls (objects) on them. Each object had an extensive set of properties, neatly presented in a notebook control. Objects could receive events and each event could be associated with REXX code. Simple yet powerful.

Watcom VX-REXX was a popular tool thanks to its ease of use, power, and flexibility. Creating simple GUI applets was very easy with VX-REXX and several nice sample programs were included.

It’s worth mentioning that Watcom VX-REXX 1.0 was shipped on a single 3½” HD floppy and included extensive online documentation (identical to the printed manual). Products like that just don’t seem to happen anymore. VX-REXX’s closest competitor was VisPro REXX.

OS/2 2.11 SMP

An important milestone in OS/2 history was OS/2 2.11 SMP. It was released in July 1994 and it was the first version that supported symmetric multiprocessing (SMP for short). It was one of the first mass market SMP enabled PC operating systems, released a year after Windows NT 3.1. It was unfortunate that until Warp Server for e-Business (1999), the SMP versions of OS/2 were always one release behind the uniprocessor version. This, together with relative scarcity and high cost of SMP hardware, prevented more widespread use of SMP on desktop systems. It’s worth mentioning that IBM was building asymmetric MP machines in the early 90s (OS/2 1.3 ran on those). OS/2 2.11 SMP at first glance looked no different from the single-processor OS/2 2.11:

It’s immediately clear that it wasn’t OS/2 2.1—the color scheme made a big difference. On closer examination, it is clear that the desktop layout and all the icons were unchanged, but the color scheme was about the same used later in OS/2 Warp. It looked much more pleasant than the OS/2 2.0/2.1 color scheme, too. Technically, OS/2 2.11 SMP was a strange beast. Its authors took OS/2 2.11 (which had not really been designed with SMP in mind), and performed surgery on several key components (the kernel, loader and DOSCALL1.DLL) and ended up with a surprisingly scalable SMP operating system. Not only could different processes run on different CPUs but threads within a single process could as well. Thus even applications not specifically designed for SMP could take advantage of it, as long as they were multithreaded.

The SMP test system was an IBM IntelliStation M Pro equipped with two 300 MHz Pentium II CPUs. On this system, OS/2 2.11 SMP would just lock up early in the boot process. That wasn’t too surprising because OS/2 2.11 SMP had a reputation for being very picky about the hardware it would run on and the test system had been built at a time when 2.11 SMP was not supported anymore. Luckily, the OS2APIC.PSD module (the SMP Platform Specific Driver) borrowed from Warp Server for e-Business worked.

Above is a screenshot of the multiprocessor CPU monitor utility which shows processor utilization and also allows individual CPUs to be turned on or off. It is one of the very few visible differences between the SMP and regular version of OS/2 2.11.

WPS Enhancers

Thanks to the flexibility and extensibility of the Workplace Shell, numerous “enhancers” were developed. The most complete and most popular of them was Object Desktop from Stardock Systems. It was released at the end of 1995 which was technically not the OS/2 2.1/2.11 era anymore, but at that time OS/2 2.11 was still widely used and was supported by Object Desktop.

Object Desktop doesn’t really look its best in VGA resolution, which prompted a search for some kind of SVGA solution for the OS/2 2.11 test system. The drivers for the Matrox G400 should have worked with OS/2 2.11 in theory, but didn’t in practice. After some searching, an old S3 928 graphics card turned out to work with the drivers which shipped with OS/2. Unlike Windows NT 3.1 which supported VGA fallback, with OS/2 2.11 it was all too easy to end up with an unusable system after installing unsuitable or broken display drivers. That was remedied later with OS/2 Warp.

Behold the wonders of Object Desktop 1.0—Enhanced Folders, Tab LaunchPad (there was no LaunchPad in OS/2 2.1 yet) and the Control Center with perhaps the single most valuable feature of Object Desktop: virtual desktops. Also, a close button was added to every window. But Object Desktop didn’t stop there:

This is the Object Navigator and Enhanced Data Object with a nice little text viewer. Looking at the Control Center again, there are widgets monitoring CPU utilization, RAM, swap space and disk space (there’s also a time monitor, also known as a clock), plus shadows of the Desktop and important folders. Installing Object Desktop was almost like upgrading to a new version of the OS.

Compared to OS/2 2.0, version 2.1 and 2.11 wasn’t all that interesting. There was a number of enhancements but most of them weren’t very visible (which didn’t necessarily make them any less important). Nevertheless, OS/2 2.1 had substantially wider selection of available applications and attracted a number of new users frustrated by the inherent instability of Windows 3.1 and looking for something better than DOS.


Thanks to Lewis G. Rosenthal for providing the OS/2 2.11 SMP CD.

Thanks to Kris Kwilas for a copy of Object Desktop 1.0.

21 Responses to OS/2 2.1 and 2.11

  1. Andreas Kohl says:

    Back in 1993/94 Ami Pro was quite common. Nice screenshot: “The Best Word Processor for OS/2” – no understatement! In Germany there was StarWriter for OS/2 from a company called StarDivision in Lüneburg/Hamburg – later known as StarOffice.

  2. michaln says:

    I saw StarWriter for Windows back in 1994 or so, but unfortunately the oldest OS/2 version of StarOffice that I have is 5.0, much newer than that.

  3. Andreas Kohl says:

    First Windows-Version of StarWriter was released in September 1993. At the Cebit 1994 Expo (March) they presented StarWriter 1.01 for OS/2 and in September Version 2.0. There was also an entry edition called Starwriter COMPACT. But I’m thinking this releases were in German language only. My StarOffice 3.0 (Oct.1995) was only German. But the CD of OS/2-version 3.1 (Nov.1996) has also directories for other european languages: French, English, Italian, Swedish…
    I don’t know about an American release before the company was bought by Sun in 1999.

  4. Brian Rose says:

    I am trying to install OS2 2.1 Upgrade into a VMWare virtual machine. I have DOS (with CD drivers) currently installed.

    Can you detail your procedure where you copy the OS2 CD to the hard drive and install it? I cannot get the boot floppy to point to the C:\OS2INST directory, it wants to talk to the CD drive, but it does not have drivers for that.

    Can I change something on the floppy images to point it to the C drive?

  5. michaln says:

    The OS2SE20.SRC file must exist in the root directory of a disk (CD-ROM or hard disk) and point to the directory containing the files (on the same driver). I don’t think there’s anything to modify on the boot floppies.

    If there are images of all the installation boot floppies on the CD, you may also use that instead.

    The upgrade version of OS/2 may refuse to install on a clean disk.

  6. Chris J. Breisch says:

    Yes, AmiPro definitely suffered from stability issues. It was a wonderful word processor, when it worked. But for me, it was the final nail in the coffin for OS/2. I had been running OS/2 at work since 1.1. We were developing some products for it.

    And I started running it at home, because I like to do that. But AmiPro’s instability made me realize the dearth of good applications for OS/2, and forced me, albeit extremely reluctantly, back into the Windows camp. I know I used Warp at home, and I ran some early versions of Linux at home, so I think I lasted until Windows 95 before the switch, but it was necessary when it came.

    And I hated Windows 95. It felt so much more primitive than OS/2. But it worked. And I could run my apps on it. And I had lots of choices for apps. And they worked.

    You wrote quite a bit about Win-OS2 and how compatible it was. You neglected to mention that Win-OS2 consumed quite a bit of the lower 640K that DOS wants to use. This was a time when people were scrambling for memory managers to get every last byte available to them in the lower 640K. That was a problem for Win-OS2 and limited its usefulness significantly.

  7. michaln says:

    Isn’t it funny how there doesn’t seem to be any connection between the quality of an OS and its industry and application support…

    I must admit that I don’t quite understand the connection between Win-OS/2 and low DOS memory. How did Win-OS/2 take up conventional memory in OS/2 DOS boxes? That’s not something I ever experienced, but maybe it was specific to some software and/or hardware?

  8. Renee F. Senger says:

    High resolution video with 2.1x is really very difficult. Scitech SNAP solution isn’t available for 2.1x, so only with drivers from hardware vendors. Even when we get an old display card with 2.1x drivers there are no guarantees.
    My experience with an Matrox G200 showed me that. The drivers from Matrox works very well if you have OS/2 2.1 english-us version with fixpaks xr06200, xr06200a, xr_b098 e xr_b108 applied. If you want to use other national version, like portuguese-brazil in my case, only some of the fixes are available and drivers not work. This was typical from IBM with the product OS/2 and national versions (other than en-US).

  9. Michal Necasek says:

    The reason why SciTech SNAP Graphics was never made available for OS/2 2.x was of course that SNAP required the GRADD display driver model which had been backported to OS/2 Warp, but OS/2 2.x (including 2.11) was already obsolete at that point (late 1990s). While it would have been technically possible to develop an old-style Presentation Manager display driver based on SNAP, it made no business sense in 2000 and beyond (IBM certainly wasn’t interested). One look at the sample drivers on the DDK should suffice to explain why 🙂

  10. Nathan Anderson says:

    DeScribe was a fantastic word processor. To this day, after having used it extensively for many years, I still don’t know why any OS/2 users ever bothered with anything else. I remember that at one point, Lotus came out with a WordPro for OS/2 release that included a copy of Freelance Graphics in it for free…it might have been a special release for the academic market, as I recall. Anyway, rather than buying the whole SmartSuite, you could essentially get 2 programs for the price of 1, and I needed a PowerPoint-like app, so I bought it. WordPro came along for the ride, and I gave it a shot, but ended up ditching it while keeping Freelance Graphics around and continued to happily use DeScribe instead for my word processing.

    In fact, I continued to use DeScribe for many years after I finally ditched OS/2. It got me through college, and I wrote many a paper using the Win32 port of DeScribe, which was almost as fantastic as the OS/2 one (the 32-bit Windows version had one very annoying bug where, when I would engage the word count feature on medium-to-large documents, the application would lock up, so I quickly learned not to rely on that feature; neither the OS/2 nor 16-bit Windows versions had this problem).

    Perhaps people didn’t initially use DeScribe because of what I remember to be a draconian and overbearing licensing arrangement; if I recall, it was pretty expensive to begin with, and the purchased license included a “time-bomb” in it, so that you were forced to renew your license annually (for a fee, of course). I can understand how that would have been distasteful to people. Perhaps DeScribe thought that their product was SO good that people would be willing to overlook this. Towards the end of the product’s (and company’s) life, they learned their lesson and radically slashed the price of the application and killed the annual/time-based licensing model, but it was probably too little, too late.

  11. Nathan Anderson says:

    I don’t wish to be guilty of disseminating inaccurate information, so I am posting a correction. I was able to find an old Usenet post that laid out in detail the terms of the onerous DeScribe licensing that turned some people off. I must say that it does feel draconian, even by today’s standards (activation keys and servers, etc.), but in fairness to DeScribe, the goal wasn’t to extract further monies on a recurring basis from their customers, but rather to combat software piracy. It turns out that it worked like this:

    – The initial copy that shipped in the box would have a built-in timebomb set to go off in 6 months.

    – You had to sign and return a license agreement if you wanted to be able to use it past the first 6 months.

    – If you signed the license agreement, DeScribe would automatically ship you new disks every 6 months that would extend the timebomb for another half-year.

    – The disks would NOT cost you anything extra, but to get them, you had to sign and return a (signed) copy of the license agreement to DeScribe.

    – Each 6-month timebomb update would also include the latest bugfixes to the version you purchased.

    – You would only ever get minor software updates for the version you purchased, not upgrades to new major versions of the software.

    – Once DeScribe came out with a new major version of the product, you had the option to pay for an upgrade to the new version (and begin the whole 6-month-update process for that version all over again), or continuing to use the (now) old version, which they would ship you a timebomb-less copy of as a parting gift. (Apparently they didn’t want the overhead of having to ship out timebomb extensions for older versions as well as the current version, and being an older version, they probably figured it would be less ripe as a target for piracy, so no need to bother securing that version any longer.)

    Here is where the post that describes this can be found:

    — Nathan

  12. Renee F. Senger says:

    Only for a correction purpose, the cited older SCSI CD-ROM attached to an Adaptec 2940 PCI SCSI host adapter, since this adapter is any of the 2940 family with exception for the Ultra2 Adapter, installation is possible with the modifications in diskette 1 as explained in “First-Time Installation of OS/2 2.1X From CD-ROM” from Readme.html file availble in http://www.adaptec.com/en-us/speed/scsi/family_manager_set/7800v3022_exe package, Disk 2.

    R. F. Senger

  13. Freddy says:

    I started with OS/2 2.0 installed from 3.5″ floppies to a 386SX16 with 8 MB RAM and a Segate 1144A IDE Harddisk. The VGA support was a nightmare – the driver did not even allow DOS in fullscreen, it simply crashed. Of course there was a fix for it – and a fix for this and that, too. In the end I had a highly patched but stable system – until i installed the “black icon fix” which completely trashed my system. I re-installed with 2.1 beta – and that was rock-solid stable. As far as I remember it was called “the December beta” und distributed as disk-images via ftp over watson.ibm.com. I still have the floppies and because I have the same trouble again reinstalling the old maschine I am tempted to use 2.1 instead of 2.0 – which would be cooler if I could get it running properly.

  14. Michal Necasek says:

    I started with a 386SX as well (25 MHz), but only 4 MB RAM. I first installed OS/2 2.1 on it and later Warp. Apart from being slow, I remember it being quite stable. I don’t think I had a driver for my graphics card (some sort of OAK SVGA) at all, which may have helped 🙂 What kind of graphics card did you have?

  15. Hi,
    MMPM has 2 disks in the install set…
    but I can’t find mminstall.exe anywhere. help?

  16. Michal Necasek says:

    There should be MINSTALL.EXE (not MMINSTALL.EXE) on the first MMPM/2 disk (a two-disk set). It is there at least on my MMPM/2 version 1.1 disks from 1993.

  17. Thanks,
    I must have an old damaged disk. It only has 3 files on it and no exe files.

  18. Renee Senger says:

    Can be used the two-disk set from XR06200 fixpak ( ftp://ftp.software.ibm.com/ps/products/os2/fixes/v2.1x/english-us/xr06200/ ). Disk 20 an Disk 21 has MMPM/2 version 1.1 and replaces the original set.

  19. Edward Letendre says:

    What is the perfect hardware to run os/2 2.1 as I have my original copy vutmI am not sure what computer (processor, hard drive, video card, etc.) to install the operating system on. I did initially install os/2 2.1 on a 386″computer with a 100 mb hard drive and I have access to an ati Mach 64 video card with os/2 drivers but what is the ideal computer for the time?

  20. Michal Necasek says:

    You’re looking at circa 1993-1994, so a high-end system of that era would be something between a 66 MHz 486 DX2 and a 90 MHz Pentium, either VLB or PCI. Or MCA if you want a true blue solution. Around 16-24 MB RAM and a few hundred MB disk would make the OS happy. That depends really on the applications, the OS itself should need around 30 MB disk space and less than 8 MB RAM.

  21. Andreas Kohl says:

    If you want to install the system from local media (CD-ROM) you should better use a SCSI-based system. Otherwise IDE support needs to be integrated into Diskette 1. Any single processor Pentium system with 32MB or 64MB of RAM will run fine. Simply use OS/2 2.11 for installation, it’s basically an OS/2 2.1 + integrated Service Pak and additional driver support (PCMCIA, APM). Latest fixpaks for OS/2 2.1x are still available from IBM FTP server. Multimedia support (MMPM/2) is included with OS/2 since version 2.1, also drivers for Soundblaster or ProAudio Spectrum soundcards. For networking support you need an addional software product which includes LAPS (LAN Adapter and Protocol Support): IBM OS/2 ES, LAN Enabler, LAN Server, DCE OS/2, TCP/IP or CM/2.

Leave a Reply

Your email address will not be published. Required fields are marked *