	   Welcome to the Irie Pascal 2.01 for Windows Readme File

	   Copyright (c) 1998-2001 Stuart King. All rights reserved.

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

------------------------
Changes in version 2.01:
------------------------
The following changes have been made in the Windows edition.

** Fixed bug in the IDE which prevented it from running applications
   under Windows 2000.
** Fixed the problem with the IDE and the interpreter which limited
   the maximum length of a command-line to 80 characters. The maximum
   length of a command-line is now 260 characters.
** Added support for setting the #! header in the IDE. The Miscellaneous
   options page now allows you to type in a #! header which is placed
   in front of generated executables (useful for running applications
   under Linux, FreeBSD, or Solaris).
** Improved the editors handling of tabs. When you move to a new line
   the editor now does a better job of maintaining the same screen column.
** A problem with pasting text has been fixed. Now if you have text
   selected when you paste then the pasted text replaces the selected
   text, instead of just being inserted.
** The caret now changes depending on whether the editor is in overwrite
   mode or insert mode. In overwrite mode the caret changes to a block.
   In insert mode the caret changes to a vertical line.
** The caret now advances when you enter text in overwrite mode.

------------------------
Changes in version 2.00:
------------------------
** WARNING: The layout of string fields in unpacked records has been
   changed. If you have applications that use binary files of unpacked
   records (i.e. "file of type" where type is or contains an unpacked
   record type) you need to convert your files before upgrading to this
   version.
   One solution is to convert those files to binary files of PACKED records
   (i.e. write programs to read in the files and write them out as packed
   records).
** An Integrated Development Environement (IDE) version of the compiler
   is now included (Windows edition only).
** Added support for using COM objects (Windows edition only).
   Irie Pascal applications running under the Windows edition can
   call methods, get properties, and set properties in COM objects that
   support late-binding. If you are in doubt about whether a particular
   COM object supports late-binding then note that COM objects that
   support scripting languages such as VBScript and JavaScript support
   late binding, and can probably used by Irie Pascal applications.
   Also COM objects generated by Visual Basic support late-binding.
** Added database support (ODBC and MySQL).
   Applications running under the Windows edition can access databases
   through ODBC. This allows Irie Pascal applications to access almost all
   Windows databases, since almost all major Windows database engines
   support ODBC (including MS SQL Server, Oracle, and MS Access).
   Applications running under the Linux, FreeBSD, and Solaris editions can
   access MySQL databases.
** "LIST" type declarations can now refer to types that have not yet
   been defined
   (i.e. list of t is allowed even if t has not yet been declared
   NOTE: The declaration of t must follow later).
** Corrected bug where write(s:w) would print all of s even if
   w < length(s). Instead write(s:w) should print only the
   first w characters of s. (i.e. write ('Hello':2) now prints He).
** Added compiler option -oname which specifies the name of the
   executable generated by the compiler.
** Added -hHeader option which specifies the #! unix header to
   put in front of the executable.
** Added support for "UnixPlatform:boolean".
   This built-in function allows the application to detect whether it's
   running under a UNIX-like operating system (currently Linux, FreeBSD,
   or Solaris).
** Added support for TrapErrors(true/false).
   This built-in procedure can be used to control whether errors are
   automatically trapped at run-time. Applications that perform custom
   error handling would turn error trapping off (with TrapErrors(false))
   before executing code that may cause an error. The application would
   then call "GetLastError" to determine what error if any occured. New
   applications should use "TrapErrors" instead of the (*$I-*) compiler
   directive. The (*I-*) compiler directive continues to be supported
   for compatibility reasons only.
** Added support for GetLastError:integer.
   This built-in function can be used to retrieve the code of the last
   error that occured (assuming error trapping has been turned off).
   New applications should use "GetLastError" instead of "IOResult", which
   continues to be supported for compatibility reasons only.
** Added support for popen (can be used with sendmail to send email on UNIX
   platforms).
** The ordering of declarations has been further relaxed.
   When relaxed declarations is in effect (see the -erd compiler option)
   global declarations can be made in any order.
** Added support for // comments
** Added support for supports(feature:integer):boolean.
   This built-in functions can be used to determine if particular
   features are supported under the current platform.
** Added support for PlatformVersion:integer.
   This built-in function can be used to determine the version of the
   current platform. Here platform refers to the Irie Virtual Machine
   Interpreter not the operating system.
** Added support for FileMatch(filespec:string,filename:string):boolean.
   This built-in function can be used to determine if a particular filename
   matches a file specification (the file specification can contain wild
   cards).
** Added support for crc32(var crc:word,b:byte[polynomial:integer]).
   This built-in procedure can be used to compute 32-bit CRCs (Cyclic
   Rundancy Check).
** Added support for Turbo Pascal style character constants #charcode
** Added support for binary files.
   A built-in file type named "binary" is now supported.
** Added cstring type.
   This string type stores strings in C format (i.e. null terminated char
   arrays). This type is useful for passing string to and from external
   functions written in C.
** The warning 'id defined but never used' is suppressed for ids declared
   when this warning is turned off. (i.e. this allows you to use the $W44-
   compiler directive to suppress this warning for one or more identifiers).
   This is useful when including libraries with many declarations most of
   which you don't use.

------------------------
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.
   See the built-in procedure "Intr" in the Programmer's Reference Manual.

** 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 the Irie Pascal User's Manual 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:
--------------
help\user.hlp      - The Irie Pascal User's Guide
help\user.cnt      - Table of contents
help\progref.hlp   - The Irie Pascal Programmer's Reference Manual
help\progref.cnt   - Table of contents
readme.txt    - This file
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.

NOTE: The Solaris/Sparc edition includes only readme.txt

---------
Programs:
---------
ipidew.exe    - Irie Pascal IDE for Windows
ipc.exe       - Irie Pascal Compiler for Windows
ivm.exe       - Irie Virtual Machine Interpreter for Windows
iriecom.dll   - Library used to implement COM support

----------------
Sample programs:
----------------
The sample program are located in the "samples" subdirectory of
the main Irie Pascal directory.

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.

-----
Info:
-----
Irie Pascal is designed for beginners who want to learn to program in
Pascal, as well as for experienced programmers who want to write small
to medium-sized programs (including CGI scripts).

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 and file/directory processing, 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 thus may not be worth spending a lot of time on).

Irie Pascal consists of a compiler, and an 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, 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. 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. See the "CopyWord", "CountWords", and
"URLDecode" procedures in the Programmer's Reference Manual.

---------
Editions:
---------
Irie Pascal is distributed in eight editions. Seven of these editions
correspond to the seven supported operating system platforms
(Windows, DOS, Linux, FreeBSD, OS/2, Solaris/x86, and Solaris/Sparc).
NOTE: The Solaris/Sparc edition is not a full edition since it only includes
the interpreter. The eighth edition of Irie Pascal
(called the Universal edition) is a collection of the other editions.
If you plan to use Irie Pascal on more than one operating system platform
then it is more economical to register the Universal edition.

-----------
Compliance:
-----------
NOTE: 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.

----------
Shareware:
----------
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 so you can try before you buy. 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.

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 programs compiled by
the evaluation version expire the next day, while programs compiled by
the registered version never expire. These differences are intended to
encourage users of the evaluation version to register and receive a copy
of the registered version.
NOTE: Irie Pascal does not prevent users of the evaluation version from
recompiling expired programs to keep them running.

-------
Prices:
-------
The registration fee for the Windows, DOS, OS/2, Linux, FreeBSD, and
Solaris/x86 editions is US$25.00, or UK 15.00 Pounds, or CA$39.00 each.
The registrations fee for the professional edition is US$40.00, or
UK 24.00 Pounds, or CA$62.00. The Solaris/Sparc edition is currently free
to registered users of any other edition. When registering, please remember
to include the shipping and handling fee which is US$5.00, or UK 3.00 Pounds,
or CA$8.00.

----------------
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 with your order 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 Windows are entitled to receive
free (regular shipping and handling charges may apply) upgrades to all
registered versions of Irie Pascal for Windows released after they register.
Registered users of Irie Pascal for Windows 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 Windows is released a special upgrade
file will be placed on the Irie Tools Website (www.irietools.com).
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:
----------------------------
- Win95/98/NT
- 2 MB disk space

-----------------------
Installing Irie Pascal:
-----------------------
Irie Pascal for Windows is distributed as a self-extracting archive
("ipw-201.exe") or as a zip file ("ipw-201.zip"). The zip file is smaller
than the self extracting achive but requires you to have an unzip utility
to extract the files. The self-extracting archive is larger than the zip file
but you don't need an unzip utility (you just run it to extract the files).

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

A) Create a temporary installation directory (I suggest "C:\IRIE\INSTALL")
   to store the zip file.
B) Copy the zip file into this directory.
C) Use your unzip utility to extract the files from the zip file.
D) Run the "setup.exe" in the installation directory.

--------------------------------------------
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 temporary installation
   directory to store the files (I suggest "C:\IRIE\INSTALL").
B) Run the "setup.exe" in the installation directory.


-------------------------
Uninstalling Irie Pascal:
-------------------------
To uninstall Irie Pascal use the "Add/Remove Programs" utility in the
Windows Control Panel.

----------------
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.
