This page is under reconstruction every day. It will be updated as I advance.
I figure I will get it done faster if I put it up unfinished. 2/20/25

Note: I enjoy working with numbers (this page) and playing with words (this link).


Table /Maker Five is Alive  Email: roizen@ix.netcom.com
Math recipes with fresh ideas and home delivery!

  

Sketch from Programmers At Work, Microsoft Press, (c) 1983               
prIHA Box

 
                                   




                          


References: https://en.wikipedia.org/wiki/Peter_Roizen       https://en.wikipedia.org/wiki/T/Maker

Links for later:  The Download Page      Tutorial Videos      Example Tables

History: This product has roots in one I created in 1979 (the good ole days) and a modernization thereof in 1991. In 2020 my Windows machine updated itself and destroyed the partition where I could still enjoy these items. Given my history, I was not about to jump ship to a normal  spreadsheet. That would be a betrayal of decades of ideas, fond memories, and an unanticipated level of success. So, I decided to resurrect and revamp the calculating abilities that ignited my fire. I also hope to answer for visitors and myself a nagging question that has haunted me since Day One. WTF is this thing?!

The Normal: The basic unit of work in spreadsheets is the formula.  It calculates one result from other numbers. Particular values are referenced by a name which is their location in a grid (e.g.,  B7, X5, Z23).  The formula can use parentheses to establish an order of calculation or to encase parameters for special functions. What they got there is not a secret. It's called (sometimes cursed) Algebra

T/Maker: It works with a built-in calculator. This calculator dwarfs the power of the best of the best calculators ever held in anyone's hand. It accepts instructions written in arithmetic across two dimensions. It can save for you and recall any instruction you ever gave it. D
epending upon your generation, the screen and syntax might remind you of the blackboard, green board, whiteboard, or screen where your 4th grade teacher wrote out multiplication tables. It's where you learned that six times seven was and remains 42.

The Calculation Trail: The unit of work in T/Maker is the calculation trail. It lays out a journey that can travel anywhere around a screen while pushing buttons on the calculator and extracting data. A T/Maker table can have many such trails, but each is put on a separate screen. A particular trail can be restarted numerous times from different locations. The trails screen also displays those designated starting points. The trail, itself,  is composed of steps. Steps are numbered to establish the order they are called into play and hold the details of the math to be done. Each step is located over a cell of the spreadsheet. The step may be located there to facilitate interactions with that cell or just because it was a nice visual location to display some math. A calculation trail,
unlike a formula, can calculate and place multiple values anywhere in the grid. Probably most spur-of-the-moment calculations are done with just one trail.

My
task for a number of the following screens is to explain some basics of the calculating syntax. There are choices to be made that will have an effect in terms of clarity and degree of generality. There is no one style that always works best. Designing trails and steps can become an art form. Some of you may stick to straightforward problems with straightforward solutions while others can attack most any numerical process with some robust head scratching and determination.

Positional Data References: Below is a sample trails screen with a simple trail on it. In this screen shot the T/Maker "Lite" math toolbar is shown. There are many toolbars for many purposes. A trails screen has two cells for each column. The green (left) cell is used to enter calculations and the white (right) cell holds the data and text that would be printed or presented on other screens. Everything can be changed. You can click on green or white cells to edit them. There are also ways to create special cursors that can be clicked into place.



This trail has three steps shown across row 2. The first step shows an exclamation point ! operator. This operator enters a value into the calculator. It typically starts a new calculation. The operator can be followed by one of a variety of operands which indicate the value to be entered. In this case, no specification is made. That, however, is also a specification of sorts! When an operator like this one has no corresponding operand, the value to be used is the value in the white cell. In this case that's 1. The second step uses the multiplication symbol * which again has no corresponding operand. So the value in the calculator is multipled by the adjacent value, that's 2. The final step uses the equal sign = operator. This operator fetches the value currently in the calculator, places it somewhere, and sets the calculator to zero. Without an operand, the calculator value is put in the adjacent white column.

The Apply Button: Using the Apply Button (darkened green option to the right on the menu bar) I obtained a similar looking cursor and clicked it over some green cells so that this trail would be used additional times, starting from different locations, on different data. In all instances I wanted to do a simple multiplication across two columns and put the result in the third. This approach of putting the symbols next to the associated values can be applied
  restarting at any cell without confusion. It's all driven by the relative position of steps to the starting point. No mention of specific rows, columns, or cells is made in the trail itself. Also, a momentary glance three months later is all that's needed to remember what's going on.

Constants: Constants can be placed into trails without affecting their gereralizability (long word!) to use at other locations. These values are housed with the trail and not in cells. There are certainly trails which are never intended to be used more than once making these concerns no importance. But T/Maker is also used to make tables where some rows and perhaps some columns share a commonality of purpose and calculations required. I have on occasion made a one off set of calculations and then decided I would like to do a second and perhaps third case underneath the first one.



Syntactical Glitch: There is one related glitch in T/Maker's trail syntax. You cannot enter a negative number as an operand. It will be parsed as the subtraction operator followed by a positive operand and usually generates an error message.  Example:  ^-3  (a value to the negative power 3). You must enter the negative number using the underscore character rather than the minus sign (dash) to get the desired result.  Example:  ^_3

Memories: There is another specification that is often used as the operand following an operator. It is a memory name. T/Maker can create memories with names you choose on the fly. With these you can store and fetch values anywhere in a step or across steps or even trails. This feature is often used to store intermediate results along the way to a final value. Memory names start with at least two characters and the first three characters (when longer) should not match a T/Maker function name. You can also use digits after the first two letters. Upper and lower case are not distinguished from each other.

Below is a trail that calculates the hypotenuse of a right triangle. Remember, a-squared + b-squared = c-squared? The first step multiplies the height by itself (a-squared) and stores that value in a memory named aa (a suggestive name for the value). The second step mutiplies the width by itself and then adds the stored value aa. Thus the calculator now holds a-squared + b-squared. The third step uses a function which replaces the value in the calculator with its squareroot. According to none other than Pythagorus, that would yield the length of the hypotenuse. And while we are refreshing our geometry, the sum of the triangle's angles would be 180 degrees!



Memories are stored and fetched from places that have nothing to do with cell locations. They can, like constants, be freely used in trails without any degradation in the ability to apply the trail starting from other locations. The most used functions change the value in the calculator which also does not cause a problem. You can see above that the values calculated are correct for all four usages. Some special functions such as calculating a mortgage payment require that you prefill some memories of a given name with required parameters. The manner in which you fetch a value to load in a memory could raise a reuse issue for the trail if it explicitly drops the name of a column or cell.

Column Names:  Sometimes placing steps on top of the cells for which data is needed can become tedious and confusing. This is especially true if one calculation requires data from a variety of locations or multiple steps need the same data.  More often than not, this happens on a row where a value to be calcuated requires other values in that row. To load or place such a value you can give the letter corresponding to the appropriate column as the operand and put that instruction in any column on the row. That is exactly what is done below. The instructions needed to compute the value for a column are put in the column. The solution clearly explains itself.



I also clicked on a button that brings up a list of all steps in a trail. This box can be lengthened vertically or horizontally. With it you can review the complete details of each step and initiate an edit on any of them. For trails with lengthy steps or a large number of steps, it is a very handy feature. While this trail can be applied to other rows (a click with the Apply cursor on C5 for the next one) it must be restarted in the same column (C). If started from another column, the column name operands will not be adjusted in any way and continue to refer to the same columns,  whereas the = signs with no operands will place their values in shifted columns. The result would be a completely expected mess. Trails covering such a width are rarely used in side by side applications.

If you should happen to insert or delete a column from the grid, steps that reference columns by name would be modified accordingly. A reference to column D would become a reference to E if a column were inserted to the left of column D. I
t would would become a reference to column C, if a column were deleted to the left of it. Columns added or deleted to the right of column D would leave refereneces to column D unchanged.

CELL NAMES: It is amusing that cell names got left for last when they are the most common way to reference a value in that normal spreadsheet. I did it, of course, on purpose. T/Maker does discourage the use of cell names. Even so, these
names can be used as operands for operators that require one. The name of a cell is the letter of the column followed by the number of the row. As usual, upper and lower case are not distinguished from each other.