Autrey-Hunley@Sri-Kl@sri-unix (08/31/82)
From: Gene Autrey-Hunley <Autrey-Hunley@Sri-Kl> Home address: 1123 E. 53 St., Chicago, IL 60615 Telephone: (312)565-2222 work, (312)752-3432 home Via: Sri-Kl; 29 Aug 82 16:45-EDT Via: Brl; 30 Aug 82 11:49-EDT Via: Brl-Bmd; 30 Aug 82 12:26-EDT Via: Brl; 30 Aug 82 22:20-PDT I'm looking for information about the internal data structures that Visicalc uses to represent its spreadsheet in memory. Either direct information or references to published information will be useful. I am particularly interested in how Visicalc manages memory for the spreadsheet. For example, from its user manual I know that it keeps the spreadsheet rectangular, with the rectangle size determined by the largest row and column indices ever actually been used. An 'empty' item in the active rectangle takes 2 bytes. For Apple II, Visicalc version 1.35, eleven decimal digits of accuracy can be stored if needed. Computations are apparently done using (packed) decimal arithmetic and done with a guard digit so that the result can be rounded before being stored into an item. My experiments show that exponents range from E-66 to E+61. (Strange asymmetry.) Column widths can vary from 3 to 37 characters. (37 may be an artifact of the 40 column display on the Apple II family.) A spreadsheet item can contain a value, which is a number, a string, or a repeating string. An item also has a calculation formula that defines how its value (or string, in the case of graph format) is determined. Optionally, an item may have display format associated with it. If you can provide any insight about the internals of the Visicalc spreadsheet representation, thanks in advance. I find it a fascinating piece of software. --Gene -------