Previous SectionContents
Document HomeContents
KeywordsNext Section

Purpose

This document provides a Wozterm/Wozix specific language reference for the OVM (Ozterm Virtual Machine) script language. This document is not designed to teach a reader how to program but rather how to program end user scripts for Wozterm and Wozix. It assumes some previous programming knowledge.

Scope

This document covers the OVM language as it applies to end users of Wozterm and Wozix. It does not cover how applications using OVM work or how to build OVM based applications. Note also that some OVM keywords are not available for use by end users of Wozterm and Wozix. These keywords are for the developers of Wozterm / Wozix or other OVM applications. You may find references to some of these keywords in other documentation. This reference covers only those keywords that are available to the end users of Wozterm and Wozix.

Introduction to OVM (Ozterm Virtual Machine)

OVM (pronounced ovum) is a software library written in C++ that provides the language compiler and runtime engine for Wozterm (Windows Ozterm) and Wozix (Wozterm for Unix). For this reason scripts written for Wozterm and Wozix are often referred to as OVM scripts. The file wozterm.ovm distributed with Wozterm and Wozix is a compiled OVM script file. This file handles the communication and response processing when Wozterm / Wozix interact with network elements.

Note that raw OVM script files are just text files that can be edited in any text editor or directly through Wozterm. However, before they can be executed a raw script file must be compiled either to a .ovm file or into the applications memory space. Wozterm takes care of the compilation step whenever a script file is loaded checking it for syntax errors while compiling into memory ready for execution.

The OVM language is heavily based on the Ozterm script language. It differs from Ozterm’s script language primarily in that the OVM language enforces variable typing (typing defines what sort of data a variable can store) and has added new keywords to make the language more versatile. The most important new keywords are: @integer, @boolean, @string, @begin, @end, and @hostcmd. Other new keywords allow end users to define their own procedures and functions and to allow more control over the flow of a script. Also, some existing Ozterm keywords such as @menu and @form have been modified to make them easier to use. From now this document will assume that you are using Wozterm or Wozix and the word script will refer to OVM scripts written specifically for Wozterm and or Wozix.

An example script is shown below. This script demonstrates some of the new features of the language. If you are a user of the Ozterm 6 script language then some parts of the script below such as @check, and @logon should appear familiar. If you are familiar with other programming languages such as Pascal then @for, @begin, and @end should appear familiar. In any case the purpose of the Wozterm script below is to repeatedly enter some commands into an exchange.

! This is an example script that can be executed by Wozterm.
! This script will attempt to enter the commands ALLIP & CACLP
! to the AXE exchange "EXDB" 10 times using NEM to provide the
! connection. Note that to execute this script you will need
! a valid NEM user account. When the script reaches the @connect
! line a dialog box should appear asking for your NEM username
! and password. Note that to run this script under Wozix you must
! modify the @connect line to also include your NEM username
! and password. See the @connect keyword's entry for more details.

@check(off) ! Disable runtime error checking
@mode("NEAS AXE") ! Using NEAS to reach AXE exchanges
@connect("EXDB") ! Connect to EXDB via NEM
@logon ! Get the exchange command prompt
@iferror then stop ! Stop if there have been any errors

! Now loop 10 times entering the commands ALLIP and CACLP to the exchange
@for integer counter = 1 to 10
@begin
! The following ALLIP is an example of an implicit host command
ALLIP;
! The following CACLP is an example of an explicit host command
@hostcmd("CACLP;") ! This an explicit host command
@end

@logoff ! Dismiss the exchange command prompt
@disconnect ! Drop the connection
Previous SectionContents
Document HomeContents
KeywordsNext Section



This publication has been prepared and written by Telstra Corporation Limited (ACN 051 775 556), and is copyright. Other than for the purposes of and subject to the conditions prescribed under the Copyright Act, no part of it may in any form or by any means (electronic, mechanical, microcopying, photocopying, recording or otherwise) be reproduced, stored in a retrieval system or transmitted without prior written permission from the document controller. Product or company names are trademarks or registered trademarks of their respective holders.

Note for non-Telstra readers: The contents of this publication are subject to change without notice. All efforts have been made to ensure the accuracy of this publication. Notwithstanding, Telstra Corporation Limited does not assume responsibility for any errors nor for any consequences arising from any errors in this publication.