home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 2: PC / frozenfish_august_1995.bin / bbs / d07xx / d0766.lha / MPE / MPE.DOC < prev    next >
Text File  |  1992-11-21  |  24KB  |  589 lines

  1.  
  2.             *** Modula-2 Programming Environment Version 1.38 ***
  3.  
  4.                          ⌐ Copyright 1992 DigiSoft
  5.                     written in Modula-2 version 4.0d  by
  6.                             Marcel Timmermans
  7.  
  8.  
  9.  
  10. DISCLAIMER
  11. -----------------------------------------------------------------------------
  12. The author is NOT responsible for the suitability or accuracy of this
  13. documentation and/or the program(s) it describes.  Any damage sustained by
  14. the use or misuse of this documentation and/or the program(s) it describes
  15. is the responsibility of the user her/him self.
  16. ----------------------------------------------------------------------------
  17.  
  18. COPYRIGHT
  19. ----------------------------------------------------------------------------
  20. MPE, ⌐ Copyright 1992 by DigiSoft.  All rights reserved.  This program may
  21. be distributed non-commercially only providing that the documentation and
  22. copyright notice remains intact and are included with the distribution.
  23. This program is Public Domain so no financial donation is necessary.
  24. ----------------------------------------------------------------------------
  25.  
  26.  
  27.  
  28. INTRODUCTION
  29. ----------------------------------------------------------------------------
  30.  
  31. This is a program to make work easier for making a program with M2Amiga.
  32.  
  33. How many times you have typed m2c <program name>, if there is any
  34. error than m2emacs <program name>, m2c .. m2l etc. offcourse you can use
  35. m2make  but  than again you have to give all the switches you want to use
  36. (no debug, Minimum Arts etc.)
  37.  
  38. I have tried to make a program that supports all kind of options to
  39. build a program.  I hope you like it.
  40.  
  41. Features:
  42.  
  43.     o - Settings are kept by every project.
  44.     o - After an error during compiling an editor will be called
  45.     o - you can edit a report file for your program
  46.     o - you can set 'every' options for the M2Amiga V4.0 Compiler and Linker
  47.     o - Also you can use M2Make
  48.     o - You can run your program from MPE.
  49.     o - Creates an autoheader if you want it.
  50.     o - A special version with the use of Reqtools.library
  51.         (Reqtools is Copyright (c) by Nico Franτois.)
  52.     o - You can load M2POOL from MPE
  53.     o - You can start M2Project from MPE
  54.     o - You can start M2LibLink from MPE
  55.     o - A help function for the menus after pressing the help key
  56.         (let me know if you like this option or not)
  57.     o - ARexxPort (MPE_PORT)
  58.     o - And most important it is FREE
  59.  
  60.  
  61. REQUIREMENTS
  62. ----------------------------------------------------------------------------
  63. MPE was programmed in M2Amiga V4.0d on an Amiga 3000 Kick 2.0 with 4 MB
  64. memory and a 100MB harddisk but it should run on a standard 512 KB machine.
  65. MPE ,about 80 KB size, needed about 120 KB memory.  However if you want a
  66. good use you need at least 1.0 MB memory.  It's is tested on kickstart 1.2,
  67. 1.3 and 2.0.  It's only tested with M2Amiga V4.0.
  68.  
  69. Note: If you use a earlier version of M2Amiga than 4.0 and you want to use
  70.       MPE, Please send me the options for the compiler, linker and m2make.
  71.       and i will try to make a special version for this specific compiler
  72.       version.
  73. ----------------------------------------------------------------------------
  74.  
  75.  
  76. INSTALLATION
  77. ----------------------------------------------------------------------------
  78.  
  79. MPE should be working with all kickstarts versions.
  80.  
  81. At the moment you can't use MPE from the workbench at kickstart 1.2 / 1.3
  82. if you want to use it from the WB then use IconX at kickstart 1.2 / 1.3
  83.  
  84. MPE is easy to install, just copy it to the directory m2:
  85.  
  86. When you run MPE at the first time you get a default setting choosed by
  87. myself.  But you can change your default setup and save it.  By using the
  88. pull-down menu, settings - save default.
  89.  
  90. ----------------------------------------------------------------------------
  91. HOW TO USE
  92. ----------------------------------------------------------------------------
  93. It's not very difficult to use, but here is an explanation for the menus.
  94. (also available in the program after pressing the help key)
  95.  
  96.  
  97. ----------------------------------------------------------------------------
  98. AREXX PORT
  99. ----------------------------------------------------------------------------
  100. The name of the port is MPE_PORT. Its my first atempt to make a program wich
  101. work with arexx. So there can be some failures in it. Please let me now !
  102.  
  103. KEYWORDS
  104.  
  105.   PARSE     After this command you get an requester to choose a file
  106.             to make an autoheader or an update from the autoheader.
  107.  
  108.   ABOUT     Silly command, Info about MPE
  109.  
  110.   HELP      Make the help command active
  111.  
  112.   EDIT      MAIN   => Mpe starts the editor and load the main program.
  113.             MODULE => Mpe starts the editor and load the module.
  114.  
  115.   COMPILE   MAIN   => Mpe compiles the main program, Mpe doesn't give
  116.                       a result back. (not yet)
  117.             MODULE => Mpe compiles the module, Mpe doesn't give a result
  118.                       back (not yet)
  119.  
  120.   LINK      MPE start the linker.
  121.  
  122.  
  123.  example:
  124.    rx "Address MPE_PORT COMPILE MAIN" the main program will be compiled
  125.    rx "Address MPE_PORT ABOUT" You get the about requester.
  126.  
  127.  You see it is not diffecult to use.
  128.  
  129.  I know, some commands are not usefull but i want create an arexx-port
  130.  just for learning and i added at MPE. So if neverone use this port i remove
  131.  it in the next update. The program is only 2550 bytes bigger, so why
  132.  not. if you have some ideas to improve the arexx-port please send me a
  133.  letter with your ideas.
  134.  
  135.  
  136.  
  137. PROJECT MENU
  138. ----------------------------------------------------------------------------
  139. This menu consists of the following items:
  140.  
  141.  Load Project: <right Amiga P>
  142.  
  143.  Function    :  Here you can load your directory where the program is standing
  144.                 witch you want to use.  (f.e.  DH0:M2/MPE do not choose the
  145.                 subdirs txt, bin, obj, sym or txt.  The program sees this
  146.                 by it's self.
  147.  
  148.  Load Main   : <right Amiga ?>
  149.  
  150.  Function    : Here you can load your main program.
  151.  
  152.  Load Module : <right Amiga O>
  153.  
  154.  Function    : Here you can load your module.  If you don't have
  155.                a module you don't need to load something.
  156.  
  157.  Resident    :
  158.  
  159.  Function    : At the sub-items you can set M2C, M2L or/and M2Make resident.
  160.                This information shall also be saved to the config file.
  161.                At the end of the program i remove all the program's of
  162.                the resident list.
  163.                I do this with the command "resident", so it must exist.
  164.  
  165.  Make Project:
  166.  
  167.  Function    : With this item you can choose the options and start the
  168.                program M2Project. In the subitem you can set the options
  169.                for M2Project. With start, the program M2project will
  170.                be started.
  171.  
  172.  About       :
  173.  
  174.  Function    : Here you find the information about the program, author,
  175.                version etc.
  176.  
  177.  Quit        : <right Amiga Q>
  178.  
  179.  Function    : This item you need if you want to leave the program.
  180.                A requester ask's to save settings or quit or cancel.
  181.                You can also use a letter.
  182.                 'Y' for quit
  183.                 'M' for Save & Quit
  184.                 'N' for Cancel
  185.                 This is only if you use the standard version
  186.                 Not for the version with reqtools.library
  187.  
  188.  
  189. EDITOR MENU
  190. ----------------------------------------------------------------------------
  191. This menu consists of the following items:
  192.  
  193.  MP/MOD      : <right Amiga E>
  194.  
  195.  Function    : When you choose this item an editor (the want you choose in
  196.                settings) will be started with the active file.
  197.  
  198.  A File      : <right Amiga />
  199.  
  200.  Function    : When you choose this item the program put an file requester
  201.                on the window and you can choose any file you want to edit.
  202.  
  203.  Report      : <right Amiga R>
  204.  
  205.  Function    : When you choose this item the program loads a report file
  206.                into the editor with the main module name.report.
  207.  
  208.  Get *E      : <right Amiga F>
  209.  
  210.  Function    : This item finds an error file produced by M2C. It's specially
  211.                for when you choose build (M2make).
  212.                A file requester disappear on the screen and shows all the
  213.                file's which have an error. When you load this file it will
  214.                be automatically the Module file and or if it is the main
  215.                file the main file will be loaded.
  216.  
  217.  Doc File    :
  218.  
  219.  Function    : When you choose this item the program loads a <MainName>.DOC
  220.                   file in the editor from the project directory.
  221.  
  222.  
  223. COMPILER MENU
  224. ----------------------------------------------------------------------------
  225. This menu consists of the following items:
  226.  
  227.  MP/MOD      : <right Amiga C>
  228.  
  229.  Function    : When you choose this item the program compiles the active file.
  230.                (main or module)
  231.  
  232.  Options     :
  233.  
  234.  Function    : In a sub item menu you can set your options for the M2Amiga
  235.                V4.0 compiler. At the last sub-item menu you can give your
  236.                own options.
  237.  
  238. LINKER MENU
  239. ----------------------------------------------------------------------------
  240. This menu consists of the following items:
  241.  
  242.  MP/MOD      : <right Amiga L>
  243.  
  244.  Function    : When you choose this item the program links everything.
  245.                If the main file is changed it compiles first the main file.
  246.                If the second file or .def file is changed it compiles first
  247.                the second file. if every goes right than the linker will be
  248.                started. (Just try to see )
  249.  
  250.  NOTE        : If the program has more sub modules THEY WON'T COMPILE IF
  251.                THEY ARE CHANGED THEREFOR YOU NEED TO CHOOSE MAKE.
  252.  
  253.  Options     :
  254.  
  255.  Function    : In a sub item menu you can set your options for the M2Amiga
  256.                V4.0 linker. At the last sub-item menu you can give your own
  257.                options.
  258.  
  259.  LibLink     : <right Amiga ]>
  260.  
  261.  Function    : When you choose this item the program links the mainfile with
  262.                every otherfile its needed.
  263.  
  264.  NOTE        : - There is NO Checking on succesfull or not !!!!
  265.                - There is NO Checking if the mainprogram,module is
  266.                  compiled or NOT !!!!
  267.  
  268.  Options     :
  269.  
  270.  Function    : In a sub item menu you can set your options for the M2Amiga
  271.                V4.0 liblinker. At the last sub-item menu you can give your
  272.                own options.
  273.  
  274. RUN MENU
  275. ----------------------------------------------------------------------------
  276. This menu consists of the following items:
  277.  
  278.  Go Main     : <right Amiga G>
  279.  
  280.  Function    : When you choose this item the program compile if necessary,
  281.                linked everything together end run the program.
  282.  
  283.  Argument    : <right Amiga A>
  284.  
  285.  Function    : In this item you can give your arguments
  286.  
  287.  
  288. SETTINGS MENU
  289. ----------------------------------------------------------------------------
  290. This menu consists of the following items:
  291.  
  292.  Change Ext. : <right Amiga M> and <right Amiga D>
  293.  
  294.  Function    : In the sub-items you can choose between a .mod file or a .def
  295.                file.
  296.  
  297.  Workfile    : <right Amiga 1> and <right Amiga 2>
  298.  
  299.  Function    : In the sub-items you can choose between the main file and
  300.                secondfile for making active.
  301.  
  302.  Processor   :
  303.  
  304.  Function    : In the sub-items you can choose the processor type
  305.                you want to compile for it.
  306.  
  307.  Change
  308.     Settings :
  309.  
  310.  Function    : After choosing this item you get a requester where you can
  311.                change your default editor, usermenus.
  312.                Further you can set the following options on or off:
  313.  
  314.                 - Debugger (Must M2Debug loaded or not )
  315.                 - Create a new Default File
  316.                   ( When you type a filename in the filerequester, when
  317.                     your load a module or main program, which doesn't exist
  318.                     MPE creates the filename with a default text like:
  319.  
  320.                     MODULE <Name>.MOD
  321.  
  322.                     BEGIN
  323.                      CLOSE
  324.                     END <Name>.
  325.  
  326.                     When you choose the a module the program makes a '.mod'
  327.                     and a '.def' file.
  328.                     You can switch this option on or off.
  329.                   )
  330.                 - Change CONST AutoVersion
  331.                   ( When there is a header created, and only then, AutoVersion
  332.                     can be changed to the latest version.
  333.                     You must use something like this
  334.                       CONST AutoVersion = '1.0'; CONST AutoVersion = "1.0";
  335.                     The text is case depended, so if you use AUTOVERSION the
  336.                     program don't find the CONST.
  337.                     Also you must use a text Constant, NOT AutoVersion = 1.0;
  338.                     So you choose the menuitem CreateHeader then the program
  339.                     creates a header for you if it doesn't exist.
  340.                     if the header exist the program asks you for the update
  341.                     text and for a version number.
  342.                     This version number comes in the constant AutoVersion.
  343.                     So it's only usable when a header was created.
  344.                     You can switch this option on or off.
  345.                   )
  346.                 - Make Backup File
  347.                   ( When the program creates a header, you can make a backup
  348.                     called <Name>.BK!. This for when something goes wrong.
  349.                     I don't hope so.
  350.                     So i'm not responsible when your source file is broken.
  351.                     Please Switch this on.
  352.                     If your use the program a long time and it never failed
  353.                     at this item, you can switch it off.
  354.                     If anything goes wrong, please let me now.
  355.                   )
  356.  
  357.                 - M2Pool loaded at start
  358.                   ( When you select this item M2pool shall be loaded )
  359.                 - Change ENV: options also
  360.                   ( If you change the compiler, linker or make options
  361.                     mpe write this also to env:m2c , env:m2l and env:m2make
  362.                   )
  363.                 - Module check
  364.                   ( this items check if your loaded program is a MODULE or
  365.                     a IMPLEMENTATION MODULE. The program checks if <name>.def
  366.                     exist if not then the program scans the text source )
  367.  
  368.  
  369.  Load
  370.     Settings : <right Amiga ->
  371.  
  372.  Function    : Here you can load your project settings.
  373.  
  374.  Save
  375.     Settings : <right Amiga +>
  376.  
  377.  Function    : Here you can save your project settings.
  378.  
  379.  Save
  380.     Default  :
  381.  
  382.  Function    : Here you can save your default settings.
  383.                This contains: - Compiler, Linker and M2Make options
  384.                               - Resident options
  385.                               - Sort editor
  386.                               - User Menu
  387.                               - Debugger On/Off
  388.                               - Create a new default file On/Off
  389.                               - Change  CONST 'AutoVersion' On/Off
  390.                               - Create backup file  AutoHeader On/Off
  391.                               - Change ENV: options also  On/Off
  392.                               - Change Module check  On/Off
  393.  
  394.   NOTE       : The main and second file name shall not be saved.
  395.  
  396.  
  397. SPECIAL MENU
  398. ----------------------------------------------------------------------------
  399. This menu consists of the following items:
  400.  
  401.  Shell       : <right Amiga S>
  402.  
  403.  Function    : Here you can start the Command Line Interface.
  404.                This menu item executes 'NewShell', so it must exist. and
  405.                the program must find it. Otherwise it will not executed.
  406.  
  407.  User 1      : <right Amiga !>
  408.  
  409.  Function    : Here the program execute your file out the Setting Menu.
  410.                You can use something like 'C:list bin/' or whatever you want.
  411.  
  412.  User 2      : <right Amiga @>
  413.  
  414.  Function    : Here the program execute your file out the Setting Menu.
  415.  
  416.  User 3      : <right Amiga #>
  417.  
  418.  Function    : Here the program execute your file out the Setting Menu.
  419.  
  420.  Execute     : <right Amiga X>
  421.  
  422.  Function    : At this item the program ask you with a StringRequester
  423.                what you want to execute.
  424.  
  425.  InfoHeader  : <right Amiga I>
  426.  
  427.  Function    : Here you can fill in your default header info.
  428.                This mean when you creates your first header.
  429.                The name is depended from the active file.
  430.  
  431.  CreateHeader: <right Amiga H>
  432.  
  433.  Function    : This item creates the header at the active file.
  434.                If the header exists a few things happened.
  435.                - A requester asks for the new version number.
  436.                - A requester asks for the update string.
  437.                - When AutoVersion is on the version number in the
  438.                  Constance 'AutoVersion' shall be changed.
  439.                  If CONST AutoVersion = '1.0' And you fill in the
  440.                  string requester 1.1 then you get
  441.                  CONST AutoVersion = '1.1'.
  442.                  By the way if you use (*# AutoHeader:=FALSE *)
  443.                  Please put this in the top of your file
  444.                  the program doesn't create a header file.
  445.                  You must use '(*#', '#' stands for MPE options.
  446.  
  447. Example Header (like idea from Jan van der Baard, Thanks Jan )
  448.  
  449. (*#-- BEGIN AutoRevision header, please do NOT edit!
  450. *
  451. *   Program         :   MPE.mod
  452. *   Copyright       :   1992 ⌐, DigiSoft
  453. *   Author          :   Marcel Timmermans
  454. *   Address         :   Holthuizerdreef 13, 6852 JH HUISSEN, HOLLAND
  455. *   Creation Date   :   21-12-1991
  456. *   Current version :   1.06
  457. *   Translator      :   M2Amiga 4.0d
  458. *
  459. *   REVISION HISTORY
  460. *
  461. *   Date          Version         Comment
  462. *   ---------     -------         ------------------------------------------
  463. *   25-04-1992     0.80           First test Option
  464. *   05-05-1992     0.90              Changed requesters, Compile generator
  465. *   09-05-1992     1.00           First Release
  466. *   23-05-1992     1.01           Changed mayor bug in run program
  467. *   23-05-1992     1.02           Added AutoRevision Header
  468. *   23-05-1992     1.03           Change Settings window with more options
  469. *   26-05-1992     1.05           Make a headerparser and changed settings
  470. *   27-05-1992     1.06           Changed create default write for files
  471. *
  472. *-- END AutoRevision header --*)
  473.  
  474. I hope your like it. New suggestions are welcom !!
  475.  
  476.  
  477.  
  478. So you know the menus and now you can load your project, main module, second
  479. module, compiling, linking , building etc.
  480.  
  481.  
  482.  
  483. ----------------------------------------------------------------------------
  484. KNOWN BUGS
  485. ----------------------------------------------------------------------------
  486.  o - When you put in the user options a program that detach itself,
  487.      sometimes it is possible that under KickVersion 1.2/1.3 the system
  488.      hangs. I don't know why this is happend.
  489.  
  490. ----------------------------------------------------------------------------
  491.  FUTURE CHANGES
  492. ----------------------------------------------------------------------------
  493.      o Remove the bug's offcource
  494.  
  495. If you have more suggestions, please let me know.
  496.  
  497.  
  498. -REVISION HISTORY-
  499.  
  500. ****************************************************************************
  501. *
  502. *   REVISION HISTORY
  503. *
  504. *   Date          Version         Comment
  505. *   ---------     -------         ------------------------------------------
  506. *   25-04-1992     0.80           First test Option
  507. *   05-05-1992     0.90              Changed requesters, Compile generator
  508. *   09-05-1992     1.00           First Release
  509. *   23-05-1992     1.01           Changed mayor bug in run program
  510. *   23-05-1992     1.02           Added AutoRevision Header
  511. *   23-05-1992     1.03           Change Settings window with more options
  512. *   26-05-1992     1.05           Make a headerparser and changed settings
  513. *   27-05-1992     1.06           Changed create default write for files
  514. *   28-05-1992     1.07           Optimized some routines
  515. *   28-05-1992     1.08           added resident options
  516. *   28-05-1992     1.09           Added .doc optie by editor
  517. *   30-05-1992     1.10           Remove lock bug, free one lock to much
  518. *   31-05-1992     1.11           Remove Ref opt., changed options routine
  519. *   07-06-1992     1.12           Remove Mayor bug from LoadSettings
  520. *                                 Remove some bug's for A3000 use
  521. *   08-06-1992     1.13           Changed some minor bugs in Settings
  522. *   13-06-1992     1.14           Added Reqtools library options
  523. *   15-06-1992     1.15           Added some error routines
  524. *   25-06-1992     1.16           Added m2pool option
  525. *   01-07-1992     1.17           Changed routine QuitM2pool, Release 2
  526. *   05-08-1992     1.18           Changed procedure startCompiler
  527. *   06-08-1992     1.19           Added menu ProcessorType
  528. *   07-08-1992     1.20           Make check for obj type (Processor sort)
  529. *   09-08-1992     1.21           added m2project program
  530. *   10-08-1992     1.22           added help text option
  531. *   10-08-1992     1.23           remove minor bug dir_filerequester
  532. *   11-08-1992     1.24           added options to ENV:
  533. *   23-08-1992     1.25           Make a better structure and comment progs
  534. *   24-08-1992     1.26           change updatesettings procedure
  535. *   25-08-1992     1.27           Added module check option
  536. *   25-08-1992     1.28           Give more information to user,loading etc
  537. *   30-08-1992     1.29           Don't rember Project path in configrecord
  538. *   30-08-1992     1.30           Added M2liblink with options to mpe
  539. *   01-09-1992     1.31           Changed compiler options
  540. *   13-09-1992     1.32           Cleanup some routines
  541. *   22-09-1992     1.33           Remove bug filerequester and autoheader
  542. *   23-09-1992     1.34           Change autorevision procedure. Now you
  543. *                                 can give more text than just a little bit
  544. *                                 of words. Maximum is 10 lines of text.
  545. *                                 You don't have to insert \n or something.
  546. *   27-09-1992     1.35           Added an ARexxPort with some commands,
  547. *                                 its my first atempt to work with arrex in a
  548. *                                 program so don't hit me when something
  549. *                                 goes wrong ! But report the Bug.
  550. *   07-10-1992     1.36           Optimize the routines in the
  551. *                                 filerequester and the gadgets support
  552. *                                 module.
  553. *   08-10-1992     1.37           Make input and output possible by running
  554. *                                 the program by a simple way starting a
  555. *                                 newcli with the needed program.
  556. *   01-11-1992     1.38           Release 4
  557. *
  558. (*-------------------------------------------------------------------------*)
  559.  
  560. The author,
  561.  
  562. My english is not very good, so i hope you will accept my bad writing.
  563. If you find any bugs, or you have ideas to make the program more
  564. user-friendly, please report to me at the following address:
  565.  
  566.                                             Marcel Timmermans
  567.                                             Holthuizerdreef 13
  568.                                             6852 JH, Huissen (gld)
  569.                                             Holland / Europe.
  570.  
  571. After the date 30-november-1992 i'm moving out to a new home.
  572. Than my new address is:
  573.                                             Marcel Timmermans
  574.                                             AagjeDekenStraat 22
  575.                                             6836 RM Arnhem
  576.                                             Holland / Europe.
  577.  
  578.  
  579. Please, if you like (or don't) the program or you make use of it
  580. let me now.
  581.  
  582. Greeting's to
  583.                 - Fridtjof Siebert
  584.                 - Jan van den Baard
  585.                 - Dr. Maybe
  586.                 - Lars Van Jeurissen
  587.                 - A+LAG for M2Amiga.
  588.                 - Fred Fish for his great job.
  589.