Retrocomputing
Dynacalc box for Dragon 64

Dynacalc

Dynacalc was a spreadsheet application created by Scott Schaeferle, Computer Systems Center, Chesterfield, USA around 1980. Dynacalc was ported to several operating systems including OS-9, FLEX and Disk Extended Color Basic on the TRS-80 Color Computer.

For OS-9, several versions were sold of which two have been preserved. Version 4.7:3 for Dragon 64. This version required the screen to be in "go51" mode - 51 columns by 24 lines. This took 6 KB extra out of the available RAM. The Color Computer distribution was version 4.8:5. It has extra functions for Boolean operations and the ability to get input from a joystick or mouse. It will only work for Coco 3 as it reads the window size from the device driver. It is configured for a 32x16 screen to fit worst case, and the labels are shortened to match.

Dynacalc 4.7:3 is available from the The DRAGON Archive. Dynacalc 4.8:5 can be downloaded from the TRS-80 Color Computer Archive.

Terminals

Dynacalc loads a configuration file called dynacalc.trm into memory at startup. This file contains the control sequences for the terminal. For the Dragon 64 edition, the install.dc did not allow the user to change the sequences, but it is possible to patch the file. I have created a configuration file called ansi.cor for those, who want to use Dynacalc through an 80x24 ANSI terminal. This was fairly trivial as the work had already been done and the terminal driver was embedded in the Dragon dynacalc application. However: The cursor keys on an ANSI terminal sends three character sequences beginning with an Escape ($1B). Dynacalc can only handle one character sent by any key. The ansi.cor therefore maps left to '[', right to ']', up to '{' and down to '}'. The other key definitions are unchanged. Pressing a cursor key will most likely modify a cell.

To make it work with an ANSI terminal, download the ansi.cor file, rename it to dynacalc.cor and place it in your execution directory. You then run install.dc to configure the printer and create a bespoke dynacalc.trm file. If you have no need for printer configuration, then just copy dynacalc.cor to dynacalc.trm.

What is a "COR" file?

Dynacalc was developed for FLEX before OS-9. In FLEX the distribution disk has a "DYNACALC.COR" file called the core file. This is the unconfigured dynacalc application. The FLEX INSTALL tool would take a TRM file as argument, patch the COR file and then rename it to DYNACALC.CMD. In OS-9 the configuration is made to a data file, which also contains the startup code and help texts. This is more flexible as the same dynacalc program can be used for different terminals and the help texts can be discarded. For some reason the data file is also called a TRM file even as the same suffix is used for terminal patch files.

TRM files

The install.dc program for Dragon 64 had been modified by the author to not ask about configuration of the terminal. Some functionality, however, has been left in, but removed from the documentation. If you provide the name of a file that ends with '.TRM' as an argument, then install.dc will first load the dynacalc.cor file, then the TRM file, which it will overlay at the location of the terminal sequences. It will proceed to ask the user if anything should be changed and finally create a new dynacalc.trm file.

Example:

install.dc wordpak.trm

For best results, first download the ansi.cor and rename it to dynacalc.cor. The ansi.cor has help texts fitted for 80 columns and the standard startup banner.

Key assignments

Here are the standard key assignments for several popular CRT terminals, as set up in the supplied .TRM files. Any of these assignments can be changed by answering appropriate questions in the INSTALL utility.

Modelupdownleftrightbackspchome
TRS-80 GO51+++ *++↑ *
SWTPC CT-82++++backspchome
SWTPC 82xx++++backspctop
SWTPC 8212W++++backspctop
Hazeltine H-1400cntrl-Ucntrl-Dcntrl-Lcntrl-Rruboutcntrl-T
Hazeltine H-1420{ *} *[]backspccntrl-T
Hazeltine H-1500{ *} *[]backspccntrl-T
ADDS Viewpoint+ *+ *+ *+ *backspchome *
Heath H-19{ *} *[]backspccntrl-T
Micro Term ACT-IV+ *++ *+ruboutsend
LSI ADM-3A{ *} *[]rubhome *
ANSI standard{ *} *[]backspccntrl-T
FOCUS system++++rubouthome
Televideo 912++++rubouthome
ADDS VPT 3A++ *+ *+ *+ *delhome *
Perkin-Elmer 550{ *} *[]backspcdel
Infoton 100{ *} *[]delcntrl-T
SOROC IQ-120++++delcntrl-^ *
Modeljumpflusheditoverlayget addr
TRS-80 GO51→ *cntrl-Ccntrl-Ecntrl-O↓ *
SWTPC CT-82^cntrl-Ccntrl-Elflf
SWTPC 82xx^cntrl-Ccntrl-Eformform
SWTPC 8212W^cntrl-Ccntrl-Enxtpagnxtpag
Hazeltine H-1400:cntrl-Ccntrl-E;;
Hazeltine H-1420`cntrl-Ccntrl-Etabtab
Hazeltine H-1500^cntrl-Ccntrl-Etabtab
ADDS Viewpoint`cntrl-Ccntrl-Etabtab
Heath H-19`cntrl-Ccntrl-Etabtab
MicroTerm ACT-IVlfcntrl-Ccntrl-Etabtab
LSI ADM-3A^cntrl-Ccntrl-Elflf
ANSI standard`cntrl-Ccntrl-Etabtab
FOCUS system\cntrl-Ccntrl-E;;
Televideo 912\cntrl-Ccntrl-Etabtab
ADDS VPT 3A+`cntrl-Ccntrl-Etabtab
Perkin-Elmer 550lfcntrl-Ccntrl-Etabtab
Infoton 100\cntrl-Ccntrl-Etabtab
SOROQ IQ-120`cntrl-Ccntrl-Etabtab
                  +  =  use arrow key
                  *  =  shifted key
                  ^  =  caret character
                  `  =  grave accent character