home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 8
/
CDASC08.ISO
/
VRAC
/
CENVIW1.ZIP
/
CENVI.DOC
< prev
next >
Wrap
Text File
|
1993-08-10
|
38KB
|
732 lines
CEnvi Shareware Manual, Chapter 1:
CEnvi Unregistered Shareware
CEnvi unregistered version 1.0
9 AUGUST 1993
CEnvi Shareware User's Manual
Copyright 1993, Nombas, All Rights Reserved.
Published by Nombas, P.O. Box 875, Medford, MA 02155 USA
(617)391-6595, (617)391-5289
Thank you for trying this shareware version of CEnvi from Nombas.
1. CEnvi Unregistered Shareware
1.1. Introduction to Cmm and CEnvi
Cmm (C minus minus) is 'C' for the rest of us. CEnvi runs Cmm
programs in the DOS, Windows, OS/2, NT, Unix, etc...
environments. Together, CEnvi and Cmm make the power and
flexibility of the C programming language part of every computer
user's environment, without the hardware, time, and programmer
resources needed for developing full-blown C programs.
With CEnvi and Cmm, anyone can take control of their computer
environment. C is not just for programming nerds anymore. CEnvi
utilites, macros, batch files, and scripts can quickly be
created, shared, and modified among all computer users,
professional and amateur alike.
CEnvi can be incorporated at a pace that is comfortable to you:
you may just want to use CEnvi code set up by a more experienced
user, you may want to enhance existing batch files with a line or
two of CEnvi code, or you may write complete utilities using
CEnvi.
1.2. CEnvi unregistered shareware version
This package is the unregistered shareware version of CEnvi.
Nombas provides this unregistered shareware version of CEnvi so
that you can try the program for a while before deciding whether
to buy. If, after a few weeks of using using this product, you
think CEnvi will be useful to you and/or your organization then
use the registration form at the end of this document (or see the
file: REGISTER.DOC) to register CEnvi.
1.2.1 Why you should register
If you register, then you will receive:
*The latest version of CEnvi for all supported platforms
(currently DOS, OS/2, and Windows, with NT support expected
soon) without the annoying "Please Register" reminder.
*The CEnvi user's manual (almost 100 pages, including a
description of the Cmm programming language, a tutorial for
those who have never programmed, and descriptions and
examples of the nearly 150 functions included in the CEnvi
library).
*Free incremental electronic downloads for new versions of
CEnvi for all supported operating systems.
*Unlimited support from Nombas and CEnvi/Cmm users through
CompuServe (72212,1622), internet (bsn@world.std.com), the
cenvi-cmm e-mail mailing list (cenvi-cmm@world.std.com), and
the Nombas BBS (617-391-6595).
*Access to the growing list of CEnvi utilities and libraries
(some of which are included in this unregistered shareware
package, and others are contributed by Nombas and CEnvi/Cmm
users to the electronic locations described above).
*Discounts for additional registered version of CEnvi to use
within your organization.
1.2.2 How to register
See the REGISTER.DOC document that is included with this package
(and is also duplicated at the end of this document), to purchase
a registered version of CEnvi.
1.3. Installing CEnvi, documents, and sample files
To install this package for evaluation
* Create a directory and then copy all of these files into that
directory.
* From within that directory execute CEnvi.exe.
* At the CEnvi "Code:" prompt enter "Install.cmm" to execute
the Install program (which is written in Cmm).
* You may then test CEnvi by trying out the included example
files and by creating CEnvi code of your own.
For DOS and OS/2 versions, the install.cmm program will set up
the PATH environment variable to include the directory you
installed the files in, and will also set the CMMPATH environment
variable to this directory. For Windows, install will add the
CMMPATH profile value in WIN.INI (in the [CEnvi] section), and
will also add the CMM file extension to the [Extensions] section
in WIN.INI.
1.4. Removing CEnvi unregistered shareware
If, after testing CEnvi for a few weeks, you choose not to
register this version of CEnvi, then you should remove the
program from your computer. (Also please consider telling Nombas
why CEnvi did not suit your needs; we need such feedback if we
are to improve the product.)
For all operating systems, the first step for removing CEnvi is
to delete all the CEnvi files and the directory that you copied
the files to. The next step depends on your operating system:
1.4.1 DOS de-installation
Install.cmm made two changes to C:\AUTOEXEC.BAT: the directory
that CEnvi was in will have been added to your PATH statement,
and the CMMPATH environment variable will have been added. To
de-install CEnvi you must remove the CEnvi directory from the
PATH statement and you must also delete the "SET CMMPATH=..."
line.
1.4.2 OS/2 de-installation
Install.cmm made two changes to C:\CONFIG.SYS: the directory that
CEnvi was in will have been added to your PATH statement, and the
CMMPATH environment variable will have been added. To de-install
CEnvi you must remove the CEnvi directory from the PATH statement
and you must also delete the "SET CMMPATH=..." line.
1.4.3 Windows de-installation
Install.cmm made two changes to WIN.INI: the CMM profile
extension was added and the CMMPATH profile string was created.
To de-install CEnvi you must edit WIN.INI (with NOTEPAD.EXE for
example) and remove from the [Extensions] section a line similar
to this:
CMM=C:\CENVI\CENVI.EXE ^.CMM
and also remove these line (or lines much like these) from
WIN.INI:
[CEnvi]
CMMPATH=E:\NOMBAS\CENVI\EXAMPLES.WIN
1.5. Using this package
1.5.1 Unregistered CEnvi shareware executable
The executable in this package, named CEnvi.EXE, is identical to
the registered version of CEnvi at the time this package was
created with one exception: this unregistered shareware version
will occasionally put up a screen to remind you to register your
copy of CEnvi (see the bottom of this document or REGISTER.DOC).
Nombas has spent, and will continue to spend, time and resources
developing and supporting CEnvi and Cmm. Without your honest
support Nombas cannot improve and support CEnvi (and pay
mortgage, feed the kids, pay the doctor, etc...).
It is likely that months have elapsed since this shareware
package has been put together (see date at the top of this file).
If so, then the version of CEnvi you receive will be an updated
version of this one. At the time of this release, incremental
improvements have been planned in memory use, speed of execution,
debugging tools, developer tools, and documentation.
1.5.2 Example programs
The following example programs are included with this shareware
version of CEnvi. Those files with a batch extension (.BAT for
DOS and .CMD for OS/2) can be run by invoking the batch file
directly. Those files with the CEnvi source file extension
(.CMM) are invoked by executing CEnvi with the file name as the
first argument (e.g. CENVI FranTick.cmm). Files with different
(e.g., *.LIB, *.H, *.DAT) are files used by CEnvi some of the
example programs.
Many of the files will provide help for how to use them if they
are invoked with "/?" as the only parameter.
All of these example files are here for you to view, study,
experiment with, and alter for your own use. The Nombas BBS will
continue to gather CEnvi and Cmm example files created by Nombas
or uploaded by CEnvi and Cmm users; so registered users will have
a large library to choose from (maybe some other CEnvi user has
already solved your need, or perhaps their need is close to yours
and you will only have to make small modifications to someone
else's uploaded CEnvi program).
1.5.3 DOS example files:
*AllDirs.bat: Perform a command in this directory and all
sub-directories
*AllFiles.bat: Perform a command on all files matching a given
file specification
*Ascii.bat: Display the ascii character table
*BatLoops.bat: Examples of various methods CEnvi can use to
allow looping within batch files
*BattMem.bat: Show values stored in a PC's battery-protected
memory
*Border.cmm: Draw a simple border on the screen
*DelTree.bat: Delete a directory tree
*DelTree1.bat: Delete a directory tree - another method
*DelTree2.bat: Delete a directory tree - yet another method
*DirStat.bat: Extract specific fields from a DOS "DIR" listing
*DiskFree.bat: Display free space on a disk drive
*DosTime.bat: Show time according to computer's internal clock
*Fibonacc.cmm: Two methods for generating the Fibonacci
sequence
*FileFind.bat: Wildcard search for files on current drive or on
all drives
*Find#.cmm: Extract a number from wordy output; used by
DirStat.bat
*FranTick.cmm: Animated tick who drank too much coffee
*GetUKey.cmm: Display a choice prompt and then set an
environment variable based on user's selection
*Hello.cmm: My first Cmm program. Used to begin the Cmm
tutorial.
*HexDump.bat: Display hexidecimal dump of a file
*Install.cmm: Install this CEnvi unregistered shareware
version.
*IsDay_1.bat: One method to check if it is a specific day of
the week
*IsDay_2.bat: Another method to check if it's a specific day of
the week
*IsItFri.bat: Is it Friday?
*KbdBuf.bat: Alter the size of the keyboard buffer
*KbdRate.bat: Alter the typematic rate of the keyboard
*KeyCode.bat: Display keycode of any key pressed
*KeyState.bat: Get or set the state of the NumLock or CapsLock
keys
*KeyStuff.bat: Stuff characters into the keyboard buffer
*MemBlock.bat: Trace through DOS's allocated memory blocks
*Mouse.bat: Demonstrate reading a mouse's position and state
*MultiDir.bat: DOS's "DIR" command allowing multiple file
specifications
*NumLockd.bat: Set the NumLock key on
*OneADay.bat: Perform any command(s) no more than once per day
*PathAdd.bat: Add a directory to your PATH environment
variable.
*PathDel.bat: Remove a directory from your PATH environment
variable
*PathStak.bat: Multi-level save or restore of current drive and
directory so that you can change drives and directories and
still return to this one
*PathSubs.bat: Use DOS's SUBST command to shorten your PATH
environment variable so that more paths can be fit with DOS'
127-byte limit
*Primes.bat: Demonstrate automatic array allocation for
calcualting prime numbers
*PrmptDay.bat: Change command-line-prompt to display today's
date
*Quote.bat: Choose a "profound" quote at random
*REBOOT_1.BAT: One method to reboot your computer
*REBOOT_2.BAT: Another method to rebott your computer
*Restrict.cmm: Allow a limited subset of DOS commands
*SortLen.bat: Sort any file based on line length
*Sound.bat: Play a frequency for a given time period
*Tee.cmm: Save screen output to a file while it is being
displayed on the screen
*ValidDir.bat: Verify if a directory is valid
*Wait.bat: Puse and do not return for specifiec number of
seconds
1.5.4 OS/2 example files:
*AllDirs.cmd: Perform a command in this directory and all
sub-directories
*AllFiles.cmd: Perform a command on all files matching a given
file specification
*Ascii.cmd: Display the ascii character table
*BatLoops.cmd: Examples of various methods CEnvi can use to
allow looping within batch files
*Border.cmm: Draw a simple border on the screen
*CEnviSet.cmd: This file can be used instead of CEnvi.exe if
you are using environment variables as Cmm variables and need
them to be changed in the current OS/2 environment.
*DelTree.cmd: Delete a directory tree
*DelTree1.cmd: Delete a directory tree - another method
*DelTree2.cmd: Delete a directory tree - yet another method
*Devices.cmd: Show status of system devices.
*DirStat.cmd: Extract specific fields from a DOS "DIR" listing
*DiskFree.cmd: Display free space on a disk driveDirStat.cmd:
*DosCalls.lib: Example library of "wrapper" function calls to
OS/2 API calls in the DosCalls library. This file is
"#include"ed in many of the other example files.
*EPM.cmd: Wrapper for EPM.EXE for C programmers which will
bring in realted *.c, *.H and *.asm files
*Fibonacc.cmm: Two methods for generating the Fibonacci
sequence
*FileFind.cmd: Wildcard search for files on current drive or on
all drives
*Find#.cmm: Extract a number from wordy output; used by
DirStat.bat
*FranTick.cmm: Animated tick who drank too much coffee
*GetUKey.cmm: Display a choice prompt and then set an
environment variable based on user's selection
*Hello.cmm: My first Cmm program. Used to begin the Cmm
tutorial.
*HexDump.cmd: Display hexidecimal dump of a file
*IDLE.cmd: Change process priority to run a CEnvi program only
during system idle time.
*Install.cmm: Install this CEnvi unregistered shareware
version.
*IsDay_1.cmd: One method to check if it is a specific day of
the week
*IsDay_2.cmd: Another method to check if it's a specific day of
the week
*IsItFri.cmd: Is it Friday?
*KbdRate.cmd: Alter the typematic rate of the keyboard
*KeyCode.cmd: Display keycode of any key pressed
*KeyState.cmd: Get or set the state of the NumLock or CapsLock
keys
*KillProc.cmd: Terminate a running process by Process ID, full
name, or partial name
*MultiDir.cmd: OS/2's "DIR" command allowing multiple file
specifications
*OneADay.cmd: Perform any command(s) no more than once per day
*OS2Time.cmd: Show time according to computer's internal clock
*Parents.cmd: Show heriarchical list of ancestor's process ID's
and names
*PathAdd.cmd: Add a directory to your PATH environment
variable.
*PathDel.cmd: Remove a directory from your PATH environment
variable
*PathStak.cmd: Multi-level save or restore of current drive and
directory so that you can change drives and directories and
still return to this one
*PMdll.lib: Example library of "wrapper" routines to function
in the PM DLL (Presentatiom Manager Dynamic Link Library).
This file is "#include"ed in many of the other example files.
*Primes.cmd: Demonstrate automatic array allocation for
calcualting prime numbers
*PrmptDay.cmd: Change command-line-prompt to display today's
date
*ProcList.cmd: Show list of all running processes; their names
and ID's
*Quote.cmd: Choose a "profound" quote at random
*Restrict.cmm: Allow a limited subset of DOS commands
*Setup.cmd: Open the OS/2 Setup Setup folder on the desktop
*SortLen.cmd: Sort any file based on line length
*Sound.cmd: Play a frequency for a given time period
*Switch.cmd: Switch foreground application to another process
base on process ID, full name, or partial name
*Tee.cmm: Save screen output to a file while it is being
displayed on the screen
*Threads.cmd: Display list of all threads in all running
processes
*ValidDir.cmd: Verify if a directory is valid
*Wait.cmd: Puse and do not return for specifiec number of
seconds
*Windows.cmd: Start up full-screen windows session with
specified Windows program. This file contains specific DOS
notebook settings that should be altered to meet your
computer's configuration.
*WinList.cmd: Display list of all PM windows
*WPFolder.cmd: Open a desktop folder for any specified
directory and optionally switch to that window
1.5.5 Windows example files:
The following CEnvi source programs can be run by associating the
.cmm file extension with CEnvi.exe. This can be done by using
the File Manager: select one of these .cmm files then choose
File/Association and select the full path to CEnvi.exe. After
this, you can run any of these exmple files simply by
double-clicking on it.
*Ascii.cmm: Display the ascii character table
*BattMem.cmm: Show values stored in a PC's battery-protected
memory
*BootEd1.cmm: Startup NotePad to edit c:\AutoExec.bat and
C:\Config.sys using Windows DLL's.
*BootEd2.cmm: Startup NotePad to edit c:\AutoExec.bat and
C:\Config.sys using CEnvi's spawn() function.
*Border.cmm: Draw a simple border on the screen
*DosTime.cmm: Show time according to computer's internal clock
*Fibonacc.cmm: Two methods for generating the Fibonacci
sequence
*FranTick.cmm: Animated tick who drank too much coffee
*Hello.cmm: My first Cmm program. Used to begin the Cmm
tutorial.
*HexDump.cmd: Display hexidecimal dump of a file
*Icons.cmm: Minimize all windows. Demonstrate PostMessage()
from Message.lib.
*Install.cmm: Install this CEnvi unregistered shareware
version.
*Message.lib: Wrappter for Windows' PostMessage() and
SendMessage() fucntion to send commands to windows.
*MsgBox.lib: A wrapper library for Windows' MessageBox()
function. This file is #include'd in other CEnvi sample
files.
*MsgBoxes.cmm: Show various message box types using the
function in MsgBox.lib.
*OpenCmm.cmm: Use Windows' common dialog (via PickFile.lib) to
select a *.cmm file to edit.
*PickFile.lib: A simple interface to the GetOpenFileName()
function in the Windows Common Dialog DLL. This library file
is #include'd in some of the other CEnvi sample files.
*Quote.cmm: Choose a "profound" quote at random
*WinBeep.cmm: Call Windows' MessageBeep() function.
*WinExec.lib: A wrapper library for Windows' WinExec()
function. This file is #include'd in other CEnvi sample
files.
*WinExecs.cmm: Demonstratio of Windows' WinExec() function
using the wrapper from WinExec.lib.
*WinList.cmm: Show a list of all Windows, their handles, and
their children.
*WinUtil.lib: A small selection of utilities that may be
#include'd in CEnvi code to get simple access to Windows DLL
functions.
1.6. CEnvi - A Cmm Interpreter
This section describes the CEnvi program, and describes the
various methods for use CEnvi.exe to execute Cmm programs.
1.6.1 What is CEnvi?
CEnvi is the first (and so far only) application to implement the
Cmm programming language. CEnvi is a Command-line version of a
Cmm interpreter, and it can use Environment variables as if they
were global Cmm variables. CEnvi contains a reasonable facsimile
of the standard C library, and can link at runtime to external
Cmm libraries.
The "Envi" and the "C" in CEnvi reflects the envy that computer
professionals often feel when they are working on a computer that
does not have a complete C programming environment. "Envi" also
refers to the environment variables that CEnvi attempts to work
with as if they were regular Cmm variables.
Like all implementations for Cmm, CEnvi is portable between
operating systems. It is currently testing under DOS, OS/2, and
Windows, and other OS ports are in the works.
1.6.2 Environment Variables
Variables in all UPPERCASE letters are taken from the environment
variables. Environment variables are treated like other
variables except that they don't need quotes around them to
default to being strings if they don't match another type.
To the source code, the only difference between a variable and an
environment variable is that environment variables are all
UPPER_CASE letters. When the environment variable is first used
it is read from the environment block and some assumptions are
made about what kind of variable it is; this can lead to problems
when I=666 is interpreted as the number 666 when really it maybe
should have been the string "666". Before the program exits, all
environment variables used by the code are then written to the
environment block.
In some implementations (CEnvi for DOS, for example) the
environment variables remain changed even after the Cmm
interpreter exits. In other cases, special kludges must be added
to alter a parent process' environment variables (see ESet() for
OS/2).
1.6.3 Special Environment Variables
These environment variables affect where CEnvi looks for source
files:
*CMMPATH: This environment will be checked for directories to
search for include files if the include file is not in the
current directory. For Windows, this value may come from the
CMMPATH profile value in WIN.INI (in the [CEnvi] section).
*PATH: Batch-file source files (see below) will be searched in
these directories if not found in the current directory.
*CENVI_ESET: In those environment for which CEnvi cannot
covertly alter the environment variables of the command
interpreter (e.g., OS/2), this environment variable specifies
a file name. CEnvi will write the strings necessary for the
command interpreter to set environment variables as altered
by your Cmm code. See the description of ESet() for more
information about this command.
1.6.4 Executing Code as command-line Input Parameters
If a Cmm program is very short, then it can be executed wholly
from the command line. For example, here is the famous hello
world program executed from the cli prompt:
CEnvi main() { printf("Hello world!"); }
which can be written more conisely under Cmm rules as:
CEnvi printf("Hello world!")
You may have to keep in mind bahavior of the cli when inputting
code. It is sometimes necessary to put quotes around code to
keep symbols from being interpreted by the cli, as in this
example:
CEnvi "for(i=0;i<10;i++) printf("%d\n",i)"
where the quotes are necessary to prevent the cli from
interpreting the "<" as file redirection.
Also, in batch files (DOS, OS/2) you need to remember that "%"
has special meaning for the batch file processor, and so the
above line in a batch would have to be written as:
CEnvi "for(i=0;i<10;i++) printf("%%d\n",i)"
1.6.5 Executing *.CMM Source File Code
A file with the extension ".CMM", if the file name is given as
the first parameter to CEnvi.exe, is considered by CEnvi to be
pure CMM source code. This file with the .CMM extension is
expected to be a plain Cmm source file, just as a C compiler
expects a file with the .C extension to be C source code. CEnvi
will check the current directory for the .CMM file, and then
check directories in the PATH environment variable. Any
arguments passed to CEnvi.exe after the .CMM source name are
given to the main(argc,argv) function in the source, if there is
one. So the hellow.cmm program can look identical to the
hellow.c program, and when you run CEnvi.exe hellow.cmm you get
the same output. If you run
CEnvi.exe FOO.CMM One Two Three
the main function in FOO.CMM would get argc=4 and
argv[0]="FOO.CMM" and argv[3]="THREE".
This all means that if you were to have an executable FOO.EXE
that is similar to FOO.CMM, then "FOO.EXE" is interchangeable
with "CENVI FOO.CMM", i.e.,
FOO.EXE arg1 arg2 arg3
is the same as:
CENVI FOO.CMM arg1 arg2 arg3
In OS/2 or windows or other environments where file extensions
can be associated with programs, you may want to associate the
.CMM extension with CEnvi.exe, so that double-clicking on
HELLOW.CMM will act identically to double-clicking on the
compiled-and-linked HELLOW.EXE.
1.6.6 Batch-File Kludge
The most convenient method for executing Cmm source code from the
DOS or OS/2 command line is sort of a kludge: if the first
argument to CEnvi is the name of a batch file, then CEnvi reads
that batch file and accepts as source all the code between the
lines "GOTO CENVI_EXIT" and ":CENVI_EXIT", and passes the command
line arguments to main(argc,argv). This is very similar to
executing:
CEnvi.exe #include'foo,bat,,GOTO CENVI_EXIT,:CENVI_EXIT'
except that the '#include' statement is handled automatically by
CEnvi, and the rest of the command-line arguments are passed to
main().
Note that ".bat" is the DOS version of the batch file name
extension. This name is different for different operating
systems.
In this way, a batch file can be run exactly like a .EXE file,
and the command arguments are passed to main in the same way. If
the full path of the batch file is not supplied, then CENvi will
look in the current directory and then in directories in the
PATH.
Here is an example of an OS/2 batch file that expects any number
(up to 9) of integers and sets the SUM environment variable to
the values added together. (It calls CEnviSet instead of CEnvi
directly in order to set the environment variable.)
@echo off
REM *********************************************************
REM *** SUM.BAT - Use CEnvi to sum lots of numbers together,*
REM *** setting the SUM environment variable to *
REM *** the result of adding all the numbers. *
REM *********************************************************
call CEnviSet %0.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO CENVI_EXIT
main(argc,argv)
{
SUM = 0;
for ( i = 1; i < argc; i++ )
SUM += atoi(argv[i])
}
:CENVI_EXIT
1.6.7 EXTPROC: *.CMD Source file (For OS/2)
Under the OS/2 command processor, you can define an external
processor to process a batch (*.cmd) file if the first statement
is EXTPROC. EXTPROC is followed by the name of the processor,
which in this case will be "CEnvi". This is an example file,
ARGS.CMD, of a program to display all input parameters:
EXTPROC CEnvi
main(argc,argv)
{
for ( i = 0; i < argc; i++ )
printf("Input argument %d = \%s\n",i,argv[i]);
}
1.6.8 REXX-File Kludge (For OS/2)
Similar to the Batch-File Kludge described above, if the first
argument to CEnvi is the name of a REXX source file then CEnvi
automatically executes the code between "SIGNAL CENVI_EXIT" and
"CENVI_EXIT:". This example Rexx file for OS/2 behaves the same
as the previous batch program example (CEnviSet.cmd is an OS/2
batch file that helps run Cmm files if environment variables need
to be altered--see ESet in the OS2Lib appendix):
/***********************************************************
*** SUM.CMD - Use CEnvi to sum lots of numbers together,***
*** setting the SUM environment variable to ***
*** the result of adding all the numbers. ***
***********************************************************/
'call CEnviSet %0.cmd %1 %2 %3 %4 %5 %6 %7 %8 %9'
SIGNAL CENVI_EXIT
main(argc,argv)
{
SUM = 0;
for ( i = 1; i < argc; i++ )
SUM += atoi(argv[i])
}
CENVI_EXIT:
1.6.9 CMM File Association and Drag-and-Drop (OS/2)
You can associate CEnvi.exe with .cmm files through the settings
notebook of CEnvi.exe. This lets you executed any CEnvi *.cmm
file simply by double-clicking its icon in the desktop.
A Cmm program can be set up as a Workplace Shell program that
accepts drag and drop. To do this, drag a program template out
of the templates folder and place it on the desktop where you
want your Cmm program to run from. In program settings for this
program object set the program name to the path and file
specification for CEnvi.exe (e.g., "C:\CMM\CEnvi.exe"). Set
Parameters to the full source and file name of the Cmm file
(e.g., "C:\CMM\CZIP.cmm"). Then rename the program object to
whatever you want (e.g., "CZIP"). Then whenever you drag a file
onto that object then the filename will be the second argument to
main().
1.6.10 CMM File Association and Drag-and-Drop (Windows)
You can associate Cmm files with CEnvi.exe by using the File
Manager: select a .cmm file then choose File/Association and
select the full path to CEnvi.exe. After this, you can run any
of *.cmm program simply by double-clicking on it.
-------------------------------- FILE LIST --------------------------------
The CEnvi Unregistered Shareware package includes the files in the
following list. You are not permitted to upload or otherwise transfer
copies of any registered version of CEnvi that does not include all of the
files in this list.
*CENVI.EXE: CEnvi shareware executable for DOS, OS/2, or Windows.
*CENVI.DOC: CEnvi Shareware Manual, Chapter 1: CEnvi Unregistered Shareware
*CMMTUTOR.DOC: CEnvi Shareware Manual, Chapter 2: Cmm Language Tutorial
*CMM_VS_C.DOC: CEnvi Shareware Manual, Chapter 3: Cmm versus C, for C
Programmers
*CENVILIB.DOC: CEnvi Shareware Manual, Chapter 4: Function Library
*FILELIST.DOC: This file.
*LICENSE.DOC: CEnvi Unregistered Shareware License Agreement
*REGISTER.DOC: CEnvi registration form
*INSTALL.CMM: Cmm source file for installing this shareware version
* *.CMM, *.CMD, *.BAT, *.LIB: Many many sample programs using CEnvi. See
CENVI.DOC for a complete list.
----------------------------- REGISTRATION -------------------------------
This is a shareware release. Please register. As a registered CEnvi user
you will receive:
*The latest version of CEnvi for all supported platforms (currently DOS,
OS/2, and Windows).
*The CEnvi user's manual (almost 100 pages, including a description of the
Cmm programming language, a tutorial for those who have never programmed,
and descriptions and examples of the nearly 150 functions included in the
CEnvi library).
*Free incremental electronic downloads for new versions of CEnvi for all
supported operating systems.
*Unlimited support from Nombas and CEnvi/Cmm users through CompuServe
(72212,1622), internet (bsn@world.std.com), the cenvi-cmm e-mail mailing
list (cenvi-cmm@world.std.com), and the Nombas BBS (617-391-6595).
*Access to the growing list of CEnvi utilities and libraries (some of which
are included in this unregistered shareware package, and others are
contributed by Nombas and CEnvi/Cmm users to the electronic locations
described above).
------------------------- CENVI REGISTRATION FORM -------------------------
Thank you for registering your shareware copy of CEnvi version 1.0. Please
fill out and mail in this form, along with payment.
Where did you get CEnvi? ______________________________________________
Name: _________________________________________________________________
Company: ______________________________ Position: _____________________
Address: ______________________________________________________________
_______________________________________________________________________
______________________________________________________________________
Country: _________________________ (add ZIPcode if applicable)
Phone: ___________________________ EMail: ______________________________
Diskette size: [ ] 3.5" [ ] 5.25"
CEnvi Registered License ............ Quantity _____ x $38.00 = $ _________
Additional CEnvi Registered licenses for your
organization (does not include additional manuals
or diskettes). You must already be a registered
user to purchase additional licenses.
Additonal License Quantity _____ x $15.00 = $ _________
Additional CEnvi Manuals. You must already be a
registered user to purchase additional manuals.
Additional Manuals Quantity _____ x $10.00 = $ _________
Friend-of-Cmm Discount: enter $-5.00, and BBS
location, if you have uploaded CEnvi Unregistered
Shareware to a BBS where it wasn't already available.
BBS Location ____________________________________________ $-_________
Shipping outside USA, Canada, or Mexico $4.00 ................ $ _________
Subtotal $ _________
Massachusetts residents please add 5% sales tax ............... $ _________
Total $ _________
Include a check or money order for this total, in U.S. funds and drawn on a
U.S. bank, payable to Nombas. Mail with this form to:
Nombas
P.O. Box 875
Medford, MA 02155 USA
Nombas may also be contacted at:
BBS: (617)391-6595
Phone: (617)391-6595, (617)391-5289
Internet: bsn@world.std.com
CompuServe: 72212,1622
Nombas welcomes all comments, good or bad, regarding CEnvi and Cmm. Please
use the back of this form to give us all your suggestions about CEnvi and
Cmm. This is version 1.0; Where should we go from here?