home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 13 / 13.iso / p / p078 / 3.img / ESP.PLB / M2E.HLP < prev    next >
Encoding:
Text File  |  1991-02-12  |  44.1 KB  |  1,428 lines

  1. %1 MainScreen
  2. %2 HelpMenu
  3. The main screen of the Stony Brook Modula-2 environment
  4. lists all the modules in the current module library.
  5.  
  6. The highlighted module is the selected module.  To edit
  7. the selected module, press Enter or point to the selected
  8. module and press the left mouse button.
  9.  
  10. Commands and menus are listed on the top border of the
  11. window.  To execute commands or pull down a menu, hold Alt
  12. and type the first letter of the command or menu, or use
  13. the mouse to point to the command and press the left button.
  14.  
  15. Important: Read the Help topics listed below for information
  16. on how to use this system.  Use the Arrow keys or mouse to
  17. select a topic, then press Enter or the left mouse button.
  18.  
  19. %%Selecting  Menus  Commands  ControlPanels
  20. %2 Selecting
  21.  
  22. To select a module on the main screen:
  23.  
  24. Using    Use Arrow keys to position to the new module
  25. keys    OR
  26.         Type the name of the new module.  The module
  27.     is selected as you type.  When the module you
  28.     want is selected, type a space.
  29.  
  30. Using    Point to the new module and press the left
  31. mouse    button
  32. %2 Menus
  33. The menus are:  New  Compile  Module  View  Options  System
  34.  
  35. Using    To pull down a menu, hold Alt and type the first
  36. keys    letter of the menu name.
  37.  
  38.     For menu Help, hold Alt and type H.
  39.  
  40.  
  41. Using    To pull down a menu, point to the menu name and press
  42. mouse    the left button.
  43.  
  44.         For menu Help, press the right button.
  45. %% MenuOptions
  46. %3 MenuOptions
  47. Using    To select a menu option, arrow to the option and
  48. keys    press Enter
  49.     OR
  50.     To select and immediately execute an option, type
  51.     the first letter of the option
  52.  
  53.     For Help, arrow to option, hold Alt and type H
  54.  
  55. Using    To select an option, point to the option and press 
  56. mouse    the left button
  57.     OR
  58.     To select and immediately execute an option, hold
  59.     the left button while moving to the option, then
  60.     release the button
  61.  
  62.     For Help, point to the option and press the right
  63.     button
  64. %2 Commands
  65. The commands are:  Run  Debug  Link  Help  Exit
  66.  
  67. To execute a command:
  68.  
  69. Using    Hold Alt and type the first letter of the
  70. keys    command.
  71.  
  72.     For Help on commands, select a topic name below
  73.     and press enter.
  74.  
  75. Using    Point to the command name and press the left
  76. mouse    button.
  77.  
  78.     For Help on a command, press the right button.
  79.  
  80. %% Run Debug Link Exit
  81. %2 RunMenu
  82. %3 Run
  83. Use the Run command to run your program.  Select a program
  84. module before invoking Run.
  85.  
  86. Any compilations necessary before running the program are
  87. performed automatically.
  88.  
  89. To stop the program while it is executing, hold the Ctrl key
  90. and press break key.
  91. %2 DebugMenu
  92. %3 Debug
  93.  
  94. Use the Debug command to run a program under the control of
  95. the debugger.  Select a program module before invoking Debug.
  96.  
  97. Any compilations necessary before running the program are
  98. performed automatically.
  99.  
  100. To interrupt the program, hold the Ctrl key and press Scroll
  101. Lock.  Control returns to the debugger, and you can continue
  102. to debug your program.
  103. %2 LinkMenu
  104. %3 Link
  105.  
  106. Use the Link command to create an executable program.
  107. This enables you to run the program outside the environment.
  108.  
  109. Any compilations necessary before running the program are
  110. performed automatically.
  111.  
  112. Linker options can be set from the Options menu.
  113. %2 ControlPanels
  114. A control panel lists a set of options on the left of side
  115. of the window, and choices for the option on the right side.
  116.  
  117. To change the setting of an option:
  118.  
  119. Using    Press the down arrow key until the option
  120. keys    you want to change is highlighted, then
  121.     press the left or right arrow keys until
  122.     the value you want is highlighted.
  123.  
  124. Using    Point to the new value you want to set
  125. mouse    and press the left mouse button.
  126.  
  127. When you are finished, press Enter to accept the changes
  128. or Esc to abandon them.  With a mouse, select Okay or 
  129. Cancel to accept or abandon the changes.
  130. %2 ExitMenu
  131. %3 Exit
  132.  
  133. Use the Exit command to exit from the environment.
  134.  
  135. If the Prompt before saving environment option is set to
  136. Yes, the editor prompts you before saving any editor buffers
  137. that you have modified.
  138. %2 NewMenu
  139.  
  140. Use the New menu option to add new modules or libraries 
  141. to the current module library.
  142.  
  143. When you add a Modula-2 module or program, the environment
  144. automatically adds all modules that the new module imports.
  145. %%Module  Program  Foreign  EXE  Library  All  Obj
  146. %3 Module
  147.  
  148. Use the Module option to add a new Modula-2 module to the
  149. current library.  When you select this option, the 
  150. environment adds entries for both a DEFINITION and an
  151. IMPLEMENTATION module to the library.
  152.  
  153. The environment prompts you for the name of the module.
  154. The name must be a valid Modula-2 identifier.
  155. %3 Program
  156.  
  157. Use the program option to add a new program to the current
  158. library.
  159.  
  160. A program is a Modula-2 module that is neither a DEFINITION
  161. nor an IMPLEMENTATION module.  A program is the only kind
  162. of module that you can link or run.
  163.  
  164. The environment prompts you for the name of the program
  165. module.  The name must be a valid Modula-2 identifier.
  166. %3 Foreign
  167.  
  168. Use the Foreign module option to add a module that was
  169. implemented in assembler or another language.  A Modula-2
  170. DEFINITION module is also added to the library when
  171. you add Foreign modules.
  172.  
  173. The environment prompts you for the name of the module.
  174. The name must be a valid Modula-2 identifier.
  175. %3 Library
  176.  
  177. Use the Library option to refer to another module library
  178. from the current library.
  179.  
  180. You can refer to up to eight additional libraries.
  181.  
  182. Modules in the current library can import modules in another
  183. library add that library using this option.
  184.  
  185. The environment prompts you for the name of the new library.
  186. The name is the file name of the module library to add.  If
  187. you do not specify a file extension, M2L is assumed.
  188. %3 All
  189.  
  190. The All option adds all modules that can be found in the
  191. source directories of the current module library.
  192.  
  193. By default, the environment looks in the subdirectory DEF
  194. for definition modules, and in the directory MOD for
  195. implementation modules, foreign modules, and program modules.
  196.  
  197. You can use the Directories option on the Options menu to
  198. specify different directories to search for source modules.
  199.  
  200. Use this option for the initial setup of a module library.
  201. %3 EXE def
  202. %3 EXE
  203.  
  204. Use the EXE def option to add a new EXE def file to a module
  205. library.  EXE def modules are used by the linker for over-
  206. laying programs on DOS, and for creating and using dynamic
  207. link libraries on OS/2 and Microsoft Windows.
  208.  
  209. The environment prompts you for the name of the new EXE def.
  210. The name must be the same as the name of a program module
  211. (implementation module for Windows) in the current library.
  212. The EXE def is used when linking the module with the same
  213. name.
  214. %3 Obj library
  215. %3 Obj
  216.  
  217. Use the Object library option to add a new Object library to
  218. the current module library.  Any object libraries you add
  219. using this option are included when you link any program in
  220. the current module library.
  221.  
  222. The environment prompts you for the name of the new object
  223. library.  The name is a file name.  If you do not specify an
  224. extension, LIB is assumed.
  225. %2 CompileMenu
  226. %3 Selected
  227. %3 All
  228. %3 Unconditional
  229.  
  230. Use the Compile menu to compile one or more modules in the
  231. current module library.
  232.  
  233.     Selected        compiles the selected module and any
  234.             other modules required to compile it
  235.  
  236.     All            compiles all modules requiring
  237.             compilation at the time
  238.  
  239.     Unconditional   compiles all modules, whether they
  240.             need it or not
  241.  
  242. Usually you do not need to use this menu, since the Run,
  243. Debug, and Link commands automatically compile all modules
  244. that need compilation when you use those commands.
  245. %2 ModuleMenu
  246. The Module menu contains miscellaneous functions related
  247. to modules.  The options function as follows:
  248.  
  249.     Remove    removes the module from the library.
  250.  
  251.     Filename    overrides the filename for a module.
  252.  
  253.     Altered    informs the environment that the selected
  254.                 module has been altered from outside.
  255.  
  256.     Command    allows you to specify a DOS command line
  257.         to compile or assemble a foreign module.
  258.         
  259.     Type    allows you to change the type of a module.
  260.     
  261. %% Remove  Filename  Altered  Command  Type
  262. %3 Remove
  263.  
  264. The Remove option removes the module from the library,    and
  265. optionally deletes the source files.
  266.  
  267. If the module is imported by some any other module, the
  268. environment prompts you before removing the module.
  269.  
  270. If the module is removed, the environment prompts you to
  271. delete the source files.  Answer Y to delete them, N to
  272. leave them intact.
  273. %3 Filename
  274.  
  275. The Filename option overrides the filename for a module.
  276. Use this option if the source file for a module does not
  277. have the same name as the module, or is in a different
  278. directory.
  279. %3 Altered
  280.  
  281. The Altered option informs the environment that the source
  282. file of a module has been altered from outside the Environ-
  283. ment.  You must use this command if you    change or replace a
  284. source module from outside the environment.
  285. %3 Command
  286.  
  287. The Command option allows you to specify a DOS command line
  288. to compile or assemble a foreign module.
  289.  
  290. When you select this option, the environment prompts you for
  291. the command line.  This command line overrides the assembler
  292. command line that you can set on the Options menu.
  293.  
  294. The command line you specify should compile or assemble the
  295. module, leaving the object file in the OBJ subdirectory of
  296. the current directory.  If you cannot do this with a simple
  297. command, you can use the command line to run a batch file.
  298. %3 Type
  299.  
  300. The Type option allows you to change the type of an imple-
  301. mentation module.  You can change the type from Implementa-
  302. tion to Foreign or from Foreign to Implementation.
  303. %2 ToolsMenu
  304. The Tools menu contains the following tools you can use
  305. from the environment:
  306.  
  307.     Import list      - shows the modules imported by the
  308.                 selected module.
  309.               
  310.     Client list      - shows the modules that import the
  311.                 selected module
  312.               
  313.     Profiler      - this option will be available in
  314.                 a free update to version 2.1
  315.     
  316.     Object librarian  - this option will be available in
  317.                         a free update to version 2.1
  318.  
  319. %% Import  Client  Profiler  Object
  320. %3 Import list
  321. %3 Import
  322. You must select a DEFINITION or IMPLEMENTATION module before
  323. using this option.
  324.  
  325. Use the Import list option to list the modules imported by
  326. the selected module.
  327.  
  328. The environment creates a popup window listing all the
  329. modules that are imported by the selected module.
  330. %3 Client list
  331. %3 Client
  332. You must select a DEFINITION module before using this
  333. option.
  334.  
  335. Use the Client list option to list the modules that import
  336. the selected module.
  337.  
  338. The environment creates a popup window that lists all the
  339. modules that import the selected module.
  340. %3 Profiler
  341. %3 Object Librarian
  342. %3 Object
  343.  
  344. This option is not yet available, but will be provided in
  345. your free update to version 2.1.
  346. %2 OptionsMenu
  347.  
  348. Use the Options Menu to view and alter various options.
  349.  
  350. Many options are available to control the operation of
  351. the environment, compiler, and linker.
  352.  
  353. Each module library maintains the settings of options
  354. across invocations.  Compiler options are kept separately
  355. for QuickMod and the optimizing compiler.
  356.  
  357. You can also change the default options that are given when
  358. you create a new library by using Save, or you can reset all
  359. the options to defaults by using Read.
  360.  
  361. %% C  O  E  M  W  T  L  P  D  V  A  R  S  U
  362. %3 C
  363. %3 Compiler options
  364. %2 CompilerOptionsMenu
  365. %3 Global
  366. %3 Module
  367. %3 Reset defaults
  368.  
  369. Use the compiler options menu to select compiler options.
  370.  
  371.     Global    selects options for all modules in the
  372.         library.
  373.  
  374.     Module    selects options for the selected module
  375.         only.
  376.  
  377.     Reset     resets all module options to default for
  378.         all modules.
  379. %3 O
  380. %3 Optimizer options
  381. %3 OptimizerOptionsMenu
  382. %3 Global
  383. %3 Module
  384. %3 Reset defaults
  385.  
  386. Use the optimizer options menu to select optimizer options.
  387.  
  388.     Global    selects options for all modules in the
  389.         library.
  390.  
  391.     Module    selects options for the selected module
  392.         only.
  393.  
  394.     Reset     resets all module options to default for
  395.         all modules.
  396. %3 E
  397. %3 Environment options
  398.  
  399. Use the Environment option panel to set various options
  400. of the Stony Brook Modula-2 Environment.
  401.  
  402. Select this option to see the panel.  From there you can
  403. get help on the individual options.
  404. %3 Module list options
  405. %3 M
  406. %1 View Options
  407. The Module list control panel allows you to set options
  408. related to the module display on the main screen, and to
  409. control whether snow removal is preformed on all displays.
  410.  
  411.     Order      controls the order in which the modules are
  412.           displayed on the main screen.
  413.  
  414.     Modules       determines whether or not library modules
  415.           are listed.
  416.  
  417.     Format      determines whether the long or short format
  418.           of the module list is used.
  419.  
  420.     Snow removal  determines whether or not the environment 
  421.                   takes care to avoid creating snow on CGA 
  422.           screens.  Select this option if your CGA 
  423.           display is snowy.
  424. %3 W
  425. %3 Window colors
  426. %3 Colors
  427.  
  428. Use the Window colors option to set display colors.
  429. You can select:
  430.  
  431.     Window background and foreground
  432.  
  433.     Border background and foreground
  434.     
  435.     Selected text background and foreground
  436.  
  437. You can select colors for each of six different windows.
  438.  
  439. Use the mouse or arrow keys to select colors.  Use the mouse
  440. or Pg Up and Pg Dn keys to select the window type.
  441. %3 Text editor name
  442. %3 T
  443.  
  444. Use the Text editor name option if you want the environment
  445. to use an editor of your choice instead of the Stony Brook
  446. Editor.
  447.  
  448. The environment prompts you for the path name of the editor
  449. that you want to use.  You must specify the complete path
  450. name, including the file extension.  For example:
  451.  
  452.     \BRIEF\B.EXE
  453. %3 Linker options
  454. %3 L
  455. %1 Linker Options
  456. %2 Produce map file
  457. %2 Include lines in map
  458. %2 Include debug info
  459. %2 Dynamic link library
  460. Use the linker options control panel to set the following
  461. options for the linker:
  462.  
  463.     Produce map file      Controls whether or not a map
  464.               file is produced when you link
  465.  
  466.     Include line numbers  Controls whether or not the map
  467.               file contains line numbers
  468.               
  469.     Include debug info      Controls whether or not debugging
  470.                   information is included in the
  471.               executable program.
  472.  
  473.     Dynamic link library  Controls whether or not a dynamic
  474.                           link library is linked when you
  475.               select the link command.
  476. %3 P
  477. %3 Program stack size
  478.  
  479. Use the Stack size option to set the stack size for your
  480. program.  The stack is used to store procedure return
  481. addresses and local variables.
  482.  
  483. The stack requirements depend on your program.  Set the
  484. stack size between 1024 and 65534 bytes.
  485. %3 D
  486. %3 Directories
  487. Use the Directories option to specify the source and object
  488. directories used by the current module library.  The
  489. environment prompts you for the following directories:
  490.  
  491.     DEF  - a list of directories to search for
  492.            definition modules.  Separate multiple
  493.            directories with semicolons.
  494.     
  495.     SYM  - subdirectory of directory containing the
  496.            library in which symbol files are placed.
  497.  
  498.     MOD  - a list of directories to search for
  499.            implementation, foreign, and program modules.
  500.            Separate multiple directories with semicolons.
  501.     
  502.     OBJ  - subdirectory of directory containing the
  503.            library in which object files are placed.
  504. %3 V
  505. %3 Version tags
  506.  
  507. Use the Versions tags option to set the version tags used
  508. for conditional compilation.  The environment prompts you
  509. for the new version tag settings.
  510.  
  511. Version tags are identifiers.  Separate the version tags
  512. with commas.
  513. %3 A
  514. %3 Assembler command line
  515.  
  516. Use the Assembler command line option to set a default
  517. command line to assemble or compile foreign modules.
  518.  
  519. The command line can contain the special symbols %S and %O.
  520. These symbols are replaced by the full file name of the
  521. source program and object program, respectively.
  522.  
  523. The assembler command line you specify must assemble or 
  524. compile the source module, placing the object in the OBJ 
  525. directory of the current module library.
  526. %3 R
  527. %3 Read default options
  528.  
  529. Use the Read defaults option to set all options back to
  530. the default options settings.
  531.  
  532. The default options are set by selecting Save default
  533. options on the Options menu.
  534. %3 S
  535. %3 Save default options
  536.  
  537. Use the Save default option to save the current option
  538. settings as defaults.
  539.  
  540. These settings are then used when you create a new
  541. module library or when you Read default options.
  542. %3 U
  543. %3 Use quick compiler
  544. %3 Use optimizing compiler
  545.  
  546. You must have the Professional Modula-2 package to use
  547. this option.
  548.  
  549. Use the Use quick compiler option or the Use optimizing 
  550. compiler option to select the alternate compiler.
  551. %2 SystemMenu
  552. Use the options on the System menu to:
  553.  
  554.     Perform a DOS command
  555.     
  556.     Specify command parameters for your program
  557.     
  558.     Edit a file that is not a module in the current library
  559.     
  560.     Create and execute log files, which perform a series
  561.     of commands automatically
  562.     
  563.     Close the current module library and enter a new one
  564.     
  565.     Discard all objects in memory to maximize the memory
  566.     available before running a program
  567. %%DosCommand  ProgParam Edit LogFiles NewLibrary FreeMemory
  568. %3 DosCommand
  569. %3 Dos command
  570.  
  571. Use the DOS command option to perform a DOS command
  572. without leaving the environment.
  573.  
  574. QuickMod prompts you for the command line, and executes
  575. the command.   When the procedure is complete, press any
  576. key to return to the environment.
  577.  
  578. If you want to perform several DOS commands, you can type
  579. COMMAND at the prompt.  This will invoke the DOS command
  580. interpreter and allow you to perform as many commands as you
  581. like.  When you are ready to return to the environment, type
  582. EXIT at the DOS prompt.
  583. %3 Edit
  584. %3 Edit file
  585.  
  586. Use the Edit option to edit a file that is not a module in
  587. the current library.
  588.  
  589.     DO NOT use the Edit command to edit a
  590.     module in the current module library.  The
  591.     environment will not register the changes,
  592.     and automatic compilation will not be done
  593.     correctly.
  594. %3 Program parameters
  595. %3 ProgParam
  596.  
  597. Use the Program parameters option to specify command line
  598. parameters for your program.  These parameters are used
  599. whenever you run a program.
  600.  
  601. The environment prompts you for the new command line
  602. parameters.
  603.  
  604. The program parameters are the strings that are normally
  605. specified after the program name when running a program
  606. under DOS.
  607.  
  608. Your program can access these parameters by using the
  609. GetCommandLine procedure in the library module Environment.
  610. %3 LogFiles
  611. %3 Create log
  612. %3 Terminate log
  613. %3 Run log
  614. Log files let you perform a series of commands and record
  615. them so you can perform them again automatically.
  616.  
  617. Use the Open log option to start recording commands.  The
  618. environment prompts you for a filename.  Execute the
  619. commands as you want them recorded.  Use the Terminate log
  620. option to end recording.
  621.  
  622. Use the Run log option to run the log file.  The environment
  623. prompts you for the filename, then executes the commands as
  624. you recorded them.
  625.  
  626. To run a log file immediately when entering the environment,
  627. use:
  628.     M2E library logfile
  629.  
  630. %3 NewLibrary
  631. %3 New library
  632.  
  633. Use the New Library command to close the current module
  634. library and work on a different library.
  635.  
  636. You will be prompted for the path name of the new module
  637. library.  The environment automatically sets your default
  638. drive and directory to that of the new library.
  639. %3 FreeMemory
  640. %3 Free memory
  641.  
  642. Use the Free memory option when using QuickMod on DOS,
  643. before running a program that has large memory requirements.
  644.  
  645. When you use this option, QuickMod frees all memory that is
  646. occupied by source files, object files, and symbol files,
  647. writing them out to disk.
  648.  
  649. If the Prompt before saving option is selected on the
  650. Environment options panel, the environment prompts you
  651. before any source files are written to disk.
  652. %1 Compiler Options
  653. %2 Check subscripts
  654.  
  655. Check subscipts compiler option
  656.  
  657. If you answer Yes, the compiler generates code to check
  658. all subscripts to make sure the subscripts are within the
  659. specified array bounds.  If a subscript is found to be out
  660. of bounds, the program generates a runtime error.
  661.  
  662. Answering Yes to this option causes the compiler to generate
  663. larger and slower code, but since it simplifies debugging,
  664. you should used this option while developing a program.
  665.  
  666. Answer No to produce the smallest and fastest code, after
  667. debugging the program.
  668. %2 Check assignments
  669.  
  670. Check assignments compiler option
  671.  
  672. If you answer Yes, the compiler checks for the assignment
  673. of values that are out of range.  If it finds a value that
  674. is out of range, the program generates a runtime error.
  675.  
  676. Answering Yes to this option causes the compiler to generate
  677. larger and slower code, but since it simplifies debugging,
  678. you should used this option while developing a program.
  679.  
  680. Answer No to produce the smallest and fastest code, after
  681. debugging the program.
  682. %2 Check variants
  683.  
  684. Check variants compiler option
  685.  
  686. If you answer Yes, the compiler generates code to check the
  687. tag field of variant records, when you refer to a field
  688. inside a variant.
  689.  
  690. Answering Yes to this option causes the compiler to generate
  691. larger and slower code, but since it simplifies debugging,
  692. you should used this option while developing a program.
  693.  
  694. Answer No to produce the smallest and fastest code, after
  695. debugging the program.
  696. %2 Check pointers
  697.  
  698. Check pointers compiler option
  699.  
  700. If you answer Yes to this option, the compiler checks for 
  701. use of pointer that have the value NIL.
  702.  
  703. Answering Yes to this option causes the compiler to generate
  704. larger and slower code, but since it simplifies debugging,
  705. you should used this option while developing a program.
  706.  
  707. Answer No to produce the smallest and fastest code, after
  708. debugging the program.
  709. %2 Check for overflow
  710.  
  711. Check for overflow compiler option
  712.  
  713. If you answer Yes to this option, the compiler checks for 
  714. calculations that result in arithmetic overflow.
  715.  
  716. Answering Yes to this option causes the compiler to generate
  717. larger and slower code, but since it simplifies debugging,
  718. you should used this option while developing a program.
  719.  
  720. Answer No to produce the smallest and fastest code, after
  721. debugging the program.
  722. %2 Check stack
  723.  
  724. Check stack compiler option
  725.  
  726. If you answer Yes to this option, the compiler checks for
  727. stack overflow on the entry to each procedure.
  728.  
  729. Answering Yes to this option causes the compiler to generate
  730. larger and slower code, but since it simplifies debugging,
  731. you should used this option while developing a program.
  732.  
  733. Answer No to produce the smallest and fastest code, after
  734. debugging the program.
  735. %2 Initialize data
  736.  
  737. Initialize data compiler option
  738.  
  739. If you answer Yes to this option, the compiler generates
  740. code to initialize all of the variables in your program.
  741. Use this option in conjunction with the check pointers
  742. option to guarantee that all NIL pointers are found.
  743.  
  744. Failure to use these two options may result in crashing
  745. your machine if there are bugs in your program.
  746.  
  747. Answering Yes to this option causes the compiler to generate
  748. larger and slower code, but since it simplifies debugging,
  749. you should used this option while developing a program.
  750.  
  751. Answer No to produce the smallest and fastest code, after
  752. debugging the program.
  753. %2 Aliasing occurs
  754. Aliasing refers to a situation where a variable can be
  755. referred to by two distinct names.  This occurs most often
  756. when a procedure takes two parameters of the same type,
  757. and the same variable is passed for both parameters in a call
  758. to the procedure.  The compiler can generate better code if
  759. it knows that aliasing never occurs.  Otherwise, it must
  760. assume that aliasing can occur, which generates poorer code.
  761.  
  762. Answer No only if you are certain that your program does not
  763. refer to the same variable by two different names.  A No
  764. causes the compiler to assume that aliasing does not occur,
  765. and produces code that is faster, but could be incorrect if
  766. aliasing does occur.
  767.  
  768. Answer Yes if you know that your program makes use of
  769. aliasing, or if you are not sure.
  770. %2 Emulate floating point
  771.  
  772. Emulate floating point compiler option
  773.  
  774. If you answer Yes for this option, the compiler generates
  775. calls to floating point emulation procedures instead of
  776. generating 80x87 instructions for floating point.  This
  777. enables your program to run on machines that are not
  778. equipped with a floating point processor.
  779.  
  780. Answering No causes the compiler to generate 80x87
  781. instructions directly.  This produces smaller and faster
  782. code, but the program will not run on machines that do
  783. not have a floating point processor.
  784. %2 Include line numbers
  785.  
  786. Include line numbers compiler option
  787.  
  788. If you answer Yes for this option, the compiler includes
  789. the line numbers from your program.  The line numbers are
  790. used by the debugger and, when a runtime error occurs, to
  791. tell you where the error occurred.
  792.  
  793. This option is automatically set when you use the Debug
  794. command on the main screen.
  795. %2 Include debug info
  796.  
  797. Include debug info compiler option
  798.  
  799. If you answer Yes for this option, the compiler includes
  800. information about your program for use by the debugger.  This
  801. option is automatically set when you use the Debug command
  802. on the main screen.
  803.  
  804. Answering No when choosing module options causes the compiler
  805. to omit debug information.  As a result, you will not be
  806. able to set break points or examine variables from that module
  807. in the debugger.
  808.  
  809. Large programs may not fit into memory if all modules are
  810. compiled with debug information.  You can answer No for
  811. modules that are already debugged, to reduce the size of the
  812. program.
  813. %1 Additional Compiler Options
  814. %2 Generate sparse cases
  815.  
  816. Generate sparse cases compiler option
  817.  
  818. If you answer Yes to this option, the compiler uses a lookup
  819. table for sparse cases.  This is smaller but slower than the
  820. jump table used for more dense cases.
  821.  
  822. If you answer No,, the compiler always generates a jump
  823. table, which is faster but larger.
  824. %2 Generate listing file
  825.  
  826. Generate listing file compiler option
  827.  
  828. If you answer Yes to this option, the compiler creates a
  829. printable listing when it compiles your program.
  830.  
  831. If you answer No, the compiler does not produce a listing
  832. file.
  833. %2 List machine code
  834.  
  835. List machine code compiler option
  836.  
  837. If you answer Yes to this option, the compiler creates a
  838. printable listing of your source program and the machine
  839. code generated for it.
  840.  
  841. If you answer No, the compiler does not create a machine
  842. code listing.
  843. %2 Use short calls
  844.  
  845. Use short calls compiler option.
  846.  
  847. If you answer Yes to this option, the compiler uses short
  848. call instructions for all procedures that are not exported.
  849.  
  850. If you answer No, the memory model you are using determines
  851. whether calls are short or long.
  852. %2 Convert to upper case
  853.  
  854. Convert to upper case compiler option
  855.  
  856. If you answer Yes to this option, the compiler converts all
  857. names to upper case.  This effectively makes the language
  858. case-insensitive.
  859.  
  860. If you answer No, the case of identifiers is not changed and
  861. identifiers spelled with different case are not considered 
  862. the same.  This is the standard interpretation of Modula-2.
  863. %2 Separate stack segment
  864.  
  865. Separate stack segment compiler option.
  866.  
  867. If you answer Yes to this option, the compiler uses a
  868. separate segment for the program stack.
  869.  
  870. If you answer No, the program stack is placed in the
  871. default data segment.
  872.  
  873. You should use a separate stack when using the medium or
  874. large data models, and a stack in the data segment when
  875. using the small data model.
  876. %2 Has init code
  877.  
  878. Has init code compiler option
  879.  
  880. Use this option for a definition module to inform the
  881. compiler whether or not the implementation module has
  882. initialization code.
  883.  
  884. If you answer Yes to this option, the compiler generates
  885. calls to the initialization code from each module that
  886. imports this module.
  887.  
  888. If you answer No, the initialization calls are suppressed.
  889. %2 Windows prologue
  890.  
  891. Windows prologue compiler option
  892.  
  893. If you answer Yes to this option, the compiler places a
  894. special sequence of instructions required by Microsoft
  895. windows, at the beginning and end of each procedure.
  896.  
  897. If you answer No, the Windows prologue and epilogue are
  898. not generated.
  899.  
  900. Set this option to Yes only when developing applications
  901. for Microsoft Windows.
  902. %2 Check modules
  903.  
  904. Check modules compiler option
  905.  
  906. If you answer Yes to this option, the compiler generates a
  907. runtime check to make sure that each implementation module
  908. imported by this module was compiled with the same
  909. definition module as the importing program.
  910.  
  911. If answer No, the compiler does not generate these checks.
  912.  
  913. Use this option to guarantee that you have not made a
  914. mistake in building a program by including the wrong version
  915. of a module or by referring to two modules with the same name.
  916. %2 Output file type
  917.  
  918. Output file type compiler option
  919.  
  920. If you answer Object to this option, the compiler produces a
  921. single object module for each module compiled.  In this
  922. case, ll procedures in a module are linked into a program if
  923. any procedure in the module is used.
  924.  
  925. If you answer Library, the compiler produces an object
  926. library for each module compiled.  When you link a program
  927. compiled to libraries, only the required procedures are
  928. included in the program, making the executable program
  929. smaller.
  930.  
  931. Use the Library option to reduce the size of your executable
  932. program, at the expense of longer link times.
  933. %2 Code memory model
  934.  
  935. Code memory model compiler option
  936.  
  937. Use the Code memory model option to select the memory model
  938. used for code.  The choices are:
  939.  
  940.     Small    - The combined code of all modules in a
  941.           program must be less and 64K bytes.
  942.           
  943.     Large    - The code of each module can be up to
  944.           64K bytes.
  945. %2 Data memory model
  946. Use the Data memory model option to select the memory model
  947. used for data.  The choices are:
  948.  
  949.     Small    - The combined static data, stack and
  950.           heap of all modules in a program
  951.           must be less and 64K bytes.
  952.           
  953.     Medium    - The combined static data of all modules
  954.            in a program must be less than 64K, but
  955.           an additional 64K can be used for stack, 
  956.           and heap can be as large as the memory
  957.           available.
  958.           
  959.     Large    - Like medium model, except that each module
  960.           can have 64K of static data.
  961. %2 Expand procedures
  962.  
  963. Expand procedures compiler option
  964.  
  965. Use this option to instruct the compiler to expand some
  966. procedures in line instead of calling them.  This can
  967. dramatically improve runtime performance, but at the 
  968. expense of code size.
  969.  
  970. Answer No to this option to suppress in line expansion of
  971. procedures.
  972.  
  973. Answer 10 or 20 to expand procedures containing up to that
  974. number of statements.
  975. %2 Align data
  976.  
  977. Align data compiler option
  978.  
  979. Use this option to specify that variable are aligned on
  980. special address boundaries.  On processors with a 16- or
  981. 32-bit bus, this can improve runtime performance.
  982.  
  983. If you answer No to this option, the compiler does not
  984. align variables.
  985.  
  986. If you answer 2 or 4, the compiler aligns data on 2 or 4
  987. byte boundaries.  Use 2 for machines with 16-bit busses and
  988. 4 for machines with 32-bit busses to maximize performance.
  989. %1 View Options
  990. %2 Order
  991.  
  992. Use the Order option to determine the order in which modules
  993. are displayed in the main window.
  994.  
  995.    Alphabetic    displays the modules in alphabetic order
  996.  
  997.    Dependency    displays the modules in the order of
  998.         their dependency.  The names of all modules
  999.         that a module depends upon precede it.
  1000. %2 Modules
  1001.  
  1002. Use the Modules option to determine which modules are listed 
  1003. in the main window. 
  1004.  
  1005.     Local     displays only the modules in the current
  1006.         library.
  1007.  
  1008.     All     displays all modules referred to by the
  1009.         current library, including modules from other
  1010.         module libraries.
  1011. %2 Format
  1012.  
  1013. Use the Format option to specify whether to display the list
  1014. of modules in long or short format.
  1015.  
  1016.     Short format displays only the module type and name 
  1017.  
  1018.     Long format displays all information about the module
  1019.  
  1020. %2 Snow Removal
  1021.  
  1022. Use the snow removal option if you have a CGA display and
  1023. snow appears on the screen when it is changing.  Setting
  1024. this option will slow screen output a little.
  1025. %1 Environment Options
  1026. %2 Safety belts
  1027. Safety belts environment option
  1028.  
  1029. This option determines whether or not the environment
  1030. attempts to keep the disk updated at all times.
  1031.  
  1032. When safety belts are on, the environment automatically 
  1033. updates files when you edit them and automatically updates
  1034. the module library whenever you run a program.
  1035.  
  1036. This option minimizes that danger of losing edits you
  1037. have made, while slowing the system down somewhat.  On 
  1038. fast machines with hard disks, you will hardly notice 
  1039. the speed degradation, whereas on standard PC's with 
  1040. floppy disks it can be significant.
  1041.  
  1042. Use the safety belts option to minimize the chance that
  1043. edits and compilations are lost.
  1044. %2 Maximize program memory
  1045.  
  1046. Maximize program memory environment option
  1047.  
  1048. This option applies only to QuickMod for DOS.
  1049.  
  1050. Use the Maximize program memory option when running large
  1051. programs that will not run in the free memory available in
  1052. QuickMod.
  1053.  
  1054. When you use this option, QuickMod discards most of its
  1055. own code and makes this memory available to your program.
  1056.  
  1057. When the program completes, QuickMod reads back its own
  1058. code from the disk.
  1059. %2 Compress library
  1060.  
  1061. Compress library environment option
  1062.  
  1063. Use the compress library option to reduce the amount of
  1064. disk space required by a module library, at the expense
  1065. of access time.
  1066.  
  1067. This options should be used only on libraries that will
  1068. not be updated frequently.  To compress such a library,
  1069. create a new library and set the compress library
  1070. option before compiling the modules of the library.
  1071. %2 Keep symbol files
  1072.  
  1073. Keep symbol files environment option
  1074.  
  1075. This option controls whether or not QuickMod attempts to
  1076. keep symbol files in memory.
  1077.  
  1078. Symbol files are generated by QuickMod as a result of
  1079. compiling definition modules.  They are read whenever
  1080. the module is imported by another module.
  1081.  
  1082. Keeping the symbol files in memory considerably
  1083. improves the speed of compiling large, multi-module
  1084. programs.
  1085. %2 Keep object files
  1086.  
  1087. Keep object files environment option
  1088.  
  1089. This option controls whether or not QuickMod attempts to
  1090. keep object files in memory.
  1091.  
  1092. Object files are generated by QuickMod as a result of
  1093. compiling implementation modules.  They are needed
  1094. when the program is run or linked.
  1095.  
  1096. Keeping the object files in memory reduces the delay
  1097. when running a program after compiling it.  For small
  1098. programs, this will improve the overall performance of
  1099. QuickMod.  On large programs, the memory occupied by
  1100. object modules may be needed by the compiler, and
  1101. performance is better if they are not kept in memory.
  1102. %2 Recompile for debug
  1103.  
  1104. Recompile for debug environment option
  1105.  
  1106. This option controls whether or not the environment
  1107. automatically recompiles modules when you debug.
  1108. If this option is on, all modules that were not compiled
  1109. with debug options are compiled automatically.
  1110.  
  1111. If this option is off, modules are not automatically
  1112. recompiled.  This method is preferable for large programs.
  1113. You can use the Module compiler options to turn on debug
  1114. options only for those modules you are interested in.
  1115. %2 Prompt before saving
  1116.  
  1117. Prompt before saving environment option
  1118.  
  1119. Use this option to control whether or not the editor prompts
  1120. you before saving source files.
  1121.  
  1122. If this option is off, you should not change source files
  1123. that you do not want saved to the disk.  When this option is
  1124. off, the editor will save all altered files without asking you
  1125. when it needs to recover the memory they occupy.
  1126. %2 Prompt after foreign
  1127.  
  1128. Prompt after foreign environment option
  1129.  
  1130. If you answer Yes to this option, the environment prompts
  1131. you to continue before erasing the screen after compiling
  1132. or assembling a foreign module.  This allows you to view
  1133. the ouptut of the compiler or assembler.
  1134.  
  1135. If you answer No, the environment continues immediately
  1136. after building a foreign module.
  1137. %1 Optimizer Options
  1138. %2 Optimization strategy
  1139.  
  1140. Optimization strategy optimizer option
  1141.  
  1142. Use the Optimization strategy option to set the general
  1143. strategy for the optimizer:
  1144.  
  1145.     Time  - the optimizer attempts to minimize execution
  1146.             time, producing larger code if necessary.
  1147.         
  1148.     Space - the optimizer attempts to minimize code
  1149.             size, generating slower code if necessary.
  1150. %2 Common subexpressions
  1151.  
  1152. Common subexpressions optimization option.
  1153.  
  1154. If you answer Yes to this option, the compiler looks for
  1155. expressions that are used more once, without any of the
  1156. variables changing.  It then computes the expression only
  1157. once.
  1158.  
  1159. If you answer No, the compiler does not perform common
  1160. subexpression elimination.
  1161. %2 Loop invariant motion
  1162.  
  1163. Loop invariant motion optimization option
  1164.  
  1165. If you answer Yes to this option, the compiler looks for
  1166. expressions inside loops whose value does not change during
  1167. the loop.  The expressions are then moved outside the loop
  1168. and computed only once.
  1169.  
  1170. If you answer No, the compiler does not perform Loop
  1171. invariant motion.
  1172. %2 Induction variables
  1173.  
  1174. Induction variables optimizer option
  1175.  
  1176. If you answer Yes to this option, the compiler looks for
  1177. multiplications by a loop index.  The multiplication is then
  1178. changed to an addition of the multiplier in the loop,
  1179. decreasing execution time.
  1180.  
  1181. If you answer No, the compiler does not look for induction
  1182. variables.
  1183. %2 Constant/Copy propagation
  1184.  
  1185. Constant/Copy propagation optimizer option
  1186.  
  1187. If you answer Yes to this option, the compiler looks for
  1188. assignments of constants or simple variables to a variable.
  1189. Subsequent uses of the variable on the left side of the
  1190. assignment are then replaced with the constant or variable on
  1191. the right side.  This often result in the elimination of an
  1192. unnecessary assignment and temporary variable.
  1193.  
  1194. If you answer No, the compiler does not perform constant and
  1195. copy propagation.
  1196. %2 Dead code elimination
  1197.  
  1198. Dead code elimination optimizer option
  1199.  
  1200. If you answer Yes to this option, the compiler locates and
  1201. removes code in your program than cannot possibly be
  1202. executed.
  1203.  
  1204. If you answer No, the compiler does not look for dead code.
  1205. %2 Dead store elimination
  1206.  
  1207. Dead store elimination optimizer option
  1208.  
  1209. If you answer Yes to this option, the compiler locates and
  1210. eliminates assignments in which the variable assigned to is
  1211. not used after the assignment.
  1212.  
  1213. If you answer No, the compiler does not look for dead
  1214. assignments.
  1215. %2 Jump chaining
  1216.  
  1217. Jump chaining optimizer option
  1218.  
  1219. If you answer Yes, the compiler looks for jump instructions
  1220. that jump to other jump instructions, and replaces them with
  1221. jumps to the ultimate destination.
  1222.  
  1223. If you answer No, the compiler does not look for jump chains.
  1224. %2 Live variable analysis
  1225.  
  1226. Live variable analysis optimizer option
  1227.  
  1228. If you answer Yes, the compiler determines exactly when
  1229. the value of a variable might be used before it is changed.
  1230. This allows the compiler to perform better register
  1231. allocation, for example, when using the same register to store
  1232. two variables whose lifetimes do not overlap.
  1233.  
  1234. If you answer No, the compiler does not perform live
  1235. variable analysis.
  1236. %2 Peephole optimizations
  1237.  
  1238. Peephole optimizations optimizer options
  1239.  
  1240. If you answer Yes, the compiler examines the generated code,
  1241. looking for specific code sequences.  These sequences are
  1242. then replaced with more efficient sequences that accomplish
  1243. the same function.
  1244.  
  1245. If you answer no, the compiler does not perform peephole
  1246. optimizations.
  1247. %1 Editor
  1248. The Stony Brook Editor is a full screen WYSIWYG (What You
  1249. See Is What You Get) editor.
  1250.  
  1251. The editor keeps text in memory areas called buffers.  Each
  1252. buffer is associated with a file.  Changes you make to a
  1253. buffer are not reflected in the file until you save it.
  1254.  
  1255. When you exit the environment, or when the environment needs
  1256. the memory used by editor buffers, it will prompt you to
  1257. save any buffer you have changed since it was last saved.
  1258.  
  1259. To execute the commands on the top border of the window,
  1260. hold the Alt key and type the first letter of the command,
  1261. or point with the mouse and press the left button.
  1262. %%Buffer Cursor Delete Block SrchRepl Shift Dos Exit Key
  1263. %2 FileMenu
  1264. %2 Buffer
  1265. %2 OutputMenu
  1266. %2 RenameMenu
  1267. %2 ModuleMenu
  1268. Buffer manipulation commands:
  1269.  
  1270.   Open a new buffer or move to an existing    ALT/F
  1271.   buffer.                     
  1272.  
  1273.   If editing a source file in the current
  1274.   module library with ALT/F, type only the
  1275.   module name, not a file name.
  1276.  
  1277.   To save a buffer to its associated file.    ALT/O
  1278.                                                 
  1279.   To change the name of the file associated    ALT/R
  1280.   with the current buffer.  This file will be    
  1281.   created when you save the file.
  1282. %2 QuitMenu
  1283. %2 Exit
  1284. %2 ExitMenu
  1285. %2 ContinueMenu
  1286.  
  1287. Exiting and Quitting:
  1288.  
  1289.   Exit back to the environment        ALT/E
  1290.  
  1291.   Exit and continue compiling        ALT/C
  1292.   
  1293.   Abandon changes to current buffer    ALT/Q
  1294.   
  1295. If Safety belts are On, the editor will save all files
  1296. that have been altered whenever you exit.
  1297. %2 Cursor
  1298. To move the cursor:
  1299.  
  1300.   Left one character        Left arrow   or  Ctrl/S
  1301.   Right one character        Right arrow  or  Ctrl/D
  1302.   Left one word            Ctrl/A
  1303.   Right one word        Ctrl/F
  1304.   Up one line            Up arrow     or  Ctrl/E
  1305.   Down one line                Down arrow   or  Ctrl/X
  1306.   To top of file        Ctrl/PgUp
  1307.   To end of file        Ctrl/PgDn
  1308.   Up one screen            Pg Up         or  Ctrl/R
  1309.   Down one screen        Pg Dn         or  Ctrl/C
  1310.   To beginning of line         Home
  1311.   To end of line        End
  1312.   To a line (by number)        Shift/F2
  1313.   To next compilation error    F8
  1314. %2 Delete
  1315.  
  1316. To delete:
  1317.  
  1318.   Character at the cursor    Del          or   Ctrl/G
  1319.   Character left of cursor    Backspace
  1320.   Word at the cursor        Ctrl/T
  1321.   Line cursor is on        Ctrl/Y         or   F6
  1322.  
  1323. To delete large blocks of text, use the Cut command:
  1324.  
  1325.   1  Press F3 to mark the beginning of the block.
  1326.  
  1327.   2  Move to the end of the block using any cursor movement
  1328.      commands.
  1329.  
  1330.   3  Press F5 to cut the block of text.
  1331. %2 Block
  1332. Marking commands:
  1333.  
  1334.   Start marking         Ctrl/K B   or  F3
  1335.   End marking            Ctrl/K K
  1336.   Mark a word at the cursor    Ctrl/K T
  1337.   Mark a line at the cursor    Ctrl/K L    
  1338.   Read a file            Ctrl/K L
  1339.     
  1340. Block commands:
  1341.  
  1342.   Cut the marked block        Ctrl/K Y   or  F5
  1343.   Move the block of text    Ctrl/K V
  1344.   Copy the block of text    Ctrl/K C
  1345.   Write the block to a file    Ctrl/K W
  1346.   Paste the block last cut    F7
  1347. %2 SrchRepl
  1348.  
  1349. Searching and replacing:
  1350.  
  1351.   Enter a search string        Ctrl/Q F or Shift/F1
  1352.   Search backwards        F1
  1353.   Search forward        F2
  1354.   Enter replace string        Shift F4
  1355.   Replace next occurrence    F4
  1356.     
  1357. For global or block searches and replaces:
  1358.  
  1359.   Enter search parameters    Alt/P
  1360.   Search and replace        Ctrl/Q A
  1361.   Perform previous command    Ctrl/L
  1362. %2 Shift
  1363. To shift blocks of text by multiples of 4 characters:
  1364.  
  1365.   Shift the cursor line left    Shift/F9
  1366.   Shift the cursor line right     Shift/F10
  1367.   Shift previous line        Shift/F5
  1368.   Shift next line         Shift/F7
  1369.  
  1370. When inserting or deleting a structured statement, you
  1371. often need to shift the statements inside to a new
  1372. indent level.  This is easily accomplished as follows:
  1373.  
  1374.   1  Move to the first line to be shifted.
  1375.  
  1376.   2  Use Shift/F9 or Shift/F10 to shift that line by the
  1377.      required amount.
  1378.  
  1379.   3  Use Shift/F7 repeatedly to shift the next line.
  1380. %2 Dos
  1381. %2 DosMenu
  1382.  
  1383. Performing DOS commands:
  1384.  
  1385.   Perform a DOS command            Alt/D
  1386.                     
  1387. You are prompted for the DOS command to perform.  The
  1388. screen is cleared and the command is performed.  When
  1389. it finishes, you are prompted to Press a key to return
  1390. to the editor.    
  1391.  
  1392. To perform a series of DOS commands, answer the prompt
  1393. with COMMAND or CMD on OS/2.  This will place you at the
  1394. DOS or OS/2 prompt, and you can execute as many commands
  1395. as you want.  Enter the EXIT command at the prompt to return
  1396. to the editor.
  1397. %2 KeyMenu
  1398. %2 Key
  1399.  
  1400. The Key definition control panel allows you to redefine
  1401. the keys used for many editor functions.
  1402.  
  1403. Use the arrow keys or the mouse to select the function
  1404. for which you want to redefine the key.  Next, press the 
  1405. new key you have chosen to perform the function.
  1406.  
  1407. You can use the following keys:
  1408.  
  1409.   Ctrl / any letter
  1410.  
  1411.   F1 to F12 and Shift F1 to F12
  1412.   
  1413.   Home, End, PgUp, PgDn, Ins, Del
  1414.   
  1415.   Ctrl / Home, End, PgUp, PgDn
  1416. %2 Split
  1417. %2 SplitMenu
  1418. %2 WindowMenu
  1419. %2 NextMenu
  1420.  
  1421. Window manipulation commands:
  1422.  
  1423.   Split or unsplit the screen        Alt/S
  1424.                                             
  1425.   Alternate between the two windows    Alt/W
  1426.                                             
  1427.   Select the next buffer        Alt/N
  1428.