Setting up RadASM
I’ve recently ventured back into the realm of HLA and Assembly Language programming. One of the tools I’ve decided to finally get set up correctly is RadASM written by Ketil O. It’s really quite a remarkable IDE written entirely in ASM for developing ASM applications. It is also flexible enough to work with several flavors of assembly language including MASM, FASM, NASM, GoASM, TASM, and HLA. It’s definitely more suited to MASM/MASM32 development, but he has done a fantastic job of expanding the capabilities and including default setups for each of the language syntax’s mentioned.
Another related IDE is Sevag Krikorian’s HIDE which I believe uses some of the RadASM dll’s as well. Sevag’s IDE is not as feature-rich as RadASM but it has the distinct advantage of being extremely easy to get setup and it is made specifically for HLA development. He has also included his own versions of the HLA command-line executable and his own make tool. Nice job.
I’ve decided to stick with RadASM for a couple of reasons. 1) I liked the general feel of the tool a little better. The HIDE windows were separated and it didn’t suit my development style. 2) I was interested in some of the more advanced capabilities of the RadASM tool set. However, I have taken to learning a great deal from HIDE, and I suggest anyone interested in HLA development should take a serious look at it.
The steps that follow are my notes taken after a successful install and setup of the RadASM environment for the FreeHLA system.
RadASM Setup
1. Unzip the RadASM package file to the location desired. I placed it in my c:\apps_root\RadASM folder.
2. Open the RadASM.ini file and update the following sections:
- In the [Assembler] section switch the hla reference to the front of the list so that HLA projects are the default project type.
- Adjust the [MenuHelp] and [F1-Help] sections so that the menu choices point to the correct menu options.
3. Open the HLA.ini file and update the following sections:
- In the [Environment] section a the top, make sure the path, lib, and hlainc settings are correct. In addition, I added entries 4 and 5 corresponding to include and hlalib sections. VERY IMPORTANT: make sure that the path, lib, and include entries contain a semi-colon (;) after the entries so that RadASM will include the existing values for those environment variables after your inclusions. This was a source of confusion for me at first. As an example, my setup is as follows:
[Enviroment]
1=path,c:\apps_root\fhla;
2=lib,c:\apps_root\fhla\hlalib;
3=hlainc,c:\apps_root\fhla\include
4=include,c:\apps_root\fhla\include;
5=hlalib,c:\apps_root\fhla\hlalib\hlalib.lib
- I also set up an hla.ini that uses the MASM32 package. As a result, I had to make sure the nmake program is available in my path settings. The same principles apply, however it was necessary to add the VC7 paths to the path settings in order to ensure that RadASM could see where nmake resides. Here is the setup for MASM32 on my PC (the first line is broken to fit in the browser only):
[Enviroment]
1=path,c:\apps_root\hla;c:\masm32\bin;c:\Program Files\Microsoft Visual Studio .NET 2003\VC7\bin;
c:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\bin;
2=lib,c:\masm32\lib;c:\apps_root\hla\hlalib;
3=hlainc,c:\apps_root\hla\include
4=include,c:\apps_root\hla\include;c:\masm32\include;
5=hlalib,c:\apps_root\hla\hlalib\hlalib.lib
- Next, in the [MakeDefNoProject], [Console App], [Dialog App], [Windows App], and [DLL] sections make sure that you have the correct make tool indicated. The default is nmake, but since I am using the FreeHLA system I changed this to pomake in each of those sections to indicate the make tool I am currently using.
- If you are going to use the HelloWorld or DialogApp templates that come with RadASM make sure you change the nmake and rc references to pomake and porc respectively if you choose to the use the Pelles C toolset that comes with FreeHLA.
4. A final suggestion that I found to be necessary is to make sure that the clean section in the makefile for a project is placed at the end of the makefile itself. I found the pomake tool errors out with access violations if the clean section is not placed at the end.