8 T__text__TEXTbTd__data__DATA|M__cstring__TEXTT__picsymbolstub2__TEXT=__la_sym_ptr2__DATAV__textcoal_nt__TEXTZ @,tp P$US$tEE8u3ED$E$趠uEEEE:uEE$[] `@@ `@j@#@ '>` ` [gq{@ ` ` !=!A!^!w!!!!!""@""""#1#@#`#######$ $@$$$%@%g%%%&@&&&'`''''(@((()))@)))* *`**+ + +`++ ,A,`,,-`----@....-/`//// 00001`1112@2223 3`333 4c4n4r4444 5`5556`6671757P7k777778@8c88889 9@99999: :!:::>:`:::::::::;;";3;J;O;;;;;;;<%<)<@<c<g<<<<="=&=@=b=f====>@>>>>?>@??>>???@@@@@@A@AAAB$B@BBB@CCCD0D@DD@BBD@CCEGESEWEE@BBEF:F@FFF@BBEFFG G@BB`G@CCGGEH H@H@BBHH@IIIIJ@BB:J@JJ@BBJJJ KAK`KKKKKL L`LLLLLL MZMMMN`NNNNO`OOOOP@PgPPP Q Q`QQQQQ RgRRR SUS`SST8T@TTTT U@UlUUUUVV VVVVV@WnWrWWWX(X,X`XXXX Y`YgYYYYYYYYY ZY?ZDZY`ZfZYZZYZZ[E[`[[[[ \j\t\\]-]7]`]]]] ^]m^q^^_`_____ ```'a2a`aaaa-b8b`bbbb,c6c`cccc+d7d`ddde eeeee-f6f`ffffg g gcglggggg"h*h@hhhhdhhiKiTiiiij@jjjjj k k`kkl`ll mmmn`nn ooop4pNpRp\pppppppq q1qDq`qqqqq r_rrr s`sss t&t?tRt`tztttu`uuuuuv@vvvvw wbwwwwx1x`xxxx yfyyyyyyz z`zz{@{{{{|,|`||||@}}~@~f~~~)@@*@@,D`ă݃`τ8Nh@džՆ `*@@CLȊ `@ ` b ";TƐ ` @d ` ` ` ` @Zoɗ `-`Й@@@ `ĝ8` B``Π*number-syntax*Numbers must be entered in 'general' format: [-]digits[.digits][e[-]digits]*string-syntax*Strings are entered surrounded by double-quotes. To include unusualcharacters, you can either quote them with backslash (e.g. "a \"quoted\" quote") use \nnn where nnn is the octal code forthe character you want to include. *expression-syntax* Infix expressions:- num 0-num! bool #TRUE if bool is #FALSE #FALSE if bool is #TRUE, error otherwise.num1 ^ num2 Exponentiation This is *right* associative!num1 * num2 Multiplication Note that these functions are not asnum1 / num2 Division good as they should be at detectingint1 % int2 Modulus overflow. There *is* code that shouldnum1 + num2 Addition force integer expressions to becomenum1 - num2 subtraction floating-point if the result wouldn't fit in an integer.num1 >= num2 Arithmatic greater-or-equalnum1 > num2 greater-thannum1 < num2 less-thannum1 <= num2 less-than-or-equalval1 = val2 #TRUE if val1 and val2 can be considered equal. #FALSE otherwiseval1 != val2 Equivalent to !(val1=val2)str1 & str2 Text concatination.bool ? val1 : val2 if(bool==#TRUE) evaluate val1 else if(bool!=#FALSE) error... else evaluate val2.(val) (To override default precedence) Note that since oleo stores expressions in a byte-compiled form, excess parens will mysteriously vanish.#TRUEThe logical TRUE value#FALSEThe logical FALSE value#ERRORAn unclassified error.#BAD_INPUTIndicates an inappropriate parameter to a formula function.#NON_NUMBERAn error value.#NON_STRING#NON_BOOL#NON_RANGE#OUT_OF_RANGE#NO_VALUES#DIV_BY_ZERO#BAD_NAMEAn error value that indicates an invalid variable name. It may be the symptom of an incorrectly written address.#NOT_AVAIL#PARSE_ERROR#NEED_OPENAn error value that indicates a missing open parenthesis.#NEED_CLOSEAn error value that indicates a missing close parenthesis.#NEED_QUOTE#UNK_CHAR#UNK_FUNC#INFOn some machines this may be indistinguishable from other values.#INFINITY#NAN#NOT_A_NUMBER#NINF#MINUS_INFINITYifConditional operator if(bool,val1,val2)If BOOL is #TRUE, the value is VAL1;if BOOL is #FALSE, the value is VAL2;if BOOL is neither #TRUE or #FALSE, then the value is #NON_BOOLandBoolean operator and(bool1,bool2)If both BOOL1 and BOOL2 are #TRUE, the value is #TRUE;otherwise, if both are boolean values, the value is #FALSE;otherwise, the value is #NON_BOOL.orBoolean operator or(bool1,bool2)If both BOOL1 and BOOL2 are booleans, then the value is #TRUE if eitherargument is #TRUE, and #FALSE if both are #FALSE.If either argument is not a boolean, the value is #NON_BOOL.notBoolean operator not(bool)#TRUE if BOOL is #FALSE,#FALSE if BOOL is #TRUE, and otherwise, #NON_BOOL.iserrError predicate iserr(val)#TRUE if the VAL is an error, otherwise #FALSEisnumNumber predicate isnum(val)#TRUE if the VAL is a number, or can be automatically converted to a number.Thus `isnum("12")' is #TRUE, while `isnum("dsfjbk") is #FALSE.rowA cell's row address row()The row number of the cell the expression is in.colA cell's column address col()The column number of the cell the expression is in.rowsRows in a range rows(rng)The number of rows in RNG.colsColumns in a range cols(rng)The number of columns in RNG.myCell reflection my(str)The function `my' returns information about the cell containing the formula.The argument STR is a key to say what should be returned. Valid arguments are: KEY RETURNSrow row address (as an integer)column column address (as an integer)width width, (as an integer)lock "locked" or "unlocked"protection (this is a synonym for "lock")justify "left", "right", "center" or "default"alignment (this is a synonym for "justify")format "default", "user-1", etc.fmt (this is a synonym for "format")type "error", "boolean", "float","integer", "null", "Unknown", etc.formula A string of the cell's current formula.value The cells current value.anything-else error--> #BAD_INPUTcurcellReflection on the current cell curcell(str)Curcell takes the same arguments as `my', but returns information about the current location of the cell-cursor, instead of the cell containing thisformula.Curcell is updated on a timer interrupt.cellGeneral cell reflection cell(row,col,str)`Cell' takes a ROW and COL address, and a STR that is like an argument to `my'.It returns information about the cell at ROW,COL.memberSearch for values member(rng,val)Returns the index of the first cell in RNG that contains VAL, or zeroif no cells contain it. It is permissable for VAL to be an errorvalue.smemberSearch for a substring smember(rng,str)Returns the index of the first cell in RNG that contains STR as a substr.Returns 0 if no cells match. If STR is empty, then it matches anempty cell (see also `members').membersSearch for a substring members(rng,str)Returns the index of the first cell in RNG that contains STR as a substr.Returns 0 if no cells match. This function will never return theaddress of an empty cell, but see `smember'.pmemberSearch for an initial substring pmember(rng,str)Returns the index of the first cell in RNG whose value equals thefirst few characters of STR. If STR is empty, an empty cell may bematched (but see `memberp').memberpSearch for an initial substring memberp(rng,str)first few characters of STR. This function will never return theaddress of an empty cell, but see `pmember'.hlookupNumber-keyed table lookup hlookup(rng,num,int)Scan through the top row of RANGE looking for a number which isgreater than NUM. Then return the value in the cell that is INT rowsdown from the top of the range.vlookupNumber-Keyed table lookup vlookup(rng,num,int)Scan through the left col of RANGE looking for a number which isgreater than NUM. Then return the value in the cell that is INT colsover from the left edge of the range.vlookup_strString-keyed table lookup vlookup_str(rng,str,num)Scan through the left col of RANGE looking for a cell that containsSTR. Then return the value in the cell that is INT columns over fromthe left edge of the range.varvalReport variable existence and info varval(int,str,str)For position INT in variable STR1 report information requestedby STR2. INT inficated a corner of the variable region: 0=>NW,1=>NE, 2=>SE, 3=>SW. If variable is not defined, the requestedname is returned as a string. See my() for information parametersavailable.nowTime of day now()The current time in seconds since Jan 1 1970.ctimeThe current time of day ctime(num)Convert NUM into a readable date/time string.NUM should be seconds since the epoch; as returned by `now()' for example.indexTable lookup index(rng,x), index(rng,relrow,relcol)In the first form, the contents of a cell in RNG, at offset X. The lookup isin the first column (though it may wrap to other columns).In the second form, the contents of a cell in RNG, RELROW rows and RELCOLcolumns from the upper left corner of the range.absAbsolute value abs(num)The absolute value of NUM.intConvesion to integer int(num)Convert NUM to integer (toward zero). See also `floor', and `ceil'.ceilConversion to integer ceil(num)Convert NUM to integer (round up).See also `floor', and `int'.floorConversion to integer floor(num)Convert NUM to integer (round down)See also `ceil', and `int'.fixedFixed decimal rounding fixed(num1,num2)NUM1 rounded to NUM2 decimal places.rndRandom integer rnd(num)A random integer from 0 to NUM-1.negateNegation negate(num)Equivalent to `0 - NUM'.expExponential exp(num)The exponential function of NUM.logLog log(num)The natural log of NUM.log10Log base 10 log10(num)The log of NUM to base 10.sqrtSquare root sqrt(num)The square-root of NUM.piConstant pi()3.14159265358979326848acosArc cosine acos(num)The arc cosine (in radians) of NUM.asinArc sine asin(num)The arc sine (in radians) of NUM.atanArc tangant atan(num)The arc tangent (in radians) of NUM.cosCosine cos(num)The cosine of NUM (NUM in radians)dtrDegrees to radians dtr(num)NUM degrees converted to radians.rtdRadians to degrees rtd(num)NUM radians converted to degrees.sinSine sin(num)The sine of NUM (NUM in radians).tanTangent tan(num)The tangent of NUM (NUM in radians).atan2Expanded arc tangent atan2(num1,num2)Returns the arc tangent (in radians) of NUM1 / NUM2.The range of atan2 is (-pi..pi). The quadrant of the angle returnedis determined by the signs of NUM1 and NUM2: (pi/2) | NUM2 < 0 | both > 0 (pi,-pi) -------------------------- (0) both < 0 | NUM1 < 0 -(pi/2)hypotLength of t he hypoteneus hypot(num1,num2)Returns `sqrt (NUM1 * NUM1 + NUM2 * NUM2)'. Calling `hypot' may succeed in cases when the equivalent expressionmight underflow or overflow.oneofCase expression oneof(choice,val1,val2,val3...)If CHOICE is 1, return VAL1, if 2, VAL2, and so forth.If CHOICE is not a valid integer in the appropriate range, the value is#OUT_OF_RANGE. If no value arguments are supplied, the value is #NO_VALUES.sumSum of values sum(vr1, vr2, ...)The sum of VR1, VR2, etc. Each value can be either a numeric type or a range. If the value is a range, the values of all numeric cells in that range are used.If none of the arguments include valid numbers (e.g. `sum(r1:10c1:10)'where that range is empty), then the value is #NO_VALUES. To ensurethat the expression doesn't return an error in cases like that,provide a default value as an extra argument to sum(e.g. `sum(0,r1:10c1:10)').prodProduct of values prod(vr1, vr2, ...)The product of VR1, VR2, etc. If none of the arguments include valid numbers (e.g. `prod(r1:10c1)'provide a default value as an extra argument to product (e.g. `prod(1,r1:10c1)').avgAverage avg(vr1...)The average of VR1, VR2, etc. If none of the arguments include valid numbers (e.g. `avg(r1:10c1)'where that range is empty), then the value is #NO_VALUES.stdStandard deviation std(vr1...)The SAMPLE standard deviation. To get the population standard deviation, use sqrt(var(...))maxMaximum max(vr1...)Return the maximum value of all the arguments.If none of the arguments include valid numbers (e.g. `max(r1:10c1)'provide a default value as an extra argument to maximum (e.g. `max(0,minMinimum min(vr1...)Return the minimum value of all the arguments.If none of the arguments include valid numbers (e.g. `min(r1:10c1)'where that range is empty), then the value is #NO_VALUES. To ensure that theexpression doesn't return an error in cases like that, provide a default valueas an extra argument to minimum (e.g. `min(99999, r1:10c1)').cntCount numbers cnt(vr1...)The number of numeric values found amongst the arguments.varPopulation variance var(vr1...)The population varianc of the arguments.To get the sample variance, use std(...)^2lenString length len(str)The number of characters in STR.strlwrConversion to lower case strlwr(str)STR, converted to lower case.struprConversion to upper case strupr(str)STR, converted to upper case.strcapString capitalization strcap(str)STR, with each word capitalized.trimString beautifier trim(str)STR, with extra spaces and non-ascii characters removed.findfind(str1,str2,int)Return the location after INT where STR2 appears in STR1.substrExtract substring by position substr(int1,int2,str)Extract the substring from INT1 to INT2 of STR.Positive indexes are counted from the beginning of STR, starting with 1.Negative indexes are counted from the end of STR, starting with -1.See also, `mid'.midExtract substring by extent mid(str,int1,int2)The characters in STR from INT1 and continuing for INT2 characters.INT1 is counted from the beginning of the string, starting with 1.See also, `substr'.editDelete part of a string edit(str,int1,int2,...)Return STR with chars INT1 through INT2 removed.INT1 and INT2 behave as with `substr'.repeatConstruct a repeated string repeat(str,int)Return INT concatenations of STR; thus repeat("foo",2) returns "foofoo".concatConcatenate string concat(vr1,...)Return the concatenation of all strings in the arguments.An argument may be a range, in which case the cell values in the range areconcatenated.pmtLoan payments pmt(p,r,t)Payment per period for a loan of principle P at rate R for T payments.pvPresent value of investment pv(pmt,int,term)Present value of an investment that pays $PMT at the end of each ofTERM periods with a discount rate (interest) of INT.npvNet present value npv(rng,rate)Net Present Value of an investment which will pay uneaven payments.The term is calculated from the number of cells in RNG.irrIntrenal rate or return irr(rng,guess)Internal Rate of Return. This function is paticularly untested, andshould not be trusted.Returns #BAD_INPUT if it does not converge for the given input.fvFuture value of an annuity fv(pmt,int,term)Future Value of an annuity.raterate(fut,pres,term)Interest rate required to turn $PRES into $FUT in TERM periods.termterm(pmt,int,fut)Number of periods required to collect $FUT in payments of $PMT, wheredepositd payments earn at a rate of INT.ctermcterm(int,fut,pres)Number of periods required to collect $FUT from a single initialdeposit of $PRES, at an interest rate of INT.slnsln(cost,scrap,life)Straight line depreciation of an asset that cost$COST when new, can be sold for $SCRAP, and will last for LIFEperiods.sydsyd(cost,scrap,life,per)Sum-of-the-digits depreciation of an asset that cost $COST, can besold for $SCRAP and lasts LIFE, in period PER.ddbddb(cost,scrap,life,per)Double-declining-balance deprecion, otherwise similar to syd().anrateanrate(pmt,pres,term)(undocumented -- documentation from volunteers welcome).antermanterm(pmt,prin,rate)balancebalance(prin,rate,term,period)paidintpaidint(prin,rate,term,period)kintkint(prin,rate,term,period)kprinkprin(prin,rate,term,period)compbalcompbal(print,rate,term)hms_to_timehms_to_time(hours, minutes, seconds)Convert HOURS, MINS, and SECS to a time value (a number of seconds).dhms_to_timedhms_to_time(days, hours, minutes, seconds)Convert DAYS, HOURS, MINS, and SECS to a time value (a number of seconds).time_to_dtime_to_d(time)Return the number of days in TIME. (TIME should be a number of seconds).time_to_htime_to_h(time)Return the number of hours in TIME. (TIME should be a number of seconds).The return value will be in the range 0..23.time_to_mtime_to_m(time)Return the number of minutes in TIME. (TIME should be a number of seconds).The return value will be in the range 0..59.time_to_stime_to_s(time)Return the number of seconds in TIME. (TIME should be a number of seconds).ymdymd(year, month, day)Convert YEAR, MONTH, and DAY to a time value (a number of seconds).Typicly the return value is the number of seconds since January 1, 1970.The conversion assumes the local time zone.ymd_dstymd_dst(year, month, day, dst)Convert YEAR, MONTH, DAY and DST to a time value (a number of seconds).The conversion assumes the local time zone except that daylight savingstime is assumed if dst is positive and stanard time is assumed if DSTis 0. If DST is less than 0, this is the same as ymd(year,month,day).local_yearlocal_year(time)For a time (e.g., returned by now()) return its year in the local timezone.local_monthlocal_month(time)For a time (e.g., returned by now()) return its month in the local timezone.local_datelocal_date(time)For a time (e.g., returned by now()) return its date in the local timezone.local_hourlocal_hour(time)For a time (e.g., returned by now()) return its hour in the local timezone.local_minlocal_min(time)For a time (e.g., returned by now()) return minutes in the local timezone.local_seclocal_sec(time)For a time (e.g., returned by now()) return seconds in the local timezone.local_isdstlocal_isdst(time)For a time (e.g., returned by now()) return dst in the local timezone.The return is positive if dst is in effect, 0 otherwise.local_ydaylocal_yday(time)For a time (e.g., returned by now()) give day-of-year in the local timezone.The return value is in the range 0..364 (0..365 for leapyears)local_wdaylocal_wday(time)For a time (e.g., returned by now()) return day (0-6) in the local timezone.gmt_yeargmt_year(time)For a time (e.g., returned by now()) return its year in Greenwich.gmt_monthgmt_month(time)For a time (e.g., returned by now()) return its month in Greenwich.gmt_dategmt_date(time)For a time (e.g., returned by now()) return its date in Greenwich.gmt_hourgmt_hour(time)For a time (e.g., returned by now()) return its hour in Greenwich.gmt_mingmt_min(time)For a time (e.g., returned by now()) return minutes in Greenwich.gmt_secgmt_sec(time)For a time (e.g., returned by now()) return seconds in Greenwich.gmt_isdstgmt_isdst(time)For a time (e.g., returned by now()) tell if it's dst in Greenwich.gmt_ydaygmt_yday(time)For a time (e.g., returned by now()) the day-of-year (0-365) in Greenwich.gmt_wdaygmt_wday(time)For a time (e.g., returned by now()) return the day (0-6) in Greenwich.get_dateget_date(date_string)Parse a date and return its time (seconds since epoch).The syntax of dates is the same as is understood by GNU tar or GNU date.posix_dateposix_date(posix_date_string)The syntax of dates follows the Posix standard (as understood by GNU date).strftimestrftime(format_string, time_val)Return a string according to FORMAT describing TIME (as returned by now()).The format string may contain these escape codes:This function is implemented by the C library function strftime.The following documentation describes the GNU implementation of strftime.Your version of Oleo may have been built with a different version, inwhich case, you can find documentation in the strftime man page.(In the future this anomoly will be removed).Performs `%' substitutions similar to those in printf. Exceptwhere noted, substituted fields have a fixed size; numeric fields arepadded if necessary. Padding is with zeros by default; for fieldsthat display a single number, padding can be changed or inhibited byfollowing the `%' with one of the modifiers described below. Unknownfield specifiers are copied as normal characters. All othercharacters are copied to the output without change.Supports a superset of the ANSI C field specifiers.Literal character fields:% %n newlinet tabNumeric modifiers (a nonstandard extension):- do not pad the field_ pad the field with spacesTime fields:%H hour (00..23)%I hour (01..12)%k hour ( 0..23)%l hour ( 1..12)%M minute (00..59)%p locale's AM or PM%r time, 12-hour (hh:mm:ss A/PM)%R time, 24-hour (hh:mm)%S second (00..61)%T time, 24-hour (hh:mm:ss)%X locale's time representation (%H:%M:%S)%Z time zone (EDT), or nothing if no time zone is determinableDate fields:%a locale's abbreviated weekday name (Sun..Sat)%A locale's full weekday name, variable length (Sunday..Saturday)%b locale's abbreviated month name (Jan..Dec)%B locale's full month name, variable length (January..December)%c locale's date and time (Sat Nov 04 12:02:33 EST 1989)%C century (00..99)%d day of month (01..31)%e day of month ( 1..31)%D date (mm/dd/yy)%h same as %b%j day of year (001..366)%m month (01..12)%U week number of year with Sunday as first day of week (00..53)%w day of week (0..6)%W week number of year with Monday as first day of week (00..53)%x locale's date representation (mm/dd/yy)%y last two digits of year (00..99)%Y year (1970...)help-with-helpValid help characters are:c -- describe-character-briefly Type a command key sequence; it prints the function name that sequence runs.f -- describe-function Type a function name and get full documentation for that function.F -- describe-formula Type the name of a formula function, and get full documentation.k -- describe-key Type a command key sequence and get full documentation for the function that sequence runs.o -- show-options Print the current settings of all user options.v -- show-variable Type a variable name and get it's binding.^v -- show-all-variables Print a list of all variables and their bindings.w -- where-is Type a command name and get a keysequence that invokes that command.W -- view-wallchart Display a list of keybindings.^W -- print-wallchart Write a list of keybindings to a file.keybindings-wallchart General Utility[[main]]Abort the current command, or partial keysequence [break]Set repeat counts and other prefix arguments [universal-argument]Jane, stop this crazy thing [kill-oleo]Redraw the screen [redraw-screen]Suspend Oleo [suspend-oleo]Call a command by name [exec]Recalculate [recalculate] Help CommandsDescribe key briefly [describe-key-briefly]Describe key [describe-key]Describe function [describe-function]Describe formula [describe-formula]Where is [where-is]When a complex command is being invoked (i.e., when Oleo is promptingyou for arguments), the next command displays documentation for thecommand being invoked. This can often be used to get more informationabout what is being prompted for:Help with command [help-with-command] Cell Cursor MotionEvery window has it's own cell cursor. The most recently used windowdefines the current cell position. There is one cell marker, global to the spreadsheet.Move the cell cursor to a specific address [goto-cell]Set the cell cursor and the cell mark [goto-region]Set the cell mark to the current cell [mark-cell](to set the cell cursor equal to the mark, and clear the mark, use `[universal-argument][mark-cell]').Exchange the cell cursor and cell mark [exchange-point-and-mark](To clear the mark, use `[universal-argument][exchange-point-and-mark]'.) NavigationUnder X, and on some terminals (those following the ANSI standard)arrow keys can be used to move the cell cursor.up [up-cell] down [down-cell]right [right-cell] left [left-cell]Though they have no default bindings, there are also the commands: upright-cell, upleft-cell, downright-cell, downleft-cellSome commands go to extremes but leave their mark (if none is already set):Upper left [upper-left]Lower right [lower-right]Beginning of row [beginning-of-row]Beginning of col [beginning-of-col]End of row [end-of-row]End of col [end-of-col]These commands find the boundries between filled and empty cells. Theyare similar to word motion commands in Emacs.Scan up [scan-up]Scan down [scan-down]Scan right [scan-right]Scan left [scan-left] Scrolling commandsThese are used to change the visible range of a window.Scroll up [scroll-up]Scroll down [scroll-down]Scroll right [scroll-right]Scroll left [scroll-left]These commands are also availble but not normally bound:scroll-upright, scroll-upleft, scroll-downright, scroll-downleft Commands related to macrosOleo can read keystrokes, and can save keysequences in cells for laterre-execution. Start entering macro [start-entering-macro]Stop entering macro [stop-entering-macro]Call last kbd macro [call-last-kbd-macro]End macro [end-macro]Store last macro [store-last-macro]Run string as macro [run-string-as-macro] Global optionsThese are global parameters under user control (e.g. The a0/noa0option that selects a syntax for cell addresses (either A1 or R1C1)).Show options [show-options]Set option [set-option] VariablesVariables are symbolic names for regions of a spreadsheet. Oncedefined, they can be used in cell formulas as region addresses. Theycan also be used as arguments to any command that expects a regionaddress.Set variable [set-var]Show variable [show-variable]Show all variables [show-all-variables] File commandsRead a spreadsheet [find-alternate-spreadsheet]Save a spreadsheet [save-spreadsheet]Merge spreadsheet [merge-spreadsheet]Write region to file [write-region-to-file]By default, if a spreadsheet defines a variable `load_hooks', themacro in that region is executed when the spreadsheet is first read.This behavior can be disabled or reinabled by:Toggle load hooks [toggle-load-hooks]The next command reads a file of commands (such as a .oleorc file):Read commands [read-commands] PrintingWrite an ascii rendition of a region [print-region]Write an embedded postscript rendition of a region [psprint-region]Set page size for postscript printing [set-page-size] PlottingThe command `[graph-setup]' accesses the Oleo interface to gnuplot. Ifyou have gnuplot, you can draw graphs of Oleo data, either on thescreen, or in postscript. Operations on entire regionsCopy region [copy-region]Copy values in region [copy-values-in-region]Move region [move-region]Insert row [insert-row]Insert col [insert-col]Delete row [delete-row]Delete col [delete-col]Delete region [delete-region]Clear spreadsheet [clear-spreadsheet]Window Commands Recenter window [recenter-window]Open window [open-window]Split window horizontally [split-window-horizontally]Split window vertically [split-window-vertically]Delete window [delete-window]Delete other windows [delete-other-windows]Close window [close-window]Goto window [goto-window]Goto minibuffer [goto-minibuffer]Other window [other-window]Cell attribute commandsSet region height [set-region-height]Set region width [set-region-width]Set region protection [set-region-protection]Set region alignment [set-region-alignment]Set region format [set-region-format]Set cell height [set-cell-height]Set cell width [set-cell-width]Set cell protection [set-cell-protection]Set cell alignment [set-cell-alignment]Set cell format [set-cell-format]Set default height [set-default-height]Set default width [set-default-width]Set default protection [set-default-protection]Set default alignment [set-default-alignment]Set default format [set-default-format]Define user format [define-user-format] KeymapsCreate keymap [create-keymap]Set map prompt [set-map-prompt]Bind key [bind-key]Bind set [bind-set]Bind all keys [bind-all-keys]Write keys [write-keys] Editing cellsEdit cell [edit-cell]Set region formula [set-region-formula]Delete cell [delete-cell]Delete region [delete-region]Clear spreadsheet [clear-spreadsheet]From the main keymap, typing almost any printable character begins to edit the value of a cell.These commands provide efficent motion while editing cells:[[read-formula]]Next edit [next-edit]Next edit-set [next-edit-set]These commands set the directions used by `[next-edit]' and`[next-edit-set]': Auto move up [auto-move-up]Auto move down [auto-move-down]Auto move left [auto-move-left]Auto move right [auto-move-right]Auto move up left [auto-move-up-left]Auto move up right [auto-move-up-right]Auto move down left [auto-move-down-left]Auto move down right [auto-move-down-right]Auto move no motion [auto-move-no-motion] Editing in the input areaToggle overwrite [toggle-overwrite]Beginning of line [beginning-of-line]End of line [end-of-line]Backward char [backward-char]Backward word [backward-word]Backward delete char [backward-delete-char]Backward delete word [backward-delete-word]Delete to start [delete-to-start]Forward char [forward-char]Forward word [forward-word]Delete char [delete-char]Delete word [delete-word]Kill line [kill-line]Insert cell expression [insert-cell-expression]Insert cell value [insert-cell-value]Insert rel ref [insert-rel-ref]Insert abs ref [insert-abs-ref]_NON_WARRANTY_ Copyright 1990, 1991, 1992, 1997 Free Software Foundation,Inc.There is ABSOLUTELY NO WARRANTY for Oleo; see the file COPYINGfor details. Oleo is free software and you are welcome to distributecopies of it under certain conditions; see the file COPYING to see theconditions. The help character is ^H [Press any key to begin]_⍀P^$Ë$/  plhd`\XTPLH@<840,($  |xtplhd`\XTPLHD@<840,($  |xtplhd`\XTPLHD@<840,($  |xtplhd`\XTPLHD@<840,($  |xtplhd`\XTPLHD@<840,($  |tplhd`\XTPLHD@<840,($                                  | x p l h d ` X T P L H @ < 8 4 , ( $                                  | t p l h d \ X T P L D @ < 8 0 , ( $                                   | t p l h d \ X T P L D @ < 8 0 , ( $                                 | x t p h d ` \ X P L H D @ < 8 0 , ( $                                   | x t l h d ` \ X P L H D < 8 4 0 , $         |xtlhd`\XTPLD@<840,$  |xtplhd\XTPLHD@<840,$  |xtlhd`XTPLD@<80,($|xtphd`\TPLH@<84,($  |xtplhd\XTPLH@<840,$ |xtpld`\XTPLH@<840,($  |xtlhd`\XPLHD@<40,($  xtlh`\TPHD@84,( |xtplhd`\XTPLHD@<840,(   6 gN_formula_info_forminfo_text___i686.get_pc_thunk.bx___i686.get_pc_thunk.axdyld_stub_binding_helper_stricmp