Terminal Screen Philosophy for AnalyCalc When you first see PortaCalc, it appears as any common electronic spread sheet, even to the standard naming of rows and columns. However, there IS a difference, and its impact is rather profound. On conventional sheets, the initial display, and the initial concept, was a single abstraction, "the spreadsheet", which in PortaCalc terminology is the "physical sheet". This is the sheet on which all calculations take place, and some of which is displayed. The cursor points to the sheet, and the part of the sheet displayed is adjusted so that it contains the cursor. Thus, moving the cursor around allows you to move around on the display. This simple picture gives an easily understood picture of how scrolling is handled; when you move the cursor to the edge of the screen, and try to go further, the screen is updated to show a different part of the sheet. This is reminiscent of text editors and simple to understand. Unfortunately, this simple abstraction is not always sufficient. When it is necessary to display more than one part of a sheet at a time, it is not enough to be able to move from one part to another. This has led to the concept of "windows" on the display and having the cursor point to a "window". However, since the cursor is still conceptually addressing the physical spread sheet, scrolling still works, and moving from one part of the screen to a part in another window requires introduction of new commands. It is also necessary to add commands to prevent some parts of the sheet from being scrolled onto the screen, or scrolled off, so that titles may be left on screen, or pay rates kept off, while other parts of the sheet are worked on. Now the conceptual model is no longer the clean, compelling one it started out as. Moreover, due to the difficulty of maintaining controls on all the windows, only a few separate regions may be ordinarily selected for display at any one time. To avoid all this cumbersome machinery, PortaCalc works by introducing a different concept. In PortaCalc, there are two sheets in use at all times. One is the physical sheet, which works in a fairly conventional way. The other is the display sheet. The display sheet is what is displayed, and is what the cursor points to on screen. Cells of the display sheet each are associated with cells of the physical sheet, so the associated cells values or formulas are displayed. However, the mapping is independently controllable, so that the parts of the physical sheet displayed may be controlled to a degree undreamed-of by other sheets. The display sheet also has a role in calculation. While formulas may make reference to physical sheet addresses, they may also refer to display sheet locations. Thus, a formula which adds the current cell to its next physical sheet cell will do so EVEN IF THE ADJACENT CELL IS NOT ON SCREEN. And a formula which adds the current cell to the next one on the display will add WHATEVER value is displayed adjacent to it, EVEN if the cells are far separated on the physical sheet. Adding display sheet cells, for example, may result in adding physical cells which are from very different parts of calculations which have been moved next to one another on the display. Because the display sheet is so flexible, some commands are provided which have display sheet addresses, which are always numeric (column,row) pairs. Therefore, display sheet addresses are displayed on PortaCalc screens as well as physical ones, to facilitate the use of such commands. One of these commands, for example, is the DL command, which associates one or more physical sheet cells in a row or column with one or more display sheet cells. It is possible to have a display column represent a physical row and vice versa as well as to set up more standard mappings with this command. The watchword of PortaCalc is to provide power to the user. Since the cursor does not point at the physical sheet, but to the display sheet, moving across windows is trivial here, and information hiding commands are largely unnecessary. However, the display sheet does not scroll automatically, nor is it clear that any such operation can be meaningfully defined. Rather, a series of commands permitting rapid setup of windows and resetting display sheet origins are provided, so that the ability to scan over the physical sheet quickly exists, but displays of arbitrary complexity can be set up and printed. To facilitate setups of these, a journaling feature allows capture of the commands which set up the mappings, and the journals can be rapidly replayed to recreate them at need. This paradigm has its weak points as does the standard one, but its strengths are its ability to produce displays which exactly meet users' needs while retaining the ability to quickly shift displays to areas needed. The user who wishes to think of PortaCalc in the way he does about other spreadsheets can consider the origin moving commands of the display sheets as a manual scroll operation and the relative-origin moving commands as a way to create windows. The user who wishes to set up a more complex display as a summary of a large sheet has, however, the full power necessary to set up exactly what he wants in an easily understood and manipulated way.