Client Write-up Home Ok Accounting Systems and Software


Excerpts from the THEOS Developer's
Forum regarding Theos version 5


THEOS Version 5

This is the next step in the evolution of the THEOS Operating System. It includes support for Long File Names (LFN), a new file system (called Large File System or LFS), integration of networking into the OS, a new Dos disk driver (supporting LFN), a new CD-ROM driver (supporting LFN), ability to boot from LBA devices (no more worry about the 1024 cylinder limit), sharing of PCI interrupts, new window manager, sound support, ability to boot from LS-120 or CD-ROM,


THEOS Network File System (TNFS)

This is the network file system mentioned the "White Papers" a few years ago. TNFS uses standard protocols of CIFS, NetBIOS, SMB, etc. This means that a THEOS client can access files from a THEOS server, or from Windows 95/98/NT or from *nix running Samba. It also means that THEOS can be a file server for THEOS, Windows, or *nix. The TNFS client comes bundled with Version 5. The server is a plus pack

You access files from a remote server in one of two ways: by mapping a drive letter to a network share, and then using normal file name syntax with the colon drive at the end; or by using Universal Naming Convention (UNC) and specifying the computer and share name as well as the file to access.

For example: if computer "Alpha" has a share name "Files" to a directory path on that system, and you wish to open the file "cust.mast"; you could:
Attach X //Alpha/Files
List cust.mast:X

Or you could:
List //Alpha/Files/cust.mast

The normal method will be to use drive mapping, but you might wish to use UNC for infrequently accessed servers.

The Attach command has been modified to support TNFS, and there is a NET USE command that you could use to define a "Use" of a network resource that might have a password.

On the server side, you simply define the share names you wish to use with the NET SHARE command and start the server. The setup is done once or whenever you wish to add or change share names. A typical setup might be:

Net Share SYSTEM /:S "" RO "Files on the system account"
Net Share ACCOUNTING ACC\:A "password" RW "Accounting application"
Net Share DEVELOP SOURCE\ACC:S "password2" RW "Accounting sources"

This would define three share names, which could be accessed from the client as:

Net Use //Alpha/Accounting "password"
Net Use //Alpha/Develop "password2"

Attach A //Alpha/Accounting (Public
Attach B //Alpha/Develop (Public
Attach C //Alpha/System

A THEOS client to a THEOS server can access all file types (libraries, programs, indexed, keyed, direct and stream) and access can be at the file or record level.

A THEOS client to a non-THEOS server can only access stream files. This is because the non-THEOS server does not "know" how to deal with THEOS indexed files, etc.

The server system can define the type of access (Read Only, or Read and Write), and whether the access requires a password or not.


THEO+Net Version 5

Since the basic TCP/IP and Ethernet and PPP functionality will come as part of the O/S Version 5, the new THEO+Net will consist of servers for:

It is still undecided whether the Mail client (THEO+Mail) and the Web Browser Client will be part of the O/S or part of THEO+Net.


THEO+DataBase (TDB)

TDB is a client/server system available with THEOS Version 5. It is a database maintenance and access system with MultiUser BASIC and C language application program interfaces (APIs) that allows you to use new or legacy databases on your own computer or on a remote computer accessed over a LAN or WAN such as the Internet.

THEO+DataBase APIs

A complete set of functions is provided for the C language TDB API.

For the MultiUser BASIC language API there are two methods. A toolkit-like interface is provided for MultiUser BASIC 2.0 application usage. The new Basic will have built-in statements and functions supporting TDB.

THEOS SQL

The command-line and menued interface for report generation is an SQL client application. (SQL is pronounced "sequel".) This THEOS SQL (TSQL) conforms to the ANSI 92 standard for SQL, which allows English-like sentences to be used to specify the report criteria and format.

TSQL sentences or scripts can be defined and saved as files. These scripts can then be invoked from within a BASIC or C application program to create the desired report.

Alternately, you can use the TSQL client application in its menued user interface mode and create a customized report or create a new TSQL script that is executed immediately or saved for subsequent usage.


New Object Basic

We are designing a "new basic" language. This language builds upon the existing MultiUser BASIC and will accept all of the statements and functions that exist in the current version of MUB.

The current MultiUser BASIC will continue to be marketed and maintained with the new basic being a separate product.


The new basic extends the existing MUB by providing new variable types in addition to the existing string, integer and floating point variables. The new variable types include:


Many of the commonly used SYS.ENV$ functions and the common toolkit functions will be provided as intrinsic functions or objects. The existing SYS.ENV$ and toolkit functions will remain for backward compatibility.


New variable declarations to allow a variable name to be typed without adding the $ or % suffix. For instance:

DECLARE CUSTOMER.NAME, ADDRESS, CITY AS STRING
SHARED MONTH.TOTALS(12) AS CURRENCY


The new basic will allow an array to be redimensioned after program execution begins. For instance:

DIM NAMES(20) AS STRING
...
REDIM NAMES(300)

Along with the ability to redimension an array, any array can be dimensioned with an index base other than 0 or 1. For instance:

DIM YEARLY.SALARY(1970 TO 2010)

The above declaration would dimension YEARLY.SALARY to have 41 elements indexed from 1970 through 2010.

New functions to determine the upper and lower indices of an array. In the above array, the function UBOUND(YEARLY.SALARY,1) would return 2010 and the function LBOUND(YEARLY.SALARY,1) would return 1970.


New programming structure: FUNCTION. This structure is a separate code routine that has local variables and returns a value.


New OPTION DECLARE, that, when used, means that all variable and array names must be declared prior to referencing them. The primary advantage of this option is that the program editor and the program compiler will detect a reference to a variable or array name that was spelled incorrectly and doesn't match any of the variable or array names that you said you were going to use.


New function to return one of two values depending upon the value of an expression.

IFF(expression, true-exp, false-exp)


The most significant feature of the new basic is that it is an object-oriented programming language. This new capability will be provided in addition to the capabilities of the existing MultiUser BASIC language.

For instance, a program could use the existing WINDOW statements or it could use one of the New Window Manager objects to display a list menu on the screen. A large collection of standard screen-type objects will be supplied with the new basic. These objects include things like control buttons, list boxes, combo boxes, check boxes, option buttons, labels, etc.

Also, the interface to TDB (THEO+DataBase) will be provided as a collection of object classes.

Included with the new basic is the ability for you to define your own classes of objects. This is an integral part of any object-oriented programming language. For instance, with this ability you can define a class for an invoice. The invoice class would define all of the properties of an invoice on your system including such things as the invoice number, customer, invoice dates, invoice total, the individual line items of the invoice, etc. It would also define the methods for using the invoice class such as: get first invoice, get next invoice, get prior invoice, write new invoice, update existing invoice, display invoice, print invoice, etc. After defining this invoice class any program could use the invoice class and, with only a few lines of code, access and maintain the invoices in the system.

One of the most important features of an object-oriented language is that an object (for instance, the invoice above) is maintained by the object itself, not the individual programs using the object. Thus, all programs using an object of a certain class will be consistent. Any change to the way that a class of objects is maintained is immediately passed through to all programs using the object by merely recompiling the programs.

For instance, if the customer data base used by the invoice class was initially coded to use a local database (one that resides on the same machine as the program) but was later changed to use a network database (TNFS) or a THEOS DataBase (TDB), a change to the invoice class is spread across all programs that use that class of object.


Another significant change in new basic compared to the existing MultiUser BASIC is the integrated development environment. The new basic uses a single program that, when invoked, provides

The full-window editor will be "WindoWriter-like" but very specific to the new basic. It has context-sensitive syntax analysis using colors to show the syntax and structure of the program. Included with this editor is pop-up help windows and a menued interface to provide assistance for programming with the powerful but maybe infrequently-used features of the language.

The screen object editor provides a WYSIWYG interface for designing the user interface of the program. It provides an easy but powerful method of specifying the screen objects that the program uses and lets you edit (move, size, change the attributes of, etc.) the various objects used by the program. It is menu-driven and/or mouse-driven for convenience and flexibility. By simply double-clicking on an object you will be presented with a program code window that you can use to write or modify the program code you want to handle the events associated with the object.

The object class editor is similar to the full-window program editor except that it is customized to the particular needs of an object class definition. This makes it easy to define a new class definition or modify an existing definition.

The source-level debugger is one of the more powerful features of the integrated development environment. With this feature you can easily debug a program by running the program on one screen and tracing the execution of it on another screen or session. Much more powerful than a simple interpreter it allows you to: monitor, change the value of and print variables; set multiple breakpoints throughout the program; pause the program and make changes to the source and then continue execution with the modified source; etc.


CD-Writer

The THEOS CD-Writer utility allows you to create and maintain CD-ROM discs with a CD-R or CD-RW drive.

This utility can be used by developers and dealers to create distribution masters of their applications or it can be used within your application for creating CD-ROMs of archival storage for important customer data.


SDK Subscription Program

THEOS Software Corporation has consistently sought new ways to improve our support to our Value Added Resellers' development efforts. We know that everyone can benefit when we provide better service and additional product to our VARs. The THEOS SDK Subscription Program is designed to provide you with further innovations, enhancement and technical support for your operating system and its ancillary products. It is this "we grow as you grow" philosophy that has lead to the development of the THEOS SDK Subscription Program.

As with most other software providers, there is a fee. The SDK program fee has been structured to pay for itself, almost immediately, in both services and product, without putting an undue burden on you or your end users.

SDK Program Benefits

"What if I'm not ready to sign up yet?"

Those VARs choosing not to subscribe yet, will keep their 30% dealer discount prices through December 31, 2000. They will also receive e-mail technical support for as long as THEOS continues to support their older releases. In addition, they will continue to be able to download products from the Web site, and have read-only access to THEOS' Internet Forum.


Enough Already!

Wow! I only meant to say a few words. Sometimes I go on and on. I think there is enough "meat" here to stimulate discussion.

Tim Williams
President
THEOS Software Corporation