          WELCOME TO RIGAL PROGRAMMING SYSTEM
          ===================================

                    RIGAL 2.28

This README file contains important, last minute information
about Rigal 2.28

TABLE OF CONTENTS
-----------------
0. You need Turbo Pascal TPC.EXE version 6.0
1. How to install Rigal
2. List of files on the disks
3. Implementation restrictions
4. Difference between 2.28 and the previous versions

0. YOU HAVE TO OBTAIN Turbo Pascal, version 6.0
--------------------------------------------------------
The programming system will allow you to check and
interprete RIGAL code without Turbo Pascal Compiler.
In order to compile RIGAL code to efficient executable file
Turbo Pascal compiler version 6.0 is necessary. File TURBO.TPL
is in the distribution and it must be used during
compilation with Turbo Pascal.
You have to copy TPC.EXE to the directory where
you installed RIGAL system.

Other versions of Turbo Pascal are NOT supported.
To be more sure, you can verify that the 
length of your file TPC.EXE is 69196 bytes.


1. HOW TO INSTALL RIGAL
-----------------------
 At least 2 MBytes of disk memory are necessary to install Rigal.
 Copy all the files to any directory of your computer.
 C:\RIGAL directory is recommended.
 Look through *.BAT files and modify drive names if necessary.
 Copy *.BAT to any directory included in DOS PATH.


2. LIST OF FILES ON THE DISKS
-----------------------------

  Rigal integrated environment
  ----------------------------

RIG      EXE called by RIG.BAT
RIG      BAT Integrated RIGAL environment Version A
           Built-in Text Editor, Checker and Interpreter.
           Default work file is WORK.RIG.
           You can call RIG.BAT from ANY directory,
      Parameter:  file name without .RIG

RIG1     EXE called by RIG1.BAT
RIG1     BAT - same as RIG.BAT, but Version B.
 Includes all features of version A, the Compiler and some utilities.
 Command line parameters:
 ( for advanced users )
  Additionally to RIG.BAT you can add parameter /E or /D - this means
using this drive as VIRTUAL .
 /M3000 makes common memory for fast tables  
 available through #CALL_PAS(61-66)


 Command line programs
 ---------------------

RPNT     BAT  - for showing Rigal object if it was previously 
 saved to the disk.
 Parameters are file name and the components of the object.

INT      EXE called by
RINT     BAT - Rigal interpreter.
  Parameters :
  1th parameter - an intermediate code file name without extension.
  2nd parameter - PRINT-file name. 

       If you want to have output to the screen - this parameter
       must be "s".
       If you don't want output - "NUL"
       If you want to TURN ON debugging from program start
       then add "+" at the end of parameter, e.g.
       Debugging messages go always to same PRINT-file.
       For advanced users:
           Additionally to PRINT file: you can
           add parameter /E or /D - this means
           using this drive as VIRTUAL.
          /M3000 makes common memory for fast tables
           available through #CALL_PAS(61-66)

   3rd and next parameters are user's parameters. You can read
       them in your program if you use built_in rule #PARM(T)
       which will return list of parameters.
       If you call
       > RINT CODE1 s AA BB CC
       then #PARM(T) will return (. AA BB CC .) .

RIGCHECK   EXE
   It CHECKS Rigal program.
   1st parameter - file name without extension.

RIGCOMP    BAT
   It COMPILES Rigal program.
      1st parameter - file name. No extensions. No path.
      2nd parameter - RIGAL distributive directory path.


   DOCUMENTS in ENGLISH
   --------------------

README        - this file
SHORT    TXT  - Brief description of Rigal in ENGLISH
               (published in ACM Sigplan Notices, 12, 1990)
LANGDESC TXT  - Language description in ENGLISH
USERGUID TXT  - User's guide in ENGLISH

 For advanced users:
SOURGUID TXT  - Describes porting to another operating systems
PROGLIST TXT  - Implementation structure
LABEL    TXT  - Label for the distributers
RAPID    TXT  - Notes on rapid programming


    DOCUMENTS in RUSSIAN
    --------------------
Note: These documents are in separate disk.
 They usually are NOT included !
READ     ME   - how to read and print russian in IBM/PC
OPJAZ1   TXT  - Rigal language description
OPJAZ2   TXT
OPJAZ3   TXT

RUKPRG1  TXT  - Rigal Programmer's Guide
RUKPRG2  TXT
RUKPRG3  TXT
RUKPRG4  TXT

         DEMO DISK
         ---------
Note: Demo is in separate disk !
DEMO     BAT  - Run demo film (20 minutes)
RIGAL    DOC  - Very short description of the language
README   1ST  - How to run demo

         EXAMPLES
         --------

WORK     RIG   - Simplest example
EX1      RIG   - takes Head and Tail of list
HANOI    RIG   - Hanoi tower example

EX2      RIG   - Analysis of an arithmetical expression
EX       TXT   - An example of expression

TOYLAN   RIG   - Toylan language compiler and interpreter
A        TOY   -   input example for Toylan

ANALYSE  RIG   - Small language - Analysis part
BCOMP    RIG   - Small language - Code generation part
GRAM1    RIG   - Small language - Abstract tree grammar
GRAM2    RIG   - Small language - Source grammar
INTER    RIG   - Small language - Interpreter
EX1      TXT   - Small language source example

LINTA    RIG   - Rigal Lint demo program
TLIST    RIG   - Fast numeric tables demo
TTREE    RIG   - Fast atomic tables demo
   Files for Integrated Environment
   --------------------------------
Note: Don't start these files from DOS command prompt !
RIG_CHE  EXE
RIG_EDIT EXE
RIG_INT  EXE
CMPLBEG  BAT
CMPLEND  BAT
RIG_CRF  EXE
RIG_LINT EXE
RIG_PNT  EXE

   Files for RIGAL Compilation
   ---------------------------
Note: Don't start these files from DOS command prompt !

ANRIG    EXE    1st part of Compiler
GENRIG   EXE    2nd part of Compiler
TPC      EXE    Bordland's Pascal Compiler
TURBO    TPL    Run-time Library of Compiler
USEPASU  PAS    User's pascal routines
SCAN     PAS    User's scanner

 When Rigal Program is compiled to e.g. AAA.EXE  you
 can press AAA and such parameters:
   1st - PRINT file name - same as in RINT
         but "+" not allowed.
         | For advanced users:
         |  Additionally to PRINT file: you can
         |  add parameter /E or /D - this means
         |  using this disk as VIRTUAL !
         | /M3000 makes common memory for fast tables
         |  available through #CALL_PAS(61-66)

   2nd and next parameters are user's
       parameters as in RINT.

 3. IMPLEMENTATION RESTRICTIONS
 ------------------------------

1.  LETTERS are not only A..Z,a..z,_
    Some symbols {,},~,`,^ and Chr(128)-Chr(255)
    may be (carifully) used in Rigal & PASCAL lexic.
    Nevertheless it is not garanteed in future versions.

2.  String of text output may be only of 80 bytes width

3.  Built-in rule #COPY does not exist.
    Use  key word COPY  with the same effect: $A:=COPY($B).

4. Maximum 255 variables in every rule,
   maximum 400 rules in programm
   maximum 1000 variabes active in interpreter's stack
   maximum 80  bytes atom length
   maximum 750 lines allows #CALL_PAS(4 ..) for finding coordinate
   maximum 3   files may be (in depth) included in Rigal program
   maximum 5   text files may be open by OPEN statement
   maximum 20000 tokens (approximately) Rigal program size.


4. DIFFERENCE BETWEEN 2.05 AND PREVIOUS VERSIONS
------------------------------------------------

  Difference between 1.XXX and 2.XXX versions
  -------------------------------------------
  1. The codes of the objects saved to the disk are NOT compatible.
  2. #CALL_PAS has been extended, interface description has changed

  Difference between 2.04 and 2.00
  --------------------------------
  1. FORALL BRANCHES & SELECTORS added to the language
  2. New #CALL_PAS(35,36,37,38) - user-oriented lexical analyser,
  file SCAN.PAS can be modified by the user.
  3. Some implementation bugs were corrected.
   
  Diffrence between 2.28 and 2.04
  -------------------------------
  1. Virtual page manager optimized;
     Speed up 20 %  
  2. Some source files contain {$IFDEF WIN} directive
     used for  "Rigal for Windows" version.
  3. Some errors were corrected
  4. Added FLOAT arithmetic module #CALL_PAS(80)
  5. Scanner receives #FATOM atoms when real numbers are processed;
     These numbers are represented in 6-byte format.
     They are printed out in 12-digit format.
  6. Non-numeric atoms now can be compared in lexical order:
     A<B,  ABC<ABCD.
  7. The scanner option "modula string" switches off
     comments like { }. So, '{' is normal symbol, separator,
     when the scaner is called using 'm+p-'.  
  8. OPEN A 'aaa.txt+'
     Appends file if it exists. 
     Rewrites it if it does not exist.

  NOTE: Files of 2.28 have creation time = 2.28
   