/SS

Simple Spreadsheet is a DOS productivity program

Primary LanguagePascalGNU General Public License v2.0GPL-2.0

Welcome!

Simple Spreadsheet is a terminal-based spreadsheet program for DOS made in Turbo Pascal 7. It was made for an end-of-year school project.

It supports mathematical formulas, charts, internationalization and printing using a serial printer.

Usage

SS has three modes of operation: Normal mode, cell value assignment mode and command mode.

  • Normal mode is used for formatting, movement and editing between cells;
  • Cell value assignment mode is used to insert or edit a value in a cell. Press ENTER while in normal mode to start, and ENTER again to finish;
  • Command mode is used to enter commands that operate on a file (loading, saving, discarding), formatting cells, plot charts, print documents, or other program operations like changing language or exiting. Press ESCAPE while in normal mode to start, ENTER to execute command or ESCAPE to cancel and go back to normal mode.

Cells are identified by their column name and line number (ex: A12, d4)

Keys

Normal mode

Key Description
Cursors Changes selected cell
ENTER Enters cell value assignment mode
. Copies cell
- Pastes cell
Z Changes selected cell's text alignment to the left
X Changes selected cell's text alignment to the center
C Changes selected cell's text alignment to the right
W Increases selected column's size
E Decreases selected column's size
S Increases selected line's size
D Decreases selected line's size
O Changes currently selected background colour
P Changes currently selected text colour
Q Changes currently selected cell's background colour to the one specified by the Select command
A Changes currently selected cell's text colour to the one specified by the Select command
K Reverts to default colours (light gray for text, black for foreground)
ESC Enters command mode

Cell value assignment mode

Key Description
Cursors Changes character position
ENTER Finishes editing and returns to normal mode
ESC Leaves cell value assignment mode and returns to normal mode

Command mode

Key Description
Cursors Changes character position
ENTER Executes command
ESC Leaves command mode and returns to normal mode

Commands

Use ESCAPE to enter command mode. To execute a command, write it down along with its parameters and press ENTER. SS supports the following commands:

Name Parameters Description
New Creates a new file
Load <filename> Loads <filename>
Save <filename> Writes file into <filename>
Select Textcolour <colour> Selects <colour> for foreground text applied when pressing A
Select Backgroundcolour <colour> Selects <colour> for the cell's background applied when pressing Q
Select Change Textcolour <colour> <cell> Selects <colour> for the <cell>'s foreground text
Select Change Backgroundcolour <colour> <cell> Selects <colour> for the <cell>'s background
Select Change Width <cell> <size> Changes <cell>'s width to <size>
Select Change Alignment <cell> <alignment> Changes <cell>'s text alignment
Graph <first_label_cell> <last_label_cell> <first_value_cell> <last_value_cell> [chart_type] Plots a chart using as labels the specified by the interval <first_label_cell> and <last_label_cell> and using as values the cells specified by the interval <first_value_cell> and <last_value_cell> using the [chart_type]
Help Shows the help screen
Print Prints the spreadsheet
Translate Opens the menu showing the various supported languages
Quit Exits the program

Operators

SS supports various operators. To use them, prefix a cell value with the '=' character.

Operator Precedence Type Description Example
: 1st Sum Sums all cells between first and second operands =a1:a10
* 2nd Multiplication Multiplies two cells =a1*b1
/ 2nd Division Divides a cell by another =a1/a2
+ 3rd Addition Adds two cells =c1+c2
- 3rd Subtraction Subtracts two cells =d1-d10
> 4th Relational > Compares two cells, returning 1 if the first cell has a higher value than the second or 0 otherwise =a1>a2
< 4th Relational < Compares two cells, returning 1 if the first cell has a lower value than the second or 0 otherwise =a1<a2
= 4th Relational = Compares two cells, returning 1 if the first cell has a value equal to the second or 0 otherwise =a1=a2
! 4th Relational ≠ Compares two cells, returning 1 if the first cell has a different value compared to the second or 0 otherwise =a1!a2
& 5th Logical AND Returns 1 if both operands' values are different than 0, or 0 otherwise =a10=a12&c10=c12
| 5th Logical OR Returns 1 if any of the operands' values are different than 0, or 0 otherwise =a10=a12|c10=c12
~ 6th Rounding Rounds results to the value specified by the second operand =(c1+c2)/a5~2

Reference values

Alignments

Left Center Right
Left aligned text Centered text Right aligned text

Colours

  • Black
  • Blue
  • Green
  • Cyan
  • Red
  • Magenta
  • Brown
  • LightGray
  • DarkGray
  • LightBlue
  • LightGreen
  • LightCyan
  • LightRed
  • LightMagenta
  • Yellow
  • White

Chart types

Type Name
▄▒█ Bars
_/¯ Lines