home *** CD-ROM | disk | FTP | other *** search
/ The Pier Shareware 6 / The_Pier_Shareware_Number_6_(The_Pier_Exchange)_(1995).iso / 035 / cenvi29.zip / CENVI.DOC < prev    next >
Text File  |  1994-11-29  |  59KB  |  1,095 lines

  1.                     CEnvi Shareware Manual, Chapter 1:
  2.                        CEnvi Unregistered Shareware
  3.  
  4.                      CEnvi unregistered version 1.009
  5.                              29 November 1994
  6.  
  7.                        CEnvi Shareware User's Manual
  8.  
  9.           Copyright 1993, Nombas, All Rights Reserved.
  10.           Published by Nombas, PO BOX 875, MEDFORD MA 02155-0007 USA
  11.           (617)391-6595
  12.  
  13.           Thank you for trying this shareware version of CEnvi from Nombas,
  14.           a member of the Association of Shareware Professionals (ASP).
  15.  
  16. 1.  CEnvi Unregistered Shareware
  17.  
  18. 1.1.  Introduction to Cmm and CEnvi
  19.  
  20.           Cmm (C minus minus) is 'C' for the rest of us.  CEnvi runs Cmm
  21.           programs in the DOS, Windows, OS/2, etc... environments.
  22.           Together, CEnvi and Cmm make the power and flexibility of the C
  23.           programming language part of every computer user's environment,
  24.           without the hardware, time, and programmer resources needed for
  25.           developing full-blown C programs.
  26.  
  27.           With CEnvi and Cmm, anyone can take control of their computer
  28.           environment.  C is not just for programming nerds anymore.  CEnvi
  29.           utilites, macros, batch files, and scripts can quickly be
  30.           created, shared, and modified among all computer users,
  31.           professional and amateur alike.
  32.  
  33.           CEnvi can be incorporated at a pace that is comfortable to you:
  34.           you may only want to use CEnvi code set up by a more experienced
  35.           user, you may want to enhance existing batch files with a line or
  36.           two of CEnvi code, or you may write complete utilities using
  37.           CEnvi.
  38.  
  39. 1.2.  CEnvi unregistered shareware version
  40.  
  41.           This package is the unregistered shareware version of CEnvi.
  42.           Nombas provides this unregistered shareware version of CEnvi so
  43.           that you can try the program for a while before deciding whether
  44.           to buy.  If, after a few weeks of using using this product, you
  45.           think CEnvi will be useful to you and/or your organization then
  46.           use the registration form at the end of this document (or see the
  47.           file: REGISTER.DOC) to register CEnvi.
  48.  
  49. 1.2.1   Why you should register
  50.  
  51.           If you register, then you will receive:
  52.             *The latest version of CEnvi for all supported platforms
  53.               (currently DOS, OS/2, and Windows, with NT support expected
  54.               soon) without the annoying "Please Register" reminder.
  55.             *The CEnvi user's manual (almost 100 pages, including a
  56.               description of the Cmm programming language, a tutorial for
  57.               those who have never programmed, and descriptions and
  58.               examples of the nearly 150 functions included in the CEnvi
  59.               library).
  60.             *Free incremental electronic downloads for new versions of
  61.               CEnvi for all supported operating systems.
  62.             *Unlimited support from Nombas and CEnvi/Cmm users through
  63.               CompuServe (72212,1622), internet (bsn@world.std.com), the
  64.               cenvi-cmm e-mail mailing list (cenvi-cmm@world.std.com), and
  65.               the Nombas BBS (617-391-6595).
  66.             *Access to the growing list of CEnvi utilities and libraries
  67.               (some of which are included in this unregistered shareware
  68.               package, and others are contributed by Nombas and CEnvi/Cmm
  69.               users to the electronic locations described above).
  70.             *Discounts for additional registered version of CEnvi to use
  71.               within your organization.
  72.  
  73. 1.2.2   How to register
  74.  
  75.           See the REGISTER.DOC document that is included with this package
  76.           (and is also duplicated at the end of this document), to purchase
  77.           a registered version of CEnvi.
  78.  
  79. 1.3.  Installing CEnvi, documents, and sample files
  80.  
  81.           To install this package for evaluation
  82.             * Create a directory and then copy all of these files into that
  83.               directory.
  84.             * From within that directory execute CEnvi.exe.
  85.             * At the CEnvi "Code:" prompt enter "Install.cmm" to execute
  86.               the Install program (which is written in Cmm).
  87.             * You may then test CEnvi by trying out the included example
  88.               files and by creating CEnvi code of your own.
  89.  
  90.           For DOS and OS/2 versions, the install.cmm program will set up
  91.           the PATH environment variable to include the directory you
  92.           installed the files in, and will also set the CMMPATH environment
  93.           variable to this directory.  For Windows, install will add the
  94.           CMMPATH profile value in WIN.INI (in the [CEnvi] section), and
  95.           will also add the CMM file extension to the [Extensions] section
  96.           in WIN.INI.
  97.  
  98. 1.3.1   4DOS and 4OS2 users - .cmm executable extension
  99.  
  100.           4DOS and 4OS2 users can directly execute .cmm files by
  101.           associating the .cmm file extension with your CEnvi executable.
  102.           Assuming the CEnvi.exe is in the c:\CENVID directory, then a 4DOS
  103.           user would want to add this line to AUTOEXEC.BAT:
  104.               SET .cmm=C:\CENVID\CEnvi.exe
  105.  
  106. 1.4.  Removing CEnvi unregistered shareware
  107.  
  108.           If, after testing CEnvi for a few weeks, you choose not to
  109.           register this version of CEnvi, then you should remove the
  110.           program from your computer.  (Also please consider telling Nombas
  111.           why CEnvi did not suit your needs; we need such feedback if we
  112.           are to improve the product.)
  113.  
  114.           For all operating systems, the first step for removing CEnvi is
  115.           to delete all the CEnvi files and the directory that you copied
  116.           the files to.  The next step depends on your operating system:
  117.  
  118. 1.4.1   DOS de-installation
  119.  
  120.           Install.cmm made two changes to C:\AUTOEXEC.BAT: the directory
  121.           that CEnvi was in will have been added to your PATH statement,
  122.           and the CMMPATH environment variable will have been added.  To
  123.           de-install CEnvi you must remove the CEnvi directory from the
  124.           PATH statement and you must also delete the "SET CMMPATH=..."
  125.           line.
  126.  
  127. 1.4.2   OS/2 de-installation
  128.  
  129.           Install.cmm made two changes to C:\CONFIG.SYS: the directory that
  130.           CEnvi was in will have been added to your PATH statement, and the
  131.           CMMPATH environment variable will have been added.  To de-install
  132.           CEnvi you must remove the CEnvi directory from the PATH statement
  133.           and you must also delete the "SET CMMPATH=..." line.
  134.  
  135. 1.4.3   Windows de-installation
  136.  
  137.           Install.cmm made two changes to WIN.INI: the CMM profile
  138.           extension was added and the CMMPATH profile string was created.
  139.           To de-install CEnvi you must edit WIN.INI (with NOTEPAD.EXE for
  140.           example) and remove from the [Extensions] section a line similar
  141.           to this:
  142.                CMM=C:\CENVI\CENVI.EXE ^.CMM
  143.           and also remove these line (or lines much like these) from
  144.           WIN.INI:
  145.                [CEnvi]
  146.                CMMPATH=E:\NOMBAS\CENVI\EXAMPLES.WIN
  147.  
  148. 1.5.  Using this package
  149.  
  150. 1.5.1   Unregistered CEnvi shareware executable
  151.  
  152.           The executable in this package, named CEnvi.EXE, is identical to
  153.           the registered version of CEnvi at the time this package was
  154.           created with one exception: this unregistered shareware version
  155.           will occasionally put up a screen to remind you to register your
  156.           copy of CEnvi (see the bottom of this document or REGISTER.DOC).
  157.           Nombas has spent, and will continue to spend, time and resources
  158.           developing and supporting CEnvi and Cmm.  Without your honest
  159.           support Nombas cannot improve and support CEnvi (and pay
  160.           mortgage, feed the kids, pay the doctor, etc...).
  161.  
  162.           It is likely that months have elapsed since this shareware
  163.           package has been put together (see date at the top of this file).
  164.           If so, then the version of CEnvi you receive will be an updated
  165.           version of this one.  At the time of this release, incremental
  166.           improvements have been planned in memory use, speed of execution,
  167.           debugging tools, developer tools, and documentation.
  168.  
  169. 1.5.2   Example programs
  170.  
  171.           The following example programs are included with this shareware
  172.           version of CEnvi.  Those files with a batch extension (.BAT for
  173.           DOS and .CMD for OS/2) can be run by invoking the batch file
  174.           directly.  Those files with the CEnvi source file extension
  175.           (.CMM) are invoked by executing CEnvi with the file name as the
  176.           first argument (e.g. CENVI FranTick.cmm).  Files with different
  177.           (e.g., *.LIB, *.H, *.DAT) are files used by CEnvi some of the
  178.           example programs.
  179.  
  180.           Many of the files will provide help for how to use them if they
  181.           are invoked with "/?" as the only parameter.
  182.  
  183.           All of these example files are here for you to view, study,
  184.           experiment with, and alter for your own use.  The Nombas BBS will
  185.           continue to gather CEnvi and Cmm example files created by Nombas
  186.           or uploaded by CEnvi and Cmm users; so registered users will have
  187.           a large library to choose from (maybe some other CEnvi user has
  188.           already solved your need, or perhaps their need is close to yours
  189.           and you will only have to make small modifications to someone
  190.           else's uploaded CEnvi program). 
  191.  
  192. 1.5.3   DOS example files:
  193.             *AllDirs.bat: Perform a command in this directory and all
  194.               sub-directories
  195.             *AllFiles.bat: Perform a command on all files matching a given
  196.               file specification
  197.             *Ascii.bat: Display the ascii character table
  198.             *BatLoops.bat: Examples of various methods CEnvi can use to
  199.               allow looping within batch files
  200.             *BattMem.cmm: Show values stored in a PC's battery-protected
  201.               memory
  202.             *CDfind.bat: Change to directory based on name search
  203.             *CmdCount.bat: Repeat DOS command Count times
  204.             *CmmEdit.cmm: VERY simple text editor; developed step-by-step
  205.               in the tutorial chapter of the CEnvi User Manual.
  206.             *DelOld.bat: Delete files older than specified age
  207.             *DelTree.bat: Delete a directory tree
  208.             *DirDiff.cmm: Compare two directory listings for differences
  209.             *DirStat.bat: Extract specific fields from a DOS "DIR" listing
  210.             *DiskFree.bat: Display free space on a disk drive
  211.             *DoList.cmm: Perform action on every element of a list
  212.             *DosTime.bat: Show time according to computer's internal clock
  213.             *EnviAsk.bat: Prompt and receive user input with many options
  214.             *EnviAsks.bat: Many examples of user input using EnviAsk.bat
  215.               and GetUKey.cmm
  216.             *EnvSort.bat: Sort environment variables alphabetically
  217.             *ErrLev.bat: Execute a command and set the ERRLEV value as the
  218.               return code, which makes ERRORLEVEL a variable
  219.             *Fibonacc.cmm: Two methods for generating the Fibonacci
  220.               sequence
  221.             *FileFind.bat: Wildcard search for files on current drive or on
  222.               all drives
  223.             *Find#.cmm: Extract a number from wordy output; used by
  224.               DirStat.bat
  225.             *FloppyIn.bat: Check if a floppy is in drive A: or B:
  226.             *FranTick.cmm: Animated tick who drank too much coffee
  227.             *GetUKey.cmm: Display a choice prompt and then set an
  228.               environment variable based on user's selection
  229.             *Hello.cmm: My first Cmm program. Used to begin the Cmm
  230.               tutorial.
  231.             *HexDump.bat: Display hexadecimal dump of a file
  232.             *Install.cmm: Install this version of CEnvi.
  233.             *Int16.bat: Display key code from keyboard interrupt 16 hex
  234.             *IsDay_1.bat: One method to check if it is a specific day of
  235.               the week
  236.             *IsDay_2.bat: Another method to check if it's a specific day of
  237.               the week
  238.             *IsItFri.bat: Is it Friday?
  239.             *KbdBuf.bat: Alter the size of the keyboard buffer
  240.             *KbdRate.bat: Alter the typematic rate of the keyboard
  241.             *KeyCode.bat: Display keycode of any key pressed
  242.             *KeyState.bat: Get or set the state of the NumLock, CapsLock,
  243.               or Insert keys
  244.             *KeyStuff.bat: Stuff characters into the keyboard buffer
  245.             *MemBlock.bat: Trace through DOS's allocated memory blocks
  246.             *Message.bat: Display very important message in box on screen
  247.             *Mouse.bat: Demonstrate reading a mouse's position and state
  248.             *MultiDir.bat: DOS's "DIR" command allowing multiple file
  249.               specifications
  250.             *NumLock.bat: Set the NumLock key on
  251.             *OneADay.bat: Perform any command(s) no more than once per day
  252.             *OptParms.lib: Library of routines for parsing the optional
  253.               parameters for executing a program. #included in other files
  254.             *OS2Sessn.cmm: Execute sessions from DOS under OS/2
  255.             *PathAdd.bat: Add a directory to your PATH environment
  256.               variable.
  257.             *PathDel.bat: Remove a directory from your PATH environment
  258.               variable
  259.             *PathStak.bat: Multi-level save or restore of current drive and
  260.               directory so that you can change drives and directories and
  261.               still return to this one
  262.             *PathSubs.bat: Use DOS's SUBST command to shorten your PATH
  263.               environment variable so that more paths can be fit with DOS'
  264.               127-byte limit
  265.             *Primes.bat: Demonstrate automatic array allocation for
  266.               calculating prime numbers
  267.             *Print.cmm: Copy file to printer, treating printer as a file
  268.             *PrmptDay.bat: Change command-line-prompt to display today's
  269.               date
  270.             *Quote.bat: Choose a "profound" quote at random
  271.             *REBOOT_1.BAT: One method to reboot your computer
  272.             *REBOOT_2.BAT: Another method to reboot your computer
  273.             *Redirect.bat: Demonstrate how to redirect standard output,
  274.               input, and errors while running any command
  275.             *Restrict.cmm: Allow a limited subset of DOS commands
  276.             *RunTime.bat: Rudimentary scheme for executing a command at a
  277.               certain time of day.
  278.             *Scrandom.bat: Use Screen.lib to draw randomly colored squares
  279.               around the screen
  280.             *Screen.lib: Library, #included in other files, for screen
  281.               output: colors, boxes, lines, etc...
  282.             *ScrnSave.bat: Use Screen.lib to save screen to a file
  283.             *SortLen.bat: Sort any file based on line length
  284.             *Sound.bat: Play a frequency for a given time period
  285.             *Tee.cmm: Save screen output to a file while it is being
  286.               displayed on the screen
  287.             *ValidDir.bat: Verify if a directory is valid
  288.             *VLabel.bat: Read or set disk volume label
  289.             *Wait.bat: Pause and do not return for specified number of
  290.               seconds
  291.             *Which.bat: Find in PATH which command is executed
  292.             *WinClip.cmm: Utility to access Windows clipboard from DOS
  293.             *WinClib.lib: Function to access Windows clipboard from DOS
  294.             *WinIni.lib: Modify Windows INI files from plain DOS
  295.             *WinShell.bat: Start windows with a specific shell.  Run
  296.               Windows for a single program.
  297.  
  298. 1.5.4   OS/2 example files:
  299.  
  300.           For many of these functions, you must ensure that CEnvi2PM.exe is
  301.           accessible (in the current directory or in a directory in the
  302.           search PATH).  CEnvi2PM.exe is a small program used transparently
  303.           by CEnvi.exe when the PMxxxxx() calls are used to PM-specific
  304.           functions.
  305.             *AllDirs.cmd: Perform a command in this directory and all
  306.               sub-directories
  307.             *AllFiles.cmd: Perform a command on all files matching a given
  308.               file specification
  309.             *AltHome.cmd: Switch OS/2 session between windowed and
  310.               full-screen, much like ALT-HOME works in DOS sessions
  311.             *BarClock.cmd: Display time in title bar of active window
  312.             *BatLoops.cmd: Examples of various methods CEnvi can use to
  313.               allow looping within batch files
  314.             *BattMem.cmm: Show values stored in a PC's battery-protected
  315.               memory
  316.             *BckGrnd.cmd: Specify a new file as your desktop background
  317.               image
  318.             *Bouncy.cmd: Start a bouncy OS/2 Command Window. This
  319.               demonstrates moving windows and silliness.
  320.             *BoxFont.cmd: Show and alter default font for DOS and OS/2
  321.               command-line windows
  322.             *CDfind.cmd: Change to directory based on name search
  323.             *CEnviSet.cmd: This file can be used instead of CEnvi.exe if
  324.               you are using environment variables as Cmm variables and need
  325.               them to be changed in the current OS/2 environment.
  326.             *ClipBrd.cmd: Get or modify clipboard text
  327.             *ClipBrd.lib: Library of routines for reading from or writing
  328.               to the clipboard
  329.             *CmmEdit.cmm: VERY simple text editor; developed step-by-step
  330.               in the tutorial chapter of the CEnvi User Manual.
  331.             *Comm.lib: Serial communications routines
  332.             *DelOld.cmd: Delete files older than specified age
  333.             *DelTree.cmd: Delete a directory tree
  334.             *DeskLock.cmd: Lock or unlock desktop
  335.             *DevIOCtl.lib: Function library for OS/2's DosDevIOCTL
  336.               functions
  337.             *DirDiff.cmm: Compare two directory listings for differences
  338.             *DiskFree.cmd: Display free space on a disk drive
  339.             *DlgCtrl.lib: Library of routines for interactive with PM
  340.               dialog boxes and other windows with sub-windows - this
  341.               library is only in its early stages
  342.             *DoFiles.cmd: Perform any command on a list of files selected
  343.               from a file dialog box
  344.             *DoList.cmd: Perform action on every element of a list
  345.             *DoMenu.cmd: Execute any menu selection of a PM application,
  346.               based on the name of the window and the menu text
  347.             *DOS.cmd: Perform DOS command from an OS/2 session, with the
  348.               option to "see" output of the command; mirrors OS2.BAT
  349.             *DosCalls.lib: Example library of "wrapper" function calls to
  350.               OS/2 API calls in the DosCalls library.  This file is
  351.               "#include"ed in many of the other example files.
  352.             *DropMany.cmd: Drag many files for single launch of program
  353.               object
  354.             *DumpIni.cmd: Display profile settings from a .INI file; uses
  355.               Profile.lib
  356.             *EditCmd.cmd: Use PM's file dialog (via FileDlg.lib) to select
  357.               a *.cmd file to edit.
  358.             *EnvSort.cmd: Sort environment variables alphabetically
  359.             *ErrLev.cmd: Execute a command and set the ERRLEV value as the
  360.               return code, which makes ERRORLEVEL a variable
  361.             *ExamineW.cmd: Display lots of data about any PM window on the
  362.               desktop, and sub-windows (this file in early stages)
  363.             *Fibonacc.cmm: Two methods for generating the Fibonacci
  364.               sequence
  365.             *FileDlg.lib: A simple interface to the WinFileDlg() PM
  366.               function.  This library file is #include'd in some of the
  367.               other CEnvi sample files.
  368.             *FileFind.cmd: Wildcard search for files on current drive or on
  369.               all drives
  370.             *FileIO.lib: Function to interface directly with OS/2's File IO
  371.             *Find#.cmm: Extract a number from wordy output; used by
  372.               DirStat.bat
  373.             *FranTick.cmm: Animated tick who drank too much coffee
  374.             *FSSlave.cmm: Control full screen OS/2 session from
  375.               TEXTBOSS.LIB
  376.             *GetUKey.cmd: Display a choice prompt and then set an
  377.               environment variable based on user's selection 
  378.             *GiveMem.lib: Library of routines for shareing memory with
  379.               other applications whose memory is otherwise "protected"
  380.             *Hello.cmm: My first Cmm program. Used to begin the Cmm
  381.               tutorial.
  382.             *HexDump.cmd: Display hexadecimal dump of a file
  383.             *HideTask.cmd: Hide task from the Task List window
  384.             *IDLE.cmd: Change process priority to run a CEnvi program only
  385.               during system idle time.
  386.             *IdleProg.cmd: Execute a program in the background; i.e., run
  387.               only during system idle time.
  388.             *Install.cmm: Install this version of CEnvi.
  389.             *IsItFri.cmd: Is it Friday?
  390.             *IsRun.cmd: Is process XXXXX running?
  391.             *KbdRate.cmd: Alter the typematic rate of the keyboard; in many
  392.               cases faster than OS/2 Keyboard tool can set it
  393.             *KeyCode.cmd: Display keycode of any key pressed
  394.             *KeyGhost.cmd: Sample for using KeyPush.lib to determine if
  395.               CEnvi is worth the price of registration.
  396.             *KeyPush.cmd: Send keystroke commands directly to a window by
  397.               window title; a quick interface into KeyPush.lib
  398.             *KeyPush.lib: Library of routines for sending keystrokes to PM
  399.               or Windowed applications.
  400.             *KeyState.cmd: Get or set the state of the NumLock, CapsLock,
  401.               or Insert keys for current session or for the whole WPS
  402.             *Kill.cmd: Terminate a running process by Process ID, Window
  403.               title, full name, or partial name
  404.             *MenuCtrl.lib: Library of routines for interactive with PM
  405.               menus
  406.             *MiniTemp.cmd: Temporarily minimize all windows to icons
  407.             *MsgBox.lib: A wrapper library for the PM WinMessageBox()
  408.               function.  This file is #include'd in other CEnvi sample
  409.               files.
  410.             *MsgBoxes.cmd: Show various message box types using the
  411.               function in MsgBox.lib.
  412.             *NamePipe.lib: Library for OS/2 Named Pipes
  413.             *NoTitleB.cmd: Remove selected elements of a window title bar
  414.             *NumLock.cmd: Turn on NUMLOCK key once, or maintain NUMLOCK ON.
  415.               A shadow of NumLock.cmd can be put in startup folder to
  416.               default computer to NumLock ON. "NumLock 1000" will check
  417.               every second to make sure that NUMLOCK is still set.
  418.             *ObjSet.cmd: Alter WPS object and folder settings
  419.             *OneADay.cmd: Perform any command(s) no more than once per day
  420.             *OnTop.cmd: Float window to top of all other windows
  421.             *OptParms.lib: Library of routines for parsing the optional
  422.               parameters for executing a program. #included in other files
  423.             *OS2.bat: Perform OS/2 command from a DOS session, with the
  424.               option to "see" output of the command; mirrors DOS.CMD.  Note
  425.               that this requires CEnvi for DOS
  426.             *OS2Time.cmd: Show time according to computer's internal clock
  427.             *OS2Wait.bat: CEnvi for DOS tool to suspend DOS session for
  428.               specified interval
  429.             *Parents.cmd: Show hierarchical list of ancestor's process ID's
  430.               and names
  431.             *PathAdd.cmd: Add a directory to your PATH environment
  432.               variable.
  433.             *PathDel.cmd: Remove a directory from your PATH environment
  434.               variable
  435.             *PathStak.cmd: Multi-level save or restore of current drive and
  436.               directory so that you can change drives and directories and
  437.               still return to this one
  438.             *PMdll.lib: Example library of "wrapper" routines to function
  439.               in the PM DLL (Presentatiom Manager Dynamic Link Library).
  440.               This file is "#include"ed in many of the other example files.
  441.             *Print.cmm: Copy file to printer, treating printer as a file
  442.             *PrmptDay.cmd: Change command-line-prompt to display today's
  443.               date
  444.             *ProcList.cmd: Show list of all running processes; their names
  445.               and ID's
  446.             *Profile.lib: Function library for accessing Profiles; i.e.
  447.               .INI files
  448.             *Quote.cmd: Choose a text-mode "profound" quote at random
  449.             *QuotePM.cmd: Choose a PM-mode "profound" quote at random
  450.             *RndBckgr.cmd: Randomly select desktop background, at specified
  451.               interval, from a list of graphic file specifications
  452.             *RunTime.cmd: Rudimentary scheme for executing a command at a
  453.               certain time of day.
  454.             *ScanCode.lib: Retrieve keyboard scan codes for ascii
  455.               characters
  456.             *ServeOS2.com: DOS TSR to work with TextBoss.lib for complete
  457.               keyboard control of DOS sessions
  458.             *Session.cmd: Replace OS/2's START command for greater control
  459.               of starting sessions, including name, position, font,
  460.               notebook settings, etc...
  461.             *Sessions.cmd: batch file to demonstarte various uses of
  462.               Session.cmd
  463.             *ShutDown.cmd: Automated shutdown or reboot of OS/2 system
  464.             *SortLen.cmd: Sort any file based on line length
  465.             *Sound.cmd: Play a frequency for a given time period
  466.             *Switch.cmd: Switch foreground application to another process
  467.               base on process ID, full name, or partial name
  468.             *SysInfo.cmd: Display system configuration parameters
  469.             *TempFldr.cmd: Open folder temporarily, to automatically close
  470.               when it no longer has focus; good for menus
  471.             *Terminal.cmd: A VERY basic terminal program; demonstrates
  472.               COMM.LIB
  473.             *TextBoss.lib: Library of routines to interactively windowed
  474.               DOS or OS/2 applications: can work with ServeOS2.com
  475.             *TextEcho.cmd: Demonstrate TextBoss.lib by shadowing a DOS or
  476.               OS/2 box from an OS/2 box
  477.             *TextWin.cmd: GET/PUT text from/to a windowed DOS or OS/2
  478.               session
  479.             *Threads.cmd: Display list of all threads in all running
  480.               processes
  481.             *UnHang.cmm: Monitor your system to detect OS/2 "hangs", where
  482.               the workplace shell stops responding, then kill or otherwise
  483.               handle the application that is causing the problem
  484.             *ValidDir.cmd: Verify if a directory is valid
  485.             *Wait.cmd: Pause and do not return for specified number of
  486.               seconds
  487.             *Which.cmd: Find in PATH which command is executed
  488.             *WinList.cmd: Display list of all PM windows
  489.             *WinMsg.lib: Routines to send or post messages to PM windows
  490.             *WinSet.cmd: Set the position, size, state, etc... of a PM
  491.               Window
  492.             *WinSpawn.cmd: Pass simple commands to Windows session running
  493.               WinSpawn.cmm
  494.             *WinSpawn.cmm: Run in Windows session from CEnvi for Windows to
  495.               receive commands from WinSpawn.lib
  496.             *WinSpawn.lib: WinSpawn() function to send commands to Windows
  497.               session running CEnvi for Windows and WinSpawn.cmm
  498.             *WinTools.cmd: Demonstrate many of the capabilities of
  499.               WinTools.lib
  500.             *WinTools.lib: Library of routines for manipulating PM windows
  501.               by name or by handle
  502.             *WIN_Boss.lib: work with CEnvi for Windows' ServeOS2.cmm
  503.               program to all full control of Windows applications from an
  504.               OS/2 script
  505.             *WPFolder.cmd: Open a desktop folder for any specified
  506.               directory and optionally switch to that window
  507.  
  508. 1.5.5   Windows example files:
  509.  
  510.           The following CEnvi source programs can be run by associating the
  511.           .cmm file extension with CEnvi.exe.  This can be done by using
  512.           the File Manager: select one of these .cmm files then choose
  513.           File/Association and select the full path to CEnvi.exe.  After
  514.           this, you can run any of these exmple files simply by
  515.           double-clicking on it.
  516.             *AddItem.cmm: Add Group and Item to Program Manager
  517.             *AllSave.cmm: Select SAVE option on all windows
  518.             *Ascii.cmm: Display the ascii character table
  519.             *BarClock.cmm: Display current time in title of active window
  520.             *BattMem.cmm: Show values stored in a PC's battery-protected
  521.               memory
  522.             *BMP.lib: Routines for reading and displaying .BMP files
  523.             *BmpView.cmm: Demonstrate the BMP.LIB routines by reading any
  524.               number of .BMP files and displaying them
  525.             *BootEd1.cmm: Start NotePad to edit c:\AutoExec.bat and
  526.               C:\Config.sys using Windows DLL's.
  527.             *BootEd2.cmm: Start NotePad to edit c:\AutoExec.bat and
  528.               C:\Config.sys using CEnvi's spawn() function.
  529.             *BugHunt.cmm: Example for using the ClipBrd.lib routines.
  530.               Constantly scan clipboard for "bug" in clipboard text
  531.             *ClipBrd.lib: Library of routines for reading from or writing
  532.               to the Windows clipboard
  533.             *ClipSort.cmm: Sort text in-place within the clipboard
  534.             *CmmEdit.cmm: VERY simple text editor; developed step-by-step
  535.               in the tutorial chapter of the CEnvi User Manual.
  536.             *CmmGroup.cmm: Create a CEnvi Programs group in Presentation
  537.               Manager with all of the .CMM files in it
  538.             *Comm.lib: Simplified function interface into Windows' serial
  539.               communication routines
  540.             *CommKybd.cmm: Send all data coming into serial port as
  541.               keystrokes to the active window
  542.             *DDE.lib: Library of common routines and definitions for
  543.               Dynamic Data Exchange (DDE)
  544.             *DDEcli.cmm: Sample DDE client; works with DDEsrv.cmm
  545.             *DDEcli.lib: Library of routines for a DDE client
  546.             *DDEdir.cmm: Show directory listing of all DDE servers
  547.             *DDEsrv.cmm: Sample DDE server; works with DDEcli.cmm
  548.             *DDEsrv.lib: Library of routines for a DDE server
  549.             *DelOld.cmm: Delete files older than specified age
  550.             *DirDiff.cmm: Compare two directory listings for differences
  551.             *DlgCtrl.lib: Library of routines for interactive with Windows
  552.               dialog boxes and other windows with sub-window
  553.             *DosTime.cmm: Show time according to computer's internal clock
  554.             *DOS_BOSS.LIB: Functions for sending keystrokes to and reading
  555.               data from DOS sessions
  556.             *DOS_ECHO.CMM: Demonstrate DOS_BOSS.LIB by echoing text to/from
  557.               DOS session
  558.             *DOS_LOOK.CMM: Use DOS_BOSS.LIB to look at contents of a DOS
  559.               window
  560.             *Dropper.cmm: Perform command for all files Drag-&-Dropped to
  561.               this tool
  562.             *ExamineW.cmd: Display lots of data about any active window and
  563.               its sub-windows
  564.             *ExitWin.cmm: Exit Windows; options to save files, force
  565.               applications to quit, restart Windows, and reboot computer
  566.             *Fibonacc.cmm: Two methods for generating the Fibonacci
  567.               sequence
  568.             *FranTick.cmm: Animated tick who drank too much coffee
  569.             *FullScrn.cmm: Run any command started in maximized window
  570.             *GDI.cmm: Demonstrate some of Windows' graphics functions from
  571.               GDI.lib
  572.             *GDI.lib: Library of a few of Windows' graphics routines
  573.             *GloblMem.lib: Functions to work with Windows' global memory
  574.               resources
  575.             *Hello.cmm: My first Cmm program. Used to begin the Cmm
  576.               tutorial.
  577.             *HexDump.cmm: Display hexadecimal dump of a file
  578.             *Icon.lib: Functions for setting minimized icon
  579.             *IconMany.cmm: Show all of the icons in Program Manager
  580.             *Icons.cmm: Minimize all windows.  Demonstrate PostMessage()
  581.               from Message.lib.
  582.             *IdleTime.cmm: "ScreenSaver" - Show clock if computer is idle
  583.             *InputBox.cmm: Demonstrate uses of the InputBox() routine in
  584.               InputBox.lib
  585.             *InputBox.lib: InputBox() function to allow for a dialog-like
  586.               box for user input
  587.             *Install.cmm: Install this version of CEnvi.
  588.             *KeyCode.cmm: Display keycodes returned by getch().
  589.             *KeyGhost.cmm: Demonstrate how to use KeyPush.lib to control
  590.               other applications.
  591.             *KeyPush.lib: Library of routines created for passing
  592.               keystrokes to a window with the current focus.
  593.             *KillDOS.cmm: Force DOS window to close
  594.             *MenuCtrl.lib: Library of routines for interactive with menus
  595.             *MenuNot.cmm: Disable or delete a menu item
  596.             *Message.lib: Wrapper for Windows' PostMessage() and
  597.               SendMessage() function to send commands to windows.
  598.             *MsgBox.lib: A wrapper library for Windows' MessageBox()
  599.               function.  This file is #include'd in other CEnvi sample
  600.               files.
  601.             *MsgBoxes.cmm: Show various message box types using the
  602.               function in MsgBox.lib.
  603.             *MyCal.cmm: Start/menu/position calendar
  604.             *NumLock.cmm: Set the NUMLOCK key ON
  605.             *OneProg.cmm: Run one and only one program until it exits
  606.             *OnTop.cmm: Float window to top of all other windows
  607.             *OpenCmm.cmm: Use Windows' common dialog (via PickFile.lib) to
  608.               select a *.cmm file to edit.
  609.             *OptParms.lib: Library of routines for parsing the optional
  610.               parameters for executing a program. #included in other files
  611.             *OS2Sessn.cmm: Execute sessions from Windows under OS/2
  612.             *PGroups.cmm: list all of the groups and items Program Manager;
  613.               uses ProgMan.lig
  614.             *PickFile.lib: A simple interface to the GetOpenFileName()
  615.               function in the Windows Common Dialog DLL.  This library file
  616.               is #include'd in some of the other CEnvi sample files.
  617.             *PMButt.cmm: Replace Program Manager with a tiny button in
  618.               upper-left corner for access to all PM items
  619.             *PMCorner.cmm: Minimize Program Manager and then move its icon
  620.               to the lower-right corner of the screen.
  621.             *PongTime.cmm: Bounce the Windows clock mini-app around
  622.             *Print.cmm: Copy file to printer, treating printer as a file
  623.             *Profile.lib: Function library for accessing Profiles; i.e.
  624.               .INI files
  625.             *ProgMan.lib: Library of routines using DDE to communication
  626.               with Program Manager
  627.             *Quote.cmm: Choose a "profound" quote at random
  628.             *RebootNT.cmm: Reboot from Windows NT
  629.             *RndWalls.cmm: Random wallpaper selection at timed intervals
  630.             *RunAgain.cmm: Repeatedly run command at specified interval
  631.             *RunTime.cmm: Schedule a command to execute at a specified hour
  632.               and minute.
  633.             *SafeFMan.cmm: File Manager with dangerous menu options removed
  634.             *SaveScrn.cmm: Start screen saver now
  635.             *ServeOS2.cmm: Work with CEnvi for OS/2 and WIN_BOSS.LIB to
  636.               control Windows sessions from OS/2
  637.             *ServeWIN.com: DOS TSR to work with DOS_BOSS.LIB for complete
  638.               keyboard control of DOS sessions
  639.             *TaskButt: Task Manager replacement; 1-click access to tasks
  640.             *Terminal.cmm: A simple terminal program; demonstrate some of
  641.               the functions in COMM.lib
  642.             *WhoRYou.cmm: Design and implement a dialog box using CEnvi's
  643.               MakeWindow() and DoWindows() functions
  644.             *WinBeep.cmm: Call Windows' MessageBeep() function.
  645.             *Window.lib: A few functions and many defined values useful for
  646.               CEnvi's MakeWindow(), BreakWindow(), and DoWindows()
  647.               functions
  648.             *WinExec.lib: A wrapper library for Windows' WinExec()
  649.               function.  This file is #include'd in other CEnvi sample
  650.               files.
  651.             *WinExecs.cmm: Demonstration of Windows' WinExec() function
  652.               using the wrapper from WinExec.lib.
  653.             *WinList.cmm: Show a list of all Windows, their handles, and
  654.               their children.
  655.             *WinMsg.cmm: Demonstrate how to make a window, and show all the
  656.               messages that go to that window
  657.             *WinRun.bat: Run Windows commands from DOS session; client to
  658.               work with WinRun.cmm
  659.             *WinRun.cmm: Run Windows commands from DOS session; server for
  660.               WinRun.bat
  661.             *WinShell.bat: Start windows with a specific shell.  Run
  662.               Windows for a single program.  This use CENVI.EXE for DOS.
  663.             *WinTools.cmm: Demonstrate many of the capabilities of
  664.               WinTools.lib
  665.             *WinTools.lib: Library of routines for directly manipulating
  666.               windows by name or by handle
  667.             *WinUtil.lib: A small selection of utilities that may be
  668.               #include'd in CEnvi code to get simple access to Windows DLL
  669.               functions.
  670.  
  671. 1.6.  CEnvi - A Cmm Interpreter
  672.  
  673.           This section describes the CEnvi program, and describes the
  674.           various methods for use CEnvi.exe to execute Cmm programs.
  675.  
  676. 1.6.1   What is CEnvi?
  677.  
  678.           CEnvi is the first application to implement the Cmm programming
  679.           language.  CEnvi is a Command-line version of a Cmm interpreter,
  680.           and it can use Environment variables as if they were global Cmm
  681.           variables.  CEnvi contains a reasonable facsimile of the standard
  682.           C library, and can link at runtime to external Cmm libraries.
  683.  
  684.           The "Envi" and the "C" in CEnvi reflects the envy that computer
  685.           professionals often feel when they are working on a computer that
  686.           does not have a complete C programming environment.  "Envi" also
  687.           refers to the environment variables that CEnvi attempts to work
  688.           with as if they were regular Cmm variables.
  689.  
  690.           Like all implementations for Cmm, CEnvi is portable between
  691.           operating systems.  It is currently testing under DOS, OS/2, and
  692.           Windows, and other OS ports are in the works.
  693.  
  694. 1.6.2   Environment Variables
  695.  
  696.           Variables in all UPPERCASE letters are taken from the environment
  697.           variables.  Environment variables are treated like other
  698.           variables except that they don't need quotes around them to
  699.           default to being strings if they don't match another type.
  700.  
  701.           In the source code, the only difference between a variable and an
  702.           environment variable is that environment variables are all
  703.           UPPER_CASE letters.  When the environment variable is first used
  704.           it is read from the environment block and some assumptions are
  705.           made about what kind of variable it is; this can lead to problems
  706.           when I=666 is interpreted as the number 666 when really it maybe
  707.           should have been the string "666".  Before the program exits, all
  708.           environment variables used by the code are then written to the
  709.           environment block.
  710.  
  711.           In some implementations (CEnvi for DOS, for example) the
  712.           environment variables remain changed even after the Cmm
  713.           interpreter exits.  In other cases, special kludges must be added
  714.           to alter a parent process' environment variables (see ESet() for
  715.           OS/2).
  716.  
  717. 1.6.3   Special Environment Variables
  718.  
  719.           These environment variables affect where CEnvi looks for source
  720.           files:
  721.             *CMMPATH: This environment will be checked for directories to
  722.               search for include files if the include file is not in the
  723.               current directory.  For Windows, this value may come from the
  724.               CMMPATH profile value in WIN.INI (in the [CEnvi] section).
  725.             *PATH: Batch-file source files (see below) will be searched in
  726.               these directories if not found in the current directory.
  727.             *CENVI_ESET: In those environment for which CEnvi cannot
  728.               covertly alter the environment variables of the command
  729.               interpreter (e.g., OS/2), this environment variable specifies
  730.               a file name.  CEnvi will write the strings necessary for the
  731.               command interpreter to set environment variables as altered
  732.               by your Cmm code.  See the description of ESet() for more
  733.               information about this command.
  734.  
  735. 1.6.4   Executing Code as command-line Input Parameters
  736.  
  737.           If a Cmm program is very short, then it can be executed wholly
  738.           from the command line.  For example, here is the famous hello
  739.           world program executed from the cli prompt:
  740.               CEnvi main() { printf("Hello world!"); }
  741.           which can be written more conisely under Cmm rules as:
  742.               CEnvi printf("Hello world!")
  743.  
  744.           You may have to keep in mind bahavior of the cli when inputting
  745.           code.  It is sometimes necessary to put quotes around code to
  746.           keep symbols from being interpreted by the cli, as in this
  747.           example:
  748.               CEnvi "for(i=0;i<10;i++) printf("%d\n",i)"
  749.           where the quotes are necessary to prevent the cli from
  750.           interpreting the "<" as file redirection.
  751.  
  752.           Also, in batch files (DOS, OS/2) you need to remember that "%"
  753.           has special meaning for the batch file processor, and so the
  754.           above line in a batch would have to be written as:
  755.               CEnvi "for(i=0;i<10;i++) printf("%%d\n",i)"
  756.  
  757. 1.6.5   Executing *.CMM Source File Code
  758.  
  759.           A file with the extension ".CMM", if the file name is given as
  760.           the first parameter to CEnvi.exe, is considered by CEnvi to be
  761.           pure CMM source code.  This file with the .CMM extension is
  762.           expected to be a plain Cmm source file, just as a C compiler
  763.           expects a file with the .C extension to be C source code.  CEnvi
  764.           will check the current directory for the .CMM file, and then
  765.           check directories in the PATH environment variable.  Any
  766.           arguments passed to CEnvi.exe after the .CMM source name are
  767.           given to the main(argc,argv) function in the source, if there is
  768.           one.  So the hellow.cmm program can look identical to the
  769.           hellow.c program, and when you run CEnvi.exe hellow.cmm you get
  770.           the same output.  If you run
  771.               CEnvi.exe FOO.CMM One Two Three
  772.           the main function in FOO.CMM would get argc=4 and
  773.           argv[0]="FOO.CMM" and argv[3]="THREE".
  774.  
  775.           This all means that if you were to have an executable FOO.EXE
  776.           that is similar to FOO.CMM, then "FOO.EXE" is interchangeable
  777.           with "CENVI FOO.CMM", i.e.,
  778.               FOO.EXE arg1 arg2 arg3
  779.           is the same as:
  780.               CENVI FOO.CMM arg1 arg2 arg3
  781.  
  782.           In OS/2 or Windows or other environments where file extensions
  783.           can be associated with programs, you may want to associate the
  784.           .CMM extension with CEnvi.exe, so that double-clicking on
  785.           HELLOW.CMM will act identically to double-clicking on the
  786.           compiled-and-linked HELLOW.EXE.
  787.  
  788. 1.6.6   Batch-File Kludge
  789.  
  790.           The most convenient method for executing Cmm source code from the
  791.           DOS or OS/2 command line is sort of a kludge: if the first
  792.           argument to CEnvi is the name of a batch file, then CEnvi reads
  793.           that batch file and accepts as source all the code between the
  794.           lines "GOTO CENVI_EXIT" and ":CENVI_EXIT", and passes the command
  795.           line arguments to main(argc,argv).  This is very similar to
  796.           executing:
  797.               CEnvi.exe #include'foo,bat,,GOTO CENVI_EXIT,:CENVI_EXIT'
  798.           except that the '#include' statement is handled automatically by
  799.           CEnvi, and the rest of the command-line arguments are passed to
  800.           main().
  801.  
  802.           Note that ".bat" is the DOS version of the batch file name
  803.           extension.  This name is different for different operating
  804.           systems.
  805.  
  806.           In this way, a batch file can be run exactly like a .EXE file,
  807.           and the command arguments are passed to main in the same way.  If
  808.           the full path of the batch file is not supplied, then CENvi will
  809.           look in the current directory and then in directories in the
  810.           PATH.
  811.  
  812.           Here is an example of an OS/2 batch file that expects any number
  813.           (up to 9) of integers and sets the SUM environment variable to
  814.           the values added together.  (It calls CEnviSet instead of CEnvi
  815.           directly in order to set the environment variable.)
  816.  
  817.               @echo off
  818.               REM *********************************************************
  819.               REM *** SUM.CMD - Use CEnvi to sum lots of numbers together,*
  820.               REM ***           setting the SUM environment variable to   *
  821.               REM ***           the result of adding all the numbers.     *
  822.               REM *********************************************************
  823.               call CEnviSet %0.cmd %1 %2 %3 %4 %5 %6 %7 %8 %9
  824.               GOTO CENVI_EXIT
  825.  
  826.               main(argc,argv)
  827.               {
  828.                 SUM = 0;
  829.                 for ( i = 1; i < argc; i++ )
  830.                 SUM += atoi(argv[i])
  831.               }
  832.  
  833.               :CENVI_EXIT
  834.  
  835. 1.6.7   EXTPROC: *.CMD Source file (For OS/2)
  836.  
  837.           Under the OS/2 command processor, you can define an external
  838.           processor to process a batch (*.cmd) file if the first statement
  839.           is EXTPROC.  EXTPROC is followed by the name of the processor,
  840.           which in this case will be "CEnvi".  This is an example file,
  841.           ARGS.CMD, of a program to display all input parameters:
  842.  
  843.               EXTPROC CEnvi
  844.  
  845.               main(argc,argv)
  846.               {
  847.                 for ( i = 0; i < argc; i++ )
  848.                 printf("Input argument %d = \%s\n",i,argv[i]);
  849.               }
  850.  
  851. 1.6.8   REXX-File Kludge (For OS/2)
  852.  
  853.           Similar to the Batch-File Kludge described above, if the first
  854.           argument to CEnvi is the name of a REXX source file then CEnvi
  855.           automatically executes the code between "SIGNAL CENVI_EXIT" and
  856.           "CENVI_EXIT:".  This example Rexx file for OS/2 behaves the same
  857.           as the previous batch program example (CEnviSet.cmd is an OS/2
  858.           batch file that helps run Cmm files if environment variables need
  859.           to be altered--see ESet in the OS2Lib appendix):
  860.  
  861.               /***********************************************************
  862.                *** SUM.CMD - Use CEnvi to sum lots of numbers together,***
  863.                ***           setting the SUM environment variable to   ***
  864.                ***           the result of adding all the numbers.     ***
  865.                ***********************************************************/
  866.               'call CEnviSet %0.cmd %1 %2 %3 %4 %5 %6 %7 %8 %9'
  867.               SIGNAL CENVI_EXIT
  868.  
  869.               main(argc,argv)
  870.               {
  871.                 SUM = 0;
  872.                 for ( i = 1; i < argc; i++ )
  873.                 SUM += atoi(argv[i])
  874.               }
  875.  
  876.               CENVI_EXIT:
  877.  
  878. 1.6.9   CMM File Association and Drag-and-Drop (OS/2)
  879.  
  880.           You can associate CEnvi.exe with .cmm files through the settings
  881.           notebook of CEnvi.exe.  This lets you executed any CEnvi *.cmm
  882.           file simply by double-clicking its icon in the desktop.
  883.  
  884.           A Cmm program can be set up as a Workplace Shell program that
  885.           accepts drag and drop.  To do this, drag a program template out
  886.           of the templates folder and place it on the desktop where you
  887.           want your Cmm program to run from.  In program settings for this
  888.           program object set the program name to the path and file
  889.           specification for CEnvi.exe (e.g., "C:\CMM\CEnvi.exe").  Set
  890.           Parameters to the full source and file name of the Cmm file
  891.           (e.g., "C:\CMM\CZIP.cmm").  Then rename the program object to
  892.           whatever you want (e.g., "CZIP").  Then whenever you drag a file
  893.           onto that object then the filename will be the second argument to
  894.           main().
  895.  
  896. 1.6.10  CMM File Association and Drag-and-Drop (Windows)
  897.  
  898.           You can associate Cmm files with CEnvi.exe by using the File
  899.           Manager: select a .cmm file then choose File/Association and
  900.           select the full path to CEnvi.exe.  After this, you can run any
  901.           of *.cmm program simply by double-clicking on it.
  902.  
  903. 1.6.11  /BIND= Create Stand-Alone Cmm Executables
  904.  
  905.           The CEnvi /BIND option allows you to create stand-alone,
  906.           royalty-free executables from your Cmm code.  The result of /BIND
  907.           is a binary executable file that operates the same as if CEnvi
  908.           were invoked as an interpreter, except that CEnvi.exe is not
  909.           needed to execute the bound file, because CEnvi.exe and your Cmm
  910.           code are bound together in the created executable.
  911.  
  912.           The following example creates an executable named HELLOW.EXE that
  913.           would print "Hello world!".
  914.               CEnvi /BIND=HELLOW printf("Hello world!");
  915.  
  916.           As another example, you could create a stand-alone editor, which
  917.           we'll call CMMEDIT.EXE, from the result of the CEnvi tutorial
  918.           with the following command:
  919.  
  920.               CEnvi /BIND=CMMEDIT.EXE CMMEDIT.CMM
  921.  
  922.           Now running "CMMEDIT.EXE C:\AUTOEXEC.BAT" from the command line
  923.           would be identical to executing "CENVI.EXE CMMEDIT.CMM
  924.           C:\AUTOEXEC.BAT".
  925.  
  926. 1.6.12  /BIND for OS/2 and CEnvi2PM.EXE
  927.  
  928.           When you /BIND Cmm source code that contains calls to
  929.           PMDynamicLink(), or other PMxxx() calls that invoke CEnvi2PM.exe,
  930.           the resulting executable will still require CEnvi2PM.exe.  So
  931.           users running the bound executable will still need CEnvi2PM.exe
  932.           in a directory of their search path.  CEnvi2PM.exe may be
  933.           distributed royalty-free.
  934.  
  935. 1.6.13  /BIND for Windows
  936.  
  937.           The simplest method for using /BIND in Windows is to execute
  938.           CEnvi.exe, and then to enter the /BIND statement and Cmm source
  939.           name from the CEnvi command prompt.  For example, to turn
  940.           WhoRYou.cmm into the stand-alone WhoRYou.exe, you would execute
  941.           CEnvi.exe and then enter the following at the CEnvi "Code:"
  942.           prompt:
  943.  
  944.               Code: /BIND=WhoRYou WhoRYou.cmm
  945.  
  946. -------------------------------- FILE LIST --------------------------------
  947. The CEnvi Unregistered Shareware package includes the files in the
  948. following list.  You are not permitted to upload or otherwise transfer
  949. copies of any registered version of CEnvi that does not include all of the
  950. files in this list.
  951.  
  952. *CENVI.EXE: CEnvi shareware executable for DOS, OS/2, or Windows.
  953. *CENVI2PM.EXE: Gateway program, executed transparently by CEnvi, for access
  954.   to PM-dependent system calls (OS/2 version only).
  955. *CENVI.DOC: CEnvi Shareware Manual, Chapter 1: CEnvi Unregistered Shareware
  956. *CMMTUTOR.DOC: CEnvi Shareware Manual, Chapter 2: Cmm Language Tutorial
  957. *CMM_VS_C.DOC: CEnvi Shareware Manual, Chapter 3: Cmm versus C, for C
  958.   Programmers
  959. *CENVILIB.DOC: CEnvi Shareware Manual, Chapter 4: Function Library
  960. *LICENSE.DOC: CEnvi Unregistered Shareware License Agreement
  961. *README.DOC: Introductory file. Read this first for quick intallation.
  962. *REGISTER.DOC: CEnvi registration form
  963. *INSTALL.CMM: Cmm source file for installing this shareware version
  964. * *.CMM, *.CMD, *.BAT, *.LIB: Many many sample programs using CEnvi.  See
  965.   CENVI.DOC for a complete list.
  966.  
  967. ----------------------------- REGISTRATION -------------------------------
  968. This is a shareware release.  Please register.  As a registered CEnvi user
  969. you will receive:
  970. *The latest version of CEnvi for all supported platforms (currently DOS,
  971.   OS/2, and Windows).
  972. *The CEnvi user's manual (almost 100 pages, including a description of the
  973.   Cmm programming language, a tutorial for those who have never programmed,
  974.   and descriptions and examples of the over 150 functions included in the
  975.   CEnvi library).
  976. *Free incremental electronic downloads for new versions of CEnvi for all
  977.   supported operating systems.
  978. *Unlimited support from Nombas and CEnvi/Cmm users through CompuServe
  979.   (72212,1622), internet (bsn@world.std.com), the cenvi-cmm e-mail mailing
  980.   list (cenvi-cmm@world.std.com), the Nombas BBS
  981.   (ATDT16173916595,,,,,44444), or CompuServe in IBMSYS forum 3.
  982. *Access to the growing list of CEnvi utilities and libraries (some of which
  983.   are included in this unregistered shareware package, and others are
  984.   contributed by Nombas and CEnvi/Cmm users to the electronic locations
  985.   described above). Available in the Nombas BBS, from internet via
  986.   anonymous ftp at ftp.std.com in the /vendors/CEnvi-Cmm directory, or in
  987.   CompuServe in IBMSYS library 3 (search on CEnvi, Cmm, CENV, & CNV).
  988.  
  989. There are three ways to register CEnvi version 1.009: 
  990.  
  991. ***************************************************************************
  992. ********* REGISTRATION METHOD 1: CENVI MAIL-IN REGISTRATION FORM **********
  993. ***************************************************************************
  994. Please fill out and mail in this form, along with payment.
  995.  
  996. Where did you get CEnvi? ______________________________________________
  997.  
  998. Name: _________________________________________________________________
  999.  
  1000. Company: ______________________________ Position: _____________________
  1001.  
  1002. Address: ______________________________________________________________
  1003.  
  1004. _______________________________________________________________________
  1005.  
  1006. ______________________________________________________________________
  1007.  
  1008. Country: _________________________   (add ZIP code if applicable)
  1009.  
  1010. Phone: ___________________________  EMail: ______________________________
  1011.  
  1012.  
  1013. CEnvi Registered License & Manual ... Quantity _____ x $45.00 = $ _________
  1014. License fee for additional CEnvi users at your
  1015. organization (does not include additional manual
  1016. or diskettes)... Additional simultaneous users _____ x $15.00 = $ _________
  1017. Additional CEnvi Manuals ............ Quantity _____ x $10.00 = $ _________
  1018. Shipping outside USA, Canada, or Mexico  $4.00 ................ $ _________
  1019.                                                        Subtotal $ _________
  1020. Massachusetts residents please add 5% sales tax ............... $ _________
  1021. Check handling fee IF CHECK NOT DRAWN ON A U.S. BANK . $30.00 = $ _________
  1022.  
  1023.                                                           Total $ _________
  1024.  
  1025. Include a check or money order for this total, IN U.S. FUNDS AND DRAWN ON A
  1026. U.S. BANK (if not drawn on U.S. bank then add the $30 handling fee),
  1027. payable to Nombas, or supply the following credit card payment information.
  1028. Credit cards orders will be processed through a distributor: Custom
  1029. Computer Systems of Medford, MA.
  1030.  
  1031. Credit card orders (circle one): MasterCard / Visa / American Express
  1032.  
  1033.                                  Discover / Carte Blanche / Diners Club
  1034.  
  1035.     Card Number _____________________________________  Expires ____________
  1036.  
  1037.     Exact name on card (print) ____________________________________________
  1038.  
  1039.     Signature (REQUIRED) __________________________________________________
  1040.  
  1041. Mail this form, along with payment or credit information, to:
  1042.                Nombas
  1043.                PO BOX 875
  1044.                MEDFORD MA 02155-0007   USA
  1045.  
  1046.  
  1047. ***************************************************************************
  1048. ******** REGISTRATION METHOD 2: COMPUSERVE ELECTRONIC REGISTRATION ********
  1049. ***************************************************************************
  1050. CompuServe members may register directly through the CompuServe
  1051. Registration Service.  To use this service enter GO SWREG at your CI$
  1052. prompt.  Registration ID is 1354 for CEnvi for DOS, 1355 for CEnvi for
  1053. OS/2, and 1356 for CEnvi for Windows (you only need to register ONE
  1054. version).  Nombas will immediately be informed of your registration, and
  1055. the CEnvi registration fee will automatically be added to your CompuServe
  1056. bill.
  1057.  
  1058.  
  1059. ***************************************************************************
  1060. ************ REGISTRATION METHOD 3: Public (software) Library *************
  1061. ***************************************************************************
  1062. CREDIT CARD ORDERS ONLY -
  1063.  
  1064. You can order with MC, Visa, Amex, or Discover from Public (software)
  1065. Library by calling 800-2424-PsL or 713-524-6394 or by FAX to 713-524-6398
  1066. or by CIS EMail to 71355,470. You can also mail credit card orders to PsL
  1067. at P.O.Box 35705, Houston, TX 77235-5705.
  1068.  
  1069. THE ABOVE NUMBERS ARE FOR ORDERS ONLY.
  1070.  
  1071. Any questions about the status of the shipment of the order, refunds,
  1072. registration options, product details, technical support, volume discounts,
  1073. dealer pricing, site licenses, etc., must be directed to Nombas (see phone
  1074. number and addresses below).
  1075.  
  1076. To insure that you get the latest version, PsL will notify Nombas the day
  1077. of your order and we will ship the product directly to you.
  1078.  
  1079. CEnvi (all versions) is PsL product #11069.  Prices (including shipping and
  1080. handling) are: $49 US/Canada and $52 overseas.
  1081.  
  1082.  
  1083. ***************************************************************************
  1084. Thank you for trying this shareware copy of CEnvi.  Mail inquires and other
  1085. correspondences to:
  1086.      Nombas
  1087.      P.O. Box 875
  1088.      Medford, MA  02155   USA
  1089.  
  1090. Nombas may also be contacted at:
  1091.      Phone: (617)391-6595
  1092.      Internet: bsn@world.std.com
  1093.      CompuServe: 72212,1622
  1094.      BBS: (617)391-6595 ext. 44 (e.g., ATDT16173916595,,,,,44444)
  1095.