TimeZero Documentation

Overview

TimeZero is a language environment that is easy to use and can be used to build application specific environments. TimeZero can be used on a few levels.
The higher or application levels can be manipulated very easily by people of many ages. These higher levels could be used to build some type of movie or play acting or other complex scenarios.
The base levels provide a fairly complete programming language. The language can help teach important programming skills such as encapsulation and decomposition.

Language

Liquid Flow

TimeZero is a language that works something like liquid flow. The amount of the liquid can vary, which is shown by the magnitude of the number. The numbers will flow through the different blocks. Normally the liquid runs freely, but can be inhibited by the use of valves (triggers). See also Triggers

Object Based

TimeZero is an object based language. Inheritance is not supported, although composition is.

Built in Tools

There are many built in tools. The tools are for arithmetic, graphics, keyboard, etc.

Value Types

There are a few basic data types. If a value can be interpreted as a number, then it is considered a number. For simple data, no type checking is performed. There is also a Nested Box which is basically the same as a structure and is used to access nested data. Some type checking is performed for connecting nested boxes. See also Nested Boxes

Nested Boxes

Most instrinsic tools will work on values from nested boxes as long as all inputs and outputs to the tool are the same type. For example, the compare tool will trigger the equal output when all values in one nested box are the same as the other. See also Value Types

Initialization

All boxes have a starting value. If a box is referenced publicly and is connected to a box in the parent (containing) tool, then the initialization of this box is done from the box in the parent tool.

Multitasking

Multitasking is the norm. Synchronization can be performed by the use of triggers. There is also a synchronization tool called "Single" that will only move flow if there is no other activity within the tool that the Single tool is nested in. When a box is activated from two different sources at the same time, there will only be one output trigger from the box.

Scope

All connectors have local scope, unless they are given a name. Then the connectors are available only to the parent (containing) tool.

End

The program will end when the flow has flown through the tools and boxes. If there is a loop, then the program may never end.

Arrays

There is a Group function that can contain multiple copies of tools or boxes. There is an input that is used to specify the index to access each copy.

Triggers

Triggers are input connections that are not used to transfer values. They are drawn as an arrow at the top of a tool. They are used to indicate that something should be done. If a trigger is not connected, then the values move through the tool as they are received at the inputs. If a trigger is connected, the tool is not activated until some flow is input to the trigger. At that time, the inputs are read and the tool's functionality is performed.

Applet Switches

The following applet switches are allowed.
toolname=name This specifies which tool to load.
startnode=name This specifies which child tool or box to set as active.
edit=[yes,no] This indicates whether editing is allowed. When set to no, only the values can be changed.
panels=[Graphics, Both, Tool] Setting this to Tool will display the tool only. (Default)
Setting this to Graphics will display the graphics only.
Setting this to Both will display the tools and Graphics.

Editing

Saving Files

Normally Java applets cannot save files for security reasons. To allow the TimeZero applet to save files, the security policy must be changed. There are a few ways to do this.
1. Use the policytool to edit the policies. The policytool is distributed with many java installations and is named policytool.exe.
2. Copy the .java.policy file to the user directory. Under NT, this is something like "c:\winnt\profiles\username".

In addition, the browser may have some security settings.

Animations

The Image tool will display animations. Animations can be created with any tool that will create JPG or GIF files. The image tool will look for animations with a name starting with 1. For example:

GirlLeft
will match:
GirlLeft1, GirlLeft2, etc.

Images can be edited using the Paint tool under the accessories menu. Then they can be saved as GIF, PNG or JPG using software that can capture or convert the images. One example of a tool is the IrfanView software that can be downloaded free off the Internet at www.downloads.com. This tool can be used to save as GIF and to set the background of the images to transparent.
Note that TimeZero does not support animations within a .GIF. Each GIF must contain a single image.

Public Connectors

To make a connector public, simply click on the connector. Then type the name of the public connector. To remove a public connector, erase all characters in the name.

Connections

Connections are made according to the name of the connectors, and are also limited by the type of data. The connector names are matched according to capitalization and each capital letter is used to start a word. The matching uses the number of matching words in the connector name to find the best match. If a compound box is used, then the box types for the connectors must match.

Starting Values

When the tools and boxes are saved to disk, the current values are saved as the starting values. To make no change, simply press the Start button before saving the tool.
Hosted by www.Geocities.ws

1