home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d5xx
/
d594
/
analyrimsrc.lha
/
AnalyRimSrc
/
AnaRimSrcDoc.Zoo
/
analypagingmode.doc
< prev
next >
Wrap
Text File
|
1991-09-30
|
7KB
|
163 lines
3 Dimensional Variables
AnalytiCalc will partially support treating its worksheet as a
3 dimensional volume in which variable names can be specified as
existing on a particular "page" of the sheet by adding %nnn or
%c to the cell name. In this case, a trailing number will treat
the variable as being on page nnn. Pages start at page zero (0)
and go up. An accumulator letter can be used instead of a number
if computable page addresses are needed. Thus a valid cell might
be
B12%3
Column 2 (B) row 12 in page 3
P#2#5%2
Cell 2 columns right and 5 rows down from current cell,
in page 2
C12%D
Column 3 (C) row 12 in the page pointed at by contents
of accumulator D (so that if D contains 2, it
will be in page 2).
These pages are actually aliases for areas of the spreadsheet,
so that you get from one page to the next by adding ROWDELT to
the row number and COLDELT to the column number. (The address
wrapping mentioned in the AnalytiCalc manual takes place
subsequently.) Thus, if ROWDELT is 100 and COLDELT is 0,
you get to page 1 from page 0 by going down 100 rows.
This behavior is controlled by commands:
MDDc,r Disables all this functionality. 3D form cell names will
not be recognized and things will look like it does not
exist. The c,r allows specification of COLDELT and ROWDELT
optionally however.
MDNc,r Turns off 3D functionality, but 3D cell names will be
understood and treated as legal if seen. Relocated cell
names will be handled as non-3D cells and the display
will show the "normal" (huge 2D) surface. (No 3D)
This is the default startup mode.
MDEc,r Turns 3D functionality ON (Enable) but still will treat
cell names as 2D forms when relocated.
MDFc,r Turns on 3D functionality and FORCES it. Thus, cells
whose addresses are in pages higher than 0 will be
translated on relocation to paged forms.
When sheets are saved, unless MDD mode is turned on a record
of the current COLDELT and ROWDELT values (set in the MD commands
above and defaulting to 0 at startup) will be saved so that
these settings can be restored on spreadsheet load. If MDD
mode is on the record is neither saved nor recognized on load.
Note that MDF mode forces 3D forms in relocation so that GPR
commands (which relocate cells on load) will transform them to
3D. In MDN mode the cells would be translated to 2D forms on a
GPR load.
Ranges in depth can be used like ranges in rows or columns,
BUT the cell names must be separated by } instead of : to get
this to work. This flags that the range is a page range.
Thus a depth range would be specified by something like
C4%2}C4%6
to specify the C4 cell of pages 2 through 6 inclusive.
This is done differently from specifying simply C4%2:C4%6
because these cells are also aliased to other areas of the
sheet. In particular, suppose one has executed the command
MDF0,5
so that pages are 5 rows long and have no column offset.
Now cell C1%0 is just cell C1 (as always). But cell C1%1 is
also cell C6 (5 rows down), and cell C1%2 is cell C11 (10 rows
down), and cell C1%3 is cell C16 (15 rows down). (These are
IN THIS EXAMPLE!)
Now if one were to have a range C1%1:C1%3, and if the range
symbol were the same, this could mean either a range that
includes C1%1, C1%2, and C1%3 only, or one that includes all
the cells from C1%1 (same as C6) to C1%3 (same as C16), so
it would be equivalent to C6:C16. You are free to intermix
addressing styles in general, which causes the ambiguity.
Therefore for page ranges, you MUST use the page style
addresses and you MUST ALSO use the } symbol to indicate
that this is a page range, not a row or column range. Therefore
the page range that includes C1%1 to C1%3 is expressed
C1%1}C1%3
and is unambiguous.
Note that using aliases in page ranges will either not work
or will give bogus results. Also, page ranges must be exactly
aligned. That is, a range like C1%1}D1%3 would be illegal, and
would be treated as meaning C1%1}C1%3 instead.
It is not expected that these restrictions will be much of
a problem in actual use. The display is necessarily (with 1990's
technology, anyway) two dimensional, so some anisotropy in
handling a higher dimensional object is to be expected. If you
choose to think of the sheet in terms of a sheaf of pages, you
will ordinarily use page addresses in ranges. These work in functions
and in copy commands.
MAPPING to Screen
You can map the pages to screen if desired in either of two
modes, allowing inspection of the pages juxtaposed as desired.
This is done with modifications of the OA and OR (Origin Absolute
and Origin Relative) commands, which remap the whole screen (OA) or
the part of the screen down and right from the cursor. The commands
are:
OAMR or ORMR - Map depth by rows
This command resets the mapping so that each lower row on the
screen represents a row from the next lower page of the spreadsheet.
The starting cell given in the command determines the first row's
coordinates.
The mapping resulting from a command OAMR A1 would then look
something like this:
A1 B1 C1 D1
A1%1 B1%1 C1%1 D1%1
A1%2 B1%2 C1%2 D1%2
A1%3 B1%3 C1%3 D1%3
so that each row is one page deeper in the physical sheet.
OAMC or ORMC - Map depth by columns
This command resets the mapping so that each column further
to the right represents a column from the next lower page of the
spreadsheet. As before the starting cell determines the first row's
coordinates.
The mapping resulting from a command OAMC A1 would then look
something like this:
A1 A1%1 A1%2 A1%3
A2 A2%2 A2%2 A2%3
A3 A3%1 A3%2 A3%3
A4 A4%1 A4%2 A4%3
If these commands are followed by a D command, the system will
attempt to preserve such existing mappings as exist to the extent
possible, so that, for example, if the first column in the
OAMC A1 example above were A1,A2,B5,B6, the relative mappings
would be preserved. Pre-existing mappings in the horizontal
dimension in that case would however be lost.
It should be observed that auto screen remapping for scrolling
purposes should probably be disabled while using such mappings as these
(just use the NS command) so that they will not be totally replaced
every time your cursor ventures too far. You can define keypad commands
to move around if you like.
Glenn Everhart
3/22/1990
Last minute addition:
The VE commnd works like the V command, but does not repaint the
screen. Instead it just undoes the effect of a VM command. It is
for use in command files.
This makes V25-01B of AnalytiCalc.