[The Graham Utilities: the largest, most comprehensive suite of utilities for OS/2. (click here).] [BMT Micro - Registration site for the best OS/2 shareware applications available. (click here).]

Mesa 2 2.1.6- by Michael Semon

I remember looking through the 1997 OS/2 e-Zine! Readers' Choice Awards. Despite all the awards that Lotus SmartSuite won, Mesa 2 still won the Spreadsheet category. I had to ask myself, "Why?" After all, SmartSuite seems to have integration, loads of features, and IBM's cash and power behind it. This review is my attempt to answer this question.

Getting Started

You can get Mesa 2 from Sundial Systems Corporation. Sundial will send you Mesa 2 and the 296-page User's Guide. Mesa 2 is also available from OS/2 software retailers. If you need a demo of the program itself, you can download it from the Internet (from Sundial or on various FTP sites).

No matter how you get Mesa 2, it comes as a demo. If you have a license number, you have full access to Mesa 2's features. Otherwise, it runs in Demo Mode, giving you full access to a workbook with a maximum of 32 rows, 32 columns, and 8 layers. No features are disabled.

If you buy Mesa 2 from Sundial or other software retailers, it will come on two floppy disks. Fully installed, it takes 4.3 MB of disk space. The install process modifies 3 or 4 entries in CONFIG.SYS and adds a key to OS2.INI.

Mesa 2 Basic Concepts

Mesa 2 is a 32-bit spreadsheet for OS/2 2.11 and higher. Version 2.1.6 was released in Autumn 1996. It requires 8 MB of RAM, and I've used it comfortably in 16 MB of RAM with Warp 4 installed. It behaves well at all Warp 4 FixPak levels. This is partly due to conservative programming and partly because it's all native OS/2 code (that is, it's not Open32).

Mesa 2 aspires to the OS/2 ideal of tasks. Workbooks run in separate threads, and print jobs can be set to execute in background threads. It can take a heavy load without losing touch with OS/2. It's the kind of program where I can always use Ctrl-Esc to bring the Window List to the foreground. If I get into a really big processing and virtual memory jam I can use the Window List to close Mesa 2. I can't recall it forcing me to reboot OS/2.

My best description for Mesa 2 is "it's a compatibility spreadsheet that isn't a compatibility spreadsheet." It can import and export 1-2-3 wk1, wk3, wk4, and wks files. It can import and export xls files from Excel 3 and 4. And it can read Quattro Pro wb1 files. It has no Alternative Formula Entry feature that translates foreign formulas into native syntax, instead it has @ functions and non-@ functions, preserving 1-2-3 and Excel syntax in many (if not all) cases. If you're used to using 1-2-3 or Excel, then you don't have to change your formula entry style.

But Mesa 2 itself shows a radically minimal design concept. There are no maps. There are no native ODBC drivers. There are no fancy graphics tools. It doesn't get in your way with 50 modal alert boxes in an effort to "help" the user, but it does provide excellent documentation in classic INF style. It's a user-friendly spreadsheet with REXX extensions, a real-time feed table, a minimal set of graphics tools, and a reasonable set of graph tools. It works well with the OS/2 style of simple, powerful, predictable tools in a GUI.

OS/2 Integration

Mesa 2 has its own interface (.GIF, 12K) that does its best to follow OS/2 conventions. Drag and drop is done with the right mouse button pressed. Selections are made with the left mouse button pressed. You can change colors and fonts for nearly everything on the screen by using the OS/2 color and font palettes. Most of your changes will hold, except for the dialog boxes and menus, which follow the WPS desktop color scheme.

The biggest part of this interface is the Selection Manager (GIF, 14 kB). There are 7 major tabs and 7 minor tabs, and each major tab covers a specific task. However, I've done well with just the Range, Find, and Sort tabs for day-to-day work. The rest of them were learned on an as-needed basis.

Selection Manager works a lot like the OS/2 properties notebooks. The changes are seen as they are made. The difference is that If I don't like the changes I've made in Selection Manager, I have to click on the worksheet and use the worksheet's Undo. There's no need to close the Selection Manager while working because it isn't modal. This makes it a cut above the selection panels in most spreadsheets.

If you don't like to work this way, Mesa 2 has a slew of options on its Range and Graph menus. If you right-click over a cell, the pop-up menu you'll get is a rough duplicate of the Range menu. Depending on where I right-click on the status bar (at the bottom of the window), I'll get a pop-up menu for the status bar itself, recalculation, font settings, or alignment settings.

Mesa 2 follows the OS/2 example of keyboard shortcuts. There is a shortcut for most functions. Also, the shortcuts weren't compromised or hidden in the interest of safety. If Mesa 2 has a keyboard shortcut for a menu command, then the shortcut is listed on the menu. I don't have to search the help system to find the shortcut for Clear Strings. If I did want to do that, both the Mesa 2 book and the online help have charts of shortcuts.

Fun with Numbers

Mesa 2 has roughly 178 @ functions, 184 non-@ functions, and 19 operators. It covers most of the essential functions. There are functions you might know and love, such as 'MOD', 'ROUNDUP', 'VLOOKUP', 'NPER', 'OR', 'REPLACE', 'WEEKDAY', and 'STDDEV', with @ equivalents. However, Mesa 2 doesn't include functions like 'COMBIN', 'EOMONTH', 'ROMAN', 'HEX2DEC', or bit-manipulation functions.

The strongest formula concepts in Mesa 2 are Formula Inheritance and SmartFill. It's like the special fill features in other spreadsheets, but it will keep track of the formulas for you. If you don't need filled cells to adapt to changes, regular fill features are available.

Logical functions are a special strong point for Mesa 2, having 'NOT', 'OR', and 'AND' implemented as functions as well as operators. The operators can be used like '=A1&&B1' or '=A1#AND#B1'. There's also an extra operator, '#XOR#', that I really appreciated when I took Discrete Structures in college. In addition, Mesa 2 seems to support the entire suite of 'IS' functions, such as 'ISTEXT', 'ISFORMULA', and 'ISERROR'.

Mesa 2's functions are strong on math, trigonometry, and lookup operations. There seem to be a lot of financial functions, too. There aren't many matrix functions, and the number of time/date functions leave me a little flat. The text functions are quite acceptable, though.

Where Mesa 2's slew of functions fail to please me, there's always MScript and REXX.

REXX Integration

Mesa 2 has MScript, which is roughly 42 REXX functions that help the user control Mesa 2. Most of these functions are meant to work with or without making selections. A series like...

SEL("C4")          /* select cell C4 */

PUTC("Hello!")     /* place "Hello!" in the current cell */
...can be done as...
PUTC("Hello!", "C4")
MScript is not a dialect of REXX. Instead, it's an addition to the REXX that comes with OS/2. Although some functions (like SAY and PULL) are suppressed, all of the non-VIO tricks are there. The "outside REXX" functions are there, too. For instance, I can use RexxUtil from within Mesa 2 to help create shadows on my desktop:

A general rule of thumb is that if a script changes the contents of a cell, then your Undo will be reset. I like to get my data in working order, save, then use scripts for any of REXX's benefits (built-in type-conversion functions, easy text handling, etc.).

If you use the scripting features, the scripts will be stored on individual pages after the last layer. The script pages are like pages in a text editor and not composed in spreadsheet cells. If you wish to record a script -- and even if you don't wish to record a script -- spreadsheet actions are automatically recorded in the Script History.

DDE Links and the Feed Table

Mesa 2 has two ways to link with the outside world in real time. It can link with DDE links, and it can link to its own feed table.

DDE links can be used to communicate with other DDE-enabled applications. Unfortunately, none of the other Sundial applications support DDE links at this time. However, DDE is also the method Mesa 2 uses to communicate with separate workbooks, so there are still good opportunities to use this feature. It works, but the interface for maintaining links is a bit stiff with regard to targets of the DDE links. Using a separate layer for pasting links goes a long way. I have a like/dislike relationship with this feature. You may feel differently about it.

The feed table is something of a vague concept. It's a table in which to place numbers in RAM. A Mesa 2 worksheet can display numbers from the feed table with the FEED function. However, the table still works when Mesa 2 isn't open. Mesa 2 comes with sample programs (with source code) for showing how the outside world can interact with the feed table.

Other Goodies

Mesa 2 has simple graphics tools. There are tools for drawing straight lines, rectangles, text boxes, and ellipses. The graphics can be manipulated by drag and drop, but there's also a mechanism in the Selection Manager for pixel-by-pixel positioning. Graphics can't be grouped, and that's good to know before starting a graphics-heavy spreadsheet. They can be used to launch scripts, though.

On the bitmap front, bitmaps can be imported into Mesa 2 by drag and drop or through the Import Graphic dialog.

Mesa 2 has 15 graph variations. There are the following styles: bar, column, area, pie, pyramid, scatter, line, high/low, and high/low/close. Some of them have 3-D variations. Pyramid comes only as a 3-D graph, and Pie comes only as a 2-D graph. The appearance can be controlled through the Selection Manager (there's one major tab with four minor tabs) and through the OS/2 palettes. There's a lot of flexibility and too many controls for me to describe here. There are titles to place, styles to set, axis labels to rotate, and axis limits to set, among other things. The default graphs are reasonable, so it's not absolutely necessary to tinker with a bunch of controls to get a nice-looking graph.

There are lots of other little things that may be of use to you. Among these are: print preview, page headers, page footers, page side labels, simple data validation by cell, protection, hidden rows/columns, password protection on files, a Revert to Saved feature to quickly get out of jams, date handling from 1/1/1000 to 12/31/3199, range labels (with optional AutoGrow), sorting by rows, sorting by columns, an elaborate Find & Replace feature, vertical and horizontal alignment, and text wrap.

There are four calculation modes: By row, By column, Natural (default), and Natural + circular reference. There is also an Iteration setting for the calculations.

The specs for workbooks are a maximum (.GIF, 12K) of 32768 rows, 18278 columns, and 702 layers. The default is 32x32x1, but that isn't a hard-set limit. If you need to add just a row at a time, you can arrow-key-down past the last row to add rows. If you need to get to a specific place, press Ctrl-g to get the Goto panel, then enter the address. Mesa 2 will "create" the address if necessary. Otherwise, the page settings are on the Page tab of Selection Manager.

When Things Go Wrong

There are times when Mesa 2 can crash. It works along the lines of most OS/2 programs: When there are crashes, it's easy to find the cause. In the past year in a half, I've stumbled across three "please use caution" issues.

Mesa 2 didn't like my Lotus 1-2-3r5 file with maps in it. The file filters work well for data, supported formulas, and cell formatting. However, I exercise caution when I think the source workbook exceeds the capability of Mesa 2's import filters.

If I use more than 100 operators in a base-level formula -- such as "=1+2+3+...+100+101" -- Mesa 2 will crash. Mesa 2 doesn't do things like place limits on operators or nested IF formulas, so it's good to save any open files before pushing Mesa 2's formula-entry limits. Judicious use of parentheses will help extend the limits a bit.

The third issue has to do with the MScript functions. IBM's REXX functions allow for empty middle arguments, such as the one in STRIP('12.7000',,0). MScript functions don't always provide for them, especially when I'm accidentally omitting required arguments. Otherwise, the functions work very well.

Other than that, stability is excellent (one crash every few months) for work. Stability is good when I want to push it beyond its design limitations. My abuse of OS/2's configuration -- including an unofficial FixPak or two -- hasn't bothered it.


My experience has been that Mesa 2 works best as Mesa 2. It tries to behave like a spreadsheet program and behave like OS/2, so there a very subtle learning curve for experienced spreadsheet users. Novice spreadsheet users probably won't notice the learning curve. Mesa 2 does a good job of not being user-hostile.

To answer my original "why" question, I think Mesa 2 won a Readers' Choice award by being flexible for various tasks, especially OS/2 tasks that aren't covered by other OS/2 numerical software. Mesa 2 doesn't necessarily have more features or better support than the rest of Sundial's products, so the flexibility issue stays in my mind.

* * *

Mesa 2 2.1.6

by Sundial Systems Corporation
download the demo from Sundial Systems (ZIP, 2.3 MB)
MSRP: US$159.00

Michael Semon lives in Ft. Pierce, Florida, and is the author of the Simple Guide to Mesa 2 web page.


[Our Sponsor: Indelible Blue - OS/2 software and hardware solutions to customers worldwide.]

Copyright © 1998 - Falcon Networking ISSN 1203-5696