************************************************************************
	   Welcome to Irie Pascal 1.10 for DOS
************************************************************************

The latest information and releases of Irie Pascal are available at
the Irie Tools web site at    http://www.irietools.com

------------------------
Changes in version 1.10:
------------------------
** Improved support for creating Common Gateway Interface (CGI)
   programs/scripts.
   Added functions "CopyWord", "CountWords", and "URLDecode".

** Include directive {$I filename} is now supported.

** Added preliminary support for calling functions/procedures in
   Windows DLLs.

** Added support for type "word"
The compiler now supports the built-in type "word", which is an
unsigned integer type with values between 0 and about 4 billion.

** Added support for constant "maxword"
The compiler now supports the built-in constant "maxword", which is
a integral constant whoose value is the maximum value of the "word" type.

** Added support for calling DOS and BIOS interrupts in DOS version.

** Added support for the UNIX #! trick that allows the location
   of the interpreter to be embedded in the executable so that
   the executable can be run without explicitly specifying the
   interpreter.

------------------------
Changes in version 1.02:
------------------------
** Added support for type "byte"
The compiler now supports the built-in type "byte", which is an
ordinal type with values between 0 and 255.

** Added support for constant "maxbyte"
The compiler now supports the built-in constant "maxbyte", which is
an integer constant whoose value is the maximum value of the
"byte" type (255).

** fill procedure now supported

** mod operator now implemented according to Standard Pascal
   a) The interpreter now reports an error for "mod" operators
      if the right-hand operator is negative
      (i.e.  an error is reported for   i mod j   if j < 0).
   b) The value of the "mod" operator is now always positve as
      required by Standard Pascal
      (i.e. 0 <= i mod j < j).
   NOTE: These changes in the "mod" operator do not affect the
   result returned if the operands are positive.

-------------------------
Changes in version 1.01a:
-------------------------
** pred/succ bug (range checking)
   The compiler was generating incorrect code to do range checking on the
   operand of the "pred" and "succ" functions. This bug has been fixed
   in version 1.01a.

** incorrect "type not used" warnings for enumerated types.
   The compiler would issue a warning if the program declared an
   enumerated type but never referenced it, even if the program
   referenced the values of the enumerated type. This bug has been
   fixed in version 1.01a.

** The interpreter would request both read access and write access
   when opening a file even if the program used "reset" to specify
   that the file should be opened for reading only. This meant that
   write access was required to open all files even those the
   programmer intended only for reading. The interpreter would also
   request both read access and write access when opening a file even
   if the program used "rewrite" to specify that the file should be
   opened for writing only. This meant that read access was required
   to open all files even those the programmer intended only for writing.
   These bugs have been fixed in version 1.01a.
   However fixing these bugs means that the built-in procedure "seek"
   can no longer be used on files opened without read access.
   The problem is that if "seek" is allowed on a file than the
   built-in functions "eof" and "eoln" need to be able to read the
   file to determine if the file is at end-of-file or end-of-line.

------------------------
Changes in version 1.01:
------------------------
** list bug (Deleting the first element).
   In version 1.00 if the first element in a list was deleted then
   if any elements were inserted afterwards then the remaining elements
   in the list would be lost. This bug has been fixed in version 1.01.

** sleep bug
   The compiler was generating incorrect code for the built-in "sleep"
   procedure. This bug has been fixed in version 1.01.

** lexer bug
   If the first non-whitespace character in the source file was undefined
   (i.e. not one of characters defined by Pascal) the compiler would
   attempt to dereference a null pointer and abort with a fatal error
   message. This bug has been fixed in version 1.01.

** Relaxed rules for the SHR and SHL operators
   The right operand of the SHR and SHL operators can now be zero.

** Added Borland and Microsoft compatible messages
   The "-mb" and "-mm" compiler options have been added, and cause
   the compiler to generate messages in the same format used by
   Borland and Microsoft compilers. These compiler options were added to
   make it easier to use Irie Pascal with third-party editors and IDE's
   which know how to process Borland and Microsoft compiler messages.
   See "user.txt" for more details.

** Added more info to compiler messages
   Where possible the compiler now displays the subject of the message.
   For example the message "Variable is never used" has been changed
   to "Variable 'x' is never used" (where 'x' is the name of the
   particular variable which is never used).

** nc compiler option
   The name of the compiler option that controls support for nested
   comments was changed from "nc" to "c" in version 1.00 but the
   help screen printed by "ipc ?" did not reflect  this change.
   In version 1.01 the compiler option was changed back to "nc"
   since "c" is reserved to control a compile-only mode which may
   be implemented in the future.

** Programs compiled by the evaluation version now expire the day
   after they are compiled (instead of seven days after).
   This change is intended to encourage more people to register.

		    ***************************

Please make sure that you have the following files:

--------------
Documentation:
--------------
readme.txt    - This file
user.txt      - The Irie Pascal User's Guide
progref.txt   - The Irie Pascal Programmer's Reference Manual
orderus.txt   - The Order Form for US dollar Registrations
orderca.txt   - The Order Form for Canadian dollar Registrations
orderuk.txt   - The Order Form for UK pound Registrations
shareware.txt - Describes the shareware concept (derived from documentation
		produced by the Association of Shareware Professionals (ASP)).
		NOTE: I am not a member of this association.

---------
Programs:
---------
ipc.exe       - Irie Pascal Compiler for DOS
ivm.exe       - Irie Virtual Machine Interpreter for DOS
header.ivm    - The Irie Header Utility Executable
header.pas    - Source code for the Irie Header Utility
upgrade.ivm   - Irie Upgrade Utility
upgrade.pas   - Source code for the Irie Upgrade Utility
dos4gw.exe    - 32-bit DOS extender

----------------
Sample programs:
----------------
samples.zip     - ZIP archive of sample programs
samples.exe     - Self extracting archive of sample programs

The sample programs are provided mostly to help you verify that
Irie Pascal has been installed correctly. You may however find a few of
the sample programs like calc.pas and ascii.pas useful.

-------------
Introduction:
-------------
Irie Pascal consists of a compiler and an interpreter. The compiler
translates Pascal programs into Irie Virtual Machine executables (IVM
executables). IVM executables can not be directly executed by the operating
system but instead must be executed by the interpreter. Most other compilers
generate "native-code" executables (i.e. executables which can be directly
executed by the operating system on a single computer platform but usually
can not be executed at all on any other computer platform). The main
advantage of IVM executables is that unlike "native-code" executables, IVM
executables can be run on any computer platform on which the interpreter
exists.
Currently the interpreter exists on seven computer platforms:
	1) Windows (i.e. Win95/98/NT)
	2) DOS
	3) Linux
	4) OS/2
	5) FreeBSD
	6) Solaris/x86
	7) Solaris/Sparc

Another advantage to IVM executables is that they tend to be much smaller
than their "native-code" equivalents. I have found that IVM executables
tend to be roughly 20 times smaller than equivalent "native-code"
executables.

The main disadvantage to IVM executables is speed or rather the lack of it.
This is because IVM executables are not directly executed, but are executed
by the Interpreter. I have found that IVM executables tend to run roughly
50 times slower than equivalent "native-code" executables. While there are
many kinds of programs where this speed is perfectly acceptable, there are
others where this is just too slow. I expect Irie Pascal to be used mainly
to create CGI scripts, utility programs, and programs for learning purposes
(if you are learning Pascal you don't need your test programs to be the
fastest possible, you probably need good compile-time and run-time diagnostics
more).

You should be aware that although I claim Irie Pascal complies with
ISO/IEC 7185 Level 0 (since it does according to my tests) it has not been
formally certified by an external body.

Irie Pascal is shareware and as such there is an evaluation
version and a registered version. The evaluation version of Irie Pascal is
provided at no charge, for the purposes of evaluating Irie Pascal and
deciding whether to continue using it. Feel free to share the evaluation
version with your friends, but do not give it away altered or as part of
another system. You are not authorized to share the registered version.
The essence of "user-supported" software is to provide personal computer
users with quality software without high prices, and yet to provide an
incentive for programmers to continue to develop new products. If you find
the evaluation version of Irie Pascal useful and find that you are using
it and continue to use it after a reasonable trial period, you must
register it (See "How to Register").

The evaluation and registered versions of Irie Pascal are functionally
identical except for two differences. The first difference is that the
registered version uses an improved code generation technique to generate
smaller executables. The second difference is that executables compiled by
the evaluation version expire the day after they are compiled, while
executables compiled by the registered version never expire. These
differences are intended to encourage users of the evaluation version to
pay the registration fee and receive a copy of the registered version.
NOTE: Irie Pascal does not prevent users of the evaluation version from
recompiling expired programs as many times as they wish to keep them
running indefinitely.

----------------
How To Register:
----------------
To register Irie Pascal complete the appropriate order form, and mail it
in along with a check or money order for the registration fee. If you wish
to pay the registration fee in US dollars then use the order form in
"orderus.txt". If you wish to pay the registration fee in Canadian dollars
then use the order form in "orderca.txt". If you wish to pay the
registration fee in British pounds then use the order form in "orderuk.txt".
If you include an email address then you will receive an email notification
when you order is shipped. I respect the privacy of my customers and will
NEVER sell or otherwise distribute any information you give me to anyone
without your consent.

The check or money order should be made out to "Stuart King" and sent to

   Stuart King
   MB #247
   221 S. State Road 7
   Ft. Lauderdale, Fl 33317
   U.S.A.

Please do not send cash.

All registered users of Irie Pascal will receive a copy of the latest
registered version on 3 1/2" disks, so you will need a 3 1/2" floppy drive
to install Irie Pascal.

Registered users of Irie Pascal for DOS are entitled to receive
free (regular shipping and handling charges may apply) upgrades to all
registered versions of Irie Pascal for DOS released after they register.
Registered users of Irie Pascal for DOS may use the Irie Upgrade Utility
to upgrade to the latest registered version at any time. Whenever a new
registered version of Irie Pascal for DOS is released a special upgrade
file will be placed on the IrieTools Website. Registered users may download
this upgrade file without charge and perform the upgrade (see the User's
Manual "user.txt" for more information on using the Irie Upgrade Utility).

Registered users may also receive upgrades by mail. To receive upgrades
by mail, fill out the appropriate order form and mail in the completed
order form along with a check of money order for the shipping and handling
fee to the address above.

Educational institutions should enquire about the educational discount.

Commercial users of Irie Pascal must register and pay for their copies of
the Software within 30 days of first use or their license is withdrawn.
Site-License arrangements may be made by contacting the author.

Anyone distributing Irie Pascal for any kind of remuneration must first
contact the author.

----------------------------
Minimum system requirements:
----------------------------
- DOS 5.0 or later
- 17 MB disk space

-----------------------
Installing Irie Pascal:
-----------------------
Irie Pascal for DOS is distributed as a zip file ("ipd-110.zip"),
and as a self-extracting archive ("ipd-110.exe").
The zip file is smaller but it requires you to have a unzip utility to
extract the files, while the self-extracting archive is larger but you
don't need an unzip utility (you just run it to extract the files).

NOTE: Installing Irie Pascal requires making modifications to your
autoexec.bat file. If you have never modified your autoexec.bat or if
you are uncomfortable doing so then have someone who has done this
before assist you. If you decide to modify your autoexec.bat please
remember to use a text editor and not a word processor (I recommend
using the "edit" command). You may wish to make a backup copy of your
autoexec.bat before you begin making modifications, to help you recover
from mistakes. The section "Modifying your autoexec.bat" gives
more information about how and why you should modify your autoexec.bat.

-----------------------------
Installing from the zip file:
-----------------------------
If you have the zip file (ipd-110.zip) the recommended installation
procedure is as follows:

A) Create a directory (I suggest "C:\IRIE") to store Irie Pascal.
B) Copy the zip file into this directory.
C) Use your unzip utility to extract the files.
D) Add the directory created in A) to the path
   (i.e. modify your autoexec.bat See "Modifying your autoexec.bat").
E) Create a directory to store the sample pascal programs
   (I suggest "C:\IRIE\SAMPLES").
F) Copy the zip file containing the samples "samples.zip" into the
   directory you just created.
G) Unzip the sample files.
H) Reboot your computer.

--------------------------------------------
Installing from the self-extracting archive:
--------------------------------------------
If you have the self-extracting archive the recommended installation
procedure is as follows:
A) Run the archive, it will prompt you for a directory to store the files
   (I suggest you store the files in c:\irie).
B) Add the directory created in A) to the path.
   (i.e. modify your autoexec.bat See "Modifying your autoexec.bat").
C) Run the self-extracting archive containing the sample pascal programs, it
   will prompt you for a directory to store the files  (I suggest you store
   the sample files in c:\irie\samples).
D) Reboot your computer.

----------------------------
Modifying your autoexec.bat:
----------------------------
The reason for modifying your autoexec.bat 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,
DOS 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 "Installing Irie Pascal"
before proceeding. If you decide to modify your autoexec.bat then you can
do the following:

Enter

        EDIT c:\autoexec.bat

at a dos prompt.

If you don't have an autoexec.bat then you will get a blank file.
Proceed to "NO AUTOEXEC.BAT" below. If you have an autoexec.bat, Edit
will open it so proceed to "HAVE AUTOEXEC.BAT" below.

----------------
NO AUTOEXEC.BAT:
----------------
If you don't have an autoexec.bat file then enter the following line
 
        PATH C:\IRIE

in the blank edit window (change C:\IRIE to whatever directory you
installed Irie Pascal into). Save the file, by selecting "Save" from the
"File" menu. Exit Edit (select "Exit" from the "File" menu) and you're done.
Continue with the installation.

------------------
HAVE AUTOEXEC.BAT:
------------------
If Edit has opened your autoexec.bat then then search the file for one
or more lines beginning with

	PATH
or
	SET PATH=

If there are no such lines then add the following line

PATH C:\IRIE

(change C:\IRIE to whatever directory you installed Irie Pascal into)
Save file by selecting "Save" from the "File" menu. Exit Edit (select
"Exit" from the "File" menu) and you're done.
Continue with the installation.

If you see a line (or more than one) that begins with

	PATH
or
	SET PATH=

then add

	;C:\IRIE

to the end of one of the lines (change C:\IRIE to whatever directory you
installed Irie Pascal into).
For example the PATH in my autoexec.bat looks like

	PATH C:\WINDOWS;C:\DOS;C:\BIN;C:\IRIE

Save file by selecting "Save" from the "File" menu. Exit Edit (select
"Exit" from the "File" menu) and you're done.
Continue with the installation.

-------------------------
Uninstalling Irie Pascal:
-------------------------
Irie Pascal 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.

----------------
Product support:
----------------
I am very interested in all your comments about Irie Pascal, but
most especially in your comments about its usefulness, any problems
you encounter installing or using Irie Pascal, and any changes you
would like to see.

The latest information and updates of Irie Pascal are available at
the Irie Tools web site at    http://www.irietools.com

You can also contact me directly with your technical support
questions.

----------------------
Contacting the author:
----------------------
For the quickest response contact me by e-mail at support@irietools.com

If you prefer you can contact me by regular mail (but this takes longer) at:
   Stuart King
   MB #247
   221 S. State Road 7
   Ft. Lauderdale, Fl 33317
   U.S.A.
