Home | Polski Polski
Go back

Reprinted from Byte Summer 1987 issue, pp. 69-75.

This new crop of advanced programs offers multidimensionality and natural language


Electronic spreadsheets are one of the most ingenious software developments; they combine a straightforward, output-oriented user interface with the computer’s ability to calculate and display numbers. Spreadsheets have been adapted for business reports, modeling, and forecasting. Some are used as small database managers and graphics generators, and some can even be used for such nonbusiness applications as electronic circuit simulation.


The first and foremost spreadsheet feature I’ll cover is performance, in terms of speed and accuracy. Next I’ll look at capabilities, such as ancillary functions and macro commands, and compatibility issues, such as support for numeric coprocessors and networking. I’ll also examine the structural capabilities of the spreadsheet (i.e., the ability to create multidimensional worksheets or to link worksheets). Next is the all-important user interface: How do you interact with the spreadsheet, and what does its output look like? I’ll also examine two other details that might impact your plans to use these products – price and program size. See tables 1 and 2 for complete lists of the program’s features.

I used the popular version 1A of Lotus 1-2-3 as a rough basis for comparison of spreadsheet features. Although this version is out of date, it is still in wide use. Many of these spreadsheet programs’ features are functions of the underlying hardware and Operating systems (e.g., the icons and menus used to control Macintosh spreadsheets). For a more detailed description of the tests I used to evaluate the programs, see the text box “Benchmarking Spreadsheets” on page 72.

1-2-3 version 2.01

Lotus Development’s 1-2-3 version 2.01 for the IBM PC ($495) is sold only as a copy-protected program. This package supports an 8087 coprocessor and expanded memory but has no networking or multidimensional support. Although the 2.01 package is slower than the original 1.0 version in all but one benchmark (the Scroll Right test), it is still one of the fastest IBM PC-compatible spreadsheets available.

Version 2.01 incorporates 42 macro commands and 89 functions ranging from the simple absolute value to the complex sum-of-the-years depreciation. In fact, many of the nongraphics functions of the BASICA programming language are supported in some way by either 1-2-3 macro commands or functions, making it possible to write comprehensive 1-2-3 programs.

The authors of 1-2-3 practically invented context-sensitive help screens, and these continue to be an important part of the program. Unfortunately, 1-2-3 cannot record keystroke sequences into a single macro keystroke. Version 2.01 can invert and multiply matrices, but it’s rather limited in its ability to link worksheets together.

The 1-2-3 user’s manuals consist of three perfect-bound volumes. These are smaller, lighter, and easier to use than three-ring binders. I did not like the manuals’ insistence on referring to generic key labels instead of actual key names, however. For example, one of the manuals explains how to execute a macro by using the Macro key, but it doesn’t say what key on the keyboard is the Macro key. That indispensable information appears on a small card. It is also in the Help file, if you can figure out where the Help key is. This information should appear prominently in one of the manuals.

Many of 1-2-3’s shortcomings are partially solved by the add-on product HAL. But even with its shortcomings, 1-2-3’s fast spreadsheet capabilities, together with its database, graphics, and rudimentary text-processing features, endow the product with a high degree of functionality. The program’s value is also enhanced by its large user base and its sizable number of add-ons, macros, and user textbooks. The HAL accessing program extends 1-2-3’s functionality even further.

HAL 2.01

Lotus Development’s HAL version 2.01 ($150) is an accessory program for 1-2-3 versions 1A, 2, and 2.01, but it provides so many extra features that it deserves mention as a separate program.

HAL does not impede user access to all the regular 1-2-3 facilities; it sits between the user and 1-2-3 and translates user requests into 1-2-3 instructions. For instance, HAL would translate total this into a series of macro instructions that would check each of the cells near the current cell pointer and insert a sum formula below each column of values. HAL can also do a few tasks that were previously not possible with macros, the most notable of which is Undo. Undo lets you cancel any HAL request, but not normal 1-2-3 instructions. The Undo capability is only one instruction level deep, and using it reduces the memory availability by more than one-half because it must keep a copy of the last state of the spreadsheet in memory.

When you turn on Undo in a 512K-byte IBM PC, only 66K bytes are available for use. When you turn off Undo, 166K bytes are available. When you use 1-2-3 2.01 without HAL, 302K bytes are available. I had to turn off the Undo facility for both benchmarks that I used because they can’t run in 66K bytes of RAM.

HAL’s benchmark results can be misleading, since the speed with which it executes a request depends on how you word the request. HAL performs simple 1-2-3 requests with the same efficiency as 1-2-3. To give you an idea of how HAL interprets requests, I varied the Arithmetic Recalculation test so that it would be more HAL-like. The test worksheet consists of 2500 cells, all of which are a function of one input cell. Normally, I change the value of the input cell from 2 to 1 and measure the recalculation time. For the test on HAL, I merely placed the cell pointer on the input cell and entered the HAL request decrease by 50 percent.

HAL’s execution time in this test was significantly longer than the time required to translate the request into a series of 1-2-3 commands. Instead of merely changing the value of the single input cell, HAL apparently checked each of the 2500 contiguous cells to find any value cells that needed halving. HAL also performed rather slowly on the Insert Row test.

HAL does not have any more functions with the @ prefix than 1-2-3 has, but it can execute macros of combined HAL requests and 1-2-3 instructions. These two types of instructions cannot be on the same line of the worksheet, however. Since HAL has 307 words with which you can begin a request, it effectively adds 307 macro commands to 1-2-3, giving a whopping total of 349 possible macro commands. However, many of these requests are synonyms of each other.

HAL makes creating macros easier because it can record requests and insert them into cell ranges. Unfortunately, it cannot record regular 1-2-3 keystrokes. Another feature of HAL not available to 1-2-3 users is the ability to audit spreadsheets. HAL can create a table of all formulas used or all cells that are dependent or precedent to a particular cell. However, in the list of dependent cells, the range names are converted to cell addresses.

HAL’s best feature is its ability to do complex 1-2-3 tasks easily. HAL makes it easy for you to create a graph or find entries in a database that satisfy certain criteria. Both of these operations can take a considerable amount of time using the old 1-2-3 command interface.

HAL’s ability to link 1-2-3 spreadsheets is really no more powerful than Lotus’s current Combine instruction. HAL merely creates an auto-executing macro that combines values in ranges from other worksheets to ranges in the present worksheet. While I was testing this, I got a curious error message stating that the combined length of the linked range name and the filename could not exceed 13 characters.

HAL’s user’s manual is good, but it could use a phrase dictionary showing how all its words are used. HAL’s help feature is context-sensitive, but slow for large worksheets.

Users might expect too much of HAL. You can easily give HAL a request that it will either not understand or misinterpret. Nevertheless, this program is impressive and will undoubtedly be popular. Note that its price, combined with the cost of 1-2-3, make the combination package the most expensive of the spreadsheets reviewed in this article ($645).

Boeing CALC 3.0

Boeing CALC 3.0 for the IBM PC ($399; LAN version: $799) from Boeing Computer Services has many of 1-2-3’s features but is designed for much larger and complex worksheets. Most prominent is its ability to do three-dimensional workpads, which are delineated by rows, columns, and pages.

This program can handle tremendous worksheets: up to 16,000 rows, 16,000 columns, and 16,000 pages. Since the program has virtual-memory capability, physical memory size is not a limiting factor, and you do not need expanded-memory boards. A hard disk is a must for this application.

Virtual memory has its price, usually in terms of performance. In the benchmark tests, Boeing CALC was one of the slowest programs, even though it was running on a computer equipped with a hard disk. Other shortcomings of the program are its lack of graphics, lack of 8087 coprocessor support, and, surprisingly, its inability to bestow names on ranges of cells.

Those limitations notwithstanding, this program has some impressive capabilities for large, complex worksheets. For example, the Worksheet selection on the 1-2-3-style menu has been replaced by Workpad, denoting the fact that each worksheet is but a page in a three-dimensional pad. You can access all cells not only by column and row numbers, but by page numbers as well. With this interface, it is easy to set up a series of worksheets and consolidate them into a summary worksheet. With the networking version of this program, you can assign users access to certain pages of a workpad, setting the stage for a powerful multiuser capability.

Boeing CALC supports 89 functions. The function names do not require an @ character, as 1-2-3 functions do. The program supports a rudimentary form of macro; it can save keystrokes into a file, but it lacks any special macro commands. As for compatibility, Boeing CALC can read and write 1-2-3 files directly.

Although Boeing CALC’s user interface is much like 1-2-3’s, it has minor idiosyncrasies. One is that the Point mode is not automatic. In 1-2-3, if you want to write a formula that accesses the value of a certain cell, you can simply point to it (i.e., move the cell pointer to it). In Boeing CALC, you must first press F9.

Excel 1.03

Some people call Microsoft’s Excel ($395) the 1-2-3 of the Macintosh world. With its large number of features and formidable power, Excel has a justifiable claim as the best spreadsheet for any machine.

In the benchmark tests, Excel was clearly the fastest of all nine programs, especially when compared with the IBM PC-compatible spreadsheets. Only in the Scroll test was its speed exceeded by a number of Macintosh and IBM PC programs. Excel usually seems even faster than it is because it can do recalculations in the background, and it avoids recalculating cells that do not require it.

The only items that Excel lacks are special networking features and multidimensional worksheet support. Excel has a total of 114 functions; the program has 29 macro commands and an additional 87 that are the equivalents of keyboard commands. You can feed the functions single values or arrays, and you can even add your own special functions using the macro commands. You can easily record, store, and play back macros with any worksheet.

Although Excel cannot work with multidimensional worksheets, it can display several worksheets on the screen at once. You can reference ranges of cells on other worksheets by using a simple notation that includes the names of the worksheets and their ranges. Like the other Macintosh spreadsheets, Excel makes full use of the Macintosh interface, featuring pull-down menus and scrolling windows.

Auditing is one area in which Multiplan, Excel’s sister program for the IBM PC, has it beat. Unlike Multiplan, Excel cannot display lists of formulas and dependent cells, but it can display the worksheet, showing formulas instead of values. Excel can read and write files it 1-2-3 and SYLK (symbolic linked file format) formats. Version 1.03 of Excel, supports the Macintosh 68881 mathcoprocessor and is not copy-protected.

Multiplan 3.01

Microsoft claims that Multiplan version 3.01 ($195) is the fastest spreadsheet available for the IBM PC, a claim thatl will not dispute. On the four benchmark tests, it was the fastest IBM PC program; in the Savage, Scroll Right, and Insert Row benchmarks and just 20 percent slower than the fastest in the Arithmetic Recalculation test. The only problem I noticed was floating-point accuracy in the Savage benchmark. Multiplan scored the largest error rate: approximately 10-4 after 1000 iterations. Most other programs had an error rate of only 10-8.

Multiplan has two features that create an even greater illusion of speed. The first is the ability to do calculations in the background like its sister program, Excel. You can still move the cursor and edit while the calculation is going on. In a very long calculation, such as the Savage test, you can even scroll down the 1000-row column and watch the wave of recalculations taking place. This background-calculation feature, however, might cause a problem for extremely long calculations because you can’t be sure when a value has finally been recalculated.

The second feature that enhances the perception of Multiplan’s speed is its ability to select and recalculate only those cells that require it. This feature is sorely needed in other spreadsheets.

One of the best features of Multiplan is its ability to link spreadsheets. To link a cell in one spreadsheet to a cell in another, you select the Xternal menu choice and fill in the names of the appropriate cell and spreadsheet. To verify your linkages, you set up a window on the screen corresponding to each spreadsheet.

Multiplan 3.01 also has some handy auditing features. When you display formulas, the program automatically expands cell widths to encompass the widths of the formulas. It can also generate all the precedent cells of a given cell (i.e., all the cells that serve as input to a given cell formula).

While it is certainly state of the art, Multiplan has some deficiencies: It lacks expanded memory and 8087 arithmetic coprocessor support. Although instructions are included for setting up the program on a network, it has no special network-oriented features. The program also lacks graphics capabilities, and its database functionality is limited. But it can read and write files in SYLK, 1-2-3, or dBASE II formats; you might use other programs to provide some of the missing capabilities.

Multiplan uses 77 functions but only 13 macro commands. You can record a macro, but only one. You must then rename the recorded macro before you record another. The function names are quite readable and do not require the @ prefix used by 1-2-3. Macro programs an be hard to read, as the macro commands and key labels consist of an apostrophe followed by two letters.

Multiplan uses Microsoft’s own menu interface, which is similar to that of Microsoft Word and all other Microsoft IBM PC applications software. I find some aspects of this interface illogical. For example, the left and right cursor keys can control the movement of the cell pointer only. This requires some unusual command-key usage; to move the cursor in the command menu, you must use the space bar or the Backspace key. To move the cursor in the command-parameter window, you use the Tab and Shift-Tab keys. When you want to edit a cell’s contents, you have to use F9 and F10.

Pressing the left or right arrow key while editing a cell’s contents (an understandable mistake, since many programs use the arrow keys for editing) will terminate the editing process and move the cell pointer. Since moving the cell pointer is never desirable during the editing of a cell’s contents, the function of the left and right arrow keys should be restricted to moving the cursor during this process.

Multiplan’s Help function does not use the F1 key; instead, you must choose Help from the menu or press Alt-H. The Multiplan user’s manual, like that of 1-2-3, uses generic key labels. To find out what the actual key referred to is, you must look up the generic key in a key table. The use of generic key labels is not totally unacceptable because you can configure Multiplan to run on a wide range of MS-DOS computers and terminals. But, since most people will use it on an IBM-style keyboard, there is just cause to include both the generic and the IBM key names whenever keys are mentioned in the manual.

Another nice feature of Multiplan is the amount of usable memory left over after you load the benchmark files. After you load the 100- by 25-cell spreadsheet, 84 percent of memory is still available on a 512K-byte machine. After I loaded the Savage test, 87 percent was left available. Multiplan obviously stores its worksheets compactly. Finally, at a price of only $195, Multiplan represents a good value.

Silk 1.0

Silk version 1.0 for the IBM PC and compatibles ($298) from Daybreak Technologies is similar to 1-2-3 and is well-suited for time-based worksheet applications. Silk is based on a row/column design but also uses special columns and rows, called time periods and data fields, respectively. In a typical example, you might set up 12 time periods, one for each month. You can then consolidate them into quarterly or yearly summaries without having to write and copy the individual sum formulas for each line. More importantly, you can later insert other columns between the time periods without affecting the sums.

Data fields are special rows of cells to which you can attach formatting, validation, and prompting information. You can restore a data field’s contents after you have accidentally or deliberately written over it.

In performance, Silk was usually second to last or last in the benchmark tests. In the Arithmetic Recalculation test, however, it finished in second place among the IBM PC programs.

Silk stores global constants in a pop-up table, called a form. In fact, many command parameters, such as range names, global constants, and parameters for graphics and printing (e.g., page length and margins), are stored in variations of this form. Silk uses a special mode called FMENU to let you edit the information in these windows. This mode is sometimes awkward; you cannot simply press Escape to get out of it, as you can from almost every other mode. Instead, you must first access FMENU and choose Quit. In spite of this drawback, forms make it easy to save, reuse, and change parameters.

Although Silk’s user interface is roughly similar to that of 1-2-3, it can’t read 1-2-3 files directly and can’t execute most 1-2-3 macros. You first have to translate DIF and 1-2-3 files using a Silk utility. Despite the similarity between the names, Silk can’t read Multiplan-compatible SYLK files.

Silk has a rather rich set of macro commands that are surrounded in brackets ([ ]) rather than the more traditional braces ({ }). Silk also has a good set of functions with fairly readable names, which do not include the @ character.

Silk lets you include comments in formulas. This capability is enhanced by a feature called PEDIT mode, which is actually a long version of 1-2-3’s EDIT mode. With PEDIT, you can insert up to 2000 characters in a single cell. This could be helpful for annotating spreadsheets. Unfortunately, Silk does not include a Range Justify command for formatting text.

Silk incorporates a live help feature. Once you call it, the Help window automatically updates itself as you move from one situation to another. Daybreak Technologies recommends that beginning users engage this feature continuously. This feature slows the system down and reduces the viewable area of a worksheet by one-half, however.

To safeguard against data loss due to a power failure or some other accident, you can configure Silk to keep a keylog file on disk. Silk stores the information on each key you press on the default disk. Should a power failure occur, you can return to your worksheet as it was just before the failure by executing the keylog file. Be careful when you modify and save a file, however, since the keylog will expect the original file, not the new saved version. You would probably most often use the keylog feature for recording macros. Silk also has an instruction for uploading a keylog file into a range of cells that you can then name as a macro.

Silk appears to have a number of enhancements over versions 1A and 2.01 of 1-2-3 and is a fairly good value at $298.

SuperCalc4 1.0

SuperCalc4 version 1.0 for the IBM PC and compatibles ($495) from Computer Associates International has evolved along the lines of 1-2-3 and has many of the same features, but it outdoes 1-2-3 in many areas. One area in which it outperforms 1-2-3 is the Scroll Right test, mostly because of 1-2-3’s sluggish performance in this benchmark. The error count in the Savage test was a fairly normal 10-8. Note, however, that SuperCalc4 does not use BCD numbers in its arithmetic calculations. For extra speed on the 8087 coprocessor, the program uses 15-digit floating-point numbers exclusively, rounding off the last three digits before using the numbers for comparison. The maximum effective accuracy is then 12 digits, instead of the 15 digits of most other programs.

SuperCalc4 can use expanded memory and can link worksheets in a manner similar to 1-2-3, but it has no special networking or multidimensional capabilities. To make report-generating easier, a utility program called Sideways, which prints extra-wide spreadsheets sideways on most common printers, is bundled with SuperCalc4.

SuperCalc4 has 92 functions and 46 macro commands. Functions do not begin with an @, yet the program can easily distinguish labels from functions. Despite the large number of functions, none are for accessing text. The program can import 1-2-3 and DIF files. SuperCalc can learn macros by storing keystrokes into a range of cells. If you are not careful, however, it is easy to overload this range: What is not made clear to the user is that keystrokes are stored in a single vertical column, and, therefore, the width dimension of the range the user specifies is ignored.

SuperCalc4’s program structure is composed of a series of overlay files. The documentation labels each file. Users who do not have a hard disk should be able to trim the unnecessary overlays and fit most of the desirable parts of the program onto a single floppy disk.

[Editor’s note: The author was unable to obtain the latest release of SuperCalc4, version 1.1, in time for this review.]

Trapeze 1.0

Trapeze 1.0 for the Macintosh ($295) from Data Tailor seems to have done away with the rows and columns of all other spreadsheet programs. In their place, it uses blocks of data. Each block can contain a single value, a row or column of values, or a table of them. You can use blocks in the way that you use ordinary cells or ranges in other spreadsheets.

Trapeze incorporates 127 functions, including an inverse Gudermannian function and a polynomial least-squares regression function. The functions all use blocks for input and output, and the blocks can be single values or arrays. Some functions even create graphs.

Trapeze is so different from other spreadsheets that I had trouble testing it with the standard benchmarks, which are all designed for more conventional spreadsheet programs. For example, the Savage test consists of 1000 cells arranged in a column, with each cell being, a function of the cell above it. To duplicate this benchmark in Trapeze, I would have had to set up 1000 blocks, which would have been laborious, since Trapeze does not include any macro features.

I was, however, able to emulate the 1000 steps of the Savage test by setting up a circular array of 10 blocks and iterating it 100 times. I was unable to implement the other standard benchmark worksheet, a 2500-cell table in which each cell is a function of the cell to its left. Thus, I did not run the three tests that are dependent on the worksheet (see table 3).

The results of the improvised Savage test suggest that Trapeze is not particularly fast, but it is possible that much of this slowness is due to the overhead processing required by the iteration logic.

Another area of difference from other spreadsheets is Trapeze’s command interface. Trapeze departs significantly from Excel and uses an interface that depends heavily on icons. Learning all the icons can require some time.

Although it is not the end-all of spreadsheets, and it might not lend itself to certain applications, Trapeze has enough interesting and unique features to merit a place in many offices.

VP-Planner 1.3

VP-Planner 1.3 for the IBM PC and compatibles from Paperback Software International has received a considerable amount of attention as an inexpensive ($99), non-copy-protected clone of 1-2-3 version 1A. As with any clone, however, in some ways it outshines the original.

As of this writing, Lotus Development Corp. has filed suit against Paperback Software over infringement on Lotus’s rights to the 1-2-3 user interface. Although VP-Planner’s interface is similar to that of 1-2-3, it is clear that its programmers spent a great deal of time ensuring that the visual similarity of the two products was small. In at least one respect, Paperback Software has actually improved the interface. The VP-Planner interface indicates the definitions of all the function keys and graphically indicates the address of the cell pointer.

In terms of performance, VP-Planner is fairly good. In the benchmark tests, it usually finished among the top four or five programs. The exception is the Insert Row test, where it finished dead last. The program scored second among IBM PC-compatible programs in the Savage test and featured the lowest error count of all programs: 10-12.

I found VP-Planner to be a good emulation of 1-2-3 version 1A. It has 59 functions and only nine macro commands. The only problems I noticed were minor. For example, on some occasions, long labels would not extend completely across the screen. This seems to be a program bug, as I was not able to associate the problem with any particular function.

In addition to being a close clone of 1-2-3, the program also has some features not found even in 1-2-3 version 2.01. VP-Planner can record macros and access information from a dBASE II file. The program advertises a five-dimensional database that you can link to a worksheet. Although this is a significant enhancement over 1-2-3, it uses a completely different user interface and is rather difficult to work with. All database parameters must be defined prior to the start of the spreadsheet session, and the screens used to define these parameters bear no resemblance to existing spreadsheet user interfaces and are difficult to understand at first.

At $99, VP-Planner is a good value.

A Wish

All nine programs exhibit at least one state-of-the-art feature, and each might be particularly well-suited for a given application.

After looking at all these programs, I wish that one product could combine all these features. It would have the popularity and support of 1-2-3; the natural-language interface of HAL; the three-dimensional capabilities of Boeing CALC; the speed, graphics, and flexibility of Excel; the time-series modeling capabilities of Silk; the compact code size of SuperCalc4; the functions and array-processing power of Trapeze; and the low price of VP-Planner. In the real world, such features would probably be mutually exclusive – at least for the immediate future.

Rich Malloy

Rich Malloy is a senior technical editor for BYTE. He can be reached at BYTE/McGraw-Hill, 1221 Avenue of the Americas, New York, NY10020.

Table 1: Spreadsheet prices and company information

SpreadsheetVersionsHardwareCompanyList priceManual(s)
1-2-32.01IBM PC; 256KLotus Development Corp.
55 Cambridge Pkwy.
Cambridge; MA 02142
$495551 pages
HAL2.01IBM PC; 512KLotus Development Corp.
55 Cambridge Pkwy.
Cambridge, MA 02142
(617) 577-8500
$150178 pages
Boeing CALC3.0IBM XT, AT; 386K and hard diskBoeing Computer Services
Microsoftware products
P.O. Box 24346
Mail Stop 7W-05
Seattle, WA 98124-0346
(800) 362-4555
$399; LAN: $799380 pages
Excel1.03Mac; 512KMicrosoft Corp.
16011 Northeast 36th Way
P.O. Box 97017
Redmond, WA 98073-9717
$395572 pages
Multiplan3.01IBM PC; 256KMicrosoft Corp.
16011 Northeast 36th Way
P.O. Box 97017
Redmond, WA 98073-9717
$195516 pages
Silk1.0IBM PC; 512KDaybreak Technologies
2271 205th St., Suite 104
Torrance, CA 90501
(213) 212-3030
$298292 pages
SuperCalc41.0IBM PC; 256KComputer Associates Int’l Inc.
Micro Products Division
2195 Fortune Dr.
San Jose, CA 95131
(408) 432-1727
$495650 pages
Trapeze1.0Mac; 512KData Tailor
1300 South University Dr., Suite 409
Fort Worth, TX 76107
(817) 332-8944
$295208 pages
VP-Planner1.3IBM PC; 256KPaperback Sofware International
2830 Ninth St.
Berkeley, CA 94710
(415) 644-2116
$99.95500 pages

Table 2: Features of the nine spreadsheets reviewed

Feature1-2-31-2-3/HALBoeing CALCExcelMultiplanSilkSuperCalc4TrapezeVP-Plan
Macro commands4234902913444609
Arithmetic coprocessorYesYesNoYesNoYesYesYesNo
Expanded memoryYesYes*N/ANoYesYesN/ANo
Natural languageNoYesNoNoNoNoNoNoNo
Record macrosNoYesYesYesYesYesYesNoYes
Contextual helpYesYesYesYesYesYesYesNoYes
Live helpNoNoNoNoNoYesNoNoNo

* = virtual memory
P = partial support

Table 3: Results of the spreadsheet benchmark tests.

Scroll RightInsert Row
Boeing CALC547.020.548.010.4

* = estimated time. All times are in seconds.


Page added on 22nd September 2004.

Copyright © 2002-2005 Marcin Wichary
Printable version | Contact | Site map