nadir11.zip     Macro & Procedural Language for DOS & Windows


The Nadir program is provided as shareware with the following limitations:

The program is shareware and is not to be resold or distributed for sale
with other programs which are for sale.  The shareware version of Nadir 
may be shared with others as long as the contents of the product are not
modified in any way.  There is no warranty or claim of fitness or 
reliability.  The program is distributed AS IS, and as such the author 
shall not be held liable for any loss of data, down time, loss of revenue
or any other direct or indirect damage or claims caused by this program.


If you want to register Nadir, fill out the enclosed order.frm
and send to the address below.  A copy of the commercial version and
a printed manual will be sent to you.

Enexe Systems
P.O. Box 771
Ashgrove.  4060
Australia.


If you have any comments or questions, please send mail to the above 
address or email to ENEXE@mailbox.uq.edu.au



A Description of Nadir
======================

Nadir is an interpreted programming language.  It is designed to be 
simple yet intelligent, to reuse as many of its algorithms as possible 
to produce a small yet powerful programming system.

It combines macro generation capabilities, with the ability to
write procedural functions.  With it you can generate code for any
language, analyse and manipulate text files, write database style
applications that run unchanged under DOS and Windows, or use it
as a calculator.

The name Nadir, the opposite of the zenith, is used to signify a
starting point, a minimal set of rules and functions upon which things
can be built.  It will appeal to students, professional programmers,
and the home enthusiast who wants a no frills programming language that
is easy or useful to learn because its syntax is based on C.

The base nucleus of Nadir comprises a number of modules that perform
language parsing, language interpretation, error handling, and a set of
inbuilt intrinsic functions for performing string, numeric and date
maniplation, and the control of data files and the symbols in them.
The nucleus is written in c, and has been ported to run under DOS and
Windows.

Other modules of intrinsic functions have been written to perform
Screen Dialogues and Report Formatting.  These functions have been
written to perform under DOS in text mode and Windows.  When an
application is written using these functions, it will work under DOS
and Windows without change.

A runtime version of Nadir is provided with the commercial version.  A
system developed using the commercial version may be installed at a
user site with the runtime version of Nadir.  No royalty fees are
required to install the runtime version at a user site.



How to run the Demonstration
============================

The DOS version will run on any version above DOS 3.3 with around 300K
of real memory available.  Nadir will run under Windows version 3.0 and
above.

The following instructions assume that the Nadir shareware version has
been installed on c: drive in a directory called nadir.

Please note that the switch names and macro names, like -c, -D, -e and
InvMenu are case sensitive and therefore must be keyed in exactly as
shown in the examples.


Under DOS
=========

Either

     c:\nadir\demo

Or change the default directory to where Nadir was installed, and key
in the command to start the demo.

     c:
     cd \nadir
     n -c -eDemo

The third line runs the n.exe program, specifying that on error the
program should automatically restart (cycle), and that the macro called
Demo should be executed.  To run the sample Invoicing Program, specify
-eInvMenu, and for the Phone List program, specify -ePhoneList.


Under Windows
=============

Either execute the following program.  Do this by double clicking on 
windemo.exe in the File Manager, or by specifying the following when 
choosing File Run in Program Manager.

     c:\nadir\windemo

Or create a new program item using the File, New options in the Program
Manager.  The command line should be

     c:\nadir\nw -c -eDemo -Dc:\nadir -Tc:\nadir

This command specifies nw.exe which is the Windows version executable.
The -D switch tells Nadir to look for data files in the c:\nadir
directory, while -T specifies that temporary work files are created in
c:\nadir.  The alternative to specifying -D and -T in Windows 3.1 is to
specify the working directory as c:\nadir.


The DOS version of the program has been written to closely follow the
operation of Windows dialogue boxes.  Some Windows features are not
present.  The mouse is supported, if a mouse driver is loaded before
running Nadir.  The keyboard functions are the same as under Windows,
eg to close a dialogue box, use <Alt>F4.



Differences between Shareware and Commercial Versions
=====================================================

Differences have been built into the Shareware version of the product
as an incentive to register the product.  All of the functionality of 
the product is present in the Shareware version.



Feature                                           Shareware     Commercial


The number of times the Windows version of the    1 time        16 times
program can be started simultaneously.

The maximum size of a key, or symbol name.        64 bytes      128 bytes

The permissible number of levels in the b-tree    3 levels      10 levels
structure that is used to store symbol names
and values.

The number of levels in the b-tree affects the
total number of symbols that can be stored in
a data file.

This limitation, together with the block size
limitation of 512 bytes will allow moderate
amounts of data to be stored in the symbol
table files.

In the Key File Utility, and functions that       CANNOT        CAN specify
deal with creating and opening Symbol files,      specify       blkSize and
the block size (size of b-tree node) and the      blkSize and   buffCnt.
number of buffers may be defined.                 buffCnt.

By specifying a larger block size, longer         blkSize is
string values can be stored.  Specifying          always 512
buffCnt allows the user to tune system            bytes.
performance.

Ability to open Symbol Files simultaneously.      CANNOT        CAN share
When files are opened shared, locking             share         files with
conventions can be employed to manage access.                   other and
                                                                manage file
With the Shareware version, no file can be                      locking.
shared.  You can start one DOS session, or one
Windows session, but not at the same time.

With the Commercial version, you can start 16
tasks in a Windows session, and any number of
DOS sessions in DOS boxes under Windows, all
opening and sharing files.  If the files are
on a Network Server, files may be shared with
other workstation users on the network.

The ability to open Symbol Tables.  The system    CAN open 7    CAN open 7
has some fixed symbol tables.  They are :-        fixed         fixed and
                                                  symbol        16 user
mdat - Macro definitions                          files.        defined
mlib - Macro library                                            symbol
univ - Universal data, permanent                                files.
glob - Global data, temporary for an
       invokation of the program.
parm - Parameter file, permanent.
data - General purpose permanent data file.
temp - General purpose temporary data file.

With the Shareware version, only the fixed
files can be opened.

With the Commercial version, the fixed files
as well as 16 user defined files can be
opened.

The size of the stack that is used to evaluate    2048 bytes.   Defaults to
expressions and hold fuction arguments is                       4096 bytes,
fixed in the Shareware Version.  In the                         can be up
Commercial version, a startup parameter allows                  to 64K.
the user to override the default value.

Specifying larger sizes allows functions to be
more complex and manipulate more and larger
values.

The size of the stack that is used to store       2048 bytes.   Defaults to
the values of local variables in functions is                   4096 bytes,
fixed in  the Shareware Version.  In the                        can be up
Commercial version, a startup parameter allows                  to 64K.
the user to override the default value.

The maximum length of a string field.             512 bytes.    2048 bytes.

A reference manual describing the language and    Text file     Complete
the intrinsic functions.                          of Language   hardcopy
                                                  Reference     manual
                                                  supplied.     supplied.

A runtime version of the system.  This is for     NOT           Supplied.
program developers that want to distribute        supplied.
copies of their programs.  The runtime version
is the same as the commercial version, except
that functions and macros cannot be compiled.

Support to provide program fixes.                 NOT           Supplied.
                                                  supplied.

Welcome to Nadir dialogue box displayed before    Supplied.     NOT
the first dialogue box for an application is                    supplied.
shown.



Description of Files
====================

readme.txt      This file.  An Introduction to Nadir

file_id.diz	Brief description of NADIR.

order.frm       Details on how to order the commercial version of
                Nadir.

demo.exe        Program to run the demonstration programs under DOS.
                Runs n.exe with some parameters.

windemo.exe     Program to run the demonstration programs under
                Windows.  Runs nw.exe with some parameters.

n.exe           The DOS version of Nadir.

nw.exe          The Windows version of Nadir.
nsys.dll

stu.exe         Symbol Table Utility Program.  This DOS program is used
                to maintain and dump the contents of the symbol table
                files.

comline.bat     Batch files used by the sample application.  They are
compause.bat    used in the DOS version to implement backup and restore
                procedures.

dbrowser.bat    The most basic (and base) text browse utility.  There
                is a system parameter that allows the definition of a
                text browser for use by report printing.

univ.dat        Universal data file, that has sample data for the
                demonstration application.

parm.dat        Parameter data file.

inv.dat         Invoice data file contains a few example invoices.

mdat.dat        Macro Data file contains the compiled macro code, and
                any definitions necessary for the running of the sample
                application.  The contents of this file can be
                regenerated with makeall.bat.

makeall.bat     A batch file which removes the existing mdat.dat file,
                and recompiles all the source code provided.

demo.n          The demonstration program.

invmenu.n       Invoicing Application Menu.

inv.n           Invoice Entry.

client.n        Client Maintenance.

invp.n          Invoice Printing.

invr.n          Invoice Reporting.

invs.n          Invoicing Summary Print.

invpar.n        Modify Invoicing system parameters.

type.n          Demonstration of the code generation capabilities of
                the language.  Used to define description type tables
                with a code and a description.  Is invoked to generate
                the code for Property Types and Valuation Types
                maintenance.

phonel.n        The Phone List program.  A different example of how
                data can be presented and modified.

bkup.n          Backup and Restore to diskette.

list.n          General purpose listing program to list symbols in a
                symbol table.

mtce.n          General purpose maintenance that can be used to add,
                modify or delete any symbol in any symbol table.

prt.n           Modify definition of printers, the size of paper, and
                start and end escape sequences.

scrattr.n       Modifiy screen colours and characters for DOS version.
                This demonstrates the code generation capabilities of
                Nadir.

detab.n         Utility to replace tabs with spaces in a file.

ute.n           General purpose utility functions.

load.n          Symbol file unload and reload utilities.

rand.n          Random number generation.

spar.n          Modify system parameters.

args.n          Test and demonstration code as to how the arguments to
                a macro may be accessed.

file.n          Show how text files can be opened, read and written.

multied.n       Demonstrate multi line edit fields.

process.n       Demonstrate the Process intrinsic function.  This
                function allows for code to be generated, compiled and
                run under program control.

xtree.n         Front end dialogue box to run a DOS application.
                Demonstation dialogue box with permanent data kept on a
                data file for next invokation.

winput.n        Test program for the Screen Dialogue objects such as
                text input fields, push buttons, radio buttons, check
                boxes, combo boxes, select boxes, menus and prompts.
