Irie Pascal User's Manual (OS/2 Edition)

Author: Stuart King

Version: Irie Pascal Version 2.1

Page: 1

TABLE OF CONTENTS

1 What's New In Version 2.1
    1.1 New built-in types
    1.2 New built-in functions
    1.3 New built-in procedures
    1.4 System include files
    1.5 Miscellaneous additions
2 Getting Started
    2.1 Getting help
    2.2 Installing and uninstalling
    2.3 A hello world program
    2.4 A hello world program (CGI version)
3 How To...
    3.1 How to get help
    3.2 How to buy
    3.3 How to contact Irie Tools
    3.4 How to create programs
        3.4.1 Creating new programs
        3.4.2 Opening existing programs
        3.4.3 Compiling programs
        3.4.4 Running programs
    3.5 How To Use Databases
        3.5.1 Connecting To Databases
            3.5.1.1 Connecting to ODBC databases
            3.5.1.2 Connecting to MySQL databases
        3.5.2 Executing Database Commands
            3.5.2.1 Using the execute method
        3.5.3 Querying Databases
            3.5.3.1 Using the recordset object
    3.6 How To Program Sockets
        3.6.1 Programing Sockets
    3.7 How To Distribute Irie Pascal Programs
        3.7.1 Distributing Irie Pascal programs
4 The Command-Line Tools
    4.1 The Command-Line Compiler
        4.1.1 Using the command-line compiler
        4.1.2 Compiler Options
            4.1.2.1 Compiler options overview
            4.1.2.2 Options List
                4.1.2.2.1 -aN Align on N bytes
                4.1.2.2.2 -ao* Trap assignment overflow errors
                4.1.2.2.3 -A* Enable Asserts
                4.1.2.2.4 -b Use brief messages
                4.1.2.2.5 -C Identifiers are case-sensitive
                4.1.2.2.6 -cm20 Compatibility mode
                4.1.2.2.7 -ead* Auto-declare input & output
                4.1.2.2.8 -ebh* Allow binary & hex integers
                4.1.2.2.9 -eco* Enable non-standard constants
                4.1.2.2.10 -ecr* Allow constant ranges
                4.1.2.2.11 -edq* Allow double-quoted literals
                4.1.2.2.12 -efn* Enable non-standard functions
                4.1.2.2.13 -enn* Allow non-numeric labels
                4.1.2.2.14 -eop* Enable non-standard operators
                4.1.2.2.15 -eow* Allow otherwise
                4.1.2.2.16 -epr* Enable non-standard procedures
                4.1.2.2.17 -erd* Allow relaxed declarations
                4.1.2.2.18 -ety* Enable non-standard types
                4.1.2.2.19 -eui* Allow underscores in identifiers
                4.1.2.2.20 -eva* Enable non-standard variables
                4.1.2.2.21 -E* Enable all extensions
                4.1.2.2.22 -gs Generate a WinNT/2000 service
                4.1.2.2.23 -hTEXT Add #!TEXT header
                4.1.2.2.24 -i* Trap I/O errors
                4.1.2.2.25 -I Control informatory messages
                4.1.2.2.26 -ln* Insert line-number debug info
                4.1.2.2.27 -mb Generate Borland compatible messages
                4.1.2.2.28 -mc* Display message context
                4.1.2.2.29 -meN Set maximum errors
                4.1.2.2.30 -mm Generate Microsoft compatible messages
                4.1.2.2.31 -mwN Set maximum warnings
                4.1.2.2.32 -nc Allow nested comments
                4.1.2.2.33 -nu Non-standard unary operators
                4.1.2.2.34 -oNAME Set output filename
                4.1.2.2.35 -p Require parentheses
                4.1.2.2.36 -r* Trap range errors
                4.1.2.2.37 -rtlf Send run-time errors to log file
                4.1.2.2.38 -rtmb* Send run-time errors to message box
                4.1.2.2.39 -rtsc* Send run-time errors to screen
                4.1.2.2.40 -s* Strict var strings
                4.1.2.2.41 -sc* Use short-circuit evaluation
                4.1.2.2.42 -so Maximum stack overflow checking
                4.1.2.2.43 -Snn Set stack size in K
                4.1.2.2.44 -u* Trap use of undefined values
                4.1.2.2.45 -v* Trap use of inactive variants
                4.1.2.2.46 -W Control warning messages
    4.2 The Command-Line Interpreter
        4.2.1 Using the interpreter
    4.3 The Header Utility
        4.3.1 Using the header utility
5 Extensions To Standard Pascal
    5.1 Overview of extensions to Standard Pascal
    5.2 Auto declare input and output
    5.3 Allow binary/hexadecimal constants
    5.4 Enable non-standard constants
    5.5 Allow constant ranges
    5.6 Allow double-quoted literals
    5.7 Enable non-standard functions
    5.8 Allow non-numeric labels
    5.9 Enable non-standard operators
    5.10 Allow 'otherwise'
    5.11 Enable non-standard procedures
    5.12 Allow relaxed declaratons
    5.13 Enable non-standard types
    5.14 Allow underscores (_) in identifiers
    5.15 Enable non-standard variables
6 Read Me
    6.1 What is Irie Pascal?
    6.2 Compliance
    6.3 License and distribution rights
    6.4 Disclaimer-Agreement
    6.5 How To Get Help
        6.5.1 Getting help from the manuals
        6.5.2 Getting help from the website
        6.5.3 Contacting customer support
    6.6 Irie Pascal Prices
        6.6.1 Checking prices
        6.6.2 Irie Pascal Windows Edition Prices
            6.6.2.1 Irie Pascal Windows Edition Prices (in US$)
            6.6.2.2 Irie Pascal Windows Edition Prices (in CA$)
            6.6.2.3 Irie Pascal Windows Edition Prices (in UK)
            6.6.2.4 Irie Pascal Windows Edition Prices (in Euros)
        6.6.3 Irie Pascal DOS Edition Prices
            6.6.3.1 Irie Pascal DOS Edition Prices (in US$)
            6.6.3.2 Irie Pascal DOS Edition Prices (in CA$)
            6.6.3.3 Irie Pascal DOS Edition Prices (in UK)
            6.6.3.4 Irie Pascal DOS Edition Prices (in Euros)
        6.6.4 Irie Pascal Linux Edition Prices
            6.6.4.1 Irie Pascal Linux Edition Prices (in US$)
            6.6.4.2 Irie Pascal Linux Edition Prices (in CA$)
            6.6.4.3 Irie Pascal Linux Edition Prices (in UK)
            6.6.4.4 Irie Pascal Linux Edition Prices (in Euros)
        6.6.5 Irie Pascal FreeBSD Edition Prices
            6.6.5.1 Irie Pascal FreeBSD Edition Prices (in US$)
            6.6.5.2 Irie Pascal FreeBSD Edition Prices (in CA$)
            6.6.5.3 Irie Pascal FreeBSD Edition Prices (in UK)
            6.6.5.4 Irie Pascal FreeBSD Edition Prices (in Euros)
        6.6.6 Irie Pascal Solaris/x86 Edition Prices
            6.6.6.1 Irie Pascal Solaris/x86 Edition Prices (in US$)
            6.6.6.2 Irie Pascal Solaris/x86 Edition Prices (in CA$)
            6.6.6.3 Irie Pascal Solaris/x86 Edition Prices (in UK)
            6.6.6.4 Irie Pascal Solaris/x86 Edition Prices (in Euros)
        6.6.7 Irie Pascal Solaris/Sparc Edition Prices
            6.6.7.1 Irie Pascal Solaris/Sparc Edition Prices (in US$)
            6.6.7.2 Irie Pascal Solaris/Sparc Edition Prices (in CA$)
            6.6.7.3 Irie Pascal Solaris/Sparc Edition Prices (in UK)
            6.6.7.4 Irie Pascal Solaris/Sparc Edition Prices (in Euros)
        6.6.8 Irie Pascal OS/2 Edition Prices
            6.6.8.1 Irie Pascal OS/2 Edition Prices (in US$)
            6.6.8.2 Irie Pascal OS/2 Edition Prices (in CA$)
            6.6.8.3 Irie Pascal OS/2 Edition Prices (in UK)
            6.6.8.4 Irie Pascal OS/2 Edition Prices (in Euros)
        6.6.9 Irie Pascal Universal Edition Prices
            6.6.9.1 Irie Pascal Universal Edition Prices (in US$)
            6.6.9.2 Irie Pascal Universal Edition Prices (in CA$)
            6.6.9.3 Irie Pascal Universal Edition Prices (in UK)
            6.6.9.4 Irie Pascal Universal Edition Prices (in Euros)
    6.7 Buying Irie Pascal licenses
        6.7.1 Why you should buy a license
        6.7.2 How do you buy a license
        6.7.3 Buying by the web
        6.7.4 Buying by telephone
        6.7.5 Buying by Fax
        6.7.6 Buying by mail
        6.7.7 Buying by wire transfer
        6.7.8 Purchase orders
        6.7.9 Irie Pascal Order Forms
            6.7.9.1 Irie Pascal (Windows Edition) Order Forms
                6.7.9.1.1 Irie Pascal (Windows edition) US$ Order Form
                6.7.9.1.2 Irie Pascal (Windows Edition) CA$ Order Form
                6.7.9.1.3 Irie Pascal (Windows Edition) UK Order Form
                6.7.9.1.4 Irie Pascal (Windows Edition) Euro Order Form
            6.7.9.2 Irie Pascal Order Forms (DOS Edition)
                6.7.9.2.1 Irie Pascal (DOS Edition) US$ Order Form
                6.7.9.2.2 Irie Pascal (DOS Edition) CA$ Order Form
                6.7.9.2.3 Irie Pascal (DOS Edition) UK Order Form
                6.7.9.2.4 Irie Pascal (DOS Edition) Euro Order Form
            6.7.9.3 Irie Pascal Order Forms (Linux Edition)
                6.7.9.3.1 Irie Pascal (Linux Edition) US$ Order Form
                6.7.9.3.2 Irie Pascal (Linux Edition) CA$ Order Form
                6.7.9.3.3 Irie Pascal (Linux Edition) UK Order Form
                6.7.9.3.4 Irie Pascal (Linux Edition) Euro Order Form
            6.7.9.4 Irie Pascal Order Forms (FreeBSD Edition)
                6.7.9.4.1 Irie Pascal (FreeBSD Edition) US$ Order Form
                6.7.9.4.2 Irie Pascal (FreeBSD Edition) CA$ Order Form
                6.7.9.4.3 Irie Pascal (FreeBSD Edition) UK Order Form
                6.7.9.4.4 Irie Pascal (FreeBSD Edition) Euro Order Form
            6.7.9.5 Irie Pascal Order Forms (Solaris/x86 Edition)
                6.7.9.5.1 Irie Pascal (Solaris/x86 Edition) US$ Order Form
                6.7.9.5.2 Irie Pascal (Solaris/x86 Edition) CA$ Order Form
                6.7.9.5.3 Irie Pascal (Solaris/x86 Edition) UK Order Form
                6.7.9.5.4 Irie Pascal (Solaris/x86 Edition) Euro Order Form
            6.7.9.6 Irie Pascal Order Forms (Solaris/Sparc Edition)
                6.7.9.6.1 Irie Pascal (Solaris/Sparc Edition) US$ Order Form
                6.7.9.6.2 Irie Pascal (Solaris/Sparc Edition) CA$ Order Form
                6.7.9.6.3 Irie Pascal (Solaris/Sparc Edition) UK Order Form
                6.7.9.6.4 Irie Pascal (Solaris/Sparc Edition) Euro Order Form
            6.7.9.7 Irie Pascal Order Forms (OS/2 Edition)
                6.7.9.7.1 Irie Pascal (OS/2 Edition) US$ Order Form
                6.7.9.7.2 Irie Pascal (OS/2 Edition) CA$ Order Form
                6.7.9.7.3 Irie Pascal (OS/2 Edition) UK Order Form
                6.7.9.7.4 Irie Pascal (OS/2 Edition) Euro Order Form
            6.7.9.8 Irie Pascal Order Forms (Universal Edition)
                6.7.9.8.1 Irie Pascal (Universal Edition) US$ Order Form
                6.7.9.8.2 Irie Pascal (Universal Edition) CA$ Order Form
                6.7.9.8.3 Irie Pascal (Universal Edition) UK Order Form
                6.7.9.8.4 Irie Pascal (Universal Edition) Euro Order Form

1.1 New built-in types

The following built-in types have been added to Irie Pascal. These new built-in types have been added to make calling Windows API functions/procedures easier.

New built-in types:

See the Irie Pascal Programmer's Reference Manual for more information.

1.2 New built-in functions

The following built-in functions have been added to Irie Pascal.

New built-in functions:

See the Irie Pascal Programmer's Reference Manual for more information.

1.3 New built-in procedures

The following built-in procedure has been added to Irie Pascal.

New built-in procedure:

See the Irie Pascal Programmer's Reference Manual for more information.

1.4 System include files

The following system include files are provided with Irie Pascal to make it easier for you to directly access the Windows API. These system include files contain declarations for many of the Windows API functions, procedures, types, and constants.

System include files:

Irie Pascal has also changed the way it searches for include files. When you include a file but do not specify where the include file is located (recommended), Irie Pascal will search in the current folder first, then in the user include folder, and finally in the system include folder.

The user include folder is located at <installation folder>\include\user. If you create any include files that can be used by more than one program then you could put them in this folder.

The system include folder is located at <installation folder>\include, and is the folder that system include files will be installed into.

NOTE: <installation folder> is the folder you installed Irie Pascal into.

1.5 Miscellaneous additions

A number of miscellaneous additions have been made to Irie Pascal.

Miscellaneous additions:

2.1 Getting help

A variety of resources are available to help you get the most out of Irie Pascal. Choose from the list below for more information:

2.2 Installing and uninstalling

Minimum system requirements for Irie Pascal (OS/2 Edition)

Installing Irie Pascal (OS/2 Edition)

Irie Pascal (OS/2 Edition) is distributed as a zip file (i.e. ipo-eval.zip or ipo-210.zip).

NOTE: Installing Irie Pascal requires making modifications to your config.sys file. If you have never modified your config.sys or if you are uncomfortable doing so then have someone who has done this before assist you. If you decide to modify your config.sys please remember to use a text editor and not a word processor (the e command is a text editor that comes with OS/2). The following descrition will assume you are using the e command. You may wish to make a backup copy of your config.sys before you begin making modifications, to help you recover from mistakes. The section Modifying your config.sys gives more information about how and why you should modify your config.sys.

Installing from the zip file

The recommended installation procedure is as follows:

  1. Create a directory (e.g. C:\IRIE) to store Irie Pascal.
  2. Copy the zip file into this directory.
  3. Use your unzip utility to extract the files.
  4. Add the directory created in A) to the path (i.e. modify your config.sys).
  5. Create a directory to store the sample pascal programs (e.g. C:\IRIE\SAMPLES).
  6. Copy the zip file containing the samples (i.e. samples.zip) into the directory you just created.
  7. Unzip the sample files.
  8. Create a directory to store the include files (e.g. C:\IRIE\INCLUDE).
  9. Copy the zip file containing the include files (i.e. include.zip) into the directory you just created.
  10. Unzip the include files.

Modifying your config.sys

The reason for modifying your config.sys file is to add the directory you installed Irie Pascal into to the path. When you try to execute a program from the command line, and you don't specify where it's located, OS/2 will search for the program, first in the current directory and then in the directories listed in the path. So by adding the directory you installed Irie Pascal into to the path, you can execute it from any directory. Please make sure you have read the NOTE: in the Installing Irie Pascal (OS/2 Edition) section, before proceeding. If you decide to modify your config.sys then you can do the following:

Enter

    E c:\config.sys

at a command prompt.

The E program will open your config.sys. Search the file for one or more lines beginning with

 PATH=

add

 ;C:\IRIE

to the end of one of the lines (change C:\IRIE to whatever directory you installed Irie Pascal into). Save the file, by selecting Save from the File Menu. Exit E, by selecting Exit from the Command Menu (i.e. the top left button).

Uninstalling Irie Pascal (OS/2 Edition)

Irie Pascal (OS/2 Edition) does not make any behind the scenes modifications to your system. Irie Pascal does not modify any system files or install files on you hard disk so uninstalling is very simple. Just delete the directory, you created to store Irie Pascal, and remove it from the path.

2.3 A hello world program

A number of sample programs have been included with Irie Pascal in order to help get you started. One such sample program is the Hello program. When the Hello program is run, it displays the message "Hello world!" on the console. Compiling and running this program is a useful way to check whether Irie Pascal is installed correctly.

2.4 A hello world program (CGI version)

A number of sample programs have been included with Irie Pascal in order to help get you started. One such sample program is the HelloCGI program, which is a Common Gateway Interface (CGI) version of the Hello program. When the HelloCGI program is run, it generates a web page with the message "Hello world!". Compiling this program and installing the executable on your web server is a useful way to check whether you have correctly configured the web server to execute Irie Pascal CGI programs.

NOTE: CGI is a very simple and popular way of integrating programs with web servers. You can find further information about CGI on the web (including on the Irie Tools website at the following URL www.irietools.com/cgi). There are also numerous books available that cover CGI.

3.1 How to get help

See getting help for information on the available Irie Pascal help resources and how to access them.

3.2 How to buy

See buying licenses for information on how to buy Irie Pascal licenses.

3.3 How to contact Irie Tools

Contact Information

E-Mail:

Fax:

1-876-929-8184

Postal Mail:

Attn: Stuart King
Irie Tools
221 S. State Rd, 7, #247
Ft. Lauderdale, FL 33317, USA

3.4.1 Creating new programs

Creating the program text

You need to use a text editor (not included with the OS/2 Edition of Irie Pascal) to create the text for your Irie Pascal programs. NOTE: OS/2 includes a text editor (i.e. the e command) which you can use with Irie Pascal.

Compiling your programs

You use the command-line compiler (i.e. ipc.exe) to compile the text of your Irie Pascal programs into executable files (see using the command-line compiler for more information).

Running your programs

You use the command-line interpreter (i.e. ivm.exe) to run the executable files created by the compiler (see using the interpreter for more information).

3.4.2 Opening existing programs

Editing the program text

You need to use a text editor (not included with the OS/2 Edition of Irie Pascal) to edit the text for your Irie Pascal programs. NOTE: OS/2 includes a text editor (i.e. the e command) which you can use with Irie Pascal.

Compiling your programs

You use the command-line compiler (i.e. ipc.exe) to compile the text of your Irie Pascal programs into executable files (see using the command-line compiler for more information).

Running your programs

You use the command-line interpreter (i.e. ivm.exe) to run the executable files created by the compiler (see using the interpreter for more information).

3.4.3 Compiling programs

Compiling your programs

You use the command-line compiler (i.e. ipc.exe) to compile the text of your Irie Pascal programs into executable files (see using the command-line compiler for more information).

3.4.4 Running programs

Running your programs

You use the command-line interpreter (i.e. ivm.exe) to run the executable files created by the compiler (see using the interpreter for more information).

3.5.1.1 Connecting to ODBC databases

What is ODBC?

The Open Database Connectivity (ODBC) interface is widely used to access Database Management Systems (DBMSs). ODBC was originally created by Microsoft but has now become an industry standard, and is supported by all major DBMSs for Windows.

Connecting to ODBC databases

In order to connect to an ODBC database, you need to:

  1. Declare a variable of the built-in type connection
  2. Use new on the variable to create a connection object
  3. Invoke the open method of the connection object
The open method of the connection object takes one argument, the connection string. ODBC connection strings can take one of two forms:

odbc-connection-string = odbc-connection-string-1 | odbc-connection-string-2

odbc-connection-string-1 = 'ODBC' ';' dsn-parm ';' uid-parm ';' pwd-parm [';' [driver-specific-text]]

odbc-connection-string-2 = 'ODBC' ';' name ';' [uid] ';' [password]

dsn-parm = 'DSN' '=' name

uid-parm = 'UID' '=' uid

pwd-parm = 'PWD' '=' [password]

where [] indicates optional parameters

and name is a valid data source name (DSN)

and uid is an identifier for the user accessing the database

and password is the password of the user accessing the database

For example DSN=test;UID=sa;PWD=

When the connection string is in the first form then it is passed, without further processing, to SQLDriverConnect to open the connection. When the connection string is in the second form then the name, id, and password parameters are extracted from the connection string, if present, and passed to SQLConnect to open the connection. NOTE: The first form of the connection string is the recommended form, support for the second form is provided for completeness only.

See the Irie Pascal Programmer's Reference Manual for more information.

The authoritative source of information about ODBC is the Microsoft Developers Network (MSDN). You can access the MSDN on the Microsoft website at msdn.microsoft.com.

3.5.1.2 Connecting to MySQL databases

What is MySQL?

MySQL is a popular open source database management system (DBMS). MySQL is particular popular for computers running Linux and FreeBSD. You can go to www.MySQL.com for more information about MySQL.

Connecting to MySQL databases

In order to connect to a MySQL database, you need to:

  1. Declare a variable of the built-in type connection
  2. Use new on the variable to create a connection object
  3. Invoke the open method of the connection object
The open method of the connection object takes one argument, the connection string. MySQL connection strings take the following form:

mysql-connection-string = 'MYSQL' ';' mysql-parameter-list

mysql-parameter-list = mysql-parameter ';' mysql-parameter-list | empty

mysql-parameter = mysql-host-parameter | mysql-user-parameter | mysql-password-parameter | mysql-database-parameter | mysql-port-parameter | mysql-socket-parameter | mysql-compress-parameter

mysql-host-parameter = 'host' '=' '"' host-name '"'

mysql-user-parameter = 'user' '=' '"' user-name '"'

mysql-password-parameter = 'password' '=' '"' password '"'

mysql-database-parameter = 'database' '=' '"' database-name '"'

mysql-port-parameter = 'port' '=' port-number

mysql-socket-parameter = 'socket' '=' '"' socket '"'

mysql-compress-parameter = 'compress' '=' boolean-value

boolean-value = 'yes' | 'no' | 'true' | 'false'

For example MYSQL;user="testuser";database="testdb";socket="/tmp/mysql.soc";

The connection parameters are extracted from the connection string and passed to mysql_real_connect to open the connection. NOTE: mysql_real_connect is the MySQL C API function that is used to open a connection to a MySQL database.

The effect of each of the parameters is described below:

The mysql-host-parameter specifies the hostname or IP address of the MySQL database server. If mysql-host-parameter is not specified or if host-name is an empty string or is equal to "local-host" then the connection is opened to the local MySQL server over a UNIX socket.

The mysql-user-parameter specifies the username used to connect to the MySQL database server. If the mysql-user-parameter is not specified or if user-name is an empty string then the login name of the person running the application is used.

The mysql-password-parameter specifies the password of the user who will be connected to the database server. If the mysql-password-parameter is not specified or if password is an empty string then the connection is rejected if the user actually has a password.

The mysql-database-parameter specifies the initial database selected when the connection is opened. If the mysql-database-parameter is not specified or if database is an empty string then no initial database is selected. In which case you must call the selectdatabase method later on to select a database.

The mysql-port-parameter specifies the port used to remotely connect to a MySQL database server over TCP. If the mysql-port-parameter is not specified or if port-number is 0 then the default port is used.

The mysql-socket-parameter specifies the filename of the UNIX socket used to connect to a MySQL database server on the local machine. If the mysql-socket-parameter is not specified or if socket is an empty string then the default socket is used.

The mysql-compress-parameter specifies the compression is to be used when communicating with the MySQL database server. If the mysql-compress-parameter is not specified then compression is not used.

See the Irie Pascal Programmer's Reference Manual for more information.

3.5.2.1 Using the execute method

Executing Database Commands

Most major Database Management Systems (DBMSs) use the Structured Query Language (SQL) as their query language. So executing a database command usually means sending an SQL statement to the DBMS for execution. You can call the execute method of a connection object to execute a database command. Before calling the execute method the connection object must represent an open connection to a database. See connecting to ODBC databases and connecting to MySQL databases for more information about connecting to databases.

See the Irie Pascal Programmer's Reference Manual for more information.

3.5.3.1 Using the recordset object

Most major Database Management Systems (DBMSs) use the Structured Query Language (SQL) as their query language. Some SQL statements return result sets. The recordset object is used to send SQL statements to DBMSs and access the result set(s) returned. The open method of a recordset object is used to send the SQL statement to the DBMS and prepare to access the result set returned. After opening the recordset object you can access the result set, one record at a time.

The field property of a recordset object is used to retrieve the value of a field of the current record in the result set. For example if you have a recordset object rs with an open recordset and the records in the recordset have a field named last_name then

   rs.field('last_name')

contains the contents of the field last_name for the current record in the recordset.

field is a read-only property of type variant.

NOTE: The field property is read-only so you can not use it to change the contents of the record fields (i.e. you can't use this property to effect the data in the database). If you want to affect the data in the database you should call the execute method of an connection object and pass it a SQL UPDATE statement.

NOTE: Since the field property is used so often Irie Pascal allows you to leave out the name of the property. So for example

   rs.('last_name')

is equivalent to

   rs.field('last_name')

Other useful methods and properties of recordet objects are:

See the Irie Pascal Programmer's Reference Manual for more information.

3.6.1 Programing Sockets

See the Irie Pascal Programmer's Reference Manual for more information on how to program sockets.

3.7.1 Distributing Irie Pascal programs

Distributing Irie Pascal Programs

So you have written your program, finished testing it, and now you are ready to distribute it. You probably can't depend on the users of your program having Irie Pascal installed on their computers, so you will need to distribute the IVM Interpreter (i.e. the file ivm.exe) in addition to the executable file containing your program. If you have purchased a license to use Irie Pascal, then you may have the right to distribute the files necessary to run your programs (see the license agreement for details).

4.1.1 Using the command-line compiler

The Irie Pascal command-line Pascal compiler translates Pascal source programs into Irie Virtual Machine executables (.IVM executables), or (.EXE executables).

Command-line Compiler (ipc) Syntax

The syntax for the command-line compiler is as follow:

For example to compile the sample program hello.pas enter

   ipc hello

or

   ipc hello.pas

(assuming of course that hello.pas is in the current directory).

The compiler will generate a file called hello.ivm which contains an IVM executable. You can run it by entering

   ivm hello

or

   ivm hello.ivm

NOTE: If you do not specify a path for the executable (as in the example above) the interpreter will first look in the current directory and if not found the interpreter will search the path.

4.1.2.1 Compiler options overview

Compiler options are instructions to the compiler to somehow modify its behavior (usually they are instructions to enable or disable a particular compiler feature). Compiler options are entered on the command-line when you invoke the command-line compiler. NOTE: Compile options are case-sensitive so for example i and I are different compiler options.

There are two kinds of compiler options

  1. Flag options
  2. Value options

Flag Options

Flag options are used to enable or disable a compiler feature.

To enable the feature use

   -option    or   -option+

where option is the particular compiler option.

To disable the feature use

   -option-

For example the nc option is used to enable/disable the processing of nested comments. So -nc or -nc+ is used to enable the processing of nested comments and -nc- is used to disable the processing of nested comments.

Value options are used to specify the value of some quantity.

To specify a value option use

   -optionVALUE

where option is the particular compiler option and VALUE is the value being specified.

For example the mw option is used to specify the maximum number of warnings that the compiler should process. So -mw2 is used to set the maximum number of warnings to 2.

More than one option can be specified so for example, if you want to compile the program bad.pas using brief messages and nested comments then you can enter

   ipc -b -nc bad.pas

Options can be combined so you can also enter

   ipc -bnc bad

or

   ipc -ncb bad

To turn off nested comment processing and brief message then you can enter

   ipc -nc- -b- bad

or

   ipc -ncb- bad

Options List

The command-line compiler options are listed below:

4.1.2.2.1 -aN Align on N bytes

This command-line compiler option specifies the maximum alignment used by the compiler.

Syntax:  -aN     (Sets maximum alignment to N)
Default: Maximum alignment is 4.
Notes: See also specify align size

4.1.2.2.2 -ao* Trap assignment overflow errors

This command-line compiler option enables/disables assignment overflow checking.

Syntax:  -ao[+|-]
Default: Enabled
Notes: See also Assignment overflow checking.

4.1.2.2.3 -A* Enable Asserts

This command-line compiler option enables/disables asserts.

Syntax: -A[+|-]
Default: Enabled
Notes: See also enable asserts.

4.1.2.2.4 -b Use brief messages

This command-line compiler option enables/disables the brief format for messages.

Syntax:  -b[+|-]
Default: Disabled
Notes:
The verbose format for Fatal error and Error messages (which is used by default) is

     Error #nn: "name" (Line l, Col c): text

where

The verbose format for warning messages is similar except that Warning is used instead of Error.

The brief format for Fatal error and Error messages is:

    Enn: "name" l:text

where

The brief format for warning messages are similar except that W is used instead of E.

4.1.2.2.5 -C Identifiers are case-sensitive

This command-line compiler option enables/disables case-sensitive identifiers.

Syntax:  -C[+|-]
Default: Disabled
Notes: See also make identifiers case-sensitive.

4.1.2.2.6 -cm20 Compatibility mode

This command-line compiler option controls whether the compiler is in version 2.0 compatibility mode.

Syntax:  -cm20[+|-]
Default: Disabled
Notes: See also Compatibility mode (with version 2.0).

4.1.2.2.7 -ead* Auto-declare input & output

This command-line compiler option enables/disables auto-declaration of input and output.

Syntax:  -ead[+|-]
Default: Enabled
Notes: See also auto-declare input/output.

4.1.2.2.8 -ebh* Allow binary & hex integers

This command-line compiler option enables/disables binary and hexadecimal integer constants.

Syntax:  -ebh[+|-]
Default: Enabled
Notes: See also allow binary/hexadecimal constants.

4.1.2.2.9 -eco* Enable non-standard constants

This command-line compiler option enables/disables non-standard constants.

Syntax:  -eco[+|-]
Default: Enabled
Notes: See also enable non-standard constants.

4.1.2.2.10 -ecr* Allow constant ranges

This command-line compiler option enables/disables constant ranges.

Syntax:  -ecr[+|-]
Default: Enabled
Notes: See also allow constant ranges.

4.1.2.2.11 -edq* Allow double-quoted literals

This command-line compiler option enables/disables double quoted literals.

Syntax:  -edq[+|-]
Default: Enabled
Notes: See also allow double-quoted (") literals.

4.1.2.2.12 -efn* Enable non-standard functions

This command-line compiler option enables/disables non-standard functions.

Syntax:  -efn[+|-]
Default: Enabled
Notes: See also enable non-standard functions.

4.1.2.2.13 -enn* Allow non-numeric labels

This command-line compiler option enables/disables support for non-numeric statement labels.

Syntax:  -enn[+|-]
Default: Enabled
Notes: See also allow non-numeric labels.

4.1.2.2.14 -eop* Enable non-standard operators

This command-line compiler option enables/disables support for non-standard operators.

Syntax:  -eop[+|-]
Default: Enabled
Notes: See also enable non-standard operators.

4.1.2.2.15 -eow* Allow otherwise

This command-line compiler option enables/disables support for the keyword otherwise.

Syntax:  -eow[+|-]
Default: Enabled
Notes: See also allow otherwise.

4.1.2.2.16 -epr* Enable non-standard procedures

This command-line compiler option enables/disables non-standard procedures.

Syntax:  -epr[+|-]
Default: Enabled
Notes: See also enable non-standard procedures.

4.1.2.2.17 -erd* Allow relaxed declarations

This command-line compiler option enables/disables relaxed declarations.

Syntax:  -erd[+|-]
Default: Enabled
Notes: See also allow relaxed declarations.

4.1.2.2.18 -ety* Enable non-standard types

This command-line compiler option enables/disables non-standard types.

Syntax:  -ety[+|-]
Default: Enabled
Notes: See also enable non-standard types.

4.1.2.2.19 -eui* Allow underscores in identifiers

This command-line compiler option enables/disables underscores (_) in identifiers.

Syntax:  -eui[+|-]
Default: Enabled
Notes: See also allow underscores (_) in identifiers.

4.1.2.2.20 -eva* Enable non-standard variables

This command-line compiler option enables/disables non-standard variables.

Syntax:  -eva[+|-]
Default: Enabled
Notes: See also enable non-standard variables.

4.1.2.2.21 -E* Enable all extensions

This command-line compiler option enables/disables all Irie Pascal extensions to Standard Pascal.

Syntax:  -E[+|-]
Default: Enabled

4.1.2.2.22 -gs Generate a WinNT/2000 service

This command-line compiler option makes the compiler generate a Windows NT/2000 service application.

Syntax:  -gs[+|-]
Default: Disabled
Notes: See also generate Windows NT/2000 service application.

4.1.2.2.23 -hTEXT Add #!TEXT header

This command-line compiler option specifies a #! header to be inserted in front of the generated executable.

Syntax:  -hTEXT     (Sets the #! header to TEXT)
Default: By default no #! header is used.
NOTES: See also #! header.

4.1.2.2.24 -i* Trap I/O errors

This command-line compiler option enables/disables I/O trapping.

Syntax:  -i[+|-]
Default: Enabled
Notes: When I/O trapping is enabled the compiler generates code which checks each I/O
operation and issues a run-time error if an I/O error is detected.

4.1.2.2.25 -I Control informatory messages

This command-line compiler option enables/disables information messages.

Syntax: -I[nn][+|-]

Default: All information message enabled.

4.1.2.2.26 -ln* Insert line-number debug info

This command-line compiler option enables/disables line number debugging information.

Syntax:  -ln[+|-]
Default: Enabled
Notes: See also insert line-number debugging information.

4.1.2.2.27 -mb Generate Borland compatible messages

This command-line compiler option enables/disables Borland compatible messages.

Syntax: -mb[+|-]

Default: Disabled

Notes: When this compiler option is enabled the compiler displays messages in the format used by Borland compilers. This option can be used to make it easier to integrate the Irie Pascal command-line compiler with third-party editors and IDE's which already know how to process Borland compiler messages. This option automatically suppresses the mc compiler option.

4.1.2.2.28 -mc* Display message context

This command-line compiler option enables/disables message context information.

Syntax: -mc[+|-]

Default: Enabled

Notes: When this compiler option is enabled the compiler shows the position in the source file referred to by error and warning messages. NOTE: Some error and warning messages do not refer to a particular position in the source file and therefore context information is not displayed for those messages.

4.1.2.2.29 -meN Set maximum errors

This command-line compiler option specifies the maximum number of error messages that the compiler should allow.

Syntax: -meN

Default: N = 25

Notes: Suppose you want the compiler to stop after 5 error messages then use:

   -me5

4.1.2.2.30 -mm Generate Microsoft compatible messages

This command-line compiler option enables/disables Microsoft compatible messages.

Syntax: -mm[+|-]

Default: Disabled

Notes: When this compiler option is enabled the compiler displays messages in the format used by Microsoft compilers. This option can be used to make it easier to integrate the Irie Pascal command-line compiler with third-party editors and IDE's which already know how to process Microsoft compiler messages. This option automatically suppresses the mc compiler option.

4.1.2.2.31 -mwN Set maximum warnings

This command-line compiler option specifies the maximum number of warning messages that the compiler should allow.

Syntax: -mwN

Default: N = 100

Notes: Suppose you want the compiler to stop after 5 warning messages then use

   -mw5

4.1.2.2.32 -nc Allow nested comments

This command-line compiler option enables/disables support for nested comments.

Syntax: -nc[+|-]

Default: Disabled

Notes: See also allow nested comments.

4.1.2.2.33 -nu Non-standard unary operators

This command-line compiler option enables/disables non-standard use of unary plus and minus operators.

Syntax: -nu[+|-]

Default: Enabled

Notes: See also non-standard unary operators.

4.1.2.2.34 -oNAME Set output filename

This command-line compiler option specifies the name of the executable generated by the compiler.

Syntax: -oNAME

Default: The name of the executable is the name of the Pascal source file with the extension changed to .ivm.

4.1.2.2.35 -p Require parentheses

This command-line compiler option enables/disables mandatory parentheses mode.

Syntax: -p[+|-]

Default: Disabled

Notes: See also require parentheses.

4.1.2.2.36 -r* Trap range errors

This command-line compiler option enables/disables range checking.

Syntax: -r[+|-]

Default: Enabled

Notes: See also values out of range.

4.1.2.2.37 -rtlf Send run-time errors to log file

This command-line compiler option sends run-time errors to a log file.

Syntax: -rtlf[+|-]

Default: Disabled

Notes: See also run-time errors in log file.

4.1.2.2.38 -rtmb* Send run-time errors to message box

This command-line compiler option sends run-time errors to a message box. NOTE: Only executables running under the Windows platform can display run-time errors in message boxes, on all other platforms this option has no effect.

Syntax: -rtmb[+|-]

Default: Enabled

Notes: See also run-time errors in message box.

4.1.2.2.39 -rtsc* Send run-time errors to screen

This command-line compiler option sends run-time errors to the console screen.

Syntax: -rtsc[+|-]

Default: Enabled

Notes: See also run-time errors to console screen.

4.1.2.2.40 -s* Strict var strings

This command-line compiler option enables/disables strict checking of var string parameters.

Syntax: -s[+|-]

Default: Enabled

Notes:

When strict checking is enabled, it is an error to pass a string variable by reference if the length of the variable's string type is not equal to the length of the formal parameter's string type.

When strict checking is disabled you can pass a string variable by reference even if the length of the string variable is not equal to the length of the formal parameter.

For example if you compile the following program and strict checking is enabled:

   program p(output);
   type
      string16 = string[16];
      string8 = string[8];
   var
      x : string16;
      procedure print(var s : string8);
      begin
         writeln(s)
      end;
   begin
      x := 'Hello';
      print(x)          (* Error only if strict checking is enabled *)
   end.

then the compiler will report an error with the call print(x) since the length of x's string type is 16 and the length of the formal parameter's sting type is 8 (i.e. they are not equal).

If strict checking is disabled then no errors are reported.

4.1.2.2.41 -sc* Use short-circuit evaluation

This command-line compiler option enables/disables short-circuit evaluation for the boolean operators and and or.

Syntax: -sc[+|-]

Default: Enabled

Notes: See also use short-circuit evaluation.

4.1.2.2.42 -so Maximum stack overflow checking

This command-line compiler option enables/disables detailed stack overflow checking.

Syntax: -so[+|-]

Default: Disabled

Notes: The interpreter automatically checks for stack overflow at the beginning and end of each procedure/function call and when large values are placed on the stack. These checks should suffice for most purposes, however you can enable this option if you want the interpreter to check for stack overflow before every statement is executed.

4.1.2.2.43 -Snn Set stack size in K

This command-line compiler option specifies the number of kilobytes to allocate for your program's stack.

Syntax: -Snn

Default: nn = 64

Notes: See also specify stack size.

4.1.2.2.44 -u* Trap use of undefined values

This command-line compiler option enables/disables checking for undefined values.

Syntax: -u[+|-]

Default: Enabled

Notes: When this option is enabled the compiler generates code which checks each time your program gets a value from a variable to make sure that the value is not undefined. If your program does get an undefined value from a variable then the code generated by the compiler will issue a run-time error message and terminate your program.

So for example if you compile and run the following program

   program bad(output);
   var
      r : real;
   begin
      writeln(r) (* The value of "r" is undefined *)
   end.

The program will terminate with a run-time error message because of the attempt to print the value of r which is undefined. Unfortunately not all variable accesses can be checked, checks are only made for accesses to variables of the following types:

Accesses to variables of types char, integer, record and set (Bit set representation) are not checked.

Checking for undefined values is performed as follows:

4.1.2.2.45 -v* Trap use of inactive variants

This command-line compiler option enables/disables variant checking.

Syntax: -v[+|-]

Default: Enabled

Notes: When variant checking is enabled the compiler generates code to check each time a field of a variant, is accessed, to make sure that the variant is active.

4.1.2.2.46 -W Control warning messages

This command-line compiler option enables/disables warning messages.

Syntax: -W[nn][+|-]

Default: All warning messages enabled.

4.2.1 Using the interpreter

The Irie Virtual Machine Interpreter is used to run Irie Virtual Machine executables. The interpreter should be run from a command-line prompt.

Once you are at a command-line prompt use the following syntax:

Syntax: ivm [filename] [arguments]

 where filename specifies the Irie Virtual Machine Executable to run.

 and [arguments] are program arguments passed to the executable.

NOTE: [x] indicates that x is optional.

For example if you compile the sample program hello.pas, the compiler will generate a file called hello.ivm which contains an Irie Virtual Machine Executable.

You can run it by entering ivm hello or ivm hello.ivm.

NOTE: If you do not specify a path for the executable (as in the example above) the interpreter will first look in the current directory and if not found the interpreter will search the path.

4.3.1 Using the header utility

NOTE: The command-line and IDE compilers can now put #! headers into the generated executables so the Irie Header Utility is not necessary anymore unless you can't or don't want to recompile the executable.

The Irie Header Utility can be used to create IVM executables with #! headers. #! headers can be used by UNIX or UNIX-like operating systems (such as Solaris, Linux or FreeBSD) to locate the interpreters that should be used to execute scripts. When UNIX or a UNIX-like operating system attempts to execute a file and the first two characters in the file are #!, the operating system will assume that the file is a script that needs to be interpreted, and it will expect the location of the interpreter to follow the #!.

The syntax is:

 ivm header input-executable output-executable [location]

where

So for example if the interpreter was installed in /usr/local/bin, you would store #!/usr/local/bin/ivm in front of the executable.

So for example if you had an IVM executable named hello.ivm you could enter

 ivm header hello.ivm hello /usr/local/bin/ivm

which creates a new executable called hello which has

 #!/usr/local/bin/ivm

in front (#! is automatically inserted). In order to be able to execute hello you also need to set the executable permission bit (using

 chmod a+x hello

for example).

5.1 Overview of extensions to Standard Pascal

Standard Pascal (ISO/IEC 7185) allows implementations, such as Irie Pascal, to add new features, called extensions. However an extension to Standard Pascal can not invalidate any Standard Pascal program that would otherwise be valid, except possibly by adding new keyword(s) that would invalidate programs that used those keyword(s) as normal identifiers.

Irie Pascal supports a number of extensions to Standard Pascal. Some of these extensions were added for compatibility with Turbo Pascal or Extended Pascal, while others were added for other reasons and are likely to be specific to Irie Pascal.

The Irie Pascal extensions to Standard Pascal are listed below:

"5.2 Auto declare input and output"

When this extension is enabled (the default), the Irie Pascal compiler will automatically declare the built-in identifiers input and output, when they are not declared in your program. Standard (ISO/IEC 7185) Pascal specifies that whenever the required identifiers input and output are referenced in a program, that they must by declared (i.e. appear as program parameters). However because some Pascal compilers do not enforce this requirement many Pascal programs do not meet this specification.

"5.3 Allow binary/hexadecimal constants"

When this extension is enabled (the default), the Irie Pascal compiler will recognize binary and hexadecimal constants.

Binary Constants

Binary constants begin with %, and are followed by one or more binary (0 or 1) digits.

The following are examples of valid binary constants

   %0   %1      %01110101010101010111101

The following are not valid binary constants

   %2    %      %151       %g

Hexadecimal Constants

Hexadecimal constants begin with $, and are followed by one or more hexadecimal (one of 0123456789ABCDEF) digits.

The following are examples of valid hexadecimal constants

   $9   $A123      $ffff

The following is not a valid hexadecimal constant

   $abgd

since g is not a hexadecimal digit.

"5.4 Enable non-standard constants"

When this extension is enabled (the default), the Irie Pascal compiler will recognized a number of built-in constants which are not part of Standard (ISO/IEC 7185) Pascal.

See the Irie Pascal Programmer's Reference Manual for a complete list of non-standard constants.

"5.5 Allow constant ranges"

When this extension is enabled (the default), the Irie Pascal compiler will recognize constant ranges in case statements and variant records.

Constant Ranges

You can use constant ranges to specify a number of consecutive case constants. To use a constant range you specify the first constant, and the last constant, separated by .. as follows:

   first..last

So for example you could use the constant range

   1..5

to specify the following constants

   1, 2, 3, 4, 5

See the Irie Pascal Programmer's Reference Manual for more information.

"5.6 Allow double-quoted literals"

When this extension is enabled (the default), the Irie Pascal compiler will allow you to use double-quotes to deliminate character and string literals.

For example when this extension is enabled you could use

   "Hello world"

instead of

   'Hello world'

Double-quoted literals can be especially useful if you want to create literals with single quotes in them, since you don't have to use two single quotes to represent one single quote.

For example you could use

   "Don't go away"

which is equivalent to

   'Don''t do away'

but much more readable.

"5.7 Enable non-standard functions"

When this extension is enabled (the default), the Irie Pascal compiler will recognized a number of built-in functions which are not part of Standard (ISO/IEC 7185) Pascal.

See the Irie Pascal Programmer's Reference Manual for a complete list of non-standard functions.

"5.8 Allow non-numeric labels"

When this extension is enabled (the default), the Irie Pascal compiler will allow non-numeric statement labels. In Standard (ISO/IEC 7185) Pascal statement labels must be numeric and between 0 and 9999. When this extension is enabled, you can declare and use labels containing letters and underscores.

For example in the following program, loop is used as a statement label.

    program name(output);
    label loop;
    var
       i : integer;
    begin
       i := 1;
       loop:
       writeln(i);
       i := i + 1;
       if i <= 20 then goto loop;
    end.

"5.9 Enable non-standard operators"

When this extension is enabled (the default), the Irie Pascal compiler will recognize a number of operators which are not a part of Standard (ISO/IEC 7185) Pascal, and it will allow some of the boolean operators to be used to perform bitwise operations. The new operators are:

 and_then, or_else, xor, shl, shr

The boolean operators that can perform bitwise operations are:

 not, and, or

See the Irie Pascal Programmer's Reference Manual for more information.

"5.10 Allow 'otherwise'"

When this extension is enabled (the default), the Irie Pascal compiler will allow you to use the keyword otherwise in case statements and variant records to specify "all values that haven't been used yet". You can also use the keyword else instead of otherwise (this feature was added in order to improve compatibility with Turbo Pascal).

"5.11 Enable non-standard procedures"

When this extension is enabled (the default), the Irie Pascal compiler will recognized a number of built-in procedures which are not part of Standard (ISO/IEC 7185) Pascal.

See the Irie Pascal Programmer's Reference Manual for a complete list of non-standard procedures.

"5.12 Allow relaxed declaratons"

Standard (ISO/IEC 7185) Pascal requires that all declarations/definitions of the same kind must be made together in a single group and that the groups must appear in a specific order. The order required by Standard Pascal is:

   Label declaration group
   Constant definition group
   Type definition group
   Variable declaration group
   sub-block declaration group

When this extension is enabled (the default), there can be more than one of each kind of group and groups can appear in any order except that, for declarations local to a function or procedure, the sub-block declaration group must be last.

See the Irie Pascal Programmer's Reference Manual for more information.

"5.13 Enable non-standard types"

When this extension is enabled (the default), the Irie Pascal compiler will recognized a number of built-in types which are not part of Standard (ISO/IEC 7185) Pascal.

See the Irie Pascal Programmer's Reference Manual for more a complete list of non-standard types.

"5.14 Allow underscores (_) in identifiers"

When this extension is enabled (the default), the Irie Pascal compiler will allow underscores in identifiers.

So for example the following would be valid identifiers:

   _name
   last_name
   _all_names_

"5.15 Enable non-standard variables"

When this extension is enabled (the default), the Irie Pascal compiler will recognized a number of built-in variables which are not part of Standard (ISO/IEC 7185) Pascal.

See the Irie Pascal Programmer's Reference Manual for a complete list of non-standard variables.

6.1 What is Irie Pascal?

Irie Pascal is a Pascal compiler and interpreter. The compiler translates Pascal programs into Irie Virtual Machine (IVM) executables, which are then executed by the interpreter. The IVM is an abstract computer platform that is implemented in software (by the interpreter), and runs executables on many different computer platforms. The IVM has been implemented on seven computer platforms (Win95/98/NT/2000, DOS, OS/2, Linux, FreeBSD, Solaris/x86, and Solaris/Sparc) so far. IVM executables developed on any platform, run on all seven platforms.

Irie Pascal's ability to generate executables which run on multiple platforms make it ideally suited for creating internet applications. The Common Gateway Interface (CGI) is a simple but powerful protocol for creating server side internet applications. Irie Pascal assists the creation of CGI scripts with built-in support for decoding and parsing URL encoded strings, as well as support for databases, and sending email. Irie Pascal also supports the UNIX #! trick that allows the location of the interpreter to be embedded inside the script making it easier to execute the script from a URL, since the URL need only refer to the script and not the interpreter.

Irie Pascal is highly compatible with Standard ( ISO/IEC 7185) Pascal. This high level of compatibility means that Irie Pascal shares Standard Pascal's strengths as a first language for beginners. These strengths include readable syntax, and extensive compile-time and run-time checking.

Irie Pascal supports many extensions to Standard Pascal, particularly in the areas of string, file/folder processing, and database programming, which make it useful for creating scripts and utilities. Irie Pascal's support for automatic run-time checking make it useful for creating quick and dirty programs (i.e. programs that are expected to be run only a few times or by only a few people and may not be worth spending a lot of time on).

6.2 Compliance

Irie Pascal complies with the requirements of level 0 of ISO/IEC 7185, with the following exceptions: (see the Irie Pascal Reference Manual, Appendix B - Deviations from ISO/IEC 7185).

NOTE: Irie Pascal compliance with ISO/IEC 7185 has not been formally certified by an external body.

6.3 License and distribution rights

IRIE PASCAL EVALUATION VERSION (OS/2 EDITION)

LICENSE STATEMENT AND DISCLAIMER OF WARRANTY

IMPORTANT - READ CAREFULLY This license statement and disclaimer of warranty constitutes a legal agreement ("License Agreement") between you (either as an individual or a single entity) and Stuart King ("Author") for the software product ("Software") identified above, including any software, media, and accompanying on-line or printed documentation.

BY INSTALLING, COPYING, OR OTHERWISE USING THE SOFTWARE, YOU AGREE TO BE BOUND BY ALL OF THE TERMS AND CONDITIONS OF THE LICENSE AGREEMENT.

Upon your acceptance of the terms and conditions of the License Agreement, the Author grants you the right to use the Software in the manner provided below.

This Software is owned by the Author and is protected by copyright law and international copyright treaty. Therefore, you must treat this Software like any other copyrighted material (e.g. a book), except that you may either make one copy of the Software solely for backup or archival purposes or transfer the Software to a single hard disk provided you keep the original solely for backup or archival purposes.

The Author grants to you as an individual, a personal, nonexclusive, non-transferable license to install and use the Software for evaluation purposes only. In particular, you may not distribute or cause to be distributed the Software or any programs you develop using the Software. You may install a copy of the Software on a computer and freely move the Software from one computer to another, provided that you are the only individual using the Software. If you are an entity, the Author grants you the right to designate one individual within your organization ("Named User") to have the right to use the Software in the manner provided above.

The Software might include source code, redistributable files, and/or other files provided by a third party vendor (Third Party Software). Since use of Third Party Software might be subject to license restrictions imposed by the third party vendor, you should refer to the on-line documentation (if any) provided with Third Party Software for any license restrictions imposed by the third party vendor. In any event, any license restrictions imposed by a third party vendor are in addition to, not in lieu of, the terms and conditions of the License Agreement.

DISCLAIMER OF WARRANTY

TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE AUTHOR DISCLAIMS ALL WARRANTIES AND CONDITIONS, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, WITH REGARD TO THE SOFTWARE, AND THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT SERVICES. THIS WARRANTY DISCLAIMER AFFECTS YOUR LEGAL RIGHTS, AND YOU MAY ALSO HAVE OTHER RIGHTS WHICH VARY FROM JURISDICTION TO JURISDICTION. SOME JURISDICTIONS DO NOT ALLOW EXCLUSIONS OF IMPLIED WARRANTIES OR LIMITATIONS ON HOW LONG AN IMPLIED WARRANTY LASTS, SO THE ABOVE EXCLUSION MAY NOT APPLY TO YOU.

HIGH RISK ACTIVITIES The Software is not fault-tolerant and is not designed, manufactured or intended for use or resale as on-line control equipment in hazardous environments requiring fail-safe performance, such as in the operation of nuclear facilities, aircraft navigation or communication systems, air traffic control, direct life support machines, or weapons systems, in which the failure of the Software could lead directly to death, personal injury, or severe physical or environmental damage ("High Risk Activities"). The Author specifically disclaims any express or implied warranty of fitness for High Risk Activities.

LIMITATION OF LIABILITY

IN NO EVENT SHALL THE AUTHOR BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CONSEQUENTIAL, SPECIAL, INCIDENTAL OR INDIRECT DAMAGES OF ANY KIND ARISING OUT OF OR RELATING TO THE SOFTWARE OR THE USE THEREOF (INCLUDING BUT NOT LIMITED TO LOST PROFITS OR OTHER ECONOMIC LOSS), EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN NO EVENT WILL THE AUTHOR'S LIABILITY FOR ANY CLAIM, WHETHER IN CONTRACT, TORT, OR ANY OTHER THEORY OF LIABILITY, EXCEED THE FEE PAID BY YOU FOR THE SOFTWARE THAT IS THE SUBJECT OF SUCH CLAIM. IF THE RELEVANT SOFTWARE WAS PROVIDED TO YOU AT NO CHARGE YOU AGREE THAT THE AUTHOR SHALL NOT BE LIABLE TO YOU FOR ANY DAMAGES. YOU AGREE THAT YOU ARE SOLELY RESPONSIBLE FOR ADEQUATE PROTECTION AND BACKUP OF THE DATA AND EQUIPMENT USED IN CONNECTION WITH THE SOFTWARE OR SUBSCRIPTION SERVICES, AND FURTHER AGREE THAT THE AUTHOR WILL NOT BE LIABLE FOR ANY DAMAGES THAT YOU MAY SUFFER IN CONNECTION WITH DOWNLOADING, INSTALLING, OR USING THE SOFTWARE. IF YOU ELECT NOT TO PURCHASE A LICENSE TO THE SOFTWARE, YOU FURTHER ACKNOWLEDGE THAT YOU ARE PROVIDED A REASONABLE TIME FRAME TO EVALUATE THE SOFTWARE AND AT THE END OF SUCH EVALUATION PERIOD YOU MAY ONLY ACCESS AND USE THE SOFTWARE IF YOU PURCHASE A LICENSE TO THE SOFTWARE. YOU AGREE THAT THE AUTHOR WILL NOT BE LIABLE FOR ANY DAMAGE THAT YOU MAY SUFFER IN CONNECTION WITH THE TERMINATION OF SUCH EVALUATION PERIOD AND YOUR INABILITY TO ACCESS AND USE THE SOFTWARE. THIS LIMITATION SHALL APPLY TO CLAIMS OF PERSONAL INJURY TO THE EXTENT PERMITTED BY LAW. THE LIMITATIONS IN THIS SECTION ARE SEPARATE AND INDEPENDENT OF ANY OTHER REMEDY LIMITATIONS IN THIS AGREEMENT AND SHALL NOT FAIL IF SUCH OTHER LIMITATION OR REMEDY FAILS. THE FEES AND OTHER PROVISIONS IN THIS AGREEMENT REFLECT THE ALLOCATION OF RISKS BETWEEN THE PARTIES. THIS SECTION IS AN ESSENTIAL ELEMENT OF THE BASIS OF THE BARGAIN BETWEEN THE PARTIES. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE EXCLUSIONS OR LIMITATIONS MAY NOT APPLY TO YOU.

TERMINATION

This Agreement shall terminate automatically if you fail to comply with the terms of this Agreement. This Agreement shall terminate if you do not purchase a license to the Software within a period of 30 calender days from the date the Software is first installed by you. No notice shall be required from the Author to effect such termination. You may also terminate this Agreement at any time by uninstalling and destroying all copies of the Software.

ENTIRE AGREEMENT

You agree that this is the entire agreement between you and the Author, and that it supersedes any prior agreement, whether written or oral, and all other communications between the Author and you relating to the subject matter of this Agreement. This Agreement may be amended, modified or supplemented only by a writing that is signed by the authorized representatives of both parties.

RESERVATION OF RIGHTS

All rights not expressly granted in this Agreement are reserved by the Author. ©1998-2003

6.4 Disclaimer-Agreement

See the license statement for the warranty disclaimer.

6.5.1 Getting help from the manuals

The Irie Pascal User's Manual

The Irie Pascal User's Manual, which is the manual you are currently reading, provides help on using Irie Pascal.

The Programmer's Reference Manual

The Irie Pascal Programmer's Reference Manual provides help on the Irie Pascal programming language.

6.5.2 Getting help from the website

The Irie Tools Website

The Irie Tools website is an online source of up-to-date information about Irie Pascal. You can access this website at www.irietools.com.

6.5.3 Contacting customer support

Email Help

Irie Pascal help is also available at support@irietools.com. Queries to this email address are normally answered within 24 hours.

6.6.1 Checking prices

Irie Pascal is available in a number of different editions, and at the time this help file was created the available editions were: Windows, DOS, Linux, FreeBSD, Solaris/x86, Solaris/Sparc, and Universal. The price Irie Pascal licenses varies depending on the edition, the number of licenses, and the currency.

The Irie Tools website is an online source of up-to-date pricing information. You can access this website at www.irietools.com. Or you can view the pricing information contained in this Manual.

6.6.2.1 Irie Pascal Windows Edition Prices (in US$)

No. UsersPrice (US$)
   1    59.95
   5   249.95
  10   449.95
  20   849.95
  40 1,499.95
 100 2,499.95

All prices are quoted in US$ and are guaranteed until March 31, 2004.

6.6.2.2 Irie Pascal Windows Edition Prices (in CA$)

No. UsersPrice (CA$)
   1    95.95
   5   399.95
  10   749.95
  20 1,359.95
  40 2,399.95
 100 3,999.95

All prices are quoted in CA$ and are guaranteed until March 31, 2004.

6.6.2.3 Irie Pascal Windows Edition Prices (in UK)

No. UsersPrice (UKŁ)
   1    39.95
   5   169.95
  10   299.95
  20   569.95
  40   999.95
 100 1,699.95

All prices are quoted in UKŁ and are guaranteed until Match 31, 2004.

6.6.2.4 Irie Pascal Windows Edition Prices (in Euros)

No. UsersPrice (Euros)
   1    59.95
   5   249.95
  10   449.95
  20   849.95
  40 1,499.95
 100 2,499.95

All prices are quoted in Euros and are guaranteed until March 31, 2004.

6.6.3.1 Irie Pascal DOS Edition Prices (in US$)

No. UsersPrice (US$)
   1    59.95
   5   249.95
  10   449.95
  20   849.95
  40 1,499.95
 100 2,499.95

All prices are quoted in US$ and are guaranteed until March 31, 2004.

6.6.3.2 Irie Pascal DOS Edition Prices (in CA$)

No. UsersPrice (CA$)
   1    95.95
   5   399.95
  10   749.95
  20 1,359.95
  40 2,399.95
 100 3,999.95

All prices are quoted in CA$ and are guaranteed until March 31, 2004.

6.6.3.3 Irie Pascal DOS Edition Prices (in UK)

No. UsersPrice (UKŁ)
   1    39.95
   5   169.95
  10   299.95
  20   569.95
  40   999.95
 100 1,699.95

All prices are quoted in UKŁ and are guaranteed until March 31, 2004.

6.6.3.4 Irie Pascal DOS Edition Prices (in Euros)

No. UsersPrice (Euros)
   1    59.95
   5   249.95
  10   449.95
  20   849.95
  40 1,499.95
 100 2,499.95

All prices are quoted in Euros and are guaranteed until March 31, 2004.

6.6.4.1 Irie Pascal Linux Edition Prices (in US$)

No. UsersPrice (US$)
   1    59.95
   5   249.95
  10   449.95
  20   849.95
  40 1,499.95
 100 2,499.95

All prices are quoted in US$ and are guaranteed until March 31, 2004.

6.6.4.2 Irie Pascal Linux Edition Prices (in CA$)

No. UsersPrice (CA$)
   1    95.95
   5   399.95
  10   749.95
  20 1,359.95
  40 2,399.95
 100 3,999.95

All prices are quoted in CA$ and are guaranteed until March 31, 2004.

6.6.4.3 Irie Pascal Linux Edition Prices (in UK)

No. UsersPrice (UKŁ)
   1    39.95
   5   169.95
  10   299.95
  20   569.95
  40   999.95
 100 1,699.95

All prices are quoted in UKŁ and are guaranteed until March 31, 2004.

6.6.4.4 Irie Pascal Linux Edition Prices (in Euros)

No. UsersPrice (Euros)
   1    59.95
   5   249.95
  10   449.95
  20   849.95
  40 1,499.95
 100 2,499.95

All prices are quoted in Euros and are guaranteed until March 31, 2004.

6.6.5.1 Irie Pascal FreeBSD Edition Prices (in US$)

No. UsersPrice (US$)
   1    59.95
   5   249.95
  10   449.95
  20   849.95
  40 1,499.95
 100 2,499.95

All prices are quoted in US$ and are guaranteed until March 31, 2004.

6.6.5.2 Irie Pascal FreeBSD Edition Prices (in CA$)

No. UsersPrice (CA$)
   1    95.95
   5   399.95
  10   749.95
  20 1,359.95
  40 2,399.95
 100 3,999.95

All prices are quoted in CA$ and are guaranteed until March 31, 2004.

6.6.5.3 Irie Pascal FreeBSD Edition Prices (in UK)

No. UsersPrice (UKŁ)
   1    39.95
   5   169.95
  10   299.95
  20   569.95
  40   999.95
 100 1,699.95

All prices are quoted in UKŁ and are guaranteed until March 31, 2004.

6.6.5.4 Irie Pascal FreeBSD Edition Prices (in Euros)

No. UsersPrice (Euros)
   1    59.95
   5   249.95
  10   449.95
  20   849.95
  40 1,499.95
 100 2,499.95

All prices are quoted in Euros and are guaranteed until March 31, 2004.

6.6.6.1 Irie Pascal Solaris/x86 Edition Prices (in US$)

No. UsersPrice (US$)
   1    59.95
   5   249.95
  10   449.95
  20   849.95
  40 1,499.95
 100 2,499.95

All prices are quoted in US$ and are guaranteed until March 31, 2004.

6.6.6.2 Irie Pascal Solaris/x86 Edition Prices (in CA$)

No. UsersPrice (CA$)
   1    95.95
   5   399.95
  10   749.95
  20 1,359.95
  40 2,399.95
 100 3,999.95

All prices are quoted in CA$ and are guaranteed until March 31, 2004.

6.6.6.3 Irie Pascal Solaris/x86 Edition Prices (in UK)

No. UsersPrice (UKŁ)
   1    39.95
   5   169.95
  10   299.95
  20   569.95
  40   999.95
 100 1,699.95

All prices are quoted in UKŁ and are guaranteed until March 31, 2004.

6.6.6.4 Irie Pascal Solaris/x86 Edition Prices (in Euros)

No. UsersPrice (Euros)
   1    59.95
   5   249.95
  10   449.95
  20   849.95
  40 1,499.95
 100 2,499.95

All prices are quoted in Euros and are guaranteed until March 31, 2004.

6.6.7.1 Irie Pascal Solaris/Sparc Edition Prices (in US$)

No. UsersPrice (US$)
   1    59.95
   5   249.95
  10   449.95
  20   849.95
  40 1,499.95
 100 2,499.95

All prices are quoted in US$ and are guaranteed until March 31, 2004.

6.6.7.2 Irie Pascal Solaris/Sparc Edition Prices (in CA$)

No. UsersPrice (CA$)
   1    95.95
   5   399.95
  10   749.95
  20 1,359.95
  40 2,399.95
 100 3,999.95

All prices are quoted in CA$ and are guaranteed until March 31, 2004.

6.6.7.3 Irie Pascal Solaris/Sparc Edition Prices (in UK)

No. UsersPrice (UKŁ)
   1    39.95
   5   169.95
  10   299.95
  20   569.95
  40   999.95
 100 1,699.95

All prices are quoted in UKŁ and are guaranteed until March 31, 2004.

6.6.7.4 Irie Pascal Solaris/Sparc Edition Prices (in Euros)

No. UsersPrice (Euros)
   1    59.95
   5   249.95
  10   449.95
  20   849.95
  40 1,499.95
 100 2,499.95

All prices are quoted in Euros and are guaranteed until March 31, 2004.

6.6.8.1 Irie Pascal OS/2 Edition Prices (in US$)

No. UsersPrice (US$)
   1    59.95
   5   249.95
  10   449.95
  20   849.95
  40 1,499.95
 100 2,499.95

All prices are quoted in US$ and are guaranteed until March 31, 2004.

6.6.8.2 Irie Pascal OS/2 Edition Prices (in CA$)

No. UsersPrice (CA$)
   1    95.95
   5   399.95
  10   749.95
  20 1,359.95
  40 2,399.95
 100 3,999.95

All prices are quoted in CA$ and are guaranteed until March 31, 2004.

6.6.8.3 Irie Pascal OS/2 Edition Prices (in UK)

No. UsersPrice (UKŁ)
   1    39.95
   5   169.95
  10   299.95
  20   569.95
  40   999.95
 100 1,699.95

All prices are quoted in UKŁ and are guaranteed until March 31, 2004.

6.6.8.4 Irie Pascal OS/2 Edition Prices (in Euros)

No. UsersPrice (Euros)
   1    59.95
   5   249.95
  10   449.95
  20   849.95
  40 1,499.95
 100 2,499.95

All prices are quoted in Euros and are guaranteed until March 31, 2004.

6.6.9.1 Irie Pascal Universal Edition Prices (in US$)

No. UsersPrice (US$)
   1    99.95
   5   399.95
  10   749.95
  20 1,359.95
  40 2,399.95
 100 3,999.95

All prices are quoted in US$ and are guaranteed until March 31, 2004.

6.6.9.2 Irie Pascal Universal Edition Prices (in CA$)

No. UsersPrice (CA$)
   1   159.95
   5   639.95
  10 1,199.95
  20 2,199.95
  40 3,899.95
 100 6,399.95

All prices are quoted in CA$ and are guaranteed until March 31, 2004.

6.6.9.3 Irie Pascal Universal Edition Prices (in UK)

No. UsersPrice (UKŁ)
   1    69.95
   5   269.95
  10   499.95
  20   899.95
  40 1,599.95
 100 2,699.95

All prices are quoted in UKŁ and are guaranteed until March 31, 2004.

6.6.9.4 Irie Pascal Universal Edition Prices (in Euros)

No. UsersPrice (Euros)
   1    99.95
   5   399.95
  10   749.95
  20 1,359.95
  40 2,399.95
 100 3,999.95

All prices are quoted in Euros and are guaranteed until March 31, 2004.

6.7.1 Why you should buy a license

There are basically two reasons why you should buy an Irie Pascal license.

So if you find Irie Pascal useful, it makes sense to buy a license to use it.

6.7.2 How do you buy a license

Buying an Irie Pascal license is quick, easy, and secure. You can choose from a number of options when making your purchase. These options are described below.

Buying Licenses:

Not all combinations of options are possible (for example all purchase orders must be sent directly to Irie Tools and not to the other payment processors). For this reason it is recommended that you allow the Irie Tools website to guide you through the buying process. Don't worry it is easier to buy a license than it is to describe how to buy a license.

From the Irie Tools website (at www.irietools.com/iriepascal/buy.html), you will be able to have an order form generated and emailed to you (you would then complete the order form and fax it in or mail it in along with your payment). From the website you will also be able to go to one of the online credit card processors which can accept your payment. The online credit card processors have been carefully selected to ensure that your payment information will be secure, and allow you to download Irie Pascal immediately after your payment is processed.

Sales enquiries can be sent to sales@irietools.com.

6.7.3 Buying by the web

The Irie Tools website at www.irietools.com/iriepascal/buy.html can guide you through the process of buying an Irie Pascal license.

From the website you can have an order form generated (which you can print using your browser). You can have the order form emailed to you (you can then print it using your email program). After printing the order form you would then complete it and fax it (see buying by fax for more information) or mail it (see buying by mail) for more information.

From the website you can be transferred to one of the online payment processors which can accept your payment. The online payment processors have been carefully selected to ensure that your payment information will be secure. If you pay through an online payment processor then you will have the option of downloading Irie Pascal immediately after your payment is processed.

Sales enquiries can be sent to sales@irietools.com.

6.7.4 Buying by telephone

If you are paying by credit card then it is possible to phone in your order. Telephone orders are accepted by ShareIt (one of the online payment processors authorized to accept payments for Irie Pascal licenses). You can access ShareIt through the Irie Tools website at www.irietools.com/iriepascal/buy.html or you can go directly to ShareIt at www.ShareIt.com and search for Irie Pascal.

NOTE: ShareIt has been carefully selected as an authorized payment processor to ensure that your payment information will be secure.

Sales enquiries can be sent to sales@irietools.com.

6.7.5 Buying by Fax

If you are paying with a credit card or if you are sending in a purchase order then it is possible to fax in your order.

First you will need to get an order form. You can get an order form from the Irie Tools website (at www.irietools.com/iriepascal/buy.html), or by printing an appripriate page from this manual. If you get an order from the Irie Tools website, you will be able to have an order form generated for you, which you can then print or have it emailed to you.

If you are paying with a credit card then you will need to fill in the order form and fax it to ShareIt (one of the online payment processors authorized to accept payments for Irie Pascal licenses). Go to www.ShareIt.com.

If you sending in a purchase order then you must fax it along with the completed order form. NOTE: If you are not already a customer of Irie Tools it is best to check whether purchase orders from your company/institution will be accepted before ordering. See Purchase orders for information on using purchase orders.

Sales enquiries can be sent to sales@irietools.com.

6.7.6 Buying by mail

Irie Pascal orders can be sent in by postal mail.

First you will need to get an order form. You can get an order form from the Irie Tools website (at www.irietools.com/iriepascal/buy.html), or by printing an appripriate page from this manual. If you get an order from the Irie Tools website, you will be able to have an order form generated for you, which you can then print or have it emailed to you.

Then you will need to fill in the order form and mail it to:

Attn: Stuart King
Irie Tools
221 S. State Road 7, MB #247
Ft. Lauderdale, FL, 33317, USA

If you are using a purchase order then you must mail it along with the completed order form. NOTE: If you are not already a customer of Irie Tools it is best to check whether purchaseorders from your company/institution will be accepted before ordering. See Purchase orders for information on using purchase orders.

If you are using a check or money order then you should make it out to Irie Tools and mail it along with the completed order form.

Sales enquiries can be sent to sales@irietools.com.

6.7.7 Buying by wire transfer

If you are paying by wire transfer card then you should order through ShareIt (one of the online payment processors authorized to accept payments for Irie Pascal licenses). You can access ShareIt through the Irie Tools website at www.irietools.com or you can go directly to ShareIt at www.ShareIt.com and search for Irie Pascal.

NOTE: ShareIt has been carefully selected as an authorized payment processor to ensure that your payment information will be secure.

Sales enquiries can be sent to sales@irietools.com.

6.7.8 Purchase orders

Purchase orders are accepted from government and accredited educational institutions and major corporations, provided that they are submitted on purchase order forms with a purchase order number. You must include an Irie Pascal order form along with your purchase order. NOTE: If you are not already a customer of Irie Tools it is best to check whether purchase orders from your company/institution will be accepted before ordering.

Purchase orders can be mailed to:

Attn: Stuart King
Irie Tools
221 S. State Road 7, MB #247
Ft. Lauderdale, FL, 33317, USA

or faxed to 1-876-929-8184.

Sales enquiries can be sent to sales@irietools.com.

6.7.9.1.1 Irie Pascal (Windows edition) US$ Order Form

No. UsersUnit PriceQuantityAmount
    1    59.95________$_____________
    5   249.95________$_____________
   10   449.95________$_____________
   20   849.95________$_____________
   40 1,499.95________$_____________
  100 2,499.95________$_____________
Shipping
& Handling     5.00$_____________
TOTAL$_____________

[  ] Check/Money Order enclosed     [  ] Charge credit card

[  ] AmEx      [  ] MasterCard      [  ] Visa

Account #:__________________________________________________

Expiration Date:____________________________________________

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in US$ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.1.2 Irie Pascal (Windows Edition) CA$ Order Form

No. UsersUnit PriceQuantityAmount
    1    95.95________$_____________
    5   399.95________$_____________
   10   749.95________$_____________
   20 1,359.95________$_____________
   40 2,399.95________$_____________
  100 3,999.95________$_____________
Shipping
& Handling     8.00$_____________
TOTAL$_____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in CA$ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.1.3 Irie Pascal (Windows Edition) UK Order Form

No. UsersUnit PriceQuantityAmount
    1    39.95________ _____________
    5   169.95________ _____________
   10   299.95________ _____________
   20   569.95________ _____________
   40   999.95________ _____________
  100 1,699.95________ _____________
Shipping
& Handling     3.00 _____________
TOTAL _____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in UKŁ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.1.4 Irie Pascal (Windows Edition) Euro Order Form

No. UsersUnit PriceQuantityAmount
    1    59.95_____________________
    5   249.95_____________________
   10   449.95_____________________
   20   849.95_____________________
   40 1,499.95_____________________
  100 2,499.95_____________________
Shipping
& Handling     5.00_____________
TOTAL_____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in Euros and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.2.1 Irie Pascal (DOS Edition) US$ Order Form

No. UsersUnit PriceQuantityAmount
    1    59.95________$_____________
    5   249.95________$_____________
   10   449.95________$_____________
   20   849.95________$_____________
   40 1,499.95________$_____________
  100 2,499.95________$_____________
Shipping
& Handling     5.00$_____________
TOTAL$_____________

[  ] Check/Money Order enclosed     [  ] Charge credit card

[  ] AmEx      [  ] MasterCard      [  ] Visa

Account #:__________________________________________________

Expiration Date:____________________________________________

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in US$ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.2.2 Irie Pascal (DOS Edition) CA$ Order Form

No. UsersUnit PriceQuantityAmount
    1    95.95________$_____________
    5   399.95________$_____________
   10   749.95________$_____________
   20 1,359.95________$_____________
   40 2,399.95________$_____________
  100 3,999.95________$_____________
Shipping
& Handling     8.00$_____________
TOTAL$_____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in CA$ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.2.3 Irie Pascal (DOS Edition) UK Order Form

No. UsersUnit PriceQuantityAmount
    1    39.95________ _____________
    5   169.95________ _____________
   10   299.95________ _____________
   20   569.95________ _____________
   40   999.95________ _____________
  100 1,699.95________ _____________
Shipping
& Handling     3.00 _____________
TOTAL _____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in UKŁ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.2.4 Irie Pascal (DOS Edition) Euro Order Form

No. UsersUnit PriceQuantityAmount
    1    59.95_____________________
    5   249.95_____________________
   10   449.95_____________________
   20   849.95_____________________
   40 1,499.95_____________________
  100 2,499.95_____________________
Shipping
& Handling     5.00_____________
TOTAL_____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in Euros and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.3.1 Irie Pascal (Linux Edition) US$ Order Form

No. UsersUnit PriceQuantityAmount
    1    59.95________$_____________
    5   249.95________$_____________
   10   449.95________$_____________
   20   849.95________$_____________
   40 1,499.95________$_____________
  100 2,499.95________$_____________
Shipping
& Handling     5.00$_____________
TOTAL$_____________

[  ] Check/Money Order enclosed     [  ] Charge credit card

[  ] AmEx      [  ] MasterCard      [  ] Visa

Account #:__________________________________________________

Expiration Date:____________________________________________

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in US$ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.3.2 Irie Pascal (Linux Edition) CA$ Order Form

No. UsersUnit PriceQuantityAmount
    1    95.95________$_____________
    5   399.95________$_____________
   10   744.95________$_____________
   20 1,359.95________$_____________
   40 2,399.95________$_____________
  100 3,999.95________$_____________
Shipping
& Handling     8.00$_____________
TOTAL$_____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in CA$ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.3.3 Irie Pascal (Linux Edition) UK Order Form

No. UsersUnit PriceQuantityAmount
    1    39.95________ _____________
    5   169.95________ _____________
   10   299.95________ _____________
   20   569.95________ _____________
   40   999.95________ _____________
  100 1,699.95________ _____________
Shipping
& Handling     3.00 _____________
TOTAL _____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in UKŁ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.3.4 Irie Pascal (Linux Edition) Euro Order Form

No. UsersUnit PriceQuantityAmount
    1    59.95_____________________
    5   249.95_____________________
   10   449.95_____________________
   20   849.95_____________________
   40 1,499.95_____________________
  100 2,499.95_____________________
Shipping
& Handling     5.00_____________
TOTAL_____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in Euros and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.4.1 Irie Pascal (FreeBSD Edition) US$ Order Form

No. UsersUnit PriceQuantityAmount
    1    59.95________$_____________
    5   249.95________$_____________
   10   449.95________$_____________
   20   849.95________$_____________
   40 1,499.95________$_____________
  100 2,499.95________$_____________
Shipping
& Handling     5.00$_____________
TOTAL$_____________

[  ] Check/Money Order enclosed     [  ] Charge credit card

[  ] AmEx      [  ] MasterCard      [  ] Visa

Account #:__________________________________________________

Expiration Date:____________________________________________

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in US$ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.4.2 Irie Pascal (FreeBSD Edition) CA$ Order Form

No. UsersUnit PriceQuantityAmount
    1    95.95________$_____________
    5   399.95________$_____________
   10   749.95________$_____________
   20 1,359.95________$_____________
   40 2,399.95________$_____________
  100 3,999.95________$_____________
Shipping
& Handling     8.00$_____________
TOTAL$_____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in CA$ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.4.3 Irie Pascal (FreeBSD Edition) UK Order Form

No. UsersUnit PriceQuantityAmount
    1    39.95________ _____________
    5   169.95________ _____________
   10   299.95________ _____________
   20   569.95________ _____________
   40   999.95________ _____________
  100 1,699.95________ _____________
Shipping
& Handling     3.00 _____________
TOTAL _____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in UKŁ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.4.4 Irie Pascal (FreeBSD Edition) Euro Order Form

No. UsersUnit PriceQuantityAmount
    1    59.95_____________________
    5   249.95_____________________
   10   449.95_____________________
   20   849.95_____________________
   40 1,499.95_____________________
  100 2,499.95_____________________
Shipping
& Handling     5.00_____________
TOTAL_____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in Euros and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.5.1 Irie Pascal (Solaris/x86 Edition) US$ Order Form

No. UsersUnit PriceQuantityAmount
    1    59.95________$_____________
    5   249.95________$_____________
   10   449.95________$_____________
   20   849.95________$_____________
   40 1,499.95________$_____________
  100 2,499.95________$_____________
Shipping
& Handling     5.00$_____________
TOTAL$_____________

[  ] Check/Money Order enclosed     [  ] Charge credit card

[  ] AmEx      [  ] MasterCard      [  ] Visa

Account #:__________________________________________________

Expiration Date:____________________________________________

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in US$ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.5.2 Irie Pascal (Solaris/x86 Edition) CA$ Order Form

No. UsersUnit PriceQuantityAmount
    1    95.95________$_____________
    5   399.95________$_____________
   10   749.95________$_____________
   20 1,359.95________$_____________
   40 2,399.95________$_____________
  100 3,999.95________$_____________
Shipping
& Handling     8.00$_____________
TOTAL$_____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in CA$ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.5.3 Irie Pascal (Solaris/x86 Edition) UK Order Form

No. UsersUnit PriceQuantityAmount
    1    39.95________ _____________
    5   169.95________ _____________
   10   299.95________ _____________
   20   569.95________ _____________
   40   999.95________ _____________
  100 1,699.95________ _____________
Shipping
& Handling     3.00 _____________
TOTAL _____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in UKŁ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.5.4 Irie Pascal (Solaris/x86 Edition) Euro Order Form

No. UsersUnit PriceQuantityAmount
    1    59.95_____________________
    5   249.95_____________________
   10   449.95_____________________
   20   849.95_____________________
   40 1,499.95_____________________
  100 2,499.95_____________________
Shipping
& Handling     5.00_____________
TOTAL_____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in Euros and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.6.1 Irie Pascal (Solaris/Sparc Edition) US$ Order Form

No. UsersUnit PriceQuantityAmount
    1    59.95________$_____________
    5   249.95________$_____________
   10   449.95________$_____________
   20   849.95________$_____________
   40 1,499.95________$_____________
  100 2,499.95________$_____________
Shipping
& Handling     5.00$_____________
TOTAL$_____________

[  ] Check/Money Order enclosed     [  ] Charge credit card

[  ] AmEx      [  ] MasterCard      [  ] Visa

Account #:__________________________________________________

Expiration Date:____________________________________________

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in US$ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.6.2 Irie Pascal (Solaris/Sparc Edition) CA$ Order Form

No. UsersUnit PriceQuantityAmount
    1    95.95________$_____________
    5   399.95________$_____________
   10   749.95________$_____________
   20 1,359.95________$_____________
   40 2,399.95________$_____________
  100 3,999.95________$_____________
Shipping
& Handling     8.00$_____________
TOTAL$_____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in CA$ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.6.3 Irie Pascal (Solaris/Sparc Edition) UK Order Form

No. UsersUnit PriceQuantityAmount
    1    39.95________ _____________
    5   169.95________ _____________
   10   299.95________ _____________
   20   569.95________ _____________
   40   999.95________ _____________
  100 1,699.95________ _____________
Shipping
& Handling     3.00 _____________
TOTAL _____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in UKŁ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.6.4 Irie Pascal (Solaris/Sparc Edition) Euro Order Form

No. UsersUnit PriceQuantityAmount
    1    59.95_____________________
    5   249.95_____________________
   10   449.95_____________________
   20   849.95_____________________
   40 1,499.95_____________________
  100 2,499.95_____________________
Shipping
& Handling     5.00_____________
TOTAL_____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in Euros and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.7.1 Irie Pascal (OS/2 Edition) US$ Order Form

No. UsersUnit PriceQuantityAmount
    1    59.95________$_____________
    5   249.95________$_____________
   10   449.95________$_____________
   20   849.95________$_____________
   40 1,499.95________$_____________
  100 2,499.95________$_____________
Shipping
& Handling     5.00$_____________
TOTAL$_____________

[  ] Check/Money Order enclosed     [  ] Charge credit card

[  ] AmEx      [  ] MasterCard      [  ] Visa

Account #:__________________________________________________

Expiration Date:____________________________________________

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in US$ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.7.2 Irie Pascal (OS/2 Edition) CA$ Order Form

No. UsersUnit PriceQuantityAmount
    1    95.95________$_____________
    5   399.95________$_____________
   10   749.95________$_____________
   20 1,359.95________$_____________
   40 2,399.95________$_____________
  100 3,999.95________$_____________
Shipping
& Handling     8.00$_____________
TOTAL$_____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in CA$ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.7.3 Irie Pascal (OS/2 Edition) UK Order Form

No. UsersUnit PriceQuantityAmount
    1    39.95________ _____________
    5   169.95________ _____________
   10   299.95________ _____________
   20   569.95________ _____________
   40   999.95________ _____________
  100 1,699.95________ _____________
Shipping
& Handling     3.00 _____________
TOTAL _____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in UKŁ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.7.4 Irie Pascal (OS/2 Edition) Euro Order Form

No. UsersUnit PriceQuantityAmount
    1    59.95_____________________
    5   249.95_____________________
   10   449.95_____________________
   20   849.95_____________________
   40 1,499.95_____________________
  100 2,499.95_____________________
Shipping
& Handling     5.00_____________
TOTAL_____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in Euros and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.8.1 Irie Pascal (Universal Edition) US$ Order Form

No. UsersUnit PriceQuantityAmount
    1    99.95________$_____________
    5   399.95________$_____________
   10   749.95________$_____________
   20 1,359.95________$_____________
   40 2,399.95________$_____________
  100 3,999.95________$_____________
Shipping
& Handling     5.00$_____________
TOTAL$_____________

[  ] Check/Money Order enclosed     [  ] Charge credit card

[  ] AmEx      [  ] MasterCard      [  ] Visa

Account #:__________________________________________________

Expiration Date:____________________________________________

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in US$ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.8.2 Irie Pascal (Universal Edition) CA$ Order Form

No. UsersUnit PriceQuantityAmount
    1   159.95________$_____________
    5   639.95________$_____________
   10 1,199.95________$_____________
   20 2,199.95________$_____________
   40 3,899.95________$_____________
  100 6,399.95________$_____________
Shipping
& Handling     8.00$_____________
TOTAL$_____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in CA$ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.8.3 Irie Pascal (Universal Edition) UK Order Form

No. UsersUnit PriceQuantityAmount
    1    69.95________ _____________
    5   269.95________ _____________
   10   499.95________ _____________
   20   899.95________ _____________
   40 1,599.95________ _____________
  100 2,699.95________ _____________
Shipping
& Handling     3.00 _____________
TOTAL _____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in UKŁ and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

6.7.9.8.4 Irie Pascal (Universal Edition) Euro Order Form

No. UsersUnit PriceQuantityAmount
    1    99.95_____________________
    5   399.95_____________________
   10   749.95_____________________
   20 1,359.95_____________________
   40 2,399.95_____________________
  100 3,999.95_____________________
Shipping
& Handling     5.00_____________
TOTAL_____________

[  ] Check/Money Order enclosed

Name:_______________________________________________________

Address:____________________________________________________

City/State/Province:________________________________________

Country/Postal Code:________________________________________

Telephone:_______________________________________ [optional]

Email Address:___________________________________ [optional]

How did you hear about Irie Pascal?_________________________

_________________________________________________ [optional]

[  ] Tick this box to join the Irie Pascal mailing list.

Please do not send cash. Make checks or money orders payable to Irie Tools. All prices are quoted in Euros and are guaranteed until March 31, 2004. Please allow two to four weeks for delivery. If you fill in your email address you will be notified by email when your order is shipped.

" Assignment overflow"

When this option is enabled, your program will check each time a value is assigned to a string or set variable, to make sure that the value is not too long to fit. If the value it too long to fit in the variable then an assignment overflow error is generated.

" I/O errors"

When this option is enabled, your program will check each I/O operation for errors.

" Range errors"

When this option is enabled, your program will check for range errors. Some possible causes of range errors are:

" Stack overflow"

When this option is enabled, your program checks for stack overflow or underflow before each program statement is executed. When this option is not enabled, your program checks for stack overflow or underflow only at the beginning and end of each function/procedure call and when large values are placed on the stack.

" Using undefined values"

When this option is enabled, your program checks each time a value, from a variable, or returned by a function call, is accessed, to make sure that the value is not undefined. NOTE: Not all values can be checked, checks are only made for values of the following types:

Accesses to values of types: char, integer, record types and set types (Bit set representation) are not checked.

" Using in-active variants"

This check box controls whether your program checks each time a field of a variant is accessed, to make sure that the variant is active.

" On the console screen"

This check box controls whether run-time errors are displayed on your program's console window.

" in message boxes"

This check box controls whether run-time errors are displayed in Windows' message boxes.

" in log files"

This check box controls whether run-time errors are logged to a file named name.log (where name is the name of your program).

" Enable asserts"

This check box controls whether the compiler generates code for the built-in procedure assert. NOTE: Since the compiler parses assert procedures whether or not this check box is checked, compile-time errors in assert procedures are reported regardless of the setting of this check box.

" Generate Windows NT/2000 service application"

Check this box to compile your program as a Windows NT/2000 service. NOTE: Your program must be a .EXE executable.

" Use short-circuit evaluation"

This check box controls whether your program uses short-circuit evaluation for the boolean operators and and or. When short-circuit evaluation is used for the boolean and operator, your program evaluates the left-hand operand and if the result is false, then the right-hand operand is not evaluated because the result of the operation must be false. When short-circuit evaluation is used for the boolean or operator, your program evaluates the left-hand operand and if the result is true, then the right-hand operand is not evaluated because the result of the operation must be true.

You might want to disable short-circuit evaluation if you need the side-effects of evaluating the right operand. For example, suppose the right operand is a call to a function which modifies some global variables (a side-effect) in addition to returning a boolean value, then short-circuit evaluation might cause the function not to be called and therefore the global variables will not get modified. If you want to make sure that the right operand is always evaluated then disable short-circuit evaluation.

" Insert line-number debugging information"

This check box controls whether line-number debugging information is inserted into your program. Line number debugging information makes your program larger, but allows for more meaningful run-time error messages since they will include number of the source line that caused the error.

" Specify align size"

This allows you to control the maximum alignment used by the compiler. Some CPUs (including those in the Intel 80x86 family) access data faster if it is aligned on an address which is a multiple of the size of the data. Suppose the CPU is accessing a real which is 8 bytes long, then for fastest access, the real should be on an address which is a multiple of 8 (for example 0, 8, 16, 24, 32, etc).

The compiler stores variables in memory at the lowest available address which is a multiple of either the variable's size or the maximum alignment, whichever is smaller.

For example suppose you compile the following program and the maximum alignment is 4.

     program x(output);
     var
        c : char;
        i : integer;
        b : boolean;
        r : real;
     begin
     end.

The compiler needs to decide where to store the variables c, i, b and r. The first variable c gets stored at address 0, and since c is a char variable (which are 1 byte long) the available addresses are from 1 upwards. The second variable i is an integer variable (which are 4 bytes long). The lowest available address which is a multiple of the variable size is 4 and the lowest available address which is a multiple of the maximum alignment is also 4. So the compiler stores i at address 4, and the available address are from 8 upwards (since i is 4 bytes long). The third variable b is a boolean variable (which are 4 bytes long). The lowest available address which is a multiple of the variable size is 8 and the lowest available address which is a multiple of the maximum alignment is also 8. So the compiler stores b at address 8, and the available address are from 12 upwards (since b is 4 bytes long). The fourth variable r is a real variable (which are 8 bytes long). The lowest available address which is a multiple of the variable size is 16 but the lowest available address which is a multiple of the maximum alignment is 12. So the compiler stores r at address 12 (since 12 is less than 16).

In general if you set maximum alignment to 1 then you waste no memory but you get fastest access only for chars. If you set the maximum alignment to 4 you may waste memory when storing all variables except char, but you get the fastest access to all variables except real. If you set the maximum alignment to 8 you may waste memory when storing all variables except char, but you get the fastest access to variables of all types.

If you are not sure about the maximum alignment to use just leave the default (4).

" Specify stack size"

This allows you to control the size of your program's stack (in Kilobytes). The default stack size (64K) should be more than enough for the vast majority of programs. However if your program is heavily recursive or has functions that need a large amount of space for local variables or parameters then you can increase this value up to a maximum of 1024K (1MB). On the other hand you can also reduce the size of your program's stack (not recommended).

" Use tab character"

When this check box is checked the editor will use the tab character to store tabs. If tab characters are used then you can adjust the size of the tabs using the tab size checkbox.

When this check box is not checked, the editor will convert tabs to spaces before storing them. Tabs are converted to spaces whether they are entered using the keyboard, or occur in files opened by the editor.

" Auto-indent lines"

This check box controls whether the editor will automatically indent new lines to match the indentation of the previous line.

" Create backup files"

This check box controls whether the editor will create a backup when files are saved. The backup file has the same name as the original file, except with the extension (.bak). If the original file already has a (.bak) extension then no backup is created.

" Double-click performs word search"

When this check box is checked double-clicking on a word in the editor will cause the IDE to search the Irie Pascal Programmer's Reference Manual for help on that word.

When this check box is not checked double-clicking on a word in the editor will cause the editor to select the word.

" Tab size"

This allows you to specify the number of characters between tab stops. The default tab size is 8. If you use tabs to indent your programs you might want to reduce this size so that more of your code fits on the screen.

" Name of your program's executable"

If you want to change the name of the executable generated by the compiler, enter the new name here. By default, the name of the executable generated by the compiler will be the same as the name of the project, except with the extension (.IVM). If you enter a name with the extension (.EXE), the compiler will generate a true (.EXE) executable. If the name here does not have an extension or has an extension other than (.EXE) then the compiler will generate an (.IVM) executable.

" Arguments passed by the IDE"

This is where you would enter any arguments you want to pass to your program when it is run from inside the IDE.

" #! header"

This is where you would enter any #! header that you want in the executable generated by the compiler. UNIX like operating systems such as Linux, FreeBSD, and Solaris will use the #! header to locate the interpreter. This allows you to run your executable without specifying the interpreter (a necessity for CGI applications). NOTE: You also need to set the executable permission bit of the executable for this to work. IMPORTANT: This header is ignored under non-UNIX like operating systems, so including this header does not prevent the executable from running under any supported operating system.

For example, if you plan to deploy your executable on Linux, and you know that the full pathname of the interpreter is /usr/local/bin/ivm, then you would just enter that pathname into this text box, and the compiler will generate the #! header for you.

NOTE: The command-line compiler can also generate #! headers (see the -h compiler option). If you wish to add, change, or delete the #! header of an existing executable then you can use the Irie Header Utility (see using the Irie Header Utility). Which can be useful if you can't, or don't want to recompile the program.

" Allow nested comments"

This check box controls whether nested comments (which are comments inside other comments) are supported. For example

   (* outer (* inner comment *) comment *)

When nested comments are not supported the example comment above will terminate at the first *) so only

   (* outer (* inner comment *)

will be treated as a comment. When nested comments are supported the compiler recognizes the end of comments only when the number of close comment markers matches the number of open comment markers. So the example comment above will terminate only after the second *).

Both open comment markers (* and { are considered to be equivalent, and both close comment markers *) and } are considered to be equivalent. So attempting to trick the compiler into accepting nested comments with something like

   (* outer { inner comment } comment *)

will not work.

Nested comments are disabled by default since in Standard Pascal comments do not nest.

" Make identifiers case-sensitive"

When this check box is checked identifiers are case-sensitive, so for example the following are all different identifier (hi, Hi, hI, and HI).

When this check box is not checked, identifiers are not case-sensitive, so the identifiers in the previous example are all the same identifier.

Case-sensitive identifiers are disabled by default, since Pascal is normally not a case-sensitive language. If you enable this option then remember to use all lowercase for keywords and built-in identifiers (such as var, integer, input, writeln).

" Require parentheses"

This check box controls whether parentheses are mandatory in all function and procedure calls and after the program name. In Pascal parentheses are not normally used when calling or declaring functions or procedures with no parameters. So for example in the following statement:

     a := b;

it is not clear whether b is a function that takes no parameters or whether b is a variable. When mandatory parentheses mode is enabled then parentheses are required when declaring or calling all functions and procedures even those with no parameters. Parentheses are also required after the program name even if there are no program parameters.

" Non-standard unary operators"

This check box controls whether the compiler handles the unary plus and unary minus operators in a non-standard way (i.e. different from the way specified by Standard Pascal). The compiler will allow the unary plus and unary minus operators to appear before any numeric operand, and their precedence is higher than any other operator.

" Open temp file if no name assigned"

Normally, if you open a file variable, of text type, without first assigning it a name, then the file variable will become associated with the the standard input stream or the standard output stream, depending on whether you are opening the file variable for reading or writing. In which case reading from the file variable will read from the standard input stream, and writing to the file variable will write to the standard output stream.

When this check box is checked and you open a file variable, of text type, without first assigning it a name, then the file variable will become associated with a temporary disk file and not the standard input stream or the standard output stream.

NOTE: Opening a file variable, that is not of text type, without first assigning it a name, will always associated the file variable with a temporary disk file, regardless of whether this check box is checked.

" Compatibility mode (with version 2.0)"

This check box controls whether the compiler is in version 2.0 compatibility mode. When you compile your program with the compiler in this mode, your program should behave in the same way it did when compiled with verions 2.0 or 2.1 of the compiler. Compatibility with versions earlier than 2.0 is not guaranteed.

In this version of the compiler the only effect of version 2.0 compatibility mode, is to make the compiler continue to incorrectly treat sets of subrange types as if they were sets of the subrange's host type. So for example

 set of 0..1

is treated like

    set of integer

which in this case will affect how values of the set are represented. Normally your program is not affected by the way set values are represented, however if your program stores set values in data files then the representation of the set values is important.

Compatibility mode was introduced so that you can maintain the format of data files created by programs compiled with previous versions of the compiler, even when you compile those programs with this version of the compiler.

" Maximum number of errors allowed"

This is where you would enter the maximum number of errors you will allow the compiler to report before it should give up and stop compiling.

" Maximum number of warnings allowed"

This is where you would enter the maximum number of warning you will allow the compiler to report before it should give up and stop compiling.

Copyright © Stuart King, 2002-2003. All Rights Reserved.