Just another new version of the ACE Integrated Development Environment. Now it is possible to use the new versions of the SuperOptimizer :-) thus allowing even faster and shorter ACE programs :-)). Furthermore the locale.library is now fully supported, allowing you to have your AIDE windows in your own language (if you are missing a language feel free to translate the enclosed catalog ;-)) For minor changes take a look at the history.
For supporting the new superoptimizer versions it has been necessary to change the configuration file.
AIDE stands for "ACE Integrated Development Environment". It is a freely distributable graphical front-end for the development of ACE programs. By using AIDE you will never need again to start from a shell when developing ACE programs (although you may spawn a shell by selecting an item from AIDE's Project Menu.
AIDE requires at least AmigaOS Release 2.04. There is no chance that it will run on any lower OS release. Furthermore, AmigaOS releases before 2.1 don't support localized programs (AIDE will run nonethe- less, but will use the default english texts).
AIDE will be comfortable with 0.5 megabyte RAM. (But ACE might get trouble then) AIDE does use only 4096 bytes of stack and does set up a stack size of 40000 bytes for any process run by it (esp. ACE will be very grateful ;-)
Since version 2.13 installing AIDE is very comfortable. Just use the Installerscript.
If there are problems using the script, here is a "do-it-yourself" explanation.
Before starting AIDE for the first time, you must have ACE installed correctly with the following corresponding directories:If these dirs aren't set up correctly, AIDE will abort with an error message. Same if one of the following files are not in the right directory:
- ACE:
- ACE:AIDE (copy AIDE in this directory!)
- ACE:bin
- ACElib: (ACE:lib)
- ACEinclude: (ACE:include)
- ACEbmaps: (ACE:bmaps)
- mrt.library (in LIBS:)
- thinpaz.font (in FONTS:)
I recommend to have the followings directories as well:
If those dirs do not exist, AIDE's internal configuration part gives you the possibility to do the setup to your personal need.
- ACE:Docs (where all the docs reside)
- ACE:Icons (where the necessary icons for ACE should be)
- ACE:Mods (where your compiled SubMods reside)
ATTENTION: Subdirectories are not allowed! Please copy all your modules into ACE:Mods/, otherwise the modules will not be available.
- ACE:prgs (where your source code resides)
- ACE:run (where your executables are going)
- ACE:temp (where your temporary files during compilation are going)
ATTENTION: "ACE:temp/" is the DEFAULT directory for temporary files during compilation. To save memory they are not any longer stored in T: (if the default would be T: and T: resides in memory the source file would be two times in memory) As memory's always short, it's better to have the temporary dir on HD and not in RAM:. Change this to your personal taste. Furthermore it might be dangerous to use T:, as AIDE deletes ALL files in the temp direc- tory if resetting a source, ...
- ACE:utils (where all the ACE related utilities reside)
AIDE will create a new file called AIDE2.config to run properly. If you've old config files from AIDE 1.5 and before, your settings will be copied to the new file. You can later delete the old files, if you wish. You can not edit the new file anymore, just use the integrated setup part in AIDE.
No AIDE2.config is included in the AIDE archive. If there does not exist one, AIDE will create one with the default settings.
If all the directories exist, as mentioned above , AIDE will create the setup in this way that you do not need to setup these settings manually. Only for options like PubScreen, Requester, ... you need to open the setup window, anything else is already done.
As AIDE has no built-in editor you have to specify your favourite one (cmp. setup, otherwise "C:Ed" is used ...) Note, that the specified editor MUST be capable of taking command- line arguments (e.g. a file name). Same applies to the viewer (default: AmigaGuide/Multiview).
There exist three pull-down menus in AIDE: Project, Utilities and Help. The Project menu is for general house-keeping tasks, the Utilities menu provides access to a number of useful programs and the Help menu gives you access to documentation for the compiler, assembler, linker and the ACE language.
Invokes the editor with a file name which you must specify via a file requester. If no file name is given, AIDE will inform you with a message. This option is included to edit any file of your choice. For editing the source file see below. The current used dir will be remembered, so you don't have to switch to all the directories again.
Lets you view a file which is selected via a file requester. Remem- bers the current dir.
Lets you rename a file specified via a file requester. Remembers the current dir. First a file requester will be opened where you have to select a file, which you want to rename. Now a second file requester appears where you have to select the new name. You can change the directory name, too, so a rename has the same effect as "move a file". This is only possible for the same device.
Lets you copy a file specified via a file requester. Remembers the current dir. There will be also two file requester: the first one to choose the source file, the second one to choose the destination dir and file name. If you change the name for the destination file, it will be copied with the new name.
Lets you delete a file specified via a file requester. Remembers the current dir.
Note: No second requester will appear, asking, whether you really want to delete this file. You can't double click the filename. You have to choose "OK" to perform the action.
Lets you choose a file to print via a file requester. Remembers the current dir.
Note: This function is very simple. It uses your printer preferences, as setup via the prefs tool from your workbench disk. No page check- ing, no formatting, nothing else is done. The function prints files, no matter which size, when they can be loaded in memory. This may be more comfortable in a future release. ;-)
Allows an AmigaDOS command to be executed. The command and its argu- ments are entered into an input requester, a console window is open- ed for any I/O associated with the command and the latter is execu- ted if possible.
You can create now multiple config files. With these two functions you can load/save now the default or any other config file. "Default" will try to load/save a file named ACE:AIDE/AIDE2.config and "other" will bring up a file requester where you can specify any directory and filename of your choice.
Note: To work properly, the AIDE icon (AIDE.info) must reside in the directory ACE:AIDE/. If this isn't the case, AIDE will use the default program icon (as can be specified via IconEdit) for the appicon.
Exits from AIDE. (You can also click the close gadget of the main window.) Depending on the settings (see SetUp) you will be asked whether you want to quit AIDE.
This is completely new (in comparison to v1.x), so you don't have to edit a config file outside of AIDE. All the settings you change there will be active immediately (despite of one).
Just one word to the default font setting: "Thinpaz.font" is used so all the gadgets will fit in a window which can be displayed on a standard NTSC screen. For those who use a higher resolution of their Workbench screen, the option "Public Screen" can be used.
Well, when you choose AIDE setup the main window will be closed and the setup window will be opened. On the left side there are all the string gadgets for the directory setup. If you want to change the names manually you can do it there. If you type an error the old entry will be displayed again and the string gadget will be set to active state. When you select the "R" button ("R" means requester), right beside the string gadget, an ASL file requester will pop up where you can choose a directory or file name of your choice.
Note: If only a directory is necessary for the setup a selected file name will be ignored. If no file name is selected where one is absolutely necessary, your choice will not be accepted.
This is the only setting which will have effect, when you start AIDE again after saving your config file as default (AIDE2.config).
This may be changed in a future release.
Just try it out and set this flag to your personal taste.
You can configure AIDE now via the tooltypes entry of the source file icon and the AIDE program icon. The defined tooltypes are:
The main window holds now the functions and many more, which were found before in the pull down menu.
All these functions are necessary to compile an ACE program under different conditions in a comfortable way.
Important: The buttons in the "Program" section will not change their state if you change any names/options for precompiler, ACE, assembler, linker lib or linker and the internal state of the make process won't be affected either.
If you did change the options just select the corresponding buttons in the "Program" section to perform the missing steps of your com- pilation process. This habit differs completely from older versions of AIDE. It was done this way, so that the program is not recompiled completly, be- cause only the assembler or linker option had been changed.
If you want to perform a new compiler run, just select "Reset" from the source section and "Make Executable" or whatever AIDE should do for you.
The mutual exclusive buttons gives you the possibility to choose APP, ACPP or any other precompiler to be used to precompile your source file.
If you select "other", an input box will pop up where you can enter the name of your desired precompiler.
If you choose DCPP then the options will be set up correctly to be used for ACE programs. DCPP is much faster as ACPP and does the same task.
I recommend to use NAP (guess why ;-) as it's almost as fast as ACPP (and I hope it will be faster the next versions) and does the same task as ACPP and APP together (processing defines, C comments AND ACE comments!)
If no precompiler name is entered, the button of your last selected one will be activated again and an existing precompiler name will be deleted.
Clicking the close gadget of the window will ignore all what you may have entered in the string gadget. If your settings should take effect press <RETURN>.
These five correspond to the compiler's command-line switches: b, c, i, O and w respectively. See ace.doc's "Compiler options" section for details of each of these.
"List Source Lines" is not available via checkbox gadget, if you need this, just enter "l" in the input box after having selected "other"!
Since AIDE always uses ACE's -E switch to create an error file, this option is not available. Compilation errors are, however, viewable via "View Compiler Errors"!
other - If you select this button an input box will pop up and give you the possibility to enter any kind of ACE option which may be defined new for the future. Use this as well if you want to specifiy "list source line". You have to enter the options as defined in ACE.doc. If no "space" is required, then don't enter it. If you enter an empty string here all options which may be defined before will be deleted. Clicking the close gadget of the window will ignore all what you may have entered in the string gadget. If your settings should take effect press <RETURN>.
Here you can choose if you want to use the SuperOptimzer from Manuel Andre. With "Set Level" you can define how much optimization you want. Depending on your "SuperOpt version" (see SetUp part) you have two ways to change it:
Here you can choose which assembler you like to use. A68K and PhxAss (see the corresponding doc files for more details) are fully supported from AIDE.
Just select the desired options, or enter new ones with the "Set Options" buttons. All what you enter has to be done the same way as if you would type them at the Shell prompt. For A68K and PhxAss the options are set in the right place of the command string. PhxAss ist set to NULL for optimizing the assembly output. It does depend on your program which optimizing options you can use. Read the docs carefully and try them. Optimizing the assembly output results in shorter/faster executables. If you want to change the optimization level of PhxAss the new level has to be the first thing entered in the "Set Options" window WITHOUT the OPT command!!! If you do not want to change the optimization level but add some other options you MUST have a 0 as first char in your "Set Options" window!
When you specify another assembler via the "other" button then the options will be added after the name of the file which has to be assembled and the name of the object file.
Example:
You choose superasm as your "other" assembler. The default command
string for assembling will then be:
Attention:
If you did define options for A68K and you switch to PhxAss then
you have to delete those options first, otherwise they will be used
also for PhxAss. This will result in an error message from PhxAss.
Here you can choose which linker lib despite of the defaults db.lib
and startup.lib, which are linked always, should be used. For PhxLnk
you can use the standard Amiga.lib instead of Ami.lib.
Important:
Blink will crash if you try to link Amiga.lib!!!!!!
Here you choose which linker you like to use. BLink and PhxLnk are
fully supported by AIDE.
What I did say about the handling of the "Set Options" button above
in the assembler chapter is also valid for the linker part. So read
the linker docs carefully if you want to use other options as predefined in AIDE.
Important:
PhxLnk links all data sections into one piece, no matter if for
some special ones the Chip mem bit is set! This can result in the
effect that some machines are reporting "not enough memory" if they
try to load a program wich was linked with PhxLnk and this option
set. That happens, because ACE creates large data sections (depending on the used amount of variables) which has to be loaded to
Chip mem now. Machines with only 512k and sometimes those with
1Mega byte of chip mem, will report "not enough memory".
PhxLnk has options to force Chip mem data sections to Chip mem and
all the other data sections to Fast mem, but that has to be done
inside of the assembler source file. :-( This is not possible for
normal :-) ACE programmers. We only can hope that Klaus will be so
kind to add an option to PhxLnk, so this'll be done automatically.
Blink separates Chip mem data sections from the others, so this'll
not happen with BLink.
In any case you should be aware, that this option only makes sense,
if also the assembler option was set to SmallCode/Small Data. If it
was not (and ACE does not allow SmallCode/Small Data for all your
programs) and SmallCode/Small Data option set for the linker only,
results in programs which can have loading problems on machines
with less memory and high memory fragmentation.
All SUBMods which resides in the specified "Module Dir" are displayed
in the main window. Just click on the name to select the one you
want to link and the choosen one will be highlighted. Clicking on a
selected entry results in unselecting it. If you want to remove all
modules just click on the button "Remove all Modules"
There is no limit for the amount of Modules defined which can be
linked.
The amount is only limited by the length of the command line the
linker accepts for input. My testing did result in about 20 modules
as maximum (depending on the length of the file name). The buffer of
AIDE allows up to 120 modules until an error message is displayed.
Note:
No checking of the filename is done, only directory names are
ignored. Therefore you can place any type of linkable file into
your "Module Dir".
If you want to link other linker libs as predefined just place them
here and select them as described above.
Note:
If you want to save your option settings from the
main window, use Save Configuration from the
Project menu. All your settings will be saved in
AIDE2.config (default) or in another file if you wish to do so.
As you may have gleaned from the above, AIDE has a simple inbuilt
"make" capability.
This means that before it builds or makes an exectuable and prior to
compiling or running a program, AIDE checks to see whether compilation needs to take place at all.
If you have created an executable and then decide to run it, AIDE
will not recompile the source first. Likewise, if you want to build
an executable and the program has already been compiled, the executable will be copied from AIDE's temporary workspace only.
In like manner, if you have compiled a program to produce an assembly source file, so long as you don't edit the ACE source file,
AIDE will not recompile the program before assembling and linking
it.
If you want to recompile select Source Reset
or do it step by step with the buttons in the Program
section.
On the other hand if you edit a source file, next time you go to run
it, AIDE will "bring the program up to date" by compiling,
assembling and linking it first.
If you forgot to link some modules just select them and select
"Link" from the Program section.
In order to preprocess, compile, assemble and link a program, AIDE
now uses the DOS function SystemTagList(). An intuition window will
be opened to watch the progress of your compilation run. If you
select "Stop" there, the next step will not be taken. If you want to
stop immediately you have to press Ctrl-C in the CON: window, which
was also opened to display the current output from ACE and the other
programs. But not all programs, used to make an executable, accept
Ctrl-C, therefore the "Stop" button was added.
Note:
Only the next step can be aborted via the "Stop" button, because
SystemTagList() didn't return before and did give the control back
to AIDE.
If an error or user break occurs during preprocessing or compilation, AIDE will stop and give the control back to the user.
I have to thank the following persons for their help, and for their
patience to test all my bad and buggy :-) beta versions.
Well, Herbert never started a history so a long period is missing.
Myself is also not that successful in keeping a history but I'll try
my best :-)
AIDE is completely written in assembler. Nothing is perfect and AIDE
still is not! So all your comments, hints and bug reports (huh? ;-)
are welcome and wanted! Feel free to make any suggestions about AIDE
and please report _any_ bug you've found:
In any case, I hope you find AIDE to be a pleasant environment in
which to develop ACE programs.
One last word: AIDE is freeware. This means, you are allowed to copy
it freely as long as all files stay unaltered and no file is missing
in the copy. As the author does not want any money for AIDE, you are
not allowed either to demand money for copying AIDE.
Linker Lib
Linker
Module
AIDE's "Make" Process
Credits
Date Changed
----------------------------------------------------------------
??/??/?? Since the last release 2.07 and this one (v2.12) were
some other versions, still by Herbert, which have not
been published. (Some little bugs were removed.)
----------------------------------------------------------------
04/08/97 got source code of AIDE, started to go through to un-
derstand what happens where and why and how and.. ;-)
04/17/97 started to include iconization ability
04/27/97 rewrote manual (AmigaGuide format)
05/11/97 When loading a new configuration file via the menu it
will now be checked whether the current configuration
has changed.
published as v2.12
----------------------------------------------------------------
06/06/97 Replaced menu pen setting by "SuperOptimizer version"
07/06/97 Fixed a bug (now filenames with spaces are possible;
reported by Paul F. Perrin)
08/06/97 Replaced support of APP by support of NAP
12/06/97 Added support of new SuperOptimizer versions
13/06/97 Iconify won't crash anymore! (Paul F. Perrin)
17/06/97 Finished locale.library support ;-)
17/06/97 Fixed a bug (after leaving the setup part, the "pro-
gram" buttons are set correctly (and not disabled as
used to be even if some were enabled before entering
setup)).
18/06/97 Wrote Installer Script.
19/06/97 Changed way additional options are placed if using an
other assembler. See assembler section.
[All dates are "end of work"].
Final Comments
Daniel Seifert
Elsenborner Weg 25
12621 Berlin
GERMANY
Tel.: (Germany) 030/5669471
Mail: dseifert@gmx.de