SPECIFICATIONS This is a multi-tasking spreadsheet designed to take full advantage of the Amiga multi-tasking environment. Each spreadsheet consists of a number of "tasks" running independently. (A task on the Amiga is an independently running program.) The tasks in each spreadsheet communicate with each other giving the appearance of a single large program, and increasing the power and flexibility offered to the user. Each spreadsheet or "Worksheet" consists of: 1. A driver task. The driver task is the controller of the other tasks. 2. A "Cell" task. The cell task manages all of the data, or cells, of the worksheet. This task handles all of the data storage in "RAM", all of the disk I/O, etc. It does not display any of the data to the screen, it only manages data according to commands that it receives from the windows. 3. A number of "Window" tasks. Each window task creates a single window on the display screen. If four windows are open, then there are four window tasks open. The window allows the user to view and manipulate the data in the cell task. If the user changes the information in one window of the worksheet, then that change will immediatly apply to all windows of the worksheet. Haicalc will only run under Kickstart 1.2. Haicalc requires at least 512k to run, and will run in either CHIP or FAST memory. Cell Memory is allocated dynamically using sparse matrix technology for highly efficient memory usage. Haicalc does not require that memory be "reserved" for its use, cells are allocated from the system free list as they are created. The memory is returned to the system free list as cells are deleted. NOTE that each cell only allocates as much memory as is needed to hold the information in the cell. This means that long text strings will take up more memory than will numbers or short text strings. Formulas take up as much storage as the equivalent length text string. MEMORY LIMITATIONS The following numbers were determined using an Amiga 1000 running the Workbench under Kickstart 1.1. The system had 2 floppy disk drives. The exact number of cells that will fit into availiable memory will vary depending upon configuration and the contents of the cells. This table lists two types of tests, the first case has each cell filled with the number "1", the second case has each cell filled with an identical 50 character label. Using larger numbers, shorter labels, or longer labels will change the number of cells that can be allocated on your system. Total | Availiable | maximum number of | maximum number of Machine | Cell | cells filled with | cells filled with a Memory | Memory | a single digit | 50 char text string ----------+------------+--------------------+-------------------- 512K | 222,000 | 7,100 | 2,900 1 MEG | 746,000 | 23,900 | 9,600 1.5 MEG | 1,250,000 | 37,000 | 15,900 The memory requirement for a single cell that contains a single digit number is 32 bytes. The memory requirement for a cell with a 50 character text string is 80 bytes. DISK FILE SIZE The following benchmarks use situations similar to those given above. The first uses 1000 identical cells containing the number "1". The second uses 1000 identical cells containing a 50 character label (51 character if you count the leading single quote). Description File Size ----------- --------- 1000 cell, single digit per cell 14K 1000 cell, 50 char text per cell 64K Note that it is possible to create a file in memory that is too big to fit onto a floppy disk. For instance, using the cell data above from a 1.5 MEG machine, the 16,600 cell spreadsheet with 50 characters per cell would take up around 1063K of disk space. This will not fit onto an 880K floppy disk! Users of such large files must have alternate storage, such as a hard disk. To compute the aproximate file size use the figures of 14 bytes per cell if the cell has a single digit number, and 64 bytes per cell if the cell has a 50 character label. Only cells that contain values will be stored to disk. ADDRESS SPACE Haicalc allows for a virtually unlimited cell array. The last available cell in the worksheet is MHD9000. This provides a 9000 by 9000 array of cells (i.e. 18,000,000 cells). In reality, the number of cells available to the user is limited by memory and by disk size. NUMBER PRECISION Numbers in Haicalc are represented as single precision floating point. This means that a number will only be accurate up to 8 digits (aprox). For instance, if the number 1234567890 is entered, 1234567880.63 will be displayed. Much larger numbers can be represented, however only the first 7 or 8 digits will be accurate. Note that all calculations are done with floating point numbers. Rounding errors are possible, and may cause a loss of accuracy, especially if many calculations are performed. WORKBENCH INTERLACE Haicalc will operate in the Amiga's Interlaced Workbench. This will allow up to 44 rows of data to be viewed in a single window. COPY PROTECTION Haicalc is not copy protected. The user is encouraged to make back-up copies of the distribution disk for their own protection. We hope that the reasonable price of this program will discourage illegal copying. Support your local software developer by purchasing copies of the software that you find useful.